From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: bug#35874: =?UTF-8?Q?=E2=80=9Cguix_?= =?UTF-8?Q?pull=E2=80=9D?= fails on setlocale Date: Thu, 23 May 2019 23:01:08 +0200 Message-ID: <87y32wga23.fsf@mdc-berlin.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([209.51.188.92]:41237) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTuqh-0000rT-RB for bug-guix@gnu.org; Thu, 23 May 2019 17:02:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTuqg-0007UL-3P for bug-guix@gnu.org; Thu, 23 May 2019 17:02:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:60119) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTuqf-0007UF-Uu for bug-guix@gnu.org; Thu, 23 May 2019 17:02:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hTuqf-0006Wo-QY for bug-guix@gnu.org; Thu, 23 May 2019 17:02:01 -0400 Sender: "Debbugs-submit" Resent-Message-ID: Received: from eggs.gnu.org ([209.51.188.92]:41176) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTuqM-0000rK-GR for bug-guix@gnu.org; Thu, 23 May 2019 17:01:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTuqK-0007Jx-Hz for bug-guix@gnu.org; Thu, 23 May 2019 17:01:42 -0400 Received: from a2062.mx.srv.dfn.de ([194.95.232.172]:51317) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hTuqC-00077l-2Y for bug-guix@gnu.org; Thu, 23 May 2019 17:01:35 -0400 Received: from localhost (localhost [127.0.0.1]) by a2062.mx.srv.dfn.de (Postfix) with ESMTP id 2EA68A0050 for ; Thu, 23 May 2019 23:01:15 +0200 (CEST) Received: from a2062.mx.srv.dfn.de ([127.0.0.1]) by localhost (mgw4-han.srv.dfn.de [127.0.0.1]) (amavisd-new, port 20134) with ESMTP id w5mERl5Pv6tO for ; Thu, 23 May 2019 23:01:10 +0200 (CEST) Received: from SW-IT-P-CAS4.mdc-berlin.net (mgw10-4.mdc-berlin.de [141.80.113.59]) by a2062.mx.srv.dfn.de (Postfix) with ESMTPS for ; Thu, 23 May 2019 23:01:10 +0200 (CEST) List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: 35874@debbugs.gnu.org Hi Guix, I=E2=80=99m getting this weird error on =E2=80=9Cguix pull=E2=80=9D: --8<---------------cut here---------------start------------->8--- [rwurmus@max147.mdc-berlin.net:~] $ guix pull Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.or= g/git/guix.git'... Building from this channel: guix https://git.savannah.gnu.org/git/guix.git e26d628 Computing Guix derivation for 'x86_64-linux'... \@ build-started /gnu/store= /pryjyasqnhc69qqjsbvv5f1ksi25mjdc-libgit2-0.28.tar.xz.drv - x86_64-linux /g= nu/var/log/guix/drvs/pr//yjyasqnhc69qqjsbvv5f1ksi25mjdc-libgit2-0.28.tar.xz= .drv 2110 = |@ build-log 2110 252 Backtrace: 2 (primitive-load "/gnu/store/lgad0sg02p56jadwqrq674250d5?") In ice-9/eval.scm: 619:8 1 (_ #f) In unknown file: 0 (setlocale 6 "en_US.utf8") ERROR: In procedure setlocale: In procedure setlocale: Invalid argument builder for `/gnu/store/pryjyasqnhc69qqjsbvv5f1ksi25mjdc-libgit2-0.28.tar.x= z.drv' failed with exit code 1 @ build-failed /gnu/store/pryjyasqnhc69qqjsbvv5f1ksi25mjdc-libgit2-0.28.tar= .xz.drv - 1 builder for `/gnu/store/pryjyasqnhc69qqjsbvv5f1ksi25mjdc-libgit= 2-0.28.tar.xz.drv' failed with exit code 1 cannot build derivation `/gnu/store/nj6zd6gn3x1rf08ayxxwd1v0fyg71v9c-libgit= 2-0.28.2.drv': 1 dependencies couldn't be built cannot build derivation `/gnu/store/82x55s3m26j3rpq45ppijzvvh3rhxhsb-guile-= git-0.2.0.drv': 1 dependencies couldn't be built Backtrace: In ./guix/store.scm: 1667:8 19 (_ _) 1667:8 18 (_ _) In ./guix/gexp.scm: 708:2 17 (_ _) In ./guix/monads.scm: 482:9 16 (_ _) In ./guix/gexp.scm: 573:13 15 (_ _) In ./guix/store.scm: 1667:8 14 (_ _) In ./guix/gexp.scm: 708:2 13 (_ _) In ./guix/monads.scm: 482:9 12 (_ _) In ./guix/gexp.scm: 573:13 11 (_ _) In ./guix/store.scm: 1667:8 10 (_ _) In ./guix/gexp.scm: 708:2 9 (_ _) In ./guix/monads.scm: 482:9 8 (_ _) In ./guix/gexp.scm: 573:13 7 (_ _) In ./guix/store.scm: 1667:8 6 (_ _) 1690:38 5 (_ #) In ./guix/packages.scm: 936:16 4 (cache! # # ?) In ./guix/grafts.scm: 314:4 3 (graft-derivation # # # ?) 192:4 2 (references-oracle # #) 201:20 1 (_ _ _) In ./guix/store.scm: 1203:15 0 (_ # _ _) ./guix/store.scm:1203:15: Throw to key `srfi-34' with args `(#)'. guix pull: error: You found a bug: the program '/gnu/store/2mjaq8zxq60ifqxj= 3fra7f8gyxxccypm-compute-guix-derivation' failed to compute the derivation for Guix (version: "e26d628b0fabf5a0aa7c41= 64a9558c66c61e02ab"; system: "x86_64-linux"; host version: "ebd45195dd10eea9ce2c563697989bd4b27dfdd3"; pull-version: 1). Please report it by email to . --8<---------------cut here---------------end--------------->8--- I=E2=80=99m using =E2=80=9Cguix=E2=80=9D from the result of a previous =E2= =80=9Cguix pull=E2=80=9D, but it=E2=80=99s the same if I use a git checkout. The daemon is probably a little special. I=E2=80=99m using the daemon from= a git checkout inside of an environment for =E2=80=9Cguix=E2=80=9D, because l= ocalstatedir in my case is /gnu/var. I also tried using the daemon from the same =E2=80=9Cguix pull=E2=80=9D tre= e, after setting GUIX_DATABASE_DIRECTORY=3D/gnu/var/guix/db and GUIX_STATE_DIRECTORY=3D/gnu/var/guix. Here=E2=80=99s how I launch the daemon: --8<---------------cut here---------------start------------->8--- #!/bin/bash export GUIX_PROFILE=3D/gnu/var/guix/profiles/custom/guix-remote/.guix-profi= le # We need this to augment the GUILE_LOAD_PATH such that it includes # the Guile bindings to gnutls. Sourcing the whole profile is # overkill, but who cares, eh? source ${GUIX_PROFILE}/etc/profile # Fix locale warnings export GUIX_LOCPATH=3D${GUIX_PROFILE}/lib/locale # Fix certificate validation export SSL_CERT_DIR=3D${GUIX_PROFILE}/etc/ssl/certs/ #export GUIX_DATABASE_DIRECTORY=3D/gnu/var/guix/db #export GUIX_STATE_DIRECTORY=3D/gnu/var/guix #/gnu/remote/.guix-pull/bin/guix-daemon \ #/gnu/remote/guix/pre-inst-env guix-daemon \ exec /gnu/remote/guix/pre-inst-env guix-daemon \ --disable-log-compression \ --build-users-group=3Dguix-builder \ --listen=3D141.80.186.209:9999 \ --substitute-urls=3D"https://berlin.guixsd.org https://mirror.hydra.gn= u.org" $@ --8<---------------cut here---------------end--------------->8--- All communication with the daemon happens over network; the local socket is not involved, but this doesn=E2=80=99t seem to make any difference here. The simplest reproducer is to run Guile where the daemon runs and to evaluate setlocale: --8<---------------cut here---------------start------------->8--- [rwurmus@guix-builder:~] (716) $ /gnu/store/r658y3cgpnf99nxjxqgjiaizx20ac4k= 0-guile-2.2.4/bin/guile guile: warning: failed to install locale warning: failed to install locale: Invalid argument GNU Guile 2.2.4 Copyright (C) 1995-2017 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> (setlocale 6 "en_US.utf8") ERROR: In procedure setlocale: In procedure setlocale: Invalid argument Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. scheme@(guile-user) [1]> --8<---------------cut here---------------end--------------->8--- This is expected because GUIX_LOCPATH isn=E2=80=99t set in this environment. It=E2=80=99s fine when I set GUIX_LOCPATH to the value it has in the above guix-daemon wrapper: --8<---------------cut here---------------start------------->8--- [rwurmus@guix-builder:~] (719) $ GUIX_LOCPATH=3D/gnu/var/guix/profiles/cust= om/guix-remote/.guix-profile/lib/locale /gnu/store/r658y3cgpnf99nxjxqgjiaiz= x20ac4k0-guile-2.2.4/bin/guile GNU Guile 2.2.4 Copyright (C) 1995-2017 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> (setlocale 6 "en_US.utf8") $1 =3D "en_US.utf8" scheme@(guile-user)> --8<---------------cut here---------------end--------------->8--- I don=E2=80=99t understand why Guile as used in the builder of libgit2-0.28.tar.xz would behave any different as the daemons environment looks fine to me: --8<---------------cut here---------------start------------->8--- [rwurmus@guix-builder:~] (723) $ sudo strings /proc/27562/environ GUIX_LOCPATH=3D/gnu/var/guix/profiles/custom/guix-remote/.guix-profile/lib/= locale NIX_BUILD_HOOK=3D/gnu/remote/guix/nix/scripts/offload NIX_HASH=3D NIX_LIBEXEC_DIR=3D/gnu/remote/guix/nix/scripts LC_ALL=3Den_US.UTF-8 GUILE_LOAD_PATH=3D/gnu/remote/guix:/gnu/remote/guix:/gnu/var/guix/profiles/= custom/guix-remote/.guix-profile/share/guile/site/2.2 GUIX_PROFILE=3D/gnu/var/guix/profiles/custom/guix-remote/.guix-profile GUILE_LOAD_COMPILED_PATH=3D/gnu/remote/guix:/gnu/var/guix/profiles/custom/g= uix-remote/.guix-profile/lib/guile/2.2/site-ccache PATH=3D/gnu/remote/guix/scripts:/gnu/remote/guix:/gnu/var/guix/profiles/cus= tom/guix-remote/.guix-profile/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:= /usr/bin PWD=3D/ LANG=3Den_US.UTF-8 SSL_CERT_DIR=3D/gnu/var/guix/profiles/custom/guix-remote/.guix-profile/etc/= ssl/certs/ SHLVL=3D0 NIX_ROOT_FINDER=3D/gnu/remote/guix/nix/scripts/list-runtime-roots GUIX_UNINSTALLED=3D1 --8<---------------cut here---------------end--------------->8--- What=E2=80=99s going on here? -- Ricardo