3 ms·
If I write a program, that launches (the GNU version of) /usr/bin/ls and uses its output, did I just create a derivative work of "ls"? What if I take the sourc
by derekp7 10y ago
If I write a program, that launches (the GNU version of) /usr/bin/ls and uses its output, did I just create a derivative work of "ls"?
What if I take the source code for "ls", turn it into a library, so that I could do the same thing but more directly -- the library is obviously a derivative work, but would my program that calls it also be a derivative? (note, in this case the hypothetical library would be GPL, not LGPL).
And, if I want to link to a GPL (not LGPL) library, if I write a wrapper for it that turns it into a stand-alone executable (sort of like how you can call openssl functions, or you can run the openssl executable passing command line arguments), does one form of calling create a derivative and the other form not?
- pdkl95 10y ago> did I just create a derivative work of "ls"? No, output of a program isn't the program itself, so it doesn't fall under copyright[1]. Why would you expect that it would be a derivative work? It should be obvious that e.g. when gcc outputs a compiled program it doesn't automatically become tied to the GPL. The only exception - which is mentioned[2] in the GPL - is if the output of a GPL licensed program is part of the licensed program. (quines, other rare utilities) 2. Basic Permissions. [...] This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. [...] > would my program that calls [a library derived from GPL licensed program] also be a derivative? Probably[3], but see the FAQ[4] for answers to common situations and a real lawyer for actual legal advice. > does one form of calling create a derivative and the other form not? Correct. They are different. The intent is that the GPL licensed code is still open. Users that receive copies of the new stand-alone executable can exercise their right to examine and modify that code. They can easily replace it with a version they have modified without touching your other programs that merely use the output. [1] https://www.gnu.org/licenses/gpl-faq.html#GPLOutput https://www.gnu.org/licenses/gpl-faq.html#GPLOutput [2] https://www.gnu.org/licenses/gpl-3.0.en.html https://www.gnu.org/licenses/gpl-3.0.en.html [3] https://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL https://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL [4] https://www.gnu.org/licenses/gpl-faq.html https://www.gnu.org/licenses/gpl-faq.html
- derekp7 10y agoI wasn't expecting the output of 'ls' to be covered, however by making my program dependant on calling the 'ls' program, it could be that we now have a combined work of the two. Arguably, this is no different than calling a hypothetical "lib-ls" function, but if "lib-ls" is GPL (not LGPL), then that is usually considered a combined work. My point, however, wasn't these specific scenarios, I was using them as examples as examples in response to the parent's comment inferring that you know exactly what it means. "Consult a lawyer" kind of just reinforces the point. Of course, I do agree that most community licenses such as the GPL are infinitely more readable than most proprietary software licenses.
- kakarot 10y agoDo you consider python scripts invoking libraries derivative works?
- derekp7 10y agoIt can be -- that was part of my point. Good example is the GNU readline library -- this is GPL, not LGPL. So you can't call it without making your work a derivative. Or maybe you can in some cases. Again, it is not really clear by just reading the license (and the license can claim on thing, but the courts may not agree)
- kakarot 10y agoRequiring other people's tools in your build process doesn't necessarily make your tool derivative. Just dependent.