There is library OpenCl.NET licensed under Eclipse Public License. I want to fork it to change some errors and add some functionality.
Is it possible to license my changes by Apache 2 license?
Software Engineering Stack Exchange is a question and answer site for professionals, academics, and students working within the systems development life cycle. It only takes a minute to sign up.
Sign up to join this communityThere is library OpenCl.NET licensed under Eclipse Public License. I want to fork it to change some errors and add some functionality.
Is it possible to license my changes by Apache 2 license?
I am not a lawyer. You should get one, if you are concerned about possible legal issues.
The title of questions (‘Can I change license?’) does not match its body (‘Is it possible to license my changes by Apache v2 license?’).
Of course, you can not change the license. Even most permissive free software licenses, such as Expat and 2-clause BSD licenses¹, do not allow changing the license of original code – they only allow sub-licensing, i. e. basically covering it by another less permissive license in addition to original. Eclipse Public License v1.0, does not allow sub-licensing sources under different terms² (so it should be considered copyleft license); and even if it did, ASLv2 is more permissive; thus no, you cannot take OpenCl.NET, modify it, and redistribute it under Apache License.
As for whether it is possible to cover your changes by Apache [Software] License v2, this may be rephrased as ‘Is ASLv2 is compatible with EPLv1?’, and according to EPL FAQ the answer is yes. So yes, you can attach ASLv2 to your changes, and incorporate them into the original library. The result of as a whole might and should be considered as covered by EPL.
However, I do not understand, why you don’t just use the same license as original library does.
¹ Well, there is an ultimately permissive license – WTFPL :-), it do allow changing the license.
² § 3: When the Program is made available in source code form: a) it must be made available under this Agreement...
From the EPLv1.0
- REQUIREMENTS
A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
a) it complies with the terms and conditions of this Agreement; and
b) its license agreement:
i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
When the Program is made available in source code form:
a) it must be made available under this Agreement; and
b) a copy of this Agreement must be included with each copy of the Program.
Contributors may not remove or alter any copyright notices contained within the Program.
So a basic "I AM NOT A LAWYER" interpretation is that you can only distribute the source code under the EPL. Object code can be under a different license under certain conditions.