CI / verify (pull_request) Successful in 1m6s
CI / infrastructure-smoke (pull_request) Successful in 27s
CI / migration-smoke (pull_request) Successful in 1m54s
CI / image-build (pull_request) Successful in 29s
CI / deploy-smoke (same-origin) (pull_request) Successful in 43s
CI / deploy-smoke (split) (pull_request) Successful in 1m30s
Implements ADR 0049's deferred native target and ADR 0052's reviewed license supplements. The proof case is a real module using sharp. packageFormat stays 1, and `any` is unchanged. Packager (@ekklesia/module-pack): - --target linux-x64-glibc. Native or platform-specific packages, found by the same generic rule that refuses them in `any`, stay outside the bundle. - Each native package's production closure is walked through its own dependencies, installed optionalDependencies that match the target, and required peers. It is copied as real files flat under node_modules/<name>, with no links, dev dependencies, declarations, source maps, or other platforms' packages. Missing or foreign-platform required dependencies, version conflicts, links, foreign machines, and Node.js range conflicts fail closed. - runtime.nodeApi, nodeAbi, and libcVersion are read from the binaries by a small ELF reader: the addon's node_api_module_get_api_version_v1 and the newest GLIBC_ symbol version needed. No shelling out. A native target with no addon is refused. - ADR 0052 supplements: package-provided material stays primary. An exact match on name, version, and ekklesia-content-v1 digest (sorted normalized paths with each file's size and SHA-256; no metadata) adds labelled material after the package's own. Any mismatch, a declared-licence conflict, or a malformed or unreviewed supplement file fails. Missing material with no supplement still fails. Supplement for @img/[email protected]: - 184 components and 143 unique texts, assembled from the exact upstream sources sharp-libvips v1.3.3 builds linux-x64 from: 27 C/C++ libraries, glib's gvdb, librsvg's Rust crates (reproduced with cargo tree), the Rust standard library at the rustc commit recorded in the binary, plus the LGPL-3.0, GPL-3.0, and MPL-2.0 texts. Each source is recorded with its SHA-256 in PROVENANCE.md. - It pins digest ekklesia-content-v1:sha256:50647b0b…, which is identical from the installed copy and from the registry tarball. - LGPL/MPL source-availability determinations stay open, as ADR 0052 states. Nothing claims they are met. Verifier (Core): - linux-x64-glibc is accepted only on a host whose platform, arch, glibc family and version, and Node-API version (from Node itself) match. - Every ELF file must be x86-64; every .node must be an ELF object. - `any` packages now also refuse node_modules/ and ELF files. - Contract: native metadata must state nodeApi or nodeAbi, and Linux targets libcVersion (ADR 0049). Proof: - A checked-in AGPL native fixture packs byte-identically from unrelated copies (8.86 MB) and verifies with Core's verifier. - Extracted elsewhere, it runs a sharp resize and PNG round trip in an empty-environment process. Every resolution stays in the package, and only the package's addon and libvips plus host system libraries load. Signage is untouched. Co-Authored-By: Claude Opus 5.5 <[email protected]>
48 lines
2.1 KiB
Plaintext
48 lines
2.1 KiB
Plaintext
FREETYPE LICENSES
|
|
-----------------
|
|
|
|
The FreeType 2 font engine is copyrighted work and cannot be used
|
|
legally without a software license. In order to make this project
|
|
usable to a vast majority of developers, we distribute it under two
|
|
mutually exclusive open-source licenses.
|
|
|
|
This means that *you* must choose *one* of the two licenses described
|
|
below, then obey all its terms and conditions when using FreeType 2 in
|
|
any of your projects or products.
|
|
|
|
- The FreeType License, found in the file `docs/FTL.TXT`, which is
|
|
similar to the original BSD license *with* an advertising clause
|
|
that forces you to explicitly cite the FreeType project in your
|
|
product's documentation. All details are in the license file.
|
|
This license is suited to products which don't use the GNU General
|
|
Public License.
|
|
|
|
Note that this license is compatible to the GNU General Public
|
|
License version 3, but not version 2.
|
|
|
|
- The GNU General Public License version 2, found in
|
|
`docs/GPLv2.TXT` (any later version can be used also), for
|
|
programs which already use the GPL. Note that the FTL is
|
|
incompatible with GPLv2 due to its advertisement clause.
|
|
|
|
The contributed BDF and PCF drivers come with a license similar to
|
|
that of the X Window System. It is compatible to the above two
|
|
licenses (see files `src/bdf/README` and `src/pcf/README`). The same
|
|
holds for the source code files `src/base/fthash.c` and
|
|
`include/freetype/internal/fthash.h`; they were part of the BDF driver
|
|
in earlier FreeType versions.
|
|
|
|
The gzip module uses the zlib license (see `src/gzip/zlib.h`) which
|
|
too is compatible to the above two licenses.
|
|
|
|
The files `src/autofit/ft-hb-ft.c`, `src/autofit/ft-hb-decls.h`,
|
|
`src/autofit/ft-hb-types.h`, and `src/autofit/hb-script-list.h`
|
|
contain code taken (almost) verbatim from the HarfBuzz library, which
|
|
uses the 'Old MIT' license compatible to the above two licenses.
|
|
|
|
The MD5 checksum support (only used for debugging in development
|
|
builds) is in the public domain.
|
|
|
|
|
|
--- end of LICENSE.TXT ---
|