diff --git a/pip/BUILD.bazel b/pip/BUILD.bazel index 35af50f13..649a992d3 100644 --- a/pip/BUILD.bazel +++ b/pip/BUILD.bazel @@ -14,4 +14,7 @@ py_binary( ], ) -exports_files(["requirements.txt"]) +exports_files([ + "requirements.txt", + "licenses.json", +]) diff --git a/pip/licenses.json b/pip/licenses.json new file mode 100644 index 000000000..67098b005 --- /dev/null +++ b/pip/licenses.json @@ -0,0 +1,152 @@ +[ + { + "License": "BSD License", + "Name": "Flask", + "Version": "1.1.2" + }, + { + "License": "MIT License", + "Name": "Flask-Cors", + "Version": "3.0.9" + }, + { + "License": "BSD License", + "Name": "Jinja2", + "Version": "2.11.2" + }, + { + "License": "BSD License", + "Name": "Markdown", + "Version": "3.3.3" + }, + { + "License": "BSD License", + "Name": "MarkupSafe", + "Version": "1.1.1" + }, + { + "License": "GPL v3", + "Name": "PyQt5", + "Version": "5.15.1" + }, + { + "License": "SIP", + "Name": "PyQt5-sip", + "Version": "12.8.1" + }, + { + "License": "GPL v3", + "Name": "PyQtWebEngine", + "Version": "5.15.1" + }, + { + "License": "BSD", + "Name": "PySocks", + "Version": "1.7.1" + }, + { + "License": "BSD License", + "Name": "Send2Trash", + "Version": "1.5.0" + }, + { + "License": "BSD License", + "Name": "Werkzeug", + "Version": "1.0.1" + }, + { + "License": "MIT License", + "Name": "attrs", + "Version": "20.3.0" + }, + { + "License": "MIT License", + "Name": "beautifulsoup4", + "Version": "4.9.3" + }, + { + "License": "Mozilla Public License 2.0 (MPL 2.0)", + "Name": "certifi", + "Version": "2020.11.8" + }, + { + "License": "GNU Library or Lesser General Public License (LGPL)", + "Name": "chardet", + "Version": "3.0.4" + }, + { + "License": "BSD License", + "Name": "click", + "Version": "7.1.2" + }, + { + "License": "BSD License", + "Name": "decorator", + "Version": "4.4.2" + }, + { + "License": "BSD License", + "Name": "idna", + "Version": "2.10" + }, + { + "License": "BSD License", + "Name": "itsdangerous", + "Version": "1.1.0" + }, + { + "License": "MIT License", + "Name": "jsonschema", + "Version": "3.2.0" + }, + { + "License": "Apache Software License, MIT License", + "Name": "orjson", + "Version": "3.4.3" + }, + { + "License": "3-Clause BSD License", + "Name": "protobuf", + "Version": "3.13.0" + }, + { + "License": "BSD License", + "Name": "psutil", + "Version": "5.7.3" + }, + { + "License": "MIT License", + "Name": "pyrsistent", + "Version": "0.17.3" + }, + { + "License": "Python Software Foundation License", + "Name": "pywin32", + "Version": "228" + }, + { + "License": "Apache Software License", + "Name": "requests", + "Version": "2.25.0" + }, + { + "License": "MIT License", + "Name": "six", + "Version": "1.15.0" + }, + { + "License": "MIT License", + "Name": "soupsieve", + "Version": "2.0.1" + }, + { + "License": "MIT License", + "Name": "urllib3", + "Version": "1.26.1" + }, + { + "License": "Zope Public License", + "Name": "waitress", + "Version": "1.4.4" + } +] diff --git a/pip/licenses.sh b/pip/licenses.sh new file mode 100755 index 000000000..273edf99e --- /dev/null +++ b/pip/licenses.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# +# Install runtime requirements into a venv and extract their licenses. +# As Windows currently uses extra deps, running this on Windows should +# capture all packages. +# Run with 'bash licenses.sh' to update 'license.json' + +set -e + +# setup venv +python -m venv venv + +# build wheels +../bazel.bat --output_base=/c/bazel/anki/base build //pylib/anki:wheel //qt/aqt:wheel + +# install wheels, bound to constrained versions +venv/scripts/pip install -c requirements.txt ../bazel-bin/pylib/anki/*.whl ../bazel-bin/qt/aqt/*.whl pip-licenses + +# dump licenses - ptable is a pip-licenses dep +venv/scripts/pip-licenses --format=json --ignore-packages anki aqt pip-license PTable > licenses.json + +# clean up +rm -rf venv