Perl-Toolchain-Gang / Software-License

perl representation of common software licenses
18 stars 40 forks source link

"Perl 5 license" issue. #81

Open djzort opened 2 years ago

djzort commented 2 years ago

The phrasing of the "perl 5" license, which is A1.0/GPL1.0+, makes unclear what the copyright holders intentions are if the "Perl 5 programming language system itself" changes license.

https://github.com/Perl-Toolchain-Gang/Software-License/blob/80f40989d4a21ab25872e87cd4b8f41e6bb80e55/lib/Software/License/Perl_5.pm#L39

From the point of view of whats in the pod itself, one interpretation is that "the Perl 5 programming language system itself" is a specific term, which is then defined thereafter as A1.0/GPL1.0+.

Another interpretation is that "the Perl 5 programming language system itself" is referencing Perl 5 interpreter releases, which would then imply the the subsequent license details are for convenience. However, in the first sentence its "Perl 5 programming langauge" and the second is just "Perl programming language", this breaks this interpretation.

If so, then if the Perl5 interpreter was to relicense, it is not clear if the author of the CPAN module wishes to automatically adopt that license without doing a new release. Also, its not clear if the latest perl 5 interpreter license is to be adopted or if a specific perl 5 interpreter license should be adopted (perhaps the minimum perl version?).

Similarly, if the license in Perl_5.pm was to change, then subsequent releases via dist::zilla etc would change the license terms with minimal consent from the author(s) & copyright holders.

Also the word "use" is not mentioned at all.

A minimal potential solution which assumes the perl 5 license at the date of release:

This is free software; you can use, redistribute it and/or modify it under
the same terms as "the Perl 5 programming language system itself".
__LICENSE__
Terms of "the Perl 5 programming language system itself"

Another solution would be to make the phasing a little more specific to the date of release:

This is free software; you can use, redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself 
as at the date of release.
__LICENSE__
Terms of the Perl 5 programming language system itself as date of release

Or more wordy, that mentions that the license is the same as perl 5 as being more like an FYI so as to disconnect implied intent around relicensing:

This is free software; you can use, redistribute it and/or modify it under the following terms which at release are the same as the Perl 5 programming language system itself 
__LICENSE__
Terms of release
waterkip commented 2 years ago

Why is this an issue, both the GPL and AL are published in the same document?

https://github.com/Perl-Toolchain-Gang/Software-License/blob/80f40989d4a21ab25872e87cd4b8f41e6bb80e55/lib/Software/License/Perl_5.pm#L41-L54

Similarly, if the license in Perl_5.pm was to change, then subsequent releases via dist::zilla etc would change the license terms with minimal consent from the author(s) & copyright holders.

This holds true for every change in a License.pm file and is not specific to Perl_5.pm

Grinnz commented 2 years ago

This is indeed something to be wary of, and why some instead say "the license of Perl v5.10" or similar more specific verbiage. But in practicality, it would be impossible for Perl 5 to change its license, so it's a theoretical issue.

djzort commented 2 years ago

Whats interesting about Artistic 1.0 is that it has the concept of a "Copyright Holder" who "maintains some semblance of artistic control over the development of the package" and gives users "the right to make reasonable modifications"

The "Copyright Holder" is whoever is named in the copyright or copyrights for the package.

Whilst relicensing would normally require contacting every contributor or removing code, this "Copyright Holder" provides a quirk whereby only those listed hold copyright controls.

Looking at https://metacpan.org/dist/perl/view/pod/perl.pod there is only an "AUTHOR" section with Larry Wall listed. Then there is an AUTHORS file https://github.com/Perl/perl5/blob/blead/AUTHORS which purpose is to "To give due honour to those who have made Perl 5 what it is today" and therefore not claiming to be a list of "Copyright Holders" per A1.0

On this basis, I would make the argument that only larry wall has copyright control of Perl and relicense only requires his blessing.

stefan-hdt commented 2 years ago

At https://github.com/Perl/perl5/blob/blead/README Larry Wall is stated as copyright holder, not only as author. Furthermore, there are "other" copyright holders mentioned but without name. So it remains unclear whether further copyright holders exist and who they are. It may be the case that each author/contributor holds the copyright for the contribution they did.

Grinnz commented 2 years ago

Much like technical aspects of Perl, what's written down doesn't matter as much as the reality that all contributors innately own the copyright of their contributions, and I don't think anyone is interested in having lawyers argue that one way or another.

stefan-hdt commented 2 years ago

@Grinnz You are absolutely right. All contributors own their copyright and should be respected for it. If my comment was rude, I apologize. I do not intend to tell contributors or anyone else what to do or what not to do. My aim is to assist if someone is looking for help regarding the license jungle and other issues.