Ludovic Courtès writes: Hi!
>> I finally realised what it really means that the GuixSD bootstrap has >> `binutils-cross-boot0' (I really think that should be reflected in the >> SCM name too?) and `gcc-cross-boot0': bolting the x86_64-linux bootstrap >> onto the i686-linux Mes bootstrap proved to be "almost" trivial (very >> low hanging fruit I think whas wat Ludovic said). > > Awesome, really great. > > Hopefully ARMv7 and AArch64 can be addressed similarly in one go when we > get there. Hmm, wondering how you see that...running the initial the Arm* bootstrap on i686-linux and making the jump in *-cross-boot0? I /am/ working on a native x86_64-linux Mes and one of the Arms could be next...but you see a shortcut (at least temporary)? >> So, I took the freedom to add another commit onto wip-bootstrap that >> also replaces the x86_64-linux bootstrap. I realise that this commit >> may have its own problems; so when moving to core-updates-next we may >> want to be a bit careful before taking it in. > > I think as long as we can build Hello or similar things and “make check” > doesn’t show new regressions, we should be fine. Hmm, make check showed some silly errors, I needed this patch --8<---------------cut here---------------start------------->8--- test: Oops, syntax error and filter %bootstrap-inputs. This is a fixup of 86811e6faf bootstrap: %bootstrap-inputs: Wrap input lists into thunks. * tests/builders.scm (%bootstrap-inputs): Oops, put parentheses in correct place. (%bootstrap-search-paths): Likewise. Also, filter on package?. 1 file changed, 7 insertions(+), 5 deletions(-) tests/builders.scm | 12 +++++++----- modified tests/builders.scm @@ -28,7 +28,8 @@ #:use-module (gcrypt hash) #:use-module (guix tests) #:use-module ((guix packages) - #:select (package-derivation package-native-search-paths)) + #:select (package? + package-derivation package-native-search-paths)) #:use-module (gnu packages bootstrap) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -47,14 +48,15 @@ (map (match-lambda ((name package) (list name (package-derivation %store package)))) - (@@ (gnu packages commencement) (%boot0-inputs))))) + ((@@ (gnu packages commencement) %boot0-inputs))))) (define %bootstrap-search-paths ;; Search path specifications that go with %BOOTSTRAP-INPUTS. (append-map (match-lambda - ((name package _ ...) - (package-native-search-paths package))) - (@@ (gnu packages commencement) (%boot0-inputs)))) + ((name package _ ...) + (package-native-search-paths package))) + (filter package? + ((@@ (gnu packages commencement) %boot0-inputs))))) (define url-fetch* (store-lower url-fetch)) --8<---------------cut here---------------end--------------->8--- > I’ve looked at the latest set of commits that ends with > 78b8c9af45e7e261b22b198886daffcf12f22a56 and it LGTM! So I think you > can go ahead and push as ‘core-updates-next’. I folded the above patch into 86811e6faf for core-updates-next. So, wip-bootstrap and my local core-updates-next now differ in hash, but are identical in git diff... Hmm, I thought make check was OK now and almost pushed, but there are still problems with make check on wip-bootstrap. So I didn't dare to go core-updates-next yet, if there's a good reason to do that anyway, please do so or let me know. I'll be looking into this later tonight, I could do with some help, just in case someone is feeling bored ;) > Something to keep in mind regarding “bootstrap: Add Mes bootstrap > seeds.”: once the branch is in place, we should regenerate the seeds > from the branch, upload them to ftp.gnu.org, adjust bootstrap.scm and > record in the commit log which commit we used to generated those seeds > (hoping they are bit-reproducible.) Of course I agree, added to TODO. I fear we need something more than hope to have them bit-reproducible. I haven't really looked into this so we may get lucky but I also haven't patched binutils-2.20 or gcc-2.95.3, gcc-4.7.4 wrt reproducibility. > Anyway, thumbs up for making what’s to my knowledge the distro with the > smallest set of binary seeds! Yay! I think the way forward to reduce them further that I like best is to assume Guile and start building a Gash/Geesh and the other utilities from there. It would be nice to one day replace bootstrap-guile with bootstrap-mes (or bootstrap Guile directly...) just dreaming here. Thanks for the support! janneke