This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFH: GPLv3


Ian Lance Taylor wrote:
Michael Eager <eager@eagercon.com> writes:

Ian Lance Taylor wrote:
Mark Mitchell <mark@codesourcery.com> writes:

2. GCC 4.2.1 will be the last GPLv2 release.  The FSF will permit
backports from mainline to GCC 4.2.1, if necessary, to be downlicensed
to GPLv2, as part of that release.
I believe that we should make a clear statement with that release
that
any future backport from a later gcc release requires relicensing the
changed files to be GPLv3 or later.  I believe this is consistent with
the two different licensing requirements, and I believe it is feasible
if inconvenient for vendors who distribute patched gcc releases.
If I understand you, that means that backporting a fix from gcc-4.4
to gcc-3.4 would suddenly make everything in gcc-3.4 fall under GPLv3.

I understand that you may be talking about public branches, but
there are (many) people who are currently using and maintaining
previous releases.  The same rules would apply equally to private
backports of patches.

This would be chaotic.  Acme Co's version of gcc-3.4 might be GPLv2
while MegaCorp's gcc-3.4 might be GPLv3.

Your understanding of what I am saying is correct. I agree that this is not ideal. However, I do not see an alternative. And you didn't propose one. I encourage you to think of one.

Here's an alternative:


Since copyright is owned by FSF, they (via the steering committee)
can license them under different licenses.

Patches applied to gcc-4.<gplv3> are licensed under GPLv3.
Patches applied to previous versions are licensed under GPLv2.

I understand Daniel's comment that the FSF doesn't want to
do this, but the other way is simply chaos.

That said, I don't really agree with your claim that having some
versions of gcc 3.4 under GPLv2 and some under GPLv3 will be
"chaotic."  For gcc users, the licenses simply don't differ
significantly.

Users include legal departments at major (and minor) corporations.


I've found myself in the curious position of explaining
patent and copyright law to lawyers, and I've even managed to
get them to agree with me on rare occasions.  I can assert that
GPLv2 and GPLv3 are not substantially different, but I have little
belief that they will take my word as gospel.

I anticipate that almost every legal department will want
to review the 11 pages of the GPLv3 in detail before they
agree to distribute under that license.  This is not high
on their priority list and there is no compelling reason
why they need to do this before other pressing matters.

The simple expedient is that legal departments will say
that until they have reviewed GPLv3, that only GPLv2 is
acceptable.

This makes for an interesting situation.  If I develop a
patch to correct problem in a client's version of gcc, I can
apply it without problem.  If I submit it to FSF (although
most of my fixes are to proprietary code, some are general),
then whether the client can use this under GPLv2 or not
depends on whether they get it directly from me or as part
of distribution from FSF.

Patches which are applied to the head which also fix
problems in prior branches would be excluded, since
they would be GPLv3.

As proposed, applying a GPLv3 patch to any earlier version
(whether on a open source branch or not) would convert that
version to GPLv3, as I  read provisions of GPLv3 5.b and 5.c,
which say that the "modified work" must be distributed under
*this* license.  For public branches, this means that at
some unknown time, the entire branch might be converted to
GPLv3 and any fix in that branch would become GPLv3, even if
that fix were applied months ago.  I could pick up a fix on
Monday that was GPLv2, and pick up the same fix on Tuesday,
and discover (or more likely, not discover) that the same
fix was GPLv3.

I think this is a fine working definition of chaotic.

In the face of chaos, most corporations are going to simply
stop and wait for the maelstrom to subside.

My personal preference would be to acknowledge that for our users
there is no significant difference between GPLv2 and GPLv3.  And we
should acknowledge that people backporting patches from later releases
are already going to have to relicense to GPLv3.
That's going to stop all private development until corporate legal
folks get into sync with GPLv3.

Correct, for people who distribute gcc.

All of the semiconductor companies, for instance.


The only people who may be discomfited by that choice are distributors
of gcc who are unwilling to distribute code licensed under GPLv3.
And anyone using any past release.

Incorrect. It only matters for distributors, not users.

Sorry, where do the users get their versions of GCC? From distributors. Suggesting that you can make it difficult for a distributor to apply fixes to gcc without affecting their users is hiding the impact of the problem.

Again, I am just the messenger here.  I would like to see a different
approach, but what could that be?

Dual licensing, where patches applied to exiting GPLv2 branches are licensed under GPLv2, and patches applied to new branches are applied under GPLv3.


-- Michael Eager eager@eagercon.com 1960 Park Blvd., Palo Alto, CA 94306 650-325-8077


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]