From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: List of abbreviations for licenses Date: Thu, 29 Nov 2012 23:05:08 +0100 Message-ID: <87vcco2hgr.fsf@gnu.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([208.118.235.92]:51089) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TeCEV-0008FO-1W for bug-guix@gnu.org; Thu, 29 Nov 2012 17:05:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TeCET-0004c5-O6 for bug-guix@gnu.org; Thu, 29 Nov 2012 17:05:22 -0500 Received: from [2a01:e0b:1:123:ca0a:a9ff:fe03:271e] (port=52052 helo=xanadu.aquilenet.fr) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TeCET-0004WW-IJ for bug-guix@gnu.org; Thu, 29 Nov 2012 17:05:21 -0500 In-Reply-To: (Nikita Karetnikov's message of "Thu, 29 Nov 2012 07:54:02 +0300") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: Nikita Karetnikov Cc: bug-guix@gnu.org Hello! Nikita Karetnikov skribis: > I'm trying to package 'util-linux'. It uses several licenses: > > - GPLv3+ > - GPLv2+ > - GPLv2 > - LGPLv2+ > - BSD with advertising > - Public Domain > > What are the common abbreviations for Public Domain and BSD with > advertising? Is there a list of abbreviations for licenses? Nixpkgs uses this: https://github.com/NixOS/nixpkgs/blob/master/pkgs/lib/licenses.nix which is a subset of this: http://fedoraproject.org/wiki/Licensing > As far as I can tell, 'license' doesn't check the used values. So it's > possible to use an incorrect value (e.g. "foobar"). Should we add a > function to check this? There could be a (guix licenses) module along these lines: (define-module (guix licenses) #:use-module (srfi srfi-9) #:export (gplv2+ gplv3+)) (define-record-type (license name) license? (name license-name)) (define gplv3+ (license "GPLv3+")) (define gplv2+ (license "GPLv2+")) Packages would then do, for instance: (package ... (license gplv3+)) and you would get a unbound-variable warning when passing something wrong. We could imagine a type for multiply-licensed code, and a type for packages that incorporate code under different licenses. There could be a mechanism to make sure the =E2=80=98license=E2=80=99 field is a object, or a or And then, it would be tempting to make a graph of objects to indicate compatibility, and add additional properties to each object to describe it more precisely (copyleft, version number, etc.), and so on. But! We must keep in mind that people will always write new licenses; packages will always include files covered by different licenses; there will always be dual-licensed packages; etc. More importantly, licensing is not a science, and we can=E2=80=99t pretend = to devise a universal =E2=80=9Clicense calculus=E2=80=9D. (This has been disc= ussed at length in the past on nix-dev.) Thus, I would start with a simple (guix licenses) module. I would perhaps even omit the type, and use just plain strings to start with. WDYT? Thanks, Ludo=E2=80=99.