Manolis Ragkousis <manolis...@gmail.com> skribis: > From 3a2f644bfdb39349c585233ef6670081adf57eca Mon Sep 17 00:00:00 2001 > From: Manolis Ragkousis <manolis...@gmail.com> > Date: Fri, 21 Aug 2015 15:01:05 +0300 > Subject: [PATCH] gnu: commencement: Add support for a native GNU/Hurd system. > > * gnu/packages/commencement.scm (kernel-headers-boot0): New procedure. > (flex-boot0, bison-boot0, gnumach-headers-boot0, mig-boot0, > hurd-headers-boot0, hurd-minimal-boot0, hurd-kernel-headers-boot0, > ld-wrapper-boot0): New variables. > (%boot1-inputs): Add ld-wrapper-boot0. > (glibc-final-with-bootstrap-bash)[propagated-inputs]: Replace with > kernel-headers-boot0. > [inputs]: Add "mig".
Please align this last line to the left. > (glibc-final)[arguments]: Replace with kernel-headers-boot0. [...] > +(define flex-boot0 > + ;; This Flex is needed to build Mig. s/Mig/MiG/ in the whole file. In the future, we should patch MiG upstream so that the Flex and Bison byproducts are included in the tarball. That would simplify our life. > + (let* ((m4 (package-with-bootstrap-guile > + (package-with-explicit-inputs m4 %boot0-inputs > + (current-source-location) > + #:guile %bootstrap-guile))) > + (indent (package-with-bootstrap-guile > + (package-with-explicit-inputs indent %boot0-inputs > + (current-source-location) > + #:guile > %bootstrap-guile))) > + (flex (package (inherit flex) > + (native-inputs '()) > + (propagated-inputs `(("m4" ,m4))) > + (inputs `(("indent" ,indent))) > + (arguments '(#:tests? #f))))) I think the redefinitions of m4 and indent can be omitted since ‘package-with-explicit-inputs’ works recursively. > +(define bison-boot0 > + ;; This Bison is needed to build Mig so we need it early in the process. > + (let* ((m4 (package-with-bootstrap-guile > + (package-with-explicit-inputs m4 %boot0-inputs > + (current-source-location) > + #:guile %bootstrap-guile))) > + (bison (package (inherit bison) > + (native-inputs `(("perl" ,perl-boot0))) > + (propagated-inputs `(("m4" ,m4))) > + (inputs '()) ;remove Flex... > + (arguments '(#:tests? #f))))) ;... and thus disable tests Same here for m4. > +(define (hurd-kernel-headers-boot0) > + "Return Hurd header and minimal-lib files for the bootstrap environment.". ^^ ^^ ^^^^^^^^^^ “Return the Hurd and Mach headers as well as initial Hurd libraries for the bootstrap environment.” It’s slightly confusing that a “kernel-headers” package provides .a files, but OK. > + (define* (kernel-headers-boot0 #:optional (system (%current-system))) ^ Extra space. > +(define ld-wrapper-boot0 > + ;; We need this so binaries on Hurd will have libmachuser and libhurduser > + ;; in their RUNPATH, otherwise validate-runpath? will fail. ‘validate-runpath’ (no question mark.) > (define bison-boot1 > ;; XXX: This Bison is needed to rebuild Bash's parser, which is modified by > ;; its CVE patches. Remove it when it's no longer needed. What about s/bison-boot1/bison-boot0/ in the whole file? These are essentially the same package. > @@ -443,6 +551,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a > \"$@\"~%" > (package (inherit gnu-gettext) > (name "gettext-boot0") > (inputs '()) ;zero dependencies > + ;; Hmm, yes? :-) Could you send an updated patch? Thanks for all the work! Ludo’.