From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: Setting up a Hurd build node Date: Wed, 08 May 2019 00:12:12 +0200 Message-ID: <87d0ktewzg.fsf@elephly.net> References: <874l67fehe.fsf@elephly.net> <87woj20x6y.fsf@gnu.org> 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]:53330) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hO8Yk-0006vV-Cq for guix-devel@gnu.org; Tue, 07 May 2019 18:27:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hO8Yj-0008Cx-5t for guix-devel@gnu.org; Tue, 07 May 2019 18:27:38 -0400 Received: from sender4-of-o53.zoho.com ([136.143.188.53]:21375) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hO8Yj-00085e-0Y for guix-devel@gnu.org; Tue, 07 May 2019 18:27:37 -0400 In-reply-to: <87woj20x6y.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org Ludovic Court=C3=A8s writes: > Hello, > > Ricardo Wurmus skribis: > >> I just built Guix in a Debian GNU/Hurd VM and wanted to set it up as a >> build node. I applied a patch to use the i586-gnu bootstrap binaries >> from my previous attempt in late 2018, which are published at >> https://berlin.guixsd.org/guix/bootstrap/i586-gnu/20180908/. These were >> built with the old patched glibc 2.23. (The patch to add the bootstrap >> binaries is 3.5MB in size because it includes the statically linked >> binaries, so I=E2=80=99m not attaching it here.) > > I think we should fix our cross-compiled bootstrap Guile so we can > finally upload bootstrap binaries to ftp.gnu.org: > > https://issues.guix.info/issue/34427 > https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00364.html The new cross-compiled bootstrap Guile is 2.2; for older architectures it=E2=80=99s 2.0. I made it work simply by changing all references to =E2=80=9C2.0=E2=80=9D i= n =E2=80=9Craw-build=E2=80=9D of (gnu packages bootstrap) to =E2=80=9C2.2=E2=80=9D because the bootstrap = Guile really is version 2.2. Prior to that the bootstrap Guile would segfault. >> root@debian:~/guix-1.0.0# ./pre-inst-env guix-daemon --build-users-group= =3Dguixbuild --disable-chroot & >> root@debian:~/guix-1.0.0# ./pre-inst-env guix build -S hello >> madvise failed: Function not implemented > > This warning comes from Guile; it=E2=80=99s fixed in our guile 2.2 packag= e and > upstream. > >> The following derivation will be built: >> /gnu/store/qihk8cf98xqc7q577wb2nc5axy2ryp8m-hello-2.10.tar.gz.drv >> error: cannot kill processes for uid `999': Operation not permitted >> guix build: error: cannot kill processes for uid `999': failed with exit= code 1 > > EPERM comes from =E2=80=98waitpid=E2=80=99; weird! > >> Uid 999 belongs to guixbuilder01. (The gid for the guixbuild group is >> also 999.) I punted by running the daemon with only =E2=80=9Cguix-daemon --disable-chr= oot=E2=80=9D, no build users group at all. Of course, perform-download doesn=E2=80=99t l= ike that we=E2=80=99re downloading things as root, so I disabled the assertion= =E2=80=A6 >> I also tried building =E2=80=9Chello=E2=80=9D, but I only get the message >> >> madvise failed: Function not implemented >> >> printed endlessly. (This is probably harmless, but nothing else >> happens.) > > Looks like the bootstrap Guile is broken somehow. I replaced the bootstrap binaries with more recent ones. I also had to disable set-thread-name (because the Hurd doesn=E2=80=99t have it) and took= a step back to build something simpler: /pre-inst-env guix build -e '(@@ (gnu packages commencement) gnu-make-= boot0))' This eventually calls /gnu/store/dqlhjyvg0n8v1kdvwfpliqy46n7kpjqb-bootstrap-binaries-0/bin/ta= r cvfa \ /gnu/store/p278mqb3aa0xrkrrw4rg1fxbb19hbdyh-make-4.2.1.tar.xz \ --mtime=3D@0 --owner=3Droot --group=3Droot --sort=3Dname \ make-4.2.1 which segfaults. Turns out that it doesn=E2=80=99t segfault after removing =E2=80=9C--mtime=3D@0=E2=80=9D from the arguments. Weird! This is all very familiar, because that=E2=80=99s where I stopped w= hen I last tried all of this. I gave up when I couldn=E2=80=99t figure out why t= ar segfaulted. -- Ricardo