Specific license field

Hi, I just got approached by Fedora maintainers with the query that HLint doesn't specify it's license fully. The License field in the cabal file says "GPL", and the LICENSE file has a copy of the GPL v2, but I never say GPL version 2, or GPL version 2 and above etc. What is the Cabal approved way to indicate your licensing constraints? I suspect all other distro's packaging HLint have just guessed, or gone GPL 2 because that's clearly a subset of what I might have intended. Thanks, Neil PS. For anyone who stumbles across this email, the intention was to license HLint under the GPL v2, but if that license doesn't suit someone, email me.

On Fri, Nov 6, 2009 at 9:29 AM, Neil Mitchell
Hi,
I just got approached by Fedora maintainers with the query that HLint doesn't specify it's license fully. The License field in the cabal file says "GPL", and the LICENSE file has a copy of the GPL v2, but I never say GPL version 2, or GPL version 2 and above etc. What is the Cabal approved way to indicate your licensing constraints? I suspect all other distro's packaging HLint have just guessed, or gone GPL 2 because that's clearly a subset of what I might have intended.
Thanks, Neil
PS. For anyone who stumbles across this email, the intention was to license HLint under the GPL v2, but if that license doesn't suit someone, email me.
_______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel
I think you just specify the license as GPL-2. Alex

Hi Alex,
License: GPL-2
Warning: 'license: GPL-2' is not a recognised license.
License: GPL-2+
cabal: hlint.cabal:6: Parse of field 'license' failed.
This doesn't seem particularly attractive, given License: GPL, on a
reasonable reading, probably means GPL v1.0 and above, or just GPL
v1.0 - unlikely to be what anyone intended.
Thanks, Neil
On Sat, Nov 7, 2009 at 1:18 AM, Alexander Dunlap
On Fri, Nov 6, 2009 at 9:29 AM, Neil Mitchell
wrote: Hi,
I just got approached by Fedora maintainers with the query that HLint doesn't specify it's license fully. The License field in the cabal file says "GPL", and the LICENSE file has a copy of the GPL v2, but I never say GPL version 2, or GPL version 2 and above etc. What is the Cabal approved way to indicate your licensing constraints? I suspect all other distro's packaging HLint have just guessed, or gone GPL 2 because that's clearly a subset of what I might have intended.
Thanks, Neil
PS. For anyone who stumbles across this email, the intention was to license HLint under the GPL v2, but if that license doesn't suit someone, email me.
_______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel
I think you just specify the license as GPL-2.
Alex

What version of Cabal are you using? With Cabal 1.7.3 and
cabal-install 0.7, GPL-2 works.
Alex
On Sun, Nov 8, 2009 at 7:57 PM, Neil Mitchell
Hi Alex,
License: GPL-2 Warning: 'license: GPL-2' is not a recognised license.
License: GPL-2+ cabal: hlint.cabal:6: Parse of field 'license' failed.
This doesn't seem particularly attractive, given License: GPL, on a reasonable reading, probably means GPL v1.0 and above, or just GPL v1.0 - unlikely to be what anyone intended.
Thanks, Neil
On Sat, Nov 7, 2009 at 1:18 AM, Alexander Dunlap
wrote: On Fri, Nov 6, 2009 at 9:29 AM, Neil Mitchell
wrote: Hi,
I just got approached by Fedora maintainers with the query that HLint doesn't specify it's license fully. The License field in the cabal file says "GPL", and the LICENSE file has a copy of the GPL v2, but I never say GPL version 2, or GPL version 2 and above etc. What is the Cabal approved way to indicate your licensing constraints? I suspect all other distro's packaging HLint have just guessed, or gone GPL 2 because that's clearly a subset of what I might have intended.
Thanks, Neil
PS. For anyone who stumbles across this email, the intention was to license HLint under the GPL v2, but if that license doesn't suit someone, email me.
_______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel
I think you just specify the license as GPL-2.
Alex

Hi Alex,
Ok, I'm only on 1.6.0.1. Does 0.7 also support GPL-2+ ? Without a way
to specify the difference between there will still be a question mark.
Thanks, Neil
On Mon, Nov 9, 2009 at 4:43 AM, Alexander Dunlap
What version of Cabal are you using? With Cabal 1.7.3 and cabal-install 0.7, GPL-2 works.
Alex
On Sun, Nov 8, 2009 at 7:57 PM, Neil Mitchell
wrote: Hi Alex,
License: GPL-2 Warning: 'license: GPL-2' is not a recognised license.
License: GPL-2+ cabal: hlint.cabal:6: Parse of field 'license' failed.
This doesn't seem particularly attractive, given License: GPL, on a reasonable reading, probably means GPL v1.0 and above, or just GPL v1.0 - unlikely to be what anyone intended.
Thanks, Neil
On Sat, Nov 7, 2009 at 1:18 AM, Alexander Dunlap
wrote: On Fri, Nov 6, 2009 at 9:29 AM, Neil Mitchell
wrote: Hi,
I just got approached by Fedora maintainers with the query that HLint doesn't specify it's license fully. The License field in the cabal file says "GPL", and the LICENSE file has a copy of the GPL v2, but I never say GPL version 2, or GPL version 2 and above etc. What is the Cabal approved way to indicate your licensing constraints? I suspect all other distro's packaging HLint have just guessed, or gone GPL 2 because that's clearly a subset of what I might have intended.
Thanks, Neil
PS. For anyone who stumbles across this email, the intention was to license HLint under the GPL v2, but if that license doesn't suit someone, email me.
_______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel
I think you just specify the license as GPL-2.
Alex

On Mon, 2009-11-09 at 03:57 +0000, Neil Mitchell wrote: Hi Neil, You'll be glad to know that we started working on this issue a year and a half ago.
License: GPL-2 Warning: 'license: GPL-2' is not a recognised license.
This is valid syntax so does not break the parser in Cabal as of version 1.4 (but will break it for eg Cabal-1.2 which came with ghc-6.8). We added the syntax before allowing use of the new versioned licenses so that we would not needlessly break old ghc/cabal installations. Now that we've had a full ghc release cycle with a Cabal that has the less fragile parser we're adding versioned GPL licenses as "known" licenses which means you can upload them to hackage.
License: GPL-2+ cabal: hlint.cabal:6: Parse of field 'license' failed.
This is invalid syntax. It's also what you would get with Cabal-1.2 if you used the versioned licenses. So the upshot is that you can now use: * GPL-2 * GPL-3 * LGPL-2.1 * LGPL-3 * MIT I think the hackage upload scripts are compiled against a sufficiently recent version of the Cabal lib for these to be allowed now. It'll tell you that you need to specify at least "cabal-version: >= 1.4". As you saw, it will generate the configure warnings when used with Cabal-1.6 but will still build fine. It will register with ghc-pkg ok but only for ghc-6.10+. The older ghc used the older Cabal which had the horribly fragile license field parser (it used to be Read/Show). I guess it's a bug that we generate package registration info that old ghc will not grok. It's a little late to fix that in the Cabal-1.6 series however. Duncan

Neil Mitchell wrote:
I just got approached by Fedora maintainers with the query that HLint doesn't specify it's license fully. The License field in the cabal file says "GPL", and the LICENSE file has a copy of the GPL v2, but I never say GPL version 2, or GPL version 2 and above etc. What is the Cabal approved way to indicate your licensing constraints? I suspect all other distro's packaging HLint have just guessed, or gone GPL 2 because that's clearly a subset of what I might have intended.
There is a similar problem with some packages (ie bzlib) having BSD3 in the .cabal file but having a 2 clause BSD LICENSE file. This caused problems for me when I packaged bzlib for Debian. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/

On Mon, 2009-11-09 at 15:05 +1100, Erik de Castro Lopo wrote:
Neil Mitchell wrote:
I just got approached by Fedora maintainers with the query that HLint doesn't specify it's license fully. The License field in the cabal file says "GPL", and the LICENSE file has a copy of the GPL v2, but I never say GPL version 2, or GPL version 2 and above etc. What is the Cabal approved way to indicate your licensing constraints? I suspect all other distro's packaging HLint have just guessed, or gone GPL 2 because that's clearly a subset of what I might have intended.
There is a similar problem with some packages (ie bzlib) having BSD3 in the .cabal file but having a 2 clause BSD LICENSE file. This caused problems for me when I packaged bzlib for Debian.
Ah yes, I was going to add in: 3. This clause is intentionally left blank. :-) We need a consensus if we're to add an extra license name. The OSI do not list the 2-clause BSD license at all. The FSF describe it as the FreeBSD license or "2-clause BSD license". We currently have "BSD3" (and the outdated "BSD4"). We could add the 2-clause BSD license as "BSD2". What do other people call it, eg distros? I don't like the possible confusion over "BSD-$N" vs "GPL-N". The latter is a version while the former is not. If we'd had better foresight we would never have added BSD4 and could then have claimed that "BSD" covered both the 2 and 3 clause versions. We're not trying to nail down every last nuance in the licenses (e.g. I don't think we need to be trying to distinguish GPL-2 from GPL-2+). Duncan

Hi
We're not trying to nail down every last nuance in the licenses (e.g. I don't think we need to be trying to distinguish GPL-2 from GPL-2+).
So how is a Cabal library author meant to explain their intent? I just want to go with whatever helps the distros package my tools (although I don't want to put explicit licensing in each source code file), and it's the distros who have been asking for clarification. Knowing that GPL-2 is coming is great, but if it's newer Cabal/GHC only I'll just leave it as a comment in the .cabal file, then move it over in a few years time. Thanks, Neil

On Mon, 2009-11-09 at 15:04 +0000, Neil Mitchell wrote:
Hi
We're not trying to nail down every last nuance in the licenses (e.g. I don't think we need to be trying to distinguish GPL-2 from GPL-2+).
So how is a Cabal library author meant to explain their intent?
The full intent of the license is given in the license file. The license line in the .cabal file is just informative, not authoritative. Afterall it contains "OtherLicence". The only reason it is not a free-form string is so that when you use the "common Foo license" and I use it too, that we can agree on the same name (which is occasionally useful for tools). It would be jolly tricky to work out a DSL for precise license description. "GPL >= 2 && LGPL >= 2.1 && MPL" or did I mean "GPL >= 2 || LGPL >= 2.1 || MPL".
I just want to go with whatever helps the distros package my tools (although I don't want to put explicit licensing in each source code file), and it's the distros who have been asking for clarification.
The distros that really care about this check the license file. You do not need to duplicate the license into every file (in any case most license are too long for that to be practical).
Knowing that GPL-2 is coming is great, but if it's newer Cabal/GHC only I'll just leave it as a comment in the .cabal file, then move it over in a few years time.
As I mentioned it works from Cabal-1.6 (ghc-6.10). If/when you decide to use it is up to you. Duncan

Duncan Coutts wrote:
We need a consensus if we're to add an extra license name.
The OSI do not list the 2-clause BSD license at all. The FSF describe it as the FreeBSD license or "2-clause BSD license".
We currently have "BSD3" (and the outdated "BSD4"). We could add the 2-clause BSD license as "BSD2". What do other people call it, eg distros?
I have no problem with a BSD2 license being added, or with BSD3 being removed in favour of just BSD (which encompasses 2 and 3 clause versions).
I don't like the possible confusion over "BSD-$N" vs "GPL-N". The latter is a version while the former is not.
Neither do I, but even the versioning gets complicated. To cover the commonly used GPL licences in existence now, you would need: GPL2, GPL2plus, GPL3, and GPL3plus. Similar for the LGPL.
If we'd had better foresight we would never have added BSD4 and could then have claimed that "BSD" covered both the 2 and 3 clause versions. We're not trying to nail down every last nuance in the licenses (e.g. I don't think we need to be trying to distinguish GPL-2 from GPL-2+).
Sorry, as a debian maintainer I think you really do need to care about this if you are interested in making cabal packages easily converted into Debian packages. The Debian project (and therefore also Ubuntu) are real sticklers for getting the copyright terms correct and making them well known. They go to great lengths to distinguish between GPL2, GPL2plus and GPL3. Now if cabal only listed BSD, GPL and LGPL then it would fall to people getting the LICENSE files right. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/

Hi
If we'd had better foresight we would never have added BSD4 and could then have claimed that "BSD" covered both the 2 and 3 clause versions. We're not trying to nail down every last nuance in the licenses (e.g. I don't think we need to be trying to distinguish GPL-2 from GPL-2+).
Sorry, as a debian maintainer I think you really do need to care about this if you are interested in making cabal packages easily converted into Debian packages.
The Debian project (and therefore also Ubuntu) are real sticklers for getting the copyright terms correct and making them well known. They go to great lengths to distinguish between GPL2, GPL2plus and GPL3.
Now if cabal only listed BSD, GPL and LGPL then it would fall to people getting the LICENSE files right.
How do people modify the LICENSE file to indicate their GPL2/GPL2plus intention? From what I can see, the LICENSE file is the GPL2, and you need to say how it applies to your code - that's not something for the LICENSE file itself, but for the package metadata. Does Debian have some standard wording that applies this? I also want to know whether all the other Haskell GPL stuff is GPL2 or GPL2+ - since I might as well follow the crowd. I'll ask Malcolm :-) Thanks, Neil

How do people modify the LICENSE file to indicate their GPL2/GPL2plus intention? From what I can see, the LICENSE file is the GPL2, and you need to say how it applies to your code - that's not something for the LICENSE file itself, but for the package metadata. Does Debian have some standard wording that applies this?
Section 13 of the GPL-2 (and LGPL-2) says: If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. Section 3 of the LGPL-2 permits you to convert LGPL-2 to GPL-2 or later. It uses the phrase "you must alter all the notices that refer to this License", indicating that there should be a separate specification of what license applies to what code, apart from the license text itself.
I also want to know whether all the other Haskell GPL stuff is GPL2 or GPL2+ - since I might as well follow the crowd. I'll ask Malcolm :-)
If the Cabal file simply says GPL or LGPL, I believe that in the absence of any more specific information, you can choose any version you wish. (Really, Cabal ought to allow the more specific notation, for those people who care to exclude older or newer licenses.) Regards, Malcolm

On Tue, 2009-11-10 at 15:38 +0000, Neil Mitchell wrote:
How do people modify the LICENSE file to indicate their GPL2/GPL2plus intention? From what I can see, the LICENSE file is the GPL2, and you need to say how it applies to your code - that's not something for the LICENSE file itself, but for the package metadata. Does Debian have some standard wording that applies this?
The "How to Apply These Terms to Your New Libraries" section of the LGPL
states:
To apply these terms, attach the following notices to the library. It
is safest to attach them to the start of each source file to most
effectively convey the exclusion of warranty; and each file should have
at least the "copyright" line and a pointer to where the full notice is
found.
participants (5)
-
Alexander Dunlap
-
Duncan Coutts
-
Erik de Castro Lopo
-
Malcolm Wallace
-
Neil Mitchell