Third-party software in Crusade
Crusade is © Kyle Chandler. It is built on the open-source software below, used unmodified and under each project's own license. tests/test_licenses.py keeps this file honest: it fails if Crusade starts importing a library not listed here, if a GPL-only package is used, if a library bundled with OpenCASCADE appears that this file doesn't name, or if the installed OpenCASCADE files differ from the published package.
The license texts themselves ship with each package (in its *.dist-info folder, or at the links below). An installer for Crusade must include them (see "Before distributing" at the end).
Python packages Crusade uses
| Package | Version checked | License (the option Crusade uses) | Source |
|---|---|---|---|
OCP (cadquery-ocp): Python bindings for OpenCASCADE | 8.0.1.1 | Apache-2.0 | https://github.com/CadQuery/OCP |
| OpenCASCADE Technology (OCCT), bundled in OCP | 8.0.1 | LGPL-2.1 with the Open CASCADE Exception 1.0 | https://github.com/Open-Cascade-SAS/OCCT/releases/tag/V8.0.1 |
| PySide6 / Shiboken6 (Qt for Python) and the Qt 6 libraries in its wheels: QtCore, QtGui, QtWidgets, QtSvg, QtPrintSupport (printing drawings) | 6.12.0 | LGPL-3.0 (offered as LGPL-3.0 or GPL-2.0 or GPL-3.0; Crusade uses LGPL-3.0) | https://code.qt.io/cgit/pyside/pyside-setup.git, https://download.qt.io/official_releases/qt/ |
| NumPy | 2.5.3 | BSD-3-Clause (its bundled parts listed in its LICENSE.txt) | https://github.com/numpy/numpy |
| SciPy | 1.18.1 | BSD-3-Clause (its bundled parts listed in its LICENSE.txt) | https://github.com/scipy/scipy |
| Pillow | 12.3.0 | MIT-CMU (HPND) | https://github.com/python-pillow/Pillow |
| VTK: the libraries OCP's compiled module links to (its VTK viewer, unused by Crusade; the installer keeps only those) | 9.6.2 | BSD-3-Clause | https://gitlab.kitware.com/vtk/vtk |
| cadquery-ocp-proxy (part of the OCP package) | 8.0.1.1 | Apache-2.0 | https://github.com/CadQuery/OCP |
Qt's own third-party components and their licenses: https://doc.qt.io/qt-6/licenses-used-in-qt.html
Optional, loaded only if present on the computer: libspnav (SpaceMouse, BSD-3-Clause, https://github.com/FreeSpacenav/libspnav). The spacenavd daemon it talks to is a separate program.
Native libraries bundled with OpenCASCADE (in cadquery_ocp.libs, Linux build)
| Library | License (the option Crusade uses) | Notes |
|---|---|---|
OCCT toolkits (libTK*, 52 of them) | LGPL-2.1 with the Open CASCADE Exception | Unmodified, as above |
| FreeImage 3.17 | FreeImage Public License 1.0 (also offered as GPL-2.0 / GPL-3.0) | Crusade uses it under the FreeImage Public License |
| FreeType 2 | FreeType License (FTL) (also offered as GPL-2.0) | Credit below |
| LibRaw 0.19 | LGPL-2.1 (also offered as CDDL-1.0) | Unmodified; source: https://github.com/LibRaw/LibRaw |
| libjpeg 6.2 | IJG License | Credit below |
| OpenEXR 2.2 (Half, Iex, IexMath, IlmImf, IlmThread, Imath) | BSD-3-Clause | |
| JasPer | JasPer License 2.0 (MIT-style) | |
| jxrlib (libjpegxr, libjxrglue) | BSD-2-Clause | |
| OpenJPEG (libopenjp2) | BSD-2-Clause | |
| libpng | libpng License | |
| libtiff | libtiff License (BSD-style) | |
| libwebp, libwebpmux | BSD-3-Clause | |
| Little CMS (liblcms2) | MIT | |
| fontconfig | MIT-style | |
| {fmt} (libfmt) | MIT | |
| bzip2 (libbz2) | bzip2 License (BSD-style) | |
| XZ Utils (liblzma) | Public domain / 0BSD | |
| libuuid (util-linux) | BSD-3-Clause | |
| GNU OpenMP runtime (libgomp) | GPL-3.0 with the GCC Runtime Library Exception 3.1 | The exception allows use by any program |
Also in OpenCASCADE's Windows build (cadquery_ocp.libs, Windows)
The Windows wheel bundles the same OCCT toolkits (TK*-<hash>.dll) and image libraries, and also:
| Library | License | Notes |
|---|---|---|
libdeflate (deflate) | MIT | |
LERC (Lerc), Esri's Limited Error Raster Compression | Apache-2.0 | |
libsharpyuv (libsharpyuv), part of libwebp | BSD-3-Clause | |
OpenEXR 3 (OpenEXRCore) | BSD-3-Clause | |
OpenJPH (openjph) | BSD-2-Clause | |
Microsoft Visual C++ runtime (msvcp140) and OpenMP runtime (vcomp140) | Microsoft Visual C++ Redistributable license terms | Redistributable files from Microsoft |
(Licenses as published by each project; to re-check against their sources before the first release.)
On Windows, the installer adds Kyle Chandler's code signature to the program files that come unsigned (Windows 11's Smart App Control refuses unsigned, rarely seen binaries such as OpenCASCADE's). A signature is appended to the file; the code itself is unchanged, byte for byte (tests/test_licenses.py compares the files without their added signature with the published hashes).
NumPy and SciPy bundle OpenBLAS (BSD-3-Clause) and the GNU Fortran runtime (libgfortran, libquadmath: GPL-3.0 with the GCC Runtime Library Exception). Pillow bundles FreeType, HarfBuzz, libjpeg, libpng, libtiff, libwebp, OpenJPEG, Little CMS, libavif, Brotli, zstd, XZ, libxcb and libXau under their permissive licenses, listed in Pillow's LICENSE file.
In the installed package (packaging/build.py)
| Part | License | Notes |
|---|---|---|
| CPython 3.12 runtime (python-build-standalone, the relocatable builds uv uses) | PSF-2.0 | https://github.com/astral-sh/python-build-standalone; its LICENSE.txt ships in licenses/python/ |
| Libraries built into that runtime: OpenSSL, SQLite, libffi, zlib, bzip2, liblzma, mpdecimal, expat, libedit (readline), ncurses, libuuid | Apache-2.0, public domain, MIT, zlib, bzip2, 0BSD, BSD-2-Clause, MIT, BSD-3-Clause, MIT-X11, BSD-3-Clause | listed in the runtime's LICENSE.txt |
| Left out of the runtime | GNU gdbm (GPL), Berkeley DB (_dbm, copyleft), Tcl/Tk and tkinter (unused), Python's tests and IDLE | |
| Inno Setup (makes the Windows setup.exe; its small installer program is inside it) | Inno Setup License (free, commercial use allowed) | https://jrsoftware.org/isinfo.php |
| uv (build machine only, not shipped) | MIT / Apache-2.0 | https://github.com/astral-sh/uv |
The package also leaves out PySide6's Addons and WebEngine (only PySide6-Essentials ships) and Qt's developer tools (Designer, Linguist …). licenses/ in the package holds each shipped package's own license files, Python's, and the full LGPL-2.1, LGPL-3.0, GPL-3.0 (which the LGPL-3.0 refers to), Apache-2.0, Open CASCADE Exception and FreeImage Public License texts.
Credits the licenses ask for
- Portions of this software are copyright © The FreeType Project (https://freetype.org). All rights reserved.
- This software is based in part on the work of the Independent JPEG Group.
- This software uses the FreeImage open source image library (https://freeimage.sourceforge.io) under the FreeImage Public License, version 1.0.
- This software uses Qt (https://www.qt.io) under the GNU Lesser General Public License version 3, and OpenCASCADE Technology (https://dev.opencascade.org) under the GNU Lesser General Public License version 2.1 with the Open CASCADE Exception.
What the LGPL libraries (OpenCASCADE, Qt, LibRaw) need from a distributed Crusade
- They are used unmodified: Crusade's own code calls them and stays Crusade's. Only changes made to these libraries themselves would have to be published, and none have been made.
- Their source is available at the links above, for the exact versions shipped.
- Users must be able to replace them with their own builds: they ship as separate library files in the install folder (not fused into one sealed executable).
- Crusade's license agreement must not forbid changing those libraries or reverse-engineering them to debug such changes.
Before distributing
- The installer build copies the packages' license files and the LGPL-2.1, LGPL-3.0, GPL-3.0, Apache-2.0, Open CASCADE Exception 1.0 (
OCCT_LGPL_EXCEPTION.txt, from the OCCT V8.0.1 source) and FreeImage Public License 1.0 texts intolicenses/(done). Still to do: show this file from Help ▸ About. - The bundled Python runtime's license (PSF) ships in
licenses/python/(done). - The Windows wheels of these packages bundle different native libraries: run
tests/test_licenses.pyon the Windows build too and add any new ones here. - This file is a good-faith summary, not legal advice; have it reviewed with the license agreement.
Fonts on this website
The site uses Inter (© 2016 The Inter Project Authors, https://github.com/rsms/inter) and JetBrains Mono (© 2020 The JetBrains Mono Project Authors, https://github.com/JetBrains/JetBrainsMono), both under the SIL Open Font License 1.1, served from crusadecad.com itself: Inter's license, JetBrains Mono's license.