3 ms·
There are some binary blobs, yes. Some stem from the early days. Before Mes and the reduced binary seed (see the Guix manual for details) we used to have a se
by rekado 4y ago
There are some binary blobs, yes. Some stem from the early days.
Before Mes and the reduced binary seed (see the Guix manual for details) we used to have a selected set of bootstrap binaries (e.g. statically linked bash, tar, gzip, a big fat gcc, etc). With Mes the bootstrap seed is merely a couple of bytes that can feasibly be audited. Reproducible builds make it possible to audit the results of this early bootstrap.
Some binary blobs remain: for example, there's a blob for an arbitrary version of the Glasgow Haskell Compiler, because our collective attempts to bootstrap it from source have failed. (I have previously published some of my experiences in attempting to find a bootstrap path.)
Another blob is a bootstrap binary for the Pascal compiler; there's another one for one of the Scheme implementations, I think.
But for new packages we generally won't accept pre-built binaries. Our Java packages, for example, are completely built from source. Back then I worked on the Java bootstrap from source; we're building the first Java compiler and the first Java libraries from C (jikes + GNU classpath) and work our way up to the latest OpenJDK. Java libraries are also built completely from source --- we won't accept pre-built Jars (unlike Nix). This is probably the primary reason why Guix has fewer Java packages than Nix.
The Rust bootstrap (on x86_64) is also done from C.