ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Other Software > Developer's Corner

Mixing Code Licences - AKA let's bake a program

(1/1)

Asudem:
Greetings everyone,

I'm here to consult the experts on software licenses to make sure there's nothing conflicting with them. I use libraries/components/objects whatever-you-want-to-call-them that are under various licenses: The LGPL 2.1 license, the Microsoft Public License, and the Apache License Version 2.0. My question is if I can put these together in one program and distribute it?

I've tried deciphering the legalese but all that I ended up getting out of it all was a headache. I don't plan on selling this software either, but I also would prefer not to make it open source as it uses encryption.

Thanks in advance for any help!

Jibz:
Standard disclaimer: I am not a lawyer, and this is not legal advice.

I am quite far from being a license expert, but I have agonized over the various implications of various licenses in the past, so I would like to suggest GNUs comments on licenses, and WikiPedias license compatibility chart.

From these, the MSPL does not appear to be compatible with (L)GPL, and Apache is only compatible with (L)GPL v3+ (you may want to check if the LGPL library is actually "LGPL 2.1", or "LGPL 2.1 or later"). The problem, I think, is than any amalgamation would have to be under the (L)GPLv3+ to accommodate both the LGPL and Apache licensed code, but the MSPL does not allow sublicensing.

Jibz:
I should add this all also depends on what you mean by "put these together in one program" -- if each separately licensed component is .. well .. a separate component, and the main program links dynamically to them, then perhaps it is more likely to be possible.

wraith808:
Don't know myself.  The easiest thing to do would be to take your primary license, see where the inherent incompatibilities lie, then research the others.  For example, if you using MS-Pl it's a copyleft license, so you look for licenses that are not compatible with copyleft.  That is still not comprehensive, but it's a sanity preserving approach.

http://www.gnu.org/licenses/license-list.en.html

https://en.wikipedia.org/wiki/License_compatibility

https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses

http://www.dwheeler.com/essays/floss-license-slide.html

Asudem:
While I'm researching the links above, I'm gonna post the Nuget pages and respective licenses I'm using for reference:

ZedGraph, license. Major component of my software. I don't know if Microsoft Charts or whatever can handle what I'm doing. I'm switching over to Live Charts, which is MIT.
MahApps Metro, license. Visually stimulating. Replaceable with another theme I guess.
HtmlAgilityPack, license. Used for data scraping web pages. Really want to keep this one but can replace if necessary.
MoreLINQ's DistinctBy for C#, license. Pretty darn necessary for filtering data I am manipulating. I'd have a very difficult time without it. Managed to replace this module with a few lines of code!
CryptorEngine, I can't find the actual license for this one, but I see it's widely used. Used in conjunction with other of my own encryption algorithms. Not 100% necessary but I'd prefer having it. Gonna nix this. My own obfuscation of files is enough.

I suppose I could find a different, more WPF friendly chart plotting control with a MSPL license, and do away with CryptorEngine, and HTML Parser here uses the BSD license, so I'm kind of sure that works with the MSPL stuff. SparrowChart seems to be another option as well, and it's also under the MSPL. AngleSharp is another HTML parsing program that has an MIT license! Live Charts also looks very promising with a MIT license!

Looks like I have everything legally meshing with each other now! Hooray!

Navigation

[0] Message Index

Go to full version