tags:

views:

186

answers:

7

I have a small desktop application that depends on VLC, an application licensed under GPL. It does not link with any VLC libs, but it creates a VLC subprocess and communicates via stdin and stdout streams. My application will be used by a number of customers. It is not going to be a publicly available tool.

What does the GPL require me to do in this situation? Do I need open-source my code for these customers only? Or do I need to make it publicly available for the entire world?

EDIT
A few people mentioned that if I just call a GPL executable without actually linking with GPL code I'm fine. However, I'm no so certain about that after seeing these sources:

I will accept the answer that can clarify this issue for me.

A: 

I am no lawyer but I believe that you can not distribute VLC for money(such as on a CD with your not-free application). If you use any code from VLC then your application must be opensource.

But basically I think you will have to tell your customers "I can not legally distribute VLC with this disk, please obtain it from " Or possibly in your installer just download it from the official site.

Earlz
you can distribute for money - that is not a gpl restriction - but you have to include source and you cannot restrict the receivers rights to further distribute (under the same conditions)
thrope
Further, if the customers can get VLC and it will work with the questioner's code, then VLC and the questioner's software are two programs that work together, and the software is not subject to the GPL.
David Thornley
"I can not legally distribute VLC with this disk, please obtain it from..." that works for some projects, but if you link against it (not just an exec call, etc.) you're required to GPL your source.
Broam
@Broam: I'm not sure that works for any projects. Either it's a separate program, and you're allowed to ship it on a "side by side" basis, or it isn't, and all the code is under the GPL.
David Thornley
You can distribute GPL software on any medium, for any profit mixed with any other software. You must simply provide the same freedoms that _you_ had when working with the software to anyone who receives it.
Tim Post
I'll happily roll you a custom Linux kernel for a few thousand bucks. Once you have it, you are free to share it (and all source code) as you see fit. You just have to make sure anyone who gets my modifications _also_ gets the full source code.
Tim Post
@David Thornley: You are correct.
Broam
+2  A: 

You must pass the source to every customer. Every customer is free to publish the source in any form to anyone.

Aaron Digulla
+9  A: 

This answer does not apply, you are only launching VLC

If all you are doing is launching and distributing VLC, you are only obligated to provide the full (even if modified) source code to VLC to anyone who receives it from you. If you link against (or with) GPL2/GPL3 code, the GPL applies to your entire code base. This is not your case.

Original answer, due to a rather ambiguous question:

Once you distribute it, the GPL applies. If you give it to your wife, the GPL applies. If you give it to your neighbor, the GPL applies. If you give it to your dog .. you might be safe, I doubt that the dog would understand its rights under the GPL.

You are required to give anyone who receives a copy of your program the full source code. If they distribute it, they must give anyone who gets a copy of your program the full source code, as they are the ones distributing it.

You can not tell people to not distribute GPL code. Since your program links against it, its a covered, combined work and the license applies. Don't ask recipients to sign a NDA with additional copying restrictions to receive GPL covered code, if you do, you just lost your right to distribute (or even use) it.

Google readline vs editline to see what I mean :) Or perhaps libreadline vs libedit.

The GPL does not care how many people receive your program. Once it leaves your hands, even to one human being, it applies. I strongly advise you to follow it to the letter, especially when dealing with something like VLC.

The four freedoms that the GPL guarantees depend on access to the source code of covered works. I both agree and disagree with the philosophy behind it, the fact remains is you are bound by the terms of the license.

If you never distribute something .. hack away. Combine incompatible licenses, etc. Less restrictive licenses don't care (i.e. BSD) .. and the GPL cares only once you distribute it.

Again, whoever distributes GPL code is the one responsible for making the source available to whoever receives a copy from them. This is not quite the case with the LGPL .. and the AGPL introduces even more governance. Its left as an exercise to the reader to research the differences.

E-Mail [email protected] with questions like this in the future, they are the custodians of the license. Despite noted political conflicts, they are very friendly and helpful people.

Finally

Sorry to be a little over eager and over zealous, but at least I didn't bring Cthulhu into it :)

Tim Post
A very thorough answer, but you need to underscore that you only have to provide source (or offer to.. yadda yadda) to *those you distribute the program to*. In particular, if you use a modified GPL program and never distribute it, you are never required to tell anyone how you modified it.
Roger Pate
@Roger Pate: Revised
Tim Post
As the question was modified, the code in question is probably not covered. He does still have to provide or make sure that the source for VLC is available if he distributes it though.
Paul McMillan
+1 from me: another question - GPL covers copyright license, so there is no copyright restriction stopping customers from further distributing the code, but I wonder if you could have a contractual agreement that prevents them from doing so (with some penalty clause, or no further support if they distribute).
thrope
@thrope: GPL is based on copyright. The author asserts some rights but permits copying if certain conditions are met. If your company owns the copyright (or the person paying you to code) .. its up to _them_ to meet due diligence under the license. In short, whoever owns it must own up to the terms of the license.
Tim Post
@thrope: Research `copyleft` for more information on how more restrictive licenses rely on copyright.
Tim Post
@thrope distributing GPL code with conditions that try prevent customers from redistributing it is generally frowned upon and gets you very near the provision which strips you of any rights for the GPL'd code. Don't do it.
Paul McMillan
+1 for linking the Cthulhu answer.
Hilton Perantunes
+1  A: 

I think you want to review the GPL FAQ.

In particular, this question/answer may be of interest to you:

Does the GPL require that source code of modified versions be posted to the public?

The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.

mooreds
A: 

Depends on is a bit vague. If you require VLC to be installed on their machine and your program launches VLC you should be okay. If, however, you are using parts of the code, or a modified version of VLC then you will need to release your code as well.

Dolphin
+4  A: 

The answer critically depends on what "depends on" means. If you mean that your code runs as a separate process, and communicates with VLC with sockets or pipes or some other means of interprocess communication, then you are packaging your code with VLC, and there are no restrictions on what you can do that way. If you have actual changes to VLC, or link your code with VLC, then your code is subject to the GPL. Anything between the two is a judgment call.

If your code is subject to the GPL, you can distribute it as you please, but all distribution will be under the GPL's terms. In short, you must either provide source code with the binary or provide a written offer to supply the source, and everybody you distribute to has the same GPL rights that you do. You don't have to make your stuff publicly available, but anybody who gets it from you has the right to do so. You can sell the software, but you cannot forbid anybody else from selling it or giving it away for free.

David Thornley
My code doesn't link with VLC. The app invokes a VLC process and communicates via stdin and stdout streams.
StackedCrooked
Fine. Kicking a process off and communicating by standard IPC techniques, as you say, does not constitute creating a derivative work, and your code does not have to be under the GPL.
David Thornley
A: 

if you program is written completely from scratch and does not re-use code from any other software you're free to license or distribute it however you want (free, paid, closed, open). calling a VLC subprocess is not equivalent to re-using GPL'd code.

ampledata

related questions