Bug 1470542 - PAR::Packer requires the same perl version it was built against
PAR::Packer requires the same perl version it was built against
Status: ON_QA
Product: Fedora
Classification: Fedora
Component: perl-PAR-Packer (Show other bugs)
25
Unspecified Unspecified
unspecified Severity high
: ---
: ---
Assigned To: Petr Pisar
Fedora Extras Quality Assurance
: Reopened
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-07-13 03:18 EDT by Johan Vromans
Modified: 2017-08-19 14:52 EDT (History)
4 users (show)

See Also:
Fixed In Version: perl-PAR-Packer-1.037-5.fc27 perl-PAR-Packer-1.036-4.fc26 perl-PAR-Packer-1.030-3.fc24 perl-PAR-Packer-1.035-3.fc25
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2017-07-22 23:55:46 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Johan Vromans 2017-07-13 03:18:21 EDT
Description of problem:

PAR::Packer is built for Perl 5.24.0 and was not rebuilt for 5.24.1.

Version-Release number of selected component (if applicable):

perl-PAR-Packer-1.035-1.fc25

How reproducible:

Always.

Steps to Reproduce:

1. pp -e 'print "Hello"'

Actual results:

/tmp/parlJ7MK: Perl lib version (5.24.1) doesn't match executable 'perl' version (5.24.0) at /usr/lib64/perl5/Config.pm line 62.
Compilation failed in require at /usr/lib64/perl5/Errno.pm line 10.
BEGIN failed--compilation aborted at /usr/lib64/perl5/Errno.pm line 10.
Compilation failed in require at /usr/share/perl5/vendor_perl/File/Temp.pm line 17.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/File/Temp.pm line 17.
Compilation failed in require at /home/jv/lib/perl5/Archive/Zip.pm line 26.
BEGIN failed--compilation aborted at /home/jv/lib/perl5/Archive/Zip.pm line 26.
Compilation failed in require at -e line 240.
/bin/pp: Failed to extract a parl from 'PAR::StrippedPARL::Static' to file '/tmp/parl50_HDGo' at /usr/share/perl5/vendor_perl/PAR/Packer.pm line 1184, <DATA> line 1.

Expected results:

An executable a.out.

Additional info:

PAR::Packer depends on the perl ABI and must always be rebuilt with perl upgrades.
Comment 1 Petr Pisar 2017-07-13 04:13:30 EDT
(In reply to Johan Vromans from comment #0)
> /tmp/parlJ7MK: Perl lib version (5.24.1) doesn't match executable 'perl'
> version (5.24.0) at /usr/lib64/perl5/Config.pm line 62.

This exception comes from /usr/lib64/perl5/Config.pm that on my system comes from Perl 5.24.1:

$ rpm -qf /usr/lib64/perl5/Config.pm 
perl-5.24.1-386.fc25.x86_64

and the code is:

$^V eq 5.24.1
    or die sprintf "%s: Perl lib version (5.24.1) doesn't match executable '$^X' version (%vd)", $0, $^V;

So it looks like the 'perl' command is and outdated perl.

Does PAR::Packer bundle libperl.so.5.24 library?

> PAR::Packer depends on the perl ABI and must always be rebuilt with perl
> upgrades.

If this is true I think we will need to add an explicit Requires on Perl interpreter version that was used to build perl-PAR-Package to catch the right after upgrading Perl.
Comment 2 Petr Pisar 2017-07-13 04:26:30 EDT
The latest stable perl-PAR-Packer package is 1.035-2.fc25. And that has already been rebuilt against Perl 5.24.1. I recommend you to upgrade.

I will still investigate the cause and try to correct the dependencies.
Comment 3 Johan Vromans 2017-07-13 04:31:23 EDT
> Does PAR::Packer bundle libperl.so.5.24 library?

I think the best answer to this question is "yes".

> > PAR::Packer depends on the perl ABI and must always be rebuilt with perl
> > upgrades.
> 
> If this is true I think we will need to add an explicit Requires on Perl
> interpreter version that was used to build perl-PAR-Package to catch the
> right after upgrading Perl.

That would be helpful, indeed.
Comment 4 Petr Pisar 2017-07-13 05:21:52 EDT
Now I can see it. When building perl-PAR-Packer, myldr/Makefile.PL links parl from boot.o that is compiled from boot_embedded_files.c that is generated by embed_files.pl tool whose input is "/lib64/libperl.so.5.24.1", the libperl.so shared library. So it effectively bundles libperl.so into /usr/bin/parl.

Then when building a standalone executable with pp tool, /usr/bin/parl is executed and its embedded libperl.so loads various Perl modules from system, including the Config that fails when checking for the version.
Comment 5 Fedora Update System 2017-07-13 06:31:12 EDT
perl-PAR-Packer-1.036-4.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-bf212e0247
Comment 6 Fedora Update System 2017-07-13 06:31:24 EDT
perl-PAR-Packer-1.035-3.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-3d42ac2eb2
Comment 7 Fedora Update System 2017-07-13 06:31:38 EDT
perl-PAR-Packer-1.030-3.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-e2997daf17
Comment 8 Fedora Update System 2017-07-13 17:21:57 EDT
perl-PAR-Packer-1.030-3.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-e2997daf17
Comment 9 Fedora Update System 2017-07-13 17:25:50 EDT
perl-PAR-Packer-1.035-3.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-3d42ac2eb2
Comment 10 Fedora Update System 2017-07-13 19:53:32 EDT
perl-PAR-Packer-1.036-4.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-bf212e0247
Comment 11 Fedora Update System 2017-07-22 23:55:46 EDT
perl-PAR-Packer-1.036-4.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.
Comment 12 Ian Morgan 2017-07-23 10:31:24 EDT
> perl-PAR-Packer-1.036-4.fc26 has been pushed to the Fedora 26 stable repository.

However, in the meantime, perl-5.24.2-393.fc26.x86_64 has also been released and now conflicts with this new build of perl-PAR-Packer.

Is there some means in the build system to require that whenever a new perl package is built, that perl-PAR-Packer must be rebuilt at the same time?

I'm in the state when I have these installed:
perl-PAR-Packer-1.036-3.fc26.x86_64
perl-5.24.2-393.fc26.x86_64

This works because the perl-PAR-Packer-1.036-3.fc26.x86_64 requires:
perl(:MODULE_COMPAT_5.24.1)
perl(:VERSION) >= 5.6.0
perl(:VERSION) >= 5.8.1

.. which are all met. But the new perl-PAR-Packer-1.036-4.fc26 now explicitly depends on
perl(:VERSION) = 5.24.1
which isn't met because perl 5.24.2 is already installed.

Please re-build and release perl-PAR-Packer against perl 5.24.2 ASAP, and figure out a way to make sure these packages are always built and released in lock-step.
Comment 13 Fedora Update System 2017-07-23 17:51:32 EDT
perl-PAR-Packer-1.030-3.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.
Comment 14 Fedora Update System 2017-07-23 18:54:33 EDT
perl-PAR-Packer-1.035-3.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.
Comment 15 Johan Vromans 2017-08-16 04:11:40 EDT
Perl has been updated to 5.24.2, and history repeats...

rpm --requires -qp ~/tmp/perl-PAR-Packer-1.035-3.fc25.x86_64.rpm
...
perl(:MODULE_COMPAT_5.24.1)
perl(:VERSION) = 5.24.1
...
Comment 16 Petr Pisar 2017-08-16 04:28:30 EDT
Fedora build infrastructure does not support automatic rebuilds. We have to rebuild it manually. With the perl(:VERSION) dependency we at least know before installing it.
Comment 17 Fedora Update System 2017-08-16 04:43:59 EDT
perl-PAR-Packer-1.036-5.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-f9c0cc106f
Comment 18 Fedora Update System 2017-08-16 04:46:30 EDT
perl-PAR-Packer-1.035-4.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-8cfb07cd7a
Comment 19 Fedora Update System 2017-08-18 17:53:18 EDT
perl-PAR-Packer-1.035-4.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-8cfb07cd7a
Comment 20 Fedora Update System 2017-08-19 14:52:13 EDT
perl-PAR-Packer-1.036-5.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-f9c0cc106f

Note You need to log in before you can comment on or make changes to this bug.