Switching to Perl 5.20 as the default Perl version

Joël Brogniart Joel.Brogniart at laposte.net
Thu Jan 22 01:26:31 PST 2015


> Date: Mon, 19 Jan 2015 11:08:24 +0100
> From: Mojca Miklavec <mojca at macports.org>
> To: MacPorts Development <macports-dev at lists.macosforge.org>
> Subject: Switching to Perl 5.20 as the default Perl version
> Message-ID:
> 	<CALBOmsbWD1zOWbMPAu+8iTy2q+6kyQw-x=zNFoXv59ivahQ9Fg at mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
> 
> Hi,
> 
> I believe that we are ready to make the transition to 5.20 as the
> default version of Perl in MacPorts.
> 
> There is a small number of ports that still lack support for 5.20. But
> that's about 1-2% of all ports only, and many of them are lacking
> support just because they are broken under 5.16 anyway, or because it
> would be nice to update the version first and that introduces extra
> dependencies and extra work etc. We can always just add 5.18/5.20 to
> the list of subports even for those semi-broken ports.
> 
> See http://trac.macports.org/ticket/46005 for details.
> 
> This is how we made the recent transition of switching ports from 5.12 to 5.16:
>    http://trac.macports.org/ticket/44405
> which took about 5 months for all the maintainers (not) to respond.
> 
> Thanks to a patch by Bradley (pixilla) it also became easy to add
> perl5_xy variants to ports in order to support multiple Perl versions,
> see details in the following ticket for example:
>    http://trac.macports.org/ticket/46570
> 
> Does anyone volunteer to start the transition to 5.20 and open a
> ticket similar to #44405 to switch from 5.16 to 5.20?
> 
> Mojca

Hi,

Using informations from <http://trac.macports.org/ticket/46570> I tried to modify port x11/auto-multiple-choice to user perl variants. I added the lines:

PortGroup               perl5 1.0
...
perl5.require_variant   yes
perl5.conflict_variants yes
perl5.branches          5.16 5.18 5.20
perl5.create_variants   ${perl5.branches}

and changed all "port:p5.16" to "port:p${perl5.major}"

All my tests where done after having "sudo port uninstall installed" before .

If I do
	sudo port install auto-multiple-choice
	auto-multiple-choice

All works fine, the application is built, installed and works.

If I do
	sudo port install perl5
	sudo port install auto-multiple-choice
	auto-multiple-choice

All works fine too, the application is built, installed and works.

But if I do
	sudo port install perl5 +perl5_20
	sudo port install auto-multiple-choice
	auto-multiple-choice
The application is built, installed but when launched I get the error:

Can't locate AMC/Basic.pm in @INC (you may need to install the AMC::Basic module) (@INC contains: /opt/local/lib/perl5/site_perl/5.20/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.20 /opt/local/lib/perl5/vendor_perl/5.20/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.20 /opt/local/lib/perl5/5.20/darwin-thread-multi-2level /opt/local/lib/perl5/5.20 .) at /opt/local/lib/AMC/perl/AMC-gui.pl line 45.
BEGIN failed--compilation aborted at /opt/local/lib/AMC/perl/AMC-gui.pl line 45.

I get the same error when I install perl5_18. All auto-multiple-choice files stays at the same places, whatever perl variant is installed. The unreachable file is in "/opt/local/lib/perl5/vendor_perl/AMC/Basic.pm". With the default perl5 install (perl5_16), it seems that @INC contains the path "/opt/local/lib/perl5/vendor_perl' but not with perl5_18 and perl5_20.

Are there other informations I should have added for the application to work with perl5_18 or perl5_20 variants?

Joël





More information about the macports-dev mailing list