unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Reproducible Builds Status Summary for Guix
@ 2022-06-13  3:55 Vagrant Cascadian
  2022-06-15  9:10 ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Vagrant Cascadian @ 2022-06-13  3:55 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 4245 bytes --]

I've been working on Reproducible Builds in guix a fair amount this
month.

data.guix.gnu.org has proven invaluable for this work, big thanks for
that!

  https://data.guix.gnu.org/repository/1/branch/master/latest-processed-revision/package-reproducibility


I have cataloged many of the packages that are identified by
dowloading a .json file:

  https://data.guix.gnu.org/repository/1/branch/master/latest-processed-revision/package-derivation-outputs.json?output_consistency=not-matching&system=x86_64-linux&target=none&field=no-additional-fields&limit_results=10000'

And then running those packages in a guix challenge for loop...

  for a in $@ ; do
    diffoscope_out=${a}.diffoscope
    diffoscope_out_comp=${diffoscope_out}.zst
    package=${a}
    if [ -s "${diffoscope_out_comp}" ] ; then
        echo ${diffoscope_out_comp} already present, skipping...
    else
        guix challenge --verbose --diff=diffoscope ${a} 2>&1 | tee "${diffoscope_out}"
        test -s "${diffoscope_out}" && zstd --rm --threads=0 "${diffoscope_out}"
    fi
  done

A few times I ran into disk space issues, due to:

  guix challenge with diffoscope fails to clean up temporary directory
  https://issues.guix.gnu.org/55809

So had to manually clean up some files and re-run it a few times and
probably missed a few packages...


I've looked at each of these diffoscope outputs and tried to quickly
categorize them. Attached a .yaml file (we cannot possibly have enough
different file formats!) that includes a rough identifier for each
issue. It was a rough and quick best-effort pass through, so there may
be some discrepancies...


I've already pushed fixes for a handful of packages, and tried to
remember to mark them as fixed. I've probably left many of the fixed
ones out of this list, but not terribly worried about that.

Some rough summaries about the types of issues:

  * ecl-* packages account for nearly half of the issues (~500 out of
    ~1000 packages)

  * ~850 packages categorized (ecl-* accounting for most of them)

  * 19 packages embed kernel version

  * 63 packages embed timestamps

  * 52 packages embed dates (harder to reproduce that full timestamps)

  * 5 timestamps in python .pyc files

  * 12 timestamps in .jar files

  * 66 ordering issues

  * 3 ordering issues in .pyc files

  * 9 ordering in .jar files

  * 16 ordering in guile .go files

  * ~160 largely unidentified and inscrutible issues

That's unfortunately a lot of "unidentified" issues, but I figured I'd
at least mark the ones I looked at.

This does reveal that there are some opportunities for toolchain fixes,
fixing multiple packages at a time (and future packages too!), such as
ecl, sbcl, python, java, guile, clojure, texlive (see FORCE_SOURCE_DATE
proposal
https://lists.gnu.org/archive/html/guix-devel/2022-06/msg00171.html ).

I haven't done extensive cross-referencing with other distros, but
suspect there may be patches to fix some of these toolchain issues... If
you've savvy with any of the above languages, help fixing toolchain
issues would be amazing!


I'm not sure where to collaborate on this stuff, I've just got a local
git repository and it's a bit rough. I could also push a branch to
guix.git with something like this in it.

There is a rough proposal for using a multi-project "notes" format that
debian uses:

  https://salsa.debian.org/reproducible-builds/reproducible-notes/-/tree/master
  https://salsa.debian.org/reproducible-builds/reproducible-notes/-/blob/multi-project-syntax/ideas_on_sharing_notes_between_distros

... back in 2016, and touched on at later Reproducible Builds summits,
but not really adopted as far as I know. But I know some of the issues
are essentially the same across distros; yet some are surprisingly
different even with the same source code!


If you're looking to get your hands dirty with some reproducibility
fixes in guix, a fair number of the timestamp, date and kernel version
fixes are likely fairly easy, but you generally have to manually verify
that the date or kernel version aren't embedded, as "guix build
--rounds=2" will likely happen with the same kernel version and date.


Will be curious to see any new and exciting issues after the staging
merge!


live well,
  vagrant

[-- Attachment #1.2: guix-rb-notes.yml --]
[-- Type: application/octet-stream, Size: 24823 bytes --]

4ti2:
  - unidentified issues in bin and lib
abcl:
  - nondeterministic ordering in .abcl and .cl files inside of a .jar
akku:
  - nondeterministic ordering embedded in guile .go files
alacritty:
  - unidentified issues in bin
ant-apache-bcel:
  - timestamps in .jar
ant-junit:
  - timestamps in .jar
anthy:
  - ordering differences in lib/*.a
armagetronad:
  - ordering differences in bin/armagetronad-uninstall
artanis:
  - nondeterminism in guile .go files
aseba:
  - unidentified issues in bin
autogen:
  - https://issues.guix.gnu.org/55813 switch to guile 3
  - uid/gid in share/autogen/libopts-42.1.17.tar.gz
  fixed:
    - embedded date in manpage 89ab76b8109d494d204f81b6d934ea19c8bb7004
autokey:
  - timestamp in python .pyc
  - other issues in python .pyc
awesome:
  - html documentation links with non-deterministic anchors
  - randomness in .svg
axoloti-patcher-next:
  - randomness in embedded temporary file names e.g. ccXXXXXX.ltrans1.ltrans.o"
axoloti-runtime:
  - randomness in embedded temporary file names, e.g. ccXXXXXX.s
azimuth:
  - unidentified issues in bin/azimuth
bart:
  - unidentified issues in bin/bart
bcachefs-static:
  - unidentified issues in sbin/bcachefs
bcachefs-tools:
  - unidentified issues in libbcachefs.so and sbin/bcachefs
bcachefs-tools-static:
  - unidentified issues in sbin/bcachefs
bind:
  - timestamps in python .egg
blast+:
  - unidentified nondetermism
blueman:
  - unidentified nondeterminism in python .pyc
brltty:
  - randomly generated etc/brlapi.key
btanks:
  - sort order in share/btanks/resources.dat
buildapp:
  - unidentified issue in bin/buildapp
ccwl:
  - embedded temporary filenames with random string
cfunge:
  - embeds kernel version
chez-fmt:
  - unidentified issue in lib/chez-scheme/*.so
chez-irregex:
  - unidentified issue in lib/chez-scheme/*.so
chez-matchable:
  - unidentified issue in lib/chez-scheme/*.so
chez-mit:
  - unidentified issue in lib/chez-scheme/*.so
chez-nanopass:
  - unidentified issue in lib/chez-scheme/*.so
  - embedded date in user-guide.pdf
chez-scheme:
  - unidentified issue in lib/csv*
chez-scheme-for-racket:
  - unidentified issue in lib/csv*
chez-scmutils:
  - unidentified issue in lib/chez-scheme/*.so
chez-srfi:
  - unidentified issue in lib/chez-scheme/*.so
chibi-scheme:
  - ordering issue in share/chibi/*.meta
  - unidentified issue in share/chibi/*.img
circtools:
  - unidentified issue in bin/circtools
classpath:
  - timestamps in .zip (java?) files
clearsilver:
  - timestamps in manpages
clisp:
  - unidentified issue in lib/clisp-*/base/lispinit.mem
cl-metabang-bind:
  - summary of test suite results with timing information and date in filename
cl-metatilities-base:
  - summary of test suite results with timing information and date in filename
cl-moptilities:
  - summary of test suite results with timing information and date in filename
clojure:
  - timestamps in html documentation
  - ordering and/or nondeterminism in .class files
clojure-tools-deps-alpha:
  - ordering and/or nondeterminism in .class files
cloog:
  - unidentified issue in bin/cloog
  - ordering issues in libcloog-isl.a
clustal-omega:
  - unidentified issue in bin/clustalo
  - ordering issues in libclustalo.a
cl-yale-haskell:
  - differing number in bin/clisp-haskell
cl-yxorp-cli:
  - unidentified issue in bin/cl-yxorp
cuirass:
  - nondeterministic ordering embedded in guile .go files
dehydrated:
  - manpage compressed with gzip timestamp, pass --no-name to fix
deluge:
  - timestamps in python .egg files
didjvu:
  - unidentified issues in python .pyc
drip:
  - timestamps in .jar file
  - ordering in .jar file
ebusd:
  - embedded date in bin/ebusd
ecl-*:
  - unidentified issues with ecl
edi:
  - uid/gid in tarball
  - sort order in tarball
efitools:
  - unidentified issue in share/efitools/efi/LockDown.efi
efl:
  - unidentified issue in share/elementary/themes/default.edj
emacs:
  - embeds kernel version in libexec/emacs/*/*/emacs.pdmp
  - unidentified issue in share/emacs/*/lisp/gnus/gnus-start.elc
emacs-ddskk:
  - timestamp in share/emacs/site-lisp/skk-autoloads.el and skksetup.el
emacs-howm:
  - unidentified issue in howm-mode.elc
emacs-minimal:
  - embeds kernel version in libexec/emacs/*/*/emacs.pdmp
  - unidentified issue in *.elc
emacs-next:
  - embeds kernel version in libexec/emacs/*/*/emacs.pdmp
  - unidentified issue in *.elc
emacs-next-pgtk:
  - embeds kernel version in libexec/emacs/*/*/emacs.pdmp
  - unidentified issue in *.elc
emacs-no-x:
  - embeds kernel version in libexec/emacs/*/*/emacs.pdmp
  - unidentified issue in *.elc
emacs-no-x-toolkit:
  - probably embeds kernel version in libexec/emacs/*/*/emacs.pdmp
  - probably unidentified issue in *.elc
emacs-subed:
  - nondeterministic nubmers in subed-autoloads.el
emacs-treemacs:
  - date in treemacs.elc
emacs-treemacs-extra:
  - date in treemacs.elc
emacs-wide-int:
  - embeds kernel version in libexec/emacs/*/*/emacs.pdmp
  - unidentified issue in *.elc
enblend-enfuse:
  - unidentified issue in bin/enfuse bin/enblend
fbreader:
  - unidentified issue in bin/FBReader
fenics-dolfin:
  - different precision and rounding differences in floatig point numbers in *.h files
fennel:
  - ordering differences in bin/fennel and fennel.lua
fflas-ffpack:
  - bin/fflas-ffpack-config contains different cpu optimizations
filtlong:
  - unidentified issues in bin/filtlong
font-meera-inimai:
  - date in share/fonts/truetype/MeeraInimai-Regular.ttf
fortune-mod:
  - different linebreaks fortune.6 manpage
fpc:
  - dates embedded in bin/* and lib/fpc/*/units/*/pastojs/pas2jscompiler.o
fstrcmp:
  - timestamps in .pdf
fullswof-2d:
  - unidentified issue in bin/FullSWOF_2D
gap:
  - kernel embedded in config.log
  - ld warnings with random temporary filenames embedded in config.log
  - timestamp embedded fail.log and io-*.log
gavl:
  - unidentified issues in lib/libgavl.so.*
gcc-stripped-tarball:
  - unidentified issues in /bin/* in tarball
gcl:
  - different addresses for functions in lib/gcl-2.7.0/unixport/libansi_gcl.a
  - ordering issues in lib/*/unixport/saved_ansi_gcl
gerbil:
  - unidentified issues in lib
gf2x:
  - orderind issues in lib/libgf2x.a
  - unidentified issues in lib/libgf2x.so.1.0.2
givaro:
  - differing cpu optimizations in bin/givaro-makefile
  - unidentified issues in lib (possibly related to cpu optimizations?)
gnome-shell-extension-burn-my-windows:
  - ordering issues in
    share/gnome-shell/extensions/burn-my-windows@schneegans.github.com/resources/burn-my-windows.gresource.xml
gnome-vfs:
  - ordering issues in lib/gnome-vfs-2.0/modules/libhttp.a
gnucobol:
  - timestamp in lib/gnucobol/CBL_OC_DUMP.so
gprolog:
  - timestamps in .h files, share/gprolog/bin/*
  - randomized temporary filenames in share/gprolog/lib/*
gtkglext:
  - ordering issues in lib/libgdkglext-x11-1.0.a
guile:
  - nondeterministic ordering embedded in guile .go files
guile2.2-config:
  - unidentified issue in lib/guile/2.2/site-ccache/config/api.go
guile3.0-opengl:
  - nondeterministic ordering embedded in guile .go files
guile-chickadee:
  - nondeterministic ordering embedded in guile .go files
guile-config:
  - nondeterministic ordering embedded in guile .go files
guile-g-golf:
  - nondeterministic ordering embedded in guile .go files
guile-irc:
  - nondeterministic ordering embedded in guile .go files
guile-lib:
  - nondeterministic ordering embedded in guile .go files
guile-rdf:
  - nondeterministic ordering embedded in guile .go files
guile-sdl2:
  - nondeterministic ordering embedded in guile .go files
guix:
  - nondeterministic ordering embedded in guile .go files
guix-data-service:
  - nondeterministic ordering embedded in guile .go files
hashcat:
  - unidentified issue in bin/hashcat
haunt:
  - nondeterministic ordering embedded in guile .go files
hevea:
  - temporary randomized filename built with ocaml
hop:
  - lib/hop/3.2.0/Makefile.hopconfig embeds date in HOPDATE variable
  - date in .js files
icedtea-web@1.6.2:
  - timestamps in .jar
  - date in manpages
icu4c-build-root:
  - kernel version in config.log
  - ld warnings with random temporary filenames embedded in config.log
insight-toolkit:
  - unidentified issues in lib
intel-xed@12.0.1:
  - unidentified issues in bin
ipxe:
  - .iso file, possibly filesystem metadata
irods:
  - embeds random/arbitrary number in define include/irods/server_control_plane_command.hpp
isl:
  - unidentified issues in lib/libisl.so.*
itpp:
  - embedded date in share/doc/itpp/html/_formulas.log
java-cofoja:
  - dates embedded in filenames of .jar files (e.g. share/java/cofoja+asm-1.2-20220529.jar)
java-commons-daemon:
  - timestamp embedded in .html documentation made with javadoc
  - date embedded in .html (e.g. <meta name="date" content="2022-05-29">)
java-commons-httpclient:
  - timestamp embedded in .html documentation made with javadoc
  - date embedded in .html (e.g. <meta name="date" content="2022-05-29">)
  - ordering isues in documentation (parallelism?)
java-jblas:
  - timestamps in .jar
java-jdom@2.0.6.1:
  - dates embedded in filenames of .jar files (e.g. share/java/cofoja+asm-1.2-20220529.jar)
java-ngs:
  - timestamps in .jar
  - ordering in .jar
java-openmpi:
  - timestamp embedded in .html documentation made with javadoc
  - date embedded in .html (e.g. <meta name="date" content="2022-05-29">)
java-tomcat:
  - date embedded in .html docuimentation
java-xerces:
  - timestamp in .jar created by ant
java-xmlpull-api-v1:
  - timestamp embedded in .html documentation made with javadoc
  - date embedded in .html (e.g. <meta name="date" content="2022-05-29">)
kawa:
  - timestamps in .jar
  - ordering in .jar
keepalived:
  - non-determinim in share/info/keepalived.info.gz
kirigami:
  - uid/gid in tarball
  - sort order in tarball
lagrange:
  - timestamp in VERSION file embedded in share/lagrange/resources.lgr
laminar:
  - unidentified issue in sbin/laminard
lean:
  - unidentified issues in .olean files
lepton-eda:
  - hashed identifiers in .go files
libflame@5.2.0:
  - unidentified issue in lib/libflame.so.*
libgtop:
  - kernel version embedded in bin/libgtop_server2
libmpeg2:
  - ordering or cpu optimization in lib/libmpeg2.a
libnet:
  - date in manpage
libopensmtpd:
  - date in manpage
libosmo-dsp:
  - date and timestamp in _formulas.log
libphonenumber:
  - unidentified issues in lib
libpinyin:
  - unidentified issues in lib
libwebsockets:
  - random data in generated keys share/libwebsockets-test-server/libwebsockets-test-server*.pem
lilypond:
  - variable data in .png .svg .otf .woff
linbox:
  - cpu optimizations in bin/linbox-config
  - differences in lib possibly due to cpu optimizations
linux-libre:
  - unidentified differences in .ko files
  - unidentified differences in bzimage
lirc:
  - uid/gid in share/lirc/lirc-0.10.1.tar.gz
lokke:
  - sort order and arbitrary numeric identifiers in .go files
looking-glass-client:
  - unidentified issues in bin/.looking-glass-client-real
m4ri:
  - embedded cpu cache information in include/m4ri/m4ri_config.h
m4rie:
  - unidentified issues in lib/libm4rie-*.so
maradns:
  - random number, take upstream https://lists.gnu.org/archive/html/guix-devel/2022-06/msg00110.html
  - kernel version
  - timestamp
maven-compat@3.8.5:
  - ordering issues in META-INF/plexus/components.xml embedded in .jar
maven-model-builder@3.8.5:
  - ordering issues in META-INF/sisu/javax.inject.Named embedded in .jar
maven-resolver-provider:
  - ordering issues in META-INF/sisu/javax.inject.Named embedded in .jar
maven-settings-builder@3.8.5:
  - ordering issues in META-INF/sisu/javax.inject.Named embedded in .jar
maxima:
  - lib/maxima/5.45.1/binary-sbcl/maxima.core
mediasdk:
  - embedded kernel version (mediasdk_build_info)
mercurial:
  - ordering inside .pyc files
minced:
  - timestamps in .jar
mingw-w64-i686:
  - randomness in temporary filenames
mingw-w64-i686-winpthreads:
  - randomness in temporary filenames
mingw-w64-x86_64:
  - randomness in temporary filenames
mingw-w64-x86_64-winpthreads:
  - randomness in temporary filenames
miniupnpc:
  - embedded kernel version in User-Agent
mit-scheme:
  - unidentified issues
mkp224o:
  - unidentified issues in bin/mkp224o
mm-common:
  - uid/gid in share/doc/mm-common/skeletonmm.tar.xz
moarvm:
  - unidentified issues in lib/libmoar.so
mono:
  - unidentified issues
mruby:
  - unidentified issues
musl-cross:
  - unidentified issues
myrddin:
  - unidentified issues
mysql:
  - kernel version share/mysql/docs/INFO_BIN
  - timestamps in share/mysql/docs/INFO_BIN
nanomsg:
  - unidentified issues
nauty:
  - unidentified issues
ncdu2:
  - unidentified issues
ne:
  - date in bin/ne
netcdf-fortran:
  - timestamp in lib/libnetcdff.settings
nng:
  - unidentified issues
node:
  - ordering issues in include/node/config.gypi
node-addon-api:
  - ordering issues in lib/node_modules/node-addon-api/test/build/Makefile
  - ordering issues in lib/node_modules/node-addon-api/test/build/config.gypi
node-openzwave-shared:
  - ordering issues in lib/node_modules/openzwave-shared/build/Makefile
  - ordering issues in lib/node_modules/openzwave-shared/build/config.gypi
node-segfault-handler:
  - ordering issues in lib/node_modules/segfault-handler/build/Makefile
  - ordering issues in lib/node_modules/segfault-handler/build/config.gypi
node-serialport-bindings:
  - ordering issues in lib/node_modules/@serialport/bindings/build/Makefile
  - ordering issues in lib/node_modules/@serialport/bindings/build/config.gypi
node-sqlite3:
  - ordering issues in lib/node_modules/sqlite3/build/Makefile
  - ordering issues in lib/node_modules/sqlite3/build/config.gypi
nqp:
  - unidentified issues in .moarvm files
nss:
  - unidentified issues in .chk files
nushell:
  - unidentified issues in bin/nu
nyacc:
  - nondeterministic ordering embedded in guile .go files
ocaml4.09-dune-configurator:
  - unidentified issues in .cmt .cmti
ocaml-batteries:
  - unidentified issues in .cmt .cmti
ocaml-topkg:
  - unidentified issues in .cmt .cmti
ocrodjvu:
  - unidentified issues in .pyc
openblas:
  - unidentified issues
openblas-ilp64:
  - unidentified issues
opensmtpd-filter-dkimsign:
  - date in manpage
  - kernel version in manpage
patchwork:
  - ordering issue in share/patchwork/htdocs/staticfiles.json
perl6-tap-harness:
  - unidentified issues in precompiled perl6 files
perl6-zef:
  - unidentified issues in precompiled perl6 files
plover:
  - timestamp in .pyc
  - ordering issues in .pyc
polyml:
  - unidentified issues
porechop:
  - unidentified issues
pure:
  - ordering issues in lib/pkgconfig/pure.pc
pwsafe:
  - ordering issues in .zip files
pybind11:
  - unidentified issues in .pyc
python-blosc:
  - unidentified issues cypthon*.so
python-bwapy:
  - unidentified issues cypthon*.so
python-debian:
  fixed:
    - date-based version embedded in .egg-info 96d47797dce361bd7f3b1ce860b1ec4851e2db5a
python-gamera:
  - unidentified issues cypthon*.so
python-numba:
  - unidentified issues in .nbc and .nbi
python-numpy-next:
  - misc issues _multiarray_umath.cpython-39-x86_64-linux-gnu.so
python-pytest:
  - timestamp in python .pyc
python-shiboken-2:
  - unidentified issues cypthon*.so
python-xapian-bindings:
  - timestamp in python .pyc
quickjs:
  - unidentified issues in lib/quickjs/libquickjs.lto.a
racket:
  - differing hashes(?) in various .dep files
r-affycompatible:
  - issues in .rdb and .rdx files
rakudo:
  - unidentified issues in .moarvm files
r-bgx:
  - unidentified issue in site-library/bgx/libs/bgx.so
rc:
  - date embedded in bin/rc
r-cli:
  - pid embedded in site-library/cli/R/cli.rdb
rct:
  - undentified issues
r-dimred:
  - unidentified issues in .rdb files
restic:
  - differing GO BUILDID in bin/restic
r-laplacesdemon:
  - unidentified issues in .rdb and .rdx files
r-liger:
    - timestamps in .jar
r-lpsymphony:
  - unidentified issue in site-library/lpsymphony/libs/lpsymphony.so
r-minimal:
  - unidentified issues in .rdb and .rdx files
r-misha:
  - unidentified issues in site-library/misha/trackdb/test/.db.cache
r-omnipathr:
  - unidentified issues in .rdb files
r-quantmod:
  - unidentified issues in .rdb and .rdx files
r-rbowtie2:
  - unidentified issues in site-library/Rbowtie2/bowtie2*
r-rcppparallel:
  - unidentified issues in site-library/RcppParallel/lib/*.so.*
r-repr:
  - unidentified issues in .rdb files
r-reticulate:
  - timestamps in python .pyc
r-rgraphviz:
  - unidentified issues in site-library/Rgraphviz/libs/Rgraphviz.so
r-rhdf5filters:
  - unidentified issues in site-library/rhdf5filters/lib/libH5Zblosc.so
r-rjava:
  - timestamps in .jar file
  - ordering in .jar file
r-rsbml:
  - kernel version embedded in site-library/rsbml/SBML_odeSolver-*/config.log
r-tm:
  - unidentified issues in .rdb and .rdx files
r-topicmodels:
  - unidentified issues in .rdb and .rdx files
r-tractor-base:
  - unidentified issues in .rdb and .rdx files
r-tweenr:
  - BASEDATETIME number defined in site-library/tweenr/R/tweenr.rdb
ruby:
  - date and pid embedded in gem_make.out files
  - date and pid embedded in lib/ruby/gems/*/gems/debug-*/ext/*/Makefile
ruby-ae:
  - ordering in .gemspec
ruby-ansi:
  - ordering in .gemspec
ruby-citrus:
  - date in .gemspec
ruby-concurrent:
  - date in .gemspec
ruby-ffi:
  - ordering in HDRS in lib/ruby/vendor_ruby/gems/ffi-*/build/*/ffi_c/*/Makefile
ruby-oj:
  - date in .gemspec
  - ordering in .gemspec
ruby-patron:
    - ld warnings with random temporary filenames embedded in mkmf.log
ruby-rexml:
  - ordering in .gemspec
ruby-rjb:
  - ld warnings with random temporary filenames embedded in mkmf.log
ruby-sys-filesystem:
  - date in .gemspec
ruby-sys-uname:
  - date in .gemspec
ruby-terminfo:
  - date and random temporary filename embedded in gem_make.out files
ruby-treetop:
  - date in .gemspec
salmon:
  - hashed temporary filenames and/or ordering issues in lib/libsalmon_core.a
sbcl:
  - unidentified issues in .fasl files
sbcl-burgled-batteries3:
  - unidentified issues in .fasl files
sbcl-cffi:
  - unidentified issues in .fasl files
sbcl-cl-ana:
  - unidentified issues in .fasl files
sbcl-cl-charms:
  - unidentified issues in .fasl files
sbcl-cl-diskspace:
  - unidentified issues in .fasl files
sbcl-cl-freetype2:
  - unidentified issues in .fasl files
sbcl-clinenoise:
  - unidentified issues in .fasl files
sbcl-cl-libuv:
  - unidentified issues in .fasl files
sbcl-cl-rdkafka:
  - unidentified issues in .fasl files
sbcl-cl-unicode:
  - unidentified issues in .fasl files
sbcl-dexador:
  - unidentified issues in .fasl files
sbcl-gsll:
  - unidentified issues in .fasl files
sbcl-hdf5-cffi:
  - unidentified issues in .fasl files
sbcl-iolib:
  - unidentified issues in .fasl files
sbcl-metabang-bind:
  - date in filename and timing information in summary-*.sav
sbcl-metatilities-base:
  - date in filename and timing information in summary-*.sav
sbcl-montezuma:
  - unidentified issues in
    lib/common-lisp/sbcl/montezuma/tests/temp/fsdir/segments and
    lib/common-lisp/sbcl/montezuma/tests/unit/regression/tc-m2k-test-index/segments
sbcl-moptilities:
  - date in filename and timing information in summary-*.sav
  - timestamps and timing information in share/common-lisp/sbcl/moptilities/test-results/*.html
sbcl-osicat:
  - unidentified issues in .fasl files
sbcl-overlord:
  - unidentified issues in .fasl files
sbcl-png:
  - unidentified issues in .fasl files
sbcl-pzmq:
  - unidentified issues in .fasl files
sbcl-supertrace:
  - unidentified issues in .fasl files
scanmem:
  - sort order in python .pyc files
scheme48:
  - unidentified issue in lib/scheme48-*/scheme48.image
scrollkeeper:
  - timestamps in var/log/scrollkeeper.log
scsh:
  - unidentified issue in lib/scsh-*/scsh.image
segemehl:
  - unidentified issue in bin/*
serveez:
  - timestamps in bin/serveez
silc-toolkit:
  - unidentified issue in lib/*.so.*
simavr:
  - ordering differences in include/simavr/sim_core_decl.h
singularity:
  - timestamps in libexec/singularity/bootstrap-scripts/environment.tar
skribilo:
  - timestamps in .html files
  - timestamps in .pdf files
  - timestamps in .info files
slepc:
  - unidentified issues in lib/libslepc.so.*
slepc-complex:
  - unidentified issues in lib/libslepc.so.*
slepc-complex-openmpi:
  - unidentified issues in lib/libslepc.so.*
slepc-openmpi:
  - unidentified issues in lib/libslepc.so.*
smalltalk:
  - sort order in .star (embedded .zip)
  - timestamps in .star (embedded .zip)
smlnj:
  - unidentified issues in bin and lib
sonnet:
  - unidentified issues in lib/libKF5SonnetCore.so.*
srain:
  - ordering in share/doc/srain/html/.doctrees/environment.pickle
srecord:
  - timestamps in .pdf generated by ghostscript
star:
  - unidentified issues in bin/STAR
starlong:
  - unidentified issues in bin/STARlong
stex:
  - unidentified issues in lib/stex/ta6le/*
stumpwm:
  - unidentified issues in bin/stumpwm
stumpwm-with-slynk:
  - unidentified issues in bin/stumpwm
surge-synth:
  - ordering of and/or differing .svg files within Surge.so
swish-e:
  - maybe ordering issues in bin/swish-e and lib/libswish-e*.a, maybe locale related files
syslinux:
  - unidentified issues (maybe obscure timestamps?) in bin/syslinux, sbin/extlinux and share/syslinux/*
tao:
  - dates in tao_version in bin/tao-config
  - timestamps in DATE in share/tao/examples/Makefile
  - dates in TAO_VERSION and VERSION in share/tao/examples/Makefile
tensorflow:
  - ordering in .pyc files
tesseract-ocr:
  - unidentified issues in lib/libtesseract*
teximpatient:
  - timestamps in .dvi
  - timestamps in .pdf
  - dates in .pdf
texlive-amsfonts:
  - timestamps in .600gf files
texlive-cm:
  - timestamps in .log and .600gf files
texlive-etex:
  - timestamps in .log and .600gf files
texlive-fontinst:
  - timestamps in .log files
texlive-fonts-ec:
  - timestamps in .log and .600gf files
texlive-fonts-latex:
  - timestamps in .log and .600gf files
texlive-fonts-rsfs:
  - timestamps in .log and .600gf files
texlive-jadetex:
  - timestamps in .fmt files
texlive-knuth-lib:
  - timestamps in .log and .600gf files
texlive-latex-base:
  - timestamps in .log and .fmt files
texlive-latex-changepage:
  - dates in share/texmf-dist/tex/latex/changepage/changepage.sty
      and share/texmf-dist/tex/latex/changepage/chngpage.sty
texlive-latex-trimspaces:
  - date in share/texmf-dist/tex/latex/trimspaces/trimspaces.sty
texlive-latex-xkeyval:
  - date in share/texmf-dist/tex/latex/xkeyval/xkeyval.dvi
texlive-metafont:
  - date in share/texmf-dist/web2c/mf.base
texlive-metalogo:
  - date in share/doc/latex/metalogo/metalogo.pdf
texlive-mflogo:
  - date in share/texmf-dist/build/logosl8.600gf and
      share/texmf-dist/tex/latex/mflogo/logosl8.600gf
texlive-paralist:
  - date in share/doc/latex/paralist/paralist.pdf
texlive-xindy:
  - case differences (e.g. "DH" vs. "dh") in .xdy files
texlive-xmltex:
  - timestamp in share/texmf-dist/web2c/pdftex/pdfxmltex.fmt and
      share/texmf-dist/web2c/pdftex/xmltex.fmt
thc-ipv6:
  fixed:
    - dates in manpages
tinmop:
  - uniden in bin/tinmop
  - sort order in embedded .lisp and .scm files
tla2tools:
  - timestamp in share/java/tla2tools.jar
ugrep:
  - unidentified issues in bin
uim:
  - sort order of share/uim/loader.scm and share/uim/installed-modules.scm
uim-gtk:
  - sort order of share/uim/loader.scm and share/uim/installed-modules.scm
utox:
  - random strings in embedded temporary files "e.g. utox.XXXXXX.ltrans0.o"
vala@52:
  - unidentified issues in bin and lib
vala@54:
  - unidentified issues in bin and lib
vice:
  - unidentified issues in bin
virtuaoso-ose:
  - sort order or randomness in share/virtuoso/vad/isparql_dav.vad
vivid:
  - unidentified issues in bin/vivid
wine:
  - timestamps in *.dll.so, can be (partly?) mitigated using
      WIDL_TIME_OVERRIDE environment variable or patching out in
      tools/widl/write_msft.c
wine64:
  - timestamps in *.dll.so, can be (partly?) mitigated using
      WIDL_TIME_OVERRIDE environment variable or patching out in
      tools/widl/write_msft.c
wxwidgets@3.0:
  - kernel version in lib/wx/include/gtk3-unicode-3.0/wx/setup.h
      WXWIN_OS_DESCRIPTION
wxwidgets@2.8:
  - kernel version in
      lib/wx/include/gtk2-unicode-release-2.8/wx/setup.h
      WXWIN_OS_DESCRIPTION
wxwidgets-gtk2@3.0:
  - kernel version in lib/wx/include/gtk2-unicode-3.0/wx/setup.h
      WXWIN_OS_DESCRIPTION
xjackfreak:
  - unidentified issues in bin
xlispstat:
  - unidentified issue in lib/xlispstat/xlisp.wks
xscreensaver:
  - unidentified issues in bin
xsnow:
  - unidentified issues in bin
  - date embedded in share/metainfo/xsnow.appdata.xml
yadifa:
  - unidentified issues in bin, sbin and lib
z3:
  - unidentified issues in bin and lib
zeitgeist:
  - ordering issues in lib/libzeitgeist-2.0.so.0.0.0
zita-alsa-pcmi:
  - unidentified issues in lib/libzita-alsa-pcmi.so.0.3.2
zn-poly:
  - unidentified issues in lib
zynaddsubfx:
  - non-deterministic number in lib/lv2/ZynAddSubFX.lv2/presets.ttl pset:value

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Reproducible Builds Status Summary for Guix
  2022-06-13  3:55 Reproducible Builds Status Summary for Guix Vagrant Cascadian
@ 2022-06-15  9:10 ` Ludovic Courtès
  2022-06-15  9:32   ` Guillaume Le Vaillant
  0 siblings, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2022-06-15  9:10 UTC (permalink / raw)
  To: Vagrant Cascadian; +Cc: guix-devel

Hi!

Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:

> I've been working on Reproducible Builds in guix a fair amount this
> month.
>
> data.guix.gnu.org has proven invaluable for this work, big thanks for
> that!
>
>   https://data.guix.gnu.org/repository/1/branch/master/latest-processed-revision/package-reproducibility

Neat!

> A few times I ran into disk space issues, due to:
>
>   guix challenge with diffoscope fails to clean up temporary directory
>   https://issues.guix.gnu.org/55809

Should be fixed now.  :-)

> Some rough summaries about the types of issues:
>
>   * ecl-* packages account for nearly half of the issues (~500 out of
>     ~1000 packages)

This seems to be a problem with generated identifiers at first sight;
would be worth taking upstream.  Any Common Lisper here?  :-)

>   * ~850 packages categorized (ecl-* accounting for most of them)
>
>   * 19 packages embed kernel version
>
>   * 63 packages embed timestamps
>
>   * 52 packages embed dates (harder to reproduce that full timestamps)
>
>   * 5 timestamps in python .pyc files
>
>   * 12 timestamps in .jar files
>
>   * 66 ordering issues
>
>   * 3 ordering issues in .pyc files
>
>   * 9 ordering in .jar files
>
>   * 16 ordering in guile .go files
>
>   * ~160 largely unidentified and inscrutible issues
>
> That's unfortunately a lot of "unidentified" issues, but I figured I'd
> at least mark the ones I looked at.

Yes, that’s already an insightful breakdown.

> There is a rough proposal for using a multi-project "notes" format that
> debian uses:
>
>   https://salsa.debian.org/reproducible-builds/reproducible-notes/-/tree/master
>   https://salsa.debian.org/reproducible-builds/reproducible-notes/-/blob/multi-project-syntax/ideas_on_sharing_notes_between_distros
>
> ... back in 2016, and touched on at later Reproducible Builds summits,
> but not really adopted as far as I know. But I know some of the issues
> are essentially the same across distros; yet some are surprisingly
> different even with the same source code!

I was very optimistic about using this database cross-distro back at the
first R-B Summit!  I still look at it occasionally when an issue pops
up, but it’s not become the collaborative platform we were hoping for.
It’s never too late though!

(Debian is in sense stricter in that some things can be an issue there
(like store build file names) and not here, because the Guix build
environment is controlled and “canonicalized”.  So not all the issues in
there are relevant to us I guess.)

Thanks for the update!

Ludo’.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Reproducible Builds Status Summary for Guix
  2022-06-15  9:10 ` Ludovic Courtès
@ 2022-06-15  9:32   ` Guillaume Le Vaillant
  2022-06-17 15:33     ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Guillaume Le Vaillant @ 2022-06-15  9:32 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Vagrant Cascadian, guix-devel

[-- Attachment #1: Type: text/plain, Size: 540 bytes --]

Ludovic Courtès <ludo@gnu.org> skribis:

> Hi!
>
> Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:
>
>> Some rough summaries about the types of issues:
>>
>>   * ecl-* packages account for nearly half of the issues (~500 out of
>>     ~1000 packages)
>
> This seems to be a problem with generated identifiers at first sight;
> would be worth taking upstream.  Any Common Lisper here?  :-)
>

Hi,
There's an open issue about this upstream [1].

[1] https://gitlab.com/embeddable-common-lisp/ecl/-/issues/551

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Reproducible Builds Status Summary for Guix
  2022-06-15  9:32   ` Guillaume Le Vaillant
@ 2022-06-17 15:33     ` Ludovic Courtès
  0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2022-06-17 15:33 UTC (permalink / raw)
  To: Guillaume Le Vaillant; +Cc: Vagrant Cascadian, guix-devel

Guillaume Le Vaillant <glv@posteo.net> skribis:

> Ludovic Courtès <ludo@gnu.org> skribis:
>
>> Hi!
>>
>> Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:
>>
>>> Some rough summaries about the types of issues:
>>>
>>>   * ecl-* packages account for nearly half of the issues (~500 out of
>>>     ~1000 packages)
>>
>> This seems to be a problem with generated identifiers at first sight;
>> would be worth taking upstream.  Any Common Lisper here?  :-)
>>
>
> Hi,
> There's an open issue about this upstream [1].
>
> [1] https://gitlab.com/embeddable-common-lisp/ecl/-/issues/551

Nice, kudos for tracking it down and coming up with a fix!

Ludo’.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-06-17 15:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-13  3:55 Reproducible Builds Status Summary for Guix Vagrant Cascadian
2022-06-15  9:10 ` Ludovic Courtès
2022-06-15  9:32   ` Guillaume Le Vaillant
2022-06-17 15:33     ` Ludovic Courtès

Code repositories for project(s) associated with this inbox:

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).