Source: crack Severity: normal Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org
The date is embedded in various binaries: https://tests.reproducible-builds.org/debian/rb-pkg/bookworm/amd64/diffoscope-results/crack.html /usr/lib/Crack/stdlib-cracker Fri·Nov·10·06:59:40·-12·2023 vs. Sun·Oct··9·02:42:03·+14·2022 There are two different patches to fix this issue, the first patches the upstream src/util/Makefile to not embed a date at all, and is the preferred approach from a reproducible builds perspective. The second patch uses the SOURCE_DATE_EPOCH environment variable to specify the date to use in the embedded files, if for some reason these files require a date in order to function correctly. According to my local tests, with this patch applied, and a soon-to-be submitted patch to fix build paths, crack should build reproducibly on tests.reproducible-builds.org! Thanks for maintaining crack! live well, vagrant
From 14c413afff3bb0bdbcbe5113adfd569d0f496fe0 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian <vagr...@reproducible-builds.org> Date: Mon, 10 Oct 2022 00:10:18 +0000 Subject: [PATCH 2/4] src/util/Makefile: Remove embedded timestamps. https://reproducible-builds.org/docs/timestamps/ --- src/util/Makefile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/util/Makefile b/src/util/Makefile index b2a96c3..f09bb9f 100644 --- a/src/util/Makefile +++ b/src/util/Makefile @@ -42,25 +42,21 @@ $(XDIR)/stdlib-cracker: cracker.c $(XLIB) $(CC) $(CFLAGS) -c elcid.c $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/cracker cracker.c elcid.o $(XLIB) $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/dictfilt dictfilt.c elcid.o $(XLIB) - date > $@ $(XDIR)/libdes-cracker: cracker.c $(XLIB) $(CC) $(CFLAGS) -c elcid.c $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/cracker cracker.c elcid.o $(XLIB) ../libdes/libdes.a $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/dictfilt dictfilt.c elcid.o $(XLIB) ../libdes/libdes.a - date > $@ $(XDIR)/ufc-cracker: cracker.c $(XLIB) $(CC) $(CFLAGS) -DINITDES -DFCRYPT -c elcid.c $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/cracker cracker.c elcid.o $(XLIB) ../ufc-crypt/libufc.a $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/dictfilt dictfilt.c elcid.o $(XLIB) ../ufc-crypt/libufc.a - date > $@ $(XDIR)/gnu-cracker: cracker.c $(XLIB) $(CC) $(CFLAGS) -c elcid.c $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/cracker cracker.c elcid.o $(XLIB) ../crypt/libufc.a $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/dictfilt dictfilt.c elcid.o $(XLIB) ../crypt/libufc.a - date > $@ #------------------------------------------------------------------ -- 2.37.2
From eae675adc4369871379c238fd7550d96d79512a2 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian <vagr...@reproducible-builds.org> Date: Mon, 10 Oct 2022 00:12:03 +0000 Subject: [PATCH 4/4] src/util/Makefile: Use SOURCE_DATE_EPOCH to set date. https://reproducible-builds.org/docs/source-date-epoch/ --- src/util/Makefile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/util/Makefile b/src/util/Makefile index b2a96c3..1ea15be 100644 --- a/src/util/Makefile +++ b/src/util/Makefile @@ -20,6 +20,8 @@ EXE= $(XDIR)/dawg \ #------------------------------------------------------------------ +DATESTAMP = $(shell LC_ALL=C date --utc --date=@$(SOURCE_DATE_EPOCH)) + all: $(EXE) @echo all made in util @@ -42,25 +44,25 @@ $(XDIR)/stdlib-cracker: cracker.c $(XLIB) $(CC) $(CFLAGS) -c elcid.c $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/cracker cracker.c elcid.o $(XLIB) $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/dictfilt dictfilt.c elcid.o $(XLIB) - date > $@ + echo "$(DATESTAMP)" > $@ $(XDIR)/libdes-cracker: cracker.c $(XLIB) $(CC) $(CFLAGS) -c elcid.c $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/cracker cracker.c elcid.o $(XLIB) ../libdes/libdes.a $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/dictfilt dictfilt.c elcid.o $(XLIB) ../libdes/libdes.a - date > $@ + echo "$(DATESTAMP)" > $@ $(XDIR)/ufc-cracker: cracker.c $(XLIB) $(CC) $(CFLAGS) -DINITDES -DFCRYPT -c elcid.c $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/cracker cracker.c elcid.o $(XLIB) ../ufc-crypt/libufc.a $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/dictfilt dictfilt.c elcid.o $(XLIB) ../ufc-crypt/libufc.a - date > $@ + echo "$(DATESTAMP)" > $@ $(XDIR)/gnu-cracker: cracker.c $(XLIB) $(CC) $(CFLAGS) -c elcid.c $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/cracker cracker.c elcid.o $(XLIB) ../crypt/libufc.a $(CC) $(CFLAGS) $(LDFLAGS) -o $(XDIR)/dictfilt dictfilt.c elcid.o $(XLIB) ../crypt/libufc.a - date > $@ + echo "$(DATESTAMP)" > $@ #------------------------------------------------------------------ -- 2.37.2
signature.asc
Description: PGP signature