Opened 4 years ago

Closed 3 years ago

Last modified 2 years ago

#48365 closed defect (fixed)

Ports should require perl5.22 instead of 5.16

Reported by: mojca (Mojca Miklavec) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: afb@…, blair (Blair Zajac), brucemiller (bruce miller), neverpanic (Clemens Lang), cfaerber@…, chris@…, ci42, ctreleaven (Craig Treleaven), daniel@…, db_macports@…, dennisvd@…, dbevans (David B. Evans), drkp (Dan Ports), eborisch (Eric A. Borisch), cooljeanius (Eric Gallager), fernando.iazeolla@…, gjasny@…, humem (humem), Ionic (Mihai Moldovan), jeremyhu (Jeremy Huddleston Sequoia), jessekornblum@…, jmroot (Joshua Root), joefowler (Joe Fowler), nortcele, jonahb (Jonah Burke), jpo@…, jul_bsd@…, kurthindenburg (Kurt Hindenburg), kmayer (Ken Mayer), kou@…, landonf@…, marioscheel@…, mkae (Marko Käning), mww@…, n3npq@…, pixilla (Bradley Giesbrecht), quentinmit (Quentin Smith), RJVB (René Bertin), ryan@…, ryandesign (Ryan Schmidt), nerdling (Jeremy L), tenomoto (Takeshi Enomoto), lockhart (Thomas Lockhart), markemer (Mark Anderson), petrrr, BjarneDMat
Port: ack ackmate amavisd-new archway argus-monitor auto-multiple-choice backuppc biblatex-biber bugzilla clearsilver cloc cpan2port cpuid cssh cutter cvsweb cws2fws-pl cyrus-imapd dc3dd ddclient demeter demeter-devel dirvish docbook-utils docbook2X dvdrip eperl exo (afb) extractopinion flac2mp3 frozenbubble2 ftpsync fusioninventory-agent fwknop gdmap ghsum git git-cal glibmm globus-core gnome-bindings-perl5 gnucash gnucash-devel gnumeric gnupod grid-packaging-tools gtk-doc gtkmm GTorrentViewer help2man homebank hugin-app icon-naming-utils icoutils ikiwiki imageindex imapsync intltool latexdiff LaTeXML libbluray liboping-devel libpurple libsigcxx2 libxmlxx2 log2timeline magicspp mailqfmt makepasswd mb2md mediaserv metar metasploit2 mod_perl2 monarch moreutils mosh mtn-browse munin muttprint myrepos mysql-zrm mythtv-core.25 mythtv-core.26 mythtv-core.27 mythweb.25 mythweb.26 mythweb.27 nagios-plugins nedi net-snmp nfsen nrg openbrowser ossp-uuid patchutils pcsc-tools pearl pemail perfect_maildir perlprimer pflogsumm pidgin po4a postgresql_autodoc postgrey psh PsyncX pulseaudio rancid rpm rpm52 rpm53 rpm54 rrdtool rsnapshot sendpage shelldap signing-party sleuthkit smokeping snmptt snownews spidereyeballs sqlgrey stow subversion-perlbindings-5.16 swaks sympa system-tools-backends t-prot tablet-encode texinfo thieriot tinyca2 torrentsniff tsung vantages vcheck vit wakeonlan whois wml xchat-gnome xfce-utils xqf xserve-raid-tools

Description (last modified by Ionic (Mihai Moldovan))

All ports depending on Perl 5.16 should switch to 5.22. (See also an older ticket #44405.)

Below is a list of ports by maintainer as obtained via:

port info --line --index --name --maintainer depends:'perl5\.16' or depends:'p5\.16-' | grep -v 'p5-' | grep -v 'p5.16-' | sort > list.txt

No additional checks were done, so it's possible that some of the ports listed below might not require any action.

Please note down the names of maintainers in case of "maintainer timeout" as I suspect that there might be some abandoned ports on the list.

If you change a port, please ONLY reply to via private mail. I will also scrub the list and strike ports that got updated.

Change History (19)

comment:1 Changed 4 years ago by Ionic (Mihai Moldovan)

Description: modified (diff)

Tracking comment for the migration procedure.

No maintainer

Open maintainer

Maintained ports

Already prepared, need perl5.major/perl5.default_branch update

Open maintainer

  • ryandesign
  • ciserlohn
    • pcsc-tools: okay since addition in r117787
Last edited 3 years ago by Ionic (Mihai Moldovan) (previous) (diff)

comment:2 Changed 4 years ago by danielluke (Daniel J. Luke)

Cc: dluke@… removed

comment:3 Changed 4 years ago by rod@…

Cc: rod@… removed

Cc Me!

comment:4 Changed 4 years ago by markemer (Mark Anderson)

Cc: emer@… added

Cc Me!

comment:5 Changed 4 years ago by Ionic (Mihai Moldovan)

Description: modified (diff)

comment:6 Changed 3 years ago by raimue (Rainer Müller)

Cc: raimue@… removed

Cc Me!

comment:7 Changed 3 years ago by mf2k (Frank Schima)

dvdrip done in r140036.

comment:8 Changed 3 years ago by g5pw (Aljaž Srebrnič)

Cc: g5pw@… removed

comment:9 Changed 3 years ago by petrrr

Cc: petr@… added

Cc Me!

comment:10 Changed 3 years ago by petrrr

Cc: petr@… removed

Cc Me!

comment:11 Changed 3 years ago by petrrr

Cc: petr@… added

Cc Me!

comment:12 Changed 3 years ago by mojca (Mojca Miklavec)

I would like to remind the maintainers to commit changes to their ports to switch to perl5.22 as we would like to get rid of 5.16, hopefully before 5.22 becomes "the new old version" already. One way to do the changes (in the name of easier transitions in the future) is the following:

PortGroup           perl5 1.0
perl5.branches      5.22
depends_lib-append  port:perl${perl5.major} \
                    port:p${perl5.major}-foo \

Instead of configure.env-append PERL=... you can use

configure.perl      ${perl5.bin}

and the ${perl5.bin} can also be used in other places like

reinplace "s|\#!/usr/bin/perl|\#!${perl5.bin}|" ...

(David was more in favour of solutions that don't add the extra overhead, but in any case it would be extremely helpful if all these ports wouldn't have the Perl version hardcoded at a dozen places and to me it would be even more helpful if we could do a more straightforward "search-and-replace" of perl5.branches in the future. At the moment some ports use "set perl_version 5.x", some "set pbranch 5.x", so doing a semi-automated change is not entirely straightforward.)

comment:13 Changed 3 years ago by RJVB (René Bertin)

Why not simply depend on port:perl5 and let the version issue be handled by that way, at least in ports that don't link to a perl library (supposing that's even possible)?

Aren't the perl5 and the p5-* ports there exactly for this reason, to avoid hardcoding any perl version beyond the major version (5)?

comment:14 Changed 3 years ago by brucemiller (bruce miller)

I would second that proposal. Although it's possible for a program to depend on the perl version, it's most often of the form that it requires any version newer than Perl 5.xx, but not a specific version. The most frequent issue that I've seen between perl versions is that newer versions generate more warning messages, particularly about dubious style, but the programs continue to function correctly.

So, I would suggest normally defaulting to whatever Perl is installed, but provide a means to specify "version newer than" for the few that need it, and the even fewer that need a specific version can specify that version as they currently do.

comment:15 Changed 3 years ago by mojca (Mojca Miklavec)

Let us first get to a point where we can get rid of Perl < 5.22 and let's discuss the improvements to the packaging itself in a separate ticket. (If we start waiting for the perfect solution, perl 5.30 will be out before we close this ticket :)

Perl packaging is a painful issue, but we need to address the problem as a whole and think well about all aspect before rushing into any other solution (just to figure out that we would have to redo it soon after anyway).

There is a huge number of Perl-related ports. Some link against Perl's dylib, some install additional modules (which can be installed anywhere, but if they end up under .../5.22/..., the port can't just switch to a different version of Perl without being rebuilt), some are ok even with the system perl, some need a large number of modules, ... some are a weird mixture of many of these aspects.

comment:16 Changed 3 years ago by RJVB (René Bertin)

Heh. A number of the KF5 ports I'm working on appear to use perl at some point during their build process. I give those a depends_build on port:perl5 because frankly I'd prefer not to have to include another complex PortGroup. For the rest I use dependencies on (for instance) port:p5-uri. Seems to work, and from what I can tell the few ports that do have a runtime dependency on perl will happily transition to 5.22 the day ${prefix}/bin/perl5 grows up.

comment:17 Changed 3 years ago by mf2k (Frank Schima)

Cc: macintosh@… added

Cc reporter of duplicate #34617.

comment:18 Changed 3 years ago by mojca (Mojca Miklavec)

Resolution: fixed
Status: newclosed

The ticket #34617 hasn't been 100% addressed (many ports are now "independent", but not all of them). Some ports are broken and have the corresponding tickets open. But I believe that we switched all ports to 5.22 by now. If you find any that I missed, let me know.

Next comes ticket #50245 to start removing the old Perl. Feel free to CC yourself to that ticket.

If anyone believes that modules and variants for Perl 5.16-5.20 (or for some subset of ports) should not be removed just yet, please speak up now.

Maintainers of ports with +perl5_16 and other variants (below is a list based on a quick and dirty approach, so it might not be complete) are invited to remove the branches 5.16 up to 5.20(?) from their ports, but please keep the code, so that we'll be abel to add 5.24 when the time arrives:

  • amavisd-new
  • eperl
  • fntsample
  • fusioninventory-agent
  • git
  • git-cal
  • log2timeline
  • mod_perl2
  • openbrowser
  • ossp-uuid
  • subversion-perlbindings
  • sqlgrey
  • xraylib
  • wml

(Is there any way to simplify these two?)

  • biblatex-biber
  • percona-toolkit

comment:19 Changed 3 years ago by mojca (Mojca Miklavec)

We'll open a new ticket for that (it takes a bit of scripting to get all the ports and maintainers properly sorted), but just as a quick note: feel free to start adding support or start testing / switching to Perl 5.24 in your ports.

Ticket for switching to Perl 5.24: #52081

Last edited 2 years ago by mojca (Mojca Miklavec) (previous) (diff)
Note: See TracTickets for help on using tickets.