Debian Bug report logs - #990300
auctex: reproducible builds: Embedded timestamps in .el files

Package: src:auctex; Maintainer for src:auctex is Davide G. M. Salvetti <salve@debian.org>;

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

Date: Fri, 25 Jun 2021 03:54:02 UTC

Severity: normal

Tags: confirmed, patch, pending

Reply or subscribe to this bug.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, reproducible-bugs@lists.alioth.debian.org, Davide G. M. Salvetti <salve@debian.org>:
Bug#990300; Package src:auctex. (Fri, 25 Jun 2021 03:54:03 GMT) (full text, mbox, link).


Acknowledgement sent to Vagrant Cascadian <vagrant@reproducible-builds.org>:
New Bug report received and forwarded. Copy sent to reproducible-bugs@lists.alioth.debian.org, Davide G. M. Salvetti <salve@debian.org>. (Fri, 25 Jun 2021 03:54:03 GMT) (full text, mbox, link).


Message #5 received at submit@bugs.debian.org (full text, mbox, reply):

From: Vagrant Cascadian <vagrant@reproducible-builds.org>
To: submit@bugs.debian.org
Subject: auctex: reproducible builds: Embedded timestamps in .el files
Date: Thu, 24 Jun 2021 20:51:53 -0700
[Message part 1 (text/plain, inline)]
Source: auctex
Severity: normal
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-bugs@lists.alioth.debian.org

The build timestamp is embedded in various .el files:

  https://tests.reproducible-builds.org/debian/rb-pkg/bullseye/amd64/diffoscope-results/auctex.html

  ./usr/share/emacs/site-lisp/tex-site.el

  ;;;###·(autoloads·nil·"tex"·"tex.el"·(25292·55595·0·0))
  vs.
  ;;;###·(autoloads·nil·"tex"·"tex.el"·(24767·51934·0·0))

  ./usr/share/emacs/site-lisp/preview-latex.el

  ;;;###·(autoloads·nil·"preview"·"preview.el"·(25292·55677·147326
  vs.
  ;;;###·(autoloads·nil·"preview"·"preview.el"·(24767·52242·102378

The tex-site.el is is patched from debian/patches, so the timestamp
varies at the time of build and preview-latex.el is generated during the
build, so the timestamp varies.

The attached patches fix this by setting the timestamp on tex.el from
debian/rules using debian/changelog as a reference timestamp, and
patching Makefile.in to do the same for preview-latex.el.

Applying these patches should make auctex reproducible in the current
tests.reproducible-builds.org infrastructure.


Thanks for maintaining auctex!


live well,
  vagrant
[0001-debian-rules-Set-the-timestamp-on-the-patched-tex.el.patch (text/x-diff, inline)]
From dcb820e3f7e09a844df70b0068f59a4831248408 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Fri, 25 Jun 2021 03:36:17 +0000
Subject: [PATCH 1/2] debian/rules: Set the timestamp on the patched tex.el
 file to avoid embedding timestamps in the shipped .el file.

https://tests.reproducible-builds.org/debian/issues/timestamps_in_emacs_autoloads_issue.html
https://bugs.debian.org/824050
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22213
---
 debian/rules | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/debian/rules b/debian/rules
index fc8813f0..44ee25e3 100755
--- a/debian/rules
+++ b/debian/rules
@@ -50,6 +50,10 @@ ELCC := $(shell pwd)/debian/elcc
 override_dh_auto_build: debian/clean
 	chmod -R a+rX debian/
 	chmod a+x debian/elcc
+	# Set the date on files that are patched to avoid inconsistent
+	# embedded timestamps:
+	# https://tests.reproducible-builds.org/debian/issues/timestamps_in_emacs_autoloads_issue.html
+	touch --reference debian/changelog tex.el
 	$(MAKE) ELCC=$(ELCC)
 	rm --force auto-loads.el
 	$(MAKE) auto-loads.el
-- 
2.32.0

[0002-debian-patches-Set-the-timestamp-on-the-generated-pr.patch (text/x-diff, inline)]
From 16c7380b96b37841a0c6533c428310ef278f12c6 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Fri, 25 Jun 2021 03:40:45 +0000
Subject: [PATCH 2/2] debian/patches: Set the timestamp on the generated
 preview-latex.el file to avoid embedding timestamps in the shipped .el file.

https://tests.reproducible-builds.org/debian/issues/timestamps_in_emacs_autoloads_issue.html
https://bugs.debian.org/824050
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22213
---
 ...p-on-the-generated-preview-latex.el-.patch | 28 +++++++++++++++++++
 debian/patches/series                         |  1 +
 2 files changed, 29 insertions(+)
 create mode 100644 debian/patches/0007-Set-the-timestamp-on-the-generated-preview-latex.el-.patch

diff --git a/debian/patches/0007-Set-the-timestamp-on-the-generated-preview-latex.el-.patch b/debian/patches/0007-Set-the-timestamp-on-the-generated-preview-latex.el-.patch
new file mode 100644
index 00000000..a4349b5d
--- /dev/null
+++ b/debian/patches/0007-Set-the-timestamp-on-the-generated-preview-latex.el-.patch
@@ -0,0 +1,28 @@
+From e3c2aede384f443397c02c183691697c73d502d7 Mon Sep 17 00:00:00 2001
+From: Vagrant Cascadian <vagrant@reproducible-builds.org>
+Date: Fri, 25 Jun 2021 03:38:05 +0000
+Subject: [PATCH] Set the timestamp on the generated preview-latex.el file to
+ avoid embedding timestamps in the shipped .el file.
+
+https://tests.reproducible-builds.org/debian/issues/timestamps_in_emacs_autoloads_issue.html
+https://bugs.debian.org/824050
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22213
+---
+ Makefile.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.in b/Makefile.in
+index 95bc0eb5..24177bea 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -222,6 +222,7 @@ lisp:	tex-site.el $(AUCSRC) $(STYLESRC) $(PREVIEWSRC)
+ 
+ preview-latex.el: preview.el
+ 	rm -f preview-latex.el
++	touch --reference debian/copyright preview-latex.el ; \
+ 	-$(EMACS) -batch -no-site-file -no-init-file $(PREVIEW_AUTOLOAD) ; \
+ 	test -r $@ || { \
+ 	  echo ";; Auto-generated preview-latex.el" > $@ ; \
+-- 
+2.32.0
+
diff --git a/debian/patches/series b/debian/patches/series
index 5c13931a..bc0123a8 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,4 @@
 0004-TeX-view-program-selection-Customize-for-Debian.patch
 0005-TeX-auto-global-Customize-for-Debian.patch
 0006-preview-image-type-Customize-for-Debian.patch
+0007-Set-the-timestamp-on-the-generated-preview-latex.el-.patch
-- 
2.32.0

[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Davide G. M. Salvetti <salve@debian.org>:
Bug#990300; Package src:auctex. (Fri, 25 Jun 2021 04:24:02 GMT) (full text, mbox, link).


Acknowledgement sent to Vagrant Cascadian <vagrant@reproducible-builds.org>:
Extra info received and forwarded to list. Copy sent to Davide G. M. Salvetti <salve@debian.org>. (Fri, 25 Jun 2021 04:24:02 GMT) (full text, mbox, link).


Message #10 received at 990300@bugs.debian.org (full text, mbox, reply):

From: Vagrant Cascadian <vagrant@reproducible-builds.org>
To: 990300@bugs.debian.org
Subject: Re: auctex: reproducible builds: Embedded timestamps in .el files
Date: Thu, 24 Jun 2021 21:21:32 -0700
[Message part 1 (text/plain, inline)]
On 2021-06-24, Vagrant Cascadian wrote:
> The build timestamp is embedded in various .el files:
>
>   https://tests.reproducible-builds.org/debian/rb-pkg/bullseye/amd64/diffoscope-results/auctex.html
>
>   ./usr/share/emacs/site-lisp/tex-site.el
>
>   ;;;###·(autoloads·nil·"tex"·"tex.el"·(25292·55595·0·0))
>   vs.
>   ;;;###·(autoloads·nil·"tex"·"tex.el"·(24767·51934·0·0))
>
>   ./usr/share/emacs/site-lisp/preview-latex.el
>
>   ;;;###·(autoloads·nil·"preview"·"preview.el"·(25292·55677·147326
>   vs.
>   ;;;###·(autoloads·nil·"preview"·"preview.el"·(24767·52242·102378
...
> The attached patches fix this by setting the timestamp on tex.el from
> debian/rules using debian/changelog as a reference timestamp, and
> patching Makefile.in to do the same for preview-latex.el.

I forgot to mention another way to solve this *might* be to to switch
packaging over to dh-elpa, which can normalize the autoloads timestamps
to use SOURCE_DATE_EPOCH:

  https://reproducible-builds.org/docs/source-date-epoch/

I'm not familiar enough with dh-elpa to propose a patch for that, but
maybe it is worth considering.


live well,
  vagrant
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Davide G. M. Salvetti <salve@debian.org>:
Bug#990300; Package src:auctex. (Sat, 26 Jun 2021 09:15:02 GMT) (full text, mbox, link).


Acknowledgement sent to "Davide G. M. Salvetti" <salve@debian.org>:
Extra info received and forwarded to list. Copy sent to Davide G. M. Salvetti <salve@debian.org>. (Sat, 26 Jun 2021 09:15:02 GMT) (full text, mbox, link).


Message #15 received at 990300@bugs.debian.org (full text, mbox, reply):

From: "Davide G. M. Salvetti" <salve@debian.org>
To: Vagrant Cascadian <vagrant@reproducible-builds.org>
Cc: 990300@bugs.debian.org
Subject: Re: Bug#990300: auctex: reproducible builds: Embedded timestamps in .el files
Date: Sat, 26 Jun 2021 11:03:19 +0200
tags 990300 patch confirmed pending
thanks
>>>>>  VC == Vagrant Cascadian [2021-6-24]

VC> The build timestamp is embedded in various .el files:

[...]

VC> The attached patches fix this by setting the timestamp on tex.el from
VC> debian/rules using debian/changelog as a reference timestamp, and
VC> patching Makefile.in to do the same for preview-latex.el.

VC> Applying these patches should make auctex reproducible in the current
VC> tests.reproducible-builds.org infrastructure.

Hi Vagrant,

thank you for the report and patches.

-- 
Greetings,
Davide



Added tag(s) pending and confirmed. Request was from "Davide G. M. Salvetti" <salve@debian.org> to control@bugs.debian.org. (Sat, 26 Jun 2021 09:15:03 GMT) (full text, mbox, link).


Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Wed May 17 12:11:32 2023; Machine Name: bembo

Debian Bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.