GNU bug report logs - #17312
‘guix authenticate’ failure in C locale

Previous Next

Package: guix;

Reported by: ludo <at> gnu.org (Ludovic Courtès)

Date: Tue, 22 Apr 2014 08:52:01 UTC

Severity: normal

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: tracker <at> debbugs.gnu.org
Subject: bug#17312: closed (‘guix authenticate’
 failure in C locale)
Date: Tue, 22 Apr 2014 11:36:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 22 Apr 2014 13:35:07 +0200
with message-id <87bnvtzjf8.fsf <at> gnu.org>
and subject line Re: bug#17312: ‘guix authenticate’ failure in C locale
has caused the debbugs.gnu.org bug report #17312,
regarding ‘guix authenticate’ failure in C locale
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
17312: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17312
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: ludo <at> gnu.org (Ludovic Courtès)
To: bug-guix <at> gnu.org
Subject: ‘guix authenticate’ failure in C locale
Date: Tue, 22 Apr 2014 10:51:34 +0200
As seen in <http://hydra.gnu.org/build/54212>, ‘guix authenticate’ could
fail when running in the C locale (as is the case on hydra.gnu.org):

--8<---------------cut here---------------start------------->8---
@ build-started /gnu/store/639n30wn56fsnvxnp5sv4nxshxdsym32-gmp-6.0.0a.drv - x86_64-linux /nix/var/log/guix/drvs/63//9n30wn56fsnvxnp5sv4nxshxdsym32-gmp-6.0.0a.drv
sending 2 store files to 'hydra.gnunet.org'...
importing path `/gnu/store/hyr8lvpbl2lbbkvr5v1qa25895bpcxls-gmp-6.0.0a-guile-builder'
guix archive: error: build failed: program `guix-authenticate' failed with exit code 1
builder for `/gnu/store/639n30wn56fsnvxnp5sv4nxshxdsym32-gmp-6.0.0a.drv' failed to produce output path `/gnu/store/6va1dygagfrlc1xqy71ckawh4cymrl4h-gmp-6.0.0a-debug'
@ hook-failed /gnu/store/639n30wn56fsnvxnp5sv4nxshxdsym32-gmp-6.0.0a.drv - 0 builder for `/gnu/store/639n30wn56fsnvxnp5sv4nxshxdsym32-gmp-6.0.0a.drv' failed to produce output path `/gnu/store/6va1dygagfrlc1xqy71ckawh4cymrl4h-gmp-6.0.0a-debug'
--8<---------------cut here---------------end--------------->8---

The problem was that it could in some cases produce a signature sexp
with an invalid hash value.  For example:

  guix  archive --export /gnu/store/hyr8lvpbl2lbbkvr5v1qa25895bpcxls-gmp-6.0.0a-guile-builder

would produce an archive with a signature sexp like this (literally):

  (signature 
   (data 
    (flags pkcs1)
    (hash sha256 "^?\vU????{N4?`??eL??x???|1y????{L")
    )

  [...]

The problem is that the hash value shown here is the result of
substituting non-ASCII characters with question marks and other things.
Obviously signature verification on such a thing would fail, leading to
errors like the one above.

This could happen in some cases, when libgcrypt would choose to use a
byte string representation instead of a hexadecimal string, and is due
to the fact that ‘string->canonical-sexp’ would convert strings passed
to ‘gcry_sexp_new’ to locale encoding.

This is fixed with commit 6030d84 (see that commit for a concrete
example.)

Ludo’.


[Message part 3 (message/rfc822, inline)]
From: ludo <at> gnu.org (Ludovic Courtès)
To: 17312-done <at> debbugs.gnu.org
Subject: Re: bug#17312: ‘guix authenticate’
 failure in C locale
Date: Tue, 22 Apr 2014 13:35:07 +0200
ludo <at> gnu.org (Ludovic Courtès) skribis:

> This is fixed with commit 6030d84 (see that commit for a concrete
> example.)

A related issue is the choice of the stdout encoding used by ‘guix
authenticate’, fixed in 6f69588.

This appears to solve this bug.

Ludo’.


This bug report was last modified 11 years and 33 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.