Ticket #11897 (new defect)
BUG: base-1.4.3 variants.conf not applied to "build" target
| Reported by: | gwhitney@… | Owned by: | gwhitney@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | MacPorts 1.6.1 |
| Component: | base | Version: | 1.4.3 |
| Keywords: | haspatch | Cc: | raimue@…, jmr@…, blb@… |
| Port: |
Description
The documentation of variants.conf, contained right in the sample variants.conf file, specifies:
# To specify global variants to use for all port builds, # customize this file to list variant settings you want.
However, I have +no_static in my variants.conf file, and "expat" has a no_static variant which adds --disable-static to the configure.args. Nevertheless, the behavior is:
chickadee$ port -k install expat
---> Fetching expat
---> Verifying checksum(s) for expat
---> Extracting expat
---> Configuring expat
---> Building expat with target all
---> Staging expat into destroot
---> Installing expat 2.0.0_1+no_static
---> Activating expat 2.0.0_1+no_static
chickadee$ head -8 /opt/mpq/var/db/dports/build/_opt_mpq_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_textproc_expat/work/expat-2.0.0/config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by expat configure 2.0.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ ./configure --prefix=/opt/mpq --mandir=${prefix}/share/man --disable-static
All OK so far. However:
chickadee$ port build expat
Error: Requested variants do not match original selection.
Please perform 'port clean expat' or specify the force option.
Error: Status 1 encountered during processing.
chickadee$ port clean expat
---> Cleaning expat
chickadee$ port build expat
---> Fetching expat
---> Verifying checksum(s) for expat
---> Extracting expat
---> Configuring expat
---> Building expat with target all
chickadee$ head -8 /opt/mpq/var/db/dports/build/_opt_mpq_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_textproc_expat/work/expat-2.0.0/config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by expat configure 2.0.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ ./configure --prefix=/opt/mpq --mandir=${prefix}/share/man
Now the --disable-static is missing. Since variants.conf supposedly applied to "all port builds", I would expect the build to be in harmony with the install. Indeed, if I had tried to build first, I would expect a subsequent install to be able to use the build I just did, not have to redo everything from configure on.
I see in "port" there is code to insert the global_variations in action_upgrade and in action_target, where it is specifically limited to the "install" target. Wouldn't it be simpler and less error-prone to remove that condition and always insert the global_variations regardless of which target is specified?

