cgal/Documentation/doc/Documentation/License.txt

105 lines
4.2 KiB
Plaintext

/*!
\page license License
\cgalAutoToc
\cgal is distributed under a dual license scheme, that is under the
GNU GPL/LGPL open source license, as well as under commercial licenses.
\cgal consists of different parts covered by different open source licenses.
In this section we explain the essence of the different licenses, as well as
the rationale why we have chosen them.
The fact that \cgal is Open Source software does not mean that users are free
to do whatever they want with the software. Using the software means to accept
the license, which has the status of a contract between the user and the owner
of the \cgal software.
\section licensesGPL GNU GPL
The GNU GPL is an Open Source license that, if you distribute your software
based on GPLed \cgal data structures, obliges you to distribute the
source code of your software under the GPL.
The exact license terms can be found at the Free Software Foundation
web site: http://www.gnu.org/copyleft/gpl.html.
\section licensesLGPL GNU LGPL
The GNU LGPL is an Open Source license that obliges you to distribute
modifications you make on \cgal software accessible to the users.
In contrast to the GPL, there is no obligation to make the source
code of software you build on top of LGPLed \cgal data structures.
The exact license terms can be found at the Free Software Foundation web site:
http://www.gnu.org/copyleft/lesser.html.
\section licensesRationale Rationale of the License Choice
We have chosen the GPL and the LGPL as they are well-known
and well-understood open source licenses. The former restricts
commercial use, and the latter allows to promote software as de facto standard
so that people can build new higher level data structures on top.
Therefore, the packages forming a foundation layer are distributed under
the LGPL, and the higher level packages under the GPL.
The package overview states for each package under which license it is distributed.
\section licensesCommercial Commercial Licenses
Users who cannot comply with the Open Source license terms can buy individual
data structures under various commercial licenses from GeometryFactory:
http://www.geometryfactory.com/. License fees paid by commercial
customers are reinvested in R\&D performed by the \cgal project partners,
as well as in evolutive maintenance.
\section licenseCheck License Checking
Users who have a commercial license for specific packages can check that
they do not accidentally use packages for which they do not have a commercial
license. The same holds for users who want to be sure that they only
use packages of \cgal released under the LGPL.
To enable checking, users have to define one of the following macros:
| Macro Name | Effect |
| :--------- | :------ |
| `CGAL_LICENSE_WARNING` | get a warning during the compilation |
| `CGAL_LICENSE_ERROR` | get an error during the compilation |
The license checking is not a mean to control users as no information
is collected or transmitted.
\section seccgal_version Identifying the Version of CGAL
Every release of \cgal defines the following preprocessor macros:
<DL>
<DT>`CGAL_VERSION_STR`</DT>
<DD>a textual description of the current release (e.g., or 3.3 or 3.2.1 or 3.2.1-I-15) as a string literal</DD>
<DT>`CGAL_VERSION_NR`</DT>
<DD>a numerical description of the current release such that more recent
releases have higher number.
More precisely, it is defined as `1MMmmbiiii`, where `MM` is
the major release number (e.g. 03), `mm` is the minor release
number (e.g. 02), `b` is the bug-fix release number (e.g. 0),
and `iiii` is the internal release number (e.g. 0001). For
public releases, the latter is defined as 1000. Examples: for the
public release 3.2.4 this number is 1030241000; for internal release
3.2-I-1, it is 1030200001. Note that this scheme was modified around
3.2-I-30.
</DD>
<DT>`CGAL_VERSION_NUMBER(M,m,b)`</DT>
<DD>
a function macro computing the version number macro from the
M.m.b release version. Note that the internal release number is
dropped here. Example: `CGAL_VERSION_NUMBER(3,2,4)` is equal to
1030241000.
</DD>
</DL>
The macro `CGAL_VERSION` is deprecated. It is the same as
`CGAL_VERSION_STR`, but not as a string literal.
*/