On Jun 6, 2021, at 12:41, Bill Cole wrote:

> Not sure where the bug is here, but it's evident in 'port reclaim'.
> 
> The p5-* ports are basically placeholders for the p5.##- ports. I *think* 
> I've even worked out the right way to use that construct to make Perl 
> upgrades simpler, so I use the p5-* ports:
> 
>       $ sudo port install p5-net-cidr p5-term-readline p5-test-fatal
>       --->  Computing dependencies for p5-net-cidr
>       The following dependencies will be installed:  p5.30-net-cidr
>       Continue? [Y/n]: y
>       --->  Fetching archive for p5.30-net-cidr
>       --->  Attempting to fetch 
> p5.30-net-cidr-0.200.0_0.darwin_18.noarch.tbz2 from 
> https://ywg.ca.packages.macports.org/mirror/macports/packages/p5.30-net-cidr
>       --->  Attempting to fetch 
> p5.30-net-cidr-0.200.0_0.darwin_18.noarch.tbz2.rmd160 from 
> https://ywg.ca.packages.macports.org/mirror/macports/packages/p5.30-net-cidr
>       --->  Installing p5.30-net-cidr @0.200.0_0
>       --->  Activating p5.30-net-cidr @0.200.0_0
>       --->  Cleaning p5.30-net-cidr
>       --->  Cleaning p5-net-cidr
>       --->  Computing dependencies for p5-term-readline
>       The following dependencies will be installed:  p5.30-term-readline
>       Continue? [Y/n]: y
>       --->  Fetching archive for p5.30-term-readline
>       --->  Attempting to fetch 
> p5.30-term-readline-1.140.0_0.darwin_18.noarch.tbz2 from 
> https://ywg.ca.packages.macports.org/mirror/macports/packages/p5.30-term-readline
>       --->  Attempting to fetch 
> p5.30-term-readline-1.140.0_0.darwin_18.noarch.tbz2.rmd160 from 
> https://ywg.ca.packages.macports.org/mirror/macports/packages/p5.30-term-readline
>       --->  Installing p5.30-term-readline @1.140.0_0
>       --->  Activating p5.30-term-readline @1.140.0_0
>       --->  Cleaning p5.30-term-readline
>       --->  Cleaning p5-term-readline
>       --->  Computing dependencies for p5-test-fatal
>       The following dependencies will be installed:  p5.30-test-fatal
>       Continue? [Y/n]: y
>       --->  Fetching archive for p5.30-test-fatal
>       --->  Attempting to fetch 
> p5.30-test-fatal-0.16.0_0.darwin_18.noarch.tbz2 from 
> https://ywg.ca.packages.macports.org/mirror/macports/packages/p5.30-test-fatal
>       --->  Attempting to fetch 
> p5.30-test-fatal-0.16.0_0.darwin_18.noarch.tbz2.rmd160 from 
> https://ywg.ca.packages.macports.org/mirror/macports/packages/p5.30-test-fatal
>       --->  Installing p5.30-test-fatal @0.16.0_0
>       --->  Activating p5.30-test-fatal @0.16.0_0
>       --->  Cleaning p5.30-test-fatal
>       --->  Cleaning p5-test-fatal
>       --->  Scanning binaries for linking errors
>       --->  No broken files found.
>       --->  No broken ports found.
> 
> Perfectly normal, right?
> 
> However, immediately after doing that, I did a reclaim and got a surprise:
> 
>       $ sudo port -v reclaim
>       --->  Checking for unnecessary unrequested ports
>       Unrequested ports without requested dependents found:
>        p5.30-test-fatal  @0.16.0_0
>        p5.30-net-cidr  @0.200.0_0
>        p5.30-term-readline  @1.140.0_0
>       Would you like to uninstall them? [Y/n]: n
> 
> And the dependency map is not reversible:
> 
>       $ port deps p5-net-cidr
>       Full Name: p5-net-cidr @0.200.0_0
>       Library Dependencies: p5.30-net-cidr
>       $ port rdependents p5.30-net-cidr
>       p5.30-net-cidr has no dependents.

Yes, the p5 ports are a bit weird in that regard. The p5-* ports can be 
installed -- they install essentially nothing (a placeholder text file) 
themselves but depend on e.g. the corresponding p5.30-* port which then gets 
installed. But also, the p5-* ports are marked as being replaced_by the 
corresponding p5.30-* port. This is unusual. Normally, when a port uses the 
replaced_by feature, the port also prevents itself from being able to be 
installed. The php-* and python-* ports do not use the replaced_by feature in 
this way; maybe the p5-* ports shouldn't do that either. Maybe that would cure 
the issue you observed.

Reply via email to