mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-02 08:43:57 +00:00
* pdf: keep a CID font's /W2 table past an out-of-range first CID; vendor hayro-cmap from PdfCraft - hayro-interpret: a /W2 run whose first CID is past 65535 is skipped, as in /W. A run starting at 4294967295 overflowed the CID counter and discarded the whole table. Unit test in font::cid. - hayro-cmap 0.1.0 is vendored from PdfCraft a2ec27b47 with its malformed-CMap patch (PdfCraft #3177): bad bfchar/bfrange entries, an unresolvable usecmap and an unparseable tail are skipped instead of failing the whole CMap. The crate's tests come with it. Wired up like the other vendored Hayro crates (workspace exclude, patch entry, SOURCE.json, backend test script); NOTICE, ATTRIBUTION.md and vendor/README.craft-reader.md record the source. * hayro-syntax: refuse an xref-stream subsection that runs past object number u32::MAX The object number was start + i in unchecked u32: a subsection starting near u32::MAX overflowed (a panic in debug builds, a wrong object number in release). Covered in xref::tests::xref_stream_entries_need_backing_bytes. * hayro-cmap: a binary usecmap counts against the nesting limit; /W2 checks the CID first - hayro-cmap: a binary CMap's usecmap passed its own depth to the nested parse, so a self-referencing binary CMap recursed until the stack overflowed. It now counts like a text usecmap. Test: self_referencing_binary_usecmap_stops_at_the_nesting_limit. - hayro-interpret: the /W2 first-CID check runs before the run's metrics are read, so an incomplete run past CID 65535 no longer discards the rest of the table. * hayro-syntax: refuse xref-stream object numbers past i32::MAX ObjectIdentifier stores an i32; a number between i32::MAX and u32::MAX was cast to a negative object number.
127 lines
7.8 KiB
Plaintext
127 lines
7.8 KiB
Plaintext
craft-libs
|
|
Copyright (c) 2026 ArtCraft Team and the craft-libs contributors.
|
|
Licensed under the MIT License or the Apache License, Version 2.0, at your option
|
|
(LICENSE-MIT, LICENSE-APACHE).
|
|
|
|
Third-party material
|
|
|
|
This product bundles third-party material under its own licenses, listed below. The per-file
|
|
list (author, source, license) is in ATTRIBUTION.md.
|
|
|
|
crates/cms/profiles/photocraft-coated-cmyk.icc: CC0-1.0, generated by crates/cms (see below).
|
|
crates/cms/profiles/craft-coated-fogra39.icc: CC0-1.0, generated by crates/cms from the FOGRA39
|
|
characterisation data below.
|
|
crates/cms/tests/data/FOGRA39.txt: FOGRA39 characterisation data, distributed unmodified.
|
|
Source: Fogra (Fogra Forschungsinstitut für Medientechnologien e.V.), www.fogra.org, from
|
|
https://fogra.org/fileadmin/files/7_downloads/Charakterisierungsdaten/FOGRA39_to_FOGRA60_v2.zip
|
|
Fogra's terms: "Free use and redistribution of the Fogra characterisation data is permitted,
|
|
including redistribution as part of commercial and non-commercial software, provided that
|
|
the data are distributed unmodified and Fogra is identified as the source. The designation
|
|
FOGRAxx may be used solely to identify the respective reference data. Such use does not
|
|
imply certification, approval or endorsement by Fogra."
|
|
|
|
The optional PDF writer bundles four CC0 ICC profiles by Clinton Ingram. See ATTRIBUTION.md for per-file sources and hashes.
|
|
|
|
Source provenance
|
|
|
|
The SVG icon preparation in crates/ui is adapted from:
|
|
- PhotoCraft, crates/ui-egui/src/icons.rs, revision e7a83ca342cdff568254f85f442b9cc8afb08066.
|
|
https://github.com/storytold/photocraft
|
|
Copyright (c) 2026 ArtCraft Team and the PhotoCraft contributors.
|
|
- VectorCraft, crates/ui-egui/src/icons.rs, revision 825d4fdb8b527c597855d273fb4bcc1971855b6a.
|
|
https://github.com/storytold/vectorcraft
|
|
Copyright (c) 2026 ArtCraft Team and the VectorCraft contributors.
|
|
The icon-button interaction/style boundary is adapted from PhotoCraft (above) and:
|
|
- PdfCraft, crates/ui-egui/src/icons.rs, revision f626db25cca2c89f8fa3f7e30d22bf59faea65ec.
|
|
https://github.com/storytold/pdfcraft
|
|
Copyright (c) 2026 ArtCraft Team and the PdfCraft contributors.
|
|
The tab fitting in crates/ui/src/tabs is adapted from PhotoCraft's tab_strip.rs (above).
|
|
Tab interaction adapters also use VectorCraft's dock.rs and floating.rs (above).
|
|
The pane sizing and resize boundaries in crates/ui/src/layout draw on:
|
|
- FilmCraft, crates/ui-egui/src/dock.rs, revision 7b6c134472287db4367fca80bcb498240ba36567.
|
|
https://github.com/storytold/filmcraft
|
|
Copyright (c) 2026 ArtCraft Team and the FilmCraft contributors.
|
|
- EffectCraft, crates/ui-egui/src/dock.rs, revision 2a460986ee7a4b32656a3d434849693904b486bc.
|
|
https://github.com/storytold/effectcraft
|
|
Copyright (c) 2026 ArtCraft Team and the EffectCraft contributors.
|
|
The widget-state styling in crates/ui/src/theme is adapted from VectorCraft (above),
|
|
crates/ui-egui/src/theme.rs, and:
|
|
- DesignCraft, crates/ui-egui/src/theme.rs, revision 66c7ce7e96ec286a091878cc2541ee8369aa79d6.
|
|
https://github.com/storytold/designcraft
|
|
Copyright (c) 2026 ArtCraft Team and the DesignCraft contributors.
|
|
The transactional panel model and drop-zone semantics in crates/ui/src/docking draw on the
|
|
FilmCraft/EffectCraft split, tab and accordion layouts and VectorCraft floating groups listed
|
|
above. The generic transaction validation, optional renderer and workspace-location helpers
|
|
are implemented here without dependencies on application engines or native window helpers.
|
|
All sources listed above are licensed MIT OR Apache-2.0. No icon artwork is copied here.
|
|
|
|
The PDF spooler in crates/print is extracted from:
|
|
- PdfCraft, crates/print/src/spool.rs, windows_print.ps1 and spooler tests,
|
|
revision 33c14e07cfd742a82bf03baa6b103c01008fa68c.
|
|
https://github.com/storytold/pdfcraft
|
|
Copyright (c) 2026 ArtCraft Team and the PdfCraft contributors.
|
|
Licensed MIT OR Apache-2.0. PDF composition and application code are not copied.
|
|
|
|
The Windows printer duplex-capability query and parser additionally draw on PdfCraft,
|
|
crates/print/src/spool.rs, revision fb97ce958dfe92b6762ce40615c7836551710139 (PR #1154), under the same licenses above.
|
|
|
|
The native Windows backend (crates/print/src/windows.rs, ticket.rs and the printer-list and
|
|
Windows spooler tests) is ported from PdfCraft's native printing work, which carries the
|
|
approach of PdfCraft PR #599 (Win32 printer list, Windows.Data.Pdf into the XPS print API, the
|
|
PrintTicket and its driver-paper preference):
|
|
- PdfCraft, crates/print/src/spool/windows.rs, spool.rs and tests.rs, branch
|
|
claude/native-windows-print-826c99 of PR #1132, revision a435117 (jcl-bit/printcraft).
|
|
https://github.com/storytold/pdfcraft
|
|
Copyright (c) 2026 ArtCraft Team and the PdfCraft contributors.
|
|
Licensed MIT OR Apache-2.0.
|
|
|
|
The colour management module in crates/cms is extracted from:
|
|
- PhotoCraft, crates/cms, revision b3222ee8e7e6bcb4799c37f904c595f20f9baf5e.
|
|
https://github.com/storytold/photocraft
|
|
Copyright (c) 2026 ArtCraft Team and the PhotoCraft contributors.
|
|
Licensed MIT OR Apache-2.0. Its generated ICC profile is dedicated to the public domain
|
|
(CC0-1.0); see ATTRIBUTION.md.
|
|
|
|
Optional PDF writer
|
|
|
|
Krilla 0.8.2 (https://github.com/LaurenzV/krilla), MIT OR Apache-2.0.
|
|
Upstream licence texts are retained in licenses/pdf-writer.
|
|
The optional writer embeds Compact ICC Profiles by Clinton Ingram
|
|
(https://github.com/saucecontrol/Compact-ICC-Profiles), under CC0-1.0.
|
|
See licenses/pdf-writer/LICENSE-ICC.txt and ATTRIBUTION.md for sources and hashes.
|
|
The writer adds no font files. Its four existing ICC profiles are retained under vendor/krilla/icc.
|
|
|
|
Krilla is vendored with a native unwind-cleanup patch; see vendor/krilla/README.craft.md
|
|
and vendor/krilla/SOURCE.json. Its upstream MIT/Apache-2.0 licences and CC0 profiles are unchanged.
|
|
|
|
Optional PDF reader
|
|
|
|
Hayro 0.7.1, hayro-interpret 0.7.0, hayro-syntax 0.7.2, hayro-jbig2 0.3.0 and hayro-cmap 0.1.0
|
|
(https://github.com/LaurenzV/hayro), MIT OR Apache-2.0, retain their upstream licence files.
|
|
These patched sources are transferred from PdfCraft (https://github.com/storytold/pdfcraft):
|
|
hayro-cmap from revision a2ec27b4775f53c40cad3456936d9406611e3a8d, the others from revision
|
|
7437bde378f43856eada40af25b983812e615e8a.
|
|
See vendor/README.craft-reader.md and each crate's SOURCE.json for provenance and local changes.
|
|
The reader retains the existing Foxit/PDFium standard-14 font assets (BSD-3-Clause),
|
|
Compact ICC Profiles by Clinton Ingram (CC0-1.0), and dependency CMaps (BSD-3-Clause).
|
|
Their licences and per-file hashes are retained in vendor/hayro-interpret/assets,
|
|
vendor/hayro-cmap/assets, licenses/pdf-backend and ATTRIBUTION.md. These are existing reader dependency assets;
|
|
applications retain their own document-font selection and licensing policy.
|
|
|
|
Platform lifecycle source provenance
|
|
|
|
The optional crates/platform services adapt the preserved local platform candidate
|
|
9b135779a1e7136438a217c18afe1693ea23f1ab (dialog outcomes and browser resource ownership),
|
|
and current application implementations:
|
|
- PdfCraft crates/platform/src/desktop_theme.rs, a8cd797a917b1007544575c7280c9a0ce6a17e8f.
|
|
- CADCraft apps/cadcraft/src/desktop_theme.rs, 0cc66ad3066e71f2c3d4cacb7de905e79ba1c95b.
|
|
- ArtCraft Launcher apps/artcraft-launcher/src/system_theme.rs, f1676dfb41c226b5be490721f486ee6427419d80.
|
|
- Earlier PhotoCraft, FilmCraft and EffectCraft appearance services at revisions
|
|
0c72d95425dece90ef9a1cceb49e3315c96e22d5, 794a25fc9ed2e3f6fab51a254625bc9b99a88015
|
|
and 1b4d47f34f2b1c1b4a89f4b7348889def8fd648b respectively.
|
|
Sources: https://github.com/storytold/pdfcraft, https://github.com/storytold/cadcraft,
|
|
https://github.com/storytold/craft-launcher, https://github.com/storytold/photocraft,
|
|
https://github.com/storytold/filmcraft, https://github.com/storytold/effectcraft.
|
|
Copyright (c) 2026 ArtCraft Team and the respective application and craft-libs contributors.
|
|
All adapted source is licensed MIT OR Apache-2.0.
|