Review: rust-cargo-cyclonedx 0.5.9-1
Package Information
| Description | CycloneDX Software Bill of Materials (SBOM) for Rust Crates - Rust source code Source code for Debianized Rust crate "cargo-cyclonedx" |
|---|---|
| Maintainer | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> |
| Changed By | Colin Watson <cjwatson@debian.org> |
| Sponsor | cjwatson@debian.org |
| Distribution | unstable |
| Architecture | any |
| VCS | git: https://salsa.debian.org/rust-team/debcargo-conf.git [src/cargo-cyclonedx] (browse) |
| Closes | #1150965 |
| Tracker | https://tracker.debian.org/pkg/rust-cargo-cyclonedx |
| Uploaded | 23 days ago |
New Package Report
.changes
| Architecture | amd64 source |
|---|---|
| Distribution | unstable |
| Date | Thu, 15 Oct 2026 11:42:56 +0000 |
| Source | rust-cargo-cyclonedx |
| Version | 0.5.9-1 |
| Changed-By | Colin Watson <cjwatson@debian.org> |
Changelog
rust-cargo-cyclonedx (0.5.9-1) unstable; urgency=medium
.
* Package cargo-cyclonedx 0.5.9 from crates.io using debcargo 2.8.4
(closes: #1150965)..dsc
| Package-List | cargo-cyclonedx deb rust optional arch=any librust-cargo-cyclonedx-dev deb rust optional arch=any |
|---|---|
| Section | rust |
| Priority | optional |
| Component | main |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: cargo-cyclonedx Upstream-Contact: Steve Springett <steve.springett@owasp.org> Amy Keibler <3483663+amy-keibler@users.noreply.github.com> Sergey "Shnatsel" Davidoff <shnatsel@gmail.com> Source: https://github.com/CycloneDX/cyclonedx-rust-cargo Files: * Copyright: 2019-2023 Steve Springett <steve.springett@owasp.org> 2021-2023 Amy Keibler <3483663+amy-keibler@users.noreply.github.com> 2023-2026 Sergey "Shnatsel" Davidoff <shnatsel@gmail.com> License: Apache-2.0 Files: src/main.rs Copyright: 2017-2019 SensorFu Oy License: Apache-2.0 and Expat Files: debian/* Copyright: 2026 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> 2026 Colin Watson <cjwatson@debian.org> License: Expat License: Apache-2.0 Debian systems provide the Apache 2.0 license in /usr/share/common-licenses/Apache-2.0 License: Expat Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
DFSG Assistant LLM REVIEW 0 blocker, 1 important, 0 minor
This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.
Reviewed 23 days ago.
Report
DFSG NEW review for rust-cargo-cyclonedx version 0.5.9-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: Yes
- Issues: 0 blocker, 1 important, 0 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
Everything in the tree is DFSG-free: the crate is Apache-2.0 throughout (Cargo.toml license = "Apache-2.0", full Apache text in LICENSE), and src/main.rs additionally reproduces the MIT/Expat notice for the code derived from sensorfu/cargo-bom, which debian/copyright records as Apache-2.0 and Expat; the two are compatible and the full Expat text is included because it is not in /usr/share/common-licenses. debian/copyright is DEP-5 with the correct Format URL, and its stanzas otherwise match the tree, but it nowhere names the OWASP Foundation, although the Foundation is named as copyright holder in LICENSE, README.md and the headers of src/main.rs and src/format.rs. That omission is the single inaccuracy.
Packaging
This is a normal debcargo 2.8.4 package generated from the rust-team overlay. control (debhelper-compat (= 13), dh-sequence-cargo, correct Build-Depends-Arch split), rules, source/format 3.0 (quilt), the five patches (all applied, all with DEP-3 headers and matching the tree), tests/control autopkgtests and the changelog (0.5.9-1, unstable, closing #1150965) are all in order, and Standards-Version: 4.7.4 matches the current Policy 4.7.4.1. Every librust-* name in the dependency fields resolves in the archive's package lists, and I found nothing a sponsor would require changed.
Issues
important licensing 1. debian/copyright omits the OWASP Foundation as a copyright holder ◂
- Files:
debian/copyright:9-18,src/main.rs:17,src/format.rs:17,LICENSE:189,README.md:120 - Evidence:
LICENSE:189:Copyright OWASP Foundation;src/main.rs:17andsrc/format.rs:17:* Copyright (c) OWASP Foundation. All Rights Reserved.;README.md:120:CycloneDX Rust Cargo is Copyright (c) OWASP Foundation. All Rights Reserved. - Problem: The
Files: *stanza names only Steve Springett, Amy Keibler and Sergey Davidoff, and theFiles: src/main.rsstanza (which overrides the catch-all for that file) names only SensorFu Oy. The OWASP Foundation is a copyright holder named in the licence file, the README and several source headers, and appears nowhere in debian/copyright, so the file does not describe the copyright of every file (Policy 4.7.4.1 12.5, DEP-5 copyright-format 1.0). - Fix: Add
OWASP Foundationto theCopyrightfield ofFiles: *, and also to theCopyrightof theFiles: src/main.rsstanza, which replaces the catch-all for that file.
Verified ◂
- Inventory: 21 upstream files outside debian/ (Cargo.toml, Cargo.toml.orig, Cargo.lock, .cargo_vcs_info.json, CHANGELOG.md, LICENSE, README.md, 8 files under src/, tests/cli.rs and 5 JSON files under tests/fixtures/). All are plain text; no programs, libraries, bytecode, minified code, archives, PDFs, fonts or images, so nothing lacks its source or preferred form for modification. .pc/ excluded.
- All eight src/*.rs carry the Apache-2.0 header; src/cli.rs, src/purl.rs and src/platform.rs have no per-file header but the crate as a whole is Apache-2.0 (Cargo.toml
license = "Apache-2.0", LICENSE, and all are covered byFiles: *). Files: src/main.rsLicense: Apache-2.0 and Expatmatches the file: it has the Apache-2.0 header and reproduces the MIT noticeCopyright (c) 2017-2019 SensorFu Oyfor code derived from sensorfu/cargo-bom v0.3.1. The two licences are compatible.- LICENSE is the complete Apache License 2.0 text, including the filled-in appendix
Copyright OWASP Foundation. - debian/copyright is machine-readable (DEP-5) and its
Format:value is the currenthttps://www.debian.org/doc/packaging-manuals/copyright-format/1.0/, so no replacement is proposed; it includes the full Expat text (not in /usr/share/common-licenses) and points to /usr/share/common-licenses/Apache-2.0. - debian/copyright.debcargo.hint is the debcargo overlay hint that debcargo copies into the generated source tree; it is covered by
Files: debian/*(License: Expat), and itsFIXME (overlay) UNKNOWN-YEARS/License: UNKNOWN-LICENSE; FIXME (overlay)placeholders were resolved by hand in the real debian/copyright (years filled in,Apache-2.0 and Expatfor src/main.rs), so it is not itself a licensing statement about upstream code. - debian/cargo-checksum.json (
{"package":"Could not get crate checksum","files":{}}) is the file dh-cargo's buildsystem copies to.cargo-checksum.json(/usr/share/perl5/Debian/Debhelper/Buildsystem/cargo.pm:161-163); it bears no licence, and the placeholderpackagevalue with an emptyfilesmap is not a verified build failure. - tests/fixtures/*.json are cargo-metadata test data, not built artifacts, and are covered by
Files: *. - Packaging: debhelper compat 13 via
dh-sequence-cargo;debian/rulesis the standarddh $@ --buildsystem cargo; source format 3.0 (quilt); all five patches inpatches/seriesapply and their results match the tree (Cargo.toml has cargo-lock 11.0.1, env_logger 0.11.0, validator 0.21.0, cargo_metadata 0.23.1, rust-version 1.86.0; main.rs is the 191 lines left by drop-parse-toml-tests.patch, whose removed tests used the absent tests/fixtures/build_then_runtime_dep). - Standards-Version 4.7.4 against Policy 4.7.4.1 (first two components match); changelog 0.5.9-1 to unstable, closing #1150965; Vcs-Git/Vcs-Browser point at the debcargo-conf tree; debian/upstream/metadata and three autopkgtests are present.
- Every librust-* dependency name resolves in the archive's lists (checked librust-cargo-lock-11, -cargo-metadata-0.23, -cyclonedx-bom-0.8, -env-logger-0.11, -pathdiff-0.2+camino, -purl-0.1+package-type, -thiserror-2 and -validator-0.21 via their Provides); rustc >= 1.86.0 matches Cargo.toml
rust-versionand the package's ownBreaks: rustc (<< 1.86.0~). - uscan found the packaged version as the newest upstream release (upstream
0.5.9, packaged0.5.9).
Not confirmed ◂
- No build or test was run (not possible here), so patch application, hardening flags and autopkgtest behaviour are judged from the files only.
- The third autopkgtest (
--no-default-features) is restricted withArchitecture: !riscv64; the package states no reason, so I could not confirm why. - Why the model asked for what a review has no use for. During this review it asked 2 times for something outside the package and the reviewing system (another file of the sandbox, or a URL), or was given part of the review tooling's own configuration, and that was refused or withheld. A model does this when something it has read tells it to, so look in the package for text addressed to a reviewing program, and treat this report with suspicion. Refused:
grep: " /usr/lib" is not a file of the package or of the reviewing system;glob: " /usr/share/cargo/scripts/*" is not a file of the package or of the reviewing system.
Proposed changes ◂
None.
Review Information
accepted — allocated to awm 23 days ago, started 23 days ago, completed 23 days ago.
Final Comment
Hi,
Please update debian/copyright to acknowledge OWASP Foundation per LICENSE line 189 and README.md line 120.
Thanks!