The GPLv3 allows certain options to be taken, so that it becomes compatible with a number of other licences, such as BSD varients.
Samba4 includes a number of pieces of such code in the form of Heimdal (a Kerberos implementation we currently have bundled), do I have to do make some special note (other than complying with the restrictions, by including copyright notices in the docs)?
Thanks,
Andrew Bartlett
On Fri, 2008-08-29 at 11:56 +1000, Andrew Bartlett wrote:
The GPLv3 allows certain options to be taken, so that it becomes compatible with a number of other licences, such as BSD varients.
Samba4 includes a number of pieces of such code in the form of Heimdal (a Kerberos implementation we currently have bundled), do I have to do make some special note (other than complying with the restrictions, by including copyright notices in the docs)?
IANAL, and this should not be construed as legal advice. That disclaimer out of the way, here's my opinion.
As far as the code is concerned, you should note that there are exceptions in the header attribution, something like:
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. As permitted by Section 10, the additional exception permissions have been granted: * Foo * Bar * Baz
This is a result of: "If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms."
I always recommend people put the actual terms rather than a notice, because "LICENSING" and "README.LICENSE" have a terrible habit of getting lost or forgotten, then I have no idea what exceptions you meant for this code to have, and I end up trying to find you in several years time and forcing you to remember the licensing to code you forgot you wrote at all. :)
From a Fedora perspective, any package that add exceptions to the GPLv3 should be
noted in its license tag with:
License: GPLv3 with exceptions
or
License: GPLv3+ with exceptions
... depending on whether the license attribution states v3 only or v3 or later.
Hope that helps,
~spot
On Fri, 2008-08-29 at 07:45 -0400, Tom "spot" Callaway wrote:
On Fri, 2008-08-29 at 11:56 +1000, Andrew Bartlett wrote:
The GPLv3 allows certain options to be taken, so that it becomes compatible with a number of other licences, such as BSD varients.
Samba4 includes a number of pieces of such code in the form of Heimdal (a Kerberos implementation we currently have bundled), do I have to do make some special note (other than complying with the restrictions, by including copyright notices in the docs)?
IANAL, and this should not be construed as legal advice. That disclaimer out of the way, here's my opinion.
As far as the code is concerned, you should note that there are exceptions in the header attribution, something like:
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. As permitted by Section 10, the additional exception permissions have been granted:
I perhaps should have been more clear. A number of the licences impose particular (but resaonable, so GPLv3 compatible) restrictions requiring their particular notice be reproduced in various places. Complying with them is easy - I'll be including an aggregated list of these licences in a text file marked as %doc.
From a Fedora perspective, any package that add exceptions to the GPLv3 should be
noted in its license tag with:
License: GPLv3 with exceptions
or
License: GPLv3+ with exceptions
... depending on whether the license attribution states v3 only or v3 or later.
I'm presuming for these cases it would be GPLv3+ with permitted restrictions?
Andrew Bartlett
On Fri, 2008-08-29 at 22:03 +1000, Andrew Bartlett wrote:
I perhaps should have been more clear. A number of the licences impose particular (but resaonable, so GPLv3 compatible) restrictions requiring their particular notice be reproduced in various places. Complying with them is easy - I'll be including an aggregated list of these licences in a text file marked as %doc.
Without seeing the specifics, this seems fine. If this is the advertising clause from old BSD, that's a different story, but nothing with a University of California copyright should still have that clause.
From a Fedora perspective, any package that add exceptions to the
GPLv3 should be
noted in its license tag with:
License: GPLv3 with exceptions
or
License: GPLv3+ with exceptions
... depending on whether the license attribution states v3 only or
v3 or later.
I'm presuming for these cases it would be GPLv3+ with permitted restrictions?
No, because in any cases where the GPL has been modified, we use "GPLv** with exceptions" to note that, for consistency. You'd be encouraged to put a comment in the spec file to elaborate, but not in the tag itself.
Now that I understand this case clearly, in your scenario, the Fedora license tag would just be GPLv3+. If you wished to say:
License: GPLv3+ and BSD
That would also be correct and permissible.
~spot
On Fri, 29 Aug 2008 07:45:15 -0400 "Tom "spot" Callaway" tcallawa@redhat.com wrote:
This is a result of: "If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms."
Correct. In the case of the traditional third-party-license-compatibility practice, this is taken care of by inclusion of the non-GPL license notice in the relevant source file (which might be the complete license text or a reference to some license text contained in another file).
I always recommend people put the actual terms rather than a notice, because "LICENSING" and "README.LICENSE" have a terrible habit of getting lost or forgotten, then I have no idea what exceptions you meant for this code to have, and I end up trying to find you in several years time and forcing you to remember the licensing to code you forgot you wrote at all. :)
More generally, I have found from experience that global licensing notices (though important) should not be used to the exclusion of licensing notices in individual source files. (In a paper I co-authored, http://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html there is a footnote suggesting that top-level notices are preferable to 'file-by-file' notices; I no longer find this convincing.)
From a Fedora perspective, any package that add exceptions to the GPLv3 should be
noted in its license tag with:
License: GPLv3 with exceptions
or
License: GPLv3+ with exceptions
... depending on whether the license attribution states v3 only or v3 or later.
Perhaps additional permissions and additional requirements should be treated differently (or maybe a special tag is needed only if there are additional requirements?).
- RF
(IAARHL, IANASL[1], TINLA)
On Fri, 29 Aug 2008 11:56:59 +1000 Andrew Bartlett abartlet@samba.org wrote:
The GPLv3 allows certain options to be taken, so that it becomes compatible with a number of other licences, such as BSD varients.
Samba4 includes a number of pieces of such code in the form of Heimdal (a Kerberos implementation we currently have bundled), do I have to do make some special note (other than complying with the restrictions, by including copyright notices in the docs)?
No, if you are just incorporating third-party code under pre-existing GPL-compatible licenses in customary fashion, you don't have to do anything. The practice under GPLv3 is exactly the same as the practice under GPLv2. E.g., a GPLv2/v3-licensed work can contain some parts under compatible BSD-variant licenses, but no special notice beyond preservation of the BSD-like license notice is necessary. The legitimacy of compatibility [if indeed it is legitimate in any given case] is understood.
Where you would need to do something extra is if you are applying GPLv3 to your own code (as opposed to third-party code under a formal non-GPL but GPL-compatible license) along with one of the tolerated additional conditions. In that case, reference to the particular category in GPLv3 section 7 authorizing the additional term would be good practice. Same goes for permissive exceptions; the FSF now has some examples of how those should be applied in GPLv3-licensed code, which involve making reference to section 7.
- RF
[1]Samba is a former client.