Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Preamble:

  • If I say "BSD" I mean the 3-Clause BSD license
  • If I say "GPL" I mean the GPLv3 license
  • I am NOT the author of the GPL project
  • I am the author of the BSD project

Simple Task:

I wan't to use a 3rd party software (GPL) in (or better 'with') my open source project (BSD)

Situation:

  • I won't change any of the GPL project code (using it AS IS)
  • I want to use it as kind of a library (i know about LGPL but it's not available)
  • I will use the GPL software as bulk, NOT only parts of the code
  • I will indicate the use of the GPL project with license, homepage and where and why it is used in my BSD project (in readme file)
  • I will not take the credits for the functionality of the GPL project
  • I will take the credits for my project and the "Adapter" connecting my BSD project to the GPL project
  • I don't want to re-license the GPL project as BSD (!)
  • I won't charge any fees or something like that

to gain insight you can find the BSD project at

GitHub: MOC-Framework (see /Extension/FlowPlayer and /Module/Office/Video)

and the GPL project here:

Flowplayer (free flash-version)

Simple Question:

Is this possible?

Closing Words

I found some discussions, stating: "it is possible", others say "no". Most of the "no" was for commercial projects. Most of the "yes" are referring to: "include BSD in GPLv3", but that's not what I mean. I want GPLv3 along with BSD..

I simply can't figure it out.

share|improve this question
    
I found the following statment: GPLv3 adds more clarity with regard to what constitutes a derivative work. For example, GPLv3 states that if the program is "specifically designed" to work with a GPL-governed library, then the library is considered part of the overall work and the entire application is governed by the GPL. However, if one could swap out the GPL library for another library (i.e., if the application wasn't "specifically designed" to work with the GPL library), then it's not part of the overall work and would not be governed by the license. –  DerDu Jun 4 '13 at 11:26
    
See also Can I release a non-free program that's designed to load a GPL-covered plug-in? and substitute in "non-GPL-licensed" for "non-free". –  apsillers Jun 5 '13 at 12:54
    
thx for correcting @Joachim Sauer .. english is not my mother tongue ;-) –  DerDu Jun 12 '13 at 6:32
    
Ok.. long time, but finaly i understood what you'r trying to tell me :-) ... I MAY have my own project completely BSD, IF: i do 3rdParty GPL code as plugin, AND: must not package 3rdParty GPL code (even the plugins) together with my BSD code (e.g. in one git repository), FURTHER: i have to inform the "user" what license is used by what code, AND: make clear, licensing is not conjunctive ... with that in mind i can pick an answer to this question.. but please read the comments and other answers too.. –  DerDu Apr 24 at 7:55

3 Answers 3

up vote 0 down vote accepted

Disclaimer: I'm just a software developer sharing personal opinions and not your lawyer.

Well, I don't know where your problem is, however next to keeping your code under BSD you could also dual-license it under GPL which will help you to keep headaches out on your end if licensing causes you some and you don't want to consult a lawyer on your behalf.

That done you can keep all your code under BSD (next to having it GPL) to also full-fill requirements to distribute GPL'ed parts with it. You can do that by making clear to users who contribute code that they contribute it under both licenses.

That done its clearly your users choice. All you need to do when accepting patches is to take care that the BSD of your library code is preserved.

This would be similarly the situation when the GPL component would not be part of your library and a user would integrate GPL components with it. Because of the BSD, nobody is hindered doing that.

Users who don't want to have a GPL'ed package can just remove any GPL'ed parts and only use the parts under BSD. Just make clear with your dual licensing model is not conjunctive (GPL and BSD) but disjunctive (GPL or BSD) for the files you keep under dual licensing.

This would also help you with the problem offering a software package on Github containing GPL'ed software not under the GPL - which is what I see you right now doing with the Github hosting platform (it has automatic packaging).

share|improve this answer
    
Ok, a dual-license would be an possible option to solve this. But to clarify "packaging GPL'ed software not under the GPL": In GPL v3 it states Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. I would claim that automatic packaging at Github (with GPL as plugin) falls under the terms of aggregate and so i'am only bound to provide the source code for the GPL part and php by nature IS (open-)source code, so distributing my BSD project together with GPL (on the same medium like dvd; zip file in this case) IS granted –  DerDu Jun 12 '13 at 6:27
    
I already tried to explain you that you can not just pick sentences as programmer so to get the results you need. Licensing does not work that way. You can not just claim an aggregate, that's just not the case. You say it your own, you are having it as a plugin, a plugin is not an aggregate, the work part is part of yours. And ZIP file is not a medium (medium is hardware), zip is a software package. But likewise with the other critique you fail to see (and it's your right, that's why I can only suggest you to get legal support your own), Dual-Licensing however is widely accepted to do this. –  hakre Jun 12 '13 at 7:05
    
The next problem you run into is that you offer binary blobs of the GPL'ed software. That means you need to offer source of it as well which you do not do. That's independent to the licensing topic you've raised so far. Better read the whole license of the software you incorporate into your package and check you're doing OK with all terms. –  hakre Jun 12 '13 at 7:09
    
Sorry mate, but i don't offer "binary blobs" - In the context of open source software, a binary blob is a closed source binary-only driver without publicly available source code.. I don't just pick sentences to get the results i need - I quote lines to fortify my understanding of the whole license. Do you know the term "virtual" ? Medium has nothing to do with 'oh i cant touch it it's not physical it dosn't count.. buhuu'. Ever heard of free-space optical communication? It seems to me you just 'forcing' your dual-license solution.. no offence ment but this is not helpful –  DerDu Jun 12 '13 at 8:14
    
To get back to the reasonable objection: a plugin is not an aggregate, Yes. the work part is part of yours, Yes. BUT: the aggregate occurs if you 'zip' them together (packaging) –  DerDu Jun 12 '13 at 8:15

Yes, it's possible to link your BSD project and the GPL project. However, it means you must release the combined version as GPL.

Skim over FSF's GPL compatible licenses and you'll see a range of commentary about how well a particular license can fold into the GPL. And yes, by compatible, what FSF really means is how easily can you combine two works and release the resultant work as a GPL'd work. It's obviously a bit self-serving, but at least you can better understand the ramifications to your project when you combine it with a GPL'd project.

share|improve this answer
    
That's not what I wanted to hear :-) ... however, it's sometimes true and sometimes not because of the "specifically designed" phrase in GPLv3 .. in previous versions of GPL it would be true (BSD+GPL=GPL), but in GPLv3 it's not clear to me.. –  DerDu Jun 4 '13 at 12:12
    
@DerDu: The GPLv3 text does not use the phrase "specifically designed". It uses the phrase "based on", which probably will be satisfied as soon as you use a function or data type that is defined by the GPL code (and not by an independent, external, specification). –  Bart van Ingen Schenau Jun 4 '13 at 14:03
3  
@DerDu - welcome to the viral nature of the GPL. I added an add'l link to provide a bit more background / information about how licenses can fold into the GPL. And yes, that's really your only option regardless of whether you want to hear that or not. :-) –  GlenH7 Jun 5 '13 at 0:20
    
Thank you @GlenH7, i've checked your resource and it consolidates that (License)+GPL=GPL. So it seams to me i have no choice but to sadly drop this GPL extension :-( ... (to Bart) i know the "phrase" is not in there but §2. (Basic Permissions) clause 1 could be interpreted as: if it's not specialy designed for (covered work) so it's not captured by GPL. And thats the tricky part. Is my project covered work? I would say: No it's not (concerning the manner in which the extension is used), but i'm not SURE. :-/ –  DerDu Jun 5 '13 at 6:18
1  
@DerDu: You don't need that workaround and it does not change anything anyway. Distribution in source form is not affected and for distribution of binary form what makes your code a derived work is linking it to the GPL code. If it is linked, it is covered by GPL, if it is not and only runs the GPL code as separate executable, it is not covered. –  Jan Hudec Jun 5 '13 at 7:54

Yes, it is possible with the following implications:

  1. The combined binary is covered by GPL. Only applies if they are statically or dynamically linked together. If your binary just runs the GPL one, it isn't covered. Distribution method does not matter.
  2. You still may distribute your sources under the more permissive BSD license.
  3. A program is not a derived work of a plugin, so if you have a program, that can, optionally, load a plugin and only the plugin uses the GPL code, the main program is not covered by GPL, only the glue that adapts the GPL code to work as plugin is.
share|improve this answer
    
so.. (given that binary executable and php project code means all the same) i got my bsd binary which is executing the gpl binary and provide it's output to the consumer. That would mean: (1) binary just runs the GPL one, it isn't covered , (2) presence of the GPL part is optional (because your able to switch this extension out for another video player if you like), so that (3) i can use BSD even if there is GPL covered 3rd party code in/with my project... is that correct? –  DerDu Jun 5 '13 at 8:16
    
@DerDu: Yes. In this case your code is not covered by GPL. You still have to satisfy GPL for the relevant part if you ship it in any way (including on-demand), but it does not affect your own code. On a side-note, meaning of "linking" is not clearly defined for interpreted languages like PHP, but including it would probably be considered linking. –  Jan Hudec Jun 5 '13 at 11:06

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.