Nikita Karetnikov <nik...@karetnikov.org> skribis: >> With --localstatedir=/nix/var/nix (see store.scm and config.scm). > > Actually, it's '--localstatedir=/nix/var', but thanks anyway.
Oops, sorry. >> Remember: to bootstrap things here, you’re using Nixpkgs. Here it’s >> Nixpkgs’s glibc that uses kernel.org Linux headers. > > Yes, I understand that I'm using Nixpkgs. But is it possible to use > Linux-libre? Well, you could modify Nixpkgs for that. But note that only the headers are used, and they are bit-for-bit the same as those of the corresponding Linux-Libre. Furthermore, you will no longer need Nixpkgs once you’ve built the bootstrap binaries for Guix, so I would not bother. An unrelated issue that just came to mind: MIPS code for libc is in glibc-ports, right? That means you’ll have to conditionally add that to the inputs of glibc, in base.scm. >> At this point, you don’t want to build Hello. ;-) Instead, you should >> build the bootstrap binaries, as described in HACKING, that will allow >> our distro to be self-contained. Make sure to use ‘core-updates’ as a >> starting point. > > Ah, I thought that Guix will bootstrap on the fly if there are no > bootstrap binaries. Well, in a way, yes. That is, instead of using the statically-linked binaries made via make-bootstrap.scm, it will use the dynamically-linked tools provided by Nixpkgs, and then the rest of the procedure is the same–i.e., you end up with binaries that don’t depend on those produced using Nixpkgs. > As far as I can tell, there are errors in 'HACKING'. Here is a snippet: > > ./pre-inst-env guix-build \ > -e '(@@ (distro packages base) %guile-bootstrap-tarball)' \ > --system=i686-linux > > There is no '%guile-bootstrap-tarball' in (distro packages base). I > think it should be changed to (distro packages make-bootstrap). Right, will fix. Thanks, Ludo’.