Upgrading p5-app-ack fails for me.

Ryan Schmidt ryandesign at macports.org
Sat Apr 7 22:51:00 PDT 2012


On Apr 7, 2012, at 05:48, Barrie Stott wrote:

> 'port outgraded' showed that p5-app-ack and p5.14-app-ack (but no other *-app-ack) needed to be upgraded and p5.14-app-ack did so without a hitch.
> 
> The ports I have  of the form p5* are:
>  p5-app-ack @1.940.0_2 (active)
>  p5.12-file-next @1.20.0_2
>  p5.12-locale-gettext @1.50.0_6+universal (active)
>  p5.14-app-ack @1.940.0_2
>  p5.14-app-ack @1.960.0_0 (active)
>  p5.14-file-next @1.20.0_2 (active)
> 
> 'port info p5-app-ack' shows the following where the line of particular interest is 'Replaced by: p5.14-app-ack'
>  p5-app-ack @1.960.0 (perl)
>  Replaced by:          p5.14-app-ack
>  Sub-ports:            p5.8-app-ack, p5.10-app-ack, p5.12-app-ack, p5.14-app-ack
> 
>  Description:          ack is a tool like grep, aimed at programmers with large  trees of heterogeneous
>                      source code.
>  Homepage:             http://betterthangrep.com/
> 
>  Library Dependencies: p5.14-app-ack
>  Platforms:            darwin
>  License:              unknown
>  Maintainers:          mschout at gkg.net, openmaintainer at macports.org

All ports named beginning with "p5-" are "stub" ports. They don't install anything; there's no point in installing any of them. Install the port designed for the specific version of perl you want to use, e.g. p5.12-app-ack or p5.14-app-ack.

In theory, all the version-specific ports should be able to coexist with one another. In practice, they don't, as you're seeing:


>  --->  Activating p5.12-file-next @1.20.0_2
>  Error: Target org.macports.activate returned: Image error:  /opt/local/share/man/man3/File::Next.3pm.gz is being used by the active p5.14- file-next port.  Please deactivate this port first, or use 'port -f activate p5.12- file-next' to force the activation.

Dan Ports wrote a message to the mailing list about this in February, suggesting that we should stop pretending to support multiple simultaneous perl versions when it's obviously not working:

http://lists.macosforge.org/pipermail/macports-dev/2012-February/017727.html

No decision was reached but I support the idea of offering only a single version of perl, 5.14, in MacPorts.


> 1. Which port is p5-app-ack 'replaced by'?

The default version of perl in MacPorts is perl5.12. I'm not sure why on your system p5-app-ack shows it is replaced_by p5.14-app-ack. On my system it shows it is replaced_by p5.12-app-ack.


> 2. How can I tell if is is safe to replace all my p5.12-* ports by the corresponding p5.14-* ports?

Since 5.12 is the default perl version in MacPorts, many ports will declare dependencies on p5.12 modules. And since, although we intended for them not to, the versioned modules often conflict with one another, using a version other than 5.12 will be problematic.


> 3. Most importantly, how can I upgrade p5-app-ack?

Which version of perl do you want to use? If the answer is not 5.12, you'll continue to have the above problems.






More information about the macports-users mailing list