Skip to content

Conversation

@MaxPelly
Copy link

@MaxPelly MaxPelly commented Aug 17, 2024

This term is not allowed/enforcable under the AGPL v3. See https://www.gnu.org/licenses/agpl-3.0.en.html

Section 5:
"...
You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it."

Section 7:
"...
All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying."

Section 10:
"...
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it."

Mark the type contribution you are making:

  • Experimental feature (new functionality that can be selectively enabled/disabled)
  • Bug fix (non-breaking change which fixes an issue)

Description

Summary of your changes, including:

  • Why is this change necessary?
  • Why did you decide on this solution?

Testing

List all iOS versions and devices you've tested this change on.

Example Configurations:

  • iPhone 14, iOS 16.3.1
  • iPhone X, iOS 15.7.4

Checklist

General (All PRs)

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • I've tested my changes with different device + OS version configurations

Experimental Feature-specific

  • Added property to ExperimentalFeatures struct annotated with @Feature
  • Uses @Option's to persist all feature-related data
  • Locked all behavior changes behind ExperimentalFeatures.shared.[feature].isEnabled runtime check
  • Isolates changes to separate files as much as possible (e.g. via Swift extensions)

This term is not allowed/enforcable under the AGPL v3.
See https://www.gnu.org/licenses/agpl-3.0.en.html

Section 5: 
"...
You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it."
Section 7:
"...
All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying."

Section 10:
"...
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it."
@DominusExult
Copy link
Collaborator

Maybe this PR will help, comments about this have ben ignored so far

@MaxPelly
Copy link
Author

Fortunately section 7 means it can just be ignored but still annoying. The mixed licences of the cores seem a bigger problem but less easy to fix.

@Leseratte10
Copy link

Not sure how / why this would be violating AGPL and why this PR would help?

All that text states is that the code is basically dual-licensed. You can either use the whole work under the AGPL license which forces you to make changes public and which would theoretically allow you to publish it to the App Store; or you use the author's original code in any other form, with or without attribution, without complying with the AGPL, but with the additional restriction of not publishing to the App store.

As I understand it, nobody is restricting your rights in the AGPL. You're free to follow the AGPL without additional restrictions.

But if you do want additional freedoms not granted in the AGPL, meaning, "use, modify, and distribute all my original code for this project in any form, with or without attribution"; then that's a separate license granted independantly from the AGPL and thus this can have additional terms like "Don't publish on the App store".

It's like any other commercial app that's dual-licensed as (A)GPL + whatever.

@DominusExult
Copy link
Collaborator

You can do whatever you want with your code but you can't put restrictions on code under AGPL. You can change the license of your code, you can dual license your code but you cannot do either with code that is not yours that is under the AGPL license.
The Delta developers are using code that is not their own but is under the AGPL (which is fine) and are relicensing it and are putting a restriction on it (which is not fine).

@Leseratte10
Copy link

Leseratte10 commented Feb 25, 2025

are relicensing it and are putting a restriction on it (which is not fine).

No, they aren't. The entirety of the code is still under AGPLv3.
They are saying:

  • Delta is distributed under the AGPLv3 license (without any restrictions)
  • Additionally, they give you permission to use their own code (and ONLY their code, so there's no re-licensing) under any other license you want, with or without attribution, as long as you don't use it on the App store.

That's a classic dual-licensed app. If you don't like the restriction of not using it on the App store, you can just ignore the entire 2nd sentence of their license - then it'll be AGPLv3 only and you will not be permitted to use code without attribution.

@DominusExult
Copy link
Collaborator

I’ve been re-reading Delta’s license, and I’m under the impression Riley believes he can have different licenses for the code he wrote, separating it from the third party code he used under the GPL.

This isn’t true. A derivative work is still governed under the GPL. There’s no way to separate “his code” from the “original code”.

Furthermore, besides being against the license “legally speaking”, it’s also against the spirit of it. GPL is all about giving people freedom to tinker and own the software they use. By design, the license is infectious to allow future devs to use it in the same way the previous dev used it.

This means, if Riley’s work is derivative of a work published under the GPL, then his work has to be GPL, because if someone wants to expand on it, the license stipulates they have to have the same rights Riley had when he began developing Delta.

see #296 for in depth discussion. But please just don't butt in there without having read up on all the comments.

If you don't like the restriction of not using it on the App store, you can just ignore the entire 2nd sentence of their license

"if you don't like, then ignore" - that's not how licenses work

@Leseratte10
Copy link

Leseratte10 commented Feb 25, 2025

I did read the issue. I'm not commenting on the licensing issues regarding cores, I don't think I'm qualified for that. I'm just commenting on the general "additional restrictions are invalid" part.
And I'm not saying you can ignore parts you don't want.

I am saying that this is most likely meant (and will be interpreted by most people) as a dual license.

You have the choice to use the entire work under the AGPLv3.
Or you have the choice to use only the author's work under his custom no-appstore license.

Just like when a work is licensed under the "GPL-2-or-later" it means that you as the user get to choose whether you're using it under the GPLv2 or under the GPLv3. It doesn't mean you have to follow both licenses.

And here you get to choose whether you're using the full work under the AGPL, or only the author's parts (as he can't and doesn't relicense other's works) under his custom license.

The author's work is licensed under the AGPLv3 and you can use it as such.

It's just that he additionally allows you to use it without attribution as long as you don't use it on the Appstore.

This is bog-standard dual-licensing as used by tons of companies, I don't get how there's any confusion regarding that part?

@DominusExult
Copy link
Collaborator

the point is you cannot relicense AGPL v3 stuff that is not yours. And you cannot distinguish Riley's and other's code once you used other's code. He could do with his code as he wishes but he puts a restriction on other's AGPL v3 code.

Reworded to make dual licence clearer.
@MaxPelly
Copy link
Author

Reworded to make things clearer as to the dual licence intent, but I would still worry about the separability if the code and what may be a derivative of AGPL work

@Leseratte10
Copy link

the point is you cannot relicense AGPL v3 stuff that is not yours.

True.

And you cannot distinguish Riley's and other's code once you used other's code.

Maybe true, but not relevant.

He could do with his code as he wishes

True.

but he puts a restriction on other's AGPL v3 code.

No. He does not. He clearly says "Delta is under the AGPL, and additionally I give you permission to use the code I wrote under a different license as well". That is perfectly legal and allowed.

@DominusExult
Copy link
Collaborator

DominusExult commented Feb 25, 2025

what you think is irrelevant is what I think is relevant 🤷 - you won't convince me, I won't convince you.

Whatever is true, @rileytestut has chosen not to discuss any of this at all for years now.

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.

3 participants