Files
3f044b6263 fix(print): adopt native Windows spooler
Adopt the canonical craft-print revision from craft-libs #28 so Windows printing uses the in-process Windows.Data.Pdf/XPS backend instead of PowerShell. Keep exact paper, orientation and scaling validation and the existing PDFCraft composition and permission checks.

Pin the reviewed winprint fork, scope its compile-time licence/advisory exceptions, and distinguish the earlier WDAC Sandbox exercise from the final pinned revision's Windows CI coverage. Physical printer output remains unverified.

Add worker-barrier regressions for Home-selected tool handoff and startup document ordering.

Fixes #1107

Co-authored-by: durtyrobbin <[email protected]>
Co-authored-by: Dimitar Klaturov <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-authored-by: skylar taylor-barrick <[email protected]>
2026-10-13 14:46:24 -06:00

66 lines
2.5 KiB
TOML

# cargo-deny policy (M0.4). Run with `cargo xtask deny`; part of `cargo xtask ci`.
# Code dependencies follow the same rule as assets (AGENTS.md): permissive licences only.
# Copyleft (GPL, AGPL, LGPL) is never linked; such tools run only as external oracle processes.
[graph]
all-features = true
[licenses]
confidence-threshold = 0.9
allow = [
"MIT",
"MIT-0",
"Apache-2.0",
"Apache-2.0 WITH LLVM-exception",
"BSD-2-Clause",
"BSD-3-Clause",
"ISC",
"Zlib",
"Unicode-3.0",
"BSL-1.0",
"CC0-1.0",
]
[licenses.private]
ignore = true
[bans]
multiple-versions = "allow"
wildcards = "deny"
allow-wildcard-paths = true
[sources]
unknown-registry = "deny"
unknown-git = "deny"
# Shared UI components and spooler; Cargo.toml pins the immutable revision. craft-print pins
# storytold's winprint fork (Windows printing, #1107) to an immutable revision of its own.
allow-git = ["https://github.com/storytold/craft-libs", "https://github.com/storytold/winprint.rs"]
[advisories]
yanked = "warn"
ignore = [
# Marvin (RSA private-key timing side channel, no fixed `rsa` release). pdfcraft-sign uses
# `rsa` only for public-key signature verification, which the advisory does not affect; RSA
# private-key operations use aws-lc-rs on native targets and are refused in the browser
# (ADR-0009). Revisit when a fixed `rsa` ships.
{ id = "RUSTSEC-2023-0071", reason = "rsa is used for verification only (ADR-0009)" },
# proc-macro-error is unmaintained (no vulnerability). It reaches the tree as a proc macro of
# winprint's fmt-derive (craft-print's Windows spooler), so it runs at compile time on Windows
# and is not in the binary.
{ id = "RUSTSEC-2024-0370", reason = "compile-time proc macro of winprint's fmt-derive (craft-print Windows printing, #1107)" },
]
# egui's default UI fonts (Ubuntu-Light, Hack, emoji-icon-font): font licences on the AGENTS.md
# §1.2 allowlist, attributed in ATTRIBUTION.toml as dependency-bundled assets.
[[licenses.exceptions]]
crate = "epaint_default_fonts"
allow = ["OFL-1.1", "Ubuntu-font-1.0"]
# winprint (craft-print's Windows spooler, #1107) lists reqwest as a build-dependency for its
# PDFium download, which only runs with its `pdfium` feature; craft-print turns that off. The CA
# bundle reqwest brings is CDLA-Permissive-2.0 data and is compiled into winprint's build script
# only, never into PdfCraft. Remove when winprint makes those build-dependencies optional.
[[licenses.exceptions]]
crate = "webpki-root-certs"
allow = ["CDLA-Permissive-2.0"]