On 2021-01-22, Vagrant Cascadian wrote: > I've uploaded guix 1.2.0 built against guile-2.2 to Debian, and while it > builds fine on the official buildd.debian.org infrastructure, on amd64 > and arm64 the "channel-news, one entry" test from tests/channels.scm > fails on tests.reproducible-builds.org. > > There are likely a few differences in the two build environments, > possibly including network access. > > Does the "channel-news, one entry" test indirectly depend on network or > bootstrap binaries? > > Could a difference in locale related variables affect the result of the > test (e.g. LANGUAGE=en:en_US vs. LANGUAGE unset, LC_ALL unset > vs. LC_ALL=C or LC_ALL=C.UTF-8)? > > https://tests.reproducible-builds.org/debian/rb-pkg/experimental/amd64/guix.html Still basically the same story with 1.3.0rc1, in some cases this test fails, but I haven't consistently figured out what triggers it. > test-name: channel-news, one entry > location: /build/1st/guix-1.2.0/tests/channels.scm:324 > source: > + (test-assert > + "channel-news, one entry" > + (with-temporary-git-repository > + directory > + `((add ".guix-channel" > + ,(object->string > + '(channel (version 0) (news-file "news.scm")))) > + (commit "first commit") > + (add "src/a.txt" "A") > + (commit "second commit") > + (tag "tag-for-first-news-entry") > + (add "news.scm" > + ,(lambda (repository) > + (let ((previous > + (reference-name->oid repository "HEAD"))) > + (object->string > + `(channel-news > + (version 0) > + (entry (commit ,(oid->string previous)) > + (title (en "New file!") (eo "Nova dosiero!")) > + (body (en "Yeah, a.txt.")))))))) > + (commit "third commit") > + (add "src/b.txt" "B") > + (commit "fourth commit") > + (add hint: Using 'master' as the name for the initial branch. This default branch name > hint: is subject to change. To configure the initial branch name to use in all > hint: of your new repositories, which will suppress this warning, call: > hint: > hint: git config --global init.defaultBranch > hint: > hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and > hint: 'development'. The just-created branch can be renamed via this command: > hint: > hint: git branch -m > Initialized empty Git repository in /tmp/guix-directory.6SfxEu/.git/ > [master (root-commit) 8b5d0e8] first commit > 1 file changed, 1 insertion(+) > create mode 100644 .guix-channel > [master b8dd467] second commit > 1 file changed, 1 insertion(+) > create mode 100644 src/a.txt > [master 324d7bc] third commit > 1 file changed, 1 insertion(+) > create mode 100644 news.scm > [master 2cd62e1] fourth commit > 1 file changed, 1 insertion(+) > create mode 100644 src/b.txt > [master d0e63c3] fifth commit > 1 file changed, 1 insertion(+), 1 deletion(-) > hint: Using 'master' as the name for the initial branch. This default branch name > hint: is subject to change. To configure the initial branch name to use in all > hint: of your new repositories, which will suppress this warning, call: > hint: > hint: git config --global init.defaultBranch > hint: > hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and > hint: 'development'. The just-created branch can be renamed via this command: > hint: > hint: git branch -m > Initialized empty Git repository in /tmp/guix-directory.M2UpCv/.git/ > [master (root-commit) f84a5c3] first commit > 1 file changed, 1 insertion(+) > create mode 100644 a.txt > [master b1e63da] second commit > 1 file changed, 1 insertion(+) > create mode 100644 b.scm > "news.scm" > + ,(lambda (repository) > + (let ((second > + (commit-id > + (find-commit repository "second commit"))) > + (previous > + (reference-name->oid repository "HEAD"))) > + (object->string > + `(channel-news > + (version 0) > + (entry (commit ,(oid->string previous)) > + (title (en "Another file!")) > + (body (en "Yeah, b.txt."))) > + (entry (tag "tag-for-first-news-entry") > + (title (en "Old news.") (eo "Malnova?oj.")) > + (body (en "For a.txt")))))))) > + (commit "fifth commit")) > + (with-repository > + directory > + repository > + (define (find-commit* message) > + (oid->string > + (commit-id (find-commit repository message)))) > + (let ((channel > + (channel > + (url (string-append "file://" directory)) > + (name 'foo))) > + (commit1 (find-commit* "first commit")) > + (commit2 (find-commit* "second commit")) > + (commit3 (find-commit* "third commit")) > + (commit4 (find-commit* "fourth commit")) > + (commit5 (find-commit* "fifth commit"))) > + (and (null? (channel-news-for-commit channel commit2)) > + (lset= string=? > + (map channel-news-entry-commit > + (channel-news-for-commit channel commit5)) > + (list commit2 commit4)) > + (lset= equal? > + (map channel-news-entry-title > + (channel-news-for-commit channel commit5)) > + '((("en" . "Another file!")) > + (("en" . "Old news.") ("eo" . "Malnova?oj.")))) > + (lset= string=? > + (map channel-news-entry-commit > + (channel-news-for-commit channel commit3)) > + (list commit2)) > + (lset= string=? > + (map channel-news-entry-commit > + (channel-news-for-commit channel commit3 commit1)) > + (list commit2)) > + (lset= string=? > + (map channel-news-entry-commit > + (channel-news-for-commit channel commit5 commit3)) > + (list commit4)) > + (lset= string=? > + (map channel-news-entry-commit > + (channel-news-for-commit channel commit5 commit1)) > + (list commit4 commit2)) > + (lset= equal? > + (map channel-news-entry-tag > + (channel-news-for-commit channel commit5 commit1)) > + '(#f "tag-for-first-news-entry"))))))) > actual-value: #f > result: FAIL live well, vagrant