4 ms·
if I distribute the GPL library (say libreadline) with my app, I'd probably agree with you. If I expect the end user to have libreadline installed on their mac
by compsciphd 6y ago
if I distribute the GPL library (say libreadline) with my app, I'd probably agree with you.
If I expect the end user to have libreadline installed on their machine (from debian / redhat repos, and for argument sake Debian/Red Hat/et al aren't distributing my app), I think I'd disagree. I'm not distributing any GPLd code.
I think its a bit more complicated if Debian/Red Hat are distributing my non GPLd app that links against a GPLd library that they also distribute, but aren't really distributing them together. The reason I say this, is because even though they are "distributing" both "together", we wouldn't say that GPLd code and BSD code that they "distribute" "together" infects the BSD code.
I might also agree that its not exactly the same issue, but I do think it should make one think about it.
- belorn 6y agoIf you explain to a judge the difference between distributing a library and app code to the user, and expecting the user to download the library themselves and then you combine the app-code and the library afterward, will they care or will they see the two methods as being practically identical in terms of forming a single derivative program out of the library and app-code. In the past people argued that streaming could not be copyright infringement since the recipient never received a copy of the movie. Courts however did not see much of an meaningful distinction between streaming a movie and downloading a movie since the experience from the user were close to identical and the perceived impact on the publisher were also identical. During a conference I recall a lawyer explaining that a judge does not like arguments that try to use tricks to walk around laws. It makes the judge look like a fool and that annoys them.
- compsciphd 6y agoexcept in the case of libreadline, its highly likely that any Linux user (i.e. bash depends on it) already has the library on the system. I'm not distributing it. But lets get into the weeds a little. Lets say I am distributing it according to all definitions. I'm allowed to distribute GPLd material. I'm allowed to distribute non GPLd material. I'm allowed to distribute them together even (say a linux CD without the GPL impacting the rest). The question the judge would have to answer, is the non GPLd portion a "derivative work" of the GPLd portion and is that derivative work being distributed. I'm not so clear that this the case unless one really believes that APIs can be copyrighted (then it is clearly the case). As a simple example: lets say we accept that it is a derivative work, but then lets say I made a replacement version of libreadline that was ABI compatible (but not feature complete) with the original one, so hence my program can be dynamically linked against both but it will be a better end user experience if they use the GPL version. To provide a somewhat more concrete thought experiment (concrete as an ABI copatible reimplemntation under a different license, thought as its making up a fact): imagine microsoft dual licensed windows with GPL and not and they believed that if one wanted to ship a non GPL program one had to pay them a license fee to keep the program not GPLd. Now, as wine has implemented the required APIs to run my program, can I ship a non GPLd program where I refuse to license the right to be non GPLd from Microsoft that will still run on Windows? Does it change because wine exists (i.e. the answer would be different if wine didn't exist) and if so why? This case isn't to nitpick how windows is different than libreadline or the like, but just as an example of ABI compatible non feature complete implementations can exist.
- marcosdumay 6y agoI think there were some legal fighting over PHP and the Mysql client over that exact issue. PHP generalized their interface and was deemed not derivative, but I don't know what kind of judgment it got.
- belorn 6y ago> The question the judge would have to answer, is the non GPLd portion a "derivative work" of the GPLd portion and is that derivative work being distributed. Technically the derivative work is the combination of the two, not just the non-GPLd portion. Part of the argument that a lawyer would have to do is to define what "the work" is, and arguing distinction in linking technology might not be that great strategy to an non-technical judge or jury. If you present a video player what people likely will see as the work is the video player, not some independent code, independent glue and 20-30 independent library dependencies. As programmers however we might see things a bit different in the same way a painter will look at paint on a canvas. However I would agree that if there exist multiple interchangeable libraries the argument for two independent work seems to be much stronger. There are for example multiple libc implementations, and for those one could make a case that a program and its libc dependency does not create a derivative work. In practice however I doubt such argument would be much of a benefit in real GPL infringement cases. The wine project has a rather strong fair use clause regardless of the outcome of this court case, since it would be a rather difficult argument for Microsoft to argue that wine has caused considerable commercial damage. Basically every point of fair use is applicable here, from "Purpose and character of the use", "Amount and substantiality", "Effect upon work's value" and additional values like acknowledgement of the copyrighted source (if the API is copyrightable). Wine is a compatibility layer, not an re-implementation. Courts would naturally have to consider if that distinction is relevant but I suspect they would have a much easier time than java on android.
- deleted 6y ago[deleted]
- MereInterest 6y agoI think I'd personally put the line a bit farther. If you distribute libreadline, that would be fine without GPLing the main program. If you make any check to verify that you are running a specific version of libreadline, then that is not fine, because you are preventing me from replacing it with a different version.
- marcosdumay 6y ago> If I expect the end user to have libreadline installed on their machine (from debian / redhat repos, and for argument sake Debian/Red Hat/et al aren't distributing my app), I think I'd disagree. I'm not distributing any GPLd code. Well, IANAL, but I fail to see how you are bound by the GPL in any way on that situation. There used to be a market of proprietary software patches, that fixed stuff the software creator didn't bother changing. AFAIK, nobody ever contested its legality until EULA came and made it illegal to the end-user (instead of the distributor). There is a famous guy who sells proprietary security patches for Linux, isn't there? Your example is much clearer than patches. The situation of RedHat distributing both isn't as clear.