GNU bug report logs -
#80133
31.0.50; [ELPA] reproducible builds; elpa--makeinfo temporary file names
Previous Next
To reply to this bug, email your comments to 80133 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
monnier <at> iro.umontreal.ca, philipk <at> posteo.net, bug-gnu-emacs <at> gnu.org:
bug#80133; Package
emacs.
(Mon, 05 Jan 2026 11:11:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Daniel Mendler <mail <at> daniel-mendler.de>:
New bug report received and forwarded. Copy sent to
monnier <at> iro.umontreal.ca, philipk <at> posteo.net, bug-gnu-emacs <at> gnu.org.
(Mon, 05 Jan 2026 11:11:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
The `elpaa--makeinfo' function which is part of the ELPA build process
in elpa-admin.el uses a temporary file name as output file for
"makeinfo" (tmpfile).
(apply #'elpaa--call-sandboxed
t "makeinfo" "--no-split" input-name "-o" tmpfile extraargs)
This results in *.info files which differ unnecessarily between
versions, since info files contain lines like this:
This is tmpURv278.info, produced by makeinfo version 7.1.1 from
foo.texi.
I suggest to use a stable name for the output file such the the
generated info files do not differ between versions, if there have not
been any changes (reproducible builds).
Information forwarded
to
bug-gnu-emacs <at> gnu.org:
bug#80133; Package
emacs.
(Mon, 05 Jan 2026 13:01:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 80133 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Daniel Mendler via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs <at> gnu.org> writes:
> The `elpaa--makeinfo' function which is part of the ELPA build process
> in elpa-admin.el uses a temporary file name as output file for
> "makeinfo" (tmpfile).
>
> (apply #'elpaa--call-sandboxed
> t "makeinfo" "--no-split" input-name "-o" tmpfile extraargs)
>
> This results in *.info files which differ unnecessarily between
> versions, since info files contain lines like this:
>
> This is tmpURv278.info, produced by makeinfo version 7.1.1 from
> foo.texi.
>
> I suggest to use a stable name for the output file such the the
> generated info files do not differ between versions, if there have not
> been any changes (reproducible builds).
The following should fix the issue, and doesn't appear to introduce any
regressions:
[Message part 2 (text/x-patch, inline)]
diff --git a/elpa-admin.el b/elpa-admin.el
index 240fa0df73..4b3c526614 100644
--- a/elpa-admin.el
+++ b/elpa-admin.el
@@ -2830,13 +2837,13 @@ directory; one of archive, archive-devel."
(defun elpaa--makeinfo (input output &optional extraargs)
(let* ((input-dir (file-name-directory input))
(input-name (file-name-nondirectory input))
- (output-ext (file-name-extension output))
;; The sandbox may not allow write access to the output,
;; so we first create the file inside the sandbox and then
;; move it to its intended destination.
(tmpfile
- (concat (make-temp-name (expand-file-name "doc" input-dir))
- (if output-ext (concat "." output-ext)))))
+ (expand-file-name
+ (file-name-nondirectory output)
+ (make-temp-file input-name t))))
(elpaa--temp-file tmpfile)
(with-temp-buffer
;; We change directory to that of the input file, because
Information forwarded
to
bug-gnu-emacs <at> gnu.org:
bug#80133; Package
emacs.
(Mon, 05 Jan 2026 14:31:03 GMT)
Full text and
rfc822 format available.
Message #11 received at 80133 <at> debbugs.gnu.org (full text, mbox):
Philip Kaludercic <philipk <at> posteo.net> writes:
> Daniel Mendler via "Bug reports for GNU Emacs, the Swiss army knife of
> text editors" <bug-gnu-emacs <at> gnu.org> writes:
>
>> The `elpaa--makeinfo' function which is part of the ELPA build process
>> in elpa-admin.el uses a temporary file name as output file for
>> "makeinfo" (tmpfile).
>>
>> (apply #'elpaa--call-sandboxed
>> t "makeinfo" "--no-split" input-name "-o" tmpfile extraargs)
>>
>> This results in *.info files which differ unnecessarily between
>> versions, since info files contain lines like this:
>>
>> This is tmpURv278.info, produced by makeinfo version 7.1.1 from
>> foo.texi.
>>
>> I suggest to use a stable name for the output file such the the
>> generated info files do not differ between versions, if there have not
>> been any changes (reproducible builds).
>
> The following should fix the issue, and doesn't appear to introduce any
> regressions:
Thanks! Seems simple enough. Can you test this locally? If Stefan
agrees, just install it, and we will see soon enough if packages are
created successfully on ELPA-devel with stable info files.
> diff --git a/elpa-admin.el b/elpa-admin.el
> index 240fa0df73..4b3c526614 100644
> --- a/elpa-admin.el
> +++ b/elpa-admin.el
> @@ -2830,13 +2837,13 @@ directory; one of archive, archive-devel."
> (defun elpaa--makeinfo (input output &optional extraargs)
> (let* ((input-dir (file-name-directory input))
> (input-name (file-name-nondirectory input))
> - (output-ext (file-name-extension output))
> ;; The sandbox may not allow write access to the output,
> ;; so we first create the file inside the sandbox and then
> ;; move it to its intended destination.
> (tmpfile
> - (concat (make-temp-name (expand-file-name "doc" input-dir))
> - (if output-ext (concat "." output-ext)))))
> + (expand-file-name
> + (file-name-nondirectory output)
> + (make-temp-file input-name t))))
> (elpaa--temp-file tmpfile)
> (with-temp-buffer
> ;; We change directory to that of the input file, because
Information forwarded
to
bug-gnu-emacs <at> gnu.org:
bug#80133; Package
emacs.
(Mon, 05 Jan 2026 14:36:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 80133 <at> debbugs.gnu.org (full text, mbox):
Daniel Mendler <mail <at> daniel-mendler.de> writes:
> Philip Kaludercic <philipk <at> posteo.net> writes:
>
>> Daniel Mendler via "Bug reports for GNU Emacs, the Swiss army knife of
>> text editors" <bug-gnu-emacs <at> gnu.org> writes:
>>
>>> The `elpaa--makeinfo' function which is part of the ELPA build process
>>> in elpa-admin.el uses a temporary file name as output file for
>>> "makeinfo" (tmpfile).
>>>
>>> (apply #'elpaa--call-sandboxed
>>> t "makeinfo" "--no-split" input-name "-o" tmpfile extraargs)
>>>
>>> This results in *.info files which differ unnecessarily between
>>> versions, since info files contain lines like this:
>>>
>>> This is tmpURv278.info, produced by makeinfo version 7.1.1 from
>>> foo.texi.
>>>
>>> I suggest to use a stable name for the output file such the the
>>> generated info files do not differ between versions, if there have not
>>> been any changes (reproducible builds).
>>
>> The following should fix the issue, and doesn't appear to introduce any
>> regressions:
>
> Thanks! Seems simple enough. Can you test this locally?
Yes I can, the first line now looks like this:
This is compat.info, produced by makeinfo version 7.1.1 from
compat.texi.
> If Stefan
> agrees, just install it, and we will see soon enough if packages are
> created successfully on ELPA-devel with stable info files.
>
>> diff --git a/elpa-admin.el b/elpa-admin.el
>> index 240fa0df73..4b3c526614 100644
>> --- a/elpa-admin.el
>> +++ b/elpa-admin.el
>> @@ -2830,13 +2837,13 @@ directory; one of archive, archive-devel."
>> (defun elpaa--makeinfo (input output &optional extraargs)
>> (let* ((input-dir (file-name-directory input))
>> (input-name (file-name-nondirectory input))
>> - (output-ext (file-name-extension output))
>> ;; The sandbox may not allow write access to the output,
>> ;; so we first create the file inside the sandbox and then
>> ;; move it to its intended destination.
>> (tmpfile
>> - (concat (make-temp-name (expand-file-name "doc" input-dir))
>> - (if output-ext (concat "." output-ext)))))
>> + (expand-file-name
>> + (file-name-nondirectory output)
>> + (make-temp-file input-name t))))
>> (elpaa--temp-file tmpfile)
>> (with-temp-buffer
>> ;; We change directory to that of the input file, because
Information forwarded
to
bug-gnu-emacs <at> gnu.org:
bug#80133; Package
emacs.
(Mon, 05 Jan 2026 15:13:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 80133 <at> debbugs.gnu.org (full text, mbox):
> diff --git a/elpa-admin.el b/elpa-admin.el
> index 240fa0df73..4b3c526614 100644
> --- a/elpa-admin.el
> +++ b/elpa-admin.el
> @@ -2830,13 +2837,13 @@ directory; one of archive, archive-devel."
> (defun elpaa--makeinfo (input output &optional extraargs)
> (let* ((input-dir (file-name-directory input))
> (input-name (file-name-nondirectory input))
> - (output-ext (file-name-extension output))
> ;; The sandbox may not allow write access to the output,
> ;; so we first create the file inside the sandbox and then
> ;; move it to its intended destination.
> (tmpfile
> - (concat (make-temp-name (expand-file-name "doc" input-dir))
> - (if output-ext (concat "." output-ext)))))
> + (expand-file-name
> + (file-name-nondirectory output)
> + (make-temp-file input-name t))))
> (elpaa--temp-file tmpfile)
I can't remember why I went through the trouble of doing the
`output-ext` dance, but I think we should preserve it.
Another problem with that new code is that the temp dir created by
`make-temp-file` is not removed because `elpaa--temp-file` only
registers the file for deletion but not its holding directory.
We can fix it by adding a call like
(elpaa--temp-file (lambda () (delete-directory ...)))
- Stefan
Information forwarded
to
bug-gnu-emacs <at> gnu.org:
bug#80133; Package
emacs.
(Mon, 05 Jan 2026 17:18:01 GMT)
Full text and
rfc822 format available.
Message #20 received at 80133 <at> debbugs.gnu.org (full text, mbox):
>> diff --git a/elpa-admin.el b/elpa-admin.el
>> index 240fa0df73..4b3c526614 100644
>> --- a/elpa-admin.el
>> +++ b/elpa-admin.el
>> @@ -2830,13 +2837,13 @@ directory; one of archive, archive-devel."
>> (defun elpaa--makeinfo (input output &optional extraargs)
>> (let* ((input-dir (file-name-directory input))
>> (input-name (file-name-nondirectory input))
>> - (output-ext (file-name-extension output))
>> ;; The sandbox may not allow write access to the output,
>> ;; so we first create the file inside the sandbox and then
>> ;; move it to its intended destination.
>> (tmpfile
>> - (concat (make-temp-name (expand-file-name "doc" input-dir))
>> - (if output-ext (concat "." output-ext)))))
>> + (expand-file-name
>> + (file-name-nondirectory output)
>> + (make-temp-file input-name t))))
>> (elpaa--temp-file tmpfile)
>
> I can't remember why I went through the trouble of doing the
> `output-ext` dance, but I think we should preserve it.
Oh, sorry, I now see that this dance is indeed unneeded with your code.
> Another problem with that new code is that the temp dir created by
> `make-temp-file` is not removed because `elpaa--temp-file` only
> registers the file for deletion but not its holding directory.
> We can fix it by adding a call like
>
> (elpaa--temp-file (lambda () (delete-directory ...)))
This still remains AFAICT,
Stefan
This bug report was last modified 6 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.