[Nix-dev] Separating free and non-free packages, again

Nicolas Pierron nicolas.b.pierron at gmail.com
Thu Nov 19 14:50:39 CET 2009


Hi,

On Thu, Nov 19, 2009 at 14:20, Eelco Dolstra <e.dolstra at tudelft.nl> wrote:
> A while back we had a discussion about separating free and non-free packages in
> Nixpkgs.  The main motivation is that it allows people to make completely free
> Nixpkgs / NixOS installations.  For instance, last week at the GNU Hackers
> Meeting we discussed doing continuous integration builds of the various GNU
> packages.  Obviously, you don't want an accidental dependency on a non-free
> package in such builds.
>
> After talking with Ludovic at the GHM, we came up with the following plan:
>
> - Create a directory pkgs/non-free.

This information seems to be redundant because the license should give
you such information.  Such separation is similar as duplicating the
license terms, first in the Nix expression, second in the directory.
I disapprove such duplication.

> - Separate all-packages.nix into free-packages.nix and non-free-packages.nix,
> with all-packages.nix defined (more or less) like this:
>
>    import ./free-packages.nix
>    //
>    (if pathExists ./non-free-packages.nix
>     then import ./non-free-packages.nix
>     else {})

In addition to the previous comment.  This cause problems with other
existing separations based on a tweaked mkDerivation.

> - Make a branch of Nixpkgs containing only free packages.  However, this would
> be a lot of work to maintain.

As previously said, this duplicate the license information.  Moreover
this avoid mixing non-free & free with only one checkout of Nixpkgs.

> - Make sure that all packages have an appropriate meta.license attribute, and
> automatically warn if the user tries to build an non-free package.  This is
> still a good idea, but it takes much more work, and it doesn't actually allow
> you to easily *remove* the non-free packages from Nixpkgs.

I don't understand why you want to remove them?  You just don't want
to make them appearing in the result and as possible arguments.  With
__packageOverride, we can use mapAttrs to replace derivations with bad
licenses by a failing derivation.  Filtering licenses is the best
solution I see, because this does not duplicate licenses terms.

> - Ludovic originally proposed a gnu-packages.nix, but that's "vendor-specific"
> so it doesn't seem a good idea.  A free/non-free separation like in Debian
> should be sufficient.

As argue before, this cause duplication of the license terms.



So I disapprove your current plans and I will only approve a plan
which does not implies duplication of the license terms.

-- 
Nicolas Pierron
http://www.linkedin.com/in/nicolasbpierron - http://nbp.name/
Albert Einstein - Never memorize what you can look up on books.



More information about the nix-dev mailing list