CWE Libraries and SDKs

From OpenUru
Revision as of 03:04, 31 March 2011 by Mac Fife (talk | contribs) (Ogg Vorbis: Expand)
Jump to: navigation, search

The Engine (CWE) is released under the GPLv3 Open Source license but uses a number of libraries or SDKs that are not part of the development tool suite and are either commercially licensed or use licenses that are otherwise incompatible with the GPL. Consequently, these are not included within the Open Source release. However, many of these are readily available to any developers wishing to work on the CWE code.

The GPL FAQ addresses allowance of incompatible libraries: [1]

Both versions of the GPL have an exception to their copyleft, commonly called the system library exception. If the GPL-incompatible libraries you want to use meet the criteria for a system library, then you don't have to do anything special to use them; the requirement to distribute source code for the whole program does not include those libraries, even if you distribute a linked executable containing them.

What this means is that you may build and distribute a GPLv3 application as a binary that uses those libraries, but in distributing the source you need not distribute the library or its source (and you may be expressly prohibited from doing so by the applicable license).

The following paragraphs summarize the situation regarding each of these libraries/SDKs.


The Bink Video Codec [2] is a commercially licensed product by RAD Game Tools. At around US$6000 for a single product license this is probably beyond the price range of most private open source developers. Fortunately this only appears to be used at present for the introductory videos.

Direct X

Content to be advised.


The Engine originally used Creative Labs EAX 3D audio technology [3]. EAX is a commercially licensed product, and beyond the reach of most private developers.

The alternative is to use OpenAL with EFX which supports EAX effects.


Content to be advised.

FreeType 2

FreeType 2, from the FreeType Project, is a font service supporting OpenType, TrueType, Windows .fnt and Type 1 fonts amongst many others. FreeType 2 used methods that were subject to patent protection, but these expired in May 2010. [4]

Two licenses are available to use with FreeType 2: The FreeType License (BSD-like) and the GPL. The latter is obviously more appropriate for compatibility with CWE.

Intel JPEG Library

(No longer available - See IPP)

Content to be advised.

Max 7 SDK

(Presumably only required to build plugin)

Content to be advised.

Ogg Vorbis

Ogg Vorbis is an open specification for audio compression, designed by Foundation. [5]. The reference library implementation is supplied under a BSD license. This is the newer, three clause BSD license that omits the controversial advertising clause of the original BSD license, and is verified as GPL compatible by the Free Software Foundation.

Note that Ogg [6] and Vorbis [7] are supplied as separate libraries and that both are required.


OpenAL [8] with EFX (Effects Extension) is an open specification replacement for EAX provided under a LGPL license. Installers and SDKs for various platforms are readily available for download from Creative Labs website. [9]


OpenSSL is a Secure Sockets Layer implementation originally developed by Eric Young. OpenSSl is "dual licensed" in that that both the OpenSSL License (BSD-like) and the original SSLeay License are applied concurrently [10]. From [11]

The license of OpenSSL is a conjunction of two licenses, one of them being the license of SSLeay. You must follow both. The combination results in a copyleft free software license that is incompatible with the GNU GPL. It also has an advertising clause like the original BSD license and the Apache license.

We recommend using GNUTLS instead of OpenSSL in software you write. However, there is no reason not to use OpenSSL and applications that work with OpenSSL.

It is the "advertising clause" that presents the incompatibility with GPLv3.

PhysX (Ageia/nVIDIA)

There are two components to PhysX - the Drivers (run-time elements) and the SDK. Each are subject to different licensing conditions. The Engine was originally built using version 2.6.0. of the SDK, which is no longer available for download - the earliest version currently avaliable is 2.6.4.

Please note that it is important that the version of Driver used provides support for the version of SDK in use.


Starting from version 2.6.0 of the SDK, the End User License Agreement [12] was changed to make this free for commercial and non-commercial use. However each developer is required to register on the nVIDIA Developer site [13] prior to downloading the SDK. The SDK license is exclusive to the registered developer, and it is not permissable to re-distribute the SDK in any form.


The driver (or "PhysX System Software") is required for all client installs and may be freely downloaded from the nVIDIA site. It is also permissable to redistribute the driver alongside a compiled application. [14]

Note that the latest version of the PhysX driver (9.10.0513 [15]) only provides support for versions 2.7.1 and above of the SDK; since CWE builds will typically use SDK 2.6.x, you should use an older driver (e.g. v8.09.04 [16])

Quicktime for Windows

Not currently required for the Engine.