port activate ignores multiple installed versions and variants of inactive dependents

Bradley Giesbrecht pixilla at macports.org
Thu Dec 11 13:31:00 PST 2014


On Dec 11, 2014, at 1:06 PM, Bradley Giesbrecht <pixilla at macports.org> wrote:

> 
> On Dec 11, 2014, at 12:41 PM, Joshua Root <jmr at macports.org> wrote:
> 
>> On 2014-12-12 06:51 , Bradley Giesbrecht wrote:
>>> 
>>> On Dec 10, 2014, at 12:19 AM, Ryan Schmidt <ryandesign at macports.org> wrote:
>>> 
>>>> 
>>>> On Dec 9, 2014, at 1:21 PM, Bradley Giesbrecht wrote:
>>>> 
>>>>> Is this behavior by design?
>>>>> 
>>>>> $ sudo port -q deactivate sqlgrey postfix
>>>>> --->  Deactivating sqlgrey @1.8.0-rc2_2+mysql+perl5_20
>>>>> --->  Deactivating postfix @2.11.3_0
>>>>> $ sudo port -q activate sqlgrey postfix
>>>>> --->  Computing dependencies for sqlgrey
>>>>> --->  Dependencies to be installed: postfix
>>>>> --->  Activating postfix @2.11.3_0
>>>>> --->  Activating sqlgrey @1.8.0-rc2_2+mysql+perl5_20
>>>>> --->  The following versions of postfix are currently installed:
>>>>> --->      postfix @2.11.2_0
>>>>> --->      postfix @2.11.3_0 (active)
>>>>> --->      postfix @2.11.3_0+dovecot_sasl+mariadb
>>>>> Error: port activate failed: Registry error: Please specify the full version as recorded in the port registry.
>>>> 
>>>> It looks expected, in so far as you have multiple versions of postfix installed, asked MacPorts to activate postfix, and did not specify which one you wanted to activate.
>>> 
>>> Right, with sqlgrey and multiple postfix versions installed and inactive why does port not ask me which postfix version to activate when activating sqlgrey?
>>> 
>>> If "port activate postfix" requires me to specify a version then why wouldn't activation via dependency also ask?
>> 
>> Same reason 'port install sqlgrey' doesn't ask which version of postfix
>> to activate.
>> 
>> - Josh
> 
> Ok, and the reason is?

If installation/activation of ports via dependency ignores installed inactive versions I think this a bug in base.

Shouldn't dependency installation take into consideration multiple inactive versions as "port activate" does?

$ port -q installed active and name:"sqlgrey|postfix"
  postfix @2.11.3_0+dovecot_sasl+mariadb (active)
  sqlgrey @1.8.0-rc2_2+mysql+perl5_20 (active)
$ sudo port -q deactivate sqlgrey postfix
--->  Deactivating sqlgrey @1.8.0-rc2_2+mysql+perl5_20
--->  Deactivating postfix @2.11.3_0+dovecot_sasl+mariadb
$ sudo port -q activate sqlgrey
--->  Computing dependencies for sqlgrey
--->  Dependencies to be installed: postfix
--->  Activating postfix @2.11.3_0
--->  Activating sqlgrey @1.8.0-rc2_2+mysql+perl5_20
$ port -q installed active and name:"sqlgrey|postfix"
  postfix @2.11.3_0 (active)
  sqlgrey @1.8.0-rc2_2+mysql+perl5_20 (active)


Without checking active versions before and after activation this user workflow could be dangerous:
$ sudo port -q deactivate sqlgrey postfix
$ sudo port -q activate sqlgrey


Regards,
Bradley Giesbrecht (pixilla)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <https://lists.macosforge.org/pipermail/macports-dev/attachments/20141211/7f30c0ae/attachment.sig>


More information about the macports-dev mailing list