The lib.licenses.gpl3 attribute refers to GPL 3.0 only. Unfortunately, it is not clear from the attribute name so people will often use that without realizing lib.licenses.gpl3Plus might be more precise. It does not help that GitHub displays the license discovered in the attached ?GPL copy even when projects often include extra terms that allow user to choose later versions of GPL.
What happened
To reduce the confusion, licenses: Make single-version-only GPL explicit by jtojnar · Pull Request #92348 · NixOS/nixpkgs · GitHub deprecated the following license attributes:
agpl3in favour ofagpl3Onlyfdl11in favour offdl11Onlyfdl12in favour offdl12Onlyfdl13in favour offdl13Onlygpl1in favour ofgpl1Onlygpl2in favour ofgpl2Onlygpl3in favour ofgpl3Onlylgpl2in favour oflgpl2Onlylgpl21in favour oflgpl21Onlylgpl3in favour oflgpl3Only
This change is in line with the GNU recommendations.
What should you do
We ask that new package expressions do not use the deprecated lib.licenses.?gpl? attributes in meta.license. Instead they should use either lib.licenses.?gpl?Plus or lib.licenses.?gpl?Only attributes.
We also ask authors of pull request changing expressions using lib.licenses.?gpl? to determine if the project allows choosing later versions of the license and change the meta.license appropriately.
Finally, we ask reviewers to double check these changes and point pull request authors to this announcement if they did not read it.
How to determine license
Projects might mention license terms in the README file or on their homepage.
If that is not the case, check few source files. They might contain a blurb similar to the following in the comment at the top of a file:
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.
You can also try to grep (or search on GitHub) the repository for license.
Do not rely on the contents of COPYING file or the license shown by the GitHub/GitLab interface (which is determined from the COPYING file) – the file only contains the text of GNU ?GPL itself as mandated by the license. The extra terms allowing to use later versions of the license would be stored in the source code/documentation.
If no statement about license terms is found, you should ask the project maintainers to clarify.