[Nix-dev] multiple-ouputs branch

Mateusz Kowalczyk fuuzetsu at fuuzetsu.co.uk
Mon Jun 9 18:18:26 CEST 2014


On 06/09/2014 05:35 PM, Pieter Noordhuis wrote:
> Hi all,
> 
> The nixpkgs repository has a branch called "multiple-outputs", with
> the objective to split packages up into multiple ones. For example:
> instead of having a single glib package, you would have one containing
> run-time dependencies (shared libraries), and one you need to build
> code that depends on it (header files, code generation, propagated
> build inputs). This can be further extended into splitting out
> documentation, or man pages specifically, and so forth.
> 
> The reason for doing this is quite clear: cut down on the byte size of
> a package's closure. Right now, a package that uses glib pulls in a
> dependency on Python, because that happens to be used by a dbus code
> generation utility that sits in the glib tree. Or, by compiling C++
> code and linking to libstdc++, you pull in a dependency on GCC as a
> whole, instead of just GCC's shared libraries.
> 
> My question: is the work in the multiple-outputs branch ongoing and
> will it be merged to master one day? If not, what would be needed to
> reboot an effort to split up packages?
> 
> Cheers,
> Pieter
> _______________________________________________
> nix-dev mailing list
> nix-dev at lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev
> 

I think [1] is relevant. My personal take on this is that if we don't
want to pull in Python with glib then the maintainer should offer a
configurable flag in the glib package which when set, passes the
appropriate flags to the build process. Think Gentoo USE flags.

The downside of this is that Hydra only ever builds with default flags.
I admit that in the past I nearly made packages foo-Qt4, foo-Qt5 and
foo-SDL just because of this.

It'd be great if we could specify that Hydra should build the package in
multiple configurations: if the user picks non-default flag then they
have to build it themselves.

I am not very well informed in the multiple outputs process being
proposed however so don't pay me too much mind.

[1]: https://github.com/NixOS/nixpkgs/pull/2063

-- 
Mateusz K.


More information about the nix-dev mailing list