Declare proprietary licensing and enforce permissive-only dependencies
Continuum is intended to be sold, so every dependency has to permit distribution in closed-source commercial software. This crate carried `license = "UNLICENSED"`, which is not valid SPDX and made `cargo deny` fail outright; `LicenseRef-Proprietary` with `publish = false` is what marks it first-party instead. The note in deny.toml is the part that earns its keep: `src/go2rtc.rs` spawns go2rtc from PATH and expects the operator to have installed it, so we currently distribute nothing. go2rtc shells out to ffmpeg, and ffmpeg is LGPL-2.1+ only when built without `--enable-gpl` - most prebuilt binaries are GPL builds because they bundle x264. If we ever ship either binary, those build flags become our problem. Policy and full audit: continuum-common's docs/LICENSES.md.
This commit is contained in:
+6
-1
@@ -3,7 +3,10 @@ name = "continuum-proxy"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
description = "Continuum edge gateway daemon - runs on-site, bridges printers to the cloud control plane"
|
||||
license = "UNLICENSED"
|
||||
# Proprietary: deliberately not an SPDX id, so cargo-deny treats it as
|
||||
# first-party. See docs/LICENSES.md in continuum-common.
|
||||
license = "LicenseRef-Proprietary"
|
||||
publish = false
|
||||
|
||||
[lib]
|
||||
name = "continuum_proxy"
|
||||
@@ -29,6 +32,8 @@ path = "examples/auto_connect_bambu.rs"
|
||||
name = "bambu_commands_demo"
|
||||
path = "examples/bambu_commands_demo.rs"
|
||||
|
||||
|
||||
|
||||
[dependencies]
|
||||
# Real printer protocol clients (MQTT for Bambu, HTTP for PrusaLink/
|
||||
# Moonraker, FTPS for gcode transfer) go here once you're ready to build
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# Licence policy for a closed-source commercial product.
|
||||
# See docs/LICENSES.md in continuum-common for the rationale and the
|
||||
# non-cargo dependencies (external binaries, ML models) this file cannot see.
|
||||
#
|
||||
# Run: cargo deny check licenses
|
||||
|
||||
[licenses]
|
||||
# Permissive only. Anything copyleft reaching a shipped binary would make
|
||||
# the product undistributable without releasing our source.
|
||||
allow = [
|
||||
"MIT",
|
||||
"Apache-2.0",
|
||||
"Apache-2.0 WITH LLVM-exception",
|
||||
"BSD-2-Clause",
|
||||
"BSD-3-Clause",
|
||||
"ISC",
|
||||
"Zlib",
|
||||
"Unicode-3.0",
|
||||
"Unlicense",
|
||||
"MPL-2.0",
|
||||
"CC0-1.0",
|
||||
"BlueOak-1.0.0",
|
||||
]
|
||||
confidence-threshold = 0.9
|
||||
|
||||
# Our own crates declare `LicenseRef-Proprietary`, which is deliberately not
|
||||
# an SPDX identifier and must never appear in the allow list above - a
|
||||
# third-party crate claiming it would be a real finding. They are recognised
|
||||
# as first-party by `publish = false` in their manifests.
|
||||
private = { ignore = true }
|
||||
|
||||
[bans]
|
||||
deny = []
|
||||
|
||||
[advisories]
|
||||
yanked = "deny"
|
||||
|
||||
# NOT VISIBLE TO THIS FILE: src/go2rtc.rs spawns go2rtc as an external
|
||||
# process found on PATH (go2rtc itself is MIT). go2rtc shells out to ffmpeg
|
||||
# for transcoding - ffmpeg is LGPL-2.1+ only when built without
|
||||
# `--enable-gpl`. If we ever ship either binary rather than requiring the
|
||||
# operator to install it, the build flags become our problem. See
|
||||
# docs/LICENSES.md.
|
||||
Reference in New Issue
Block a user