Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Formalise free licence - present licence forbids modification, distribution. #242

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

broukema
Copy link

The CLASS v2.7.0 (commit 4be2cb3) README.md does not specifically
allow modification, distribution, or distribution of modified copies
(freedoms 1, 2, 3 of
https://en.wikipedia.org/wiki/The_Free_Software_Definition ), it only
allows "use" (freedom 0). This effectively blocks CLASS from software quality
control (portability, installation as a standard operating system
library, security checks) under the Debian/GNU Linux (and thus Debian
derivatives) system:
https://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines (DFSG)
or other major distributions that are careful about preserving
software freedom. The three files proposed here (AUTHORS, COPYING,
LICENSE) and the minor change to README.md should, it seems to me, be
compatible with the intentions of the present authors of CLASS and
also compatible with the free software and open source software
definitions, including the DFSG, removing this sort of block. See
https://en.wikipedia.org/wiki/Free_software_license for a description
of the history and debates about free software licences up to the 2010s.

…distribution.

The CLASS v2.7.0 (commit 4be2cb3) README.md does not specifically
allow modification, distribution, or distribution of modified copies
(freedoms 1, 2, 3 of
https://en.wikipedia.org/wiki/The_Free_Software_Definition ), it only
allows "use". This effectively blocks CLASS from software quality
control (portability, installation as a standard operating system
library, security checks) under the Debian/GNU Linux (and thus Debian
derivatives) system:
https://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines (DFSG)
or other major distributions that are careful about preserving
software freedom. The three files proposed here (AUTHORS, COPYING,
LICENSE) and the minor change to README.md should, it seems to me, be
compatible with the *intentions* of the present authors of CLASS and
also compatible with the free software and open source software
definitions, including the DFSG, removing this sort of block. See
https://en.wikipedia.org/wiki/Free_software_license for a description
of the history and debates about free software licences up to the
2010s.
…ibution.

    The CLASS v2.7.0 (commit 4be2cb3) README.md does not specifically
    allow modification, distribution, or distribution of modified
    copies (freedoms 1, 2, 3 of
    https://en.wikipedia.org/wiki/The_Free_Software_Definition ), it
    only allows "use". This effectively blocks CLASS from software
    quality control (portability, installation as a standard operating
    system library, security checks) under the Debian/GNU Linux (and
    thus Debian derivatives) system:
    https://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines
    (DFSG) or other major distributions that are careful about
    preserving software freedom. The three files proposed here
    (AUTHORS, COPYING, LICENSE) and the minor change to README.md
    should, it seems to me, be compatible with the *intentions* of the
    present authors of CLASS and also compatible with the free
    software and open source software definitions, including the DFSG,
    removing this sort of block. See
    https://en.wikipedia.org/wiki/Free_software_license for a
    description of the history and debates about free software
    licences up to the 2010s.
The specific wording `or any later version', to allow possible updates
to GPLv4 (if that ever has to be created based on future evolution of
copyright law), is now more clear that what I put earlier. (In principle,
licence notices should be added to individual program files, since
individual files might end up being split into different packages -
but that can be done later - the licence now clearly allows anyone who
wishes to do that clarification to do it.)
@Stefan-Heimersheim
Copy link

Hi broukema,

I also had this idea and am a big fan of free (as in freedom) software. However, I think a license change would be difficult / a lot of work for the maintainers since every author has to agree (iirc).
The benefit would be limited. It cannot be formally free software as long as we demand citations for using the code and practically, it is used like free software anyway.

@broukema
Copy link
Author

Hi Stefan

I also had this idea and am a big fan of free (as in freedom)
software. However, I think a license change would be difficult
/ a lot of work for the maintainers since every author has to
agree (iirc).

Most free licences either define the conditions with which the licence
can be changed or implicitly allow it to be changed. For the CC licences,
CC-0 (public domain) allows anyone to change the licence to anything; CC-BY allows
the licence to be changed (but "-BY" has to be preserved);
and CC-BY-SA (the closest to GPL) allows the licence to be changed
to a compatible licence. (Usual disclaimer: I'm not a lawyer, this is just my
interpretation.)

The co-authors have already accepted to publish their modifications under the
existing informal licence, and have implicitly requested permission from Julien
to make modifications and distribute (e.g. forks on github) the unmodified and/or
modified versions. Given that the present licence is an informal licence that seems like it intends
to be free and doesn't state any block against formalising it to be a free licence,
I don't see why new permission is needed from the co-authors to change to
a formally free licence. The co-authors implicitly accepted to trust
Julien's interpretation.

I think it's reasonable to assume that since the co-authors
were effectively willing to let Julien take
the responsibility for interpreting the licence, they're also happy to let
him decide to formalise the licence in a way that is consistent with what they
guessed he probably intended.

Even if Julien wanted to be hyper-careful and contact the co-authors,
I don't see why it should be a lot of work. The list
of co-authors can easily by constructed by going into a clone of the repository, doing

git log --stat |grep Author |sort |uniq |sed -e 's/Author: //' |tr '\n' ','

and editing the list by hand in an email client to remove duplicates or
obviously invalid (Firstname Secondname [email protected]) emails.
Agreement by passive consensus would be reasonable (e.g. "If you don't reply
within 2 weeks you'll be presumed to have accepted the licence change.")

It cannot be formally free
software as long as we demand citations for using the code and
practically,

That's why my proposed update does not require citations, it only
requests them.

However, while a "must cite" requirement is inconsistent with the GPL,
it's also unclear if it has any legal validity, given the Free Software Foundation's
FAQ:
https://www.gnu.org/licenses/gpl-faq.html#RequireCitation
"And copyright law does not allow you to place such a requirement on the output of software, regardless of whether it is licensed under the terms of the GPL or some other license."

The benefit would be limited ... it is used like free software anyway.

Quality control (systematic debugging, compatibility with other packages) is
presently difficult. CLASS would almost certainly be rejected from one of the main GNU/Linux
distributions, Debian, in its present state, because of the lack of
a well-defined free licence. This means that checking that CLASS can successfully
be compiled and pass unit tests on the 24 different debian build architectures
(official + unofficial) is not presently possible. Inhomog was updated a few days
ago and successfully passed all unit tests on 22 different architectures (the two
kfreebsd architectures have run out of disk space and need to be re-run):

https://buildd.debian.org/status/package.php?p=inhomog&suite=sid
= https://www.webcitation.org/74srInpo7

This includes a mix of 32-bit and 64-bit machines, little endian and big endian
machines, and so on.

Is the cosmology community really willing to promise to defend informally-free
cosmology software in the courts in the case of legal attacks? Are cosmologists
as a community ready to debate this at debian-legal?
https://lists.debian.org/debian-legal/

Just as a random example, what if Julien and his family were all killed in a car crash, and
"evil" relatives who inherited the copyright decided that because he was a famous cosmologist,
they wanted to preserve his cosmology software legacy frozen and preserved (and
they hoped to benefit financially from a 'Julien "Stephen Hawking" Lesgourgues'
posthumous media frenzy), and their lawyers started attacking
anyone who tries to "deviate" from the official post-Julien
version of CLASS? Cosmologists would waste a lot of time either trying
to convince the family/lawyers or re-writing CLASS from scratch.

There have been real concrete cases in cosmology (I don't want to give
details publicly) in which informally free cosmology software licensing has lead
to real-life problems. We're not all immortal and nice 100% of the time, much
as we might like to think so... :)

I'm not opposed to the idea of creating a de facto informally-free
ecosystem of cosmology software, and persuading the Free Software
Foundation and Debian that this ecosystem of software is legally
solid and viable and sustainable in the long term in practice.
But that would require work (discussion, debate, decision-making)
that, as far as I know, has not been done. We would also have to
have realistic plans about how it interacts with the formally free software system.
Switching from informal licences to formally free licences
seems like much less work in practice to me - why reinvent the (legal defence) wheel?

Boud

@broukema
Copy link
Author

broukema commented Apr 8, 2023

That's four and a half years ago. It would be good to finally get CLASS free-licensed.

@broukema
Copy link
Author

@lesgourg CLASS is still non-free. It would be good to finally switch this to free software [1][2][3].

In fact, the current situation is non-violent direct action - there are over 200 people who have illegally redistributed copies of CLASS on Microsoft/Github, probably many who have illegally redistributed copies on community git forges, and probably a big fraction of those few hundred who have illegally modified the code and redistributed the modified code. While I empathise with this direct action, the potential difficulty (see the thread above) is the interactions with the wider FOSS ecosystem, which is built to survive the current legal copyright context, and is generally more conservative. There's also the risk that one of the many co-authors could turn nasty and start a legal case against the other 200 or so who can easily be identified and proved to have redistributed the code and redistributed modified copies. That person would become detested in the cosmology community, but might become rich: a EUR 3000 fine for every illegal redistribution would provide a comfortable half million EUR retirement fund.

Of course, CLASS is also being used illegally by MS/GH for COPILOT, for redistributing text and code fragments without crediting the authors - the case by Joseph Saveri Law Firm, LLP has only barely just started, in November 2022 [5]. But if forced to, MS could pay a few GEUR fine as a minor annoyance.

[1] https://en.wikipedia.org/wiki/The_Free_Software_Definition

[2] https://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines

[3] https://en.wikipedia.org/wiki/Free_software_license

[4] https://en.wikipedia.org/wiki/Direct_action#Nonviolent_direct_action

[5] https://en.wikipedia.org/wiki/GitHub_Copilot#Licensing_controversy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants