[MacPorts] #43148: p5.10-version: tries to modify Perl's version.pm during destroot
#43148: p5.10-version: tries to modify Perl's version.pm during destroot ---------------------+-------------------------------- Reporter: mojca@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Keywords: | Port: p5.10-version ---------------------+-------------------------------- Installation of `p5.10-version` fails when trying to modify file `/opt/local/lib/perl5/5.10.1/version.pm` owned by `perl5.10`. It works for all other version of Perl: 5.8, 5.12, 5.14, 5.16, 5.18, but fails for 5.10. {{{ ---> Staging p5.10-version into destroot DEBUG: Run destroot without sudo to avoid root privileges. DEBUG: Going to escalate privileges back to root. DEBUG: euid changed to: 0. egid changed to: 0. ... DEBUG: Executing org.macports.destroot (p5.10-version) DEBUG: Environment: CPATH='/opt/local/include' CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/.CC_PRINT_OPTIONS' LIBRARY_PATH='/opt/local/lib' CC_PRINT_OPTIONS='YES' MACOSX_DEPLOYMENT_TARGET='10.9' DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/version-0.9908" && /usr/bin/make -w pure_install DESTDIR=/opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/destroot' DEBUG: Executing command line: cd "/opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/version-0.9908" && /usr/bin/make -w pure_install DESTDIR=/opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/destroot make: Entering directory `/opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/version-0.9908' make[1]: Entering directory `/opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/version-0.9908/vutil' make[1]: Leaving directory `/opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/version-0.9908/vutil' Manifying blib/man3/version::Internals.3pm Manifying blib/man3/version.3pm Files found in blib/arch: installing files in blib/lib into architecture dependent library tree !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING: WARNING: Failed chmod(0666, /opt/local/lib/perl5/5.10.1/version.pm): Operation not permitted !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ERROR: Cannot unlink '/opt/local/lib/perl5/5.10.1/version.pm': Operation not permitted !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! at -e line 1 Installing /opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/destroot/opt/local/lib/perl5/vendor_perl/5.10.1 /darwin-thread-multi-2level/auto/version/vxs/vxs.bs Installing /opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/destroot/opt/local/lib/perl5/vendor_perl/5.10.1 /darwin-thread-multi-2level/auto/version/vxs/vxs.bundle Installing /opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/destroot/opt/local/lib/perl5/vendor_perl/5.10.1 /darwin-thread-multi-2level/version.pm make: *** [pure_vendor_install] Error 1 make: Leaving directory `/opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/version-0.9908' Command failed: cd "/opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/version-0.9908" && /usr/bin/make -w pure_install DESTDIR=/opt/local/var/macports/build/_opt_mports_dports_perl_p5-version/p5.10-version/work/destroot Exit code: 2 Error: org.macports.destroot for port p5.10-version returned: command execution failed }}} See https://build.macports.org/builders/buildports-mavericks- x86_64/builds/2462 -- Ticket URL: <https://trac.macports.org/ticket/43148> MacPorts <http://www.macports.org/> Ports system for OS X
#43148: p5.10-version: tries to modify Perl's version.pm during destroot ----------------------------+-------------------------------- Reporter: mojca@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: p5.10-version | ----------------------------+-------------------------------- Comment (by mojca@…): The behaviour might be related to https://rt.cpan.org/Public/Bug/Display.html?id=88909 (but that's pure speculation). -- Ticket URL: <https://trac.macports.org/ticket/43148#comment:1> MacPorts <http://www.macports.org/> Ports system for OS X
#43148: p5.10-version: tries to modify Perl's version.pm during destroot ----------------------------+-------------------------------- Reporter: mojca@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: p5.10-version | ----------------------------+-------------------------------- Comment (by egall@…): Thanks for filing this, I had been meaning to file it myself... -- Ticket URL: <https://trac.macports.org/ticket/43148#comment:3> MacPorts <http://www.macports.org/> Ports system for OS X
#43148: p5.10-version: tries to modify Perl's version.pm during destroot ----------------------------+-------------------------------- Reporter: mojca@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: p5.10-version | ----------------------------+-------------------------------- Comment (by mojca@…): In fact this looks like a duplicate of #42146. -- Ticket URL: <https://trac.macports.org/ticket/43148#comment:4> MacPorts <http://www.macports.org/> Ports system for OS X
#43148: p5.10-version: tries to modify Perl's version.pm during destroot ----------------------------+-------------------------------- Reporter: mojca@… | Owner: macports-tickets@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: Resolution: fixed | Keywords: Port: p5.10-version | ----------------------------+-------------------------------- Changes (by devans@…): * status: new => closed * resolution: => fixed Comment: The solution is, indeed, contained in bug referenced by Mojca in comment:1. version.pm was added to perl core in 5.10 which installs it here: {{{ ${prefix}/lib/perl5/5.10.1/version.pm }}} p5.10-version installs version.pm here: {{{ ${prefix}/lib/perl5/vendor_perl/5.10.1/darwin-thread-multi- 2level/version.pm }}} The default behavior of this port (see Makefile.PL) is to unlink the core version in favor of its own. This is applied only for perl versions < 5.12. Since perl 5.8 doesn't include version.pm in core, this is the reason that only p5.10-version is effected. It's not clear to me why, historically, this is the default behavior but it is unnecessary since the two versions are installed in different paths and due to the structure of @INC, p5-version will always override the core version.pm. You can use {{{ perl5.10 -Mversion -e'print $_ . " => " . $INC{$_} . "\n" for keys %INC' }}} both with and without p5.10-version active to prove this. In any case, as per the cited bug report, Makefile.PL now includes a check for env var PERL_NO_HIGHLANDER which, if present, will disable the attempt to unlink the core version of version.pm. Fix committed in r122719 which appends PERL_NO_HIGHLANDER to configure.env if perl5.major is 5.10. -- Ticket URL: <https://trac.macports.org/ticket/43148#comment:5> MacPorts <http://www.macports.org/> Ports system for OS X
#43148: p5.10-version: tries to modify Perl's version.pm during destroot ----------------------------+-------------------------------- Reporter: mojca@… | Owner: macports-tickets@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: Resolution: fixed | Keywords: Port: p5.10-version | ----------------------------+-------------------------------- Comment (by egall@…): Replying to [comment:5 devans@…]:
Since perl 5.8 doesn't include version.pm in core, this is the reason that only p5.10-version is affected.
Really? Then why do I see this error with perl5.8 as well? Output: {{{ make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_perl_p5-version/p5.8-version/work/version-0.9908' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING: WARNING: Failed chmod(0666, /opt/local/lib/perl5/vendor_perl/5.8.9/version.pm): Operation not permitted !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ERROR: Cannot unlink '/opt/local/lib/perl5/vendor_perl/5.8.9/version.pm': Operation not permitted !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! at -e line 1 Installing /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_perl_p5-version/p5.8-version/work/destroot/opt/local/lib/perl5/vendor_perl/5.8.9/version.pm make: *** [pure_vendor_install] Error 1 make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_perl_p5-version/p5.8-version/work/version-0.9908' Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_perl_p5-version/p5.8-version/work/version-0.9908" && /usr/bin/make -w pure_install DESTDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_perl_p5-version/p5.8-version/work/destroot Exit code: 2 Error: org.macports.destroot for port p5.8-version returned: command execution failed }}} I think it is trying to do this because I am upgrading from a previous installation of p5.8-version: {{{ $ stat /opt/local/lib/perl5/vendor_perl/5.8.9/version.pm 234881026 819365 -r--r--r-- 1 root admin 0 2923 "Jul 27 12:53:23 2014" "Jan 15 07:12:27 2014" "Feb 24 16:48:40 2014" "Jan 15 07:12:27 2014" 4096 8 0 /opt/local/lib/perl5/vendor_perl/5.8.9/version.pm $ port provides /opt/local/lib/perl5/vendor_perl/5.8.9/version.pm /opt/local/lib/perl5/vendor_perl/5.8.9/version.pm is provided by: p5.8-version $ port installed p5.8-version The following ports are currently installed: p5.8-version @0.990.700_0+universal (active) }}} -- Ticket URL: <https://trac.macports.org/ticket/43148#comment:6> MacPorts <http://www.macports.org/> Ports system for OS X
#43148: p5.10-version: tries to modify Perl's version.pm during destroot ----------------------------+-------------------------------- Reporter: mojca@… | Owner: macports-tickets@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: Resolution: fixed | Keywords: Port: p5.10-version | ----------------------------+-------------------------------- Comment (by devans@…): Replying to [comment:6 egall@…]:
Replying to [comment:5 devans@…]:
Since perl 5.8 doesn't include version.pm in core, this is the reason that only p5.10-version is affected.
Really? Then why do I see this error with perl5.8 as well? Output: {{{
I can't reproduce this result whether doing a clean install or forcing a rebuild with p5.8-version already installed. In addition, all versions built correctly on the buildbots. This seems to be consistent with the original report. So the question should be what's unique about your installation? -- Ticket URL: <https://trac.macports.org/ticket/43148#comment:7> MacPorts <http://www.macports.org/> Ports system for OS X
#43148: p5.10-version: tries to modify Perl's version.pm during destroot ----------------------------+-------------------------------- Reporter: mojca@… | Owner: macports-tickets@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: Resolution: fixed | Keywords: Port: p5.10-version | ----------------------------+-------------------------------- Comment (by devans@…): Does changing {{{ if {[vercmp ${perl5.major} 5.10] == 0} { configure.env-append \ PERL_NO_HIGHLANDER=1 } }}} to {{{ if {[vercmp ${perl5.major} 5.12] < 0} { configure.env-append \ PERL_NO_HIGHLANDER=1 } }}} make any difference for you -- Ticket URL: <https://trac.macports.org/ticket/43148#comment:8> MacPorts <http://www.macports.org/> Ports system for OS X
#43148: p5.10-version: tries to modify Perl's version.pm during destroot ----------------------------+-------------------------------- Reporter: mojca@… | Owner: macports-tickets@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: Resolution: fixed | Keywords: Port: p5.10-version | ----------------------------+-------------------------------- Comment (by egall@…): r122720 worked for me, thanks -- Ticket URL: <https://trac.macports.org/ticket/43148#comment:9> MacPorts <http://www.macports.org/> Ports system for OS X
#43148: p5.10-version: tries to modify Perl's version.pm during destroot ----------------------------+-------------------------------- Reporter: mojca@… | Owner: macports-tickets@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: Resolution: fixed | Keywords: Port: p5.10-version | ----------------------------+-------------------------------- Comment (by ryandesign@…): The file p5.8-version is trying to unlink, /opt/local/lib/perl5/vendor_perl/5.8.9/version.pm, is provided by p5.8-version, not by perl5.8. The error occurs when trying to upgrade a previous version of the port; the buildbots never do that so they're not affected. I committed the same fix to p5-cpan-meta and p5-cpan-meta- requirements in r123701 and r123700 respectively. -- Ticket URL: <https://trac.macports.org/ticket/43148#comment:10> MacPorts <http://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts