[Nix-dev] Re: Separating Free/non-free package
Ludovic Courtès
ludo at gnu.org
Mon Sep 21 12:42:29 CEST 2009
Hello,
Michael Raskin <7c6f434c at mail.ru> writes:
> Ludovic Courtès wrote:
[...]
>> I want to be able to automatically distinguish between free [0] and
>> non-free software,
>
> Here we have the first difference. I find your opinion too
> black-and-white. I mostly consider world grey-and-gray.
Let’s separate mechanism from policy. I want to choose a policy of
installing only free software. A mechanism is needed to allow it, which
is the only focus of the message that started this thread.
>>> 1) not breaking existing workflows
>> 1. Is the least intrusive for other contributors (e.g., does not
>> change the way they work.)
>
> I think that splitting a file into small pieces is intrusive, you
> don't.
I didn’t say that. The ‘free-packages.nix’ approach was the least
intrusive solution I could think of back then, but I’m happy if a less
intrusive solution can be found.
>> 2. Does not rely on non-trivial cooperation from other Nixpkgs
>> contributors, such as defining accurate ‘meta.license’ or
>> ‘meta.license.reviewed’ attributes, etc.
> If you think that even that is too much to ask,
I think so. Otherwise Nixpkgs wouldn’t have non-existent or inaccurate
‘meta.license’ tags in the first place.
> you need all information stored so that a developer is not interacting
> with it at all unless meaning to update or query license data. That
> means separate file(s). top-level/licenses.nix could be the solution.
I think it’s reasonable to expect ‘meta.license’ to be left unchanged
once it’s been corrected/reviewed. But the information that it’s been
reviewed must be stored reliably somewhere.
> Let me explain in more details why with free-packages/all-packages there
> is the same risk of negligence as with meta.license.reviewed clause.
IMO it’s easier to audit a single file (e.g., run “svn annotate” on
‘free-packages.nix’, pay attention to commit logs when that file is
touched, etc.) than to a whole set of files.
>> 3. Makes it as easy as possible to share work between the free and
>> non-free variants of Nixpkgs.
>
> You may want to link a free tool with a half-free auxillary library
There’s no such thing as “half-free software”, to me.
> Seems to go better together.. What you propose doesn't include mandatory
> developing such guidelines.
As I said, the guideline is that “free” is defined as in
http://www.gnu.org/philosophy/free-sw.html. Corner cases can be handled
by looking at http://www.gnu.org/licenses/license-list.html,
http://groups.fsf.org/wiki/Software_blacklist, the debian-legal archive
and similar sources, and by discussing among us.
> So, what solutions do we see?
>
> 1. Splitting files
> 2. Branch
> 3. top-level/licenses.nix
> 4. meta.license overhaul
>
> Now let us kill dominated strategies. (2) has unique advantages (no
> silent package mutation) but it is too heavy to be strictly better than
> something else.
Agreed.
> Of 1,3,4 (4) seems to be the most fragile, but it follows the "package
> information resides in the package" maxima. It also avoids creating new
> global entities. So the comparison of (4) with everything else depends
> on priorities (and our opinions differ here).
Agreed.
> On the other hand, I fail to find any significant reason why (1) may be
> better than (3).
I don’t think whether a package is free can be determined automatically
by looking at its license. We could devise a “license calculus” for
common licenses, but it wouldn’t work with custom licenses.
For this reason, I think the main focus should be on “free
vs. non-free”, not on accurate license tags. That doesn’t mean I don’t
value accurate license tags: I think they are important, but they’re not
enough to achieve the goal of distinguishing free and non-free software.
Thus I think (1) brings us closer to that goal than (3).
What do you think?
Thanks,
Ludo’.
More information about the nix-dev
mailing list