(no title)
bsdubernerd | 4 years ago
If you really want to have everything rebuilding from source at your fingertips, you could already do that with gentoo and similar. Patching upstream sources and rebuilding is pretty trivial there if that's your thing. There are more to choose from.
You probably won't be having the build infrastructure of all your packages "ready" all the time though, and things are taking a turn to the worse due to dependency bundling where each package has it's own independent copy.
jancsika|4 years ago
I don't want Gentoo.
I want Gentoo that has been prepared as if the user just recompiled every goddamned program that makes up the core os, build desiderata and all waiting for me to make another change.
So if I decide I want to recompile coreutils after messing with a single implementation file, `make` or whatever will just incrementally recompile what is needed.
Another way to think of it: (I hope) all coreutils devs have a dev environment they use where they can make such a change and have very little latency from the moment of a code change to the moment they see results from running/testing the command in question. I want a distro that delivers code and source in such a way that the code of all core programs is just waiting for me to incrementally rebuild any of those programs.
And that wouldn't even really suffice-- there are probably some core programs which still have long incremental recompiling times. Digression-- I'd bet all the browsers are such examples-- in fact I'll just claim it here in the hopes that the internet gods strike me down. :)
Edit: clarification
bsdubernerd|4 years ago
You likely don't want that. You can expect compiled objects to be in a 10:1 ratio compared to the final build size. Rust is closer to 30:1 in my experience so far. Then you have projects that vastly exceed that.
As a dev, I'm constantly struggling with disk space with just the projects I'm working on.
This doesn't even begin to handle the issue of contained/reproducible builds.
And with things such as LTO, you might be waiting at the "linking" step way longer than what you might think.
I don't think you realize how GOOD gentoo makes it already, considering all the variables in question. You can rebuild and patch the entire system, from start to finish, with a single command. Take a moment to appreciate this fact alone.
VTimofeenko|4 years ago
To be fair, there's Linux From Scratch, but I found it to be a bit tedious to build out everything and manage the dependencies by hand. Walking through a big dependency DAG manually is not very practical IMO.
There's also Nix, but I am yet to learn how to work with custom patches there. I believe that it's possible, and Nix has a lot of other great features but hasn't been exactly Gentoo-like in my experience.
johnisgood|4 years ago