unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* I managed to build guix natively on Debian GNU/Hurd , what's next?
@ 2019-08-29 19:25 Svante Signell
  2019-08-29 22:51 ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-08-29 19:25 UTC (permalink / raw)
  To: guix-devel

Hello,

After a lot of quirks I managed to get guix built natively on Debian
GNU/Hurd. What to do next?

Thanks!

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-29 19:25 I managed to build guix natively on Debian GNU/Hurd , what's next? Svante Signell
@ 2019-08-29 22:51 ` Svante Signell
  2019-08-29 23:36   ` Ricardo Wurmus
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-08-29 22:51 UTC (permalink / raw)
  To: guix-devel

On Thu, 2019-08-29 at 21:25 +0200, Svante Signell wrote:
> Hello,
> 
> After a lot of quirks I managed to get guix built natively on Debian
> GNU/Hurd. What to do next?

I managed to start the guix-daemon. Next seems to be the bootstrap
binaries:
guix build hello
guix build: error: could not find bootstrap binary 'tar' for system
'i586-gnu'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-29 22:51 ` Svante Signell
@ 2019-08-29 23:36   ` Ricardo Wurmus
  2019-08-30 12:00     ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Ricardo Wurmus @ 2019-08-29 23:36 UTC (permalink / raw)
  To: svante.signell; +Cc: guix-devel


Hi Svante,

> On Thu, 2019-08-29 at 21:25 +0200, Svante Signell wrote:
>> Hello,
>> 
>> After a lot of quirks I managed to get guix built natively on Debian
>> GNU/Hurd. What to do next?
>
> I managed to start the guix-daemon. Next seems to be the bootstrap
> binaries:
> guix build hello
> guix build: error: could not find bootstrap binary 'tar' for system
> 'i586-gnu'

You’ll need the bootstrap binaries.  I have previously built them but
at least “tar” segfaults.

Here’s what I wrote about this on IRC:

--8<---------------cut here---------------start------------->8---
<rekado> [12:36:12] gnu_srs: get a Debian GNU/Hurd, then build the Guix
         dependencies from source.
<rekado> [12:36:28] once you’ve got everything for building Guix also fetch
         the bootstrap binaries:
<rekado> [12:36:45] such as
         http://berlin.guix.gnu.org/guix/bootstrap/i586-gnu/20190508/glibc-stripped-2.28-i586-pc-gnu.tar.xz
<rekado> [12:36:51] binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz
<rekado> [12:36:55] gcc-stripped-5.5.0-i586-pc-gnu.tar.xz
<rekado> [12:37:01] guile-static-stripped-2.0.14-i586-pc-gnu.tar.xz
<rekado> [12:37:03] static-binaries-0-i586-pc-gnu.tar.xz
<rekado> [12:37:33] (you’ll find that some of the static binaries such as tar
         will segfault when given certain arguments)
<rekado> [12:37:45] that’s where we’re at.
<rekado> [12:38:00] these binaries were cross-built.
--8<---------------cut here---------------end--------------->8---

Good luck!

-- 
Ricardo

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-29 23:36   ` Ricardo Wurmus
@ 2019-08-30 12:00     ` Svante Signell
  2019-08-30 17:14       ` Julien Lepiller
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-08-30 12:00 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Fri, 2019-08-30 at 01:36 +0200, Ricardo Wurmus wrote:
> Hi Svante,
> 
> Here’s what I wrote about this on IRC:
> 
> --8<---------------cut here---------------start------------->8---
> <rekado> [12:36:12] gnu_srs: get a Debian GNU/Hurd, then build the Guix
>          dependencies from source.
> <rekado> [12:36:28] once you’ve got everything for building Guix also fetch
>          the bootstrap binaries:
> <rekado> [12:36:45] such as
> 

I've already built guix (and all their dependencies before that).

> http://berlin.guix.gnu.org/guix/bootstrap/i586-gnu/20190508/glibc-stripped-2.28-i586-pc-gnu.tar.xz
> 
http://berlin.guix.gnu.org/guix/bootstrap/i586-gnu/20190508/glibc-stripped-2.28-i586-pc-gnu.tar.xz
> <rekado> [12:36:51] binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz
> <rekado> [12:36:55] gcc-stripped-5.5.0-i586-pc-gnu.tar.xz
> <rekado> [12:37:01] guile-static-stripped-2.0.14-i586-pc-gnu.tar.xz
> <rekado> [12:37:03] static-binaries-0-i586-pc-gnu.tar.xz
> <rekado> [12:37:33] (you’ll find that some of the static binaries such as tar
>          will segfault when given certain arguments)
> <rekado> [12:37:45] that’s where we’re at.
> <rekado> [12:38:00] these binaries were cross-built.
> --8<---------------cut here---------------end--------------->8---

Thanks I'll try to install them. It seems like gcc is a little old, do you have
notes somewhere on how these cross-built packages were created?

I assume they can be built them within guix e.g. on GNU/Linux amd64.

Build order?:
1) binutils
2) glibc
3) gcc
4) ?

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-30 12:00     ` Svante Signell
@ 2019-08-30 17:14       ` Julien Lepiller
  2019-08-30 18:25         ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Julien Lepiller @ 2019-08-30 17:14 UTC (permalink / raw)
  To: svante.signell, Ricardo Wurmus; +Cc: guix-devel

Le 30 août 2019 14:00:29 GMT+02:00, Svante Signell <svante.signell@gmail.com> a écrit :
>On Fri, 2019-08-30 at 01:36 +0200, Ricardo Wurmus wrote:
>> Hi Svante,
>> 
>> Here’s what I wrote about this on IRC:
>> 
>> --8<---------------cut here---------------start------------->8---
>> <rekado> [12:36:12] gnu_srs: get a Debian GNU/Hurd, then build the
>Guix
>>          dependencies from source.
>> <rekado> [12:36:28] once you’ve got everything for building Guix also
>fetch
>>          the bootstrap binaries:
>> <rekado> [12:36:45] such as
>> 
>
>I've already built guix (and all their dependencies before that).
>
>>
>http://berlin.guix.gnu.org/guix/bootstrap/i586-gnu/20190508/glibc-stripped-2.28-i586-pc-gnu.tar.xz
>> 
>http://berlin.guix.gnu.org/guix/bootstrap/i586-gnu/20190508/glibc-stripped-2.28-i586-pc-gnu.tar.xz
>> <rekado> [12:36:51]
>binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz
>> <rekado> [12:36:55] gcc-stripped-5.5.0-i586-pc-gnu.tar.xz
>> <rekado> [12:37:01] guile-static-stripped-2.0.14-i586-pc-gnu.tar.xz
>> <rekado> [12:37:03] static-binaries-0-i586-pc-gnu.tar.xz
>> <rekado> [12:37:33] (you’ll find that some of the static binaries
>such as tar
>>          will segfault when given certain arguments)
>> <rekado> [12:37:45] that’s where we’re at.
>> <rekado> [12:38:00] these binaries were cross-built.
>> --8<---------------cut here---------------end--------------->8---
>
>Thanks I'll try to install them. It seems like gcc is a little old, do
>you have
>notes somewhere on how these cross-built packages were created?
>
>I assume they can be built them within guix e.g. on GNU/Linux amd64.
>
>Build order?:
>1) binutils
>2) glibc
>3) gcc
>4) ?

Hi,

I think this is the relevant part in the manual: http://guix.gnu.org/manual/en/html_node/Bootstrapping.html#Building-the-Bootstrap-Binaries

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-30 17:14       ` Julien Lepiller
@ 2019-08-30 18:25         ` Svante Signell
  2019-08-30 21:07           ` Svante Signell
  2019-08-30 21:56           ` Julien Lepiller
  0 siblings, 2 replies; 47+ messages in thread
From: Svante Signell @ 2019-08-30 18:25 UTC (permalink / raw)
  To: Julien Lepiller, Ricardo Wurmus; +Cc: guix-devel

On Fri, 2019-08-30 at 19:14 +0200, Julien Lepiller wrote:
> > a écrit :
> > 
> Thanks I'll try to install them. It seems like gcc is a little old, do
> > you have
> > notes somewhere on how these cross-built packages were created?
> 
> > I assume they can be built them within guix e.g. on GNU/Linux amd64.
> > 
> > Build order?:
> > 1) binutils
> > 2) glibc
> > 3) gcc
> > 4) ?
> 
> Hi,
> 
> I think this is the relevant part in the manual: 
> http://guix.gnu.org/manual/en/html_node/Bootstrapping.html#Building-the-Bootstrap-Binaries

Yes, but guix build bootstrap-tarballs --system=i586-gnu on GNU/Linux amd64
results in:
guix build: error: could not find bootstrap binary 'tar' for system 'i586-gnu'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-30 18:25         ` Svante Signell
@ 2019-08-30 21:07           ` Svante Signell
  2019-08-30 21:30             ` Ricardo Wurmus
  2019-08-30 21:56           ` Julien Lepiller
  1 sibling, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-08-30 21:07 UTC (permalink / raw)
  To: Julien Lepiller, Ricardo Wurmus; +Cc: guix-devel

On Fri, 2019-08-30 at 20:25 +0200, Svante Signell wrote:
> On Fri, 2019-08-30 at 19:14 +0200, Julien Lepiller wrote:
> > > a écrit :
> > > 
> > Thanks I'll try to install them. It seems like gcc is a little old, do
> > > you have
> > > notes somewhere on how these cross-built packages were created?
> > > I assume they can be built them within guix e.g. on GNU/Linux amd64.
> > > 
> > > Build order?:
> > > 1) binutils
> > > 2) glibc
> > > 3) gcc
> > > 4) ?
> > 
> > Hi,
> > 
> > I think this is the relevant part in the manual: 
> > http://guix.gnu.org/manual/en/html_node/Bootstrapping.html#Building-the-Bootstrap-Binaries
> 
> Yes, but guix build bootstrap-tarballs --system=i586-gnu on GNU/Linux amd64
> results in:
> guix build: error: could not find bootstrap binary 'tar' for system 'i586-gnu'

Where to install the bootstrap-binaries: Natively in GNU/Hurd, which already
hase.g. /bin/tar from the tar package or within Guix on amd64? But installing
tar to /bin does not find that file, even with setting PATH??
uname -a
Linux gnu 5.1.2-gnu #1 SMP 1 x86_64 GNU/Linux
guix build bootstrap-tarballs --system=i586-gnu
guix build: error: could not find bootstrap binary 'tar' for system 'i586-gnu'
which tar
/bin/tar
file /bin/tar
/bin/tar: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically
linked, for GNU/Hurd 0.0.0, stripped

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-30 21:07           ` Svante Signell
@ 2019-08-30 21:30             ` Ricardo Wurmus
  2019-08-30 21:52               ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Ricardo Wurmus @ 2019-08-30 21:30 UTC (permalink / raw)
  To: svante.signell; +Cc: guix-devel


Svante Signell <svante.signell@gmail.com> writes:

>> Yes, but guix build bootstrap-tarballs --system=i586-gnu on GNU/Linux amd64
>> results in:
>> guix build: error: could not find bootstrap binary 'tar' for system 'i586-gnu'
>
> Where to install the bootstrap-binaries: Natively in GNU/Hurd, which already
> hase.g. /bin/tar from the tar package or within Guix on amd64? But installing
> tar to /bin does not find that file, even with setting PATH??

That’s expected.  Guix will not use arbitrary binaries that happen to be
on PATH.  That’s by design.  The bootstrap binaries are at the roots of
the package graph – changes to them would result in the complete graph
to be rebuilt from scratch.

So the binaries have a special role and usually don’t change.  That’s
why the fact that my bootstrap binaries use GCC 5 is not a problem.

> uname -a
> Linux gnu 5.1.2-gnu #1 SMP 1 x86_64 GNU/Linux
> guix build bootstrap-tarballs --system=i586-gnu
> guix build: error: could not find bootstrap binary 'tar' for system 'i586-gnu'

You need to cross-build.  x86_64 systems have no i586-gnu persona, so
you can’t use “--system” here.

-- 
Ricardo

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-30 21:30             ` Ricardo Wurmus
@ 2019-08-30 21:52               ` Svante Signell
  2019-08-30 22:17                 ` Ricardo Wurmus
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-08-30 21:52 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Fri, 2019-08-30 at 23:30 +0200, Ricardo Wurmus wrote:
> Svante Signell <svante.signell@gmail.com> writes:
> 
> > Where to install the bootstrap-binaries: Natively in GNU/Hurd, which already
> > hase.g. /bin/tar from the tar package or within Guix on amd64? But
> > installing
> > tar to /bin does not find that file, even with setting PATH??
> 
> That’s expected.  Guix will not use arbitrary binaries that happen to be
> on PATH.  That’s by design.  The bootstrap binaries are at the roots of
> the package graph – changes to them would result in the complete graph
> to be rebuilt from scratch.

Sorry but the tarballs have files like ./bin/tar Where to unpack them, on the
native Hurd image or the guix one?

> So the binaries have a special role and usually don’t change.  That’s
> why the fact that my bootstrap binaries use GCC 5 is not a problem.
> 
> > uname -a
> > Linux gnu 5.1.2-gnu #1 SMP 1 x86_64 GNU/Linux
> > guix build bootstrap-tarballs --system=i586-gnu
> > guix build: error: could not find bootstrap binary 'tar' for system 'i586-
> > gnu'
> 
> You need to cross-build.  x86_64 systems have no i586-gnu persona, so
> you can’t use “--system” here.

How is that cross-build done? Within the Linux guix image or a Linux amd64
image? And cross package build order?

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-30 18:25         ` Svante Signell
  2019-08-30 21:07           ` Svante Signell
@ 2019-08-30 21:56           ` Julien Lepiller
  1 sibling, 0 replies; 47+ messages in thread
From: Julien Lepiller @ 2019-08-30 21:56 UTC (permalink / raw)
  To: Svante Signell; +Cc: guix-devel

Le Fri, 30 Aug 2019 20:25:24 +0200,
Svante Signell <svante.signell@gmail.com> a écrit :

> On Fri, 2019-08-30 at 19:14 +0200, Julien Lepiller wrote:
> > > a écrit :
> > >   
> > Thanks I'll try to install them. It seems like gcc is a little old,
> > do  
> > > you have
> > > notes somewhere on how these cross-built packages were created?  
> >   
> > > I assume they can be built them within guix e.g. on GNU/Linux
> > > amd64.
> > > 
> > > Build order?:
> > > 1) binutils
> > > 2) glibc
> > > 3) gcc
> > > 4) ?  
> > 
> > Hi,
> > 
> > I think this is the relevant part in the manual: 
> > http://guix.gnu.org/manual/en/html_node/Bootstrapping.html#Building-the-Bootstrap-Binaries  
> 
> Yes, but guix build bootstrap-tarballs --system=i586-gnu on GNU/Linux
> amd64 results in:
> guix build: error: could not find bootstrap binary 'tar' for system
> 'i586-gnu'
> 
this might actually be more relevent:
http://guix.gnu.org/manual/en/html_node/Porting.html#Porting
so:

guix build --target=i586-gnu bootstrap-tarballs

I think, where i586-gnu is to be replaced by the right triplet for the
Hurd. Maybe it's already the right triplet, but it doesn't look like a
triplet, so it's a bit confusing.

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-30 21:52               ` Svante Signell
@ 2019-08-30 22:17                 ` Ricardo Wurmus
  2019-08-31  8:06                   ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Ricardo Wurmus @ 2019-08-30 22:17 UTC (permalink / raw)
  To: svante.signell; +Cc: guix-devel


Svante Signell <svante.signell@gmail.com> writes:

> On Fri, 2019-08-30 at 23:30 +0200, Ricardo Wurmus wrote:
>> Svante Signell <svante.signell@gmail.com> writes:
>>
>> > Where to install the bootstrap-binaries: Natively in GNU/Hurd, which already
>> > hase.g. /bin/tar from the tar package or within Guix on amd64? But
>> > installing
>> > tar to /bin does not find that file, even with setting PATH??
>>
>> That’s expected.  Guix will not use arbitrary binaries that happen to be
>> on PATH.  That’s by design.  The bootstrap binaries are at the roots of
>> the package graph – changes to them would result in the complete graph
>> to be rebuilt from scratch.
>
> Sorry but the tarballs have files like ./bin/tar Where to unpack them, on the
> native Hurd image or the guix one?

The generated archives are to be placed in the Guix source tree under
gnu/packages/bootstrap/…/.

> How is that cross-build done? Within the Linux guix image or a Linux amd64
> image? And cross package build order?

The order doesn’t matter, because in Guix the order is fixed anyway.
You just build the bootstrap binaries as a single target on your
GNU/Linux host and you’ll end up with all the archives you’ll need to
copy to the Hurd target machine.

--
Ricardo

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-30 22:17                 ` Ricardo Wurmus
@ 2019-08-31  8:06                   ` Svante Signell
  2019-08-31  8:13                     ` Julien Lepiller
  2019-08-31 12:12                     ` Ricardo Wurmus
  0 siblings, 2 replies; 47+ messages in thread
From: Svante Signell @ 2019-08-31  8:06 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Sat, 2019-08-31 at 00:17 +0200, Ricardo Wurmus wrote:
> Svante Signell <svante.signell@gmail.com> writes:
> 
> > On Fri, 2019-08-30 at 23:30 +0200, Ricardo Wurmus wrote:
> > > Svante Signell <svante.signell@gmail.com> writes:
> > > 
> > > > Where to install the bootstrap-binaries: Natively in GNU/Hurd, which
> > > > already
> > > > hase.g. /bin/tar from the tar package or within Guix on amd64? But
> > > > installing
> > > > tar to /bin does not find that file, even with setting PATH??
> > > 
> > > That’s expected.  Guix will not use arbitrary binaries that happen to be
> > > on PATH.  That’s by design.  The bootstrap binaries are at the roots of
> > > the package graph – changes to them would result in the complete graph
> > > to be rebuilt from scratch.
> > 
> > Sorry but the tarballs have files like ./bin/tar Where to unpack them, on
> > the
> > native Hurd image or the guix one?
> 
> The generated archives are to be placed in the Guix source tree under
> gnu/packages/bootstrap/…/.

Here:
/gnu/store/2b48z82a5bjfkcqhr8d80zq1agiglyx8-guix-1ec29df/gnu/packages/bootstrap 

or here:
/usr/share/guile/site/2.2/gnu/packages/bootstrap/

I assume the first is correct.

> > How is that cross-build done? Within the Linux guix image or a Linux amd64
> > image? And cross package build order?
> 
> The order doesn’t matter, because in Guix the order is fixed anyway.
> You just build the bootstrap binaries as a single target on your
> GNU/Linux host and you’ll end up with all the archives you’ll need to
> copy to the Hurd target machine.

I issued guix build --target=i586-pc-gnu bootstrap-tarballs in my GNU/Linux Guix
image (thanks Julien): uname -a
Linux gnu 5.1.2-gnu #1 SMP 1 x86_64 GNU/Linux

Everything looked fine until:
g++   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti
-fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual 
-Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-
variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -DGENERATOR_FILE
-static-libstdc++ -static-libgcc  -o build/genattrtab \
    build/genattrtab.o build/rtl.o build/read-rtl.o build/ggc-none.o build/vec.o
build/min-insn-modes.o build/gensupport.o build/print-rtl.o build/read-md.o
build/errors.o ../build-x86_64-unknown-linux-gnu/libiberty/libiberty.a
build/genattrtab ../../gcc-5.5.0/gcc/common.md ../../gcc-
5.5.0/gcc/config/i386/i386.md insn-conditions.md \
	-Atmp-attrtab.c -Dtmp-dfatab.c -Ltmp-latencytab.c
make[2]: *** [Makefile:2156: s-attrtab] Killed
make[2]: Leaving directory '/tmp/guix-build-gcc-cross-sans-libc-i586-pc-gnu-
5.5.0.drv-0/build/gcc'
make[1]: *** [Makefile:4095: all-gcc] Error 2
make[1]: Leaving directory '/tmp/guix-build-gcc-cross-sans-libc-i586-pc-gnu-
5.5.0.drv-0/build'
make: *** [Makefile:853: all] Error 2
Backtrace:
           4 (primitive-load "/gnu/store/745pxg9235s6x3szcxim8xs03fp…")
In ice-9/eval.scm:
   191:35  3 (_ _)
In srfi/srfi-1.scm:
   863:16  2 (every1 #<procedure 761180 at /gnu/store/ihzxrhpzk15qv…> …)
In /gnu/store/ihzxrhpzk15qvz4bjibymj9qniifnxdf-module-import/guix/build/gnu-
build-system.scm:
   799:28  1 (_ _)
In /gnu/store/ihzxrhpzk15qvz4bjibymj9qniifnxdf-module-
import/guix/build/utils.scm:
    616:6  0 (invoke _ . _)
...

which g++
/home/guest/.guix-profile/bin/g++

/home/guest/.guix-profile/bin/g++ --version
g++ (GCC) 9.1.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

What should be modified to build a newer version of gcc?
Any ideas?

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-31  8:06                   ` Svante Signell
@ 2019-08-31  8:13                     ` Julien Lepiller
  2019-08-31  9:24                       ` Svante Signell
  2019-08-31 12:12                     ` Ricardo Wurmus
  1 sibling, 1 reply; 47+ messages in thread
From: Julien Lepiller @ 2019-08-31  8:13 UTC (permalink / raw)
  To: Svante Signell, Ricardo Wurmus; +Cc: guix-devel

Le 31 août 2019 10:06:15 GMT+02:00, Svante Signell <svante.signell@gmail.com> a écrit :
>On Sat, 2019-08-31 at 00:17 +0200, Ricardo Wurmus wrote:
>> Svante Signell <svante.signell@gmail.com> writes:
>> 
>> > On Fri, 2019-08-30 at 23:30 +0200, Ricardo Wurmus wrote:
>> > > Svante Signell <svante.signell@gmail.com> writes:
>> > > 
>> > > > Where to install the bootstrap-binaries: Natively in GNU/Hurd,
>which
>> > > > already
>> > > > hase.g. /bin/tar from the tar package or within Guix on amd64?
>But
>> > > > installing
>> > > > tar to /bin does not find that file, even with setting PATH??
>> > > 
>> > > That’s expected.  Guix will not use arbitrary binaries that
>happen to be
>> > > on PATH.  That’s by design.  The bootstrap binaries are at the
>roots of
>> > > the package graph – changes to them would result in the complete
>graph
>> > > to be rebuilt from scratch.
>> > 
>> > Sorry but the tarballs have files like ./bin/tar Where to unpack
>them, on
>> > the
>> > native Hurd image or the guix one?
>> 
>> The generated archives are to be placed in the Guix source tree under
>> gnu/packages/bootstrap/…/.
>
>Here:
>/gnu/store/2b48z82a5bjfkcqhr8d80zq1agiglyx8-guix-1ec29df/gnu/packages/bootstrap
>
>
>or here:
>/usr/share/guile/site/2.2/gnu/packages/bootstrap/
>
>I assume the first is correct.
>
>> > How is that cross-build done? Within the Linux guix image or a
>Linux amd64
>> > image? And cross package build order?
>> 
>> The order doesn’t matter, because in Guix the order is fixed anyway.
>> You just build the bootstrap binaries as a single target on your
>> GNU/Linux host and you’ll end up with all the archives you’ll need to
>> copy to the Hurd target machine.
>
>I issued guix build --target=i586-pc-gnu bootstrap-tarballs in my
>GNU/Linux Guix
>image (thanks Julien): uname -a
>Linux gnu 5.1.2-gnu #1 SMP 1 x86_64 GNU/Linux
>
>Everything looked fine until:
>g++   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions
>-fno-rtti
>-fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings
>-Wcast-qual 
>-Wmissing-format-attribute -Woverloaded-virtual -pedantic
>-Wno-long-long -Wno-
>variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H
>-DGENERATOR_FILE
>-static-libstdc++ -static-libgcc  -o build/genattrtab \
>build/genattrtab.o build/rtl.o build/read-rtl.o build/ggc-none.o
>build/vec.o
>build/min-insn-modes.o build/gensupport.o build/print-rtl.o
>build/read-md.o
>build/errors.o ../build-x86_64-unknown-linux-gnu/libiberty/libiberty.a
>build/genattrtab ../../gcc-5.5.0/gcc/common.md ../../gcc-
>5.5.0/gcc/config/i386/i386.md insn-conditions.md \
>	-Atmp-attrtab.c -Dtmp-dfatab.c -Ltmp-latencytab.c
>make[2]: *** [Makefile:2156: s-attrtab] Killed
>make[2]: Leaving directory
>'/tmp/guix-build-gcc-cross-sans-libc-i586-pc-gnu-
>5.5.0.drv-0/build/gcc'
>make[1]: *** [Makefile:4095: all-gcc] Error 2
>make[1]: Leaving directory
>'/tmp/guix-build-gcc-cross-sans-libc-i586-pc-gnu-
>5.5.0.drv-0/build'
>make: *** [Makefile:853: all] Error 2
>Backtrace:
>           4 (primitive-load "/gnu/store/745pxg9235s6x3szcxim8xs03fp…")
>In ice-9/eval.scm:
>   191:35  3 (_ _)
>In srfi/srfi-1.scm:
>  863:16  2 (every1 #<procedure 761180 at /gnu/store/ihzxrhpzk15qv…> …)
>In
>/gnu/store/ihzxrhpzk15qvz4bjibymj9qniifnxdf-module-import/guix/build/gnu-
>build-system.scm:
>   799:28  1 (_ _)
>In /gnu/store/ihzxrhpzk15qvz4bjibymj9qniifnxdf-module-
>import/guix/build/utils.scm:
>    616:6  0 (invoke _ . _)
>...
>
>which g++
>/home/guest/.guix-profile/bin/g++
>
>/home/guest/.guix-profile/bin/g++ --version
>g++ (GCC) 9.1.0
>Copyright (C) 2019 Free Software Foundation, Inc.
>This is free software; see the source for copying conditions.  There is
>NO
>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
>PURPOSE.
>
>What should be modified to build a newer version of gcc?
>Any ideas?

The "Killed" message only happened to me when I ran out of RAM during a build. Maybe you need a more powerful machine?

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-31  8:13                     ` Julien Lepiller
@ 2019-08-31  9:24                       ` Svante Signell
  2019-08-31  9:41                         ` Julien Lepiller
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-08-31  9:24 UTC (permalink / raw)
  To: Julien Lepiller, Ricardo Wurmus; +Cc: guix-devel

On Sat, 2019-08-31 at 10:13 +0200, Julien Lepiller wrote:
> > On Sat, 2019-08-31 at 00:17 +0200, Ricardo Wurmus wrote:
> > > Svante Signell <svante.signell@gmail.com> writes:
> > > 
> > > > Sorry but the tarballs have files like ./bin/tar Where to unpack
> > them, on the native Hurd image or the guix one?
> > > 
> > > The generated archives are to be placed in the Guix source tree under
> > > gnu/packages/bootstrap/…/.
> > 
> > Here:
> > /gnu/store/2b48z82a5bjfkcqhr8d80zq1agiglyx8-guix-
> > 1ec29df/gnu/packages/bootstrap

I installed the tarballs here. How to make guix aware of them?

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-31  9:24                       ` Svante Signell
@ 2019-08-31  9:41                         ` Julien Lepiller
  0 siblings, 0 replies; 47+ messages in thread
From: Julien Lepiller @ 2019-08-31  9:41 UTC (permalink / raw)
  To: Svante Signell, Ricardo Wurmus; +Cc: guix-devel

Le 31 août 2019 11:24:18 GMT+02:00, Svante Signell <svante.signell@gmail.com> a écrit :
>On Sat, 2019-08-31 at 10:13 +0200, Julien Lepiller wrote:
>> > On Sat, 2019-08-31 at 00:17 +0200, Ricardo Wurmus wrote:
>> > > Svante Signell <svante.signell@gmail.com> writes:
>> > > 
>> > > > Sorry but the tarballs have files like ./bin/tar Where to
>unpack
>> > them, on the native Hurd image or the guix one?
>> > > 
>> > > The generated archives are to be placed in the Guix source tree
>under
>> > > gnu/packages/bootstrap/…/.
>> > 
>> > Here:
>> > /gnu/store/2b48z82a5bjfkcqhr8d80zq1agiglyx8-guix-
>> > 1ec29df/gnu/packages/bootstrap
>
>I installed the tarballs here. How to make guix aware of them?

What Ricardo meant is that you should put the tarballs in gnu/packages/bootstrap, inside your git checkout on the hurd system (the one you built), not in the store or in a global system location. You must never modify the content of the store or you will break the model guix uses for package management.

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-31  8:06                   ` Svante Signell
  2019-08-31  8:13                     ` Julien Lepiller
@ 2019-08-31 12:12                     ` Ricardo Wurmus
  2019-08-31 17:27                       ` Svante Signell
  1 sibling, 1 reply; 47+ messages in thread
From: Ricardo Wurmus @ 2019-08-31 12:12 UTC (permalink / raw)
  To: svante.signell; +Cc: guix-devel


Svante Signell <svante.signell@gmail.com> writes:

> On Sat, 2019-08-31 at 00:17 +0200, Ricardo Wurmus wrote:
>> Svante Signell <svante.signell@gmail.com> writes:
>> 
>> > On Fri, 2019-08-30 at 23:30 +0200, Ricardo Wurmus wrote:
>> > > Svante Signell <svante.signell@gmail.com> writes:
>> > > 
>> > > > Where to install the bootstrap-binaries: Natively in GNU/Hurd, which
>> > > > already
>> > > > hase.g. /bin/tar from the tar package or within Guix on amd64? But
>> > > > installing
>> > > > tar to /bin does not find that file, even with setting PATH??
>> > > 
>> > > That’s expected.  Guix will not use arbitrary binaries that happen to be
>> > > on PATH.  That’s by design.  The bootstrap binaries are at the roots of
>> > > the package graph – changes to them would result in the complete graph
>> > > to be rebuilt from scratch.
>> > 
>> > Sorry but the tarballs have files like ./bin/tar Where to unpack them, on
>> > the
>> > native Hurd image or the guix one?
>> 
>> The generated archives are to be placed in the Guix source tree under
>> gnu/packages/bootstrap/…/.
>
> Here:
> /gnu/store/2b48z82a5bjfkcqhr8d80zq1agiglyx8-guix-1ec29df/gnu/packages/bootstrap 
>
> or here:
> /usr/share/guile/site/2.2/gnu/packages/bootstrap/
>
> I assume the first is correct.
>
>> > How is that cross-build done? Within the Linux guix image or a Linux amd64
>> > image? And cross package build order?
>> 
>> The order doesn’t matter, because in Guix the order is fixed anyway.
>> You just build the bootstrap binaries as a single target on your
>> GNU/Linux host and you’ll end up with all the archives you’ll need to
>> copy to the Hurd target machine.
>
> I issued guix build --target=i586-pc-gnu bootstrap-tarballs in my GNU/Linux Guix
> image (thanks Julien): uname -a
> Linux gnu 5.1.2-gnu #1 SMP 1 x86_64 GNU/Linux
>
> Everything looked fine until:
> g++   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti
> -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual 
> -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-
> variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -DGENERATOR_FILE
> -static-libstdc++ -static-libgcc  -o build/genattrtab \
>     build/genattrtab.o build/rtl.o build/read-rtl.o build/ggc-none.o build/vec.o
> build/min-insn-modes.o build/gensupport.o build/print-rtl.o build/read-md.o
> build/errors.o ../build-x86_64-unknown-linux-gnu/libiberty/libiberty.a
> build/genattrtab ../../gcc-5.5.0/gcc/common.md ../../gcc-
> 5.5.0/gcc/config/i386/i386.md insn-conditions.md \
> 	-Atmp-attrtab.c -Dtmp-dfatab.c -Ltmp-latencytab.c
> make[2]: *** [Makefile:2156: s-attrtab] Killed
[…]
> which g++
> /home/guest/.guix-profile/bin/g++

This is not the GCC that’s used by Guix to build things.  See also that
during the build GCC 5.5.0 is used, not version 9.x.

What you have installed has no impact on the build environment that Guix
uses.  This is by design.

-- 
Ricardo

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-31 12:12                     ` Ricardo Wurmus
@ 2019-08-31 17:27                       ` Svante Signell
  2019-09-01  9:11                         ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-08-31 17:27 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Sat, 2019-08-31 at 14:12 +0200, Ricardo Wurmus wrote:
> Svante Signell <svante.signell@gmail.com> writes:
> 
> > 
> > which g++
> > /home/guest/.guix-profile/bin/g++
> 
> This is not the GCC that’s used by Guix to build things.  See also that
> during the build GCC 5.5.0 is used, not version 9.x.
> 
> What you have installed has no impact on the build environment that Guix
> uses.  This is by design.

OK, thanks. I have now installed the bootstrap binaries in the guix installed
directory. Issuing
guix build hello --keep-failed gives plenty of output, too much for the terminal
buffer. It ends with:

guix build: warning: failed to load '(gnu packages bootstrap i586-pc-gnu share
guile #{2.2}# web uri)':
no code for module (gnu packages bootstrap i586-pc-gnu share guile #{2.2}# web
uri)
guix build: warning: failed to load '(gnu packages clojure)':
Not a vlist: Error while printing exception.
Backtrace:
In ice-9/boot-9.scm:
    829:9 19 (catch _ _ #<procedure 8b0040 at guix/ui.scm:703:2 (ke…> …)
    829:9 18 (catch _ _ #<procedure 8b0050 at guix/ui.scm:826:6 (ke…> …)
In guix/scripts/build.scm:
    904:6 17 (_)
In guix/status.scm:
    768:4 16 (call-with-status-report _ _)
In guix/store.scm:
   623:10 15 (call-with-store _)
madvise failed: Function not implemented
In guix/scripts/build.scm:
   911:26 14 (_ #<store-connection 256.99 55cbd0>)
    826:9 13 (options->derivations #<store-connection 256.99 55cbd0> #)
In srfi/srfi-1.scm:
   679:15 12 (append-map _ _ . _)
   592:29 11 (map1 _)
   592:17 10 (map1 ((argument . "hello") (build-mode . 0) (# . #t) …))
In guix/scripts/build.scm:
   792:30  9 (_ _)
In gnu/packages.scm:
    477:2  8 (%find-package "hello" "hello" #f)
    383:6  7 (find-best-packages-by-name _ _)
   313:55  6 (_ "hello" _)
In unknown file:
madvise failed: Function not implemented
           5 (force #<promise #<procedure 48bdcd0 at gnu/packages.sc…>)
In guix/discovery.scm:
    179:3  4 (fold-module-public-variables _ _ _)
In guix/combinators.scm:
    45:26  3 (fold2 #<procedure 15b8ab50 at guix/discovery.scm:179:…> …)
    45:26  2 (fold2 #<procedure 15b8ab40 at guix/discovery.scm:180:…> …)
In guix/discovery.scm:
   182:33  1 (_ #<package zile-on-guile@2.4.14-0.fd09781 gnu/packag…> …)
In ice-9/eval.scm:
    619:8  0 (_ #(#(#<directory (ice-9 vlist) 839190>) "zile-on-g…" …))

ice-9/eval.scm:619:8: Not a vlist: Error while printing exception.

Some deprecated features have been used.  Set the environment
variable GUILE_WARN_DEPRECATED to "detailed" and rerun the
program to get more information.  Set it to "no" to suppress
this message.

Where do I find the build log, and where is the failed build directory?

Looking at /usr/share/guile/site/2.2/gnu/packages/bootstrap/i586-pc-gnu one
finds all the above files e.g.:
/usr/share/guile/site/2.2/gnu/packages/bootstrap/i586-pc-
gnu/share/guile/2.2/web/uri.scm
/usr/share/guile/site/2.2/gnu/packages/bootstrap/i586-pc-
gnu/share/guile/2.2/web/server.scm

while the build shows otherwise...

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-08-31 17:27                       ` Svante Signell
@ 2019-09-01  9:11                         ` Svante Signell
  2019-09-01  9:32                           ` Efraim Flashner
  2019-09-01 13:28                           ` Svante Signell
  0 siblings, 2 replies; 47+ messages in thread
From: Svante Signell @ 2019-09-01  9:11 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Sat, 2019-08-31 at 19:27 +0200, Svante Signell wrote:

I have some further guix/guile questions when building and running guix on
GHU/Hurd natively

On the GNU/Hurd image:
download and unpack guix-1.0.1.tar.gz
cd guix-1.0.1

1) When building guix from source
./configure --with-courage --prefix=/usr 2>&1 | tee ../configure-with-
courage.log
make 2>&1 | tee ../make.log
ERROR: In procedure scm-error:
no code for module (bytestructures guile)
export GUILE_LOAD_PATH=~/DEBs/scheme-bytestructures/scheme-bytestructures
The above fixes that error. 

a) How do I add that module and in which *.scm file?

2) Building Hello

./pre-inst-env guix build --verbosity=10000 --keep-failed --log-file hello 2>&1
| tee build-hello-keep+log.log

a) Where do I find the build log, and where is the failed build directory?
b) After building the bootstrap tarballs on my GNU/Linux guix image:

ls /gnu/store/zb89702az7xx3c0y21ip6gsql5fxa8ws-bootstrap-tarballs-0
binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz
gcc-stripped-5.5.0-i586-pc-gnu.tar.xz
glibc-stripped-2.28-i586-pc-gnu.tar.xz
guile-static-stripped-2.2.4-i586-pc-gnu.tar.xz
static-binaries-0-i586-pc-gnu.tar.xz

and copying them to gnu/packages/bootstrap/i586-pc-gnu/
- Should they be as is *.xz or unpacked to *.tar or untarred?
- The manual says: 
http://guix.gnu.org/manual/en/html_node/Bootstrapping.html#index-bootstrap-binaries-1
How to make guix find these tarballs?

http://guix.gnu.org/manual/en/html_node/Porting.html#Porting
says:
...
Fortunately, Guix can cross compile those bootstrap binaries.
When everything goes well, and assuming the GNU tool chain supports the
target platform, this can be as simple as running a command like this
one:

guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs
My change here:
guix build --target=i586-pc-gnu --no-substitutes bootstrap-tarballs

For this to work, the glibc-dynamic-linker procedure in
(gnu packages bootstrap) must be augmented to return the right
file name for libc’s dynamic linker on that platform; likewise,
system->linux-architecture in (gnu packages linux) must be
taught about the new platform.

(should probably be changed to (gnu packages gnu) ??)

Once these are built, the (gnu packages bootstrap) module needs
to be updated to refer to these binaries on the target platform.

To which *.scm file to add e.g. (gnu packages bootstrap)?

Thanks!

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-01  9:11                         ` Svante Signell
@ 2019-09-01  9:32                           ` Efraim Flashner
  2019-09-01 13:28                           ` Svante Signell
  1 sibling, 0 replies; 47+ messages in thread
From: Efraim Flashner @ 2019-09-01  9:32 UTC (permalink / raw)
  To: Svante Signell; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 3947 bytes --]

On Sun, Sep 01, 2019 at 11:11:56AM +0200, Svante Signell wrote:
> On Sat, 2019-08-31 at 19:27 +0200, Svante Signell wrote:
> 
> I have some further guix/guile questions when building and running guix on
> GHU/Hurd natively
> 
> On the GNU/Hurd image:
> download and unpack guix-1.0.1.tar.gz
> cd guix-1.0.1
> 
> 1) When building guix from source
> ./configure --with-courage --prefix=/usr 2>&1 | tee ../configure-with-
> courage.log
> make 2>&1 | tee ../make.log
> ERROR: In procedure scm-error:
> no code for module (bytestructures guile)
> export GUILE_LOAD_PATH=~/DEBs/scheme-bytestructures/scheme-bytestructures
> The above fixes that error. 
> 
> a) How do I add that module and in which *.scm file?
> 
> 2) Building Hello
> 
> ./pre-inst-env guix build --verbosity=10000 --keep-failed --log-file hello 2>&1
> | tee build-hello-keep+log.log
> 
> a) Where do I find the build log, and where is the failed build directory?
> b) After building the bootstrap tarballs on my GNU/Linux guix image:
> 
> ls /gnu/store/zb89702az7xx3c0y21ip6gsql5fxa8ws-bootstrap-tarballs-0
> binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz
> gcc-stripped-5.5.0-i586-pc-gnu.tar.xz
> glibc-stripped-2.28-i586-pc-gnu.tar.xz
> guile-static-stripped-2.2.4-i586-pc-gnu.tar.xz
> static-binaries-0-i586-pc-gnu.tar.xz
> 
> and copying them to gnu/packages/bootstrap/i586-pc-gnu/
> - Should they be as is *.xz or unpacked to *.tar or untarred?

As they are, as *.xz

looking at the gnu/packages/bootstrap/aarch64-linux-gnu/ folder, you'll
need a couple of binaries from static-binaries (I think). Make sure they're
executable. They might be from binutils, I don't remember.

> - The manual says: 
> http://guix.gnu.org/manual/en/html_node/Bootstrapping.html#index-bootstrap-binaries-1
> How to make guix find these tarballs?
> 
> http://guix.gnu.org/manual/en/html_node/Porting.html#Porting
> says:
> ...
> Fortunately, Guix can cross compile those bootstrap binaries.
> When everything goes well, and assuming the GNU tool chain supports the
> target platform, this can be as simple as running a command like this
> one:
> 
> guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs
> My change here:
> guix build --target=i586-pc-gnu --no-substitutes bootstrap-tarballs
> 
> For this to work, the glibc-dynamic-linker procedure in
> (gnu packages bootstrap) must be augmented to return the right
> file name for libc’s dynamic linker on that platform; likewise,
> system->linux-architecture in (gnu packages linux) must be
> taught about the new platform.
> 

i586-pc-gnu is already listed in (gnu packages bootstrap), I would skip
(gnu packages linux) for now, the relevant parts seem to be related to
the linux kernel.

> (should probably be changed to (gnu packages gnu) ??)
> 
> Once these are built, the (gnu packages bootstrap) module needs
> to be updated to refer to these binaries on the target platform.
> 
> To which *.scm file to add e.g. (gnu packages bootstrap)?

to (gnu packages bootstrap). The "correct" way to do it is to host it
somewhere and modify %bootstrap-base-urls and the urls for
bootstrap-*-url-path for each of the bootstrap binaries, in actuality,
for testing, you can 'guix download file:///path/to/file' and just
update the bootstrap-*-hash entries with one for your architecture (in
this case, i586-pc). If you use 'guix download' to place them in the
store then you don't need to worry about hosting them because they won't
need to be downloaded.

You'll also need to change some of the references to guile-2.0 to
guile-2.2 in (gnu packages bootstrap) and possibly also in (gnu packages
commencement).

> 
> Thanks!
> 
> 

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-01  9:11                         ` Svante Signell
  2019-09-01  9:32                           ` Efraim Flashner
@ 2019-09-01 13:28                           ` Svante Signell
  2019-09-01 18:01                             ` Svante Signell
  1 sibling, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-01 13:28 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Sun, 2019-09-01 at 11:11 +0200, Svante Signell wrote:
> On Sat, 2019-08-31 at 19:27 +0200, Svante Signell wrote:
> 
> I have some further guix/guile questions when building and running guix on
> GHU/Hurd natively
> 
> On the GNU/Hurd image:
> download and unpack guix-1.0.1.tar.gz
> cd guix-1.0.1
> 
> 1) When building guix from source
> ./configure --with-courage --prefix=/usr 2>&1 | tee ../configure-with-
> courage.log
> make 2>&1 | tee ../make.log
> ERROR: In procedure scm-error:
> no code for module (bytestructures guile)
> export GUILE_LOAD_PATH=~/DEBs/scheme-bytestructures/scheme-bytestructures
> The above fixes that error. 
> 
> a) How do I add that module and in which *.scm file?
> 
> 2) Building Hello
> 
> ./pre-inst-env guix build --verbosity=10000 --keep-failed --log-file hello
> 2>&1
> > tee build-hello-keep+log.log
> 
> a) Where do I find the build log, and where is the failed build directory?
> b) After building the bootstrap tarballs on my GNU/Linux guix image:
> 
> ls /gnu/store/zb89702az7xx3c0y21ip6gsql5fxa8ws-bootstrap-tarballs-0
> binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz
> gcc-stripped-5.5.0-i586-pc-gnu.tar.xz
> glibc-stripped-2.28-i586-pc-gnu.tar.xz
> guile-static-stripped-2.2.4-i586-pc-gnu.tar.xz
> static-binaries-0-i586-pc-gnu.tar.xz
> 
> and copying them to gnu/packages/bootstrap/i586-pc-gnu/
> - Should they be as is *.xz or unpacked to *.tar or untarred?
> - The manual says: 
> http://guix.gnu.org/manual/en/html_node/Bootstrapping.html#index-bootstrap-binaries-1
> How to make guix find these tarballs?
> 
> http://guix.gnu.org/manual/en/html_node/Porting.html#Porting
> says:
> ...
> Fortunately, Guix can cross compile those bootstrap binaries.
> When everything goes well, and assuming the GNU tool chain supports the
> target platform, this can be as simple as running a command like this
> one:
> 
> guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs
> My change here:
> guix build --target=i586-pc-gnu --no-substitutes bootstrap-tarballs
> 
> For this to work, the glibc-dynamic-linker procedure in
> (gnu packages bootstrap) must be augmented to return the right
> file name for libc’s dynamic linker on that platform; likewise,
> system->linux-architecture in (gnu packages linux) must be
> taught about the new platform.
> 
> (should probably be changed to (gnu packages gnu) ??)
> 
> Once these are built, the (gnu packages bootstrap) module needs
> to be updated to refer to these binaries on the target platform.
> 
> To which *.scm file to add e.g. (gnu packages bootstrap)?
> 
> Thanks!

And btw: info guix speaks Spanish as default :( Must be a bug!

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-01 13:28                           ` Svante Signell
@ 2019-09-01 18:01                             ` Svante Signell
  2019-09-03 12:07                               ` Status update+patches:Re: " Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-01 18:01 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Sun, 2019-09-01 at 15:28 +0200, Svante Signell wrote:
> On Sun, 2019-09-01 at 11:11 +0200, Svante Signell wrote:

> And btw: info guix speaks Spanish as default :( Must be a bug!

I've come a little further:
Extracting the files from the cross-built files "bash mkdir tar xz" from static-
binaries-0-i586-pc-gnu.tar to the build directory
.../guix-1.0.1/gnu/packages/bootstrap/i586-gnu and issuing
guix package --bootstrap 2>&1 | tee ../bootstrap.log

I found out the the file gnu/packages/bootstrap.scm has to be modified. 

Backtrace:
          13 (apply-smob/1 #<catch-closure 552110>)
In ice-9/boot-9.scm:
    705:2 12 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
In ice-9/eval.scm:
    619:8 11 (_ #(#(#<directory (guile-user) 645910>)))
In guix/ui.scm:
  1747:12 10 (run-guix-command _ . _)
In ice-9/boot-9.scm:
    829:9  9 (catch srfi-34 #<procedure 48aa900 at guix/ui.scm:703:…> …)
    829:9  8 (catch system-error #<procedure 48aa950 at guix/script…> …)
In guix/scripts/package.scm:
   915:10  7 (_)
In guix/status.scm:
    768:4  6 (call-with-status-report _ _)
In guix/scripts/package.scm:
   918:28  5 (_)
In guix/packages.scm:
   936:16  4 (cache! #<weak-table 0/113> #<package guile-bootstrap@…> …)
  1255:22  3 (thunk)
In gnu/packages/bootstrap.scm:
   263:16  2 (raw-build #<store-connection 256.99 4edba0> "guile-bo…" …)
   246:30  1 (download-bootstrap-guile #<store-connection 256.99 4e…> …)
    220:2  0 (bootstrap-guile-hash _)

gnu/packages/bootstrap.scm:220:2: In procedure bootstrap-guile-hash:
Throw to key `match-error' with args `("match" "no matching pattern" "i586-
gnu")'.

Looking at line 220 one finds:
(define (bootstrap-guile-hash system)
  "Return the SHA256 hash of the Guile bootstrap tarball for SYSTEM."
  (match system
    ("x86_64-linux"
     (base32 "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3"))

How do I create the hash for i586-gnu?
guix hash --help shows that I need a file to create the hash for:
Usage: guix hash [OPTION] FILE
Return the cryptographic hash of FILE.

Which FILE to enter here, the cross-built guile-static-stripped-2.2.4-i586-pc-
gnu.tar.xz?
Additionally before line 220 in that file 
(define %bootstrap-base-urls
  ;; This is where the initial binaries come from.
anddefine (bootstrap-guile-url-path system)
  "Return the URI for FILE."

How to give an entry for the locally built .xz-files?


Thanks!

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-01 18:01                             ` Svante Signell
@ 2019-09-03 12:07                               ` Svante Signell
  2019-09-03 12:58                                 ` Ricardo Wurmus
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-03 12:07 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 3351 bytes --]

On Sun, 2019-09-01 at 20:01 +0200, Svante Signell wrote:
...

I think it is time to wrap up a little now on the Hurd port.
Attached are patches I made. Save for some indentation misses.
gnu_local.mk.diff                guix_scripts_perform-download.scm.diff
gnu_packages_bootstrap.scm.diff  nix_libstore_build.cc.diff
guix_build_syscalls.scm.diff

guix_scripts_perform-download.scm.diff and nix_libstore_build.cc.diff
are temporary fixes enable to downloads as root.

guix_build_syscalls.scm.diff should be made conditional on (set-thread-name
name) for Linux and non-Linux. Don't know too much scheme coding yet.

gnu_local.mk.diff and gnu_package_bootstrap.scm.diff
are essentially the same as Ricardo Wurmus made. I used my cross-built files
though:
binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz
gcc-stripped-5.5.0-i586-pc-gnu.tar.xz
glibc-stripped-2.28-i586-pc-gnu.tar.xz
guile-static-stripped-2.2.4-i586-pc-gnu.tar.xz
static-binaries-0-i586-pc-gnu.tar.xz

The guix-daemon was started by:
./pre-inst-env ./guix-daemon --debug --disable-chroot --no-substitutes

Found out that the built static xz binary was erroring out:
Error creating a pipe: Function not implemented
so I replaced it with the native dynamically built xz, both at
gnu/packages/bootstrap/i586-gnu and in static-binaries-0-i586-pc-gnu.tar.xz.

That made ./pre-inst-env guix build -S hello work.

Then I continued with as Richardo wrote:
./pre-inst-env  guix build -e '(@@ (gnu packages commencement) gnu-make-boot0))' 
2>&1 | tee ../pre-inst-env_guix-build-e-no-chroot_new-hash.log
The build went a lot further, but failed here:
 
successfully built /gnu/store/6sybpxd8hy07h4fqf4wyblxrsi17r4zn-gcc-bootstrap-
0.drv
building /gnu/store/h0y1izzm1nxr3gqwagg84dnssa723sby-make-4.2.1.tar.xz.drv...
builder for `/gnu/store/h0y1izzm1nxr3gqwagg84dnssa723sby-make-4.2.1.tar.xz.drv'
failed with exit code 1
build of /gnu/store/h0y1izzm1nxr3gqwagg84dnssa723sby-make-4.2.1.tar.xz.drv
failed
View build log at '/usr/var/log/guix/drvs/h0/y1izzm1nxr3gqwagg84dnssa723sby-
make-4.2.1.tar.xz.drv.gz'.
cannot build derivation `/gnu/store/j18911vbapx9kx0gqcyn6nkd3bwz52lj-make-boot0-
4.2.1.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/j18911vbapx9kx0gqcyn6nkd3bwz52lj-make-
boot0-4.2.1.drv' failed

Unfortunately the build log is empty.

I also replaced tar at gnu/packages/bootstrap/i586-gnu and in static-binaries-0-
i586-pc-gnu.tar.xz but did not get any further.

The cross-built xz is definitely buggy, I don't know about the other files at:
gnu/packages/bootstrap/i586-gnu: bash mkdir tar xz

Maybe there are other buggy cross-built binaries.

A question: The gcc used is very old: 5.5.0, is i possible that guix could
upgrade to a newer version, preferrably later than gcc-7.

Additionally, it would maybe better to create static binaries built natively on
GNU/Hurd instead of using cross-building? I also tried to build the cross-files
natively but failed:

./pre-inst-env guix build --no-grafts --target=i586-pc-gnu -e '(@@ (gnu packages
make-bootstrap) %static-inputs)' 2>&1 | tee ../rebuild-static-cross-files.log
guix build: error: ("tar" #<package tar@1.30 guix/build-system/gnu.scm:169
114fb790>): not something we can build

Is it possible to modify gnu/packages/make-bootstrap.scm to make this succeed?

Thanks everybody on #guix for your help.


[-- Attachment #2: gnu_local.mk.diff --]
[-- Type: text/x-patch, Size: 907 bytes --]

--- a/gnu/local.mk.orig	2019-05-15 15:43:04.000000000 +0200
+++ b/gnu/local.mk	2019-09-01 21:40:56.000000000 +0200
@@ -1383,6 +1383,7 @@
 bootstrap_armhf_linuxdir = $(bootstrapdir)/armhf-linux
 bootstrap_aarch64_linuxdir = $(bootstrapdir)/aarch64-linux
 bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux
+bootstrap_i586_gnudir = $(bootstrapdir)/i586-gnu
 
 dist_bootstrap_x86_64_linux_DATA =		\
   %D%/packages/bootstrap/x86_64-linux/bash	\
@@ -1414,6 +1415,12 @@
   %D%/packages/bootstrap/mips64el-linux/tar	\
   %D%/packages/bootstrap/mips64el-linux/xz
 
++dist_bootstrap_i586_gnu_DATA =		\
+  %D%/packages/bootstrap/i586-gnu/bash	\
+  %D%/packages/bootstrap/i586-gnu/mkdir	\
+  %D%/packages/bootstrap/i586-gnu/tar	\
+  %D%/packages/bootstrap/i586-gnu/xz
+
 # Those files must remain executable, so they remain executable once
 # imported into the store.
 set-bootstrap-executable-permissions:

[-- Attachment #3: gnu_packages_bootstrap.scm.diff --]
[-- Type: text/x-patch, Size: 5704 bytes --]

--- a/gnu/packages/bootstrap.scm.orig	2019-05-03 14:25:14.000000000 +0200
+++ b/gnu/packages/bootstrap.scm	2019-09-03 12:07:06.000000000 +0200
@@ -202,6 +202,8 @@
     "http://alpha.gnu.org/gnu/guix/bootstrap"
     "ftp://alpha.gnu.org/gnu/guix/bootstrap"
     "http://www.fdn.fr/~lcourtes/software/guix/packages"
+    "http://berlin.guix.gnu.org/guix/bootstrap"
+    "http://178.78.231.178/Guix/bootstrap-tarballs"
     "http://flashner.co.il/guix/bootstrap"))
 
 (define (bootstrap-guile-url-path system)
@@ -212,6 +214,8 @@
                     "/20170217/guile-2.0.14.tar.xz")
                    ("armhf-linux"
                     "/20150101/guile-2.0.11.tar.xz")
+                   ("i586-gnu"
+                    "/20190901/guile-static-stripped-2.2.4-i586-pc-gnu.tar.xz")
                    (_
                     "/20131110/guile-2.0.9.tar.xz"))))
 
@@ -227,7 +231,9 @@
     ("armhf-linux"
      (base32 "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))
     ("aarch64-linux"
-     (base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))))
+     (base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))
+    ("i586-gnu"
+     (base32 "1lvzcjkk22dykgylcbwfxb8ajlq7ik1vqgs4gv0xspqcr94dmbkf"))))
 
 (define (bootstrap-guile-origin system)
   "Return an <origin> object for the Guile tarball of SYSTEM."
@@ -356,6 +362,8 @@
                                              "/20150101/static-binaries.tar.xz")
                                             ("aarch64-linux"
                                              "/20170217/static-binaries.tar.xz")
+                                            ("i586-gnu"
+                                             "/20190901/static-binaries-0-i586-pc-gnu.tar.xz")
                                             (_
                                              "/20131110/static-binaries.tar.xz")))
                                      %bootstrap-base-urls))
@@ -373,6 +381,9 @@
                               ("aarch64-linux"
                                (base32
                                 "18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
+                              ("i586-gnu"
+                               (base32
+                                "14grnv1f7g3c49j1rxzln3nv3902c4k081fgf3a4bpvn0x12sdgd"))
                               ("mips64el-linux"
                                (base32
                                 "072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
@@ -403,6 +414,8 @@
                                              "/20150101/binutils-2.25.tar.xz")
                                             ("aarch64-linux"
                                              "/20170217/binutils-2.27.tar.xz")
+                                            ("i586-gnu"
+                                             "/20190901/binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz")
                                             (_
                                              "/20131110/binutils-2.23.2.tar.xz")))
                                      %bootstrap-base-urls))
@@ -420,6 +433,9 @@
                               ("aarch64-linux"
                                (base32
                                 "111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
+                              ("i586-gnu"
+                               (base32
+                                "0yd35w9j6pm3y6qwwsa3vdxki50kzy9zylbsbyr98109w6fshpz6"))
                               ("mips64el-linux"
                                (base32
                                 "1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
@@ -471,6 +487,8 @@
                                        "/20150101/glibc-2.20.tar.xz")
                                       ("aarch64-linux"
                                        "/20170217/glibc-2.25.tar.xz")
+                                      ("i586-gnu"
+                                       "/20190901/glibc-stripped-2.28-i586-pc-gnu.tar.xz")
                                       (_
                                        "/20131110/glibc-2.18.tar.xz")))
                                %bootstrap-base-urls))
@@ -488,6 +506,9 @@
                         ("aarch64-linux"
                          (base32
                           "07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
+                        ("i586-gnu"
+                         (base32
+                          "0qy2pib5j78lg08756smbgq3qxqrx3b6kf68j59fd0dlby7dwk63"))
                         ("mips64el-linux"
                          (base32
                           "0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
@@ -555,6 +576,8 @@
                                        "/20150101/gcc-4.8.4.tar.xz")
                                       ("aarch64-linux"
                                        "/20170217/gcc-5.4.0.tar.xz")
+                                      ("i586-gnu"
+                                       "/20190901/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
                                       (_
                                        "/20131110/gcc-4.8.2.tar.xz")))
                                %bootstrap-base-urls))
@@ -572,6 +595,9 @@
                         ("aarch64-linux"
                          (base32
                           "1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
+                        ("i586-gnu"
+                         (base32
+                          "14yqm084l71ry381ir7cvaz56w68yasb87nx4j0np36hmwgvlzhl"))
                         ("mips64el-linux"
                          (base32
                           "1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))

[-- Attachment #4: guix_scripts_perform-download.scm.diff --]
[-- Type: text/x-patch, Size: 1340 bytes --]

--- a/guix/scripts/perform-download.scm.orig	2019-05-03 14:25:15.000000000 +0200
+++ b/guix/scripts/perform-download.scm	2019-09-02 17:59:19.000000000 +0200
@@ -86,10 +86,10 @@
         (when (and executable (string=? executable "1"))
           (chmod output #o755))))))
 
-(define (assert-low-privileges)
-  (when (zero? (getuid))
-    (leave (G_ "refusing to run with elevated privileges (UID ~a)~%")
-           (getuid))))
+;;(define (assert-low-privileges)
+;;  (when (zero? (getuid))
+;;    (leave (G_ "refusing to run with elevated privileges (UID ~a)~%")
+;;           (getuid))))
 
 (define (guix-perform-download . args)
   "Perform the download described by the given fixed-output derivation.
@@ -112,12 +112,12 @@
   (with-error-handling
     (match args
       (((? derivation-path? drv) (? store-path? output))
-       (assert-low-privileges)
+;;       (assert-low-privileges)
        (perform-download (read-derivation-from-file drv)
                          output
                          #:print-build-trace? print-build-trace?))
       (((? derivation-path? drv))                 ;backward compatibility
-       (assert-low-privileges)
+;;       (assert-low-privileges)
        (perform-download (read-derivation-from-file drv)
                          #:print-build-trace? print-build-trace?))
       (("--version")

[-- Attachment #5: nix_libstore_build.cc.diff --]
[-- Type: text/x-patch, Size: 643 bytes --]

--- a/nix/libstore/build.cc.orig	2019-05-03 14:25:15.000000000 +0200
+++ b/nix/libstore/build.cc	2019-09-02 17:53:29.000000000 +0200
@@ -492,7 +492,7 @@
 
 void UserLock::acquire()
 {
-    assert(uid == 0);
+  //    assert(uid == 0);
 
     assert(settings.buildUsersGroup != "");
 
@@ -571,9 +571,9 @@
 
 void UserLock::release()
 {
-    if (uid == 0) return;
+  //    if (uid == 0) return;
     fdUserLock.close(); /* releases lock */
-    assert(lockedPaths.find(fnUserLock) != lockedPaths.end());
+    //    assert(lockedPaths.find(fnUserLock) != lockedPaths.end());
     lockedPaths.erase(fnUserLock);
     fnUserLock = "";
     uid = 0;

[-- Attachment #6: guix_build_syscalls.scm.diff --]
[-- Type: text/x-patch, Size: 1271 bytes --]

--- a/guix/build/syscalls.scm.orig	2019-05-15 15:43:04.000000000 +0200
+++ b/guix/build/syscalls.scm	2019-09-03 13:45:36.000000000 +0200
@@ -1086,18 +1086,19 @@
   ;; zero.
   16)
 
-(define (set-thread-name name)
-  "Set the name of the calling thread to NAME.  NAME is truncated to 15
-bytes."
-  (let ((ptr (string->pointer name)))
-    (let-values (((ret err)
-                  (%prctl PR_SET_NAME
-                          (pointer-address ptr) 0 0 0)))
-      (unless (zero? ret)
-        (throw 'set-process-name "set-process-name"
-               "set-process-name: ~A"
-               (list (strerror err))
-               (list err))))))
+(define (set-thread-name name) #t)
+;; (define (set-thread-name name)
+;;   "Set the name of the calling thread to NAME.  NAME is truncated to 15
+;; bytes."
+;;   (let ((ptr (string->pointer name)))
+;;     (let-values (((ret err)
+;;                   (%prctl PR_SET_NAME
+;;                           (pointer-address ptr) 0 0 0)))
+;;       (unless (zero? ret)
+;;         (throw 'set-process-name "set-process-name"
+;;                "set-process-name: ~A"
+;;                (list (strerror err))
+;;                (list err))))))
 
 (define (thread-name)
   "Return the name of the calling thread as a string."

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-03 12:07                               ` Status update+patches:Re: " Svante Signell
@ 2019-09-03 12:58                                 ` Ricardo Wurmus
  2019-09-03 13:56                                   ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Ricardo Wurmus @ 2019-09-03 12:58 UTC (permalink / raw)
  To: svante.signell; +Cc: guix-devel


Hi Svante,

> Then I continued with as Richardo wrote:
> ./pre-inst-env  guix build -e '(@@ (gnu packages commencement) gnu-make-boot0))' 
> 2>&1 | tee ../pre-inst-env_guix-build-e-no-chroot_new-hash.log
> The build went a lot further, but failed here:
>  
> successfully built /gnu/store/6sybpxd8hy07h4fqf4wyblxrsi17r4zn-gcc-bootstrap-
> 0.drv
> building /gnu/store/h0y1izzm1nxr3gqwagg84dnssa723sby-make-4.2.1.tar.xz.drv...
> builder for `/gnu/store/h0y1izzm1nxr3gqwagg84dnssa723sby-make-4.2.1.tar.xz.drv'
> failed with exit code 1
> build of /gnu/store/h0y1izzm1nxr3gqwagg84dnssa723sby-make-4.2.1.tar.xz.drv
> failed
> View build log at '/usr/var/log/guix/drvs/h0/y1izzm1nxr3gqwagg84dnssa723sby-
> make-4.2.1.tar.xz.drv.gz'.
> cannot build derivation `/gnu/store/j18911vbapx9kx0gqcyn6nkd3bwz52lj-make-boot0-
> 4.2.1.drv': 1 dependencies couldn't be built
> guix build: error: build of `/gnu/store/j18911vbapx9kx0gqcyn6nkd3bwz52lj-make-
> boot0-4.2.1.drv' failed

This looks very much like the tar segfault I encountered when I last
played with the Hurd port.

My notes say this:

--8<---------------cut here---------------start------------->8---
- tar fails to run when building gnu-make-boot0
./pre-inst-env  guix build -e '(@@ (gnu packages commencement) gnu-make-boot0))'
here’s the error:
building /gnu/store/ybi3cyxqwm55gvwn9i1nczg2ns5ha34q-make-4.2.1.tar.xz.drv...                   
/hurd/crash: /gnu/store/dqlhjyvg0n8v1kdvwfpliqy46n7kpjqb-bootstrap-binaries-0/bin/tar cvfa /gnu/store/p278mqb3aa0xrkrrw4rg1fxbb19hbdyh-make-4.2.1.tar.xz --mtime=@0 --owner=root --group=root --sort=name make-4.2.1(2316) crashed, signal {no:1 1, code:8176, error:2}, exception {1, code:2, subcode:8176}, PCs: {0x8089ce7, 0x 815091c}, writing core file.                      


This works:
/gnu/store/dqlhjyvg0n8v1kdvwfpliqy46n7kpjqb-bootstrap-binaries-0/bin/tar cvfa hello.tar.xz /tmp

But it segfaults with “--mtime=@0”
--8<---------------cut here---------------end--------------->8---

> The cross-built xz is definitely buggy, I don't know about the other files at:
> gnu/packages/bootstrap/i586-gnu: bash mkdir tar xz
>
> Maybe there are other buggy cross-built binaries.

Quite likely!

> A question: The gcc used is very old: 5.5.0, is i possible that guix could
> upgrade to a newer version, preferrably later than gcc-7.

How would that help?  Or is it just a guess that a later GCC would be
better here?

On the “core-updates” branch we are using a later GCC already.

-- 
Ricardo

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-03 12:58                                 ` Ricardo Wurmus
@ 2019-09-03 13:56                                   ` Svante Signell
  2019-09-03 14:34                                     ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-03 13:56 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Tue, 2019-09-03 at 14:58 +0200, Ricardo Wurmus wrote:
> Hi Svante,
> 
> This looks very much like the tar segfault I encountered when I last
> played with the Hurd port.
> 
> My notes say this:
> 
> --8<---------------cut here---------------start------------->8---
> - tar fails to run when building gnu-make-boot0
> ./pre-inst-env  guix build -e '(@@ (gnu packages commencement) gnu-make-
> boot0))'
> here’s the error:
> building /gnu/store/ybi3cyxqwm55gvwn9i1nczg2ns5ha34q-make-
> 4.2.1.tar.xz.drv...                   
> /hurd/crash: /gnu/store/dqlhjyvg0n8v1kdvwfpliqy46n7kpjqb-bootstrap-binaries-
> 0/bin/tar cvfa /gnu/store/p278mqb3aa0xrkrrw4rg1fxbb19hbdyh-make-4.2.1.tar.xz 
> --mtime=@0 --owner=root --group=root --sort=name make-4.2.1(2316) crashed,
> signal {no:1 1, code:8176, error:2}, exception {1, code:2, subcode:8176}, PCs:
> {0x8089ce7, 0x 815091c}, writing core file.                      
> 
> 
> This works:
> /gnu/store/dqlhjyvg0n8v1kdvwfpliqy46n7kpjqb-bootstrap-binaries-0/bin/tar cvfa
> hello.tar.xz /tmp
> 
> But it segfaults with “--mtime=@0”

I did not look at the console, but found out similar crashes there. How did you
get the output to the client terminal instead of the qemu console (not possible
to cut and paste from that)? I have now tested both the statically built tar,
the native tar downloaded by guix and the native tar: No errors now.

How can I rebuild from scratch to watch the output on the console? 

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-03 13:56                                   ` Svante Signell
@ 2019-09-03 14:34                                     ` Svante Signell
  2019-09-03 21:13                                       ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-03 14:34 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Tue, 2019-09-03 at 15:56 +0200, Svante Signell wrote:
> I did not look at the console, but found out similar crashes there. How did
> you get the output to the client terminal instead of the qemu console (not
> possible to cut and paste from that)? I have now tested both the statically
> built tar, the native tar downloaded by guix and the native tar: No errors
> now. 
> How can I rebuild from scratch to watch the output on the console? 
> 

This time bash crashed... Took a screen shot of the qemu console. I have to
replace all four:  bash  mkdir  tar  xz and put them into the .xz file too. 

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-03 14:34                                     ` Svante Signell
@ 2019-09-03 21:13                                       ` Svante Signell
  2019-09-03 21:26                                         ` Ricardo Wurmus
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-03 21:13 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Tue, 2019-09-03 at 16:34 +0200, Svante Signell wrote:
> 
> > How can I rebuild from scratch to watch the output on the console? 

Seems to be to wipe out /gnu/store and /var/{guix,log}

> This time bash crashed... Took a screen shot of the qemu console. I have to
> replace all four:  bash  mkdir  tar  xz and put them into the .xz file too. 

I have now replaced bin/guile in guile-static-stripped-2.2.4-i586-pc-gnu.tar.xz, 
but guile or tar still crashes. However I came a little further this time
though:
successfully built /gnu/store/3aqdqcnz63nnlwk61wimkcrdpbilwpvp-glibc-bootstrap-
0.drv
building /gnu/store/sp2zksrcpvph48j9d93i902y098hpai4-make-4.2.1.tar.xz.drv...
/gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: 1:
/gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: Syntax
error: ";" unexpected
/gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: 1:
/gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: Syntax
error: ";" unexpected
Backtrace:
           2 (primitive-load "/gnu/store/qhyjwkwjriipqrc5av2j2ng6cgh?")
In ice-9/eval.scm:
    619:8  1 (_ #f)
In guix/build/utils.scm:
    616:6  0 (invoke _ . _)

guix/build/utils.scm:616:6: In procedure invoke:
Throw to key `srfi-34' with args `(#<condition &invoke-error [program:
"/gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar"
arguments: ("xvf" "/gnu/store/cq2prw9x259px05hsfvyivjfv9ibd1s7-make-
4.2.1.tar.bz2") exit-status: 2 term-signal: #f stop-signal: #f] 961fe0>)'.
builder for `/gnu/store/sp2zksrcpvph48j9d93i902y098hpai4-make-4.2.1.tar.xz.drv'
failed with exit code 1
build of /gnu/store/sp2zksrcpvph48j9d93i902y098hpai4-make-4.2.1.tar.xz.drv
failed
View build log at '/usr/var/log/guix/drvs/sp/2zksrcpvph48j9d93i902y098hpai4-
make-4.2.1.tar.xz.drv.gz'.
cannot build derivation `/gnu/store/zjhkkvvlqiidl0albl0hcsd7c5pmfazs-make-boot0-
4.2.1.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/zjhkkvvlqiidl0albl0hcsd7c5pmfazs-make-
boot0-4.2.1.drv' failed

The main problem seem to be the cross-built binaries. Would it be possible to
build these static binaries natively, maybe even using guix or in som other
way??

I have cross-built binutils, gcc, glibc, etc some (long) time ago when porting
gnat to GNU/Hurd. Maybe it is time to find those notes again (if they did not
disappear in the previous hard-disk crashes, no backup was used).

All for now, time to do something else. BBL.

Thanks!

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-03 21:13                                       ` Svante Signell
@ 2019-09-03 21:26                                         ` Ricardo Wurmus
  2019-09-03 21:46                                           ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Ricardo Wurmus @ 2019-09-03 21:26 UTC (permalink / raw)
  To: svante.signell; +Cc: guix-devel


Svante Signell <svante.signell@gmail.com> writes:

> On Tue, 2019-09-03 at 16:34 +0200, Svante Signell wrote:
>> 
>> > How can I rebuild from scratch to watch the output on the console? 
>
> Seems to be to wipe out /gnu/store and /var/{guix,log}
>
>> This time bash crashed... Took a screen shot of the qemu console. I have to
>> replace all four:  bash  mkdir  tar  xz and put them into the .xz file too. 
>
> I have now replaced bin/guile in guile-static-stripped-2.2.4-i586-pc-gnu.tar.xz, 
> but guile or tar still crashes. However I came a little further this time
> though:
> successfully built /gnu/store/3aqdqcnz63nnlwk61wimkcrdpbilwpvp-glibc-bootstrap-
> 0.drv
> building /gnu/store/sp2zksrcpvph48j9d93i902y098hpai4-make-4.2.1.tar.xz.drv...
> /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: 1:
> /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: Syntax
> error: ";" unexpected
> /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: 1:
> /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: Syntax
> error: ";" unexpected

What are the contents of /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar?

> The main problem seem to be the cross-built binaries. Would it be possible to
> build these static binaries natively, maybe even using guix or in som other
> way??

We should figure out what’s wrong with them and then adjust the way
these binaries are built.  It would not be useful to take binaries from
elsewhere because we want to be able to reproduce the build automatically.

-- 
Ricardo

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-03 21:26                                         ` Ricardo Wurmus
@ 2019-09-03 21:46                                           ` Svante Signell
  2019-09-03 22:01                                             ` Ricardo Wurmus
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-03 21:46 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Tue, 2019-09-03 at 23:26 +0200, Ricardo Wurmus wrote:
> 
> What are the contents of /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-
> bootstrap-binaries-0/bin/tar?

Something strange:

# ls -l  /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-
0/bin/tar
-r-xr-xr-x 2 root root 445560 Jan  1  1970
/gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar

# file /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar
/gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: ELF
64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked,
interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0,
BuildID[sha1]=6664753ff93e3b42aa8681d7fe0f7f9e5259c54f, stripped

# ldd /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar
        not a dynamic executable

# /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar
-bash: /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: 
cannot execute binary file: Exec format error

> > The main problem seem to be the cross-built binaries. Would it be possible
> > to build these static binaries natively, maybe even using guix or in som
> > other way??
> 
> We should figure out what’s wrong with them and then adjust the way
> these binaries are built.  It would not be useful to take binaries from
> elsewhere because we want to be able to reproduce the build automatically.

Again, can we build them natively on Hurd for testing purposes, either using
native guix or not or cross-compiling from Linux with or without guix?

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-03 21:46                                           ` Svante Signell
@ 2019-09-03 22:01                                             ` Ricardo Wurmus
  2019-09-04  4:31                                               ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Ricardo Wurmus @ 2019-09-03 22:01 UTC (permalink / raw)
  To: svante.signell; +Cc: guix-devel


Svante Signell <svante.signell@gmail.com> writes:

> On Tue, 2019-09-03 at 23:26 +0200, Ricardo Wurmus wrote:
>> 
>> What are the contents of /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-
>> bootstrap-binaries-0/bin/tar?
>
> Something strange:
>
> # ls -l  /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-
> 0/bin/tar
> -r-xr-xr-x 2 root root 445560 Jan  1  1970
> /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar
>
> # file /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar
> /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: ELF
> 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked,
> interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0,

Did you copy this from Debian and moved it into the store?  That’s a
very bad idea.

> BuildID[sha1]=6664753ff93e3b42aa8681d7fe0f7f9e5259c54f, stripped
>
> # ldd /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar
>         not a dynamic executable
>
> # /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar
> -bash: /gnu/store/alzim8hg6zqvs9s33frh7m9z211lryk3-bootstrap-binaries-0/bin/tar: 
> cannot execute binary file: Exec format error

Does /lib64/ld-linux-x86-64.so.2 exist on the system?  On the Guix
system this does not exist.

-- 
Ricardo

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-03 22:01                                             ` Ricardo Wurmus
@ 2019-09-04  4:31                                               ` Svante Signell
  2019-09-04  6:25                                                 ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-04  4:31 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Wed, 2019-09-04 at 00:01 +0200, Ricardo Wurmus wrote:
> Svante Signell <svante.signell@gmail.com> writes:
> 
> Did you copy this from Debian and moved it into the store?  That’s a
> very bad idea.

Sorry, my fault. I was tired and worked on different boxes and Linux+Hurd VMs.

The status is now that ...:
Starting download of /gnu/store/cq2prw9x259px05hsfvyivjfv9ibd1s7-make-
4.2.1.tar.bz2
From ftp://ftp.funet.fi/pub/mirrors/ftp.gnu.org/gnu/make/make-4.2.1.tar.bz2...
cessfully built /gnu/store/j3525cllgl53qhkk5k9qkvx49qhba15g-make-
4.2.1.tar.bz2.drv
building /gnu/store/kpwda0jcslkx16hm91ab1kr9kqg6lpg8-guile-bootstrap-2.0.drv...
unpacking bootstrap Guile to '/gnu/store/ncp3yhr6c38kqvgb8c967vnhly59yf1m-guile-
bootstrap-2.0'...
./
./bin/
./bin/guile
...
./share/guile/2.2/web/server.scm./share/guile/2.2/web/uri.scm
<crash output on the console>
Uncaught exception:
Cannot exit gracefully when init is in progress; aborting.
/gnu/store/f2zsfb7ywkjmv7rzbnrzxi68hrcijnsf-build-bootstrap-guile.sh: line 8:
13527 Aborted                 (core dumped)
GUILE_SYSTEM_PATH=$out/share/guile/2.0
GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/2.0/ccache $out/bin/guile -c "(begin
(use-modules (ice-9 match)) (match (command-line) ((_ out bash) (let ((bin-dir
(string-append out \"/bin\")) (guile (string-append out \"/bin/guile\")) (guile-
real (string-append out \"/bin/.guile-real\")) (dollar (string (integer->char
36)))) (chmod bin-dir 493) (rename-file guile guile-real) (call-with-output-file 
guile (lambda (p) (format p \"#!~a\\nexport
GUILE_SYSTEM_PATH=~a/share/guile/2.0\\nexport
GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/2.0/ccache\\nexec -a \\\"~a0\\\" ~a
\\\"~a@\\\"\\n\" bash out out dollar guile-real dollar))) (chmod guile 365)
(chmod bin-dir 365)))))" $out /gnu/store/l79x4bhi7gw87xq0dwjia55qvdr0d4lz-bash
successfully built /gnu/store/kpwda0jcslkx16hm91ab1kr9kqg6lpg8-guile-bootstrap-
2.0.drv
building /gnu/store/fkqrljhpfw57hvcjg4gy6cisw45vw5r3-static-binaries-0-i586-pc-
gnu.tar.xz.drv...
Starting download of /gnu/store/abq8fgbsnfrjd0l5ywcnb12k4grynpcc-static-
binaries-0-i586-pc-gnu.tar.xz
...
successfully built /gnu/store/kpwda0jcslkx16hm91ab1kr9kqg6lpg8-guile-bootstrap-
2.0.drv
building /gnu/store/fkqrljhpfw57hvcjg4gy6cisw45vw5r3-static-binaries-0-i586-pc-
gnu.tar.xz.drv......
successfully built /gnu/store/1cfnynxfjp5axj9s83hcak8azc84lzfx-module-import-
compiled.drv
building /gnu/store/2pyyqi3hpvwxhdwy0wjnrgnirzbslh1k-binutils-bootstrap-0.drv...
successfully built /gnu/store/2pyyqi3hpvwxhdwy0wjnrgnirzbslh1k-binutils-
bootstrap-0.drv
building /gnu/store/5pddkdbhw27pgaq406js2c5m0wix6z6h-bootstrap-binaries-0.drv...
builder for `/gnu/store/5pddkdbhw27pgaq406js2c5m0wix6z6h-bootstrap-binaries-
0.drv' failed with exit code 1
build of /gnu/store/5pddkdbhw27pgaq406js2c5m0wix6z6h-bootstrap-binaries-0.drv
failedView build log at
'/usr/var/log/guix/drvs/5p/ddkdbhw27pgaq406js2c5m0wix6z6h-bootstrap-binaries-
0.drv.gz'.
cannot build derivation `/gnu/store/9w8x804cgfm0j6h41k5z6lhyzfwcdzhv-make-boot0-
4.2.1.drv': 1 dependencies couldn't be built
killing process 13522: Invalid argument
guix build: error: build of `/gnu/store/9w8x804cgfm0j6h41k5z6lhyzfwcdzhv-make-
boot0-4.2.1.drv' failed

In this session the cross-compiled version of guile-static was used.
The only changes were the native tar in static-binaries and
native versions of bash mkdir tar xz at gnu/packages/bootstrap/i586-gnu

Thanks!

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-04  4:31                                               ` Svante Signell
@ 2019-09-04  6:25                                                 ` Svante Signell
  2019-09-04  7:52                                                   ` Ricardo Wurmus
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-04  6:25 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Wed, 2019-09-04 at 06:31 +0200, Svante Signell wrote:
> 
> unpacking bootstrap Guile to '/gnu/store/ncp3yhr6c38kqvgb8c967vnhly59yf1m-
> guile-bootstrap-2.0'...

This stuff comes from gnu/packages/bootstrap.scm
#!~a
export GUILE_SYSTEM_PATH=~a/share/guile/2.0
export GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/2.0/ccache
exec -a \"~a0\" ~a \"~a@\"\n"
                              bash out out dollar guile-real dollar)))
                  (chmod guile   #o555)
                  (chmod bin-dir #o555))))))
         (builder
          (add-text-to-store store
                             "build-bootstrap-guile.sh"
                             (format #f "
echo \"unpacking bootstrap Guile to '$out'...\"
~a $out
cd $out
~a -dc < $GUILE_TARBALL | ~a xv

# Use the bootstrap guile to create its own wrapper to set the load path.
GUILE_SYSTEM_PATH=$out/share/guile/2.0 \
GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/2.0/ccache \
$out/bin/guile -c ~s $out ~a

# Sanity check.
$out/bin/guile --version~%"
...

resulting in /gnu/store/f2zsfb7ywkjmv7rzbnrzxi68hrcijnsf-build-bootstrap-
guile.sh

echo "unpacking bootstrap Guile to '$out'..."
/gnu/store/dh3nk21gj69nmqx6mp97vq97b1xz0yia-mkdir $out
cd $out
/gnu/store/yaxqsba39qdlyv3wrz04i3705l0l0kyp-xz -dc < $GUILE_TARBALL |
/gnu/store/z8zria3rlr8p24kx4gk6wwlmfpyp4lhv-tar xv

# Use the bootstrap guile to create its own wrapper to set the load path.
GUILE_SYSTEM_PATH=$out/share/guile/2.0
GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/2.0/ccache $out/bin/guile -c "(begin
(use-modules (ice-9 match)) (match (command-line) ((_ out bash) (let ((bin-dir
(string-append out \"/bin\")) (guile (string-append out \"/bin/guile\")) (guile-
real (string-append out \"/bin/.guile-real\")) (dollar (string (integer->char
36)))) (chmod bin-dir 493) (rename-file guile guile-real) (call-with-output-file 
guile (lambda (p) (format p \"#!~a\\nexport
GUILE_SYSTEM_PATH=~a/share/guile/2.0\\nexport
GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/2.0/ccache\\nexec -a \\\"~a0\\\" ~a
\\\"~a@\\\"\\n\" bash out out dollar guile-real dollar))) (chmod guile 365)
(chmod bin-dir 365)))))" $out /gnu/store/l79x4bhi7gw87xq0dwjia55qvdr0d4lz-bash

# Sanity check.
$out/bin/guile --version

I would like to run this script manually:
I've found that
out=/gnu/store/ncp3yhr6c38kqvgb8c967vnhly59yf1m-guile-bootstrap-2.0

But how to set GUILE_TARBALL and ~a?

BTW: What is ~a, something guile-specific?

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-04  6:25                                                 ` Svante Signell
@ 2019-09-04  7:52                                                   ` Ricardo Wurmus
  2019-09-04 18:24                                                     ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Ricardo Wurmus @ 2019-09-04  7:52 UTC (permalink / raw)
  To: svante.signell; +Cc: guix-devel


Svante Signell <svante.signell@gmail.com> writes:

> On Wed, 2019-09-04 at 06:31 +0200, Svante Signell wrote:
>> 
>> unpacking bootstrap Guile to '/gnu/store/ncp3yhr6c38kqvgb8c967vnhly59yf1m-
>> guile-bootstrap-2.0'...
>
> This stuff comes from gnu/packages/bootstrap.scm
> #!~a
> export GUILE_SYSTEM_PATH=~a/share/guile/2.0

…

Didn’t you use Guile 2.2 for the bootstrap?  This generated script
assumes that Guile 2.0 is used.

> BTW: What is ~a, something guile-specific?

“~a” is a format string placeholder.

(format #f "hello, ~a!  I‘m ~a years old."
           "world" 12)

=> "hello, world!  I‘m 12 years old."

-- 
Ricardo

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-04  7:52                                                   ` Ricardo Wurmus
@ 2019-09-04 18:24                                                     ` Svante Signell
  2019-09-04 21:44                                                       ` Ricardo Wurmus
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-04 18:24 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Wed, 2019-09-04 at 09:52 +0200, Ricardo Wurmus wrote:
> Svante Signell <svante.signell@gmail.com> writes:
> 
> > On Wed, 2019-09-04 at 06:31 +0200, Svante Signell wrote:
> > > unpacking bootstrap Guile to '/gnu/store/ncp3yhr6c38kqvgb8c967vnhly59yf1m-
> > > guile-bootstrap-2.0'...
> > 
> > export GUILE_SYSTEM_PATH=~a/share/guile/2.0

> Didn’t you use Guile 2.2 for the bootstrap?  This generated script
> assumes that Guile 2.0 is used.

I had both guile-2.0-libs and guile-2.2-libs installed. guile-2.0-libs was
installed due to autogen, one of the build-dependencies of gnutls28. 

Looking at the build logs of autogen for Hurd one finds that it failed to build
after 1:5.18.7-3, and current is 1:5.18.12-4.

I probably have to compile latest autogen with guile-2.2-libs and after that
gnutls28 again.

Thanks for finding out.

Bad luck!

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-04 18:24                                                     ` Svante Signell
@ 2019-09-04 21:44                                                       ` Ricardo Wurmus
  2019-09-08 20:55                                                         ` Ludovic Courtès
  0 siblings, 1 reply; 47+ messages in thread
From: Ricardo Wurmus @ 2019-09-04 21:44 UTC (permalink / raw)
  To: svante.signell; +Cc: guix-devel


Svante Signell <svante.signell@gmail.com> writes:

> On Wed, 2019-09-04 at 09:52 +0200, Ricardo Wurmus wrote:
>> Svante Signell <svante.signell@gmail.com> writes:
>>
>> > On Wed, 2019-09-04 at 06:31 +0200, Svante Signell wrote:
>> > > unpacking bootstrap Guile to '/gnu/store/ncp3yhr6c38kqvgb8c967vnhly59yf1m-
>> > > guile-bootstrap-2.0'...
>> >
>> > export GUILE_SYSTEM_PATH=~a/share/guile/2.0
>
>> Didn’t you use Guile 2.2 for the bootstrap?  This generated script
>> assumes that Guile 2.0 is used.
>
> I had both guile-2.0-libs and guile-2.2-libs installed. guile-2.0-libs was
> installed due to autogen, one of the build-dependencies of gnutls28.
>
> Looking at the build logs of autogen for Hurd one finds that it failed to build
> after 1:5.18.7-3, and current is 1:5.18.12-4.
>
> I probably have to compile latest autogen with guile-2.2-libs and after that
> gnutls28 again.

I believe the problem is in Guix, which lets the builds for i586-gnu use
Guile 2.2, but generates scripts for Guile 2.0.  We probably need to
change it use Guile 2.0 there as it is done for other architectures
(which is why the generated scripts refer to 2.0).

--
Ricardo

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-04 21:44                                                       ` Ricardo Wurmus
@ 2019-09-08 20:55                                                         ` Ludovic Courtès
  2019-09-10  8:10                                                           ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Ludovic Courtès @ 2019-09-08 20:55 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

Hi,

Ricardo Wurmus <rekado@elephly.net> skribis:

> I believe the problem is in Guix, which lets the builds for i586-gnu use
> Guile 2.2, but generates scripts for Guile 2.0.  We probably need to
> change it use Guile 2.0 there as it is done for other architectures
> (which is why the generated scripts refer to 2.0).

Yes, it seems easier to keep everything at 2.0 for now in
‘make-bootstrap.scm’.

Someone porting to PowerPC made the same suggestion recently.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-08 20:55                                                         ` Ludovic Courtès
@ 2019-09-10  8:10                                                           ` Svante Signell
  2019-09-20 15:59                                                             ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-10  8:10 UTC (permalink / raw)
  To: Ludovic Courtès, Ricardo Wurmus; +Cc: guix-devel

On Sun, 2019-09-08 at 22:55 +0200, Ludovic Courtès wrote:
> Hi,
> 
> Ricardo Wurmus <rekado@elephly.net> skribis:
> 
> > I believe the problem is in Guix, which lets the builds for i586-gnu use
> > Guile 2.2, but generates scripts for Guile 2.0.  We probably need to
> > change it use Guile 2.0 there as it is done for other architectures
> > (which is why the generated scripts refer to 2.0).
> 
> Yes, it seems easier to keep everything at 2.0 for now in
> ‘make-bootstrap.scm’.
> 
> Someone porting to PowerPC made the same suggestion recently.

Back after a few days of AFK.

> On Wed, 2019-09-04 at 09:52 +0200, Ricardo Wurmus wrote:
> > Didn’t you use Guile 2.2 for the bootstrap?  This generated script
> > assumes that Guile 2.0 is used.
> 
> I had both guile-2.0-libs and guile-2.2-libs installed. guile-2.0-libs was
> installed due to autogen, one of the build-dependencies of gnutls28. 

So you say that
> I probably have to compile latest autogen with guile-2.2-libs and after that
> gnutls28 again.
will not be enough?

> I believe the problem is in Guix, which lets the builds for i586-gnu use
> Guile 2.2, but generates scripts for Guile 2.0.  We probably need to
> change it use Guile 2.0 there as it is done for other architectures
> (which is why the generated scripts refer to 2.0).

Then the generation of bootstrap binaries for GNU/Hurd has to be reverted from
Guix 1.0.1 since they build:
guile-static-stripped-2.2.4-i586-pc-gnu.tar.xz

Wouldn't it be better to fully support guile-2.2 for all architectures?

Just my 5c.

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-10  8:10                                                           ` Svante Signell
@ 2019-09-20 15:59                                                             ` Svante Signell
  2019-09-20 17:03                                                               ` Ricardo Wurmus
  2019-09-20 22:18                                                               ` Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next? Ricardo Wurmus
  0 siblings, 2 replies; 47+ messages in thread
From: Svante Signell @ 2019-09-20 15:59 UTC (permalink / raw)
  To: Ludovic Courtès, Ricardo Wurmus; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 2626 bytes --]

On Tue, 2019-09-10 at 10:10 +0200, Svante Signell wrote:
> On Sun, 2019-09-08 at 22:55 +0200, Ludovic Courtès wrote:
> > Hi,
> > 
> > Ricardo Wurmus <rekado@elephly.net> skribis:
> > 
> > > I believe the problem is in Guix, which lets the builds for i586-gnu use
> > > Guile 2.2, but generates scripts for Guile 2.0.  We probably need to
> > > change it use Guile 2.0 there as it is done for other architectures
> > > (which is why the generated scripts refer to 2.0).
> > 
> > Yes, it seems easier to keep everything at 2.0 for now in
> > ‘make-bootstrap.scm’.

On a GNU/Linux amd64 qemu image:
================================

git clone https://git.savannah.gnu.org/git/guix.git
cd guix
autoreconf -ivf
./configure --prefix=/usr 2>&1 | tee ../configure.log
make 2>&1 | tee ../make-guix.log

I used the attached patches to build the bootstrap tarballs with command:
Terminal 1: <as root>
export GUILE_LOAD_PATH=/usr/share/guile/site/2.2/
./pre-inst-env ./guix-daemon --debug --build-users-group=guixbuild

Terminal 2:
export GUILE_LOAD_PATH=/usr/share/guile/site/2.2/
./pre-inst-env guix build --target=i586-pc-gnu bootstrap-tarballs 2>&1 | tee
../bootstrap-tarballs-i586-pc-gnu.log

Build took around two days, and the log file is 361MB.

Note: --target=i586-gnu does not work!

apt-get install guile-2.2 guile-gcrypt libgnutls30 guile-sqlite3 guile-json
guile-bytestructures make zlib1g bzip2 libgcrypt20 sqlite3 g++ guile-2.0 guile-
2.0-libs guile-2.2-dev libsqlite3-dev guile-ssh libgit2-27 libgit2-dev texinfo
texlive-base help2man

guile-json is too old: Install 3.1.0-1.
apt-get install -t experimental guile-json

guile-git was built from git and guile-gnutls was built from a modified version
of gnutls28-3.6.9-5.

However, for the dependencies I needed guile-2.2 to be installed:
apt-get remove --purge guile-2.2
guile-2.2* guile-bytestructures* guile-gcrypt* guile-gnutls* guile-json* guile-
sqlite3* guile-ssh*

dpkg -S /usr/share/guile/site/
guile-sqlite3, guile-gcrypt, guile-bytestructures, guile-ssh, guile-gnutls,
guile-json: /usr/share/guile/site

dpkg -S /usr/share/guile/site/2.2
guile-sqlite3, guile-gcrypt, guile-bytestructures, guile-ssh, guile-json:
/usr/share/guile/site/2.2

On the Hurd box:
================
The cross-built files xz and guile are corrupt (maybe tar too):
/gnu/store/...-xz: Error creating a pipe: Function not implemented

On the Linux box:
=================
Extracting and running guile from guile-static-stripped-2.0.14-i586-pc-
gnu.tar.xz
./bin/guile --version
Throw without catch before boot:
Aborting.

Where did things go wrong or where did I miss something?

Thanks!


[-- Attachment #2: doc_local.mk.diff --]
[-- Type: text/x-patch, Size: 642 bytes --]

--- a/doc/local.mk	2019-09-16 17:09:49.972000000 +0200
+++ b/doc/local.mk	2019-09-16 17:23:41.812000000 +0200
@@ -21,12 +21,12 @@
 # You should have received a copy of the GNU General Public License
 # along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-info_TEXINFOS = %D%/guix.texi			\
-  %D%/guix.de.texi				\
-  %D%/guix.es.texi				\
-  %D%/guix.fr.texi				\
-  %D%/guix.ru.texi				\
-  %D%/guix.zh_CN.texi
+info_TEXINFOS = %D%/guix.texi			
+#  %D%/guix.de.texi				\
+#  %D%/guix.es.texi				\
+#  %D%/guix.fr.texi				\
+#  %D%/guix.ru.texi				\
+#  %D%/guix.zh_CN.texi
 
 %C%_guix_TEXINFOS = \
   %D%/contributing.texi \

[-- Attachment #3: gnu_packages_make-bootstrap.scm.diff --]
[-- Type: text/x-patch, Size: 3938 bytes --]

--- a/gnu/packages/make-bootstrap.scm	2019-09-19 10:41:28.856000000 +0200
+++ b/gnu/packages/make-bootstrap.scm	2019-09-19 10:39:27.420000000 +0200
@@ -700,29 +700,29 @@
   ;; .scm and .go files relative to its installation directory, rather
   ;; than in hard-coded configure-time paths.
   (let* ((patches (cons* (search-patch "guile-relocatable.patch")
-                         (search-patch "guile-2.2-default-utf8.patch")
+                         (search-patch "guile-default-utf8.patch")
                          (search-patch "guile-linux-syscalls.patch")
-                         (origin-patches (package-source guile-2.2))))
-         (source  (origin (inherit (package-source guile-2.2))
+                         (origin-patches (package-source guile-2.0))))
+         (source  (origin (inherit (package-source guile-2.0))
                     (patches patches)))
-         (guile (package (inherit guile-2.2)
-                  (name (string-append (package-name guile-2.2) "-static"))
+         (guile (package (inherit guile-2.0)
+                  (name (string-append (package-name guile-2.0) "-static"))
                   (source source)
                   (synopsis "Statically-linked and relocatable Guile")
 
                   ;; Remove the 'debug' output (see above for the reason.)
-                  (outputs (delete "debug" (package-outputs guile-2.2)))
+                  (outputs (delete "debug" (package-outputs guile-2.0)))
 
                   (inputs
                    `(("libunistring:static" ,libunistring "static")
-                     ,@(package-inputs guile-2.2)))
+                     ,@(package-inputs guile-2.0)))
 
                   (propagated-inputs
                    `(("bdw-gc" ,libgc)
                      ,@(alist-delete "bdw-gc"
-                                     (package-propagated-inputs guile-2.2))))
+                                     (package-propagated-inputs guile-2.0))))
                   (arguments
-                   (substitute-keyword-arguments (package-arguments guile-2.2)
+                   (substitute-keyword-arguments (package-arguments guile-2.0)
                      ((#:configure-flags flags '())
                       ;; When `configure' checks for ltdl availability, it
                       ;; doesn't try to link using libtool, and thus fails
@@ -745,7 +745,7 @@
                                (("^guile_LDFLAGS =")
                                 "guile_LDFLAGS = -all-static")
 
-                               ;; Add `-ldl' *after* libguile-2.2.la.
+                               ;; Add `-ldl' *after* libguile-2.0.la.
                                (("^guile_LDADD =(.*)$" _ ldadd)
                                 (string-append "guile_LDADD = "
                                                (string-trim-right ldadd)
@@ -777,13 +777,13 @@
                 (out    (assoc-ref %outputs "out"))
                 (guile1 (string-append in "/bin/guile"))
                 (guile2 (string-append out "/bin/guile")))
-           (mkdir-p (string-append out "/share/guile/2.2"))
-           (copy-recursively (string-append in "/share/guile/2.2")
-                             (string-append out "/share/guile/2.2"))
-
-           (mkdir-p (string-append out "/lib/guile/2.2/ccache"))
-           (copy-recursively (string-append in "/lib/guile/2.2/ccache")
-                             (string-append out "/lib/guile/2.2/ccache"))
+           (mkdir-p (string-append out "/share/guile/2.0"))
+           (copy-recursively (string-append in "/share/guile/2.0")
+                             (string-append out "/share/guile/2.0"))
+
+           (mkdir-p (string-append out "/lib/guile/2.0/ccache"))
+           (copy-recursively (string-append in "/lib/guile/2.0/ccache")
+                             (string-append out "/lib/guile/2.0/ccache"))
 
            (mkdir (string-append out "/bin"))
            (copy-file guile1 guile2)

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-20 15:59                                                             ` Svante Signell
@ 2019-09-20 17:03                                                               ` Ricardo Wurmus
  2019-09-20 17:49                                                                 ` Svante Signell
  2019-09-20 22:18                                                               ` Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next? Ricardo Wurmus
  1 sibling, 1 reply; 47+ messages in thread
From: Ricardo Wurmus @ 2019-09-20 17:03 UTC (permalink / raw)
  To: svante.signell; +Cc: guix-devel


Svante Signell <svante.signell@gmail.com> writes:

> On a GNU/Linux amd64 qemu image:
> ================================
[…]
> apt-get install guile-2.2 guile-gcrypt libgnutls30 guile-sqlite3 guile-json
> guile-bytestructures make zlib1g bzip2 libgcrypt20 sqlite3 g++ guile-2.0 guile-
> 2.0-libs guile-2.2-dev libsqlite3-dev guile-ssh libgit2-27 libgit2-dev texinfo
> texlive-base help2man
>
> guile-json is too old: Install 3.1.0-1.
> apt-get install -t experimental guile-json
>
> guile-git was built from git and guile-gnutls was built from a modified version
> of gnutls28-3.6.9-5.
>
> However, for the dependencies I needed guile-2.2 to be installed:
> apt-get remove --purge guile-2.2
> guile-2.2* guile-bytestructures* guile-gcrypt* guile-gnutls* guile-json* guile-
> sqlite3* guile-ssh*
>
> dpkg -S /usr/share/guile/site/
> guile-sqlite3, guile-gcrypt, guile-bytestructures, guile-ssh, guile-gnutls,
> guile-json: /usr/share/guile/site
>
> dpkg -S /usr/share/guile/site/2.2
> guile-sqlite3, guile-gcrypt, guile-bytestructures, guile-ssh, guile-json:
> /usr/share/guile/site/2.2

You can skip all of this by building the bootstrap binaries on a system
where Guix is installed.  Then it’s merely ’guix environment guix’.

-- 
Ricardo

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-20 17:03                                                               ` Ricardo Wurmus
@ 2019-09-20 17:49                                                                 ` Svante Signell
  2019-09-20 18:48                                                                   ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-20 17:49 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Fri, 2019-09-20 at 19:03 +0200, Ricardo Wurmus wrote:
> Svante Signell <svante.signell@gmail.com> writes:
> 
> > On a GNU/Linux amd64 qemu image:
> > 
> > 
> > dpkg -S /usr/share/guile/site/2.2
> > guile-sqlite3, guile-gcrypt, guile-bytestructures, guile-ssh, guile-json:
> > /usr/share/guile/site/2.2
> 
> You can skip all of this by building the bootstrap binaries on a system
> where Guix is installed.  Then it’s merely ’guix environment guix’.

And how do I apply:gnu_packages_make-bootstrap.scm.diff? Doing
guest@gnu ~ [env]$ guix build --target=i586-pc-gnu bootstrap-tarballs 2>&1 | tee
./bootstrap-tarballs-i586-pc-gnu.log
only downloads the already built
binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz 
guile-static-stripped-2.2.4-i586-pc-gnu.tar.xz 
gcc-stripped-5.5.0-i586-pc-gnu.tar.xz
static-binaries-0-i586-pc-gnu.tar.xz
glibc-stripped-2.28-i586-pc-gnu.tar.xz

No guile-2.0 here??

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-20 17:49                                                                 ` Svante Signell
@ 2019-09-20 18:48                                                                   ` Svante Signell
  2019-09-20 19:12                                                                     ` Jonathan Brielmaier
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-20 18:48 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Fri, 2019-09-20 at 19:49 +0200, Svante Signell wrote:
> On Fri, 2019-09-20 at 19:03 +0200, Ricardo Wurmus wrote:
> > Svante Signell <svante.signell@gmail.com> writes:
> > 
> > > On a GNU/Linux amd64 qemu image:
> > > 
> > > 
> > > dpkg -S /usr/share/guile/site/2.2
> > > guile-sqlite3, guile-gcrypt, guile-bytestructures, guile-ssh, guile-json:
> > > /usr/share/guile/site/2.2
> > 
> > You can skip all of this by building the bootstrap binaries on a system
> > where Guix is installed.  Then it’s merely ’guix environment guix’.
> 
> And how do I apply:gnu_packages_make-bootstrap.scm.diff? Doing
> guest@gnu ~ [env]$ guix build --target=i586-pc-gnu bootstrap-tarballs 2>&1 |
> tee
> ./bootstrap-tarballs-i586-pc-gnu.log
> only downloads the already built
> binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz 
> guile-static-stripped-2.2.4-i586-pc-gnu.tar.xz 
> gcc-stripped-5.5.0-i586-pc-gnu.tar.xz
> static-binaries-0-i586-pc-gnu.tar.xz
> glibc-stripped-2.28-i586-pc-gnu.tar.xz
> 
> No guile-2.0 here??

find /gnu/store -name "make-bootstrap.scm"|grep guix-packages-
source/gnu/packages|wc -l
12
Which one to patch??
There are also .cache files...

Confusing as ever. Seem like the time to learn will be long!

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-20 18:48                                                                   ` Svante Signell
@ 2019-09-20 19:12                                                                     ` Jonathan Brielmaier
  2019-09-21 11:26                                                                       ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Jonathan Brielmaier @ 2019-09-20 19:12 UTC (permalink / raw)
  To: guix-devel

On 20.09.19 20:48, Svante Signell wrote:
> find /gnu/store -name "make-bootstrap.scm"|grep guix-packages-
> source/gnu/packages|wc -l
> 12
> Which one to patch??
> There are also .cache files...
>
> Confusing as ever. Seem like the time to learn will be long!

The /gnu/store is read-only, you should not patch something in there.

If I got your situation correctly you need to do the following steps.

1. Obtain the guix git repo
git clone https://git.savannah.gnu.org/git/guix.git
cd guix/
patch the files you need to patch

2. Get an environment with the dependencies of guix.
- the most simple way is to install guix itself from a binary. See
https://guix.gnu.org/manual/en/html_node/Binary-Installation.html#Binary-Installation
and then use the `guix environment` feature. After you installed guix
successfull, just do inside your guix git repo:
guix environment guix

- the other way is to get the dependencies from your distribution. For
openSUSE Tumbleweed this would be:
sudo zypper addrepo
https://download.opensuse.org/repositories/home:/jbrielmaier:/guix/openSUSE_Tumbleweed/home:jbrielmaier:guix.repo
sudo zypper refresh
sudo zypper source-install --build-deps-only guix

3. Now you have the dependencies for building your patched guix from
source. Inside the guix git repo do:
./bootstrap
./configure --localstatedir=/var
make

4. Now there is guix with the changes you patched in this git repo. You
can use it simply by using the pre-inst-env script:
./pre-inst-env guix build stuff-for-hurd-which-need-this-patch

You know can just patch files in the guix git repo. This will directly
be "visible" in ./pre-inst-env guix. So you don't need to do step 3 all
the time :)

I hope this helps
Jonathan

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-20 15:59                                                             ` Svante Signell
  2019-09-20 17:03                                                               ` Ricardo Wurmus
@ 2019-09-20 22:18                                                               ` Ricardo Wurmus
  2019-09-21  8:10                                                                 ` Svante Signell
  1 sibling, 1 reply; 47+ messages in thread
From: Ricardo Wurmus @ 2019-09-20 22:18 UTC (permalink / raw)
  To: svante.signell; +Cc: guix-devel


Svante Signell <svante.signell@gmail.com> writes:

> ./pre-inst-env guix build --target=i586-pc-gnu bootstrap-tarballs 2>&1 | tee
> ../bootstrap-tarballs-i586-pc-gnu.log
>
> Build took around two days, and the log file is 361MB.

I guess that’s because you’ve rebuilt the x86_64 bootstrap first and
only then built the Hurd bootstrap tarballs (which are cross-built).
This is expected because you’ve changed the recipes for generating the
bootstrap binaries independent of the target architecture.

--
Ricardo

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-20 22:18                                                               ` Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next? Ricardo Wurmus
@ 2019-09-21  8:10                                                                 ` Svante Signell
  0 siblings, 0 replies; 47+ messages in thread
From: Svante Signell @ 2019-09-21  8:10 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Sat, 2019-09-21 at 00:18 +0200, Ricardo Wurmus wrote:
> Svante Signell <svante.signell@gmail.com> writes:
> 
> > ./pre-inst-env guix build --target=i586-pc-gnu bootstrap-tarballs 2>&1 | tee
> > ../bootstrap-tarballs-i586-pc-gnu.log
> > 
> > Build took around two days, and the log file is 361MB.
> 
> I guess that’s because you’ve rebuilt the x86_64 bootstrap first and
> only then built the Hurd bootstrap tarballs (which are cross-built).
> This is expected because you’ve changed the recipes for generating the
> bootstrap binaries independent of the target architecture.

How would the patch for gnu/packages/make-bootstrap.scm look like then?

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-20 19:12                                                                     ` Jonathan Brielmaier
@ 2019-09-21 11:26                                                                       ` Svante Signell
  2019-09-21 16:47                                                                         ` Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-21 11:26 UTC (permalink / raw)
  To: guix-devel

On Fri, 2019-09-20 at 21:12 +0200, Jonathan Brielmaier wrote:
> On 20.09.19 20:48, Svante Signell wrote:

> If I got your situation correctly you need to do the following steps.
> 
> 1. Obtain the guix git repo
> git clone https://git.savannah.gnu.org/git/guix.git
> cd guix/
> patch the files you need to patch
> 
> 2. Get an environment with the dependencies of guix.
> - the most simple way is to install guix itself from a binary. See
> https://guix.gnu.org/manual/en/html_node/Binary-Installation.html#Binary-Installation
> and then use the `guix environment` feature. After you installed guix
> successfull, just do inside your guix git repo:
> guix environment guix
> 
> 3. Now you have the dependencies for building your patched guix from
> source. Inside the guix git repo do:
> ./bootstrap
> ./configure --localstatedir=/var
> make
> 
> 4. Now there is guix with the changes you patched in this git repo. You
> can use it simply by using the pre-inst-env script:
> ./pre-inst-env guix build stuff-for-hurd-which-need-this-patch
> 
> You know can just patch files in the guix git repo. This will directly
> be "visible" in ./pre-inst-env guix. So you don't need to do step 3 all
> the time :)

Thanks, I have now built the cross bootstrap tarballs again, on a GNU/Linux pre-
installed image running guix. The results are the same as for the previous build
on a Debian GNU/Linux amd64 image:

binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz
gcc-stripped-5.5.0-i586-pc-gnu.tar.xz
glibc-stripped-2.28-i586-pc-gnu.tar.xz
guile-static-stripped-2.0.14-i586-pc-gnu.tar.xz
static-binaries-0-i586-pc-gnu.tar.xz

Extracting bash, mkdir, tar, xz and guile and run them with --version shows that
at least xz and guile are corrupt:

gnu/packages/bootstrap/i586-gnu/xz --version
gnu/packages/bootstrap/i586-gnu/xz: Error creating a pipe: Function not
implemented

gnu/packages/bootstrap/i586-gnu/guile --version
Throw without catch before boot:
Aborting.
Aborted (core dumped)

Maybe it is time to spend time on something else for now...

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Re: Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next?
  2019-09-21 11:26                                                                       ` Svante Signell
@ 2019-09-21 16:47                                                                         ` Svante Signell
  2019-09-22  8:45                                                                           ` Need help: Re: Status update+patches:Re: I managed to ... GNU/Hurd Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-21 16:47 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 657 bytes --]

On Sat, 2019-09-21 at 13:26 +0200, Svante Signell wrote:

> Extracting bash, mkdir, tar, xz and guile and run them with --version shows
> that at least xz and guile are corrupt:
> 
> gnu/packages/bootstrap/i586-gnu/xz --version
> gnu/packages/bootstrap/i586-gnu/xz: Error creating a pipe: Function not
> implemented
> 
> gnu/packages/bootstrap/i586-gnu/guile --version
> Throw without catch before boot:
> Aborting.
> Aborted (core dumped)

Replacing the cross-built versions with dynamically built native versions of xz
and guile-2.0, I did come further, but need help interpreting the log file,
attached: make-boot0-4.2.1.drv.gz. Where is the real error?

[-- Attachment #2: make-boot0-4.2.1.drv.gz --]
[-- Type: application/gzip, Size: 4010 bytes --]

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Need help: Re: Status update+patches:Re: I managed to ... GNU/Hurd ...
  2019-09-21 16:47                                                                         ` Svante Signell
@ 2019-09-22  8:45                                                                           ` Svante Signell
  2019-09-24 13:06                                                                             ` Summary Re: Need help: " Svante Signell
  0 siblings, 1 reply; 47+ messages in thread
From: Svante Signell @ 2019-09-22  8:45 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 853 bytes --]

On Sat, 2019-09-21 at 18:47 +0200, Svante Signell wrote:
> On Sat, 2019-09-21 at 13:26 +0200, Svante Signell wrote:
> 
> > Extracting bash, mkdir, tar, xz and guile and run them with --version shows
> > that at least xz and guile are corrupt:
> > 
> > gnu/packages/bootstrap/i586-gnu/xz --version
> > gnu/packages/bootstrap/i586-gnu/xz: Error creating a pipe: Function not
> > implemented
> > 
> > gnu/packages/bootstrap/i586-gnu/guile --version
> > Throw without catch before boot:
> > Aborting.
> > Aborted (core dumped)
> 
> Replacing the cross-built versions with dynamically built native versions of
> xz
> and guile-2.0, I did come further, but need help interpreting the log file,
> attached: make-boot0-4.2.1.drv.gz. Where is the real error?

I shouldn't have attached the compressed version, the uncompressed version is
small enough, attached!

[-- Attachment #2: make-boot0-4.2.1.drv --]
[-- Type: text/plain, Size: 19044 bytes --]

starting phase `set-SOURCE-DATE-EPOCH'
phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
starting phase `set-paths'
environment variable `PATH' set to `/gnu/store/5zpkb4zqhri5myzppaay0p0bdihgsmx6-gcc-bootstrap-0/bin:/gnu/store/1caqn4d3px2kfc079aisys6bamxc7ga2-binutils-bootstrap-0/bin:/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin'
environment variable `CPATH' set to `/gnu/store/2rrv9p513nj5pg13w9558dlng0sz28ai-glibc-bootstrap-0/include:/gnu/store/5zpkb4zqhri5myzppaay0p0bdihgsmx6-gcc-bootstrap-0/include'
environment variable `LIBRARY_PATH' set to `/gnu/store/2rrv9p513nj5pg13w9558dlng0sz28ai-glibc-bootstrap-0/lib:/gnu/store/5zpkb4zqhri5myzppaay0p0bdihgsmx6-gcc-bootstrap-0/lib'
phase `set-paths' succeeded after 0.0 seconds
starting phase `install-locale'
warning: failed to install 'en_US.utf8' locale: Invalid argument
phase `install-locale' succeeded after 0.0 seconds
starting phase `unpack'
make-4.2.1/
make-4.2.1/ABOUT-NLS
make-4.2.1/AUTHORS
make-4.2.1/COPYING
make-4.2.1/ChangeLog
make-4.2.1/INSTALL
make-4.2.1/Makefile.DOS
make-4.2.1/Makefile.am
make-4.2.1/Makefile.ami
make-4.2.1/Makefile.in
make-4.2.1/NEWS
make-4.2.1/NMakefile
make-4.2.1/README
make-4.2.1/README.Amiga
make-4.2.1/README.DOS
make-4.2.1/README.OS2
make-4.2.1/README.VMS
make-4.2.1/README.W32
make-4.2.1/README.customs
make-4.2.1/SCOPTIONS
make-4.2.1/SMakefile
make-4.2.1/acinclude.m4
make-4.2.1/aclocal.m4
make-4.2.1/alloca.c
make-4.2.1/amiga.c
make-4.2.1/amiga.h
make-4.2.1/ar.c
make-4.2.1/arscan.c
make-4.2.1/build.sh.in
make-4.2.1/build_w32.bat
make-4.2.1/commands.c
make-4.2.1/commands.h
make-4.2.1/config/
make-4.2.1/config/Makefile.am
make-4.2.1/config/Makefile.in
make-4.2.1/config/ar-lib
make-4.2.1/config/compile
make-4.2.1/config/config.guess
make-4.2.1/config/config.rpath
make-4.2.1/config/config.sub
make-4.2.1/config/depcomp
make-4.2.1/config/dospaths.m4
make-4.2.1/config/gettext.m4
make-4.2.1/config/iconv.m4
make-4.2.1/config/install-sh
make-4.2.1/config/intlmacosx.m4
make-4.2.1/config/lib-ld.m4
make-4.2.1/config/lib-link.m4
make-4.2.1/config/lib-prefix.m4
make-4.2.1/config/longlong.m4
make-4.2.1/config/mdate-sh
make-4.2.1/config/missing
make-4.2.1/config/nls.m4
make-4.2.1/config/po.m4
make-4.2.1/config/progtest.m4
make-4.2.1/config/texinfo.tex
make-4.2.1/config.ami
make-4.2.1/config.h-vms
make-4.2.1/config.h.W32
make-4.2.1/config.h.in
make-4.2.1/configh.dos
make-4.2.1/configure
make-4.2.1/configure.ac
make-4.2.1/configure.bat
make-4.2.1/debug.h
make-4.2.1/default.c
make-4.2.1/dep.h
make-4.2.1/dir.c
make-4.2.1/doc/
make-4.2.1/doc/Makefile.am
make-4.2.1/doc/Makefile.in
make-4.2.1/doc/fdl.texi
make-4.2.1/doc/make-stds.texi
make-4.2.1/doc/make.info
make-4.2.1/doc/make.info-1
make-4.2.1/doc/make.info-2
make-4.2.1/doc/make.texi
make-4.2.1/doc/stamp-vti
make-4.2.1/doc/version.texi
make-4.2.1/dosbuild.bat
make-4.2.1/expand.c
make-4.2.1/file.c
make-4.2.1/filedef.h
make-4.2.1/function.c
make-4.2.1/getloadavg.c
make-4.2.1/getopt.c
make-4.2.1/getopt.h
make-4.2.1/getopt1.c
make-4.2.1/gettext.h
make-4.2.1/glob/
make-4.2.1/glob/COPYING.LIB
make-4.2.1/glob/ChangeLog
make-4.2.1/glob/Makefile.am
make-4.2.1/glob/Makefile.ami
make-4.2.1/glob/Makefile.in
make-4.2.1/glob/SCOPTIONS
make-4.2.1/glob/SMakefile
make-4.2.1/glob/configure.bat
make-4.2.1/glob/fnmatch.c
make-4.2.1/glob/fnmatch.h
make-4.2.1/glob/glob.c
make-4.2.1/glob/glob.h
make-4.2.1/gmk-default.h
make-4.2.1/gmk-default.scm
make-4.2.1/gnumake.h
make-4.2.1/guile.c
make-4.2.1/hash.c
make-4.2.1/hash.h
make-4.2.1/implicit.c
make-4.2.1/job.c
make-4.2.1/job.h
make-4.2.1/load.c
make-4.2.1/loadapi.c
make-4.2.1/main.c
make-4.2.1/make.1
make-4.2.1/make.lnk
make-4.2.1/make_msvc_net2003.sln
make-4.2.1/make_msvc_net2003.vcproj
make-4.2.1/makefile.com
make-4.2.1/makefile.vms
make-4.2.1/makeint.h
make-4.2.1/misc.c
make-4.2.1/os.h
make-4.2.1/output.c
make-4.2.1/output.h
make-4.2.1/po/
make-4.2.1/po/LINGUAS
make-4.2.1/po/Makefile.in.in
make-4.2.1/po/Makevars
make-4.2.1/po/POTFILES.in
make-4.2.1/po/Rules-quot
make-4.2.1/po/be.gmo
make-4.2.1/po/be.po
make-4.2.1/po/boldquot.sed
make-4.2.1/po/cs.gmo
make-4.2.1/po/cs.po
make-4.2.1/po/da.gmo
make-4.2.1/po/da.po
make-4.2.1/po/de.gmo
make-4.2.1/po/de.po
make-4.2.1/po/en@boldquot.header
make-4.2.1/po/en@quot.header
make-4.2.1/po/es.gmo
make-4.2.1/po/es.po
make-4.2.1/po/fi.gmo
make-4.2.1/po/fi.po
make-4.2.1/po/fr.gmo
make-4.2.1/po/fr.po
make-4.2.1/po/ga.gmo
make-4.2.1/po/ga.po
make-4.2.1/po/gl.gmo
make-4.2.1/po/gl.po
make-4.2.1/po/he.gmo
make-4.2.1/po/he.po
make-4.2.1/po/hr.gmo
make-4.2.1/po/hr.po
make-4.2.1/po/id.gmo
make-4.2.1/po/id.po
make-4.2.1/po/insert-header.sin
make-4.2.1/po/it.gmo
make-4.2.1/po/it.po
make-4.2.1/po/ja.gmo
make-4.2.1/po/ja.po
make-4.2.1/po/ko.gmo
make-4.2.1/po/ko.po
make-4.2.1/po/lt.gmo
make-4.2.1/po/lt.po
make-4.2.1/po/make.pot
make-4.2.1/po/nl.gmo
make-4.2.1/po/nl.po
make-4.2.1/po/pl.gmo
make-4.2.1/po/pl.po
make-4.2.1/po/pt_BR.gmo
make-4.2.1/po/pt_BR.po
make-4.2.1/po/quot.sed
make-4.2.1/po/remove-potcdate.sin
make-4.2.1/po/ru.gmo
make-4.2.1/po/ru.po
make-4.2.1/po/stamp-po
make-4.2.1/po/sv.gmo
make-4.2.1/po/sv.po
make-4.2.1/po/tr.gmo
make-4.2.1/po/tr.po
make-4.2.1/po/uk.gmo
make-4.2.1/po/uk.po
make-4.2.1/po/vi.gmo
make-4.2.1/po/vi.po
make-4.2.1/po/zh_CN.gmo
make-4.2.1/po/zh_CN.po
make-4.2.1/posixos.c
make-4.2.1/read.c
make-4.2.1/remake.c
make-4.2.1/remote-cstms.c
make-4.2.1/remote-stub.c
make-4.2.1/rule.c
make-4.2.1/rule.h
make-4.2.1/signame.c
make-4.2.1/strcache.c
make-4.2.1/subproc.bat
make-4.2.1/tests/
make-4.2.1/tests/COPYING
make-4.2.1/tests/ChangeLog.1
make-4.2.1/tests/NEWS
make-4.2.1/tests/README
make-4.2.1/tests/config-flags.pm
make-4.2.1/tests/config-flags.pm.in
make-4.2.1/tests/config_flags_pm.com
make-4.2.1/tests/guile.supp
make-4.2.1/tests/mkshadow
make-4.2.1/tests/run_make_tests
make-4.2.1/tests/run_make_tests.com
make-4.2.1/tests/run_make_tests.pl
make-4.2.1/tests/scripts/
make-4.2.1/tests/scripts/features/
make-4.2.1/tests/scripts/features/archives
make-4.2.1/tests/scripts/features/comments
make-4.2.1/tests/scripts/features/conditionals
make-4.2.1/tests/scripts/features/default_names
make-4.2.1/tests/scripts/features/double_colon
make-4.2.1/tests/scripts/features/echoing
make-4.2.1/tests/scripts/features/errors
make-4.2.1/tests/scripts/features/escape
make-4.2.1/tests/scripts/features/export
make-4.2.1/tests/scripts/features/include
make-4.2.1/tests/scripts/features/jobserver
make-4.2.1/tests/scripts/features/load
make-4.2.1/tests/scripts/features/loadapi
make-4.2.1/tests/scripts/features/mult_rules
make-4.2.1/tests/scripts/features/mult_targets
make-4.2.1/tests/scripts/features/order_only
make-4.2.1/tests/scripts/features/output-sync
make-4.2.1/tests/scripts/features/override
make-4.2.1/tests/scripts/features/parallelism
make-4.2.1/tests/scripts/features/patspecific_vars
make-4.2.1/tests/scripts/features/patternrules
make-4.2.1/tests/scripts/features/quoting
make-4.2.1/tests/scripts/features/recursion
make-4.2.1/tests/scripts/features/reinvoke
make-4.2.1/tests/scripts/features/rule_glob
make-4.2.1/tests/scripts/features/se_explicit
make-4.2.1/tests/scripts/features/se_implicit
make-4.2.1/tests/scripts/features/se_statpat
make-4.2.1/tests/scripts/features/shell_assignment
make-4.2.1/tests/scripts/features/statipattrules
make-4.2.1/tests/scripts/features/targetvars
make-4.2.1/tests/scripts/features/utf8
make-4.2.1/tests/scripts/features/varnesting
make-4.2.1/tests/scripts/features/vpath
make-4.2.1/tests/scripts/features/vpath2
make-4.2.1/tests/scripts/features/vpath3
make-4.2.1/tests/scripts/features/vpathgpath
make-4.2.1/tests/scripts/features/vpathplus
make-4.2.1/tests/scripts/functions/
make-4.2.1/tests/scripts/functions/abspath
make-4.2.1/tests/scripts/functions/addprefix
make-4.2.1/tests/scripts/functions/addsuffix
make-4.2.1/tests/scripts/functions/andor
make-4.2.1/tests/scripts/functions/basename
make-4.2.1/tests/scripts/functions/call
make-4.2.1/tests/scripts/functions/dir
make-4.2.1/tests/scripts/functions/error
make-4.2.1/tests/scripts/functions/eval
make-4.2.1/tests/scripts/functions/file
make-4.2.1/tests/scripts/functions/filter-out
make-4.2.1/tests/scripts/functions/findstring
make-4.2.1/tests/scripts/functions/flavor
make-4.2.1/tests/scripts/functions/foreach
make-4.2.1/tests/scripts/functions/guile
make-4.2.1/tests/scripts/functions/if
make-4.2.1/tests/scripts/functions/join
make-4.2.1/tests/scripts/functions/notdir
make-4.2.1/tests/scripts/functions/origin
make-4.2.1/tests/scripts/functions/realpath
make-4.2.1/tests/scripts/functions/shell
make-4.2.1/tests/scripts/functions/sort
make-4.2.1/tests/scripts/functions/strip
make-4.2.1/tests/scripts/functions/substitution
make-4.2.1/tests/scripts/functions/suffix
make-4.2.1/tests/scripts/functions/value
make-4.2.1/tests/scripts/functions/warning
make-4.2.1/tests/scripts/functions/wildcard
make-4.2.1/tests/scripts/functions/word
make-4.2.1/tests/scripts/misc/
make-4.2.1/tests/scripts/misc/bs-nl
make-4.2.1/tests/scripts/misc/close_stdout
make-4.2.1/tests/scripts/misc/fopen-fail
make-4.2.1/tests/scripts/misc/general1
make-4.2.1/tests/scripts/misc/general2
make-4.2.1/tests/scripts/misc/general3
make-4.2.1/tests/scripts/misc/general4
make-4.2.1/tests/scripts/misc/utf8
make-4.2.1/tests/scripts/options/
make-4.2.1/tests/scripts/options/dash-B
make-4.2.1/tests/scripts/options/dash-C
make-4.2.1/tests/scripts/options/dash-I
make-4.2.1/tests/scripts/options/dash-W
make-4.2.1/tests/scripts/options/dash-e
make-4.2.1/tests/scripts/options/dash-f
make-4.2.1/tests/scripts/options/dash-k
make-4.2.1/tests/scripts/options/dash-l
make-4.2.1/tests/scripts/options/dash-n
make-4.2.1/tests/scripts/options/dash-q
make-4.2.1/tests/scripts/options/dash-t
make-4.2.1/tests/scripts/options/eval
make-4.2.1/tests/scripts/options/general
make-4.2.1/tests/scripts/options/print-directory
make-4.2.1/tests/scripts/options/symlinks
make-4.2.1/tests/scripts/options/warn-undefined-variables
make-4.2.1/tests/scripts/targets/
make-4.2.1/tests/scripts/targets/DEFAULT
make-4.2.1/tests/scripts/targets/DELETE_ON_ERROR
make-4.2.1/tests/scripts/targets/FORCE
make-4.2.1/tests/scripts/targets/INTERMEDIATE
make-4.2.1/tests/scripts/targets/ONESHELL
make-4.2.1/tests/scripts/targets/PHONY
make-4.2.1/tests/scripts/targets/POSIX
make-4.2.1/tests/scripts/targets/SECONDARY
make-4.2.1/tests/scripts/targets/SILENT
make-4.2.1/tests/scripts/targets/clean
make-4.2.1/tests/scripts/test_template
make-4.2.1/tests/scripts/variables/
make-4.2.1/tests/scripts/variables/CURDIR
make-4.2.1/tests/scripts/variables/DEFAULT_GOAL
make-4.2.1/tests/scripts/variables/GNUMAKEFLAGS
make-4.2.1/tests/scripts/variables/INCLUDE_DIRS
make-4.2.1/tests/scripts/variables/LIBPATTERNS
make-4.2.1/tests/scripts/variables/MAKE
make-4.2.1/tests/scripts/variables/MAKECMDGOALS
make-4.2.1/tests/scripts/variables/MAKEFILES
make-4.2.1/tests/scripts/variables/MAKEFLAGS
make-4.2.1/tests/scripts/variables/MAKELEVEL
make-4.2.1/tests/scripts/variables/MAKE_RESTARTS
make-4.2.1/tests/scripts/variables/MFILE_LIST
make-4.2.1/tests/scripts/variables/SHELL
make-4.2.1/tests/scripts/variables/automatic
make-4.2.1/tests/scripts/variables/define
make-4.2.1/tests/scripts/variables/flavors
make-4.2.1/tests/scripts/variables/negative
make-4.2.1/tests/scripts/variables/private
make-4.2.1/tests/scripts/variables/special
make-4.2.1/tests/scripts/variables/undefine
make-4.2.1/tests/scripts/vms/
make-4.2.1/tests/scripts/vms/library
make-4.2.1/tests/test_driver.pl
make-4.2.1/variable.c
make-4.2.1/variable.h
make-4.2.1/version.c
make-4.2.1/vms_exit.c
make-4.2.1/vms_export_symbol.c
make-4.2.1/vms_export_symbol_test.com
make-4.2.1/vms_progname.c
make-4.2.1/vmsdir.h
make-4.2.1/vmsfunctions.c
make-4.2.1/vmsify.c
make-4.2.1/vmsjobs.c
make-4.2.1/vpath.c
make-4.2.1/w32/
make-4.2.1/w32/Makefile.am
make-4.2.1/w32/Makefile.in
make-4.2.1/w32/compat/
make-4.2.1/w32/compat/dirent.c
make-4.2.1/w32/compat/posixfcn.c
make-4.2.1/w32/include/
make-4.2.1/w32/include/dirent.h
make-4.2.1/w32/include/dlfcn.h
make-4.2.1/w32/include/pathstuff.h
make-4.2.1/w32/include/sub_proc.h
make-4.2.1/w32/include/w32err.h
make-4.2.1/w32/pathstuff.c
make-4.2.1/w32/subproc/
make-4.2.1/w32/subproc/NMakefile
make-4.2.1/w32/subproc/misc.c
make-4.2.1/w32/subproc/proc.h
make-4.2.1/w32/subproc/sub_proc.c
make-4.2.1/w32/subproc/w32err.c
make-4.2.1/w32/w32os.c
phase `unpack' succeeded after 2.5 seconds
starting phase `bootstrap'
GNU build system bootstrapping not needed
phase `bootstrap' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
patch-/usr/bin/file: warning: no replacement 'file' command, doing nothing
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
patch-shebang: ./build.sh.in: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./config/ar-lib: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./config/compile: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./config/config.guess: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./config/config.rpath: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./config/config.sub: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./config/depcomp: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./config/install-sh: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./config/mdate-sh: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./config/missing: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./configure: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./tests/mkshadow: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./tests/run_make_tests: changing `/bin/sh' to `/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/sh'
patch-shebang: ./tests/run_make_tests.pl: warning: no binary for interpreter `perl' found in $PATH
patch-shebang: ./tests/scripts/targets/DELETE_ON_ERROR: warning: no binary for interpreter `-*-perl-*-' found in $PATH
patch-shebang: ./tests/scripts/targets/SECONDARY: warning: no binary for interpreter `-*-perl-*-' found in $PATH
patch-shebang: ./tests/test_driver.pl: warning: no binary for interpreter `perl' found in $PATH
phase `patch-source-shebangs' succeeded after 0.2 seconds
starting phase `configure'
source directory: "/tmp/guix-build-make-boot0-4.2.1.drv-0/make-4.2.1" (relative from build: ".")
build directory: "/tmp/guix-build-make-boot0-4.2.1.drv-0/make-4.2.1"
configure flags: ("CONFIG_SHELL=/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/bash" "SHELL=/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/bash" "--prefix=/gnu/store/gkd77b6j4skvjjxhspcnci50j9mi707n-make-boot0-4.2.1" "--enable-fast-install" "--build=i586-unknown-gnu" "make_cv_sys_gnu_glob=yes")
configure: WARNING: unrecognized options: --enable-fast-install
checking for a BSD-compatible install... /gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/install: cannot open 'conftest.one' for reading: Function not implemented
/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/install: cannot open 'conftest.two' for reading: Function not implemented
config/install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no
checking for style of include used by make... none
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... cp: cannot open 'config/depcomp' for reading: Function not implemented
./configure: line 3978: ./depcomp: No such file or directory
rm: cannot remove 'conftest.dir': Directory not empty
none
checking how to run the C preprocessor... /lib/cpp
configure: error: in `/tmp/guix-build-make-boot0-4.2.1.drv-0/make-4.2.1':
configure: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
rm: cannot remove 'conftest.dir': Directory not empty
Backtrace:
In ice-9/boot-9.scm:
 160: 12 [catch #t #<catch-closure 18e04e0> ...]
In unknown file:
   ?: 11 [apply-smob/1 #<catch-closure 18e04e0>]
In ice-9/boot-9.scm:
  66: 10 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 9 [eval # #]
In ice-9/boot-9.scm:
2412: 8 [save-module-excursion #<procedure 18f0c20 at ice-9/boot-9.scm:4084:3 ()>]
4089: 7 [#<procedure 18f0c20 at ice-9/boot-9.scm:4084:3 ()>]
1734: 6 [%start-stack load-stack ...]
1739: 5 [#<procedure 18faa98 ()>]
In unknown file:
   ?: 4 [primitive-load "/gnu/store/ijf84538c6ibvgmfw110jcbkb0553n9s-make-boot0-4.2.1-guile-builder"]
In ice-9/eval.scm:
 387: 3 [eval # ()]
In srfi/srfi-1.scm:
 827: 2 [every1 #<procedure 1c9d5d0 at /gnu/store/jnb2sa6ycj8xhqgxx36qzxsc70cw2n06-module-import/guix/build/gnu-build-system.scm:795:9 (expr)> ...]
In /gnu/store/jnb2sa6ycj8xhqgxx36qzxsc70cw2n06-module-import/guix/build/gnu-build-system.scm:
 799: 1 [#<procedure 1c9d5d0 at /gnu/store/jnb2sa6ycj8xhqgxx36qzxsc70cw2n06-module-import/guix/build/gnu-build-system.scm:795:9 (expr)> #]
In /gnu/store/jnb2sa6ycj8xhqgxx36qzxsc70cw2n06-module-import/guix/build/utils.scm:
 616: 0 [invoke "/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/bash" ...]

/gnu/store/jnb2sa6ycj8xhqgxx36qzxsc70cw2n06-module-import/guix/build/utils.scm:616:6: In procedure invoke:
/gnu/store/jnb2sa6ycj8xhqgxx36qzxsc70cw2n06-module-import/guix/build/utils.scm:616:6: Throw to key `srfi-34' with args `(#<condition &invoke-error [program: "/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/bash" arguments: ("./configure" "CONFIG_SHELL=/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/bash" "SHELL=/gnu/store/793ay6x56p6cq7gba4yjw2q61x9szbjx-bootstrap-binaries-0/bin/bash" "--prefix=/gnu/store/gkd77b6j4skvjjxhspcnci50j9mi707n-make-boot0-4.2.1" "--enable-fast-install" "--build=i586-unknown-gnu" "make_cv_sys_gnu_glob=yes") exit-status: 1 term-signal: #f stop-signal: #f] 1cefbc0>)'.

^ permalink raw reply	[flat|nested] 47+ messages in thread

* Summary Re: Need help: ... GNU/Hurd ...
  2019-09-22  8:45                                                                           ` Need help: Re: Status update+patches:Re: I managed to ... GNU/Hurd Svante Signell
@ 2019-09-24 13:06                                                                             ` Svante Signell
  0 siblings, 0 replies; 47+ messages in thread
From: Svante Signell @ 2019-09-24 13:06 UTC (permalink / raw)
  To: guix-devel

On Sun, 2019-09-22 at 10:45 +0200, Svante Signell wrote:
> 
> > Replacing the cross-built versions with dynamically built native versions of
> > xz
> > and guile-2.0, I did come further, but need help interpreting the log file,
> > attached: make-boot0-4.2.1.drv.gz. Where is the real error?
> 
> I shouldn't have attached the compressed version, the uncompressed version is
> small enough, attached!

I had to replace the following binaries in order to make
./pre-inst-env  guix build -K -e '(@@ (gnu packages commencement) gnu-make-
boot0))' work:
bash, cat, cp, gawk, grep, install, mv, rm, rmdir, tar, xz, cpp, guile, mkdir,

./pre-inst-env  guix build -K hello still hangs, so there are probably even more
corrupt cross-built binaries. Has this method ever worked?

For me the next logical effort would be to cross-build all the bootstrap
tarballs by traditional means, e.g. from a Debian GNU/Linux amd 64 box:
binutils-static-stripped-2.31.1-i586-pc-gnu.tar.xz
gcc-stripped-5.5.0-i586-pc-gnu.tar.xz <- preferably a recent gcc, e.g. 9.2.1.
glibc-stripped-2.28-i586-pc-gnu.tar.xz <- 2.29?
guile-static-stripped-2.0.14-i586-pc-gnu.tar.xz
static-binaries-0-i586-pc-gnu.tar.xz

Any scheme code I can look at to find in which order to make the cross-build:
binutils, gcc, glibc, (mig, hurd, gnumach), etc? Found some code in
gnu/packages/cross-base.scm. (Need to learn more about scheme code, though ...)

Thanks anyway!

^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2019-09-24 13:06 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-29 19:25 I managed to build guix natively on Debian GNU/Hurd , what's next? Svante Signell
2019-08-29 22:51 ` Svante Signell
2019-08-29 23:36   ` Ricardo Wurmus
2019-08-30 12:00     ` Svante Signell
2019-08-30 17:14       ` Julien Lepiller
2019-08-30 18:25         ` Svante Signell
2019-08-30 21:07           ` Svante Signell
2019-08-30 21:30             ` Ricardo Wurmus
2019-08-30 21:52               ` Svante Signell
2019-08-30 22:17                 ` Ricardo Wurmus
2019-08-31  8:06                   ` Svante Signell
2019-08-31  8:13                     ` Julien Lepiller
2019-08-31  9:24                       ` Svante Signell
2019-08-31  9:41                         ` Julien Lepiller
2019-08-31 12:12                     ` Ricardo Wurmus
2019-08-31 17:27                       ` Svante Signell
2019-09-01  9:11                         ` Svante Signell
2019-09-01  9:32                           ` Efraim Flashner
2019-09-01 13:28                           ` Svante Signell
2019-09-01 18:01                             ` Svante Signell
2019-09-03 12:07                               ` Status update+patches:Re: " Svante Signell
2019-09-03 12:58                                 ` Ricardo Wurmus
2019-09-03 13:56                                   ` Svante Signell
2019-09-03 14:34                                     ` Svante Signell
2019-09-03 21:13                                       ` Svante Signell
2019-09-03 21:26                                         ` Ricardo Wurmus
2019-09-03 21:46                                           ` Svante Signell
2019-09-03 22:01                                             ` Ricardo Wurmus
2019-09-04  4:31                                               ` Svante Signell
2019-09-04  6:25                                                 ` Svante Signell
2019-09-04  7:52                                                   ` Ricardo Wurmus
2019-09-04 18:24                                                     ` Svante Signell
2019-09-04 21:44                                                       ` Ricardo Wurmus
2019-09-08 20:55                                                         ` Ludovic Courtès
2019-09-10  8:10                                                           ` Svante Signell
2019-09-20 15:59                                                             ` Svante Signell
2019-09-20 17:03                                                               ` Ricardo Wurmus
2019-09-20 17:49                                                                 ` Svante Signell
2019-09-20 18:48                                                                   ` Svante Signell
2019-09-20 19:12                                                                     ` Jonathan Brielmaier
2019-09-21 11:26                                                                       ` Svante Signell
2019-09-21 16:47                                                                         ` Svante Signell
2019-09-22  8:45                                                                           ` Need help: Re: Status update+patches:Re: I managed to ... GNU/Hurd Svante Signell
2019-09-24 13:06                                                                             ` Summary Re: Need help: " Svante Signell
2019-09-20 22:18                                                               ` Status update+patches:Re: I managed to build guix natively on Debian GNU/Hurd , what's next? Ricardo Wurmus
2019-09-21  8:10                                                                 ` Svante Signell
2019-08-30 21:56           ` Julien Lepiller

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

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).