unsupported sexp item type #f ```

OpenSubmitted by David Craven.
Details
2 participants
  • David Craven
  • Ludovic Courtès
Owner
unassigned
Severity
normal
Merged with
D
D
David Craven wrote on 22 Jun 2016 18:44
(address . bug-guix@gnu.org)
CAL1_imns2U96NP-CWhU3uxN7+MDmnL9MEBPHNym=cGnqZ_2PaA@mail.gmail.com
Maybe not a bug, but I'm getting the same backtrace when trying to run
./guix archive or ./guix package -i guix or ./guix pull.

Trying to install guix 0.10.0 binary tarball on nixos.

```nix
users.users = {
guixbuild1 = {
isSystemUser = true;
group = "guixbuild";
};
};

users.groups.guixbuild = {};
```

```sh
bin sudo ./guix archive --authorize < ../share/guix/hydra.gnu.org.pub

/gnu/store/3g6zn8y5sfwywr4pqiwqrab735a0x4zl-guix-0.10.0/bin
warning: failed to install locale: Invalid argument
Backtrace:
In ice-9/boot-9.scm:
157: 17 [catch #t #<catch-closure 18097a0> ...]
In unknown file:
?: 16 [apply-smob/1 #<catch-closure 18097a0>]
In ice-9/boot-9.scm:
63: 15 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
432: 14 [eval # #]
In ice-9/boot-9.scm:
2401: 13 [save-module-excursion #<procedure 1826940 at
ice-9/boot-9.scm:4045:3 ()>]
4050: 12 [#<procedure 1826940 at ice-9/boot-9.scm:4045:3 ()>]
1724: 11 [%start-stack load-stack ...]
1729: 10 [#<procedure 183eea0 ()>]
In unknown file:
?: 9 [primitive-load
"/gnu/store/3g6zn8y5sfwywr4pqiwqrab735a0x4zl-guix-0.10.0/bin/.guix-real"]
In guix/ui.scm:
1188: 8 [run-guix-command archive "--authorize"]
In ice-9/boot-9.scm:
157: 7 [catch srfi-34 #<procedure 276d1c0 at guix/ui.scm:419:2 ()> ...]
157: 6 [catch system-error ...]
In guix/scripts/archive.scm:
328: 5 [#<procedure 276c7b0 at guix/scripts/archive.scm:318:2 ()>]
303: 4 [authorize-key]
In ice-9/boot-9.scm:
702: 3 [map #<procedure sexp->canonical-sexp (sexp)> (#f)]
In guix/pk-crypto.scm:
375: 2 [sexp->canonical-sexp #f]
In unknown file:
?: 1 [call-with-output-string #<procedure 27704a0 at
guix/pk-crypto.scm:376:5 (port)>]
?: 0 [scm-error misc-error #f "~A ~S" ("unsupported sexp item type" #f) #f]

ERROR: In procedure scm-error:
ERROR: unsupported sexp item type #f
```
L
L
Ludovic Courtès wrote on 22 Jun 2016 23:28
(name . David Craven)(address . david@craven.ch)(address . 23828@debbugs.gnu.org)
87mvmclxqv.fsf@gnu.org
Hi,

David Craven <david@craven.ch> skribis:

Toggle quote (3 lines)
> Maybe not a bug, but I'm getting the same backtrace when trying to run
> ./guix archive or ./guix package -i guix or ./guix pull.

Do you really type “./guix”? From which directory?

Toggle quote (42 lines)
> bin sudo ./guix archive --authorize < ../share/guix/hydra.gnu.org.pub
>
> /gnu/store/3g6zn8y5sfwywr4pqiwqrab735a0x4zl-guix-0.10.0/bin
> warning: failed to install locale: Invalid argument
> Backtrace:
> In ice-9/boot-9.scm:
> 157: 17 [catch #t #<catch-closure 18097a0> ...]
> In unknown file:
> ?: 16 [apply-smob/1 #<catch-closure 18097a0>]
> In ice-9/boot-9.scm:
> 63: 15 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
> 432: 14 [eval # #]
> In ice-9/boot-9.scm:
> 2401: 13 [save-module-excursion #<procedure 1826940 at
> ice-9/boot-9.scm:4045:3 ()>]
> 4050: 12 [#<procedure 1826940 at ice-9/boot-9.scm:4045:3 ()>]
> 1724: 11 [%start-stack load-stack ...]
> 1729: 10 [#<procedure 183eea0 ()>]
> In unknown file:
> ?: 9 [primitive-load
> "/gnu/store/3g6zn8y5sfwywr4pqiwqrab735a0x4zl-guix-0.10.0/bin/.guix-real"]
> In guix/ui.scm:
> 1188: 8 [run-guix-command archive "--authorize"]
> In ice-9/boot-9.scm:
> 157: 7 [catch srfi-34 #<procedure 276d1c0 at guix/ui.scm:419:2 ()> ...]
> 157: 6 [catch system-error ...]
> In guix/scripts/archive.scm:
> 328: 5 [#<procedure 276c7b0 at guix/scripts/archive.scm:318:2 ()>]
> 303: 4 [authorize-key]
> In ice-9/boot-9.scm:
> 702: 3 [map #<procedure sexp->canonical-sexp (sexp)> (#f)]
> In guix/pk-crypto.scm:
> 375: 2 [sexp->canonical-sexp #f]
> In unknown file:
> ?: 1 [call-with-output-string #<procedure 27704a0 at
> guix/pk-crypto.scm:376:5 (port)>]
> ?: 0 [scm-error misc-error #f "~A ~S" ("unsupported sexp item type" #f) #f]
>
> ERROR: In procedure scm-error:
> ERROR: unsupported sexp item type #f

Could it be that /etc/guix/acl contains bogus data?

Could you try, as root:

rm -f /etc/guix/acl
guix archive --authorize < /path/to/hydra.gnu.org.pub

?

Thanks for the report,
Ludo’.
D
D
David Craven wrote on 23 Jun 2016 05:37
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 23828@debbugs.gnu.org)
CAL1_immTgxUvhD1LUC6p0AJoyRZ+GcPNeqchbJrtAb7N_8TChg@mail.gmail.com
I'm running guix from
`/gnu/store/3g6zn8y5sfwywr4pqiwqrab735a0x4zl-guix-0.10.0/bin` since I
don't have my profile/PATH setup correctly yet. I was under the
impression that `./guix package -i guix` would create the right
symlinks in `/var/guix/profiles/per-user`.

Weird, `/etc/guix/acl` doesn't contain anything but `/etc/nix/acl` does:
```
sudo cat /etc/nix/acl
(acl
(entry
()
(tag
(guix import)
)
)
)
```

After `sudo rm -f /etc/nix/acl` guix or guix-daemon recreates the same
file and exits with the same stack trace.

Thank you
David

On Wed, Jun 22, 2016 at 11:28 PM, Ludovic Courtès <ludo@gnu.org> wrote:
Toggle quote (62 lines)
> Hi,
>
> David Craven <david@craven.ch> skribis:
>
>> Maybe not a bug, but I'm getting the same backtrace when trying to run
>> ./guix archive or ./guix package -i guix or ./guix pull.
>
> Do you really type “./guix”? From which directory?
>
>> bin sudo ./guix archive --authorize < ../share/guix/hydra.gnu.org.pub
>>
>> /gnu/store/3g6zn8y5sfwywr4pqiwqrab735a0x4zl-guix-0.10.0/bin
>> warning: failed to install locale: Invalid argument
>> Backtrace:
>> In ice-9/boot-9.scm:
>> 157: 17 [catch #t #<catch-closure 18097a0> ...]
>> In unknown file:
>> ?: 16 [apply-smob/1 #<catch-closure 18097a0>]
>> In ice-9/boot-9.scm:
>> 63: 15 [call-with-prompt prompt0 ...]
>> In ice-9/eval.scm:
>> 432: 14 [eval # #]
>> In ice-9/boot-9.scm:
>> 2401: 13 [save-module-excursion #<procedure 1826940 at
>> ice-9/boot-9.scm:4045:3 ()>]
>> 4050: 12 [#<procedure 1826940 at ice-9/boot-9.scm:4045:3 ()>]
>> 1724: 11 [%start-stack load-stack ...]
>> 1729: 10 [#<procedure 183eea0 ()>]
>> In unknown file:
>> ?: 9 [primitive-load
>> "/gnu/store/3g6zn8y5sfwywr4pqiwqrab735a0x4zl-guix-0.10.0/bin/.guix-real"]
>> In guix/ui.scm:
>> 1188: 8 [run-guix-command archive "--authorize"]
>> In ice-9/boot-9.scm:
>> 157: 7 [catch srfi-34 #<procedure 276d1c0 at guix/ui.scm:419:2 ()> ...]
>> 157: 6 [catch system-error ...]
>> In guix/scripts/archive.scm:
>> 328: 5 [#<procedure 276c7b0 at guix/scripts/archive.scm:318:2 ()>]
>> 303: 4 [authorize-key]
>> In ice-9/boot-9.scm:
>> 702: 3 [map #<procedure sexp->canonical-sexp (sexp)> (#f)]
>> In guix/pk-crypto.scm:
>> 375: 2 [sexp->canonical-sexp #f]
>> In unknown file:
>> ?: 1 [call-with-output-string #<procedure 27704a0 at
>> guix/pk-crypto.scm:376:5 (port)>]
>> ?: 0 [scm-error misc-error #f "~A ~S" ("unsupported sexp item type" #f) #f]
>>
>> ERROR: In procedure scm-error:
>> ERROR: unsupported sexp item type #f
>
> Could it be that /etc/guix/acl contains bogus data?
>
> Could you try, as root:
>
> rm -f /etc/guix/acl
> guix archive --authorize < /path/to/hydra.gnu.org.pub
>
> ?
>
> Thanks for the report,
> Ludo’.
L
L
Ludovic Courtès wrote on 23 Jun 2016 10:06
(name . David Craven)(address . david@craven.ch)(address . 23828@debbugs.gnu.org)
87d1n8s51h.fsf@gnu.org
David Craven <david@craven.ch> skribis:

Toggle quote (6 lines)
> I'm running guix from
> `/gnu/store/3g6zn8y5sfwywr4pqiwqrab735a0x4zl-guix-0.10.0/bin` since I
> don't have my profile/PATH setup correctly yet. I was under the
> impression that `./guix package -i guix` would create the right
> symlinks in `/var/guix/profiles/per-user`.

OK.

Toggle quote (13 lines)
> Weird, `/etc/guix/acl` doesn't contain anything but `/etc/nix/acl` does:
> ```
> sudo cat /etc/nix/acl
> (acl
> (entry
> ()
> (tag
> (guix import)
> )
> )
> )
> ```

This is clearly bogus (the “()” above). Guix only creates and uses
/etc/guix/acl, not /etc/nix/acl.

Could it be that /etc/guix is a symlink to /etc/nix, or something like
that?

Toggle quote (3 lines)
> After `sudo rm -f /etc/nix/acl` guix or guix-daemon recreates the same
> file and exits with the same stack trace.

By default, Guix ensures that at least your own key, if it exists, is
part of the ACL; this happens in ‘ensure-acl’, in guix/pki.scm.

I suspect that in your case /etc/guix/signing-key.pub is not a valid
key, which is why ‘ensure-acl’ ends up adding “()”. Could you post the
contents of /etc/guix/signing-key.pub? (It’s a public key, so doing it
is OK.)

Possibly this has to do with /etc/guix pointing to /etc/nix, and
/etc/nix/signing-key.pub being a public key in the format that Nix uses,
which is a completely different format.

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 23 Jun 2016 14:54
(name . David Craven)(address . david@craven.ch)
87wplgoyk8.fsf@gnu.org
merge 23828 22459
thanks

David Craven <david@craven.ch> skribis:

Toggle quote (8 lines)
> The usage of NIX environment variables is a problem when trying to
> coexist with nix on nixos.
> ```
> (define %config-directory
> ;; This must match `NIX_CONF_DIR' as defined in `nix/local.mk'.
> (or (getenv "NIX_CONF_DIR") "@guix_sysconfdir@/guix"))
> ```

Oh, good point. I assume this was the root of the problems, right?

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 25 Jun 2016 01:17
control message for bug #23828
(address . control@debbugs.gnu.org)
87y45urxb9.fsf@gnu.org
merge 23828 22459
L
L
Ludovic Courtès wrote on 27 Jun 2016 00:15
Re: bug#23828: unsupported sexp item type #f ```
(name . David Craven)(address . david@craven.ch)
87vb0violj.fsf@gnu.org
This issue is partly addressed with your patch pushed as
9dd674db017dbdc451cfd35da2dc3ce08db0726a, which renames ‘NIX_CONF_DIR’
to ‘GUIX_CONFIGURATION_DIRECTORY’.

Ludo’.
?