views:

158

answers:

3

If one is releasing the source only for a 'derived work' under the GPL, is it adequate to release only the code one wrote, or must one include the source for any libraries used. I made some software as a student without understanding the full implications of the GPL (I figured using GPL code was fine so long as my program was noncommercial), and saved the code I wrote, but not the source for the libraries I used on the system on which I ran it. The GPL code I used for was not directly linked to my application, but a program to which my project sent input files and generated scripts. There is a small possibility that I may have modified the source for the GPL'd program when I used it with running my project, but I am not sure about this, and am not sure of the location of the source of the GPL'd program I used at the time.

+1  A: 

If the libraries you used were GPL then technically you must distribute the source for them (if you distribute your program).

It sounds like there may be nothing you can do about whatever you have now. I'd say if your program still generates interest you should try to get it back into a buildable state with whatever libraries are available today then release that version with all the source. I doubt that anyone will take action against you for the honest mistake made in the past, and I think the worst they could do anyway is just get you to stop distributing your program.

Michael Burr
Yeah, I feel that remedying the situation completely would be very difficult for me, and that it is highly unlikely the copyright holders would care since the program, in my opinion, has next to zero value to anyone but me (as I wish to be able to distribute it to employers to verify my experience).
A: 

If you modified GPL code, or included GPL code in your files, you have to distribute the GPLed code along with your project. If you link to someone else's libraries (but didn't rebuild them), you can likely rely on that project distributing the code.

It sounds like your program uses code you found online. In that case, Google is likely your friend here. Search for lines of code (interesting lines of code that include more than one variable name so they are likely unique lines), and see if the code is stored in a repository that Google parses. You might also try Koders and see what it finds.

If your only worried about code YOU wrote, than you own the copyrights and you can change the licensing on future versions of the code at any time. You can't take away people's rights to use your old code under the terms of the GPL, but you are not required to continue to use GPL going forward.

acrosman
I am only releasing code I wrote, but there is a small chance the functioning of the program depends on a modified version of a GPL program. I know I tried messing with the source for the GPL program to fix a bug (I believe unsuccessfully), but I don't think I used that modified version when running the program on my lab computer (I'm not absolutely sure where the modified version is or even if it still exists). I am not a software eng and did test-as-you-go, so it would be very difficult for me to verify that all features worked properly with the unmodified version if I rebuilt the app.
A: 

The GPL requires you to distribute the code when you distribute your application, and your applicaton must be under the GPL. If you don't have the libraries anymore, then it isn't relevant. You didn't distribute them with your modifications, so you have no further obligations under the GPL from the libraries.

Now if your current code is worth something without those libraries then you can distribute your code. If it wasn't built with any GPL code then you probably can distribute it under any license you like. The only thing stopping you would be if you borrowed from the libararies you were looking at while building this. In other words, if you copied and pasted code from a GPL project, then you have to either remove that code, or distribute the whole work according to the conditions of the GPL.

If I understand your question, you used a GPL program as a tool (kind of like GCC) to send input and get output. If the resulting output contains GPL linked software, then you may have GPL issues (as GCC would do if it didn't have a license exception). If, however, the resulting scripts are just the output of the program, like use a GPL'd word processor to print a document, then you should not have any GPL issues with those scripts.

All that being said, if you are planning to do something serious with this code, a conversation with a lawyer would be worthwhile.

Yishai
It seems to me like my program might not be a derived work since it only sends data to the interpreter. The main issue in that case is that I may have used a modified version of the GPL'd interpreter, and that I cannot guarantee the program will work fine with the unmodified version.
From your description, it sounds like you would only have a problem if you were to bundle the interpreter. Whatever modifications you made to it to get your code to run in the interpreter do not, in and of themselves, obligate your interpreted code to the GPL.
Yishai