[Nix-dev] Re: Nix 0.13pre17232 doesn't work on i386-apple-darwin9.7.0
Lluís Batlle
viriketo at gmail.com
Wed Sep 30 10:30:55 CEST 2009
On colliding store paths, I first thought that two different
architectures using stdenvNative may have the same store path hashes,
because the stdenv may have the same hash (sh = "/bin/sh", gcc =
"/usr/bin/gcc", ...).
So, first I thought that builtins.system (stdenv.system, also) would
not take part in the hashes, unless with special nix support. As the
nixpkgs system may be overwritten, I guess that builtins.system
doesn't take part into the hashes, and I can't imagine how nixpkgs
system string will take part into the hashes in a stdenvNative.
Does that really end in colliding store paths for two different
'system' strings if they use stdenvNative?
2009/9/30, Lluís Batlle <viriketo at gmail.com>:
> 2009/9/30, Peter Simons <simons at cryp.to>:
>
> > Hi Lluís,
> >
> >
> > >> While bootstrapping the store on MacOS X, however, I had the
> > >> impression that the MacOS store collides with store paths from Linux
> > >> (and thus cannot be shared). Is that possible?
> > >
> > > I think it could happen, if using a not pure nixpkgs in both systems.
>
> I consider nixpkgs 'unpure' if you use a stdenv that uses
> out-of-the-store commands. That is, 'stdenvNative' or 'stdenvNix'. On
> the other hand, for example, stdenvLinux depends only on store paths,
> and any store path is built without anything outside of store paths.
> That means having a special 'bootstrap' process, which starts with the
> first precompiled files (curl, bzip2, tar, ..) coming from the nixpkgs
> tree (pkgs/stdenv/linux/bootstrap/*), and some precompiled build
> programs out of the tree (gcc, glibc, ...).
>
> Look at pkgs/stdenv/default.nix to see the table between 'systems' and
> 'stdenvs'. Darwin uses stdenvNative, so, what I name "an unpure
> nixpkgs", where store paths are built using non-store-path build
> tools.
>
More information about the nix-dev
mailing list