unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
From: Paul Boddie <paul@boddie.org.uk>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: help-guix@gnu.org
Subject: Re: Bootstrapping on a new platform
Date: Fri, 8 Dec 2017 14:40:14 +0100	[thread overview]
Message-ID: <201712081440.15176.paul@boddie.org.uk> (raw)
In-Reply-To: <877etx1pk9.fsf@gnu.org>

On Friday 8. December 2017 11.28.38 Ludovic Courtès wrote:
> 
> Paul Boddie <paul@boddie.org.uk> 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	other threads:[~2017-12-08 13:40 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-02 23:17 Bootstrapping on a new platform Paul Boddie
2017-12-03  6:46 ` Manolis Ragkousis
2017-12-03  9:54   ` Efraim Flashner
2017-12-04 18:24   ` Paul Boddie
2017-12-08 10:28     ` Ludovic Courtès
2017-12-08 13:40       ` Paul Boddie [this message]
2017-12-08 16:19         ` Paul Boddie
2017-12-11 11:03           ` Ludovic Courtès
2017-12-11 16:36             ` Paul Boddie
2017-12-12 16:10               ` Ludovic Courtès
2017-12-12 16:29                 ` Paul Boddie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201712081440.15176.paul@boddie.org.uk \
    --to=paul@boddie.org.uk \
    --cc=help-guix@gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).