Re: Update on distro bootstrapping with Guix

2012-10-12 Thread Simon Josefsson
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

2012-10-12 Thread Ludovic Courtès
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

2012-10-12 Thread Ludovic Courtès
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

2012-10-12 Thread Ludovic Courtès
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

2012-10-12 Thread Richard Stallman
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

2012-10-12 Thread Richard Stallman
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