2

The title may be wrong. I was looking to clarify some confusions for my PKDSA project on GitHub. There are two licenses that I choose for my project. 90% of the code is actually licensed under AGPL V3 whereas 10% of the code is actually licensed under MIT/ISC license.

If someone actually work on the portions of code that were in MIT/ISC license, I don't think that there'll be issues (correct me if i am wrong).

From what I know, AGPL/GPL actually have certain terms. I have some questions on the terms.

  1. If there's any changes made to the source code that belongs to AGPL, the modifications actually need to be disclosed to all parties who involved. However, if let's say someone uses the code (without modifications), they can either extend or just use as it's (for their own use such as code consumption or mixing their own in house systems with my project), in such a situation, does the developer who create such work consider as "derivative work" or "modification"?
  2. The source code distribution of the AGPL project, can developers just put links or credit to my project or the source code distribution has to be downloaded from my repository and then distribute to the respected parties? Does it need both?
  3. If someone uses the work as it's without any modifications, how does the copyright notices or something similar applies? What are the steps to do such notification or notices?

If someone uses my AGPL code, what could be the things that they need to know? Are there any missing questions that people will raised if they use my AGPL code? Does a mixture of MIT and AGPL license actually allowed?

There may be more questions but for now I can't think of any other questions.

8
  • Does your project result in a single executable? A group of tools all linked by a common back-end library? Several completely unrelated standalone binaries? Some more details, or better still, a link to the project, would be helpful.
    – MadHatter
    Commented Jul 2 at 6:28
  • I have edited the post to include the link. The project was mostly made up from different libraries, it's consider as a suite. AvaloniaUI is MIT licensed, ASodium and BCASodium that was made by me is also MIT licensed. It's a bit messy but it needs the client side code and the server side code to work as a whole. Minor portions of the client side code was considered as MIT/ISC licensed. If this reply was more confusing, do let me know so i can delete it or edit it here.
    – Hern
    Commented Jul 2 at 6:46
  • Your question 3 is a bit confusing. You say "copyright notice" here but if I browse your repo I see a file "License Requirements.md" where it seems like you want to make an additional requirement (to link back to your site if the AGPL code is included in a closed source product). Maybe you could do this if you add this requirement by looking at (A)GPL's "section 7" where it mentions "additional terms". Related: opensource.stackexchange.com/questions/13383/…
    – Brandin
    Commented Jul 2 at 7:19
  • 1
    So it sounds like you should read section 7b and 7c carefully and think about what you want to require. If I read what you wrote right now (please do put a link back to this project) the language is probably too easy to misinterpret as just an optional suggestion rather than as an actual license requirement/condition.
    – Brandin
    Commented Jul 2 at 7:25
  • 1
    In your file "License exclusions.md" it seems like you're describing a lot of types of code modifications which "won't trigger" AGPL. In other words, you want to give permission (Section 7 'additional permissions') to make those kinds of modifications without requiring the developer to release her modifications as normally required by the AGPL. But I'm wondering, if you want to allow so many modifications without releasing the code (if it's just used as web service), what is your reasoning for going through trouble of AGPL at all rather than just good old GPLv3?
    – Brandin
    Commented Jul 2 at 7:31

1 Answer 1

3

Does a mixture of MIT and AGPL license actually allowed?

Yes, it is allowed to have different portions of a repository under different licenses, provided that you can make it clear which license applies to which portion of the repository and that those portions are not derivative works of each other.

You have a clear description of what is under which license in your README.md file, so you are good on that point.


The AGPL is a strong copyleft license. This means that

  • If a binary or a service is in part made up of code under the AGPL license, then the entire binary or service becomes subject to the terms and conditions of the AGPL license.

  • When someone receives a binary, or interacts with a service that is subject to the terms and conditions of the AGPL, then that person has the right to receive all the source code that is needed to rebuild the binary or service exactly. They also get the right to make changes to the code and to re-deploy it with or without changes. That re-deployment is again subject to the terms and conditions of the AGPL license.

  • When someone uses your AGPL code unchanged in their project, they are allowed to link to your GitHub repository as a means to satisfy (part of) the requirement that the source code is made available. This does not work if they deployed a changed version of your code.

If there's any changes made to the source code that belongs to AGPL, the modifications actually need to be disclosed to all parties who involved.

There is no such requirement in the AGPL license. There needs to be a record that changes were made, but the changes do not need to be actively communicated back to the project that you received the code from.

However, if let's say someone uses the code (without modifications), they can either extend or just use as it's (for their own use such as code consumption or mixing their own in house systems with my project), in such a situation, does the developer who create such work consider as "derivative work" or "modification"?

From a legal copyright perspective, there is no difference between "modification" and "derivative work". When a modification is made, that creates a derivative work.

6
  • "There is no such requirement in the AGPL license. There needs to be a record that changes were made, but the changes do not need to be actively communicated back to the project that you received the code from." Let me try in understanding this, let's say A is the original AGPL project, someone created B by changing some parts in A. Inside B, it needs to say which part have been changed in the form of record. So for anyone that receive B, they will receive the source of B along with the changes made? Am I correct on this or?
    – Hern
    Commented Jul 2 at 8:16
  • For the derivative work or modification, it's up to the author to decide whether certain situations count as any of those and use section 7 in AGPL/GPL to actually do the wonders?
    – Hern
    Commented Jul 2 at 8:18
  • @Hern, Project B needs a notice indicating that things were changed from A. The typical notice is adding your own copyright line. If B is hosted in a public repository, then the way to obtain what was changed is to look at the commit history in the repository. Commented Jul 2 at 8:59
  • 1
    Even if no version control is used, we can always use diff and similar tools to see precisely what has changed. This is one of the reasons (A)GPL requires one deliver the source form 'machine-readable'.
    – Brandin
    Commented Jul 2 at 9:11
  • 1
    You need to provide source to any user of project B that requests it, but project A is not a user of project B -- unless the service is accessible to them, then they are free to request the source code as well. There is never a requirement to contact project A, because that would fail the desert island test. Commented Jul 2 at 11:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.