Although its is an important difference between or-later and only for a GPL licenced project, these project often don’t state if their license is compatible with later versions of the GPL.
Unfortunately, these repos also lack a license header* in the source files, which would clarify this.
Do someone know a method to check the exact terms of an open source project if there is no licence header?
Licence header are looking like this:
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version
The clause in the GPL I am refering to is the following (for the GPLv3):
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version..
Well, they do state it by having that clause in the LICENSE file. Reading that file is the method to check the exact terms of an open source project. If you look in that file and that clause is not in there then it is not a part of the license. The headers/identifiers are metadata which make this easier if the author chooses to use them but they are not the license.
These clause is always included in the GPL, but its only effective when stated this way by the copyright holder.
The FSF should have make it that its always effective when the copyright holder doesn’t explicitly state it otherwise, that would avoid this problem.
A strict reading of the license text would suggest that if a project doesn’t have those headers and only has the GPL text included in a file, then it’s not even GPL licensed at all either way. Which is probably not the intent of projects doing this. I’d agree your only option here is to inform the maintainer of that omission and have them add a Copyright statement in their README or elsewhere.
(I got too used to the MIT license including a Copyright statement at the top of the file)
If they don’t make proper Licence headers then it could also challenge the validity of the licence in some jurisdictions.
Yes, considering the fact that copyright is valid for 70-100 years after the death off the author, its not wise to bound your code to a licence of today and just assuming that this will fit right for the next 100-200 years or even longer.
But most devs doesn’t read licences longer then the MIT, so the future compatibility clause should be the default.
This was answered on the Open Source Stack Exchange. It’s not perfectly clear but it seems that if a version number is not mentioned at all, the license defaults to or-later. If the license mentions a version number but does not mention whether it is or-later or only, it is presumed to default to only.
In my opinion this is a major flaw in the GPL since most developers didn’t know they’d have to specify this and now they cannot easily upgrade to future versions, in many cases it cannot be upgraded at all.
If you are the copyright holder, you can change it to whatever you want at any time. It becomes more difficult when you have had others contribute code without agreeing to future relicensing. You would then have to get permission from every contributor or strip out the code they provided.
That’s the problem, many contributors will be unreachable or stubborn and given the strong copyleft nature of GPL even minor contributions can pose significant re-licensing challenges for so many projects.
I think most big Open Source projects with a strong copyleft licence that doen’t require CLAs for contributing, have no way to change their licence without rewriting large parts of their codebase.
Therefore I favour to donate or contribute to projects that have an or-later option or a more permissive licence.
Yes,
Better use more permissive licences (like MIT, Apache, MPL) for core functionality, protocols and everything that could be important for compatibility and a GPLv3-or-later for the rest.
I saw it once but it’s rare. Very strange that the FSF accounted for this virtually non-existent scenario rather than the much more foreseeable scenario playing out today.