7 ms·
I think there's some confusion in the above post. The relevant "derived work" definition for the purpose of linking isn't one stemming from copyright law, it's
by Borealid 5y ago
I think there's some confusion in the above post.
The relevant "derived work" definition for the purpose of linking isn't one stemming from copyright law, it's the one in the GPL itself. This is because the GPL defines what licensees are permitted to do with the licensed work, and it imposes restrictions on those rights. Copyright law by default lets you make very little use of the software - the GPL broadens that out to include various forms of use, if (and only if) "derived works" fall within its scope.
You could ignore the GPL and static-link a piece of software to a GPLed library, but if you did so, you'd legally need a different right to use the GPLed library, because you hadn't complied with its license terms and so only have your minimal rights to use someone else's intellectual property.
Said differently, the GPL doesn't try to apply itself to "derived works" because of some contralegal dictum they don't have a different creative origin. It merely says "you have two choices - license the things you link with OUR stuff under OUR terms, or you don't have the right to use our stuff".
- jarpadat 5y agoThe main problem with the interpretation that the GPL sets conditions for use of software is that it specifically claims it does not: > Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, Now there are some ways to try to do an end-run around this clause, it does raise some questions about how you get the right to run the program without "this License". But if we take the text seriously, it disclaims any restrictions on use. This is the part where the derivative work standard comes in. Because if the GPL doesn't set conditions on use, your use of the software doesn't require complying with that license. The GPL would only enter in if you are going beyond mere use, e.g. are you making a legal derivative work (not the GPL definition) (Not legal advice.)
- Borealid 5y agoI find it difficult to imagine a situation in which you could use the library without copying the library. How would you obtain the code to execute it? Someone must distribute it to you, and/or you must copy it. Those are the governed actions. EDIT: note that the GPL broadly doesn't impose restrictions on interacting with a program over a network ("using" a server), which is why the AGPL exists.
- chriscappuccio 5y agoIt's ridiculous to expect that you can go after individual users for making single copies while not following your terms. You're going to sue someone for zero damages? For bruising your ego? Good luck with that. For the same reason, an AGPL item could be enforceable, but only if the violator is juicy enough.
- jarpadat 5y agoSo, one answer (not necessarily the right one!) to how you can use software without copying it is that "the license says you can". In other words the license definitely views "running" and "copying" as distinct, regardless of you, me, or federal law. The other, maybe more familiar idea to lawyers, and maybe more plausible to you, is the one in MAI v. Peak, that running is copying by definition. (The argument is based on the idea that running a program copies it into RAM, so we don't even need to talk about how you obtained the software.) The way this shakes out is as follows: a. If running the program is "not covered by this License", then we can stop reading the license and return to copyright law. But copyright law says we need a license to run (that is, to copy, MAI v. Peak) the program, so where do we get it, if not from "this license"? Bit of a puzzler. b. If "running the Program is not restricted", maybe that sentence is by itself some kind of license to "run" the program, even though that contradicts the "not covered" part? If so, we need to understand what the license means by "run" which is evidently something different than "copy". Very probably, what this clause originally meant was that people who think like MAI v. Peak are wrong and nobody should need a license to run software. If so, it's pretty challenging to turn around and argue "just kidding, they do"
- nmz 5y agoIf true then this means before you even download the program you must agree to its license. only then are you allowed to download which in turn copies the program to ram and then to a FS.
- tkw01536 5y agoIn its’ very basic form a license has two distinct purposes: a) limit whatever rights are granted by copyright law b) grant new rights that go beyond copyright law > Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted I don’t see a contradiction here. The first part states that anything being granted by this license (purpose b) only applies to copying and distributing. The second part simply states that no new restrictions (in the sense of purpose a) are made. To be more explicit, the paragraph should be read as: > The act of running the Program is not additionally restricted
- Dylan16807 5y agoI don't see anywhere in the GPL that defines deriving, except the part where it mentions "derivative work under copyright law".
- Borealid 5y agoThe relevant clauses read as follows: b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. [...] These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. The post on which we're commenting says that "derived" comes from copyright law, and not from the text of the GPL, because the GPL cannot supercede copyright law. What I'm pointing out is that's incorrect - the definition of "derived" comes from what the license itself considers derived. This is because the license puts conditions on "derived from" works in the above term. This is true even if the license says "see copyright law for definition of term X". When trying to determine what "derived works" means, the intent of the license is relevant. The license cannot restrict your rights beyond what copyright law allows it to do, but it can grant you additional rights on terms of its own choosing, including very restrictive terms. Importantly for this conversation, something that is derived from "any part" of the program may or may not be a "derived work" of the whole under US copyright law, but may be a "derived work" for the purposes of the above clauses regardless. Plus the latter paragraph has an AND addendum - "AND can be reasonably considered independent and separate works in themselves" - which can restrict beyond the referenced legal definition of "derived".
- zarzavat 5y agoCourts are supposed to balance the bargaining power of the parties when considering the enforceability of terms. So for the GPL which is a boilerplate clickwrap contract where the parties have not necessarily even communicated before, a court may take a narrow interpretation of such terms. So the unsatisfying answer (to programmers) may be: it depends who you are.
- ISO-morphism 5y agoI think there's a misunderstanding here on what "use" means. > You could ignore the GPL and static-link a piece of software to a GPLed library, but if you did so, you'd legally need a different right to use the GPLed library, because you hadn't complied with its license terms and so only have your minimal rights to use someone else's intellectual property. Before we get into anything particular to the GPL, Galoob v. Nintendo established that modifying copyrighted programs for personal use is covered under fair use [1], so you could use, i.e. run, that newly linked program without any regard to license. Even if the GPL could establish such restrictions, I don't think that it would. That seems to run entirely opposite to the spirit of the license. The point of the GPL is to preserve the freedoms of the end user, and freedom 0 is to freedom to run the program [2]. When you link that program and run it, you are the user. The author of the GPL work wants you to be able to run the GPL code "as you wish, for any purpose", and they also want the same freedom to be given to whomever you give that code to. If you give that linked program to someone else, they're the user, you're the distributor. Your freedoms as a user are the same as they've always been, and that user that you gave the code to needs those same freedoms. > Said differently, the GPL doesn't try to apply itself to "derived works" because of some contralegal dictum they don't have a different creative origin. It merely says "you have two choices - license the things you link with OUR stuff under OUR terms, or you don't have the right to use our stuff". You have the right to use the stuff by virtue of freedom 0, literally "the freedom to run the program as you wish, for any purpose". You don't have the right to license "OUR" stuff to other people without also ensuring they have the same freedoms that "we" gave you. See also another commenter discussing freedom vs. power [3]. [1] https://en.wikipedia.org/wiki/Lewis_Galoob_Toys,_Inc._v._Nintendo_of_America,_Inc https://en.wikipedia.org/wiki/Lewis_Galoob_Toys,_Inc._v._Nin.... [2] https://www.gnu.org/philosophy/free-sw.en.html https://www.gnu.org/philosophy/free-sw.en.html [3] https://www.gnu.org/philosophy/freedom-or-power.html https://www.gnu.org/philosophy/freedom-or-power.html EDIT: formatting
- e-dt 5y agoTo those clicking on link [1] and finding it broken: you need to add a full stop at the end, as Hacker News's software has seen fit to exclude it from the link.
- User23 5y ago> Copyright law by default lets you make very little use of the software That’s not what the statutory law says. Once you’ve legally obtained the software you’re free to use it, including specifically the right to make copies for backups and necessary purposes, like copying from disk to memory[1]. Note that the GPL doesn’t attempt to limit how you use the software. The copyleft only matters when you start distributing copies rather than using the one you already have, which is where copyright law matters. [1] https://www.law.cornell.edu/uscode/text/17/117 https://www.law.cornell.edu/uscode/text/17/117
- tsimionescu 5y agoLet's imagine the following scenario. I am creating and distributing a program that, when run on a user's system, will dynamically link with a copy of libc. I am not distributing this copy, but my program will fail to run if no such copy exists. Furthermore, I tell my customers that the only lib C I officially support is FictitiousLibC, released under the full GPL (not the LGPL like the real GNU Libc). The question is now: am I breaking any laws by delivering my program this way? According to the FSF, which believes an explicit linking exception to the GPL is needed - the LGPL - for such uses, then YES, I am breaking the copyright of FictitiousLibC, and so would need a license from FicititiousLibC to be allowed to distribute my code. But, if copyright law actually says "no, your program is NOT a derived work of FictitiousLibC", then the license is not needed. I don't know if this has ever been tested in court, but nothing would stop Congress from explicitly legislating this way and basically removing the difference between GPL and LGPL. For an example of where this sort of logic applies is building programs to be run on an OS. If I build a program that only runs on Windows, but don't include any of Microsoft's code in my program, it is well established that my program is not a derived work of the Windows OS, so I can freely distribute it under any terms I want (not that Windows is special, the same is true of Linux or iOS or any other OS). I am not claiming that running on an OS is the same as dynamically linking with a library, just that in general something can be related to a copyrighted work without becoming a derived work by virtue of copyright law, not license terms. Edit: note that if I want to distribute a bundle of my program + FictitiousLibC, that may infringe on FLC's license even if my program alone wouldn't, as FLC's license's terms of what constitutes a derived work could, in that case, go beyond copyright law definitions, and I would obviously need that license to be allowed to re-distribute FLC.
- belorn 5y agoLet's remove the license and just look at what copyright says in order to understand your example. You have some copyrighted work and you want to make copies, and you do not have a copyright license from the author of said work. It this legal? Answer is mostly going to be no, especially if you are going to sell the copies. Commercially exploiting someones else's copyrighted work without a license is very often illegal. Now let's say you do have a license, and the license is GPL. The license says that you have permission as long you do not combine the library using a linker with other programs that is not GPL. Do you have permission to copy the work if you disregard the conditions of the license? Likely answer: no. Copyright do have a few exceptions. If you bought a copyrighted work like say Microsoft Word, there is an exception that says that you can also make a copy in memory in order to run it. Copyright law in some countries needed to be updated to do this, while in other places it occurred through precedents, but it was something that needed to occur. There might also exist a similar exception for running the program under Microsoft Windows, including using libraries called DLLs. Exceptions to the exclusivity of copyright is sometimes needed in order for the world to make sense. The legal question then that remain is if the situation with FictitiousLibC has such an exception. That is less certain. There might be a copyright law exception, or there might not exist. What do you think?
- Jiro 5y ago>Said differently, the GPL doesn't try to apply itself to "derived works" because of some contralegal dictum they don't have a different creative origin. It merely says "you have two choices - license the things you link with OUR stuff under OUR terms, or you don't have the right to use our stuff". The GPL doesn't restrict use, and says so. When people say that the GPL only lets you use the work under the author's terms, "use" means things that you'd need copyright licenses for. If you aren't creating something that is a derivative work according to the legal definition, you may not be using (in this sense) the author's work at all. This also fails for interpretations like "you can link to GPL_ONLY symbols". This isn't directly written in the license, and any kernel contributor can deny it whenever they want.
- Borealid 5y agoMaking a copy of a copyrighted work (duplication) is one of the fundamental actions that usually requires a license. It is difficult to find a way to take another action with the work without first duplicating it.
- hnfong 5y agoDoes the GPL(v2) actually say you can't static link anywhere in its text? IIRC the static link thing was a FSF interpretation that is not incorporated in the license text. The GPL only stipulates that derivative works must be GPL'd without going into specifics what kind of linking constitutes a derivative work. In case of dispute a court would likely interpret "derivative work" according to standard copyright law (after all it's a legal term) unless there is evidence that the parties intended to use the FSF interpretation.
- butlerm 5y agoStatic linking creates a work that incorporates another work, in a way that does not appear to be mere aggregation and which usually requires at least a modicum of creativity. I imagine end users might statically link things together all day long without getting in much trouble - 17 USC 117 practically exempts that sort of thing. But it seems like it would be pretty dangerous ground for a vendor to distribute a statically linked executable in violation of the license of one of its components in large part because a valid license is necessary to distribute the component in the first place.
- hnfong 5y agoMight be a bit hair splitting (probably appropriate to do so in this context?), but the GPLv2 states that "mere aggregation of another work... does not bring the other work under the scope of this License". But it technically does not imply the converse is true, i.e. if it is not mere aggregation it must be a derivative work. Since "derivative work" does not seem to be clearly defined in GPLv2, I would say it's hard to argue that statically linking creates a "derivative work" in the GPLv2 without showing that this is the general legal position of copyright law as opposed to a specific stipulation in the GPL.
- butlerm 5y agoI think that is correct. "Derivative work" is a legal term in copyright law that the framers of the GPL were wise not to try to redefine in the text of the license. They seem to like the term "derived work", but do not define that either, probably for the same reason. According to the U.S. Copyright Office, copyright only subsists in derivative works as such to the extent they show some independent creativity, which suggests that a non-mere-aggregation that is a mechanical or near mechanical combination of works may not be a legally protected derivative work at all, i.e. may be the sort of work you can prepare without permission from the copyright holder under Section 106 or some other legal allowance. All assuming you own legitimate copies of or have a proper license for the component works, of course.