www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - copyright - are version(GPL) libs acceptable?

reply Adam D. Ruppe <destructionator gmail.com> writes:
Thinking about third party libraries, some useful libs are under
licenses like the GPL. I'm usually among those who reject them
out of hand for Phobos, since tainting it's copyright is not
acceptable.

But, suppose we wrapped all that in a version(GPL):. If the end
user wants to use that stuff, he has to say

dmd myapp.d -version=GPL

Thus he's the one doing the combining. Yes, dmd.zip includes the
GPL'd header file, but it isn't compiled into Phobos except by the
end user. (then again, does the gpl then viral it's way into dmd.zip
as a whole? I wouldn't consider it a derivative work but I'm no
lawyer.)


I've seen other apps do this kind of thing to avoid their code from
being GPL. If the user does the final linking, it seems ok.


Would it work for D? I'm looking for easy ways to expand the newbie
sense of "batteries included" while leveraging the C interface...
the biggest hurdle to that I believe to be copyright, and if that's
explicit on the user end, I *think* we'd be in the clear.
Jun 08 2011
next sibling parent reply Daniel Gibson <metalcaedes gmail.com> writes:
Am 09.06.2011 05:04, schrieb Adam D. Ruppe:
 Thinking about third party libraries, some useful libs are under
 licenses like the GPL. I'm usually among those who reject them
 out of hand for Phobos, since tainting it's copyright is not
 acceptable.
 
 But, suppose we wrapped all that in a version(GPL):. If the end
 user wants to use that stuff, he has to say
 
 dmd myapp.d -version=GPL
 
 Thus he's the one doing the combining. Yes, dmd.zip includes the
 GPL'd header file, but it isn't compiled into Phobos except by the
 end user. (then again, does the gpl then viral it's way into dmd.zip
 as a whole? I wouldn't consider it a derivative work but I'm no
 lawyer.)
 

I don't think so.
 
 I've seen other apps do this kind of thing to avoid their code from
 being GPL. If the user does the final linking, it seems ok.
 

Dunno.. probably it's ok as long as no binaries are redistributed. I guess in other cases it's more like "if you compile the GPL stuff in the whole code is implicitly GPL". But note that GPL != LGPL and linking (shared) LGPL libraries doesn't go viral on the program that links them. Fortunately most libraries use LGPL and not "normal" GPL.
 
 Would it work for D? I'm looking for easy ways to expand the newbie
 sense of "batteries included" while leveraging the C interface...
 the biggest hurdle to that I believe to be copyright, and if that's
 explicit on the user end, I *think* we'd be in the clear.

Besides legal problems I think including a bunch of 3rd party libs causes some maintaining overhead.. imagine one of the included libs has a critical security vulnerability - you'd have to release an updated dmd distribution.. Maybe(!) it's better to just supply interfaces (which would also prevent legal problems because it's questionable if you can even copyright headers and D ports of them shouldn't be a problem at all) and let the user provide the libraries. On Linux this probably is relatively painless (e.g. let the deb package suggest/recommend the appropriate libs), but I guess on Windows it's not as painless, because the user would have to find and install the libs himself. Dunno about OSX.
Jun 08 2011
next sibling parent Daniel Gibson <metalcaedes gmail.com> writes:
Am 09.06.2011 05:12, schrieb Daniel Gibson:
 Am 09.06.2011 05:04, schrieb Adam D. Ruppe:
 I've seen other apps do this kind of thing to avoid their code from
 being GPL. If the user does the final linking, it seems ok.

Dunno.. probably it's ok as long as no binaries are redistributed. I guess in other cases it's more like "if you compile the GPL stuff in the whole code is implicitly GPL".

Hmm this could be misunderstood. I meant: If you compile the GPL stuff in (or link a GPL, *not* LGPL, lib), you have to redistribute the binary under GPL terms, i.e. you need to provide the source etc. But it doesn't mean that you have to change the license of the other source files to GPL - this may in fact be illegal if you don't own the copyright, but someone else released them under BSD license or something. So if your rip the GPL stuff out afterwards you should still be able to distribute the rest of the code unter whatever license you (or the original author) chose before (like boost for Phobos, BSD license or whatever). This implies that the rest of the code uses a license that's compatible to the GPL - some licenses, like CDDL, are not, even though they're free software licenses. But I'm neither an expert on this nor a lawyer, this is just what I've seen being done in software or read about in articles about licensing issues.
 But note that GPL != LGPL and linking (shared) LGPL libraries doesn't go
 viral on the program that links them. Fortunately most libraries use
 LGPL and not "normal" GPL.
 

Jun 08 2011
prev sibling parent reply Adam Ruppe <destructionator gmail.com> writes:
 Maybe(!) it's better to just supply interfaces

That's all I had in mind - it's just meant to reduce the barrier to entry a little.
Jun 09 2011
parent Daniel Gibson <metalcaedes gmail.com> writes:
Am 09.06.2011 15:03, schrieb Adam Ruppe:
 Maybe(!) it's better to just supply interfaces

That's all I had in mind - it's just meant to reduce the barrier to entry a little.

Ah ok, I thought you wanted to bundle the libs themselves. Just providing the interfaces should be fine, I think - probably even without version(GPL) - because 1. AFAIK the "threshold of originiality" for a Copyright isn't met with just headers/the interfaces (at least in Germany) 2. We wouldn't even use their own headers but newly-written D interfaces that are equivalent to them. Cheers, - Daniel
Jun 09 2011
prev sibling next sibling parent reply David Nadlinger <see klickverbot.at> writes:
On 6/9/11 5:04 AM, Adam D. Ruppe wrote:
 Would it work for D? I'm looking for easy ways to expand the newbie
 sense of "batteries included" while leveraging the C interface...

Just write a nice package manager for D? ;) David
Jun 08 2011
parent Adam Ruppe <destructionator gmail.com> writes:
David Nadlinger wrote:
 Just write a nice package manager for D? ;)

I already did! (a little 100 line program based on the same idea as rdmd, but adding automatic http downloads for missing imports) It does everything I'd want, but not enough for most other people, so I'm looking for a simple step for them.
Jun 09 2011
prev sibling parent Kagamin <spam here.lot> writes:
Adam D. Ruppe Wrote:

 Thus he's the one doing the combining. Yes, dmd.zip includes the
 GPL'd header file, but it isn't compiled into Phobos except by the
 end user. (then again, does the gpl then viral it's way into dmd.zip
 as a whole? I wouldn't consider it a derivative work but I'm no
 lawyer.)

GPL doesn't define the notion of derivation and leaves its interpretation to the lawyer. Though, non-viral derivations are allowed, e.g. if phobos and libmysql are different packages just put into one archive, it's ok. If it's not ok and Oracle asks you to remove the library, it can be easily fixed by removing libmysql because (and if) phobos doesn't depend on it. So generally there's no problem if they're different packages.
Jun 08 2011