passing variants to dependencies; pre-activate check

Joshua Root jmr at macports.org
Sat Oct 10 19:34:06 PDT 2015


On 2015-10-11 11:34 , David Strubbe wrote:
> Thanks for checking. I realize now I can find these two different
> behaviors, depending on whether the other dependency BWidget is
> installed or not. I'm confused about why this would be happening. Why
> isn't "Computing dependencies for xcrysden" happening in both cases?
> 
> (BWidget is installed)
> $ sudo port -f uninstall tk xcrysden
> $ sudo port install xcrysden +x11
> --->  Computing dependencies for tk
> --->  Fetching archive for tk
> --->  Attempting to fetch tk-8.6.3_0+quartz.darwin_14.x86_64.tbz2 from
> http://mse.uk.packages.macports.org/sites/packages.macports.org/tk
> ...
> 
> $ sudo port -f uninstall tk xcrysden BWidget
> $ sudo port install xcrysden +x11
> --->  Computing dependencies for xcrysden
> --->  Dependencies to be installed: BWidget tk
> --->  Fetching archive for tk
> --->  Attempting to fetch tk-8.6.3_0+x11.darwin_14.x86_64.tbz2 from
> http://mse.uk.packages.macports.org/sites/packages.macports.org/tk 
> ...

It happens in both cases, you just stopped before it got there in the
first case. Already-installed dependencies are upgraded before new
dependencies are installed.

> Regarding the pre-activate, I added this code to my copy of
> active_variants-1.1.tcl:
> 
> +pre-activate {
> +    ui_warn "checking active variants"
> +    _check_require_active_variants archivefetch
> +}
> 
> When I do a fresh install, I see this message before activate. When I
> deactivate and re-activate, I don't see the message. My conclusion was
> that pre-activate was not being run in the latter case -- is there some
> other reason it wouldn't be written?

Are you editing the portgroup after you install the port? Running a
target on an already installed port uses the copy of the portgroup
stored in the registry.

- Josh


More information about the macports-dev mailing list