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