Print the licenses used by the given project and its dependencies.
Print licenses used by the given project and its dependencies
Install with Quicklisp:
Note that in order to do this the project must be
quickloaded, so you might
want to do this in a separate Lisp image if you don't want to clutter your
If the project does not specify its license in its ASDF system definition it will be listed as 'Unspecified'. You should manually figure out what license it uses (and maybe send a pull request).
(print-licenses 'fast-io) => alexandria | Public Domain / 0-clause MIT babel | MIT cffi | MIT cffi-grovel | MIT cffi-toolchain | MIT fast-io | NewBSD static-vectors | MIT trivial-features | MIT trivial-gray-streams | MIT uiop | Unspecified
Or you might want to group systems by their license:
(print-licenses :fast-io :group-by-license t) => MIT babel, cffi, cffi-grovel, cffi-toolchain, fast-io, static-vectors, trivial-features, trivial-gray-streams Public Domain / 0-clause MIT alexandria Unspecified asdf, uiop
Related, to get a graph of dependencies:
- asdf-dependency-graph - A minimal wrapper around
dotto generate an image of the dependencies graph.
and this snippet:
;; thanks https://gist.github.com/svetlyak40wt/a8ed639bf8fe07caed1531611bcf932d ;; added: max-level (defun print-dependency-graph (system-name &key (level 0) (max-level most-positive-fixnum)) (when (= level max-level) (return-from print-dependency-graph)) (loop repeat level do (format t " ")) (format t "~A~%" system-name) (typecase system-name ((or string symbol) (let ((system (asdf/system:find-system system-name))) (loop for dep in (asdf/system:system-depends-on system) do (print-dependency-graph dep :level (1+ level) :max-level max-level))))))
(print-dependency-graph :str :max-level 3) ;; => STR cl-ppcre cl-ppcre-unicode cl-ppcre cl-unicode cl-change-case cl-ppcre cl-ppcre-unicode