top | item 34776347

Ask HN: Have licenses ever stopped you from combining two FOSS programs?

23 points| josephcsible | 3 years ago | reply

Not all FOSS licenses are compatible with each other. The best-known example is that the CDDL and GPL are incompatible, which is why the mainline Linux kernel doesn't have ZFS. I'm curious how common this actually is, though. Aside from the ZFS-on-Linux case, has anyone else wanted to combine two FOSS programs but been unable to because of a license incompatibility?

27 comments

order
[+] rolenthedeep|3 years ago|reply
A very long time ago I took over a FOSS project under GPL. It had pretty good support for plugins, a lot of demand for plugins, and exactly zero third-party plugins that were even remotely maintained.

I don't think we ever got many direct complaints about GPL, but our main assumption was that copy left contamination was pushing developers away. We wanted more open licensing to encourage wider adoption, so we started a replacement project under MIT license, I believe.

Once the replacement project was in a good state, suddenly plugin developers started crawling out of the woodwork.

My estimation is that about 30% of our trouble was due to licensing concerns, and the rest was down to the original project being in a very, very bad way. It was very old, had been abandoned by six developers, and about 70% of the code was unused and unusable.

The new project had bells and whistles and was more attractive, but I think the open license definitely helped.

You probably could have built a plugin without needing to use the GPL, but it would have been a lot more difficult. That whole project was a disaster, and I never once regretted letting it finally die.

[+] kazinator|3 years ago|reply
I put code under a BSD license, so on many occasions I've been prevented from using GPLed code. BSD and GPL are not incompatible. BSD and GPL pieces can be combined into a single program, while retaining their individual licenses; the problem is that the combination has to be redistributed under the GPL. Compatibility is not the only question, but what kind of compatibility: what must the master license be if the combination is made.

Cygwin changing to the LGPL back in 2016 enabled me to distribute BSD code with Cygwin DLL's without having to GPL the code. When I learned from the Cygwin mailing list about this change, I immediately set to work to create a fork of the Cygwin DLL which provides more native-like behaviors, to be used as run-time library for programs. Had they not announced a licensing change, I'd not have done anything of the sort.

[+] torstenvl|3 years ago|reply
Have you considered releasing your code under both BSD and GPL?
[+] Xylakant|3 years ago|reply
For a long time, Debian/Ubuntu shipped unusable ruby packages due to the ruby/OpenSSL licenses being incompatible.
[+] psacawa|3 years ago|reply
It happens all the time for software that is copyleft-licensed in projects that are unwilling to also adopt a copyleft license. For example, it blocks linking the node interpreter to libreadline [0]. On the other hand, cpython is also permissively licensed, yet it does link to the same library, so who knows what the legality of linking against a GPL lib really is.

[0] https://github.com/nodejs/node/issues/5608

[+] josephcsible|3 years ago|reply
This isn't quite the kind of conflict I meant, since the licenses are compatible and the maintainer just doesn't want to do it.
[+] satvikpendem|3 years ago|reply
If I'm not modifying the source and just using the built application, then I have nothing to worry about regarding mixing programs.
[+] josephcsible|3 years ago|reply
It doesn't matter whether or not you modify the source. The thing that makes you not have to worry about licenses is if you don't distribute the result.
[+] nubinetwork|3 years ago|reply
In the Linux space, it doesn't really bother me... Packages in distros use all kinds of licenses, and as long as you're up front with what you're using and provide the source or license as required.

If "this product is made from a combination of domestic and foreign components" is good enough for physical goods, then it should be good enough for software.

But IANAL. :)