Archived Website:
This website is a static snapshot for archival purposes only.
It is no longer maintained or updated.
Given the above, it is possible that SWI-Prolog packages and
extensions will rely on the GPL. (53)
The predicates below allow for registering license requirements for
Prolog files and foreign modules. The predicate eval_license/0
reports which components from the currenly configured system are
distributed under copy-left and open source enforcing licenses (the GPL)
and therefore must be replaced before distributing linked applications
under non-free license conditions.
- eval_license
-
Evaluate the license conditions of all loaded components. If the system
contains one or more components that are licenced under GPL-like
restrictions the system indicates this program may only be distributed
under the
GPL license as well as which components prohibit
the use of other license conditions.
- license(+LicenseId,
+Component)
-
Register the fact that Component is distributed under a
license identified by LicenseId. The most important LicenseId's
are:
- swipl
-
Indicates this module is distributed under the GNU General Public
License (GPL) with the SWI-Prolog exception: (54)
As a special exception, if you link this library with
other files, compiled with SWI-Prolog, to produce an executable, this
library does not by itself cause the resulting executable to be covered
by the GNU General Public License. This exception does not however
invalidate any other reasons why the executable file might be covered by
the GNU General Public License.
This should be the default for software contributed to the SWI-Prolog
project as it allows the community to prosper both in the free and
non-free world. Still, people using SWI-Prolog to create non-free
applications must contribute sources to improvements they make to the
community.
- lgpl
-
This is the default license for foreign-libraries linked with
SWI-Prolog. Use PL_license()
to register the condition from foreign code.
- gpl
-
Indicates this module is strictly Free Software, which implies it cannot
be used together with any module that is incompatible to the GPL. Please
only use these conditions when forced by other code used in the
component.
license(+LicenseId)
Intented as a directive in Prolog source files. It takes the current
filename and calls license/2.
void PL_license(const
char *LicenseId, const char *Component)
Intended for the install() procedure of foreign libraries. This call can
be made before PL_initialise().