[MacPorts] #43480: perl: remove subrelease number from lib path
#43480: perl: remove subrelease number from lib path -------------------------+------------------------------------------------- Reporter: mojca@… | Owner: macports-tickets@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Keywords: | Port: perl5.8 perl5.10 perl5.12 perl5.14 | perl5.16 perl5.18 -------------------------+------------------------------------------------- I would like to suggest fixing the perl ports in such a way that the files would be installed under {{{ ${prefix}/lib/perl5/5.18 }}} rather than {{{ ${prefix}/lib/perl5/5.18.2 }}} The problem is that `libperl.dylib` is supposed to be ABI-compatible between sub-versions, but it is moved to a different location and thus any binaries depending on `dylib` are broken and must be revbumped after perl update for no good reason. Relevant lines from `Configure`: {{{ version=`echo $revision $patchlevel $subversion | \ $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` api_versionstring=`echo $api_revision $api_version $api_subversion | \ $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` case "$installstyle" in *lib/perl5*) set dflt privlib lib/$package/$version ;; *); set dflt privlib lib/$version ;; esac }}} A similar change would be welcome for the path where packages get installed to avoid the need for {{{ configure.args-append "-D inc_version_list=\"5.18.0/${os.platform}-thread- multi${platsuffix} 5.18.0 \"" }}} This might be a moot point if we decide to completely change the way Perl packages work, but this particular fix can be done easily. The big rewrite will take time. -- Ticket URL: <https://trac.macports.org/ticket/43480> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by ryandesign@…): You might want to discuss these changes with the developers of perl to get their input. If including the patch version number in the path to libperl and the modules is not necessary, as you suggest, then the developers may want to make that change upstream. Or maybe the developers will explain why the patch version number is necessary after all. -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:1> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): I still agree that we probably want to talk to the developers, but I went ahead and applied a patch r120890 to `perl5.20`. Given that the port is completely new anyway, we won't break anyone's functionality and if the idea turns out not to work ... well then we can revert it. The problem with upstream is that they have a different model of installing and using Perl than MacPorts does and I understand why for them the model works and why they wouldn't want to switch to what I did, at least not by default. One installs one version of perl and keeps it there even after installing the next new version. But MacPorts removes the old version (and doesn't provide experimental versions) and there's where the problems start. We need to make a strong case and request a new feature, so that they would add a new configure option. I would suggest to apply the same change also to `perl5.18`. (Or maybe we'll change the way Perl works altogether anyway.) -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:2> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Changes (by mojca@…): * cc: mf2k@…, devans@…, allbery.b@… (added) -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:3> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): The patch apparently broke modules for Perl 5.20. Can you please test the following patch? {{{ #!diff --- _resources/port1.0/group/perl5-1.0.tcl (revision 122465) +++ _resources/port1.0/group/perl5-1.0.tcl (working copy) @@ -73,7 +73,7 @@ default perl5.bin {${prefix}/bin/perl${perl5.major}} # define installation libraries as vendor location -default perl5.lib {${prefix}/lib/perl5/vendor_perl/${perl5.version}} +default perl5.lib {[perl5.extract_config vendorlib]} default perl5.bindir {${prefix}/libexec/perl${perl5.major}} default perl5.archlib {${perl5.lib}/${perl5.arch}} }}} -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:4> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): I committed this in r122521. Please test p5.20 for a bunch of modules of your choice and let me know if you experience any problems. -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:5> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): As there were no major reported problems with p5.20 after the last fix, I'm attaching a fix to do the same with p5.18. I suspect that p5.16 might be removed soon anyway (once we have a stable 5.20 with all the modules available). I didn't test all modules yet. Please test or review the patches. I would like to commit this soon since it's difficult to keep the patch in sync with trunk. I plan to add p5.18 and p5.20 to other perl modules once this is committed. I would certainly like to get this patch in before 5.18 is added to other perl modules. -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:6> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): There's one main question left though: should I attempt to get rid of subrelease number also for `perl5.16`? In that case I would do it in such a way that it would still look in old directories and it would be a bit more work to initially set up, but in my opinion it should either be done now (together with revbumps for the sake of 5.18) or "never". The main question is whether we want to get rid of 5.16 in some not too distant future or not. If we want to keep it for longer time, we might want to change this for 5.16 as well. I wouldn't bother for older perl versions. -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:7> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): In my above patch I have found a few minor glitches so far (I'll re- upload), but a few ports are broken: - `p5-ifeffit` - `p5-libapreq2`: requires mod_perl2, but that one is installed against 5.16 and as a consequence a module is missing - `p5-pdl`, `p5-pdl-stats` - `p5-sgmlspm` -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:8> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Changes (by mojca@…): * cc: ryandesign@…, snc@… (added) -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:9> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): If we want to fix 5.16 and earlier, I would like to request help with the above patch for 5.16. You may try to install Perl 5.16 and then run {{{ /opt/local/bin/perl5.16 -e "print \"@INC\n\"" }}} I get {{{ /opt/local/lib/perl5/site_perl/5.16/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.16 /opt/local/lib/perl5/vendor_perl/5.16 /darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.16 /opt/local/lib/perl5/5.16/darwin-thread-multi-2level /opt/local/lib/perl5/5.16 /opt/local/lib/perl5/site_perl/5.16 /opt/local/lib/perl5/vendor_perl/5.16 . }}} instead of all the other releases. Most probably that's because perl thinks that 5.16.1 is a newer version of perl compared to 5.16, but I might be wrong. This probably needs a fix in `Configure`. This is only relevant if we decide to change Perl 5.16 and earlier. Modifying the INC path is desired/needed as a temporary(?) "workaround" before all > 1000 ports get revbumped. In the other patch you can see the proposed changes for `trunk`. (I will fix some alignments that I added, but that is a purely cosmetical thing and can also wait. Alignment in perl modules is a mess in general anyway.) Before I make a new branch any review or testing is welcome. -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:10> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): Leaving out patches for Perl 5.16: r123698 and r123699. -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:11> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): Here are the build logs to help us monitor potential problems: * 10.6: https://build.macports.org/builders/buildports-snowleopard- x86_64/builds/28477 * 10.7: https://build.macports.org/builders/buildports-lion- x86_64/builds/22316 * 10.8: https://build.macports.org/builders/buildports-mtln- x86_64/builds/16325 * 10.9: https://build.macports.org/builders/buildports-mavericks- x86_64/builds/5687 -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:12> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: macports- Type: enhancement | tickets@… Priority: Normal | Status: new Component: ports | Milestone: Resolution: | Version: Port: perl5.8 perl5.10 perl5.12 perl5.14 | Keywords: perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): I need to check [https://trac.macports.org/log/trunk/dports/perl?action=stop_on_copy&mode=sto... Potentially missing revbumps] -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:13> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: mojca@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: perl5.8 perl5.10 perl5.12 perl5.14 | perl5.16 perl5.18 | -------------------------------------------------+------------------------- Changes (by mojca@…): * owner: macports-tickets@… => mojca@… -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:14> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: mojca@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: perl5.8 perl5.10 perl5.12 perl5.14 | perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): Another batch revbump in r123755. I hope that I have now covered all the ports that I accidentally missed earlier. -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:15> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path -------------------------------------------------+------------------------- Reporter: mojca@… | Owner: mojca@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: perl5.8 perl5.10 perl5.12 perl5.14 | perl5.16 perl5.18 | -------------------------------------------------+------------------------- Comment (by mojca@…): The other batch of builds: * 10.6: https://build.macports.org/builders/buildports-snowleopard- x86_64/builds/28478 * 10.7: https://build.macports.org/builders/buildports-lion- x86_64/builds/22317 * 10.8: https://build.macports.org/builders/buildports-mtln- x86_64/builds/16326 * 10.9: https://build.macports.org/builders/buildports-mavericks- x86_64/builds/5688 Failed ports: * p5.8-net-dns-resolver-programmable * p5.20-ipc-run * p5.20-panotools-script * p5.20-io-tty * p5.20-dbd-pg -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:17> MacPorts <http://www.macports.org/> Ports system for OS X
#43480: perl: remove subrelease number from lib path --------------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: enhancement | Status: closed Priority: Normal | Milestone: Component: ports | Version: Resolution: fixed | Keywords: Port: perl5.18 perl5.20 | --------------------------------+--------------------- Changes (by mojca@…): * status: new => closed * resolution: => fixed * port: perl5.8 perl5.10 perl5.12 perl5.14 perl5.16 perl5.18 => perl5.18 perl5.20 Comment: I'm closing this ticket. I believe I covered all modules for 5.18. I opened new tickets or referenced existing ones for problems I experienced when building upgraded ports. If you experience any other problems, let me know. -- Ticket URL: <https://trac.macports.org/ticket/43480#comment:18> MacPorts <http://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts