Comments (2)
IANAL, and this is just my understanding. AGPLv3 is essentially GPLv3 with the extra restriction that if you serve it over a network, you have to make the source available. The reason why gore was licensed under AGPL was to not allow someone to use it in for example a SaaS product without sharing the code back to the community.
According to the license, if you use an AGPL library to create a combined work, the combined work must be licensed under AGPL.
With regards to MPL, Mozilla's FAQ for MPL has this Q/A:
Q14: May I combine MPL-licensed code and (L)GPL-licensed code in the same executable program?
Yes, by creating a "Larger Work" under the terms of Section 3.3. In particular, three requirements must be met:The software must not be “Incompatible With Secondary Licenses.” Software can become “Incompatible With Secondary Licenses” in one of two ways: the original author marks it as such by adding the file header in Exhibit B, or the original author published the software under MPL 1.1 and did not dual- or tri-license the code with the (L)GPL.
The Larger Work must be "a combination of Covered Software with a work governed by one or more Secondary Licenses." So you can't just say "I really prefer (L)GPL" - you must have a need to combine with another, existing GPL work. (This is different from a traditional dual-license, which does not require you to combine, and instead allows you to simply say "I've decided to be GPL-only.")
You must "additionally distribute" under (L)GPL. In other words, you must make the MPL-licensed source code available to your recipients under both MPL and (L)GPL. Someone downstream from your recipients can then take under (L)GPL-only or MPL-only. This is different from a traditional dual-license, which never requires publication under both licenses, and so always gives you the option of releasing incompatibly-licensed code.
Which looks like you can use AGPL code in gsv as long as you dual license the source files under MPLv2.0 and AGPLv3. The produced binaries have to be distributed under AGPL. Any derivative work from gsv will also have to be licensed using AGPL, but anyone can take the gsv source files that do not use gore and use them under the MPL license since they will be dual licensed. To make this easier, I would either:
- Put all interaction with gore into one file that can be easily removed.
- Move most of the code into a new library that can be licensed under MPL. Have a "small" repo for gsv that imports the MPL library and gore which is licensed under AGPL.
If you are not planning for gsv to be used in other combined works, the easiest is just to distributed it all under AGPL.
How to go from here, depends what your end goal is.
Does this answer your question?
from gore.
Thanks for your reply, I think it would be a good idea to relicense the code under the AGPL.
from gore.
Related Issues (20)
- String extraction functionality
- MIPS support
- Fix the type parser
- Fix function line logic
- Don't skip built-in packages
- Use semver library for version compare
- panic: runtime error: index out of range [757869355] with length 33282560 HOT 2
- Fix map struct parsing for Go 1.7 to 1.13 HOT 1
- Extract build information if available
- GetTypes panic: runtime error: invalid memory address or nil pointer dereference. HOT 1
- support go1.18 HOT 2
- no pclntab located HOT 1
- GetGoRoot return ErrNoGoRootFound when running on windows
- Replacing extracted information HOT 3
- gosym can provide the wrong address for funcs in cgo go binary HOT 14
- external linked pie elf binary can work without .gopclntab section
- codecov/codecov-action v1 will not work after 2024 Feb 1 HOT 1
- `GoVersionCompare` can provide wrong result
- Generate of moduledata timeout HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gore.