Build Lirc reproducibly. https://sourceforge.net/p/lirc/tickets/301/ https://sourceforge.net/p/lirc/git/merge-requests/33/ https://sourceforge.net/p/lirc/git/merge-requests/34/ https://sourceforge.net/p/lirc/git/merge-requests/36/ Index: lirc-0.10.1/tools/lirc-lsplugins.cpp =================================================================== --- lirc-0.10.1.orig/tools/lirc-lsplugins.cpp +++ lirc-0.10.1/tools/lirc-lsplugins.cpp @@ -415,10 +415,9 @@ static void print_header(void) static void print_yaml_header(void) { static const char* const YAML_HEADER = - "#\n# Generated by lirc-lsplugins --yaml (%s) at %s#\n "; - const time_t now = time(NULL); + "#\n# Generated by lirc-lsplugins --yaml (%s)#\n "; - printf(YAML_HEADER, VERSION, ctime(&now)); + printf(YAML_HEADER, VERSION); printf("\ndrivers:\n"); } Index: lirc-0.10.1/python-pkg/lirc/database.py =================================================================== --- lirc-0.10.1.orig/python-pkg/lirc/database.py +++ lirc-0.10.1/python-pkg/lirc/database.py @@ -156,7 +156,7 @@ class Database(object): d['device_hint'] = hint configs = {} - for path in glob.glob(configdir + '/*.conf'): + for path in sorted(glob.glob(configdir + '/*.conf')): with open(path) as f: cf = yaml.load(f.read()) configs[cf['config']['id']] = cf['config'] Index: lirc-0.10.1/tools/irdb-get =================================================================== --- lirc-0.10.1.orig/tools/irdb-get +++ lirc-0.10.1/tools/irdb-get @@ -9,7 +9,6 @@ import fnmatch import os import os.path import sys -import time import urllib.error # pylint: disable=no-name-in-module,F0401,E0611 import urllib.request # pylint: disable=no-name-in-module,F0401,E0611 @@ -193,7 +192,7 @@ def do_yaml_config(): lircmd_by_driver[driver].append("%s/%s" % (tokens[0], tokens[2])) print("#") - print("# Created by 'irdb-get yaml-config' at " + time.ctime()) + print("# Created by 'irdb-get yaml-config'") print("#") print("\nlircd_by_driver:") print_yaml_dict(lircd_by_driver) Index: lirc-0.10.1/tools/lirc-make-devinput =================================================================== --- lirc-0.10.1.orig/tools/lirc-make-devinput +++ lirc-0.10.1/tools/lirc-make-devinput @@ -61,8 +61,7 @@ if test -n "$lirc_map"; then fi -echo "# Generated by $(basename $0) on $(uname -r)" -echo "# Date: $(date)" +echo "# Generated by $(basename $0)" cat <2022-01-16tests: Fix file-needed/recursive on aarch64-linux....Fixes: <https://issues.guix.gnu.org/52943>. * tests/gremlin.scm (file-needed/recursive)[ground-truth]: On aarch64-linux, remove the dynamic linker from this list. Pierre Langlois 2022-01-14gremlin: Adjust tests for i686 and beyond....Fixes <https://issues.guix.gnu.org/52752>. Reported by Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>. * tests/gremlin.scm ("file-needed/recursive"): Augment the list of vDSO names. Ludovic Courtès 2022-01-08tests: Fix file-needed/recursive on powerpc64le-linux....Fixes: <https://issues.guix.gnu.org/52940>. * tests/gremlin.scm (file-needed/recursive): Consider two entries to be equivalent not when they are the same string, but rather when they refer to the same file. [ground-truth]: In addition to strings that begin with "linux-vdso.so", remove strings that begin with "linux-vdso64.so". Chris Marusich 2021-06-23tests: gremlin: Skip file-needed/recursive if DT_NEEDED is empty....* tests/gremlin.scm (file-needed/recursive): Skip the test when (file-runpath %guile-executable) evaluates to the empty list. This causes the test to be correctly skipped in the case where Guix has been built using a foreign distro's toolchain and libraries. Chris Marusich 2021-04-22gremlin: 'elf-dynamic-info' returns a file name rathern than a dynamic entry....* guix/build/gremlin.scm (elf-dynamic-info): Return the dynamic entry value, not the dynamic entry. * tests/gremlin.scm ("elf-dynamic-info-soname"): New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Dion Mendel 2020-12-01gremlin: Add 'file-needed/recursive'....* guix/build/gremlin.scm (file-needed/recursive): New procedure. * tests/gremlin.scm ("file-needed/recursive"): New test. Ludovic Courtès 2020-09-19gremlin: Add 'set-file-runpath', 'file-runpath', and 'file-needed'....* guix/build/gremlin.scm (file-dynamic-info, file-runpath, file-needed): New procedures. (&missing-runpath-error, &runpath-too-long-error): New condition types. (set-file-runpath): New procedure. * tests/gremlin.scm ("set-file-runpath + file-runpath"): New test. Ludovic Courtès 2019-05-18gremlin: Adjust tests for foreign distros....Fixes <https://bugs.gnu.org/35775>. * tests/gremlin.scm ("elf-dynamic-info-needed, executable"): Expect only libguile and libc among NEEDED. ("strip-runpath"): Pass '--enable-new-dtags' to get RUNPATH, not RPATH. Ting-Wei Lan