[Xorg] The big multiconsole nasty
thomas at winischhofer.net
Wed Jul 7 07:32:29 PDT 2004
Egbert Eich wrote:
> Thomas Winischhofer writes:
> > I said "look at", not "copy". "Writing identical values to registers" is
> > certainly not violating the GPL.
> This is exactly the problem: It isn't clear to me (and others here
> probably have the same problem) how far one can go. Register values
> are not the only problem, it may be the order in which they are
> written (which often is not trivial to get right) or some other algorithms
> which when I have seen them I probably would implement in a similar way.
This is getting a little OT now... but anyway:
[Disclaimer: The following is quite simplified.]
None of this is covered by copyright. Only the *very* *implementation* is.
Algorithms or ideas are never subject to copyright (and hence the
license), but eventually patents (in those poor countries where this
idiocy has been incorporated in law).
is two things:
1) what you see (the letters, digits etc) is eventually subject to
copyright. (Copyright originally was intended for literature or music or
other works of art. The idea was to protect the author's creativity in
terms of language, expressions, or - in case of music - the melody = the
sequence of tones = the language of music.)
2) what it does (setting all i2c data and clock bits on sis chips :) -
never try this at home ;)) is eventually subject to software patents.
To be subject to copyright requires the code in question to be somewhat
non-trivial which in copyright law is called "creative" (otherwise there
would be a copyright on for()-loops using i as the loop iterator - or,
even worse, for every-day phases in any spoken language).
Writing values to registers (which translates more or less 1:1 to
assembly) is not "creative". You can't copyright code that writes 0x0f
to sequencer register 0x3c4 index 0x11 (especially when considering that
there is only one possible statement to do so).
If such code is covered by a calculation or a special algorithm that
writes the registers in a certain order, this very implementation (=what
you see) is copyright-ible. If you do the same, but in a different
implementation, it is no copyright infringement. Simple for()-loops
writing registers in order, reading the data from a CARD8-array is not
From a practical point of view: Make the code look as different as
possible. For us, getting sued is enough trouble, and winning or losing
is secondary. If you want to avoid anybody even getting ideas, the code
should look really different.
To make absolutely sure, use macros for even trivial statements. The
fact that the linux kernel, for example, uses outb(data,port) whereas X
uses outb(port,data), is a good start anyway ;)
And please: This is no invitation for copyright infringements ;)
> You probably know much more about these things than I do.
Well, my doctor degree in law is more or less the result from a thesis
on software patents.
German speaking people on this list are welcome to read this thesis (in
a shortened version) which is freely available on my website.
thomas AT winischhofer DOT net *** http://www.winischhofer.net
twini AT xfree86 DOT org
More information about the xorg