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.
GPLlicense as well as which components prohibit the use of other license conditions. Likewise for for LGPL components.
:- multifile license:license/3. license:license(mylicense, permissive, [ comment('My personal license'), url('http://www.mine.org/license.html') ]). :- license(mylicense).