DotNetZip.Semverd
DotNetZip.Semverd copied to clipboard
Consider dual-licensing?
The Ms-Pl is incompatible with many free software licenses, as it imposes a unique restriction:
(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. [...]
Many OSI-approved copyleft licenses require that linking or interacting code must be licensed in a manner that does not further restrict user rights. This conflicts with the Ms-Pl, as it specifically prohibits the right to re-license.
There are many GPL, LGPL, and AGPL-licensed libraries, yet we cannot legally combine these with DotNetZip due to the terms of the Ms-Pl.
Dual-licensing under Apache 2 or MIT would resolve the problem. As GitHub notifies people who are mentioned, re-licensing would involve pasting the list of contributors into this thread and asking for a release of their copyright. Getting approval can take anywhere from a few days to several months, depending upon contributor awareness. We would also need to get approval from @DinoChiesa for the original code on SVN.
Thoughts?
If it helps people, sure. I'm not against it.
It would certainly help me. I have an optional dependency on Ghostscript (GPL), and I also have a dependency on DotNetZip. I can't legally have a published project where both plugins are enabled at the same time, which is quite a PITA - and difficult to communicate to users.
We would need sign-offs from 5 people, plus any side-channel patches that don't have certificates of origin or a CLA. (P.S. https://clahub.com is awesome )
- [x] @haf
- [ ] @DinoChiesa
- [x] @dosomder
- [x] @seth-deja
- [x] @Thieum
Let me know the process, and I have no problem for the sign-off.
I am happy to sign off as well.
Can you please post a suggestion for CLA for this project? CLAHub looks nice, I suppose it integrates with pull requests nicely?
What should the name of the managing organization be? My standard CLA is here, which is based on the Apache Individual Contributor License Agreement.
I've had CLAHub set up for only a day, but it does seem to integrate seamlessly with pull requests.
Also, I've created a pull request to first normalize the LICENSE and NOTICE files (this doesn't change any licensing, just clarifies the status quo).
There is no managing organisation. It's open source and developed free from such constraints. We're in that case the 'organisation' 'DotNetZip'. :)
I think copyright can only be assigned to a person or a legal entity. Since the Apache license grants similar rights as the CLA (although with the restrictions of the Apache license), you might just ask @DinoChiesa, @dosomder, @seth-deja, and @Thieum to make the following statement:
I hereby release all of my contributions to this project under the terms of the Apache 2 license.
Wouldn't it be easier to release all code to the public domain? That means anyone can do anything with it. MIT is similar, but also explicitly says I'm not to blame if anything goes wrong... Using a license like that avoid having to make strange claims about 'assigning copyright'..., right?
There's no internationally consistent concept of public domain :cry: ; nor does MIT address the patent concerns that are particularly important in this type of library. Apache 2 does.
The primary benefits of a CLA would include
- Permit you to instantly relicense under Apache 3, if, for example, a decade from now laws have changed enough that Apache 3 is needed. Without it you'll have to get all contributors to go through this again.
- Instructing contributors that they may need to get their employer's permission to release source code, and explaining those steps.
Question; as you say "copyright can only be assigned to a person or a legal entity", isn't then "I hereby release all of my contributions to this project" a contradiction -- it doesn't specify an object/entity to take that ownership over?
A CLA is written as an inbound license to a managing entity. An outbound license like Apache is granted to everyone. The CLA doesn't grant the public rights, it grants an entity the right to grant the public rights.
So which entity are we?
Well, as a person, you could receive the grant of rights from each contributor. Or, you could ask the .NET foundation to provide that service. Or, you could file for an LLC (usually < $100, depends on your state, very low maintenance). You could even word the CLA to specifically name multiple contributors or maintainers as the recipients, if you want.
I would start with asking contributors for an outbound license, as that's the easiest way. Then, when time permits, you can go back and ask for CLAs and set up clahub or a cla bot.
The only corporate entity noted in the copyrights is Microsoft, in combination with @DinoChiesa. If you get a CLA from them, it will need to be in a different form, specifically the "Software Grant and Corporate Contributor License Agreement", which differs from the "Individual Contributor License Agreement ".
I am fine to sign off aswell.
So just Dino left then.
We can safely merge this, as Dino doesn't respond, imo. We've waited long enough. Can you send the PR?
If we can't get a sign off, I don't think relicensing is possible.
@DinoChiesa Just curious if you would be willing to sign off on a change/shift to dual licensing of the DotNetZip project to Apache or MIT license? All other contributors have already signed off. All that is needed is your agreement posted into this issue and then the relicensing can be done. If you are not on board with the change, would you be willing to make a comment to that effect in this thread as well. That way yea or nay, we can at least close this issue.