Bug 1470542

Summary: PAR::Packer requires the same perl version it was built against
Product: [Fedora] Fedora Reporter: Johan Vromans <jvromans>
Component: perl-PAR-PackerAssignee: Petr Pisar <ppisar>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 25CC: jplesnik, penguin.wrangler, perl-devel, ppisar
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
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 perl-PAR-Packer-1.036-5.fc26 perl-PAR-Packer-1.035-4.fc25 perl-PAR-Packer-1.047-2.fc29 perl-PAR-Packer-1.041-5.fc28 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-28 16:19:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Johan Vromans 2017-07-13 07:18:21 UTC
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 08:13:30 UTC
(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 08:26:30 UTC
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 08:31:23 UTC
> 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 09:21:52 UTC
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 10:31:12 UTC
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 10:31:24 UTC
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 10:31:38 UTC
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 21:21:57 UTC
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 21:25:50 UTC
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 23:53:32 UTC
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-23 03:55:46 UTC
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 Jillian Morgan 2017-07-23 14:31:24 UTC
> 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 21:51:32 UTC
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 22:54:33 UTC
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 08:11:40 UTC
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 08:28:30 UTC
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 08:43:59 UTC
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 08:46:30 UTC
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 21:53:18 UTC
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 18:52:13 UTC
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

Comment 21 Fedora Update System 2017-08-28 16:19:09 UTC
perl-PAR-Packer-1.036-5.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.

Comment 22 Fedora Update System 2017-08-28 22:21:29 UTC
perl-PAR-Packer-1.035-4.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.

Comment 23 Jillian Morgan 2018-12-25 02:04:25 UTC
Same issue just came up again on F29 as a perl update to 5.28.1 is incoming:
 Problem: package perl-PAR-Packer-1.047-1.fc29.x86_64 requires perl(:VERSION) = 5.28.0, but none of the providers can be installed
  - perl-libs-4:5.28.0-423.fc29.i686 has inferior architecture
  - cannot install both perl-libs-4:5.28.1-427.fc29.x86_64 and perl-libs-4:5.28.0-424.fc29.x86_64
  - cannot install both perl-libs-4:5.28.0-423.fc29.x86_64 and perl-libs-4:5.28.1-427.fc29.x86_64
  - cannot install the best update candidate for package perl-libs-4:5.28.0-424.fc29.x86_64
  - cannot install the best update candidate for package perl-PAR-Packer-1.047-1.fc29.x86_64

Please re-build perl-PAR-Packer against this new perl build.

Comment 24 Fedora Update System 2018-12-26 17:03:57 UTC
perl-PAR-Packer-1.047-2.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-be97e1e1f1

Comment 25 Fedora Update System 2018-12-27 02:34:40 UTC
perl-PAR-Packer-1.047-2.fc29 has been pushed to the Fedora 29 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-2018-be97e1e1f1

Comment 26 Petr Pisar 2019-01-02 12:34:31 UTC
Thank you for the notification. I will rebuild it for Fedora 28 too.

Unfortunately DNF does not support querying exact dependency versions (dnf repoquery --whatrequires 'perl(:VERSION) = 5.26.2') and the notifications from a compose log are broken and disabled for last few months, thus there is no way of automatically discovering there dependency breakages.

Comment 27 Fedora Update System 2019-01-02 12:38:36 UTC
perl-PAR-Packer-1.041-5.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2019-baf5a808b6

Comment 28 Fedora Update System 2019-01-03 04:00:28 UTC
perl-PAR-Packer-1.041-5.fc28 has been pushed to the Fedora 28 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-2019-baf5a808b6

Comment 29 Fedora Update System 2019-01-04 02:57:02 UTC
perl-PAR-Packer-1.047-2.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.

Comment 30 Fedora Update System 2019-01-11 02:59:07 UTC
perl-PAR-Packer-1.041-5.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.