develooper Front page | perl.perl5.porters | Postings from August 2018

[perl #133452] Reproducibility support

Thread Previous | Thread Next
From:
perlbug-followup
Date:
August 17, 2018 02:44
Subject:
[perl #133452] Reproducibility support
Message ID:
rt-4.0.24-11613-1534346282-1331.133452-75-0@perl.org
# New Ticket Created by   
# Please include the string:  [perl #133452]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=133452 >



This is a bug report for perl from nixos@crystalgamma.de,
generated with the help of perlbug 1.40 running under perl 5.24.4.


-----------------------------------------------------------------
As part of making the nixpkgs/NixOS bootstrapping process reproducible, I am 
working on making the build of Perl deterministic.
The upstream distribution of Perl however writes certain details about the 
configuration environment like the time or uname to files like config.h or 
perlbug.

This makes bitwise reproducibility difficult.
It would be a useful for every distribution aiming for reproducibility if 
$cf_time were to default to the timestamp stored in SOURCE_DATE_EPOCH instead 
of the 
current time (see https://reproducible-builds.org/specs/source-date-epoch/ and 
https://reproducible-builds.org/docs/timestamps/ ).
Furthermore, it would be useful to have a more straightforward way to replace 
(or omit) the other configuration environment values (e. g. $cf_by, $myuname).

Please find an example patch for the defaulting of $cf_time attached.
-----------------------------------------------------------------
---
Flags:
    category=install
    severity=low
---
Site configuration information for perl 5.24.4:

Configured by user at Sat Apr 14 09:35:01 UTC 2018.

Summary of my perl5 (revision 5 version 24 subversion 4) configuration:
   
  Platform:
    osname=linux, osvers=4.16.13, archname=ppc64le-linux-thread-multi
    uname='linux talos-nixos 4.16.13 #1-nixos smp wed may 30 06:17:45 utc 2018 
ppc64le gnulinux '
    config_args='-de -Dcc=cc -Uinstallusrbinperl -Dinstallstyle=lib/perl5 -
Duseshrplib -Dlocincpth=/no-such-path/include -Dloclibpth=/nix/store/
bqz3x6hpbfxm6hmnnrkaz4bax8rna14b-glibc-2.27/lib -Dusethreads -Dprefix=/nix/
store/5vdbx07jr4v1dwdanwznnc37jcidmnjf-perl-5.24.4 -Dman1dir=/nix/store/
5vdbx07jr4v1dwdanwznnc37jcidmnjf-perl-5.24.4/share/man/man1 -Dman3dir=/nix/
store/5vdbx07jr4v1dwdanwznnc37jcidmnjf-perl-5.24.4/share/man/man3'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing 
-pipe -fstack-protector-strong -I/no-such-path/include -D_LARGEFILE_SOURCE -
D_FILE_OFFSET_BITS=64',
    optimize='-O1',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -
fstack-protector-strong -I/no-such-path/include'
    ccversion='', gccversion='7.3.0', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678, 
doublekind=3
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16, 
longdblkind=7
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', 
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector-strong -L/nix/store/
bqz3x6hpbfxm6hmnnrkaz4bax8rna14b-glibc-2.27/lib'
    libpth= 
    libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.27'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-
rpath,/nix/store/5vdbx07jr4v1dwdanwznnc37jcidmnjf-perl-5.24.4/lib/
perl5/5.24.4/ppc64le-linux-thread-multi/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -O1 -L/nix/store/
bqz3x6hpbfxm6hmnnrkaz4bax8rna14b-glibc-2.27/lib -fstack-protector-strong'


---
@INC for perl 5.24.4:
    /nix/store/5vdbx07jr4v1dwdanwznnc37jcidmnjf-perl-5.24.4/lib/perl5/
site_perl/5.24.4/ppc64le-linux-thread-multi
    /nix/store/5vdbx07jr4v1dwdanwznnc37jcidmnjf-perl-5.24.4/lib/perl5/
site_perl/5.24.4
    /nix/store/5vdbx07jr4v1dwdanwznnc37jcidmnjf-perl-5.24.4/lib/perl5/5.24.4/
ppc64le-linux-thread-multi
    /nix/store/5vdbx07jr4v1dwdanwznnc37jcidmnjf-perl-5.24.4/lib/perl5/5.24.4

---
Environment for perl 5.24.4:
    HOME=/home/user
    LANG=en_US.UTF-8
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/user/bin:/run/wrappers/bin:/home/user/.nix-profile/bin:/nix/
var/nix/profiles/default/bin:/run/current-system/sw/bin:/etc/profiles/per-
user/user/bin
    PERL_BADLANG (unset)
    SHELL=/run/current-system/sw/bin/fish

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About