LWN: Comments on "A new GCC runtime library license snag?" https://lwn.net/Articles/343608/ This is a special feed containing comments posted to the individual LWN article titled "A new GCC runtime library license snag?". en-us Sat, 18 Oct 2025 11:52:52 +0000 Sat, 18 Oct 2025 11:52:52 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Have you actully read the license? https://lwn.net/Articles/347135/ https://lwn.net/Articles/347135/ khim <blockquote>I've just skimmed through several sample creative commons licenses, and can't see any "or later version" clauses, let alone mandatory ones.</blockquote> <p>Is this a joke? Have you read the <a href="http://creativecommons.org/licenses/by-sa/3.0/legalcode">legal code</a>?</p> <blockquote>You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License.</blockquote> <p>Version upgrade is emebedded in the text of the license and it's not an option. Sure, you can not change the license for original work, but should you add one line to it... you are free to upgrade.</p> <blockquote>Are you suggesting that anyone -- the git authors, Debian, the FSF, whoever -- knew about this before very recently?</blockquote> <p>Kind of. FSF knew about the problem in general back in 1991 - that's why it included <a href="http://www.gnu.org/licenses/gpl-2.0.html">paragraph 9</a> in first place. Then some people decided that they don't trust FSF enough to allow combining of their code with FSF's code released under new GPLv3 (and later) licenses. Fair enough - but then obviously they are the only ones who can say if libgcc's code is Ok with them or not. If they knew nothing about licensing and ramifications then why they fiddled around with this stuff?</p> Fri, 14 Aug 2009 10:37:52 +0000 This is not GPLv2 fault, sorry... https://lwn.net/Articles/346622/ https://lwn.net/Articles/346622/ SEMW <div class="FormattedComment"> <font class="QuotedText">&gt; Git's developer's decision created problem few years down the road - but it's not like they had no warning: indeed, the warning is embedded in the very text of the license they've used!</font><br> <p> Being there and being apparent are very different things. The current problem is as a result of an interaction between the gcc runtime exception and the GPLv2 that, whilst it was in a trivial sense there all along, no-one had noticed until Kalle Niemitalo pointed it out very recently. (If I am mistaken and it was, in fact, known before, please say so; as I said in the other thread, the story does not give that impression).<br> <p> You can study ZFC for quite a while without deducing Fermat's last theorem, even though it is a logical consequence of them. And the fact that the two licenses interact in this way might have been there all along, but it was apparently sufficiently non-obvious that, yes, the git developers could certainly be said to have had no warning.<br> </div> Wed, 12 Aug 2009 12:36:00 +0000 It's not exactly blank cheque https://lwn.net/Articles/346621/ https://lwn.net/Articles/346621/ SEMW <div class="FormattedComment"> <font class="QuotedText">&gt; Yes this is what millions of authors do every single time they release something. Some licenses don't</font><br> <font class="QuotedText">&gt; even include opt-out - like widely used Creative Commons licenses, for example.</font><br> <p> I've just skimmed through several sample creative commons licenses, and can't see any "or later version" clauses, let alone mandatory ones. The page for all licenses before the current one even explicitely say "A new version of this license is available. ... No works are automatically put under the new license...". Are you sure you're not mistaken?<br> <p> <font class="QuotedText">&gt; If they are big enough to ignore advice (included in the text of license they selected, no less!) they should be big enough to deal with fallout...</font><br> <p> Are you suggesting that anyone -- the git authors, Debian, the FSF, whoever -- knew about this before very recently? If you're saying that this side-effect was known when the git authors chose the license, then say so explicitly; the article certainly does not give that impression (and even explicitly says that, in the FSF's case, "This is a perverse result that, probably, was not envisioned or desired...").<br> </div> Wed, 12 Aug 2009 12:26:36 +0000 It's not exactly blank cheque https://lwn.net/Articles/346089/ https://lwn.net/Articles/346089/ khim <p>Yes this is what millions of authors do every single time they release something. Some licenses don't even include opt-out - like widely used Creative Commons licenses, for example.</p> <p>If Git developers don't like to delegate legal problems to FSF they should solve them themselves, don't you think? If they are big enough to ignore advice (included in the text of license they selected, no less!) they should be big enough to deal with fallout...</p> Sun, 09 Aug 2009 12:08:05 +0000 This is not GPLv2 fault, sorry... https://lwn.net/Articles/346087/ https://lwn.net/Articles/346087/ khim <blockquote>But the point is that it is written in such a way that the GPL v2 -- a widely used and free license -- *does* prohibit it (if the runtime library is distributed with the binary).</blockquote> <p>Nope. It does not prohibit anything <b>if you apply it correctly</b>. Please read <a href="http://www.gnu.org/licenses/gpl-2.0.html">GPLv2</a> - specifically paragraph 9. <a href="http://www.gnu.org/licenses/gpl-3.0.html">GPLv3</a> does the same in paragraph 14. The problems only arise when someone applies GPLv2 in such a way as to create the problems - but then the conventional wisdom says it's not a problem of GPL...</p> <blockquote>To plead that this is the GPL2's fault is trivially true, but missing the point (in a similar way to Joerg Shilling's defending Sun's use of the GPL-incompatible CDDL on the grounds that it's a completely free license, and if the FSF thinks it's incompatible with the GPL, that's not Sun's problem).</blockquote> <p>I can't see your point. In both cases copyright owners did what they thought was right. The results are unfortunate: Linux does not include ZFS as the result, Git should be compiled with GCC 4.3.</p> <p>The situation was somewhat different in these two cases: Sun's decision created problem immediately, Git's developer's decision created problem few years down the road - but it's not like they had no warning: indeed, the warning is embedded in the very text of the license they've used!</p> Sun, 09 Aug 2009 11:58:14 +0000 No, that's not the plugin exception... https://lwn.net/Articles/345958/ https://lwn.net/Articles/345958/ nix <div class="FormattedComment"> C compilers all require runtime libraries. Lots of things require library <br> calls (e.g. long long maths on 32-bit systems); there is the startup code <br> (on Linux a complex dance of cooperation between GCC and glibc); and there <br> are things like binary decimal support, which has a sizeable runtime <br> library. There are even more nasty things like C++ exception handling, <br> which if it is to work across shared library boundaries needs shared data <br> structures and shared code to touch those data structures. (You might <br> think this is irrelevant to C, but C++ code can throw across C function <br> calls with GCC, as long as the C translation units were compiled <br> with -fexceptions: the relevant parts of the unwinding machinery are thus <br> in the C runtime library, not in the C++ one.)<br> <p> The compiler generates the calls into this library as it sees fit, and <br> links the library to the object files it generates. It's completely <br> compiler-dependent and often compiler-version-dependent too (although for <br> obvious reasons backward compatibility is very strictly maintained).<br> <p> <p> </div> Fri, 07 Aug 2009 23:17:21 +0000 No, that's not the plugin exception... https://lwn.net/Articles/345841/ https://lwn.net/Articles/345841/ DOT Does the ICC runtime library allow for relicensing under GPL version 2? That's what needs to happen for the problem to go away. The component that needs to fall under the exception is the <b>ICC runtime library</b>. But that code is injected into the program at compilation time. So that component <i>accompanies the executable</i>, which means it doesn't fall under the exception. Therefore, the ICC runtime library needs to be 1) open source, and 2) licensed under the GPL version 2. I don't believe that is the case, so Git -- compiled with any recent compiler -- cannot be legally distributed. Fri, 07 Aug 2009 13:27:07 +0000 Who to blame? https://lwn.net/Articles/345623/ https://lwn.net/Articles/345623/ SEMW <div class="FormattedComment"> To be fair to the authors of git etc., I find it very hard to blame someone for not wanting to release their intellectual property under a license, or series of licenses, that they not only haven't read but don't even *exist* yet; for the same reason that I wouldn't blame someone for not wanting to hand over a blank cheque or sign a contract they haven't read.<br> </div> Thu, 06 Aug 2009 10:23:53 +0000 Here we go again... https://lwn.net/Articles/345617/ https://lwn.net/Articles/345617/ SEMW <div class="FormattedComment"> <font class="QuotedText">&gt; It is useful anywhere (for free and proprietary programs alike) - where other side does not prohibit it.</font><br> <p> Of course it's "useful anywhere... where the other side does not prohibit it". But the point is that it is written in such a way that the GPL v2 -- a widely used and free license -- *does* prohibit it (if the runtime library is distributed with the binary). To plead that this is the GPL2's fault is trivially true, but missing the point (in a similar way to Joerg Shilling's defending Sun's use of the GPL-incompatible CDDL on the grounds that it's a completely free license, and if the FSF thinks it's incompatible with the GPL, that's not Sun's problem).<br> <p> <font class="QuotedText">&gt; if people wanted to raise racket the time was back in 2007, not today.</font><br> <p> That is bordering on disingenuous. As you know, no-one noticed this problem in 2007, it's only just been pointed out.<br> </div> Thu, 06 Aug 2009 10:10:19 +0000 GPLv2 only code https://lwn.net/Articles/345615/ https://lwn.net/Articles/345615/ hppnq <em><blockquote>You should all take into account that the FSF did not forsee or want anyone to use GPLv2 only code. The "or any later" part is intentional, drop it and you break the whole system.</blockquote></em> <p> The relevant part of the GPLv2 license is: <p><blockquote><em> either version 2 of the License, or (at your option) any later version</em></blockquote> <p> Clearly, the license itself offers the choice to use <em>only</em> version 2 of the license. Note that this part (only) appears in the "How to apply these terms to your new programs" section of the license. Thu, 06 Aug 2009 09:45:54 +0000 GPLv2 only code https://lwn.net/Articles/345603/ https://lwn.net/Articles/345603/ forthy <p>You should all take into account that the FSF did not forsee or want anyone to use GPLv2 only code. The "or any later" part is intentional, drop it and you break the whole system. If you now find that you have a broken license mess because you dropped the "or any later" part, it's you fault. Get over it, the GPLv2+ <b>is</b> compatible with the GPLv3+, as it was meant by the FSF. I hope the FSF follows the path they had during GPLv3 development, and makes future GPLs compatible with even more other copyleft licenses, like CDDL and MPL-derived licenses. The part that's not covered with the current GPL is mixing stuff - IMHO if the conditions required are similar enough (all four freedoms preserved), mixing should be allowed. This might give us a future GPLv4, which then would again be one-side compatible with the GPLv2-only, but that's not yet achieved, and probably doesn't solve the problem either (because even now, we have CDDL, which is one-side compatible with GPLv2-only, but not the other way round).</p> <p>As Joe Buck said, the ball is in the field of the GPLv2-only party, who messed up their license, and if they find that this was a stupid move, well, maybe they have to rethink. Given how much zeal they invest into defending their decision (including their praise of the backdoor-DRM-allowance which is IMHO only valid in the USA, and a GPL violation violation elsewhere, because it clearly violates the spirit of the license, stated in the preamble), this is not likely to happen soon.</p> Thu, 06 Aug 2009 09:18:46 +0000 No, that's not the plugin exception... https://lwn.net/Articles/345598/ https://lwn.net/Articles/345598/ johill <div class="FormattedComment"> <font class="QuotedText">&gt; Or am I missing something here...?</font><br> <p> Yes. It's not feasible to maintain thousands of packages that way, and makes no sense technically either -- improvements of the runtime lib would never make it into that program, etc.<br> </div> Thu, 06 Aug 2009 08:08:24 +0000 No, that's not the plugin exception... https://lwn.net/Articles/345569/ https://lwn.net/Articles/345569/ lysse <div class="FormattedComment"> <font class="QuotedText">&gt; if git wants to make use of the gcc runtime code</font><br> <p> Aside from finding the idea of a C compiler requiring a runtime library slightly strange, presumably git doesn't particularly care which runtime code it makes use of? In which case, surely the appropriate thing for git to do is incorporate a copy of the last GPL2+-licensed version of libgcc into their own codebase, optionally customise it to suit, and simply compile with whatever option says "no default runtime, please" in future?<br> <p> Or am I missing something here...?<br> </div> Thu, 06 Aug 2009 05:57:30 +0000 No, that's not the plugin exception... https://lwn.net/Articles/345235/ https://lwn.net/Articles/345235/ nix <div class="FormattedComment"> Oh, hell, it's *that* ugly part of the nasty GPLv2 exception. I quite <br> missed that.<br> <p> *sigh*<br> </div> Tue, 04 Aug 2009 21:05:05 +0000 No, that's not the plugin exception... https://lwn.net/Articles/345115/ https://lwn.net/Articles/345115/ khim <blockquote>ICC's *runtime libraries* are distributed with (incorporated into) *git binaries* if git binaries compiled with ICC are distributed, in *exactly* the same way as libgcc is incorporated into git binaries.</blockquote> <p>Yes. And still ICC does not have a problem where GCC does. Why? Because ICC's license forbids distribution (runtime libraries can be redistributed while ICC itself can not) and so ICC is not distributed on the same medium as git! This fits the GPL exception to a tee: <i>However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, <b>unless that component itself accompanies the executable</b>.</i></p> <blockquote> The *compiler* inserts calls to libgcc into the object file, and this is then resolved by linking with libgcc.</blockquote> <p>Yes, but it does not change the fact that parts of libgcc ends up in git executable. GPL gives no exception for "compiler-inserted calls", instead it gives exception for "<i>anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs</i>" - but this exception is not valid if "<i>that component itself accompanies the executable</i>". GCC accompanies the executable while ICC does not - that's why we have problem with GCC, but not with ICC. Since these parts are needed to recreate binary they are part of the "complete machine-readable copy of the corresponding source code" and now the question is: must these parts be distributed under GPLv2 or do they fall under "<i>special exception</i>". If they fall under exception then Git can be redistributed with GCC for sure, if not - then you can not redistribute Git and GCC on the same medium. Only copyright holder of git can clear this confusion and FSF is not Git's copyright holder so I can not understand why eveyone waits for FSF's response...</p> Tue, 04 Aug 2009 08:26:00 +0000 No, that's not the plugin exception... https://lwn.net/Articles/345079/ https://lwn.net/Articles/345079/ nix <div class="FormattedComment"> ICC's *runtime libraries* are distributed with (incorporated into) *git <br> binaries* if git binaries compiled with ICC are distributed, in *exactly* <br> the same way as libgcc is incorporated into git binaries.<br> <p> That you're even asking this question indicates that you've completely <br> failed to grasp the problem, and indeed the rationale for a special <br> license for libgcc :( nobody is worried about someone distributing source <br> for libgcc along with Git, and Git does not intentionally call into <br> libgcc. The *compiler* inserts calls to libgcc into the object file, and <br> this is then resolved by linking with libgcc. libgcc is necessarily <br> GCC-specific: ICC uses something different.<br> <p> </div> Mon, 03 Aug 2009 22:34:10 +0000 No, that's not the plugin exception... https://lwn.net/Articles/344990/ https://lwn.net/Articles/344990/ khim <blockquote>What you're saying is 'if you want to be compiled with compiler X, you have to adjust your license to fit'. Several major Linux compilers (icc and GCC, for instance), have incompatible licenses, so you're saying that it should be impossible to have any program on Linux which can be compiled with both compilers and the binary then distributed.</blockquote> <p>ICC does not have this problem since it's not distributed with Git.</p> <blockquote>This seems seriously skewy to me.</blockquote> <p>Me too, but that's what the license says...</p> <blockquote>Why can't the FSF take a leaf from Bison (again)?</blockquote> <p>Huh? They did. Bison has the same problem GCC does. The only difference lies in the fact that Git does not use Bison.</p> Mon, 03 Aug 2009 10:51:28 +0000 Stable copyleft licence nonsense https://lwn.net/Articles/344925/ https://lwn.net/Articles/344925/ xoddam <div class="FormattedComment"> WHAT????<br> <p> The Linux Kernel, version 2.6, warns its users that kernel-internal APIs may be revised from time to time for technical reasons (and for the purpose of removing cruft in the kernel) in the file Documentation/stable_api_nonsense.txt.<br> <p> The GPL, version 2, wants its users that the licence text may be revised from time to time for legal reasons (and for the purpose of advancing free software) in its paragraph 9 (it's Paragraph 14 of version 3).<br> <p> But it's the Linux kernel developers, and fellow travellers like the Git and Busybox developers, who have chosen not to support version 3 of the GPL.<br> <p> It's a bit like a vendor of commodity hardware (say, a GPU) whose driver is not yet in-tree deciding they will never, ever support Linux kernel APIs after some API change made in kernel version 2.6.29. That's their choice. But *someone* will want to use that hardware with a later kernel, so *somehow*, the incompatibility will be resolved by someone who cares.<br> <p> </div> Sun, 02 Aug 2009 11:17:08 +0000 No, that's not the plugin exception... https://lwn.net/Articles/344918/ https://lwn.net/Articles/344918/ nix <div class="FormattedComment"> git 'makes use of' the GCC runtime code by virtue of being *compiled* with <br> GCC. All git did was be written in C.<br> <p> What you're saying is 'if you want to be compiled with compiler X, you <br> have to adjust your license to fit'. Several major Linux compilers (icc <br> and GCC, for instance), have incompatible licenses, so you're saying that <br> it should be impossible to have any program on Linux which can be compiled <br> with both compilers and the binary then distributed.<br> <p> This seems seriously skewy to me.<br> <p> Why can't the FSF take a leaf from Bison (again)?<br> </div> Sun, 02 Aug 2009 08:27:56 +0000 A new GCC runtime library license snag? https://lwn.net/Articles/344914/ https://lwn.net/Articles/344914/ landley <div class="FormattedComment"> <font class="QuotedText">&gt; Fabrice Bellard seems to be making releases of tinycc at irregular </font><br> <font class="QuotedText">&gt; intervals (the last on May 20, 2009).</font><br> <p> Fabrice didn't make that release, Griscka did. Fabrice just uploaded it. Fabrice dropped tinycc to work on QEMU, and the project stalled years ago. He still drops by the mailing list about once a year (I believe his most recent post to the list was 15 months ago, and the last post before that was 24 months ago).<br> <p> Well over half of the work in the .24 release was either stuff done after the previous release back before Fabrice lost interest, stuff I collected and sent to Fabrice back at the start of my fork (back around 2006), or stuff Grischkah ported over from my fork. Grisckha primarily does work on the windows target, not on Linux. (Grishcka literally said that he didn't port of a lot of the work in my fork because he didn't understand it. Not that he'd asked.)<br> <p> The only real non-Windows work in the .25 release I'm aware of was somebody in Japan popping up out of nowhere with an x86-64 backend at the start of this year, not anything that came from any existing developers on the list. They had a release because somebody dropped an x86-64 target in their laps out of the blue, not because of any work done on the list. (Not that the tcc codebase they're using is 64 bit clean, but you can sort of fake it if you're only building toy programs.)<br> <p> <font class="QuotedText">&gt; He also links to your fork.</font><br> <p> My fork's long dead, as explained on the page they (still) link to.<br> <p> <font class="QuotedText">&gt; Is it uninteresting because it offers insufficient scope for </font><br> <font class="QuotedText">&gt; optimisation?</font><br> <p> It's uninteresting because five years ago, Fabrice came up with a specific list of things required to build an unmodified (2.4) Linux kernel, and it still can't do it today, and making it do it isn't a goal of the current developers (let alone building 2.6, busybox, and uClibc):<br> <p> <a href="http://bellard.org/tcc/tccboot_readme.html">http://bellard.org/tcc/tccboot_readme.html</a><br> <p> Note that building a 2.6 kernel is harder than building a 2.4 kernel. The two big pieces of infrastructure missing are variable length arrays and simple dead code elimination, and neither is currently under active development. (I was working on both when they drove me off, now I don't care.)<br> <p> For a couple years there, I did more work on it than the rest of the tcc development community combined. (Not because I really had time or expertise, but because nobody ELSE was doing it.) Since I left, except for the guy who added the x86-64 target, the rest of the development community has implemented the occasional bugfix. Maybe it's changed in the past few months, I haven't been paying attention, but list traffic was still mostly bug reports from windows people last I checked. (The project's mailing list often went weeks between posts, and the majority of the traffic was about Windows. Not very interesting.)<br> <p> <font class="QuotedText">&gt; People who want to use C in the first place care more about fast </font><br> <font class="QuotedText">&gt; binaries than fast compilation, and if development time (as in </font><br> <font class="QuotedText">&gt; compilation time and other things) is more important than runtime speed, </font><br> <font class="QuotedText">&gt; there are other and better languages, it seems to me.</font><br> <p> Sure. But the compiler/interpreter/runtime for those languages are implemented in C. If you're creating a self-bootstrapping environment, you need a C compiler.<br> <p> What attracted me to tinycc is that it was _simple_. The entire compiler is about 100k lines of source, it just needed a huge cleanup and refactoring to be extended to support multiple architecture targets, build a full Linux kernel, be maintainable by anybody but its original author...<br> <p> What I really wanted to do was refactor tinycc into a busybox-like swiss army knife executable providing "ld", "cc", "as", "strip", and so on so it could properly replace gcc and binutils. It would also be good to look into using qemu's new code generator (tcg) as the back-end rather than trying to maintain a dozen processor targets with a half-dozen variants each.<br> <p> But the existing tinycc development community has little interest in doing any new work on it. Change to existing code seems to upset them.<br> <p> The smallest self-bootstrapping Linux system is, theoretically, the linux kernel, uClibc, a swiss-army-knifed tcc, and busybox extended a bit to include things like "make" and a bash replacement sh. Alas, in the past 5 years we haven't come noticeably closer to that happening.<br> <p> Rob<br> </div> Sun, 02 Aug 2009 07:11:01 +0000 A new GCC runtime library license snag? https://lwn.net/Articles/344911/ https://lwn.net/Articles/344911/ rsidd <div class="FormattedComment"> Fabrice Bellard seems to be making releases of tinycc at irregular intervals (the last on May 20, 2009). He also links to your fork. Is it uninteresting because it offers insufficient scope for optimisation? People who want to use C in the first place care more about fast binaries than fast compilation, and if development time (as in compilation time and other things) is more important than runtime speed, there are other and better languages, it seems to me.<br> </div> Sun, 02 Aug 2009 05:15:00 +0000 Who to blame? https://lwn.net/Articles/344909/ https://lwn.net/Articles/344909/ khim <p>Have you read the GPLv2 license? It has separate paragraph dedicated to this this problem:<blockquote>9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.<br /><br /> Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.</blockquote><p>If authors of Git ignored cautions embedded in the very text of the license they are using - then how the hell can you blame anyone else? Git authors <b>knew</b> the license will be changed - it's written in the text of the license attached to Git. They <b>knew</b> how to avoid troubles - again, it's written in the very text of the license attached to Git. They chosen to ignore all this - it's their right, FSF gave this right to him (unlike MPL or CC licenses GPL does not have autoupdate option embedded in the license itself), but the consequences of their choice are theirs to resolve...</p> <p>And the license does not make it easier to ship proprietary programs - if proprietary license include linking-prohibition similar to GPLv2 it can not be used will GCC also...</p> <p>So no, it's hard to blame FSF here: they thought about the problem 18 years ago, they offered the solution back then - but Git authors rejected the solution. That's the problem.</p> Sun, 02 Aug 2009 04:58:39 +0000 There are exactly one way to do this - and it's not what Debian wants... https://lwn.net/Articles/344907/ https://lwn.net/Articles/344907/ khim <blockquote>Debian don't want to be taken to court at all, not even if they are reasonably sure (you can never be more than reasonably sure) of winning, as it costs them time and money they would surely rather use for other things.</blockquote> <p>Then they should close the shop. It's more-or-less impossible to do so. Most programs out there infringe more then one patent, for example. Sure, these patents are bogus, but if you are determined to avoid court at all - you should remove all programs from distribution and since distribution with zero programs or files is pretty much useless it'll be the end for Debian...</p> Sun, 02 Aug 2009 04:34:40 +0000 A new GCC runtime library license snag? https://lwn.net/Articles/344901/ https://lwn.net/Articles/344901/ landley <div class="FormattedComment"> People have been looking for a gcc replacement for a while now. LLVM/Clang is one (supported by Apple), and the relaunched PCC is another (supported by a couple of the BSDs, see <a href="http://lwn.net/Articles/255558/">http://lwn.net/Articles/255558/</a> for details).<br> <p> Tinycc was aiming to be a third one, but it died. (The corpse lurches onward zombie-like as a windows compiler, but is unlikely to ever amount to anything on Linux. Alas.)<br> <p> Rob<br> </div> Sun, 02 Aug 2009 01:34:49 +0000 A new GCC runtime library license snag? https://lwn.net/Articles/344899/ https://lwn.net/Articles/344899/ landley <div class="FormattedComment"> Actually, the FSF _was_ the "cathedral" in CATB, and Linux was the "Bazaar". (Eric's said so in a couple interviews over the years, he just didn't play it up in the paper itself so as not to set-off the FSF's supporters.) Eric was comparing different methods of open source development. (Keep in mind that CATB came out shortly before the egcs fork, when gcc development was stagnant.)<br> <p> Eric got the idea for the paper at a conference in 1996, which is described in some detail here:<br> <p> <a href="http://oreilly.com/openbook/freedom/ch11.html">http://oreilly.com/openbook/freedom/ch11.html</a><br> </div> Sun, 02 Aug 2009 01:30:23 +0000 No, that's not the plugin exception... https://lwn.net/Articles/344896/ https://lwn.net/Articles/344896/ dlang <div class="FormattedComment"> it seems very strange that you blame a software project that uses a license produced by the FSF for incompatibilities caused by the FSF changing the license of another program to a new license that makes it easier to ship proprietary apps than it is to ship open apps.<br> <p> </div> Sun, 02 Aug 2009 00:56:28 +0000 No, that's not the plugin exception... https://lwn.net/Articles/344892/ https://lwn.net/Articles/344892/ cas <div class="FormattedComment"> <font class="QuotedText">&gt; The only solution is to offer libgcc under "GPLv2 or later" terms and</font><br> <font class="QuotedText">&gt; clearly FSF don't like this solution - it wants to drop GPLv2 altogether</font><br> <p> no, that's NOT the only solution. it's not even the right solution, or even one of the right solutions.<br> <p> the problem is with git, not with gcc.<br> <p> if git wants to make use of the gcc runtime code, then it is up to git to have a compatible license. it can do that by switching to GPL v3 or by adding an explicit extra permission to its license allowing it to be linked to and distributed with GPL v3 code.<br> <p> This kind of extra permission is NOT at all unusual with GPL code or software that links to GPL code. e.g. I remember several years back that many Qt &amp; KDE programs had to have extra permission because the Qt license at that time was not quite GPL compatible.<br> <p> </div> Sat, 01 Aug 2009 23:26:07 +0000 but there is an exception https://lwn.net/Articles/344889/ https://lwn.net/Articles/344889/ cas <div class="FormattedComment"> <font class="QuotedText">&gt; "... unless that component itself accompanies the executable." </font><br> <font class="QuotedText">&gt; [...]</font><br> <font class="QuotedText">&gt; RMS wasn't thinking of entirely-free OSes when he wrote that;</font><br> <p> easily fixed in a hypothetical GPL v2.1, or in an addition to the git license:<br> <p> "... unless that component itself accompanies the executable AND is not licensed with a Copyleft-style license such as the GPL v3 or any compatible Free Software license"<br> <p> or making it a new sentence might make it clearer/less clumsy:<br> <p> "... unless that component itself accompanies the executable. This exception does not apply if the component is licensed with a Copyleft-style license such as the GPL v3 or any compatible Free Software license".<br> <p> <p> <font class="QuotedText">&gt; Say that the license is GPLv2, except that the phrase "unless that</font><br> <font class="QuotedText">&gt; component itself accompanies the executable" is considered to be removed.</font><br> <p> there's a reason for that exception. it's to prevent people from subverting the intent of the GPL and merging it with proprietary code by claiming that they are merely aggregating the work.<br> <p> <p> </div> Sat, 01 Aug 2009 23:14:39 +0000 I want Minix's size but Linux's functionality.... https://lwn.net/Articles/344824/ https://lwn.net/Articles/344824/ coriordan <div class="FormattedComment"> That wouldn't work, if I've understood what you mean.<br> <p> The combination of binary runtime library plus binary git (or any gplv2 application) can be distributed. And the recipient reads the licence of git and sees that she's entitled to a copy of the complete corresponding source code under the terms of the GPLv2... but she can't have the source code to the runtime library (which is part of git after compilation) under GPLv2 because the runtime library's licence is GPLv3, not GPLv2.<br> <p> It's an interesting path alright, and I'm thinking about other types of clauses that could go into the runtime library exception along the same lines....<br> </div> Sat, 01 Aug 2009 00:05:15 +0000 They could but the case will not go very far https://lwn.net/Articles/344693/ https://lwn.net/Articles/344693/ mjthayer <div class="FormattedComment"> <font class="QuotedText">&gt;&gt; Then, I sell the application to a proprietary company. It is till GPLv2, but the company owns the copyright.</font><br> <p> <font class="QuotedText">&gt;&gt; Couldn't at that point the company sue Debian?</font><br> <p> <font class="QuotedText">&gt; Not yet. Since there are reasonable interpretation which leaves the Debian in the clear the court will be very reluctant to give anything to the new company.</font><br> <p> I don't think that it is enough for Debian to be able to find a reasonable interpretation that speaks in their favour. I think that there is a problem if there is just a single reasonable interpretation which does *not* leave Debian in the clear. Debian don't want to be taken to court at all, not even if they are reasonably sure (you can never be more than reasonably sure) of winning, as it costs them time and money they would surely rather use for other things.<br> </div> Fri, 31 Jul 2009 08:34:28 +0000 Fatal oversight https://lwn.net/Articles/344691/ https://lwn.net/Articles/344691/ mjthayer <div class="FormattedComment"> I think that that is the most sensible comment I have seen on this thread so far.<br> </div> Fri, 31 Jul 2009 08:15:01 +0000 Here we go again... https://lwn.net/Articles/344678/ https://lwn.net/Articles/344678/ khim <blockquote>If the problem were truly that the GPLv2 uses imprecise terminology then all the FSF has to do is release a GPL2.1 with language bugfixes</blockquote> <p>They did so - it's called GPLv3.</p> <blockquote>even just an addendum describing language intent.</blockquote> <p>There are no need to do this for FSF-licensed software (GPLv3 serves as such clarification) and "addenum" will not be automatically attached to the text of license used by git/udev/etc.</p> <blockquote>The most obvious thing the FSF can do is, gosh, simply let the runtime library be usable anywhere.</blockquote> <p>It <b>is</b> useful anywhere (for free and proprietary programs alike) - where other side does not prohibit it.</p> <blockquote>Or, they could roll back to the 2008 license, probably with *minor* changes: <a href="http://lwn.net/Articles/316835/">http://lwn.net/Articles/316835/</a> (like foom says). I'm sure they have other options too.</blockquote> <p>I see no such options - except one: return back to the GPLv2. And FSF surely will do no such things. Reasons were explained <a hfre="http://www.gnu.org/licenses/rms-why-gplv3.html">well in advance</a>. This switch was planned more then <b>two years ago</b> - if people wanted to raise racket the time was back in 2007, not today.</p> Fri, 31 Jul 2009 07:25:48 +0000 Are you sure? https://lwn.net/Articles/344662/ https://lwn.net/Articles/344662/ khim <blockquote>There are plenty of distributions that include closed-source drivers, and include GPL2/3 programs that when run will call those drivers. Nobody ever thought that was a problem.</blockquote> <p>That's because syscall interface creates demarcation line: it implements POSIX and so you can consider program which uses kernel directly. When both sides are in kernel it <a href="http://lwn.net/Articles/204934/">is a problem</a>, when GPLed code uses non-GPLed library it's <a href="http://lwn.net/2000/0907/">a problem too</a> (note how QPL/GPL incompatibility was never sidestepped with "system libraries" excuse - nobody ever suggested it and RMS was even eager to point out that <i>Misusing a GPL-covered program permanently forfeits the right to distribute the code at all</i>.</p> <blockquote>What if the disk was partitioned, so you installed the OS first, and then installed the application second?</blockquote> <p>Courts will look at the intent. If these two discs come from separate companies then it's clearly allowed, but if they are sold as a bundle intended to be used in tandem... then the answer is probably no.</p> <blockquote>What if that was done automatically?</blockquote> <p>Probably not, but then degree of automatization matter.</p> <blockquote>How about if it was on another disk, or if the installation of the OS automatically ran a program that downloaded the app and installed it?</blockquote> <p>Again: what was the intent of all these dances, why you are doing it this way and not that way, etc.</p> <blockquote>It seems these are allowed, so disallowing the same-disk distribution is totally silly.</blockquote> <p>These are not unconditionally allowed, so distribution on the same-disk can be allowed or disallowed.</p> <p>You are forgetting again that law is squishy. When you construct long series or argument you in effect construct some "chain of reasoning": if A then B, if B then C, if C then D, etc. And then you expect to use it to prove that of A then K. But lawer looks on this chain in different way: it says "if A then B - hmm, good argument, 80% probablity to withstand test in the court", then "if B then C - hmm, good argument too, 80% probability it'll be Ok in court", then you "agree" again and again and in the end you are saying "Ok, not we have the proof that if A then K" and lawer says "sorry, but we have no such proof because this chain has roughly 10% chance to withstand test in court".</p> <p>Actually it's easy for geek to see how it all works if s/he ever heard about <a href="http://en.wikipedia.org/wiki/Fuzzy_logic">fuzzy logic</a>. Logic related with law is fuzzy. There are no hard rules - there are probabilities. They can be bigger and smaller in different cases, but they never reach 100% and they never reach 0%. For practical purposes the fact which is supprted by ten different 99% proofs is bullet-proof (probability of failure is 1e-20 and our universe is too young to allow such a chance), but when you are using long enough chains of logic even such probabilities can be exhausted.</p> <blockquote>Also the purpose of the same-distribution clause was to prevent people from putting a big function into a closed-source "standard system component". Since the library is NOT closed source, I cannot see any plausible way that this is a problem or conflict.</blockquote> <p>Yes, that's position of FSF and it was clarified in GPLv3. But since copyright holders explicitly refused such clarification (they are not using "or later" text to show that they agree with FSF's interpretation) we can not use FSF's intent to justify such reading. The only guys who can clarify the issue are git/udev/etc copyright holders - and they are silent AFAICS...</p> Fri, 31 Jul 2009 04:34:33 +0000 A new GCC runtime library license snag? https://lwn.net/Articles/344544/ https://lwn.net/Articles/344544/ spitzak <div class="FormattedComment"> This is rather convoluted but I really think this has already happened a thousand times before and there is no problem whatsoever.<br> <p> There are plenty of distributions that include closed-source drivers, and include GPL2/3 programs that when run will call those drivers. Nobody ever thought that was a problem.<br> <p> The fact that they are on the same disk is irrelevant. It is the fact that they are a "standard system component" that makes all the difference.<br> <p> What if the disk was partitioned, so you installed the OS first, and then installed the application second? What if that was done automatically? How about if it was on another disk, or if the installation of the OS automatically ran a program that downloaded the app and installed it? It seems these are allowed, so disallowing the same-disk distribution is totally silly.<br> <p> Also the purpose of the same-distribution clause was to prevent people from putting a big function into a closed-source "standard system component". Since the library is NOT closed source, I cannot see any plausible way that this is a problem or conflict.<br> <p> </div> Thu, 30 Jul 2009 19:29:53 +0000 how v3 is much much simpler (after taking a hit from the crack pipe) https://lwn.net/Articles/344531/ https://lwn.net/Articles/344531/ DonDiego <div class="FormattedComment"> <font class="QuotedText">&gt; GPLv3 makes things simpler because I no longer have to know or guess the</font><br> <font class="QuotedText">&gt; meaning of "distribute" in every country.</font><br> <p> At least I could understand the license in *one* country with v2..<br> <p> <font class="QuotedText">&gt; "Propagate" and "convey" were chosen specifically because they have no</font><br> <font class="QuotedText">&gt; existing meanings with regard to software. This means that the licence can</font><br> <font class="QuotedText">&gt; explain the intended meaning.</font><br> <p> I wish it did explain the intended meaning. Have you understood the intended meaning and difference between "propagate" and "convey"? I still fail to clearly see a difference and the GPL FAQ obscures the point further.<br> <p> <font class="QuotedText">&gt; So I just read the licence. The licence *text* itself is more complex,</font><br> <font class="QuotedText">&gt; but overall, knowing what the licence really means is much much easier.</font><br> <p> This is a contradiction. A complex text, by its nature, lends itself more to different interpretations than a clear and simple one. How can you now be sure that your interpretation is the intended one? And who guarantees that a judge will not disagree?<br> <p> But the main problem remains: The target audience seems to have shifted from laypersons to experts in reading legalese. This is very sad and counterproductive. I myself will not release code under v3 for the foreseeable future and will not suggest using v3 to anybody, maybe even recommend to stay away from it when asked for licensing advice. I bet I am far from the only person that thinks so and I do not see people around me rushing to adopt v3, on the contrary. This cannot have been what the authors of v3 had in mind.<br> <p> I shudder when I think what v4 or v5 might look like...<br> </div> Thu, 30 Jul 2009 19:07:08 +0000 They could but the case will not go very far https://lwn.net/Articles/344493/ https://lwn.net/Articles/344493/ mikov <blockquote>When you start publicly discuss your rights which fall into the grey area it's very easy to lose them: court will use your own words against you! That's why law is usually discussed privately. This is especially true for patents but other aspects follow the same pattern...</blockquote> <p>I have to tell you this is really scary ... (for lack of a better word). The notion that discussing your rights makes it easier to lose them... <p>I really liked the quote from the lawyer; thanks for posting it! Thu, 30 Jul 2009 16:35:29 +0000 Fatal oversight https://lwn.net/Articles/344490/ https://lwn.net/Articles/344490/ jordanb <div class="FormattedComment"> <font class="QuotedText">&gt; If the problem were truly that the GPLv2 uses imprecise terminology then all the FSF has to do is release a GPL2.1 with language bugfixes, </font><br> <p> They did release an update to the GPL fixing language ambiguities. The copyright holders in question chose not to move to it, either because they had a belief that it 'overreached' or they had removed the 'or later version' clause and now find it too much bother to do a license change.<br> <p> Maybe a "2.1" would placate some who feel that GPLv3 "overreached" (I doubt it) but it would do nothing to address the second case. The vast majority of the software that's still under GPLv2 would not move to a newer license even if the changes were minor.<br> <p> <font class="QuotedText">&gt; or even just an addendum describing language intent.</font><br> <p> This would not be binding on copyright holders not a party to the 'addendum'. (Which is to say, it would only apply to the FSF, which would make it totally irrelevant because all the FSF code is under GPLv3.)<br> </div> Thu, 30 Jul 2009 16:18:31 +0000 Fatal oversight https://lwn.net/Articles/344471/ https://lwn.net/Articles/344471/ bronson <div class="FormattedComment"> <font class="QuotedText">&gt; the problem discussed is related to the fact that GPLv2 uses unprecise definitions</font><br> <p> I did read the article so, yep, I know that it brought up more issues than this one. You read the whole thing too, right?<br> <p> If the problem were truly that the GPLv2 uses imprecise terminology then all the FSF has to do is release a GPL2.1 with language bugfixes, or even just an addendum describing language intent.<br> <p> <font class="QuotedText">&gt; Since FSF is not a copyright holder of Git/udev/etc it's hard to see what the hell FSF can do here.</font><br> <p> There are two sides to every integration problem. The most obvious thing the FSF can do is, gosh, simply let the runtime library be usable anywhere. Or, they could roll back to the 2008 license, probably with *minor* changes: <a href="http://lwn.net/Articles/316835/">http://lwn.net/Articles/316835/</a> (like foom says)<br> <p> I'm sure they have other options too.<br> <p> <p> </div> Thu, 30 Jul 2009 16:03:25 +0000 Seems like a real problem at first sight https://lwn.net/Articles/344418/ https://lwn.net/Articles/344418/ jond <div class="FormattedComment"> Well it's still theoretical, because nobody has done this yet :) but the point you make is that theoretical does not mean unimportant.<br> </div> Thu, 30 Jul 2009 12:51:55 +0000 Fatal oversight https://lwn.net/Articles/344413/ https://lwn.net/Articles/344413/ foom <div class="FormattedComment"> <font class="QuotedText">&gt; it's hard to see what the hell FSF can do here</font><br> <p> Well, there's certainly one obvious and trivially correct thing they could do...<br> Change the license on libgcc to GPLv2+ :)<br> </div> Thu, 30 Jul 2009 12:40:26 +0000