guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Setting up a Hurd build node


From: Ricardo Wurmus
Subject: Re: Setting up a Hurd build node
Date: Wed, 08 May 2019 00:12:12 +0200
User-agent: mu4e 1.2.0; emacs 26.2

Ludovic Courtès <address@hidden> writes:

> Hello,
>
> Ricardo Wurmus <address@hidden> 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’m 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’s 2.0.

I made it work simply by changing all references to “2.0” in “raw-build”
of (gnu packages bootstrap) to “2.2” because the bootstrap Guile really
is version 2.2.  Prior to that the bootstrap Guile would segfault.

>> address@hidden:~/guix-1.0.0# ./pre-inst-env guix-daemon 
>> --build-users-group=guixbuild --disable-chroot &
>> address@hidden:~/guix-1.0.0# ./pre-inst-env guix build -S hello
>> madvise failed: Function not implemented
>
> This warning comes from Guile; it’s fixed in our guile 2.2 package 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 ‘waitpid’; weird!
>
>> Uid 999 belongs to guixbuilder01.  (The gid for the guixbuild group is
>> also 999.)

I punted by running the daemon with only “guix-daemon --disable-chroot”,
no build users group at all.  Of course, perform-download doesn’t like
that we’re downloading things as root, so I disabled the assertion…

>> I also tried building “hello”, 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’t 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/tar 
cvfa \
       /gnu/store/p278mqb3aa0xrkrrw4rg1fxbb19hbdyh-make-4.2.1.tar.xz \
       address@hidden --owner=root --group=root --sort=name \
       make-4.2.1

which segfaults.  Turns out that it doesn’t segfault after removing
address@hidden from the arguments.

Weird!  This is all very familiar, because that’s where I stopped when I
last tried all of this.  I gave up when I couldn’t figure out why tar
segfaulted.

--
Ricardo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]