Re: [GSoC update] Porting Guix to GNU/Hurd
Hi! Manolis Ragkousis manolis...@gmail.com skribis: 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. :-) Congratulations on that! That’s a great achievement, and I know there were some bumps on the road, and the project covers several very different pieces of software, so thumbs up! 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. This module is only used by GuixSD anyway (not Guix itself), so no problem. In the interim, we should perhaps arrange to not build that module when, say, ‘mount’ is missing (using an ‘AM_CONDITIONAL’.) 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. Pheew. :-) 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 :-). OK. 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. Interesting, will look at the patch hopefully soon. 7) glibc-final's debug output refers to %glibc-bootstrap. I think this happens indirectly through the headers, currently solving that. Would be nice to understand why that happens. In the meantime you could disable #:allowed-references altogether for that package when on GNU/Hurd, if you want. Also, I am near finishing sys/mount.h for Hurd. Will finish it as soon as possible. Great! 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. Excellent. Thanks to the Hurd and Guix people for giving you a hand! Cheers, Ludo’.
Re: [GSoC update] Porting Guix to GNU/Hurd
Amirouche Boubekki writes: Le 2015-08-19 22:27, taylanbayi...@gmail.com a écrit: Manolis Ragkousis manolis...@gmail.com writes: [...] But nevertheless we can safely say we have ported Guix to Hurd. :-) [...] Amazing news! :-) Thanks so much for working on this. I haven't tried out Hurd so far but am meaning to do so eventually; sounds like my first Hurd system will be GuixSD at the same time. So much awesome in one system. I second that. Thanks :) +1 Congratulations on your good progress, Manolis! Alex
Re: [GSoC update] Porting Guix to GNU/Hurd
On 2015-08-19 17:27, taylanbayi...@gmail.com wrote: Manolis Ragkousis manolis...@gmail.com writes: [...] But nevertheless we can safely say we have ported Guix to Hurd. :-) [...] Amazing news! :-) Thanks so much for working on this. I haven't tried out Hurd so far but am meaning to do so eventually; sounds like my first Hurd system will be GuixSD at the same time. So much awesome in one system. Taylan Amazing! GuixSD + Hurd = 3:D Thanks Guixs 3:) 3:) = GNU Head kkk -- Daniel Pimentel (d4n1 3:)
Re: [GSoC update] Porting Guix to GNU/Hurd
On 2015-08-19 16:23, Manolis Ragkousis wrote: 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 Congratulation Manolis, Ludo and Guixs 3:) Thanks, -- Daniel Pimentel (d4n1 3:)
Re: [GSoC update] Porting Guix to GNU/Hurd
Hello, Congrats!! Samuel
Re: [GSoC update] Porting Guix to GNU/Hurd
Le 2015-08-19 22:27, taylanbayi...@gmail.com a écrit : Manolis Ragkousis manolis...@gmail.com writes: [...] But nevertheless we can safely say we have ported Guix to Hurd. :-) [...] Amazing news! :-) Thanks so much for working on this. I haven't tried out Hurd so far but am meaning to do so eventually; sounds like my first Hurd system will be GuixSD at the same time. So much awesome in one system. I second that. Thanks :) -- Amirouche ~ amz3 ~ http://www.hyperdev.fr
[GSoC update] Porting Guix to GNU/Hurd
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