On Mon, 05 Mar 2001 14:02:03 +0900, "Stephen J. Turnbull"
The GPL _does_ require that you make any patches available for three
years. Now, much of the code in a .elc is actually inline-expanded by
the byte compiler. Recently there was a bug fix to the byte compiler
which changed the inline code, requiring a rebuild of every package.
We have no way of tracking that, but the letter of the GPL probably
requires us to do so if we distribute .elcs. (This doesn't apply to
GCC on Linux, because it's part of the system.) And it certainly
Umm.. how is this any different than the "RedHat distributed a GCC 2.96
snapshot that won't compile the kernel correctly" problem? Does this mean
that Linus has to put gcc patches into the kernel distro, under the theory
that "you need gcc 2.96+patches to build it"? I don't see why the Linux
kernel gets away with just saying "you need gcc such-and-such, modultils
such-and-such, PPP such-and-such" - if that's OK, we certainly should
be able to just say "You need XEmacs 21.2.<mumble> or later so you have
a non-buggy byte compiler". Consider the text in the Linux 2.4.2 kernel
Documentation/Changes file regarding compilers:
The recommended compiler for the kernel is egcs 1.1.2 (gcc 2.91.66), and it
should be used when you need absolute stability. You may use gcc 2.95.2
instead if you wish, although it may cause problems. Later versions of gcc
have not received much testing for Linux kernel compilation, and there are
almost certainly bugs (mainly, but not exclusively, in the kernel) that
will need to be fixed in order to use these compilers. In any case, using
pgcc instead of egcs or plain gcc is just asking for trouble.
In fact, *most* of that 'Changes' file just lists "You need these at this
level" requirements. And *nobody* seems to have an issue with this.
And that's with RedHat, Suse, Debian, and all the other distros shipping
I'm apparently missing something here, but I see 4 cases:
1) XEmacs base code .elcs that went out with a buggy byte-compiler. Hey,
we didn't know, there isn't much we can do about them.
2) XEmacs base code .elcs that has the patch. It's got the patch in the
source tree that we distribute with the .elcs, that patch will stay in
the source that gets distributed for 3 years. We're done.
3) Xemacs packages that went out after being compiled wiht a buggy
byte-compiler. See (1).
4) XEmacs packages after the bug was found. Stick a "You need a
fixed byte compiler" label on it. I don't see that we have any
more requirement than putting "You will need XEmacs 21.2.<mumbled>
or later to re-build these .elcs". I've not seen anybody required
to drag along kernel patches for the older kernels - a "You need
kernel 2.2.foo or later" suffices. I've not seen anybody required
to drag along gcc patches - saying "This trips up gcc 2.7, use 2.95
or later" suffices.
I'm obviously not being anal-retentive enough about the GPL's intent.
What am I missing here?