|
|
Log in / Subscribe / Register

Stallman on GCC, LLVM, and copyleft

Stallman on GCC, LLVM, and copyleft

Posted Jan 27, 2014 23:56 UTC (Mon) by khim (subscriber, #9252)
In reply to: Stallman on GCC, LLVM, and copyleft by Del-
Parent article: Stallman on GCC, LLVM, and copyleft

> that's why Android comes with no libstdc++.so.*

Care to enlighten me, exactly what legal issues are there related to using libstdc++? AFAIK it is linked in just about any proprietary application out there.

But it's not distributed with these applications, right? Big difference. You see, libstdc++ uses straight GPLv3 (not LGPL!) which means that if libstdc++.so.* is shipped on device one will need to privide some means of installing it.

Now, why can “normal” proprietary programs can ever use libstdc++ if it's under GPL, not LGPL? Because they don't ship libstdc++ by itself and thus are covered by the appropriate exception. Said exception may or may not cover distribution of libstdc++.so.* as part of the Android image (it's not clear which part of exception will play if we are talking about libstdc++.so.* distributed in isolation), but Google is not taking any chances. In fact Google is busy bringing LLVM and Clang to the condition where they could replace GCC. GPLv3 is big part of the reasoning.

With Google opting for Apache, I am pretty sure any switch to LLVM will be despite its license, not because of it.

Not exactly. Google prefers Apache, sure, but if choice is between GPLv3 and BSD then choice is obvious (BIONIC was based on BSD libc, after all).

Please provide documentation that HTC lost carriers over offering tools to root their phones.

Why would it lose carriers if it's all too ready to lock phones again at their request? Yes, HTC made a mistake and issued unlocker which was usable for carrier-subsidized phones. Mistake is rectified so no biggie. I'm pretty sure someone at HTC got pretty good cheving over said mistake, but in the end status quo is restored. It was available in the wild for exactly one day—recall that usually updates take months till they are rolled out in the wild (that's true for HTC at least, some other manufacturers are faster) and this will say everything you need to know about the situation.

Make up your mind, do you believe that copy-left makes sense?

Once upon time it made sense. Not anymore. Landley gave tech talk which explains what happened and why. In nutshell: GPLv2 was kinda-sorta-accepted by industry and it was loved by open-source and free-software folks, too which basicallu put the situation at the uneasy truce. But GPLv3 became a land-grab attempt and this gave clear signal to the industry: you can not trust FSF (and ideally need to drop GPL altogether if possible). The backlash was stricking: not only GPLv3 failed to achieve it's objectives (I know exactly zero devices which were opened up because of GPLv3; the most I've seen are some proprietary programs designed to inject GPLv3 binary in otherwise tightly locked firmware) it made GPLv2 weaker.

Linux is kind of exception: it's developers were pretty vocal about their thought on said land-grab which means that industry don't need to fear Linux because it'll remain where it started WRT licensing. Other projects are not so lucky… well, Blink and WebKit are fine, too (they use BSD license for all new files and only use LGPLv2.1 for old files which may even eventually disappear). Some other projects could be trusted, too, but in general GPL went from “this is the beast we know” to “this is something we need to discuss on case-by-case basis”.

Counting in GPLv2+ projects (which is also available under GPLv3), I believe you are looking at GPLv3 being the most used open license in the world.

Right. <sarcasm>Let's add Apache and BSD liceses to the list, too (because, you know, they are GPLv3-compatible).</sarcasm> When this article was written almost 70% of projects were GPL. Straight GPL! Not GPL+LGPL+BSD+whatever-you-want-to-repaint-as-your-ally. Today… six years after release GPLv3 is still used by many times smaller number of projects than GPLv2 and even if you combine GPLv2 and GPLv3 you still have much smaller number that GPLv2 had ten years ago.


to post comments

Stallman on GCC, LLVM, and copyleft

Posted Jan 28, 2014 2:15 UTC (Tue) by mathstuf (subscriber, #69389) [Link] (3 responses)

> But GPLv3 became a land-grab attempt and this gave clear signal to the industry

If the GPLv2 had the GPLv3 terms would it be the same situation we're in now, or was the act of adding the terms to all projects which used '+' the problem?

Stallman on GCC, LLVM, and copyleft

Posted Jan 28, 2014 2:55 UTC (Tue) by dlang (guest, #313) [Link] (2 responses)

I don't think people would be avoiding GPL as much as they are, but I also don't think that it would be nearly as popular as GPLv2 was, and how much of the GPLv3 popularity is holdover from GPLv2 by people who don't know/care about the differences is hard to say.

I think the problem is a combination of both the terms and the change

on the one hand, if GPLv2 had the GPLv3 terms, I don't think it would have been as popular

but the fact that the terms changed in a way that many people consider very significant has also made it so that people don't trust the FSF to not make other changes in the future that could cause them even more problems, so they are much more paranoid about trusting GPLv3/GPLv3+ code than if the terms had been there from the start

Stallman on GCC, LLVM, and copyleft

Posted Jan 28, 2014 13:37 UTC (Tue) by pboddie (guest, #50784) [Link] (1 responses)

It's true that a number of people probably didn't know what to think about the eventual result of the rather long and rather democratic GPLv3 drafting process, and as a result of that uncertainty, fuelled by punditry about the supposedly disastrous consequences on adoption by "the industry" by people who should know better, some people adopted the "footprint in wet concrete" approach to licensing and insisted on "GPLv2 only" for their stuff.

It's a shame, though, that these people didn't appreciate that some of the additional measures in GPLv3 - thinking of the strengthening of patent litigation protection - were becoming the norm even in permissive licences, whilst other things - thinking of access to the four freedoms in "consumer devices" - may already be governed by the GPLv2, although bkuhn can probably say more about these things (as I believe he mentioned the latter in particular at one point).

If anything can be said about attitudes towards the GPL, perhaps it can be concluded that the "look the other way" mentality about various edge cases in GPLv2 couldn't be sustained with GPLv3 applied to works, and those benefiting from that mentality were obviously upset as a result. But I hardly think that selective enforcement of licences and discretionary grey areas of licensing are a sustainable way of delivering Free Software to wider society: there's always the risk that someone will get away with something undesirable (making patents a "kill switch" for licensing conditions, for example) and then use some ill-advised discretion by a project to legitimise doing so, without exception and without limit, for all Free Software.

Stallman on GCC, LLVM, and copyleft

Posted Jan 29, 2014 1:31 UTC (Wed) by dlang (guest, #313) [Link]

It wasn't a case of 'misunderstandings by people who should know better', it was a case of fundamental disagreement over what the requirements should be.

The anti-tivo clause is a perfect example. Linus stated that requiring that the code for the device be provided is good, requiring that you be given enough info to modify the software on the device was over the line.

that's not a misunderstanding of terms, that's a different requirement.

If you look at the angst that people have about secure boot and how some features need to be disabled or else the key will be revoked it seems very reasonable for companies who are building devices to be very worried about what the content providers would do to them if they gave out the info that let hackers modify the software on their devices to ignore any restrictions that are built in to the software.

you may not like that, but either it's a reasonable thing to do or this entire secure boot brouhaha is meaningless.

The FSF got a lot of feedback opposing this policy, but they decided that it was important enough to include even with all the opposition from opensource developers. And then they made it very clear that if this didn't end up with the result they wanted, they would make further changes going forward as they thought best.

this is the "I have changed the deal, and I will change it again if I want" attitude that many people saw that pushed them away from GPLv3

Stallman on GCC, LLVM, and copyleft

Posted Jan 28, 2014 10:07 UTC (Tue) by Del- (guest, #72641) [Link]

> In fact Google is busy bringing LLVM and Clang to the condition where they could replace GCC. GPLv3 is big part of the reasoning.

Please provide documentation. If you are only making this up as you go along, then please be honest about it. LLVM taking over GCC has been talked about for eight years now, and I see no sign of that happening yet. Actually, LLVM taking over GCC does not even make sense. LLVM is not a compiler, it is a project for creating compilers. If it out-competes parts of GCC, there is little preventing GCC from using LLVM as an optimizer tool. What I have seen over these years is GCC out-competing all proprietary compilers, with Intel as the last hold out. Yes GCC, not Clang, it doesn't even have openmp yet, so it will only be a real contender in a year or so.

> it's not clear which part of exception will play if we are talking about libstdc++.so.* distributed in isolation

So you don't know, and I am getting a bit tired of doing all the digging for you. Before you spout more statements, I suggest you dig further and figure out if bundling libstdc++.so with Android is a license violation or not. Maybe the Necessitas guys at Digia can help you out.

Why Google did bionic I don't know, but it can very well be for other reasons than license. Again, I have not seen any issues building proprietary stuff with glibc. After all, all applications on linux does it.

> Why would it lose carriers if it's all too ready to lock phones again at their request? Yes, HTC made a mistake and issued unlocker which was usable for carrier-subsidized phones.

Sorry, but I am starting to feel really grumpy. Let us sum up your findings:
-no carriers lost
-tool reverted for one phone in August 2013 (a weak and struggling HTC caving in)
-tool provided two years earlier (ref. http://www.htcdev.com/bootloader ), with no carriers lost for the entire two years
I call that pretty sound proof that the unlocking thing is a no-brainer. It did not shut anybody out of the market, and it will not shut anybody out of the market as long as somebody stands up. Right now you seem to be part of the problem, not part of the solution.

Actually this reminds me of when Netflix claimed that they could not make a version for linux because they needed the whole system locked down. Only silverlight could do the trick, and it was a demand from Hollywood. Finally, TI made a chip where they hard-wired DRM into it to satisfy the claimed demands of Hollywood so that the first Android device finally got Netflix. Fast forward a few months later, Netflix was available on all Android phones (apparently they could not withstand the anger of all the customers being left out). Only weeks later they started to provide patches for Netflix on CyanogenMod, at the time a totally DRM free version of Android.

I am sick and tired of intelligent people telling me that it is all hopeless, and that we should just give up. Giving up is not an option.

> Right. <sarcasm>Let's add Apache and BSD liceses to the list, too (because, you know, they are GPLv3-compatible).</sarcasm>

This is beneath you, you should know GPLv2+ provides the code "at the recipients option" under GPLv3. That is very different from blending in GPL compatible code. For all practical purposes you can regard GPLv2+ as providing the same rights as GPLv3+, only differnces is that you can mix it with GPL2-only code, and fork it to GPL2-only code.

> Today… six years after release GPLv3 is still used by many times smaller number of projects than GPLv2 and even if you combine GPLv2 and GPLv3 you still have much smaller number that GPLv2 had ten years ago.

And why do you think this is? I can only see two important factors in keeping GPL2 alive. One is that Linus fought it, and he is pretty influential. The other is that FSF made GPLv2 and GPLv3 incompatible, a terrible mistake that makes me want to cry.

Stallman on GCC, LLVM, and copyleft

Posted Jan 29, 2014 23:54 UTC (Wed) by nix (subscriber, #2304) [Link] (1 responses)

You see, libstdc++ uses straight GPLv3 (not LGPL!)
This is factually incorrect. If libstdc++ used either license it would be nearly impossible to compile non-GPL C++ programs, because a lot of libstdc++ is implemented in header files.

See any file at all in libstdc++, and the Runtime Library Exception.

A license with this exception is GPL- and LGPL- and for that matter BSD-compatible, but it's not the GPL any more.

Stallman on GCC, LLVM, and copyleft

Posted Jan 29, 2014 23:56 UTC (Wed) by nix (subscriber, #2304) [Link]

And, er, you said as much in the next paragraph. I wish there was a way to delete stupid comments on LWN (or maybe just my own).


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds