Skip to content

Move Jamulus from GPL 2.0 (or any later version) to AGPL 3.0 (or any later version) #3711

@pljones

Description

@pljones

What is the current behaviour and why should it be changed?

The current licence for Jamulus is GPL 2.0 or any later version.

What this means, according to the Free Software Foundation, publishers of the licence, is:

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

Our code is currently distributed with the header:

/******************************************************************************\
...
 * 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 2 of the License, or (at your option) any later
 * version.
...
\******************************************************************************/

The issue with this is that anyone is free to take Jamulus and make changes to the source to enable them to run a service for which they do not make the source available (as they are not distributing the executable to offer the service).

I believe this goes against the intent of the original licence.

By adopting the GNU Affero General Public Licence, we would include the following, not present in the non-Affero versions:

  1. Remote Network Interaction; Use with the GNU General Public License.

Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.

Our contribution guidelines currently state:

### Licensing

If you add new (source code) files, please add a header with the license to the file. This clarifies how your work is licensed. Please use the same format as in e.g. the source files in the `src/` directory. A license header must include:

* A Legal copyright line
* The Author(s)/Copyright holder(s) list
* A Declaration of the licence, indicating how to refer to the full text if not provided

Again, I think this isn't as clear as it should be.

Describe possible approaches

  • We can update the contribution directions to be clearer.
  • We can update the licence to GPL 3.0 or any later version.
  • We some addition notices, we can update the licence to AGPL 3.0 or any later version.

The proposed solution is as follows:

  1. Amend the contribution guidelines to say:
### Licensing

**As of Jamulus 3.12.1dev:** All new source code contributions must be licensed under AGPL 3.0 or any later version.

**Existing code:** Code contributed before 3.12.1dev was licensed under GPL 2.0+. This code will be licenced under GPL 3.0 (or any later version) from 3.12.1dev.  When distributed as part of Jamulus, the AGPL 3.0 terms govern the combined work, including network use provisions.

New files should include a header with:
* Copyright line(s)
* Author(s)/holder(s)
* License declaration: "Licensed under AGPL 3.0 or any later version. See COPYING for details."

**Note:** We adopted AGPL 3.0 to ensure that modifications and derivative works developed for network services remain available to users.
  1. Amend the COPYING file to include the AGPL 3.0 document from the FSF.

Has this feature been discussed and generally agreed?

This has been discussed by the core team and with @corrados, the original author, all of whom have agreed this proposal.

Libraries used by Jamulus have been checked and none would conflict with this change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Triage

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions