help-guix
[Top][All Lists]
Advanced

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

Re: Bootstrapping on a new platform


From: Paul Boddie
Subject: Re: Bootstrapping on a new platform
Date: Fri, 8 Dec 2017 14:40:14 +0100
User-agent: KMail/1.13.7 (Linux/3.2.0-4-486; KDE/4.8.4; i686; ; )

On Friday 8. December 2017 11.28.38 Ludovic Courtès wrote:
> 
> Paul Boddie <address@hidden> skribis:
> > These steps are what I thought might be needed. So, I did the following
> > on my i386-linux-gnu system:
> > 
> > tar zxf guix-0.13.0.tar.gz
> 
> 0.14.0 was released yesterday, I’d suggest starting from that.

I was actually drafting a mail about that yesterday, but that is another story 
with different complications (building Guile-Git, scheme-bytestructures).

> > # Add to gnu/packages/bootstrap.scm:
> > # ((string=? system "mipsel-linux") "/lib/ld.so.1")
> > make
> > sudo make install
> > 
> > This got me the daemon again. Having set up the build users and group, I
> > then started the daemon...
> > 
> > sudo /usr/local/bin/guix-daemon --build-users-group=guixbuild
> 
> > ...and ran the build command for the binaries:
> I’d suggest enabling substitutes if you don’t want to build everything
> locally:
> 
>   https://www.gnu.org/software/guix/manual/html_node/Substitutes.html

I wouldn't mind building things locally, though. Previously, I wanted to avoid 
building cross-compilers, but this time I'm trying to do the whole thing.

> > guix build --target=mipsel-linux-gnu bootstrap-tarballs
> > 
> > I then got a couple of errors that halted the build process. Here's the
> > start of the first error:
> > 
> > output path
> > `/gnu/store/1j3mqrcp3y4xlb9jl5d0ri5aszn8mfii-gcc-4.9.4.tar.bz2' should
> > have sha256 hash
> > `14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc', instead has
> > `1z91vb2i4d61fbrz7hdrsxiw3ksdzf372bgdzwsn75b72ndbi6lg'
> 
> That would suggest either that gcc-4.9.4.tar.bz2 was modified on
> ftp.gnu.org (unlikely), or that there’s something fishy going on on the
> network (captive portal, DNS hijacking, etc.)  Ideas?

I do wonder about this kind of thing, but I'm using fibre-based broadband. 
Could it be mirroring issues? I tend to get checksum issues when updating 
recent Debian releases that are resolved when retrying and that I've regarded 
as being related to files being updated when apt tries to read them all, but I 
suppose there could be other things happening. (I also used to get this on a 
previous cable-based broadband provider, though.)

Actually, running sha256sum yields this:

sha256sum /gnu/store/1j3mqrcp3y4xlb9jl5d0ri5aszn8mfii-gcc-4.9.4.tar.bz2 
326efcf243fd917d5e57b930cc8b51c79260176099fd4f5cbc38b1473bd246a3  
/gnu/store/1j3mqrcp3y4xlb9jl5d0ri5aszn8mfii-gcc-4.9.4.tar.bz2

Is this the right way of generating the hash?

> > Running the build command again seems to either resolve this problem or
> > make it go away somehow. However, I then get a persistent error:
> > 
> > guix build: error: build failed: cloning builder process: Invalid
> > argument
> > 
> > Looking at the archives, I see that this happened before (reported by
> > Efraim):
> > 
> > https://lists.gnu.org/archive/html/guix-devel/2016-07/msg00144.html
> > 
> > I didn't see any obvious conclusion. So, I ran the daemon using strace
> > and looked at the clone system call that supposedly causes this problem:
> > 
> > clone(child_stack=0,
> > flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
> > child_tidptr=0x404c5f28) = 25426
> 
> Could you search in the strace output for the ‘clone’ call that failed
> with EINVAL?  It’s probably the one from nix/libstore/build.cc.

There isn't one that I can find. All I get is this:

write(2, "accepted connection from pid 157"..., 46accepted connection from pid 
1570, user paulb
) = 46
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0x404c5f28) = 1572
close(4)                                = 0
accept(3, 0xbfb09d84, [110])            = ? ERESTARTSYS (To be restarted if 
SA_RESTART is set)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=1572, si_uid=0, 
si_status=0, si_utime=61, si_stime=6} ---
waitpid(-1, NULL, WNOHANG)              = 1572
waitpid(-1, NULL, WNOHANG)              = -1 ECHILD (No child processes)
sigreturn() (mask [])                   = -1 EINTR (Interrupted system call)

> > For the record, I'm running all this in a User Mode Linux instance,
> > mostly because my main system doesn't support the prerequisites for
> > building Guix.
> 
> What kernel version do you use?  guix-daemon requires namespace support,
> but this is a relatively old feature.

This is an older kernel: 3.2.62. I chose this a while ago when setting up 
various instances, and this was something that I knew worked with the Debian 
versions I wanted to run.

> Otherwise it might be some limitation of User Mode Linux; I’ve never
> tried.

I tried UML with a 4.9.67 kernel (and CONFIG_NAMESPACES=y) but still got the 
error. There's still only one clone system call:

write(2, "accepted connection from pid 721"..., 45accepted connection from pid 
721, user paulb
) = 45
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0x404c5f28) = 723
close(4)                                = 0
accept(3, 0xbf8bc244, [110])            = ? ERESTARTSYS (To be restarted if 
SA_RESTART is set)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=723, si_uid=0, 
si_status=0, si_utime=4, si_stime=252} ---
waitpid(-1, NULL, WNOHANG)              = 723
waitpid(-1, NULL, WNOHANG)              = -1 ECHILD (No child processes)
sigreturn() (mask [RT_2])               = -1 EINTR (Interrupted system call)

I'm tracing the daemon here. Should I also be tracing something else?

Thanks for the help!

Paul



reply via email to

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