Giter Site home page Giter Site logo

Comments (9)

schiessle avatar schiessle commented on May 27, 2024 2

I agree with the assessment of @carmenbianca, this is also my understanding.

from android.

carmenbianca avatar carmenbianca commented on May 27, 2024 1

Well, yes and no. After you've removed the last line of code that is GPL-2.0-only, you'd be able to replace all instances of AGPL-3.0-or-later OR GPL-2.0-only with AGPL-3.0-or-later. From that point on, all future code is really truly no longer dual-licensed. Until then, getting rid of GPL-2.0-only seems impossible to me.

But I reiterate that I'm not an expert, neither in licensing compatibility nor in this project.

from android.

AndyScherzinger avatar AndyScherzinger commented on May 27, 2024

Hi @carmenbianca happy for any insights you can provide since i am unsure if it is wrong or how to do it right.
So #4014 isn't of any help actually bit let me try to explain why I chose GPL-2.0-only AND AGPL-3.0-or-later where #4014 does cover it to some extend. So files haven GPL-2.0-only AND AGPL-3.0-or-later have old code from before the fork which by than has been GPLv2-only while any newly added code in that file from that moment onwards is AGPLv3+. So I choose the above licenses with an AND to reflect that.
According to @schiessle this is fine and basically everything is seen as GPLv2-only until no GPLv2-only lines exist in the file and than only GPLv3+ remains.

So yes, both can't be respected at the same time - GPL2-only wins, yet I need to have a way to state new code is AGPL3+. So would you say that this is then an OR which I doubt since that would mean the GPL2-only- licensed code could be AGPL3+ which it can't.

Looking forward to your feedback

from android.

carmenbianca avatar carmenbianca commented on May 27, 2024

Oof, I'm not entirely certain how to convey that information in an SPDX expression. From the perspective of AGPL-3.0-or-later-licensed code, the OR statement makes perfect sense, but not the other way around.

My non-expert analysis would probably be something like this:

A newly created file is licensed AGPL-3.0-or-later. However, because the whole of the program is licensed under GPL-2.0-only (with which AGPL-3.0-or-later is not compatible), it should be licensed AGPL-3.0-or-later OR GPL-2.0-only, allowing the user to 'fall back' to GPL-2.0.

An old file still containing GPL-2.0-only code sometimes also receives new contributions that are licensed AGPL-3.0-or-later OR GPL-2.0-only. However, this license expression is not correct for the entire file. As such, the license expression should be GPL-2.0-only AND (AGPL-3.0-or-later OR GPL-2.0-only). This collapses to GPL-2.0-only, as intended, but communicates additional semantics.

Something like that? I'm not a licensing compatibility expert, mind.

from android.

AndyScherzinger avatar AndyScherzinger commented on May 27, 2024

I also have a hard time wrapping my head around it. Also cause when you reach the point where all lines are AGPLv3+ than we would remove any GPLv2 statements. So if you actively put them in again than you also locked that license into the code base and the goal is to get rid of gpl2-only.

Looping in @schiessle for feedback.

from android.

carmenbianca avatar carmenbianca commented on May 27, 2024

In my reading, there is no way to license any code in this project exclusively AGPL-3.0-or-later if it must also be compatible with existing GPL-2.0-only code.

from android.

AndyScherzinger avatar AndyScherzinger commented on May 27, 2024

I can't tell but I would expect to be able to change a license if all code has been changed. With your argument you would never be able to ever get aways from a GPLv2-only.

from android.

AndyScherzinger avatar AndyScherzinger commented on May 27, 2024

If the later is the case, yes, than that would be a viable option. Getting rid of GPL2-only before that, yes impossible. I just can't say how to best express that in the license expression, but if GPL-2.0-only AND (AGPL-3.0-or-later OR GPL-2.0-only) reflects that than I can jut take care of getting this change in.

from android.

AndyScherzinger avatar AndyScherzinger commented on May 27, 2024

PR to correct the headers based on your feedback: #12951

Again thanks for the explanations and clarifications 🙏 Highly appreciated!

from android.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.