gnu: lirc: Build reproducibly.

* gnu/packages/patches/lirc-reproducible-build.patch: New file.
* gnu/packages/lirc.scm (lirc)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
This commit is contained in:
Ludovic Courtès 2018-11-29 14:11:35 +01:00
parent f2c99fe52b
commit c324ad52b6
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 75 additions and 1 deletions

View file

@ -935,6 +935,7 @@ dist_patch_DATA = \
%D%/packages/patches/lierolibre-try-building-other-arch.patch \ %D%/packages/patches/lierolibre-try-building-other-arch.patch \
%D%/packages/patches/linux-pam-no-setfsuid.patch \ %D%/packages/patches/linux-pam-no-setfsuid.patch \
%D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.patch \
%D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \
%D%/packages/patches/llvm-for-extempore.patch \ %D%/packages/patches/llvm-for-extempore.patch \
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \ %D%/packages/patches/lm-sensors-hwmon-attrs.patch \

View file

@ -43,7 +43,8 @@ (define-public lirc
(sha256 (sha256
(base32 (base32
"1whlyifvvc7w04ahq07nnk1h18wc8j7c6wnvlb6mszravxh3qxcb")) "1whlyifvvc7w04ahq07nnk1h18wc8j7c6wnvlb6mszravxh3qxcb"))
(patches (search-patches "lirc-localstatedir.patch")))) (patches (search-patches "lirc-localstatedir.patch"
"lirc-reproducible-build.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags

View file

@ -0,0 +1,72 @@
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 <<EOF
begin remote