Why don't p5-* ports mark their dependencies?
Ryan Schmidt
ryandesign at macports.org
Thu Jun 10 13:54:53 UTC 2021
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.
More information about the macports-users
mailing list