From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manolis Ragkousis Subject: [GSoC update] Porting Guix to GNU/Hurd Date: Wed, 19 Aug 2015 22:23:34 +0300 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:44481) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZS8xV-0001UR-3D for Guix-devel@gnu.org; Wed, 19 Aug 2015 15:23:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZS8xT-0005Bu-Qc for Guix-devel@gnu.org; Wed, 19 Aug 2015 15:23:37 -0400 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Guix-devel , GNU Hurd Cc: Samuel Thibault 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