Report forwarded
to bug-guix@gnu.org: bug#52801; Package guix.
(Sun, 26 Dec 2021 10:16:02 GMT) (full text, mbox, link).
Acknowledgement sent
to Grigory Shepelev <shegeley@gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix@gnu.org.
(Sun, 26 Dec 2021 10:16:02 GMT) (full text, mbox, link).
To: Grigory Shepelev <shegeley@gmail.com>, 52801@debbugs.gnu.org
Subject: Re: bug#52801: Guile inconsistently misbehaves in case of escapes
and carriage returns, breaking "guix pull"
Date: Sun, 26 Dec 2021 11:22:32 +0000
retitle 52801 Guile inconsistently misbehaves in case of escapes and carriage returns, breaking "guix pull"
severity 52801 important
thanks
Grigory Shepelev schreef op zo 26-12-2021 om 13:14 [+0300]:
Today's guix pull gives the following bug.
Seems like an instance of <https://issues.guix.gnu.org/52559#15>.
I took the liberty of renaming the bug report appropriately.
Anyway, here's the minimal reproducer:
Run the following in a REPL:
(call-with-input-string "\"Hello\\\rcarriage return!\"" read)
;; --> invalid character in escape sequence: #\return
Greetings,
Maxime.
Changed bug title to 'Guil misbehaves in case of escapes and carriage returns, sometimes breaking "guix pull"' from 'Bug report'
Request was from Maxime Devos <maximedevos@telenet.be>
to control@debbugs.gnu.org.
(Sun, 26 Dec 2021 15:21:01 GMT) (full text, mbox, link).
Severity set to 'important' from 'normal'
Request was from Maxime Devos <maximedevos@telenet.be>
to control@debbugs.gnu.org.
(Sun, 26 Dec 2021 15:21:01 GMT) (full text, mbox, link).
Changed bug title to 'Guile misbehaves in case of escapes and carriage returns, sometimes breaking "guix pull"' from 'Guil misbehaves in case of escapes and carriage returns, sometimes breaking "guix pull"'
Request was from Maxime Devos <maximedevos@telenet.be>
to control@debbugs.gnu.org.
(Sun, 26 Dec 2021 15:23:01 GMT) (full text, mbox, link).
Information forwarded
to bug-guix@gnu.org: bug#52801; Package guix.
(Sun, 30 Jan 2022 17:53:02 GMT) (full text, mbox, link).
To: Grigory Shepelev <shegeley@gmail.com>, Maxime Devos
<maximedevos@telenet.be>
Cc: 52801@debbugs.gnu.org
Subject: Re: bug#52801: Guile misbehaves in case of escapes and carriage
returns, sometimes breaking "guix pull"
Date: Sun, 30 Jan 2022 18:52:18 +0100
Hi,
Grigory Shepelev <shegeley@gmail.com> skribis:
> shegeley@zone51 ~$ guix pull
> Updating channel 'nonguix' from Git repository at 'https://gitlab.com/nonguix/nonguix'...
> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
> Building from these channels:
> guix https://git.savannah.gnu.org/git/guix.git 2495582
> nonguix https://gitlab.com/nonguix/nonguix 39e4b41
> Computing Guix derivation for 'x86_64-linux'... -ice-9/read.scm:126:4: In procedure read-string:
> gnu/packages/virtualization.scm:640:1: invalid character in escape sequence: #\return
> guix pull: error: You found a bug: the program '/gnu/store/w1hd6ab7f92y0f2r1ah4yyvi205a71bc-compute-guix-derivation'
> failed to compute the derivation for Guix (version: "2495582e08cf411163f0799d290fda5101141949"; system: "x86_64-linux";
> host version: "1dfe8c372163d481ebebb97dd3b4cafa49906b28"; pull-version: 1).
Maxime Devos <maximedevos@telenet.be> skribis:
> Seems like an instance of <https://issues.guix.gnu.org/52559#15>.
> I took the liberty of renaming the bug report appropriately.
>
> Anyway, here's the minimal reproducer:
>
> Run the following in a REPL:
> (call-with-input-string "\"Hello\\\rcarriage return!\"" read)
> ;; --> invalid character in escape sequence: #\return
That’s expected. Conversely, this one works:
(call-with-input-string "\"Hello \\\nnewline!\"" read)
What was in gnu/packages/virtualization.scm:640:1 at that point?
--8<---------------cut here---------------start------------->8---
$ git ls-tree 2495582e08cf411163f0799d290fda5101141949 -- gnu/packages
040000 tree 8070c9587f76797cf16800522688ded39c956d00 gnu/packages
$ git ls-tree 8070c9587f76797cf16800522688ded39c956d00 |grep virtuali
100644 blob 20ffb4a481239349078e2a2864d1bd873dfcd143 virtualization.scm
$ git show 20ffb4a481239349078e2a2864d1bd873dfcd143 |head -649 |tail -10
"/run/setuid-programs:/run/current-system/profile/sbin:\
/run/current-system/profile/bin"))))
(add-after 'bootstrap 'patch-sphinx-version-detection
(lambda _
;; The build system runs 'sphinx-build --version' to verify that
;; the Sphinx is recent enough, but does not expect the
;; .sphinx-build-real executable name created by the Sphinx wrapper.
(substitute* "configure"
(("\\$SPHINX --version 2>&1")
"$SPHINX --version 2>&1 \
--8<---------------cut here---------------end--------------->8---
AFAICS, this was a regular \n (not \r) following backslash.
Did the issue magically disappear?
Grigory, could it be that libgit2 somehow converted \n to \r\n on your
machine, or that you manually accesses files under
~/.cache/guix/checkouts?
Thanks,
Ludo’.
Information forwarded
to bug-guix@gnu.org: bug#52801; Package guix.
(Sun, 30 Jan 2022 19:47:01 GMT) (full text, mbox, link).
Seems like the problem was in my .gitconfig file where "autocrlf = true". I
set it to "false", and cleared the cache. Then the "guix pull" started to
work as expected.
I don't even remember why I had to get into "git's guts". Something like:
had some problem with some exact project where my colleague used macOS or
windows and some files that came from git had some problems with that.
вс, 30 янв. 2022 г. в 20:52, Ludovic Courtès <ludo@gnu.org>:
> Hi,
>
> Grigory Shepelev <shegeley@gmail.com> skribis:
>
> > shegeley@zone51 ~$ guix pull
> > Updating channel 'nonguix' from Git repository at '
> https://gitlab.com/nonguix/nonguix'...
> > Updating channel 'guix' from Git repository at '
> https://git.savannah.gnu.org/git/guix.git'...
> > Building from these channels:
> > guix https://git.savannah.gnu.org/git/guix.git 2495582
> > nonguix https://gitlab.com/nonguix/nonguix 39e4b41
> > Computing Guix derivation for 'x86_64-linux'... -ice-9/read.scm:126:4:
> In procedure read-string:
> > gnu/packages/virtualization.scm:640:1: invalid character in escape
> sequence: #\return
> > guix pull: error: You found a bug: the program
> '/gnu/store/w1hd6ab7f92y0f2r1ah4yyvi205a71bc-compute-guix-derivation'
> > failed to compute the derivation for Guix (version:
> "2495582e08cf411163f0799d290fda5101141949"; system: "x86_64-linux";
> > host version: "1dfe8c372163d481ebebb97dd3b4cafa49906b28"; pull-version:
> 1).
>
> Maxime Devos <maximedevos@telenet.be> skribis:
>
> > Seems like an instance of <https://issues.guix.gnu.org/52559#15>.
> > I took the liberty of renaming the bug report appropriately.
> >
> > Anyway, here's the minimal reproducer:
> >
> > Run the following in a REPL:
> > (call-with-input-string "\"Hello\\\rcarriage return!\"" read)
> > ;; --> invalid character in escape sequence: #\return
>
> That’s expected. Conversely, this one works:
>
> (call-with-input-string "\"Hello \\\nnewline!\"" read)
>
> What was in gnu/packages/virtualization.scm:640:1 at that point?
>
> --8<---------------cut here---------------start------------->8---
> $ git ls-tree 2495582e08cf411163f0799d290fda5101141949 -- gnu/packages
> 040000 tree 8070c9587f76797cf16800522688ded39c956d00 gnu/packages
> $ git ls-tree 8070c9587f76797cf16800522688ded39c956d00 |grep virtuali
> 100644 blob 20ffb4a481239349078e2a2864d1bd873dfcd143 virtualization.scm
> $ git show 20ffb4a481239349078e2a2864d1bd873dfcd143 |head -649 |tail -10
> "/run/setuid-programs:/run/current-system/profile/sbin:\
> /run/current-system/profile/bin"))))
> (add-after 'bootstrap 'patch-sphinx-version-detection
> (lambda _
> ;; The build system runs 'sphinx-build --version' to verify
> that
> ;; the Sphinx is recent enough, but does not expect the
> ;; .sphinx-build-real executable name created by the Sphinx
> wrapper.
> (substitute* "configure"
> (("\\$SPHINX --version 2>&1")
> "$SPHINX --version 2>&1 \
> --8<---------------cut here---------------end--------------->8---
>
> AFAICS, this was a regular \n (not \r) following backslash.
>
> Did the issue magically disappear?
>
> Grigory, could it be that libgit2 somehow converted \n to \r\n on your
> machine, or that you manually accesses files under
> ~/.cache/guix/checkouts?
>
> Thanks,
> Ludo’.
>
That explains why the problem was raised on my desktop PC as well. It uses
the same .gitconfig file.
вс, 30 янв. 2022 г. в 22:45, Grigory Shepelev <shegeley@gmail.com>:
> Seems like the problem was in my .gitconfig file where "autocrlf = true".
> I set it to "false", and cleared the cache. Then the "guix pull" started to
> work as expected.
> I don't even remember why I had to get into "git's guts". Something like:
> had some problem with some exact project where my colleague used macOS or
> windows and some files that came from git had some problems with that.
>
> вс, 30 янв. 2022 г. в 20:52, Ludovic Courtès <ludo@gnu.org>:
>
>> Hi,
>>
>> Grigory Shepelev <shegeley@gmail.com> skribis:
>>
>> > shegeley@zone51 ~$ guix pull
>> > Updating channel 'nonguix' from Git repository at '
>> https://gitlab.com/nonguix/nonguix'...
>> > Updating channel 'guix' from Git repository at '
>> https://git.savannah.gnu.org/git/guix.git'...
>> > Building from these channels:
>> > guix https://git.savannah.gnu.org/git/guix.git 2495582
>> > nonguix https://gitlab.com/nonguix/nonguix 39e4b41
>> > Computing Guix derivation for 'x86_64-linux'... -ice-9/read.scm:126:4:
>> In procedure read-string:
>> > gnu/packages/virtualization.scm:640:1: invalid character in escape
>> sequence: #\return
>> > guix pull: error: You found a bug: the program
>> '/gnu/store/w1hd6ab7f92y0f2r1ah4yyvi205a71bc-compute-guix-derivation'
>> > failed to compute the derivation for Guix (version:
>> "2495582e08cf411163f0799d290fda5101141949"; system: "x86_64-linux";
>> > host version: "1dfe8c372163d481ebebb97dd3b4cafa49906b28"; pull-version:
>> 1).
>>
>> Maxime Devos <maximedevos@telenet.be> skribis:
>>
>> > Seems like an instance of <https://issues.guix.gnu.org/52559#15>.
>> > I took the liberty of renaming the bug report appropriately.
>> >
>> > Anyway, here's the minimal reproducer:
>> >
>> > Run the following in a REPL:
>> > (call-with-input-string "\"Hello\\\rcarriage return!\"" read)
>> > ;; --> invalid character in escape sequence: #\return
>>
>> That’s expected. Conversely, this one works:
>>
>> (call-with-input-string "\"Hello \\\nnewline!\"" read)
>>
>> What was in gnu/packages/virtualization.scm:640:1 at that point?
>>
>> --8<---------------cut here---------------start------------->8---
>> $ git ls-tree 2495582e08cf411163f0799d290fda5101141949 -- gnu/packages
>> 040000 tree 8070c9587f76797cf16800522688ded39c956d00 gnu/packages
>> $ git ls-tree 8070c9587f76797cf16800522688ded39c956d00 |grep virtuali
>> 100644 blob 20ffb4a481239349078e2a2864d1bd873dfcd143 virtualization.scm
>> $ git show 20ffb4a481239349078e2a2864d1bd873dfcd143 |head -649 |tail -10
>> "/run/setuid-programs:/run/current-system/profile/sbin:\
>> /run/current-system/profile/bin"))))
>> (add-after 'bootstrap 'patch-sphinx-version-detection
>> (lambda _
>> ;; The build system runs 'sphinx-build --version' to verify
>> that
>> ;; the Sphinx is recent enough, but does not expect the
>> ;; .sphinx-build-real executable name created by the Sphinx
>> wrapper.
>> (substitute* "configure"
>> (("\\$SPHINX --version 2>&1")
>> "$SPHINX --version 2>&1 \
>> --8<---------------cut here---------------end--------------->8---
>>
>> AFAICS, this was a regular \n (not \r) following backslash.
>>
>> Did the issue magically disappear?
>>
>> Grigory, could it be that libgit2 somehow converted \n to \r\n on your
>> machine, or that you manually accesses files under
>> ~/.cache/guix/checkouts?
>>
>> Thanks,
>> Ludo’.
>>
>
The issue can be closed I guess. Thanks for your assistance.
пн, 31 янв. 2022 г. в 00:06, Maxime Devos <maximedevos@telenet.be>:
> Grigory Shepelev schreef op zo 30-01-2022 om 22:45 [+0300]:
> > Seems like the problem was in my .gitconfig file where "autocrlf =
> > true". I set it to "false", and cleared the cache. Then the "guix
> > pull" started to work as expected.
>
> According to
> <https://github.com/libgit2/libgit2/blob/HEAD/include/git2/clone.h#L111>
> and <https://libgit2.org/libgit2/#HEAD/type/git_checkout_options>,
> we can tell libgit to not do CRLF conversion, which would make (guix git)
> more robust.
>
> Greetings,
> Maxime.
>
Grigory Shepelev schreef op ma 31-01-2022 om 15:48 [+0300]:
> The issue can be closed I guess. Thanks for your assistance.
> пн, 31 янв. 2022 г. в 00:06, Maxime Devos <maximedevos@telenet.be>:
> > Grigory Shepelev schreef op zo 30-01-2022 om 22:45 [+0300]:
> > > Seems like the problem was in my .gitconfig file where "autocrlf
> > =
> > > true". I set it to "false", and cleared the cache. Then the "guix
> > > pull" started to work as expected.
> >
> > According to
> >
> <https://github.com/libgit2/libgit2/blob/HEAD/include/git2/clone.h#L111
> > >
> > and <https://libgit2.org/libgit2/#HEAD/type/git_checkout_options>,
> > we can tell libgit to not do CRLF conversion, which would make
> > (guix git)
> > more robust.
I don't think that modifying some git settings should break "guix
pull",
so I wouldn't close yet.
Greetings,
Maxime
Changed bug title to ''autocrlf' in ~/.gitconfig can break "guix pull" checkouts' from 'Guile misbehaves in case of escapes and carriage returns, sometimes breaking "guix pull"'
Request was from Ludovic Courtès <ludo@gnu.org>
to control@debbugs.gnu.org.
(Tue, 01 Feb 2022 08:46:01 GMT) (full text, mbox, link).
Information forwarded
to bug-guix@gnu.org: bug#52801; Package guix.
(Tue, 01 Feb 2022 08:49:01 GMT) (full text, mbox, link).
Subject: Re: bug#52801: Guile misbehaves in case of escapes and carriage
returns, sometimes breaking "guix pull"
Date: Tue, 01 Feb 2022 09:48:00 +0100
Hi Maxime,
Maxime Devos <maximedevos@telenet.be> skribis:
> Grigory Shepelev schreef op zo 30-01-2022 om 22:45 [+0300]:
>> Seems like the problem was in my .gitconfig file where "autocrlf =
>> true". I set it to "false", and cleared the cache. Then the "guix
>> pull" started to work as expected.
>
> According to
> <https://github.com/libgit2/libgit2/blob/HEAD/include/git2/clone.h#L111>
> and <https://libgit2.org/libgit2/#HEAD/type/git_checkout_options>,
> we can tell libgit to not do CRLF conversion, which would make (guix git)
> more robust.
Indeed. Looks like Guile-Git doesn’t expose checkout options yet, so
doing that would be the first step.
Maybe Guix should just ignore ~/.gitconfig altogether?
Thanks,
Ludo’.
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/.