|
|
Subscribe / Log in / New account

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 24, 2014 22:21 UTC (Sat) by jb.1234abcd (guest, #95827)
In reply to: TechView: Linus Torvalds, Inventor of Linux (Huffington Post) by madscientist
Parent article: TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

> All the libraries that are part of the compiler have special exceptions
> which allow them to be used in proprietary programs as a result of being
> built with GCC/binutils.

Yes, we are aware of it:
http://www.gnu.org/licenses/gcc-exception-faq.html
Despite that (subject to interpretation by lawyers - see my previous post) many people do not want to get involved. They want to have a clear separation between GPL and BSD (or others).

Also:
http://en.wikipedia.org/wiki/Clang
"Finally, GCC is GPL version 3 licensed, which requires developers who distribute extensions for (or modified versions of) GCC to make their source code available, whereas LLVM has a BSD-like license[10] which permits including the source into proprietary software."


to post comments

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 24, 2014 23:47 UTC (Sat) by madscientist (subscriber, #16861) [Link] (13 responses)

The fact that you're aware of it just means that rather than speaking from ignorance, you are instead intentionally spreading FUD.

I have no opinion on whether anonymous "people" want to "get involved" or not, or what they feel about "clear separation between GPL and BSD" (is there any other sort of separation? I'm not sure what this is supposed to mean).

I'm commenting your 100% wrong assertion that "The gcc-compiled binaries can not be licensed freely under any licence you like". That is a factually incorrect statement.

The FSF (which as you're probably aware is the sole copyright owner for GCC and as such is the only entity with standing to initiate legal action for copyright infringement) has placed a legally binding exemption to the GPL into the software. They have further provided a "simple English" statement as to what they believe and intend the exemption to mean. What you think it means, or I think it means, or even what lawyers or the courts think it means is totally irrelevant unless the FSF initiates a legal action, and they've made clear that they don't consider compiling programs with GCC and distributing them under a license which is not compatible with the GPL (any version) to be infringement of GCC's copyright.

And if you don't trust me then note that, as I pointed out, companies with far more to lose, and with some of the most savvy and risk-averse legal teams around, have no problem distributing proprietary programs built with GCC.

> Finally, GCC is GPL version 3 licensed, which requires developers who
> distribute extensions for (or modified versions of) GCC to make their
> source code available

This is clearly true, and in fact actually intended and expected. That's the entire point of HAVING the GPL, regardless of version: this objection was just as true with the GPLv2; where were all the complaints then? Oh yes, it wasn't until the increased patent protections were added in GPLv3 that "people" seemed to get upset...

However, although that is a true statement it is absolutely irrelevant for this discussion.

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 25, 2014 1:37 UTC (Sun) by khim (subscriber, #9252) [Link] (3 responses)

I have no opinion on whether anonymous "people" want to "get involved" or not, or what they feel about "clear separation between GPL and BSD" (is there any other sort of separation? I'm not sure what this is supposed to mean).

Yes, sure. I'll show you.

What you think it means, or I think it means, or even what lawyers or the courts think it means is totally irrelevant unless the FSF initiates a legal action, and they've made clear that they don't consider compiling programs with GCC and distributing them under a license which is not compatible with the GPL (any version) to be infringement of GCC's copyright.

Right. It's Ok to distribute a program linked to libstdc++.so because of Runtime Library Exception. It says quite clearly that You have permission to propagate a work of Target Code formed by combining the Runtime Library with Independent Modules, even if such propagation would otherwise violate the terms of GPLv3, provided that all Target Code was generated by Eligible Compilation Processes.

But what about libstdc++.so itself? When you distribute it you distribute something build not from combination of Runtime Library and Independent Modules, but something built solely from sources of the Runtime Library! Exception is not in play and pure GPL applies. Which, as we all know, includes anti-Tivozation clause. Which means that BSD OS with libstdc++.so included is affected by GPLv3: one must provide a way to replace libstdc++.so on the device because that's requirement of GPLv3 and Runtime Library Exception is not in play.

Does it look like The GPL is isolated to the compiler itself, not the whole distribution? I think not.

One could cope with this problem by refusing to provide libstdc++.so (that's how Android solves this problem, e.g.), but it's clearly simpler and more robust to not ship libdtc++ at all and use libc++. Which implies LLVM.

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 26, 2014 14:41 UTC (Mon) by andza (guest, #72692) [Link] (1 responses)

Hm, that's an interesting thought about libstdc++.so itself being GPLv3. I've never thought of the implications of this, especially concerning the world of embedded Linux.

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 26, 2014 22:45 UTC (Mon) by simlo (guest, #10866) [Link]

Me neither.

I understand that FSF want to avoid that people lock down devices with crypto. But I have a problem with mandating to document a way to update the GPLv3 parts:

A typical practice within embedded is to make a complete filesystem image including GPL'ed and non-GPL'ed parts and mount it read-only. The only way to update the system is to update the full image, through a very specific upload procedure, for instance via a USB stick or via ftp.
Now if the user wants to update libstdc++.so, either some kind of ftp, scp access have to be given to the user, the system needs to be mounted rw. The hardware might even not support that.

Or the user shall be able to build his own image and from the bits already on the device + the newly build libstdc++.so.

Neither solution are practical for the device manufactures - which might be some small company making a small Linux device, it does not have to be a big phone company.

I would prefer that FSF softenes the language, such that it shall be forbidden to make obstacles to updating GPL parts by using crypto or checksums to avoid booting the modified software, but not mandating that there should be an manual for how to update it.
The way "device hackers" would be able to update it as they would for a non-crypted GPLv2 device, but not normal persons.

PS. I work with embedded Linux, but it does not fall under "User Products", so I am not worried about it.

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 27, 2014 11:59 UTC (Tue) by madscientist (subscriber, #16861) [Link]

> Does it look like The GPL is isolated to the compiler itself,
> not the whole distribution? I think not.

You are arguing a straw-man here. I made no comments about "whole distributions". Yes, it's true that even though GCC's license doesn't apply to your binary that doesn't mean you can distribute libstdc++.so itself without obeying its licensing restrictions, which are GPLv3. But, that has no relationship to what the original poster claimed, and what I was replying to, which was:

> The gcc-compiled binaries can not be licensed freely under any licence
> you like (binaries will be linked against libraries which are part of
> the compiler, and the viral nature of GPLv3 means that the resulting
> programs have to be licensed under GPLv3).

However, regarding your issue you have these options: either don't distribute libstdc++.so yourself and rely on the distribution to provide it (that's what virtually all GNU/Linux proprietary programs do), or distribute libstdc++.so yourself and obey the licensing restrictions for that library (which still do not apply to your binary, and are not more onerous than GPLv2 except in very specific circumstances where things like TiVo-ization come into play), or don't distribute libstdc++.so as an independent library (that is, statically link libstdc++.a).

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 25, 2014 8:13 UTC (Sun) by jb.1234abcd (guest, #95827) [Link] (8 responses)

> Finally, GCC is GPL version 3 licensed, which requires developers who
> distribute extensions for (or modified versions of) GCC to make their
> source code available

> This is clearly true, and in fact actually intended and expected. That's
> the entire point of HAVING the GPL, regardless of version: this
> objection was just as true with the GPLv2; ...

Let me ask this question.
What is the difference, from GPL point of view, between a proprietary
module added to GPLv2-licensed Linux kernel, and an extension added to
GPLv2/v3-licensed gcc, both compiled with GPLv2/v3-licensed gcc ?
My understanding is that both are "extensions". Then why they are treated
differently ?

Additional Ref:

Proprietary loadable kernel modules
http://lwn.net/Articles/434491/

Has Bionic stepped over the GPL line?
http://lwn.net/Articles/434318/
...

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 25, 2014 9:29 UTC (Sun) by khim (subscriber, #9252) [Link] (4 responses)

What is the difference, from GPL point of view, between a proprietary module added to GPLv2-licensed Linux kernel, and an extension added to GPLv2/v3-licensed gcc, both compiled with GPLv2/v3-licensed gcc ? My understanding is that both are "extensions". Then why they are treated differently ?

Because GCC Runtime Library Exception is structured that way. You can create a proprietary extension for GCC, but then you'll be forced to replace libgcc and libstdc++ with something else. Doable, but… switching to LLVM is easier.

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 25, 2014 10:14 UTC (Sun) by jb.1234abcd (guest, #95827) [Link] (3 responses)

http://repo.or.cz/w/official-gcc.git/blob/HEAD:/COPYING.R...
...
1. Grant of Additional Permission.

You have permission to propagate a work of Target Code formed by
combining the Runtime Library with Independent Modules, even if such
propagation would otherwise violate the terms of GPLv3, provided that
all Target Code was generated by Eligible Compilation Processes. You
may then convey such a combination under terms of your choice,
consistent with the licensing of the Independent Modules.
...

Why is the GPL requirement for source code availability enforced in case of
a gcc extension but not close-source proprietary kernel module ?

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 25, 2014 13:06 UTC (Sun) by simlo (guest, #10866) [Link] (2 responses)

As far as I can see, the exception allows distribution of statically linked programs against libstdc++, but the libraries themselves are LGPLv3. I think the exception is not that easy to interpret. Can anyone point to some authorized interpretation ?

GPLv2 does not allow distribution of Linux kernel modules along with the kernel. But I am free to download what ever code and load into the kernel on my machine, but if I give my machine away I would violate GPL. But due to the kernel community's weaker interpretation it is not enforced.

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 25, 2014 14:36 UTC (Sun) by khim (subscriber, #9252) [Link] (1 responses)

Libraries themselves are GPLv3+, not LGPLv3+ (there are some LGPLv3+ libraries in package, but the main ones: ligcc and libstdc++—are GPLv3+). And since bits and pieces are embedded into the executable without this exception you'll not be able to build anything except for GPLv3+ programs. As I've said before: technically speaking, propriatery exceptions are not forbidden—but you could only use them to compile GPLv3+ programs. There are FAQ which explain how that works in more details.

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 27, 2014 12:27 UTC (Tue) by madscientist (subscriber, #16861) [Link]

Just to be clear, you're talking here about situations where there is a proprietary extension (not "exception") to GCC being used.

If you don't use proprietary extensions to GCC when you create your binary then the program is not subject to the GPL, as we've been discussing.

And yes, one of the main goals of the exception clause (the reason it's so complicated) is that the FSF wants to specifically not allow (or at least make infeasible) using proprietary extensions with GCC. If you want to add proprietary extensions to your compiler then by all means, you should be using LLVM. I believe this is a loss for free software, but obviously others disagree.

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 27, 2014 12:20 UTC (Tue) by madscientist (subscriber, #16861) [Link] (2 responses)

> What is the difference, from GPL point of view, between a proprietary
> module added to GPLv2-licensed Linux kernel, and an extension added to
> GPLv2/v3-licensed gcc, both compiled with GPLv2/v3-licensed gcc ?
> My understanding is that both are "extensions". Then why they are treated
> differently ?

The shortest answer is, because the FSF and Linus interpret things differently. That's why my previous point about licensing only mattering if someone actually takes legal action is important.

Although the Linux kernel has thousands of copyright holders, with (sometimes wildly) diverging views on how the GPL applies to proprietary modules (for example, there are kernel developers who _do_ believe that all kernel modules must be distributed under the GPL), all Linux copyright holders seem content to go along with Linus's interpretation, which is (as I understand it) that if your kernel module only uses a particular set of well-defined APIs, then it is actually not a derived work of the kernel and so the GPL (as a copyright license) cannot legally apply to it.

If the FSF were the copyright holder to the Linux kernel it's likely that they'd interpret this differently and either completely disallow proprietary modules or else feel compelled to publish a specific, legal exception clause allowing them in particular situations, as they do with GCC's libraries.

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 27, 2014 12:57 UTC (Tue) by jb.1234abcd (guest, #95827) [Link] (1 responses)

> "... all Linux copyright holders seem content to go along with Linus's interpretation, which is (as I understand it) that if your kernel module only uses a particular set of well-defined APIs, then it is actually not a derived work of the kernel and so the GPL (as a copyright license) cannot legally apply to it."

Considering the above w/r to "uses a particular set of well-defined APIs",
is then, by analogy, Google Android's Bionic libc free from violating Linux
kernel's GPLv2 ?

Ref:
http://lwn.net/Articles/434318/

TechView: Linus Torvalds, Inventor of Linux (Huffington Post)

Posted May 27, 2014 13:16 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

Bionic has _always_ been in the clear. It uses only userspace kernel functionality.

Linus and other developers have always stated that the kernel GPL does NOT cross into userspace.


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