Home | Blog | Software | Reviews and Features | Forum | Help | Donate | About us
topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • December 04, 2016, 06:37:55 PM
  • Proudly celebrating 10 years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Mixing Code Licences - AKA let's bake a program  (Read 883 times)

Asudem

  • Member
  • Joined in 2015
  • **
  • Posts: 100
  • C# data manipulation junkie
    • View Profile
    • Donate to Member
Mixing Code Licences - AKA let's bake a program
« on: December 15, 2015, 09:13:04 AM »
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!
If I do it more than 2 times I want to automate it in C#!

Jibz

  • Developer
  • Joined in 2005
  • ***
  • Posts: 1,126
    • View Profile
    • Donate to Member
Re: Mixing Code Licences - AKA let's bake a program
« Reply #1 on: December 15, 2015, 10:39:34 AM »
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

  • Developer
  • Joined in 2005
  • ***
  • Posts: 1,126
    • View Profile
    • Donate to Member
Re: Mixing Code Licences - AKA let's bake a program
« Reply #2 on: December 15, 2015, 01:12:51 PM »
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

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 8,405
  • "In my dreams, I always do it right."
    • View Profile
    • Donate to Member
Re: Mixing Code Licences - AKA let's bake a program
« Reply #3 on: December 15, 2015, 01:56:44 PM »
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/l...license-list.en.html

https://en.wikipedia...icense_compatibility

https://en.wikipedia...ce_software_licenses

http://www.dwheeler....s-license-slide.html

floss-license-slide-image.png

Asudem

  • Member
  • Joined in 2015
  • **
  • Posts: 100
  • C# data manipulation junkie
    • View Profile
    • Donate to Member
Re: Mixing Code Licences - AKA let's bake a program
« Reply #4 on: December 15, 2015, 04:58:39 PM »
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!
If I do it more than 2 times I want to automate it in C#!
« Last Edit: December 16, 2015, 01:21:22 AM by Asudem »