LWN: Comments on "Two approaches to tightening restrictions on loadable modules" https://lwn.net/Articles/998221/ This is a special feed containing comments posted to the individual LWN article titled "Two approaches to tightening restrictions on loadable modules". en-us Mon, 21 Apr 2025 06:38:59 +0000 Mon, 21 Apr 2025 06:38:59 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net What is copyright in derived works? https://lwn.net/Articles/1001020/ https://lwn.net/Articles/1001020/ jjs <div class="FormattedComment"> <span class="QuotedText">&gt; As a fan of pTerry, he often did that a lot. To truly understand Maskerade, you need to know Phantom of the Opera. To truly understand Wytches Abroad, you need to know Hamlet. As far as other authors / composers go, West Side Story may be a nice musical, but would you get the deeper meaning without knowing Romeo and Juliet? I love Miss Saigon, but much more is understood when you know Madame Butterfly. Etc etc.</span><br> <p> I'm also aware that Phantom of the Opera, Hamlet, Romeo and Juliet, and Madam Butterfly are out of copyright. You can find legal copies of them on Project Gutenberg. So Pratchet's fine works are NOT violations of copyright for, among other reasons, the fact there's no copyright to violate. It also means the examples don't really throw any light on whether or not his writings would have been copyright violations IF those works were still under copyright. Courts (at least in the US) tend to go with the simplest conclusion to reach, and (traditionally) purposefully did NOT speculate on other reasoning that were irrelevant (i.e. in this case, whether or not it would have been a violation IF the preceding work were copyrighted), in order to avoid setting precedent.<br> <p> <span class="QuotedText">&gt; That's often called FanFic, and/or "Classic Literature".</span><br> <p> And fanfic can certainly be violation of copyright. Try writing a Star Wars novel and publishing it without getting Disney (previously LucasFilms) license. Desilu was very tolerant of fanfic for Star Trek (not certain about current owners). <br> <p> The dividing line between "copyright violation" and "no copyright violation" in derived works (and what constitutes a derived work), from my understanding, is something that's decided on a case by case basis by the courts in the US. <br> <p> Note: IANAL<br> <p> </div> Fri, 06 Dec 2024 01:33:57 +0000 A few questions https://lwn.net/Articles/1000876/ https://lwn.net/Articles/1000876/ corbet So I am not the author of that feature and cannot speak for sure about the motivations behind it. But I don't think it really has anything to do with licensing; it's basic information hiding. <p> Even within the monolithic kernel, different subsystems hide much of their data internally; that's just basic good development practice. Exporting a symbol is the opposite of that — it makes the symbol to everybody who is able to link to it. That is not great when the symbol is really only being exported for one special consumer (KVM, say) that needs access to it. Strict namespaces allow that sort of targeted export without making a symbol globally available. <p> And yes, this is a feature for in-tree modules. The kernel does not add features for out-of-tree modules; <i>any</i> export has to have an in-tree user. A single-user export for an out-of-tree user is not going to happen. Thu, 05 Dec 2024 14:56:37 +0000 A few questions https://lwn.net/Articles/1000795/ https://lwn.net/Articles/1000795/ callegar <div class="FormattedComment"> Out of curiosity, a few questions from a non-expert. <br> <p> Restricted namespaces looks like a GPL2 library that exposes an API yet explicitly introducing a restriction for other GPL2 code to use it, namely the other code must have a certain name. What strikes is that it seems unusual to make it artificially difficult to combine different pieces of free software carrying the same licence. Are there other established examples?<br> <p> In fact, the restriction, seems to be something to differentiate the GPL API for "in tree" modules wrt "out of tree modules", because the restricted namespace seem only manageable for the modules that are developed in strict coordination with the rest of the kernel. In fact, even small actions like renaming a module, or making a similar module for a slightly different case requires changing the module-names to which the kernel API is exported from the kernel side.<br> <p> Where exactly does the need for this restriction come from? Is it because without it is practically impossible to enforce that out of tree modules only use the GPL API? Is it to prevent external modules from using the whole of the GPL API, since the kernel developers need freedom to change some parts of it? Wouldn't a 2-class distinction in between an in-tree GPL API and an out-of-tree one (which could be also intended as an "unstable" and "stable" one) suffice for this while being simpler? Couldn't the proposed solution be an encouragement for out-of-tree modules to "steal" the names of internal ones? Namely, in some out-of-tree module you want to use an API piece that is only exported for module "foo". You make a module named "foo" that provides the original functionality of "foo" plus yours and you arrange your installer so that it overwrites the original module...<br> <p> <p> </div> Thu, 05 Dec 2024 09:57:56 +0000 Companies are made of humans https://lwn.net/Articles/999513/ https://lwn.net/Articles/999513/ LtWorf <div class="FormattedComment"> Putting aside the problem of money, talking to a lawyer means that in the best case you'll have to put on hold whatever you're doing for several months at the very least, or a year or more probably, because they are that slow.<br> </div> Mon, 25 Nov 2024 10:49:43 +0000 Companies are made of humans https://lwn.net/Articles/998955/ https://lwn.net/Articles/998955/ ukleinek <div class="FormattedComment"> <span class="QuotedText">&gt; In this case, I think it may even have been the case that the GPLv3</span><br> <span class="QuotedText">&gt; licensing was done BOTH 1) to control upstreaming and 2) in the</span><br> <span class="QuotedText">&gt; mistaken belief that it is legally and culturally/ethically acceptable—as</span><br> <span class="QuotedText">&gt; ridiculous as that may sound to us who are too deep in these things.</span><br> <p> Yes, initially I didn't consider 2). If I had, I would have approached the issue in a slower way.<br> <p> In retrospect I'm happy that Werner now managed to completely relicense the Tuxedo driver package to GPLv2+ and my suggested patch won't need to be applied.<br> <p> Uwe<br> </div> Thu, 21 Nov 2024 15:04:27 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998864/ https://lwn.net/Articles/998864/ Wol <div class="FormattedComment"> I thought that was the excuse touted in the US? aiui everyone here just treated eulas as unenforceable because they're contracts of adhesion. (The problem comes when they come with technological enforcement measures.)<br> <p> I would have thought the reason everyone trying it in the UK settled before the case went anywhere, would be because the victim screamed "Scam!" and plaintiff decided discretion was the better part of valour.<br> <p> As a private individual, I'd demand my money back under SOGA, and while that doesn't apply to businesses I can't imagine a judge looking favourably upon similar shenanigans against a business.<br> <p> Cheers,<br> Wol<br> </div> Wed, 20 Nov 2024 15:41:48 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998834/ https://lwn.net/Articles/998834/ nix <div class="FormattedComment"> I was actually getting it mixed up with other parts of the US legal code (particularly financial regulation), which very much do the "insane complexity and nail down every tiny rule". Too tired, shouldn't have been posting...<br> </div> Wed, 20 Nov 2024 12:28:34 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998833/ https://lwn.net/Articles/998833/ nix <div class="FormattedComment"> Yep. There's nothing wrong with a license granting exceptions *if* it turns out to cover something. What it can't do is *control* what it covers: it covers derived works, it cannot control whether a work is considered derived, and that's that.<br> </div> Wed, 20 Nov 2024 12:27:22 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998832/ https://lwn.net/Articles/998832/ nix <div class="FormattedComment"> Not necessarily. The need for a license to copy into RAM to execute code is the justification given for EULAs being legal in the UK, though I note that everyone trying such an argument has settled out of court before the case actually got anywhere, which suggests they haven't got much confidence in it.<br> </div> Wed, 20 Nov 2024 12:26:01 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998831/ https://lwn.net/Articles/998831/ nix <div class="FormattedComment"> <span class="QuotedText">&gt; Any sentence starting with "I would guess" will cause corporate lawyers to run screaming in the other direction.</span><br> <p> *I* would guess because I'm not psychic nor a lawyer and I'm not writing for corporate lawyers (unless in fact this is a forum full of corporate lawyers and I never noticed).<br> </div> Wed, 20 Nov 2024 12:24:05 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998830/ https://lwn.net/Articles/998830/ Wol <div class="FormattedComment"> I suspect, though, if a vendor pulled that sort of stunt in the UK/EU, they are opening themselves up to the offences of "not fit for purpose" and/or "obtaining money through fraud or deception".<br> <p> I can't imagine an individual suing, but Trading Standards would certainly be interested ... selling software would pretty much certainly include an implied licence to be able to use it, no?<br> <p> Cheers,<br> Wol<br> </div> Wed, 20 Nov 2024 12:20:44 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998829/ https://lwn.net/Articles/998829/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; I would guess an assumption that purely local stuff doesn't count as distribution or copying, and thus the license never kicks in anyway. This is, of course, not true in jurisdictions such as the UK, where *all* copies require licensing, even temporary copies in memory, and there is no concept of fair use</span><br> <p> Note that the GPL explicitly covers this - that section 2 I quoted gives the *end user* a licence to do whatever they like. So the GPL at least, *does* kick in - it says "you can ignore me and do what you like". (Until you try to "convey propagate or distribute" ...)<br> <p> Cheers,<br> Wol<br> </div> Wed, 20 Nov 2024 12:14:40 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998818/ https://lwn.net/Articles/998818/ NYKevin <div class="FormattedComment"> <span class="QuotedText">&gt; I would guess an assumption that purely local stuff doesn't count as distribution or copying, and thus the license never kicks in anyway.</span><br> <p> Any sentence starting with "I would guess" will cause corporate lawyers to run screaming in the other direction. They don't want to guess. They want the license to make specific assurances.<br> <p> As far as US law is concerned, there's nothing in the law that gives a blanket exemption for distribution or copying. But it's worse than that. 17 USC 117 contains a set of narrow exceptions for:<br> <p> * Copying a binary into RAM in order to execute it.<br> * Making backup copies of software for archival purposes.<br> * Making copies of software "for purposes only of maintenance or repair [of the computer]." The statute does give somewhat vague definitions for those terms, and by my reading, they probably cover things like restoring from backup, reinstalling broken software, defragmenting your hard drive, etc.<br> <p> If you need a specific exception in the law for activities as benign as all those, it is obvious that you also need an exception for any other purely local copying (which does not otherwise fall within the scope of an exception).<br> </div> Wed, 20 Nov 2024 02:22:56 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998817/ https://lwn.net/Articles/998817/ NYKevin <div class="FormattedComment"> <span class="QuotedText">&gt; US law is much more about fiddly nailing-down-of-tiny-details, where UK law goes in for broad swaths and letting courts decide the fine details in ways that make sense at the time, and then letting precedent force consistency in future.</span><br> <p> You're thinking of European law. US (statutory) law absolutely does not nail down the fiddly little details of derivative works, it just gives a one-paragraph definition and lets the courts work it out:<br> <p> <span class="QuotedText">&gt; A “derivative work” is a work based upon one or more preexisting works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a “derivative work”.</span><br> <p> (17 USC 101)<br> </div> Wed, 20 Nov 2024 02:15:42 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998802/ https://lwn.net/Articles/998802/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; You seem to think that "derivative work" and whether something is a derivative work of something else is defined by the license. It's not: that would be an easy get-out and would make copyright licenses useless. Licenses cannot decree such things.</span><br> <p> Where did I say (or even imply) that? What is a derivative work is, as you say, a matter of (vague) law.<br> <p> Go back to what I *did* say - that "dynamic linking can NOT be a GPL copyright violation, because the GPL *explicitly* permits it" (unless someone can come up with a scenario where the linking does not happen on the end user's machine - I can't!).<br> <p> Distributing a program that abuses a GPL API can be a copyright violation, but that's not down to the end user, and that's not dynamic linking, and it's not a violation if the "abuser" does it on their own machine ...<br> <p> Cheers,<br> Wol<br> </div> Tue, 19 Nov 2024 22:21:09 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998796/ https://lwn.net/Articles/998796/ nix <div class="FormattedComment"> You seem to think that "derivative work" and whether something is a derivative work of something else is defined by the license. It's not: that would be an easy get-out and would make copyright licenses useless. Licenses cannot decree such things.<br> <p> It's defined by the law, and more generally defined by courts when cases go to court: a license only says what happens if something *has been decided to be* a derivative work of something covered by that license. (In the UK it is almost entirely defined by reference to precedent: Parliament hasn't ruled on this stuff much. In the US I believe things are quite different: US law is much more about fiddly nailing-down-of-tiny-details, where UK law goes in for broad swaths and letting courts decide the fine details in ways that make sense at the time, and then letting precedent force consistency in future.)<br> </div> Tue, 19 Nov 2024 21:35:01 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998795/ https://lwn.net/Articles/998795/ nix <div class="FormattedComment"> <span class="QuotedText">&gt; The license does not *say* that there is an exception for local debugging and experimentation</span><br> <p> I would guess an assumption that purely local stuff doesn't count as distribution or copying, and thus the license never kicks in anyway. This is, of course, not true in jurisdictions such as the UK, where *all* copies require licensing, even temporary copies in memory, and there is no concept of fair use -- but I think it safe to say that this sort of stuff is utter nonsense that is impossible to comply with, and can and must be ignored, given that questions have been asked in Parliament back in the 2000s to find out how many MPs had committed an act of copyright violation on account of such terms within the last week without realising it (I think at the time it was through using an iPod and/or mobile phone music playback?) and, yes, a great many of them had, including many members of the then cabinet. (Of course, nothing was done.)<br> </div> Tue, 19 Nov 2024 21:31:11 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998651/ https://lwn.net/Articles/998651/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; &gt; that linking is still done by the END USER</span><br> <p> <span class="QuotedText">&gt; This is irrelevant. </span><br> <p> It's actually very relevant. It means dynamic linking *itself* CANNOT be a copyright infringement.<br> <p> <span class="QuotedText">&gt; You can not distribute a sequel to someone else's book, because it's a derivative work. What makes code legally a derivative work of other code? There hasn't been a lot of case law about it, but I'd certainly argue that new code that intricately connects to data structures and functions in old code, in a way that's very distinctive, would be a derivative work. </span><br> <p> And THIS is the point. Is your work a derivative of the other work! Nothing to do with dynamic linking at all!<br> <p> Or are we both arguing the same thing without realising it?<br> <p> Cheers,<br> Wol<br> </div> Tue, 19 Nov 2024 09:23:43 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998638/ https://lwn.net/Articles/998638/ dvdeug <div class="FormattedComment"> They're could be brought in-tree, unlike proprietary modules. There's out of tree kernel patches; that doesn't mean everything they use is external API. And many Linux systems run many modules built from the kernel source, not as external programs attached to an external API, but as kernel functionality it's useful to load only in certain cases. <br> <p> I think the the court would at least acknowledge that there was an API for everyone and certain symbols that were only designed to be accessible to modules that could be part of the kernel.<br> </div> Tue, 19 Nov 2024 01:32:42 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998628/ https://lwn.net/Articles/998628/ dvdeug <div class="FormattedComment"> <span class="QuotedText">&gt; that linking is still done by the END USER</span><br> <p> This is irrelevant. You can not distribute a sequel to someone else's book, because it's a derivative work. What makes code legally a derivative work of other code? There hasn't been a lot of case law about it, but I'd certainly argue that new code that intricately connects to data structures and functions in old code, in a way that's very distinctive, would be a derivative work. <br> <p> <span class="QuotedText">&gt; As far as I'm concerned, it is. If I GPL my code, downstream cannot distribute it as object without binary, but if their code calls mine, they can use any licence they like ... BECAUSE it's the end user that does the act of linking!</span><br> <p> But that's your code. The idea that proprietary software does and can block any such thing, often going to the extents of having end users sign huge EULAs, but free software can't restrict itself being used as part of another non-free program.<br> </div> Tue, 19 Nov 2024 01:25:38 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998632/ https://lwn.net/Articles/998632/ NYKevin <div class="FormattedComment"> <span class="QuotedText">&gt; If I write a work of fiction, which builds on a universe you created in a work of fiction you wrote, such that to properly understand my work of fiction the reader really needs to have read your work of fiction so as to understand the characters, may I distribute my work of fiction without any regard for your copyright in your work of fiction? (I never distribute your work, and the "combination" of my work with yours only ever happens "dynamically" at "readtime" in the readers head).</span><br> <p> This has been a serious point of controversy for at least as long as the internet has existed. You can find threads on early Usenet filled with professional and amateur authors debating this very topic. Much like the case of dynamic linking, there has as of yet been no case law. Unlike the dynamic linking case:<br> <p> * There have been a few close calls, with the closest probably being The Wind Done Gone by Alice Randall. In the case regarding that book, the Eleventh Circuit found that the publisher of Gone With the Wind was not entitled to a preliminary injunction because a fair use defense likely applied, and the parties then settled out of court.<br> * A non-profit, The Organization for Transformative Works, exists, hosts a significant amount of fan fiction on the internet, retains lawyers, and is prepared to defend themselves in court if anyone ever sues them.<br> * In practice, nobody wants to sue the OTW because litigation is expensive, it might establish a precedent in favor of fan fiction, and it would generate a lot of negative press in the short term. Also, really egregious cases (where fair use is unlikely to work, such as when large amounts of text are copied verbatim) can be handled much more efficiently through the usual DMCA process instead of a lawsuit.<br> </div> Tue, 19 Nov 2024 00:43:10 +0000 GPL-2.0-or-later ? https://lwn.net/Articles/998633/ https://lwn.net/Articles/998633/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; GPL-2.0-or-later modules are not compatible with GPL-2.0-only.</span><br> <p> ???<br> <p> "2.0 or later" means the distributor can choose which licence to use. Which means they can distribute the kernel under 2.0, AND THEY CAN DISTRIBUTE THAT MODULE UNDER 2.0.<br> <p> To be even more pedantic, they can NOT distribute that module under "2.0 or later" because that is not a licence!<br> <p> <span class="QuotedText">&gt; or be relicensed to GPL-2.0-only.</span><br> <p> And no, that module can't (in all likelihood) be relicenced. Under normal circumstances (true of pretty much EVERY Free licence), the only person who can relicence code is the person who owns the copyright.<br> <p> Copyright 101 - in order to copy and distribute code, you need a licence.<br> The "or later" wording is NOT a licence, it gives you permission to choose which licence YOU want to use.<br> When you distribute code from multiple owners in a "combined work", they must have given you compatible licences.<br> "GPL2 or later" gives you a GPL2 licence should you wish to use that licence.<br> GPL2 is compatible with GPL2, therefore you can distribute "GPL2 or later" code with GPL2 code, because YOU are using (legally) the same licence to distribute both codebases.<br> <p> Cheers,<br> Wol<br> </div> Tue, 19 Nov 2024 00:41:49 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998630/ https://lwn.net/Articles/998630/ NYKevin <div class="FormattedComment"> <span class="QuotedText">&gt; who aren't per se fans of the GPL, and do not really have an interest (as a corporate overall) to argue for the GPL being super strong.</span><br> <p> While the corporation's overall interest may prefer a weak GPL, the interests of the corporate lawyers are much more straightforward: "don't get sued." This is also why big companies (such as my employer[1]) dislike the AGPL: They feel that the uncertainty around the license's boundaries is not worth any potential upside in terms of available software. While I have read and sympathize with Drew DeVault's response[2] to this, the reality is that lawyers are in the business of risk mitigation, not FOSS maximalism. If there is any reasonable likelihood that the license can be interpreted in a given way, the lawyers have to consider the possible consequences of that interpretation.<br> <p> I also feel obligated to point out that, on a completely literal reading of AGPL 3.0 §13, you can violate the license just by writing code that the license disagrees with ("[...] if you modify the Program, your modified version must [...]"), even if that code is never compiled or executed. I find it difficult to imagine how a large tech company is supposed to comply with that extremely strict interpretation of the license, unless we're to presume the company exercises pervasive oversight over every single version of the code that is ever created for any purpose, including local debugging and experimentation. Drew would presumably argue that I'm being unfair and overly literal, but again this is a case of risk mitigation. The license does not *say* that there is an exception for local debugging and experimentation, nor an exception for code that is never exposed to external users, so as far as these lawyers are concerned, an unmentioned exception is no exception at all.<br> <p> [1]: <a href="https://opensource.google/documentation/reference/using/agpl-policy">https://opensource.google/documentation/reference/using/a...</a><br> [2]: <a href="https://drewdevault.com/2020/07/27/Anti-AGPL-propaganda.html">https://drewdevault.com/2020/07/27/Anti-AGPL-propaganda.html</a><br> </div> Tue, 19 Nov 2024 00:05:11 +0000 GPL-2.0-or-later ? https://lwn.net/Articles/998629/ https://lwn.net/Articles/998629/ rhbvkleef <div class="FormattedComment"> GPL-2.0-or-later modules are not compatible with GPL-2.0-only. Strictly (and practically speaking) those must stop using GPL symbols or be relicensed to GPL-2.0-only. That makes the current MODULE_LICENSE("GPL") even more aggregeous.<br> </div> Mon, 18 Nov 2024 23:23:39 +0000 GPL-2.0-or-later ? https://lwn.net/Articles/998622/ https://lwn.net/Articles/998622/ andy_shev <div class="FormattedComment"> And what to do with the modules that are using GPL-2.0-only symbols, but being licensed as GPL-2.0-or-later? Can GPL-3.0-or-later module use the symbols exported by those drivers?<br> </div> Mon, 18 Nov 2024 20:32:26 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998605/ https://lwn.net/Articles/998605/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; If I write a work of fiction, which builds on a universe you created in a work of fiction you wrote, such that to properly understand my work of fiction the reader really needs to have read your work of fiction so as to understand the characters, may I distribute my work of fiction without any regard for your copyright in your work of fiction? (I never distribute your work, and the "combination" of my work with yours only ever happens "dynamically" at "readtime" in the readers head).</span><br> <p> That's often called FanFic, and/or "Classic Literature".<br> <p> As a fan of pTerry, he often did that a lot. To truly understand Maskerade, you need to know Phantom of the Opera. To truly understand Wytches Abroad, you need to know Hamlet. As far as other authors / composers go, West Side Story may be a nice musical, but would you get the deeper meaning without knowing Romeo and Juliet? I love Miss Saigon, but much more is understood when you know Madame Butterfly. Etc etc.<br> <p> The problem is, the answer is always "it depends". And it always helps to show that the work you depend on, itself depends on even deeper works. Both Hogwarts and Unseen University have a heavy dependence on works like the "Billy Bunter" books, and Greyfriars, and stuff like that. And as Ecclesiastes says, "there is nothing new under the sun", it shouldn't be that hard quite often to come up with evidence that copyright in stories isn't as obvious as people like to pretend ...<br> <p> So why should programming be any different?<br> <p> Cheers,<br> Wol<br> </div> Mon, 18 Nov 2024 16:43:21 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998512/ https://lwn.net/Articles/998512/ pizza <div class="FormattedComment"> <span class="QuotedText">&gt; ignoring entirely the matter of compilation and whether copyright vests in API definitions</span><br> <p> Unfortunately, in the US, "API definitions" are copyrightable. Use of them _may_ be considered fair use though.<br> <p> (Thanks, Oracle...)<br> </div> Mon, 18 Nov 2024 12:39:28 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998511/ https://lwn.net/Articles/998511/ paulj <div class="FormattedComment"> <span class="QuotedText">&gt; Dynamic linking occurs when you run the program! The GPL gives you "unlimited permission" to run the program!</span><br> <p> If I write a work of fiction, which builds on a universe you created in a work of fiction you wrote, such that to properly understand my work of fiction the reader really needs to have read your work of fiction so as to understand the characters, may I distribute my work of fiction without any regard for your copyright in your work of fiction? (I never distribute your work, and the "combination" of my work with yours only ever happens "dynamically" at "readtime" in the readers head).<br> <p> If I write a programme, that builds on a body of code you created, such that to understand the function of my programme, the programmer needs to understand the basic, visible function of the code underlying whatever APIs it exposes; and such that the computer in order to be able to interpret my code and make my code function needs to also have your code present, may I distribute my work without any refgard for your copyright in your work? (I never distributed your work, and the combination of my work with yours only ever happens dynamically at runtime - ignoring entirely the matter of compilation and whether copyright vests in API definitions).<br> <p> ?<br> <p> <p> </div> Mon, 18 Nov 2024 12:34:32 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998509/ https://lwn.net/Articles/998509/ paulj <div class="FormattedComment"> <span class="QuotedText">&gt; I'm not the only one who's skeptical of the FSF interpretation of the GPL as it applies to dynamic linking. In particular, the idea that merely linking to code makes it a derivative work seems unlikely, especially if there's a GPL interposer between the GPL component being called and non-GPL loadable code.</span><br> <p> The most comprehensible "rule of thumb" I have heard, from corporate lawyers advising engineering on how to approach things and use to know whether there was some legal issue that could cause problems, was if one work depended /specifically/ on another for its function or meaning. If that was the case, and there was any grey area / question at all on the licence compatibility, then it was definitely a problem for legal.<br> <p> How well that rule of thumb is in actually deciding, I don't know. As per another comment, I've heard different things from different lawyers about linking proprietary works to GPL libraries. There doesn't seem to be a clear consensus amongst lawyers. Which suggests there is a lack of case law. <br> </div> Mon, 18 Nov 2024 12:26:36 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998508/ https://lwn.net/Articles/998508/ paulj <div class="FormattedComment"> <span class="QuotedText">&gt; that the two are combined into a single ELF file is irrelevant.</span><br> <p> I think this statement is largely correct, but not for the reason you think it is.<br> <p> I've heard different things from different lawyers, but the one thing I do not hear from them is any kind of reasoning that rests on the technical details of how two works are "linked". The opinions rest on legal details and interpretations. Approaching these questions like a programmer, where you think that some programmer meaningful boundary must of itself be meaningful to lawyers is... not at all safe. The lawyers do not care a jot.<br> <p> <span class="QuotedText">&gt; I have a hard time seeing how the FSF maximalist interpretation can be correct.</span><br> <p> Here's another funny thing, the most "maximalist" interpretations I've heard from lawyers, are from corporate counsel at large tech companies - who aren't per se fans of the GPL, and do not really have an interest (as a corporate overall) to argue for the GPL being super strong. This is why the large corporates I'm familiar with generally have very strict rules on avoiding incorporating GPL code into their code-bases - and/or quite extensive review processes to get permission to use GPL code. You can see this in the behaviour in a number of large tech corporates, where they have rewritten functionality so as to be able to remove GPL code.<br> <p> Conversely, some of the /least/ maximalist interpretations I have heard argued, have been from lawyers firmly in the Free Software world. Including very well-known ones. <br> </div> Mon, 18 Nov 2024 12:18:52 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998489/ https://lwn.net/Articles/998489/ khim <font class="QuotedText">&gt; At what point exactly does mere linking have legal significance?</font> <p>When you are distribution something which includes <b>both</b> GPL code and non-GPL code.</p> <p>I <b>still</b> couldn't understand why people are discussing ununteresing and entirely irrelevant case where non-GPL code is distribution without GPL code. It's your you code, it can be distributed on any terms that you may ever invent. As long as nVidia drivers are distributed as something that is not compiled and they are not distributed together with Linux kernel, itself – there are no issues.</p> <p>But when you distribute them together… it's different story</p> <p>Why does it even matter? Because <b>copyright was originally developed for books</b>. And if you plan to distribute two works from two different authors you need permissions from all <b>three</b> entities: Alice, Bob, and Carol (anthology compiler: yes, Carol gets separate copyright and can write separate license, too).</p> <p>Now, if Alice doesn't want to say something secret to Bob (as she usually does), but, surprisingly, doesn't even want to be publishing under the same cover as Bob (because they had huge fight and don't want to see each other ever again)… then Carol couldn't publish such book if licenses that Alice and Bob have given Carol are precisely such license that demands that they would be only ever published in separate books.</p> <p>And <b>that</b> is where linking (static or dynamic) becomes important: GPL is designed to disallow proprietary extensions and demands that if you want something then the whole work should be licensed on GPLv2 terms: <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">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.</a></p> <p>As you can see that question that Wol wants to be bright-lined… it's already answered by GPL itself: MIT Julia REPL module, proprietary nVidia module, ZFS with it's anything-by-GPL license… as long as they are distributed without GPL components… GPL gives them quite <b>explicit</b> right to use some other license. It would have, probably, been illegal for GPL to try to restrict such distribution – but it doesn't even try: if you are distributing something that can be used with GPLed component but doesn't include that GPLed component… it's all fair game and you can use anything you want.</p> <font class="QuotedText">&gt; When I distribute the resulting binary, I'm independently distributing my own code (which I have the right to do) and distributing the GPLed library (which I have the right to do), and that the two are combined into a single ELF file is irrelevant.</font> <p>You only have the right to distribute GPL library if you provide source for “the whole work” on the GPL-compatible terms.</p> <p>Which, of course, immediately raises the question of what <b>is</b> “the whole work”. Stallman famously made Steve Jobs to do that with NEXT Objective C compiler. And there were other similar cases. Nothing ever reached the court, but I don't think anyone would say that these two pieces are not parts “of the whole work” is they are mixed together so tightly that it's essentially impossible to pry them apart.</p> <p>Static linking is <b>explicitly</b> a tool that creates one, single, “whole work” from independent components, you would have to argue that people that invented it were idiots, to claim that what you are distributing is not “the whole work”.</p> <font class="QuotedText">&gt; If I instead put my dynamically linked binary and a .so in a zip file and redistribute that instead of a statically linked binary, have I done something meaningfully different? At what point exactly does mere linking have legal significance?</font> <p>These the questions, aren't they? At what point border between your program and dynamic library becomes thick enough for someone to credibly claim that no, these two things are no longer part of “the whole work”, these are two independent pieces, usable without each other?</p> <p>I would suspect that it would strongly depend on the type of API that your library uses.</p> <p>E.g. if you library is separate dinamic library, but it doesn't even expose any symbols, but instead you have tool that creates offsets of the interesting data structures and these are, then, used in C64-era PEEK/POKE interface that directly embeds knowledge about layout of your library into some proprietary program and where any minor change to the library would render said program usable… I don't think anyone would say that these are still separate works. <code>TURBO.EXE</code> and <code>TURBO.OVL</code> are not two different works, they are definitely part of the same thing!</p> <p>But if your API is very simple and non-invasive (e.g. if you library just accepts text strings that it interprets and returns text strings as it's output and doesn't need to touch anything in your program) – then it would be separate work, definitely. It's not materially different from simple execution of external program.</p> <p>And <b>that</b> is where all these symbols, marks and everything start to become important: when you plan to distribute both GPLv2-licensed kernel <b>and</b> some modules simultaneously… IOW: precisely in a situation of Tuxedo Computers laptop!</p> Sun, 17 Nov 2024 23:19:54 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998487/ https://lwn.net/Articles/998487/ quotemstr <div class="FormattedComment"> I think we're getting distracted by temporal details of linker technologies and not asking the bigger question: why should we think of linking of any form as propagating copyright?<br> <p> So what if I statically link my proprietary program to a GPLed library? When I distribute the resulting binary, I'm independently distributing my own code (which I have the right to do) and distributing the GPLed library (which I have the right to do), and that the two are combined into a single ELF file is irrelevant. If I instead put my dynamically linked binary and a .so in a zip file and redistribute that instead of a statically linked binary, have I done something meaningfully different? At what point exactly does mere linking have legal significance?<br> <p> Keep in mind that the normative text of the license is agnostic with respect to linking technology and that this whole distinction doesn't apply to languages like Java and Python that use entirely different linking methodologies. If I jarjar together a GPLed class file and a proprietary one, what would the result be?<br> <p> Given all the open questions and contradictions, I have a hard time seeing how the FSF maximalist interpretation can be correct. I wouldn't feel particularly afraid linking, statically or not, a GPL incompatible program to readline.<br> </div> Sun, 17 Nov 2024 21:49:00 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998482/ https://lwn.net/Articles/998482/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; Note that the deep issue here with "dynamic linking is NOT copyright infringement" is that a Free program can always be rewritten into the form of a dynamic library, or to accept the new code as a dynamic library.</span><br> <p> But that linking is still done by the END USER, so as per the GPL it is NOT COPYRIGHT INFRINGEMENT.<br> <p> As was debated in the Google/Oracle case, the issue is "Can you copyright an API?" In order to convert a program to a dynamic library you need to have an API, otherwise you cannot link it. If you modify a GPL program to *create* an API, then the argument is that the API is a derivative of the GPL program and therefore covered by the GPL. In the nVidia case the API was clearly created for other programs to call the driver, so the API is clearly not a derivative (that's why nVidia don't distribute the kernel and driver together - it avoids any possible argument).<br> <p> In the Java case, it's estoppel and all sorts of wotnot - the API was explicitly intended to be freely used.<br> <p> In the readline case, it's very likely that the API is not copyrightable.<br> <p> But as far as dynamic linking goes, unless you can come up with a scenario where it is not the end user who actually links the program to the library (or loads the module into the kernel), then as per the GPL itself dynamic linking CANNOT be a GPL violation.<br> <p> <span class="QuotedText">&gt; At that extreme, the GPL becomes virtually meaningless.</span><br> <p> As far as I'm concerned, it is. If I GPL my code, downstream cannot distribute it as object without binary, but if their code calls mine, they can use any licence they like ... BECAUSE it's the end user that does the act of linking!<br> <p> Cheers,<br> Wol<br> </div> Sun, 17 Nov 2024 20:43:41 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998483/ https://lwn.net/Articles/998483/ quotemstr <div class="FormattedComment"> Are GPL-exported symbols really "internal" APIs? Out-of-tree GPL modules exist.<br> </div> Sun, 17 Nov 2024 20:30:09 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998479/ https://lwn.net/Articles/998479/ dvdeug <div class="FormattedComment"> <span class="QuotedText">&gt; Personally, I think a court *would* issue a bright-line ruling "dynamic linking is NOT copyright infringement". This is where the use of the correct words is extremely important!</span><br> <p> If you're being pedantic, a court would never issue that ruling, and would never be asked to rule on the question.<br> <p> <span class="QuotedText">&gt; So the question becomes "does the BSD version of the readline headers infringe the copyright of the GPL readline headers". Nothing to do (legally) with dynamic linking, at all!</span><br> <p> No. This whole article is about the kernel, not readline. Use the correct words. One question is, is code that is written to function as part of a program that is dynamically linked to the program automatically not a derivative work? I'm sure the court would say no. Then we get all the discussion about external module APIs, where the lawyers might argue that an API marked GPL is not an external module API, because it's clearly marked as only be usable by internal modules. <br> <p> Note that the deep issue here with "dynamic linking is NOT copyright infringement" is that a Free program can always be rewritten into the form of a dynamic library, or to accept the new code as a dynamic library. At that extreme, the GPL becomes virtually meaningless.<br> </div> Sun, 17 Nov 2024 20:15:32 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998444/ https://lwn.net/Articles/998444/ Wol <div class="FormattedComment"> &gt; &gt; I'm sure that NYKevin is right in saying<br> <p> <span class="QuotedText">&gt; t strikes me as rather implausible, given this framework, that a court would issue a bright-line ruling about whether or not dynamic linking is copyright infringement in all scenarios. The far more plausible answer is a very complicated "it depends."</span><br> <p> Personally, I think a court *would* issue a bright-line ruling "dynamic linking is NOT copyright infringement". This is where the use of the correct words is extremely important!<br> <p> "2. Basic Permissions.<br> <p> All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. 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. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law."<br> <p> Dynamic linking occurs when you run the program! The GPL gives you "unlimited permission" to run the program!<br> <p> So the question becomes "does the BSD version of the readline headers infringe the copyright of the GPL readline headers". Nothing to do (legally) with dynamic linking, at all!<br> <p> Which is, of course, why this example is so complicated :-) And also when the FSF wrote the (L)GPL, they recommended the use of LGPL in general for libraries, otherwise people would use the proprietary/permissively licenced libraries to write code, and end-users wouldn't bother swapping them for the GPL versions. Especially if, as very likely, the software authors would close bugs with "use the same library as us".<br> <p> Cheers,<br> Wol<br> </div> Sun, 17 Nov 2024 12:31:06 +0000 Companies are made of humans https://lwn.net/Articles/998443/ https://lwn.net/Articles/998443/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; 1) present yourself as qualified in law;</span><br> <p> And rather importantly, what does that mean? In the UK people who are NOT lawyers - who have no formal qualifications IN LAW - are also required by law to present legal opinions. In particular to LARGE corporations!<br> <p> Okay, they are required to be formally qualified, and that qualification will almost certainly include the law as a required minor, but they are neither qualified nor licenced to practice law.<br> <p> In the UK at least, all associations are supposed to include, as part of their governing structure, a Secretary. Above a certain size, these people have to be formally qualified, be it as a Secretary, Accountant, Lawyer or whatever. And these people are the ones held liable for the lawful behaviour of the company! As a Company Secretary, you are the person legally liable for the misbehaviour of the company you represent, and you could go to jail for it! Highly unlikely, but it's in the Statutes.<br> <p> Cheers,<br> Wol<br> </div> Sun, 17 Nov 2024 12:16:40 +0000 Companies are made of humans https://lwn.net/Articles/998439/ https://lwn.net/Articles/998439/ SLi <div class="FormattedComment"> Ah, that probably... makes sense! Although I must also say I'm not a big fan of the idea of "laypeople should not try to interpret law". That already presumes a legal system so complex that it should be replaced. Of course there are difficult cases, but from a European POV it seems outright silly that people other than the immediate parties shouldn't be able to try to figure out who is, say, responsible for a car accident without lawyers being involved (and most such incidents, I believe, are resolved without lawyers).<br> <p> I also think that in most of those jurisdictions the rule is more like you're not allowed to 1) present yourself as qualified in law; 2) provide legal opinions for compensation (albeit I'm actually not sure if this applies in all contexts; I think a company may be allowed to hire someone who it believes is familiar with an area of the law to work on that stuff); 3) represent others.<br> </div> Sun, 17 Nov 2024 00:17:39 +0000 Companies are made of humans https://lwn.net/Articles/998437/ https://lwn.net/Articles/998437/ randomguy3 <div class="FormattedComment"> i think he was referring to licensing as in "a license to practice law", given the context of the rest of his message...<br> </div> Sat, 16 Nov 2024 22:24:15 +0000 Is the GPL actually viral across dynamic linking? https://lwn.net/Articles/998433/ https://lwn.net/Articles/998433/ dvdeug <div class="FormattedComment"> You can link a GPL library into a MIT-licensed program, no problem. Nothing stops you from treating the whole as GPL, even if you could take the MIT parts and use them separately. And nothing's magically going to go wrong if you make a mistake.<br> <p> I'm sure that NYKevin is right in saying<br> <p> <span class="QuotedText">&gt;It strikes me as rather implausible, given this framework, that a court would issue a bright-line ruling about whether or not dynamic linking is copyright infringement in all scenarios. The far more plausible answer is a very complicated "it depends."</span><br> <p> Then what? Java is a bright line case, as it's a clear API for external use and Java puts the two parts as separate as possible. Many C and C++ libraries are going to embed part of themselves in the binary in the form of complex macros and templates. You can't distribute the binary without distributing part of the library. <br> <p> It's frustrating that people want to tear down this ability of Free licenses. This is not a problem for commercially licensed software, in most cases. You'd have to find a library that's already going to be on a user's system and use it to distribute software linked to a commercial library. Even then, the commercial software owners usually have licenses you agreed to to install the library and dev files on the development machine. So it's the Free software people who don't want to force everyone to agree to a license, who give away the software for free, that people want to take advantage of.<br> <p> <span class="QuotedText">&gt; So why should anyone think there's anything legally or socially wrong with modules marking themselves as GPL for symbol resolution purposes while not being licensed under the GPL themselves? </span><br> <p> I certainly think there's something socially wrong with taking someone's gift and ignoring the terms under which it was given. If you want a system where you can load any modules, use a BSD kernel (without any GPL modules, since there are a few of those). Certainly don't use MacOS, since Apple uses cryptographically secure measures to prevent random modules from being loaded in the kernel, and doesn't give that power to just everyone. (I think Windows is the same way, but I'm not sure.) If the creators of a GPL kernel label some items as an external API for anyone's use, and other items as GPL hooks for functionally internal code loaded externally, respect that.<br> </div> Sat, 16 Nov 2024 22:08:32 +0000