Re: Update on distro bootstrapping with Guix
l...@gnu.org (Ludovic Courtès) writes: Actually, each user as a forest of symlinks under ~/.nix-profile pointing to packages installed by the user. So in the above example, you would typically have $HOME/.nix-profile/lib in $LIBRARY_PATH, and you would link against libfoo from there, and the resulting binary would have a RUNPATH pointing to $HOME/.nix-profile/lib/libfoo.so. Ah. And the forrest of symlinks can be automatically upgraded following some stable branch or similar? Yeah. I find support for parallel installations, complete dependency descriptions, per-user installations, atomic upgrades and rollback, and so on pretty compelling [0]. It’s a huge technical gap IMO. Right, it is revolutionary, and there is some disadvantages with that since it requires that everything adapt to the new model. Minimizing those costs will make it appear evolutionary and more people might switch... Yes, but there’s no free lunch, if I may. ;-) The Mancoosi EU FP research project has tried to work toward providing some of these features on top of “regular” distros in its WP3 [0]. A deliverable from May 2011 [1] mentions modified APT and RPM versions supporting transactional upgrades and rollback, but I haven’t found traces of production code or such. Agreed. I suspect the apetite for these features is low in the Debian/Ubuntu world. Something need to trigger interest, and Guix might be it. /Simon
Re: Update on distro bootstrapping with Guix
Hi, Richard Stallman r...@gnu.org skribis: [2] https://gitorious.org/guix/guix/blobs/master/distro/packages/base.scm Any particular reason it uses kernel.org Linux instead of Linux libre? No. Currently it s just a user-land software distro, like GSRC, so only the headers are used, to build glibc. I guess the Linux-Libre deblob scripts don t change them. Of course, the goal is to use Linux-Libre as the kernel, when it s a bootable system. Even if only the headers are currently being used, please point at Linux-Libre to get them. Yes, I’ll do that. Technically though, Linux-Libre is a set of scripts that touch .c files. Ludo’.
Re: Update on distro bootstrapping with Guix
Hi Simon, Simon Josefsson si...@josefsson.org skribis: l...@gnu.org (Ludovic Courtès) writes: Actually, each user as a forest of symlinks under ~/.nix-profile pointing to packages installed by the user. So in the above example, you would typically have $HOME/.nix-profile/lib in $LIBRARY_PATH, and you would link against libfoo from there, and the resulting binary would have a RUNPATH pointing to $HOME/.nix-profile/lib/libfoo.so. Ah. And the forrest of symlinks can be automatically upgraded following some stable branch or similar? Exactly. You basically install packages as a normal user with “nix-env --install PACKAGE”. That command populates the forest under ~/.nix-profile. Then, “nix-env --upgrade '*'” triggers the atomic upgrade of all the packages you’ve installed, using new versions from a stable branch for which a binary is available on the Hydra build farm. Guix currently lacks an equivalent to the ‘nix-env’ command, but that’s something that will be easily fixed. Thanks, Ludo’.
Re: Update on distro bootstrapping with Guix
Hi, Richard Stallman r...@gnu.org skribis: Perhaps you were asking about previously installed packages linked against a vulnerable libc, for example? Again, those packages remain vulnerable, until you upgrade to the new version, that links against the fixed libc. Why can't the already-installed binaries run a new shared libc version? Are you using static linking? No. Basically, each package is installed in its own directory, pretty much à la GNU Stow. However, the directory name contains the hash of all the inputs used to build that package (source code, compiler, libraries, build scripts, etc.) Thus, when an input changes, the new package ends up being installed in a different directory. Thanks, Ludo’.
Re: Update on distro bootstrapping with Guix
Yes, I ll do that. Technically though, Linux-Libre is a set of scripts that touch .c files. The maintenance of Linux-Libre is done using these scripts, but that's not what it _is_. It is a modified version of Linux. We release it as Linux sources, and binaries too. Please point at those sources to get the .h files. Referring to Torvalds' nonfree code is sending the wrong message. Please ack when this is fixed. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! That's nonfree (freedom-denying) software. Use Ekiga or an ordinary phone call
Re: Update on distro bootstrapping with Guix
No. Basically, each package is installed in its own directory, pretty much à la GNU Stow. However, the directory name contains the hash of all the inputs used to build that package (source code, compiler, libraries, build scripts, etc.) Thus, when an input changes, the new package ends up being installed in a different directory. I suggest that, for shared libraries, the hash should disregard the library's current version, and consider only the interface version. That way, replacement of the shared library won't require any change in the installed executable. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! That's nonfree (freedom-denying) software. Use Ekiga or an ordinary phone call