Raven source code licensing

The Raven source code licensing issue was a problem caused by the license used by Raven Software to release the source code to their games, Heretic and Hexen.

In January 1999, the source code to Heretic, Hexen and the ACC script compiler was released by Raven, albeit under a restrictive EULA that prohibits many uses of the code and is incompatible with the GNU GPL. At the time of its release, the Doom source itself was only available under the Doom Source License, which was itself incompatible with the GPL.

The Doom source was later re-released under the GNU GPL; however, the Heretic and Hexen sources were not similarly re-released. Raven later released the Hexen 2 source under the GPL, but at the time, did not do the same for the Heretic and Hexen source. On September 4th 2008, the Heretic and Hexen sources were finally re-released under the GPL by Raven.

Inappropriate license
The license itself is a standard End User Licensing Agreement, of the kind that Raven would intend to attach to one of their games. As source code is different from the binary data shipped with a commercial game, the license is inappropriate for application to the Heretic and Hexen source. It includes various terms that are nonsensical; for example, that users may not "Make copies of this Program or any part thereof", effectively denying any right to distribute copies of the source code.

Crucially, the license does not grant permissions which are essential to any source code license. For example, the license does not grant permission to redistribute the source and make derivative works.

Raven's Kenn Hoekstra made an announcement after the source code was released, recognising the mistake and essentially admitting that the license was inappropriate. Despite this, the problem was not remedied by Raven until September 2008.

GPL incompatibility
The license used for the Raven code is incompatible with the GNU GPL. As the Doom source code is only available under the Doom Source License and the GNU GPL, it was not possible to release a properly Open Source (under the Open Source Definition) source port with support for Heretic and Hexen.

Various ports addressed this issue in different ways:
 * Some ports refused to include any Heretic or Hexen code, preferring to stay under the GNU GPL. Odamex is an example of this; a lengthy audit was made of the (ZDoom-based) source code to identify and remove any Raven source.
 * ZDoom placed itself under the older Doom Source License, in order to provide support for Heretic and Hexen features.
 * Doomsday isolated all Raven code in loadable modules that control the game behavior. As such, the core Doomsday engine and the Doom loadable module is available under the GPL, while the Raven portions are under a separate license.
 * The Eternity Engine attempted to rewrite some of the Heretic and Hexen features from scratch, so that those games may be supported while not using any of the copyrighted code. However, it has been argued that it may essentially be impossible in some situations to write certain functions that are not identical to the original versions.

Open letter and petition to Raven
Multiple attempts to contact Raven, to ask them to relicense the code, appeared unsuccessful. In response, James "Quasar" Haley wrote an open letter to Raven, asking them to relicense the Heretic and Hexen sources under the GNU GPL. The letter was signed by 35 prominent members of the Doom community, and backed by an online petition that attracted over 900 signatures. The campaign was even successful in acquiring the signature of Chris Rhinehart, a member of the original programming team behind the games. The Free Software Foundation listed the campaign on their website to help draw attention to the issue.

The Heretic and Hexen source code was eventually released under the GPL on a Sourceforge site on September 4, 2008 by James Monroe of Raven.

The ACC script compiler source was not re-licensed, even though James Monroe indicated that he had thought it was included with the Hexen source and would remedy the problem.