Hello everyone,
As the hard pencil down date approaches, I believe it's time for a
detailed
report on my progress till now. I will start with what we have right
now and
then continue with what problems I had and what I did.
First let's see what we have now, working.
1) Guix can successfully cross-build any package for the Hurd and
produce
the bootstrap-tarballs to build packages with Guix natively on such a
system.
2) Guix can build the native final toolchain.
3) Guix can build packages natively using the final toolchain.
Even though most of the work is already present in the wip-hurd branch,
there
are still some patches to be reviewed/merged. This will happen asap.
But nevertheless we can safely say we have ported Guix to Hurd. :-)
Now problems I have faced during my work.
1) CHROOT_ENABLED was evaluated to false in the daemon
nix/libstore/build.cc.
Mark pointed out the correct solution and I will send the patch
shortly.
2) guix/build/syscalls (mount, umount, setns ) Those aren't available
on Hurd, so
building Guix would fail. It seems turning them into procedures is
enough to work
around this.
3) We had a problem with binaries not being able to find and link
against libmachuser &
libhurduser It seems adding the two to libc.so's search path was
enough.
4) Perl could not be build because of a problem with memmove in hurd's
glibc. Together
with Samuel and Justus we traced the problem to a not properly tested
part of glibc.
Fixed.
5) glibc-intermediate could not find the gnumach/hurd headers because
of unsetting the
path during the build process. It seems that glibc's sysdeps/mach and
sysdeps/mach/hurd
configure weren't using the --with-headers variable to get the
headers. Fixed that and sent
the patch to bug-hurd :-).
6) Binaries produced from gcc-boot0 had problems with their runpath
and validate-runpath?
was failing. It seems ld wasn't passing -rpath to them. Added an
ld-wrapper, solved.
7) glibc-final's debug output refers to %glibc-bootstrap. I think this
happens indirectly through
the headers, currently solving that.
I think those are most of the problems I faced. Well those are the
ones that were worked on and
solved after Ludo left for vacations. I avoid referring to problems
discussed and solved in mails earlier
than that.
Also, I am near finishing sys/mount.h for Hurd. Will finish it as soon
as possible.
I get the feeling I forgot some things so please remind/ask me
anything. For the next two
days I will wrap up patches and push them to wip-hurd. After that I
will continue working on
getting the full GuixSD experience on Hurd. And one of these days we
will deploy guix on
darnassus together with rbraunr. I will inform you when that happens.
Please feel free to ask me anything.
Thank you,
Manolis