Given the above, it is possible that SWI-Prolog packages and extensions rely on the GPL or LGPL. The predicates below allow for registering license requirements for Prolog files and foreign modules. The predicate eval_license/0 reports which components from the currently 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.
GPL license as well as which components prohibit
the use of other license conditions. Likewise for for LGPL components.gpl,
lgpl, permissive or proprietary.
:- multifile license:license/3.
license:license(mylicense, permissive,
[ comment('My personal license'),
url('http://www.mine.org/license.html')
]).
:- license(mylicense).