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

Tony White tonywhite100 at googlemail.com
Sat Nov 21 00:23:43 CET 2009


2009/11/20 Nicolas Pierron <nicolas.b.pierron at gmail.com>:
> Hi,
>
> On Fri, Nov 20, 2009 at 18:53, Eelco Dolstra <e.dolstra at tudelft.nl> wrote:
>> Nicolas Pierron wrote:
>>
>>> 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.
>>
>> Yes.  However:
>>
>> - Currently most (free) packages lack a meta.license attribute.
>>
>> - We don't actually have a tool to check a dependency graph's meta.license
>> attributes yet.
>>
>> So it seems a lot simpler, especially in the short term, to move the few
>> non-free packages to a separate directory.
>
> So you just want a tool to retrieve meta.licence attributes for a
> specified derivation. Don't mind If I give it a try?
>
> --
> Nicolas Pierron
> http://www.linkedin.com/in/nicolasbpierron - http://nbp.name/
> Andrew S. Tanenbaum - Never underestimate the bandwith of a wagon full of tapes.
> _______________________________________________
> nix-dev mailing list
> nix-dev at cs.uu.nl
> https://mail.cs.uu.nl/mailman/listinfo/nix-dev
>

Hi all,
Marc, I think some of the main goals are to ensure that the nix build
farm never builds anything non-free and make that available in binary
form (If it does it at all it's either by accident or there is limited
liability,) To also maybe provide an easy way that nix can be used to
check if a program is non-free, so that you don't have to open the
expression and search for the license attrib or hunt for the license
online (Although if there was a big effort to update all expression's
licence attrib meta correctly, maybe things would be more cut and
dry.)
It's also important that regular nixos distribution media carries
absolutely no non-free software binaries because I think that there
are those that want nixos recognised and approved as a gnu
distribution and distribution of some software as part of any free or
non-free operating system is impossible legally. Means that the
software is being used to create a hardware device that is categorised
as other than a personal computer. Stupid laws. But we have to follow
them.

I think as far as the categorising of the free/non-free software goes;
something like this :

  buildInputs =
                     if stdenv.system == "i686-linux-non-free" then
                        [ this is all free software and now here is
the non free dependencies ];
                          else if stdenv.system == "i686-linux-free" then
                           [ this is all free software ];

(Else print message to say that the package is not supported on your system.)

Also use the same method for other attributes like configure flags,
propogate build inputs, etc but all in one go.
I'd like to think that there is an even better way than using
stdenv.system. Maybe?
i686-linux = i686-linux-free and x86_64-linux = x86_64-linux-free?
During transition?

I'm still really interested to see how you guys go with this whole
free/non-free thing because a great deal of software available can be
called non-free.

My problem is that I am interested in quite a lot of software that has
non-free deps (Which I would like to add to nixpkgs) But the same
software sources will also build without the non-free deps. Audacity
for example. So I like to make it work (Free.) Then I make everything
work (Non-free) But then I want to just add a single switch to
differentiate between the versions of the same expression in one main
expression. Instead of creating two separate expression files for the
same package. Doing so allows a libre default but the non-free could
be selected also instead.
It creates a pain to maintain two separate expressions for the same
software sources and it becomes easy to ignore the free expression if
I constantly go for non-free instead.
So I won't do it that way and I've got the stupid; all ways make
everything work after, if I can just make it work first, stubbornness
thing going on.

You've done a huge amount of the free software; guys, which is a
tribute to the amount of work you guys have put in. :)
However, I'd like to contribute but I want to use a lot of "Non-free"
And make available the option of free as a default.

Thanks,
Tony



More information about the nix-dev mailing list