Bug 2321494 - perl: build irreproducibility that looks like a bug
Summary: perl: build irreproducibility that looks like a bug
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: perl
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Jitka Plesnikova
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-10-24 12:02 UTC by Zbigniew Jędrzejewski-Szmek
Modified: 2025-01-09 14:52 UTC (History)
10 users (show)

Fixed In Version: perl-5.40.0-513.fc42
Clone Of:
Environment:
Last Closed: 2025-01-09 14:52:57 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Zbigniew Jędrzejewski-Szmek 2024-10-24 12:02:54 UTC
Rebuilds of perl are not reproducible (as defined in https://fedoraproject.org/wiki/Changes/ReproduciblePackageBuilds).
The top level summary looks like this:

    perl-5.40.0-512.fc42.src
    perl-5.40.0-512.fc42.x86_64
    perl-Attribute-Handlers-1.03-512.fc42.noarch
    perl-AutoLoader-5.74-512.fc42.noarch
    perl-AutoSplit-5.74-512.fc42.noarch
    perl-B-1.89-512.fc42.x86_64
    perl-B-debuginfo-1.89-512.fc42.x86_64
    perl-Benchmark-1.25-512.fc42.noarch
    perl-Class-Struct-0.68-512.fc42.noarch
    perl-Config-Extensions-0.03-512.fc42.noarch
    perl-DBM_Filter-0.06-512.fc42.noarch
    perl-Devel-Peek-1.34-512.fc42.x86_64
    perl-Devel-Peek-debuginfo-1.34-512.fc42.x86_64
    perl-Devel-SelfStubber-1.06-512.fc42.noarch
    perl-DirHandle-1.05-512.fc42.noarch
    perl-Dumpvalue-2.27-512.fc42.noarch
    perl-DynaLoader-1.56-512.fc42.x86_64
    perl-English-1.11-512.fc42.noarch
    perl-Errno-1.38-512.fc42.x86_64
        modified-S.5........ /usr/lib64/perl5/Errno.pm
    perl-ExtUtils-Constant-0.25-512.fc42.noarch
    perl-ExtUtils-Embed-1.35-512.fc42.noarch
    perl-ExtUtils-Miniperl-1.14-512.fc42.noarch
    perl-Fcntl-1.18-512.fc42.x86_64
    perl-Fcntl-debuginfo-1.18-512.fc42.x86_64
    perl-File-Basename-2.86-512.fc42.noarch
    perl-File-Compare-1.100.800-512.fc42.noarch
    perl-File-Copy-2.41-512.fc42.noarch
    perl-File-DosGlob-1.12-512.fc42.x86_64
    perl-File-DosGlob-debuginfo-1.12-512.fc42.x86_64
    perl-File-Find-1.44-512.fc42.noarch
    perl-File-stat-1.14-512.fc42.noarch
    perl-FileCache-1.10-512.fc42.noarch
    perl-FileHandle-2.05-512.fc42.noarch
    perl-FindBin-1.54-512.fc42.noarch
    perl-GDBM_File-1.24-512.fc42.x86_64
    perl-GDBM_File-debuginfo-1.24-512.fc42.x86_64
    perl-Getopt-Std-1.14-512.fc42.noarch
    perl-Hash-Util-0.32-512.fc42.x86_64
    perl-Hash-Util-FieldHash-1.27-512.fc42.x86_64
    perl-Hash-Util-FieldHash-debuginfo-1.27-512.fc42.x86_64
    perl-Hash-Util-debuginfo-0.32-512.fc42.x86_64
    perl-I18N-Collate-1.02-512.fc42.noarch
    perl-I18N-LangTags-0.45-512.fc42.noarch
    perl-I18N-Langinfo-0.24-512.fc42.x86_64
    perl-I18N-Langinfo-debuginfo-0.24-512.fc42.x86_64
    perl-IO-1.55-512.fc42.x86_64
    perl-IO-debuginfo-1.55-512.fc42.x86_64
    perl-IPC-Open3-1.22-512.fc42.noarch
    perl-Locale-Maketext-Simple-0.21-512.fc42.noarch
    perl-Math-Complex-1.62-512.fc42.noarch
    perl-Memoize-1.16-512.fc42.noarch
    perl-Module-Loaded-0.08-512.fc42.noarch
    perl-NDBM_File-1.17-512.fc42.x86_64
    perl-NDBM_File-debuginfo-1.17-512.fc42.x86_64
    perl-NEXT-0.69-512.fc42.noarch
    perl-Net-1.04-512.fc42.noarch
    perl-ODBM_File-1.18-512.fc42.x86_64
    perl-ODBM_File-debuginfo-1.18-512.fc42.x86_64
    perl-Opcode-1.65-512.fc42.x86_64
    perl-Opcode-debuginfo-1.65-512.fc42.x86_64
    perl-POSIX-2.20-512.fc42.x86_64
    perl-POSIX-debuginfo-2.20-512.fc42.x86_64
    perl-Pod-Functions-1.14-512.fc42.noarch
    perl-Pod-Html-1.35-512.fc42.noarch
    perl-Safe-2.46-512.fc42.noarch
    perl-Search-Dict-1.07-512.fc42.noarch
    perl-SelectSaver-1.02-512.fc42.noarch
    perl-SelfLoader-1.27-512.fc42.noarch
    perl-Symbol-1.09-512.fc42.noarch
    perl-Sys-Hostname-1.25-512.fc42.x86_64
    perl-Sys-Hostname-debuginfo-1.25-512.fc42.x86_64
    perl-Term-Complete-1.403-512.fc42.noarch
    perl-Term-ReadLine-1.17-512.fc42.noarch
    perl-Test-1.31-512.fc42.noarch
    perl-Text-Abbrev-1.02-512.fc42.noarch
    perl-Thread-3.05-512.fc42.noarch
    perl-Thread-Semaphore-2.13-512.fc42.noarch
    perl-Tie-4.6-512.fc42.noarch
    perl-Tie-File-1.09-512.fc42.noarch
    perl-Tie-Memoize-1.1-512.fc42.noarch
    perl-Time-1.04-512.fc42.noarch
    perl-Time-Piece-1.3401-512.fc42.x86_64
    perl-Time-Piece-debuginfo-1.3401-512.fc42.x86_64
    perl-Unicode-UCD-0.78-512.fc42.noarch
    perl-User-pwent-1.05-512.fc42.noarch
    perl-autouse-1.11-512.fc42.noarch
    perl-base-2.27-512.fc42.noarch
    perl-blib-1.07-512.fc42.noarch
    perl-debugger-1.60-512.fc42.noarch
    perl-debuginfo-5.40.0-512.fc42.x86_64
    perl-debugsource-5.40.0-512.fc42.x86_64
    perl-deprecate-0.04-512.fc42.noarch
    perl-devel-5.40.0-512.fc42.x86_64
        modified-S.5........ /usr/lib64/perl5/CORE/config.h
    perl-diagnostics-1.40-512.fc42.noarch
    perl-doc-5.40.0-512.fc42.noarch
    perl-encoding-warnings-0.14-512.fc42.noarch
    perl-fields-2.27-512.fc42.noarch
    perl-filetest-1.03-512.fc42.noarch
    perl-if-0.61.000-512.fc42.noarch
    perl-interpreter-5.40.0-512.fc42.x86_64
    perl-interpreter-debuginfo-5.40.0-512.fc42.x86_64
    perl-less-0.03-512.fc42.noarch
    perl-lib-0.65-512.fc42.x86_64
    perl-libnetcfg-5.40.0-512.fc42.noarch
    perl-libs-5.40.0-512.fc42.x86_64
        modified-S.5........ /usr/lib64/perl5/Config.pm
        modified-S.5........ /usr/lib64/perl5/Config_heavy.pl
    perl-libs-debuginfo-5.40.0-512.fc42.x86_64
    perl-locale-1.12-512.fc42.noarch
    perl-macros-5.40.0-512.fc42.noarch
    perl-meta-notation-5.40.0-512.fc42.noarch
    perl-mro-1.29-512.fc42.x86_64
    perl-mro-debuginfo-1.29-512.fc42.x86_64
    perl-open-1.13-512.fc42.noarch
    perl-overload-1.37-512.fc42.noarch
    perl-overloading-0.02-512.fc42.noarch
    perl-ph-5.40.0-512.fc42.x86_64
    perl-sigtrap-1.10-512.fc42.noarch
    perl-sort-2.05-512.fc42.noarch
    perl-subs-1.04-512.fc42.noarch
    perl-tests-5.40.0-512.fc42.x86_64
    perl-utils-5.40.0-512.fc42.noarch
        modified-..5........ /usr/bin/perlbug
        modified-..5........ /usr/bin/perlthanks
    perl-vars-1.05-512.fc42.noarch
    perl-vmsish-1.04-512.fc42.noarch

(The format is package name followed by rpmdiff output.)

This seems very strange. This appears to check the kernel version which seems not useful:
│ ├── ./usr/lib64/perl5/Errno.pm
│ │ @@ -6,16 +6,16 @@
│ │  
│ │  package Errno;
│ │  use Exporter 'import';
│ │  use strict;
│ │  
│ │  use Config;
│ │  "$Config{'archname'}-$Config{'osvers'}" eq
│ │ -"x86_64\-linux\-thread\-multi-6\.10\.11\-200\.fc40\.x86_64" or
│ │ -   die "Errno architecture (x86_64\-linux\-thread\-multi-6\.10\.11\-200\.fc40\.x86_64) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";
│ │ +"x86_64\-linux\-thread\-multi-6\.8\.5\-301\.fc40\.x86_64" or
│ │ +   die "Errno architecture (x86_64\-linux\-thread\-multi-6\.8\.5\-301\.fc40\.x86_64) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";
│ │  

config.h embeds the kernel version too and doesn't use $SOURCE_DATE_EPOCH. This is bad for build reproducibility, but seems harmless otherwise. I'd appreciate if this could be changed so that perl builds reproducibly:
│ ├── ./usr/lib64/perl5/CORE/config.h
│ │ @@ -5,17 +5,17 @@
│ │   * Feel free to modify any of this as the need arises.  Note, however,
│ │   * that running config_h.SH again will wipe out any changes you've made.
│ │   * For a more permanent change edit config.sh and rerun config_h.SH.
│ │   */
│ │  
│ │  /* Package name      : perl5
│ │   * Source directory  : .
│ │ - * Configuration time: Tue Oct 15 13:32:58 UTC 2024
│ │ + * Configuration time: Wed Oct 16 16:39:30 UTC 2024
│ │   * Configured by     : Red Hat, Inc.
│ │ - * Target system     : linux 52ff0ae90ecc4ff680ae8bae4f0c74ee 6.10.11-200.fc40.x86_64 #1 smp preempt_dynamic wed sep 18 21:09:58 utc 2024 x86_64 gnulinux 
│ │ + * Target system     : linux a8f9732ea7f54097bc9b1a8394e8ab42 6.8.5-301.fc40.x86_64 #1 smp preempt_dynamic thu apr 11 20:00:10 utc 2024 x86_64 gnulinux 
│ │   */
│ │  
│ │  #ifndef _config_h_
│ │  #define _config_h_
│ │  
│ │  /* LOC_SED:
│ │   * This symbol holds the complete pathname to the sed program.
│ │ @@ -1365,15 +1365,15 @@
│ │   */
│ │  /* OSVERS:
│ │   * This symbol contains the version of the operating system, as determined
│ │   * by Configure.  You shouldn't rely on it too much; the specific
│ │   * feature tests from Configure are generally more reliable.
│ │   */
│ │  #define OSNAME "linux"             /**/
│ │ -#define OSVERS "6.10.11-200.fc40.x86_64"           /**/
│ │ +#define OSVERS "6.8.5-301.fc40.x86_64"             /**/

The last two files are similar:
│ ├── ./usr/lib64/perl5/Config.pm
│ │ @@ -101 +101 @@
│ │ -    osvers => '6.10.11-200.fc40.x86_64',
│ │ +    osvers => '6.8.5-301.fc40.x86_64',
│ ├── ./usr/lib64/perl5/Config_heavy.pl
│ │ @@ -78 +78 @@
│ │ -## Configuration time: Tue Oct 15 13:32:58 UTC 2024
│ │ +## Configuration time: Wed Oct 16 16:39:30 UTC 2024
│ │ @@ -80 +80 @@
│ │ -## Target system     : linux 52ff0ae90ecc4ff680ae8bae4f0c74ee 6.10.11-200.fc40.x86_64 #1 smp preempt_dynamic wed sep 18 21:09:58 utc 2024 x86_64 gnulinux 
│ │ +## Target system     : linux a8f9732ea7f54097bc9b1a8394e8ab42 6.8.5-301.fc40.x86_64 #1 smp preempt_dynamic thu apr 11 20:00:10 utc 2024 x86_64 gnulinux 
│ │ @@ -236 +236 @@
│ │ -cf_time='Tue Oct 15 13:32:58 UTC 2024'
│ │ +cf_time='Wed Oct 16 16:39:30 UTC 2024'
│ │ @@ -1180 +1180 @@
│ │ -myuname='linux 52ff0ae90ecc4ff680ae8bae4f0c74ee 6.10.11-200.fc40.x86_64 #1 smp preempt_dynamic wed sep 18 21:09:58 utc 2024 x86_64 gnulinux '
│ │ +myuname='linux a8f9732ea7f54097bc9b1a8394e8ab42 6.8.5-301.fc40.x86_64 #1 smp preempt_dynamic thu apr 11 20:00:10 utc 2024 x86_64 gnulinux '
│ │ @@ -1209 +1209 @@
│ │ -osvers='6.10.11-200.fc40.x86_64'
│ │ +osvers='6.8.5-301.fc40.x86_64'


Reproducible: Always

Comment 1 Fedora Update System 2025-01-09 13:04:20 UTC
FEDORA-2025-8036e7439f (perl-5.40.0-513.fc42) has been submitted as an update to Fedora 42.
https://bodhi.fedoraproject.org/updates/FEDORA-2025-8036e7439f

Comment 2 Fedora Update System 2025-01-09 14:52:57 UTC
FEDORA-2025-8036e7439f (perl-5.40.0-513.fc42) has been pushed to the Fedora 42 stable repository.
If problem still persists, please make note of it in this bug report.


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