Skip to content

Licensing and Notices

Jeremiah edited this page Oct 22, 2026 · 1 revision

Licensing and Notices

This page explains ChemDraft's code licences, bundled-component notices, dataset obligations and recorded redistribution blockers.

ChemDraft's core is licensed under Apache-2.0. The two SDK packages, @chemdraft/plugin-api and @chemdraft/plugin-host, and the example plugins are MIT. Those are separate scopes: an MIT SDK does not change the core licence, and neither licence automatically covers third-party binaries or datasets.

The authoritative files are root LICENSE, root NOTICE, package licence files and docs/architecture/dependency-inventory.md. Read their complete terms for redistribution. This page summarizes the repository's records; it does not replace any component's licence text.

What travels with a distribution

NOTICE must ship with every distribution. When adding a vendored binary, update both NOTICE and the dependency inventory in the same change. Record its upstream source, exact version or commit, modifications, build provenance, applicable terms and the location of the full licence.

“Vendored” means an artifact is carried in the repository or distribution instead of merely resolved from a package registry. For a WebAssembly or native binary, the filename alone is not adequate provenance. A source pin, build recipe and recorded artifact hashes help establish which code the notices actually describe.

Important component records

Component Recorded terms and considerations
RDKit MinimalLib WebAssembly BSD-3-Clause for RDKit; custom build patches and provenance live in packages/rdkit-adapter/vendor/. Transitive components need their own review.
IsoSpec WebAssembly BSD-2-Clause; compiled unpatched, with its full licence beside the artifact. Preserve notices for the algorithm and carried tables.
OPSIN JAR MIT for OPSIN; the shaded JAR contains separately licensed dependencies, including an LGPL component. Its own top-level metadata is not a complete notice inventory.
Bundled OpenJDK runtime GPL-2.0-only WITH Classpath-exception-2.0; generated with jlink, with legal material retained.
JNA Dual-licensed; ChemDraft elects Apache-2.0.
jna-inchi LGPL-2.1-or-later. NOTICE includes a corresponding-source offer and replacement information.
InChI inside OPSIN's native libraries Recorded as version 1.07.2 under MIT; distinct from the unresolved RDKit copy below.
Avogadro Core and Calc sidecar libraries BSD-3-Clause, statically linked into the shipped platform executables.
Eigen in the sidecar MPL-2.0 with EIGEN_MPL2_ONLY enforced to exclude LGPL modules.
PDF fonts Noto Sans uses SIL OFL 1.1; DejaVu uses its recorded Bitstream Vera/Arev terms and public-domain changes. Preserve the bundled font notices.

Do not describe the entire dependency graph as “no copyleft.” The inventory distinguishes build-time tools, separately executed runtimes and redistributed components. For example, the declaration-bundling tool is development-only, whereas the Java runtime and jna-inchi have distribution obligations.

The InChI redistribution caveat

The separate InChI copy statically linked into RDKit MinimalLib identifies itself as 1.07.3. AGENTS.md, NOTICE and the dependency inventory record its applicable terms and notice obligations as unconfirmed, blocking public redistribution until resolved and archived.

Do not replace that record with an assumption based on RDKit's licence or the OPSIN copy's MIT entry. The inventory notes upstream evidence, but explicitly leaves owner closure and artifact/source verification outstanding. The existence of published releases does not settle this documented gate.

The inventory also records unresolved FreeType linkage/licence-election questions and training-data provenance/licensing questions for the pKa model. Consult the exact rows before distributing changed artifacts or claiming that all dependencies have been cleared.

Dataset licences are independent

A plugin that bundles data declares its code license and a separate dataLicenses entry for each dataset. tools/plugin-extract/gates.ts refuses a dataset covered only by a code-licence declaration.

The NMR predictor's database is derived from NMRShiftDB2 experimental assignments and carries nmrshiftdb2's ODbL-derived terms, including attribution and share-alike obligations. Do not call the whole NMR package MIT merely because its original plugin code uses MIT. Its shipped provider is an OCL-native HOSE-fragment lookup; test fixtures do not define its public data provenance.

The pKa inventory similarly distinguishes repository-trained model artifacts from the upstream datasets used to train them. A software project's permissive code licence is not evidence that every associated dataset has that licence.

Optional engines and original assets

MolScribe recognition and Orthonym naming engines are installed only after explicit user action. They are not bundled wholesale into the Apache-2.0 core. Their separate components, model weights, runtimes and transitive dependencies retain their own terms. The naming installation records licence texts under its engine directory's LICENSES/.

Optional installation is an architectural boundary, not a licence exemption. Check pinned download provenance and notices when changing installers. Keep new icons, examples, templates and fixtures original or demonstrably redistributable; never import a proprietary asset collection as test data.

See also

Clone this wiki locally