Emacs distributions are not GPL-compliant
| From: | Richard Stallman <rms-AT-gnu.org> | |
| To: | Paul Eggert <eggert-AT-cs.ucla.edu> | |
| Subject: | Re: Compiled files without sources???? | |
| Date: | Thu, 28 Jul 2011 19:00:17 -0400 | |
| Message-ID: | <E1QmZYv-0000Np-MO@fencepost.gnu.org> | |
| Cc: | dak-AT-gnu.org, emacs-devel-AT-gnu.org |
They are in Emacs releases 23.2 and 23.3. They have been in all
pretests since emacs-23.1.90, dated 2009-12-09. They were merged
into the Emacs trunk in bzr 97804, dated 2009-09-28; here's a
URL for that:
We have made a very bad mistake. Anyone redistributing those versions
is violating the GPL, through no fault of his own.
We need to fix those releases retroactively (or else delete them), and
we need to do it right away.
I see two quick ways to fix them: to delete the compiled files, or to
add the sources they are made from.
--
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
Use free telephony http://directory.fsf.org/category/tel/
Posted Jul 29, 2011 13:07 UTC (Fri)
by SEJeff (guest, #51588)
[Link] (14 responses)
Posted Jul 29, 2011 13:18 UTC (Fri)
by david.a.wheeler (subscriber, #72896)
[Link]
Posted Jul 29, 2011 17:45 UTC (Fri)
by VelvetElvis (guest, #69142)
[Link]
Posted Jul 30, 2011 0:53 UTC (Sat)
by sbergman27 (guest, #10767)
[Link] (11 responses)
Don't get me wrong. GPL, especially v2, has a lot going for it. As a software user and community member, it is my preferred license. But it has its own set of significant disadvantages as well. The fact that the project leader (or whatever his official capacity is with emacs), author of the GPL Vx, and evangelist of Free Software, could have let this mistake go unnoticed for so long a time says something about the state of affairs.
Posted Jul 30, 2011 1:26 UTC (Sat)
by tialaramex (subscriber, #21167)
[Link] (3 responses)
So far as I've seen there's no evidence of that here. All that happened is someone imported a working piece of source code without understanding that this source code included parsers which were not hand rolled but generated by a parser generator. If it's not obvious (which I think it should be to any competent software developer) the GPL FAQ already explains that in this situation the grammar or other input for the parser generator are the source, and GNU include such grammars elsewhere, but in this case there was an oversight.
Still, as you've said it's very easy to admit to mistakes and they're "more about PR than anything else". So I'm sure you will promptly admit you made a mistake. Right?
Posted Jul 30, 2011 14:17 UTC (Sat)
by sbergman27 (guest, #10767)
[Link] (2 responses)
Posted Aug 1, 2011 8:44 UTC (Mon)
by niner (subscriber, #26151)
[Link] (1 responses)
Posted Aug 2, 2011 16:43 UTC (Tue)
by sbergman27 (guest, #10767)
[Link]
Regarding my alleged solicitation of ego-boosting posts... do you really think I was looking for ego-boosting posts?
At any rate, one only needs to review the uncountable threads in many forums to see that GPLvX's "teeth" have a downside in the form of complex implications. Friendly fire is a real problem. And it's charitable to call the fire "friendly" since it is the aim of the GPL to use its teeth even against other Free Licenses.
I certainly have no problem admitting that this situation is not an example. Was that not implicit in my previous posts? It's really no problem at all. Despite the costs, I guess I'm still pro-copyleft. But that's a topic which merits periodic re-evaluation.
I will say one other thing. I've been away for a while. Linux is still my one and only OS for home and for work. But if you (that's an impersonal "you") stop visiting Linux news sites for a while, and then come back, everything looks different. There is a certain indoctrination which comes from having one's views reinforced by like-minded people.
You can safely consider the last paragraph to be soliloquy, It's not directed at you.
Posted Jul 30, 2011 1:39 UTC (Sat)
by Trelane (subscriber, #56877)
[Link] (5 responses)
Or, alternately, he really does care about not violating the license.
Posted Jul 30, 2011 15:34 UTC (Sat)
by sbergman27 (guest, #10767)
[Link] (4 responses)
Posted Jul 30, 2011 17:51 UTC (Sat)
by tialaramex (subscriber, #21167)
[Link] (3 responses)
In my experience, after dealing with more than a dozens minor copyright violations, "This is a mistake, we will fix it" is actually one of the least frequent responses, coming far behind such chestnuts as "If I download something from the web then it's public domain and mine to do with as I please". Perhaps decent people are just very rare...
As to the fact that people receive praise for doing what _should_ be just part of their job, that's surely no criticism of either the people being praised or those who perceive this as extraordinary enough to praise them. The "Miracle on the Hudson" was a relatively straight forward emergency landing, performed by two experienced professionals. You should expect no less of anyone qualified to do their job. But one of them (often mis-identified as "the pilot" when in fact of course all such commercial airliners have at least two pilots) received particular praise and honour for ensuring the safe outcome.
Posted Jul 31, 2011 0:15 UTC (Sun)
by sbergman27 (guest, #10767)
[Link] (2 responses)
Wow. As long as we've sunk to this level, I may as well go ahead and say "I'm rubber, you're glue. Whatever you say bounces off me and sticks to you."
What I find interesting about all this is that people are acting as though Stallman might well have just swept this under the rug, but didn't this time.
Sorry if I seemed to be disrespecting your god. I'd forgotten how easy it was to rile the Cult of Stallman, even if unintentionally. I say this in hopes of not finding a bag of cat entrails on my doorstep in the morning.
Posted Jul 31, 2011 7:50 UTC (Sun)
by tialaramex (subscriber, #21167)
[Link] (1 responses)
But it is in sharp contrast to what you've said a "decent" person would do.
We have veered far off the topic. Meanwhile the original Emacs thread has developed, with the revelation that these machine generated parsers were changed by hand before they were committed. The maintainer apparently responsible doesn't seem to grok that this is a horrible situation not just for third parties who might want to alter the parser but for continued maintenance of GNU Emacs by the GNU project.
Posted Jul 31, 2011 15:26 UTC (Sun)
by sbergman27 (guest, #10767)
[Link]
You're greatly overestimating the degree to which I care about these trivialities. Some of us don't obsess upon FOSS mintutia. I used to do a bit of that, but decided it was a waste of time.
"The maintainer apparently responsible doesn't seem to grok that this is a horrible situation..."
Yes, truly horrible. I'd put in on par with the Oklahoma City bombing of 1995. Perhaps its time for NATO to get involved.
Posted Jul 30, 2011 22:50 UTC (Sat)
by ewan (guest, #5533)
[Link]
I don't see any evidence that anyone failed to understand what they were supposed to do; just that they accidentally didn't do it. If I trip over and faceplant into the ground it's not because I don't understand that it's going to hurt, it's because I tripped up.
Posted Jul 29, 2011 13:16 UTC (Fri)
by mrshiny (guest, #4266)
[Link] (1 responses)
Posted Jul 29, 2011 20:45 UTC (Fri)
by tialaramex (subscriber, #21167)
[Link]
That violation isn't the kind of thing that would ever see court (because it's someone else's mistake and it's trivially rectified anyway) but it technically will still be a violation.
It's a common misunderstanding of the GPL to assume that "there's an FTP site somewhere with the source code" meets your obligation to either redistribute or provide a written offer (and there's a variant which is even more pernicious, where people feel that since their changes to get the code to build on platform X were just a few hours work, it's OK to just post the platform X binaries with no source ...)
Posted Jul 29, 2011 15:03 UTC (Fri)
by groualland (guest, #77502)
[Link]
Posted Jul 29, 2011 16:09 UTC (Fri)
by iabervon (subscriber, #722)
[Link] (4 responses)
Posted Jul 29, 2011 16:47 UTC (Fri)
by bitshifter (guest, #70716)
[Link] (3 responses)
Posted Jul 29, 2011 17:02 UTC (Fri)
by quotemstr (subscriber, #45331)
[Link] (1 responses)
Posted Jul 29, 2011 17:41 UTC (Fri)
by bitshifter (guest, #70716)
[Link]
Posted Jul 29, 2011 17:22 UTC (Fri)
by iabervon (subscriber, #722)
[Link]
Posted Jul 29, 2011 17:08 UTC (Fri)
by emk (subscriber, #1128)
[Link] (8 responses)
Posted Jul 31, 2011 6:25 UTC (Sun)
by nicku (guest, #777)
[Link] (7 responses)
Posted Jul 31, 2011 8:14 UTC (Sun)
by tialaramex (subscriber, #21167)
[Link] (6 responses)
Maybe all or most modifications are cosmetic. Since the output of a parser generator isn't meant to be read (on the whole) unlike other code it's OK that it doesn't obey your house style, so these changes can be reverted. This is in many ways the best case.
Maybe the modifications can equivalently be performed in the generator input, perhaps by a more experienced programmer or one familiar with the quirks of the generator. This is also a good outcome.
Maybe you can live without the modifications. Perhaps they simplify some code outside the parser, but aren't strictly necessary. The reduced maintenance cost of using unmodified generator output may justify doing the extra work in your scaffolding. This isn't ideal, but you can live with it.
Maybe you need to modify the generator, to add a feature or fix a bug so that it can generate the code you want. This is in many ways the worst case, since you take on a significant additional maintenance burden unless you can get your changes upstream promptly. This solution is of course impossible if the generator is not provided as source code, or if your project needs to bootstrap on platforms where the generator is provided but you cannot rebuild it. But it might still beat your final option:
Otherwise maintain the patch as you described, knowing that it is brittle and may require frequent manual intervention to keep it working in the face of tweaks to the generator input, the generator, or the surrounding environment.
The same situation applies for regular compiled code too -- it's just that GCC gives you a heck of a lot more rope to try MacGyver-esque escape plans before you have to resort to patching the intermediary assembler files.
Posted Aug 1, 2011 10:00 UTC (Mon)
by dwmw2 (subscriber, #2063)
[Link] (5 responses)
That's not so far-fetched; sometimes your generator is a one-off thing which just provides a template that you then fill in with real code. I've seen GUI design tools which work that way, for example: it just generates code (and function prototype and stub callbacks etc.) to match your design, and you're supposed to fill in the missing parts to make it actually do something.
If they've gone so long without regenerating the parser from scratch and they've never noticed, and they've been modifying it by hand, it sounds like it could be plausible in this case too.
Posted Aug 1, 2011 13:35 UTC (Mon)
by tialaramex (subscriber, #21167)
[Link] (2 responses)
I have used generators of the sort you're describing and you're right that in these cases there was no "real" source, the output of the generator was the preferred form for future modifications as far as I (the main or only programmer) was concerned and the generator was of no further use to the project.
But in this Emacs case it appears more like False Laziness to me. There doesn't seem to be anyone claiming that the generator's output is now their preferred form for working on the actual parsers, just that it was easier to hack the output than make the generator work as they wished. Well, easier at the time.
Posted Aug 1, 2011 13:52 UTC (Mon)
by dwmw2 (subscriber, #2063)
[Link] (1 responses)
And right now, if I had to make simple modifications to it, that would probably be my preferred form too. I'd have a choice: either I could make my simple change to the C code that has already been modified by hand... or I could try to look at the existing modifications to the C code, then fix the generator (and its input) so it can generate functionally equivalent code, and *then* make my changes.
Posted Aug 1, 2011 16:32 UTC (Mon)
by nix (subscriber, #2304)
[Link]
Posted Aug 4, 2011 19:21 UTC (Thu)
by JoeBuck (subscriber, #2330)
[Link] (1 responses)
Likewise, declaring that the code generator output is the preferred form for modification is simply to lie; it is disproved by the fact that the developers don't work that way; they make changes to the input and re-run the code generator. The copyright holder can cross out that part of the GPL and write something else, but then it's no longer really the GPL.
Posted Aug 4, 2011 20:52 UTC (Thu)
by nix (subscriber, #2304)
[Link]
Posted Jul 30, 2011 10:43 UTC (Sat)
by schily (guest, #60311)
[Link] (1 responses)
But why did it take 10 years (and help from Suse) to find a solution for an intentional(*) Copyright problem in vcdimager?
Why are there still other problems with code from projects distributed by the FSF that is announced to be GPLv2+ or even GPLv3 even though the original authors did not give permission?
*) The problem was not intentional but accidental before the maintainer has been informed about the problem in 2001, but denied to fix it.
Posted Jul 30, 2011 15:34 UTC (Sat)
by rahulsundaram (subscriber, #21946)
[Link]
Emacs distributions are not GPL-compliant
Yes, props
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
He's managed to create liscensing of such complexity that even he doesn't completely understand the implications.
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
The output of bison was further modified by hand. How do you package all this? Package a patch to the output of bison to produce the code actually used?
Further complications: the output of bison was modified by hand
Further complications: the output of bison was modified by hand
Or you declare that the output of the generator is actually the preferred form of the work for making modifications to it.Further complications: the output of bison was modified by hand
Further complications: the output of bison was modified by hand
Well there was obviously a point at which for someone, the preferred form for modification was the output of the generator. Even if it was just because they were being lazy and it seemed easier at the time.
Further complications: the output of bison was modified by hand
Further complications: the output of bison was modified by hand
Abraham Lincoln used to tell a riddle to make a point: how many legs does a horse have if you call a tail a leg? The answer is four; calling a tail a leg doesn't make it one.
Further complications: the output of bison was modified by hand
Further complications: the output of bison was modified by hand
Emacs distributions are not GPL-compliant
Emacs distributions are not GPL-compliant
