GNU bug report logs -
#44835
gnu/ci.go: Embeds build path, breaking reproducible builds
Previous Next
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Something in gnu/ci.scm is embedding the build path when compiled into
gnu/ci.go, as can be seen:
https://tests.reproducible-builds.org/debian/rb-pkg/experimental/amd64/diffoscope-results/guix.html
./usr/lib/x86_64-linux-gnu/guile/3.0/site-ccache/gnu/ci.go
strings --all --bytes=8 {}
Offset 85, 15 lines modified Offset 85, 15 lines modified
...
92 /build/1st/guix-1.2.0~rc2/gnu/ci.scm 92 /build/2/guix-1.2.0~rc2/2nd/gnu/ci.scm
While guix builds of guix are typically built with a consistent build
path, it would be nice to fix this issue for other environments where
the build path may vary between builds.
My *wild* guess is it maybe has something to do with the use of
canonicalize-path:
(define (find-current-checkout arguments)
"Find the first checkout of ARGUMENTS that provided the current file.
Return #f if no such checkout is found."
(let ((current-root
(canonicalize-path
(string-append (dirname (current-filename)) "/.."))))
(find (lambda (argument)
(and=> (assq-ref argument 'file-name)
(lambda (name)
(string=? name current-root)))) arguments)))
Either directly or indirectly... does canonicalize-path resolve at build
time? run time? somewhere in-between? Or is this a red herring, and
something else entirely is responsible? I'll let a competent schemer
ponder this! :)
Thanks for all your help!
live well,
vagrant
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 1 year and 73 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.