GNU bug report logs -
#46038
Tests (tests/channels.scm) assume UTF-8 locale
Previous Next
To reply to this bug, email your comments to 46038 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guix <at> gnu.org
:
bug#46038
; Package
guix
.
(Fri, 22 Jan 2021 16:58:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Vagrant Cascadian <vagrant <at> reproducible-builds.org>
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Fri, 22 Jan 2021 16:58:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
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
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 <name>
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 <name>
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 <name>
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 <name>
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
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#46038
; Package
guix
.
(Sun, 02 May 2021 02:24:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 46038 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
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 <name>
> 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 <name>
> 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 <name>
> 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 <name>
> 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
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#46038
; Package
guix
.
(Tue, 04 May 2021 19:54:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 46038 <at> debbugs.gnu.org (full text, mbox):
Hi Vagrant,
Vagrant Cascadian <vagrant <at> reproducible-builds.org> skribis:
> 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:
[...]
>> + (lset= equal?
>> + (map channel-news-entry-title
>> + (channel-news-for-commit channel commit5))
>> + '((("en" . "Another file!"))
>> + (("en" . "Old news.") ("eo" . "Malnova?oj."))))
The culprit is right here: it should read “Malnovaĵoj”, but there’s a
question mark instead of ‘ĵ’.
Could it be that you’re not running tests in a UTF-8 locale?
Thanks,
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#46038
; Package
guix
.
(Tue, 04 May 2021 22:36:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 46038 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 2021-05-04, Ludovic Courtès wrote:
> Vagrant Cascadian <vagrant <at> reproducible-builds.org> skribis:
>
>> 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:
>
> [...]
>
>>> + (lset= equal?
>>> + (map channel-news-entry-title
>>> + (channel-news-for-commit channel commit5))
>>> + '((("en" . "Another file!"))
>>> + (("en" . "Old news.") ("eo" . "Malnova?oj."))))
>
> The culprit is right here: it should read “Malnovaĵoj”, but there’s a
> question mark instead of ‘ĵ’.
>
> Could it be that you’re not running tests in a UTF-8 locale?
Thanks for taking a deeper look!
Yes, on tests.reproducible-builds.org, one build is run in the C locale,
the other in various UTF-8 locales (somewhat arbitrarily tied to
architecture exactly which UTF-8 locale is used). I'm guessing
buildd.debian.org use C.UTF-8, since it builds fine there.
So now the question is what to do; should tests be able to assume a
UTF-8 locale?
Should I try to adapt the test to work in C?
Should I workaround it in the Debian packaging by forcing to use a UTF-8
locale (on Debian, the only one definitely available is C.UTF-8, which
isn't in upstream glibc, and thus not in guix itself).
live well,
vagrant
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#46038
; Package
guix
.
(Thu, 06 May 2021 10:47:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 46038 <at> debbugs.gnu.org (full text, mbox):
Hi,
Vagrant Cascadian <vagrant <at> reproducible-builds.org> skribis:
> So now the question is what to do; should tests be able to assume a
> UTF-8 locale?
>
> Should I try to adapt the test to work in C?
>
> Should I workaround it in the Debian packaging by forcing to use a UTF-8
> locale (on Debian, the only one definitely available is C.UTF-8, which
> isn't in upstream glibc, and thus not in guix itself).
Since it’s the only test that makes this assumption, you can choose
whichever option sounds best to you. In Guix proper, I’d rather assume
we’re running in a UTF-8 locale. If that’s not a good option for you,
you could patch this one non-ASCII character.
HTH!
Ludo’.
Merged 46038 50123 50512.
Request was from
Tobias Geerinckx-Rice <me <at> tobias.gr>
to
control <at> debbugs.gnu.org
.
(Sat, 27 Nov 2021 13:44:02 GMT)
Full text and
rfc822 format available.
Changed bug title to 'Tests assume UTF-8 locale (specifically' from 'guix 1.2.0 test failure: channels-news, one entry'
Request was from
Tobias Geerinckx-Rice <me <at> tobias.gr>
to
control <at> debbugs.gnu.org
.
(Sat, 27 Nov 2021 13:47:02 GMT)
Full text and
rfc822 format available.
Changed bug title to 'Tests (tests/channels.scm) assume UTF-8 locale' from 'Tests assume UTF-8 locale (specifically'
Request was from
Tobias Geerinckx-Rice <me <at> tobias.gr>
to
control <at> debbugs.gnu.org
.
(Sat, 27 Nov 2021 13:58:01 GMT)
Full text and
rfc822 format available.
This bug report was last modified 3 years and 199 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.