Quake 3 New Suggestion

Submitted 980428, comments to bk@gamers.org.

Q3 Source Releases with GPL mechanism

Summary:

All future id source releases, whether tools (editor, map compiler) or games (Q1/Q2) should be subject to a License that includes a GPL-like mechanism to enforce source releases.

Advantage:

Anybody basing his/her work on publicly available sources that contribute to his/her work will be forced to give back to the public base.

Disadvantage:

Commercial, semi-commercial undertakings and efforts done by coders that do not feel comfortable with this solution are discouraged.

Implementation:

For id's purposes, a GNU GPL does not apply, as it allows for several means of charging for services (distribution on CD ROM or by other paid-for means, Cygnus-like support and development contracts).

A possible addition to any id License would be something like:

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code on a medium customarily used for software interchange; 
    or,

    b) Accompany it with complete instructions on how to obtain the
    source code from a site accessible by a customarily used
    protocol like FTP or HTTP.

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.
The above is a slightly modified excerpt from the GNU Public License, which should be consulted for details.

Related Proposals:

From an exchange with John Carmack, on Fri, 6 March 1998:

>I want to repeat my suggestion to consider a GPL/GNU
>like mechanism to enable modifications of
>modifications - distribution of modified sources
>should be mandatory and enforced.

A situation recently came up where I was able to make a 
solid biz case for GPLing all of our released source code.
I am almost certainly going to do that in the future. I 
have some questions about retroactively GPLing already 
released code, though.