DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: rust-system-deps-meta 9.0.0-1

Package Information

DescriptionDiscover and configure system dependencies from Cargo.toml - Rust source code

Source code for Debianized Rust crate "system-deps-meta"

MaintainerDebian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Changed ByJeremy Bícha <jbicha@ubuntu.com>
Sponsorjbicha@debian.org
Distributionunstable
Architectureany
VCSgit: https://salsa.debian.org/rust-team/debcargo-conf.git [src/system-deps-meta] (browse)
Trackerhttps://tracker.debian.org/pkg/rust-system-deps-meta
Uploaded29 days ago

New Package Report

.changes◂
Sourcerust-system-deps-meta
Version9.0.0-1
Changed-ByJeremy Bícha <jbicha@ubuntu.com>
Architecturesource amd64
Distributionunstable
Changelog◂
rust-system-deps-meta (9.0.0-1) unstable; urgency=medium
 .
   * Package system-deps-meta 9.0.0 from crates.io using debcargo 2.8.4
.dsc◂
Componentmain
Package-Listlibrust-system-deps-meta-dev deb rust optional arch=any
Sectionrust
Priorityoptional
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: system-deps-meta
Upstream-Contact:
 Guillaume Desmottes <guillaume.desmottes@collabora.com>
 Josh Triplett <josh@joshtriplett.org>

Files: *
Copyright:
 2021-2026 Guillaume Desmottes <guillaume.desmottes@collabora.com>
 2016-2019 Josh Triplett <josh@joshtriplett.org>
License: MIT or Apache-2.0

Files: debian/*
Copyright:
 2026 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
 2026 Jeremy Bícha <jbicha@ubuntu.com>
License: MIT or Apache-2.0

License: Apache-2.0
 Debian systems provide the Apache 2.0 license in
 /usr/share/common-licenses/Apache-2.0

License: MIT
 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, 0 important, 3 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 24 days ago.

Report◂

DFSG NEW review for rust-system-deps-meta version 9.0.0-1

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: Yes
  • Packaging is of good quality: Yes
  • Issues: 0 blocker, 0 important, 3 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable

Licensing

debian/copyright is DEP-5, with the canonical Format line, a Files: * stanza and a Files: debian/* override. Upstream declares license = "MIT OR Apache-2.0" in Cargo.toml, and the declared holders (Guillaume Desmottes, Josh Triplett) match its authors. No file in the tree carries a copyright or licence notice of its own, there is no vendored third-party code, no LICENSE/COPYING file, no binary or generated blob, and no non-free term anywhere (greps for the usual wording found nothing outside debian/copyright). The MIT text is reproduced in full and Apache-2.0 is referred to /usr/share/common-licenses, as Policy 12.5 requires. The only gap is that the file does not say where the source came from (see the minor issue).

Packaging

Standard debcargo-generated packaging: 3.0 (quilt), debhelper-compat 13 with dh $@ --buildsystem cargo, Standards-Version 4.7.4 (current Policy is 4.7.4.1, with no checklist entry for it), Vcs-* pointing at debcargo-conf, X-Cargo-Crate/-Version present, one librust--dev package with Multi-Arch: same and consistent Provides. Every librust- dependency in Build-Depends-Arch and Depends exists in the archive and satisfies its version constraint (attohttpc 0.31, cargo-metadata 0.23.1, cfg-expr 0.20.8, flate2 1.1.9, lzma-rust2 0.19.0, sha256 1.6.0, toml 1.1.6, which 8.0.6, zip 5.1.1+dfsg); dh-sequence-cargo is supplied by dh-cargo 34. No maintainer scripts, no embedded third-party code. Two minor points below, neither of which blocks an upload.

Issues

minor licensing 1. debian/copyright does not say where the upstream sources were obtained ◂
  • Files: debian/copyright:1-5
  • Evidence: Header stanza is only Format:, Upstream-Name: system-deps-meta, Upstream-Contact: (two addresses); there is no Source: field and no URL anywhere in the file.
  • Problem: Policy 12.5: "the copyright file must say where the upstream sources (if any) were obtained". The source is the crates.io crate system-deps-meta 9.0.0, but nothing in debian/copyright records that; the URL appears only in debian/control's Homepage and in the changelog text.
  • Fix: Add a Source: field to the header stanza, e.g. Source: https://crates.io/crates/system-deps-meta (and the upstream repository URL, https://github.com/gdesmottes/system-deps).
minor packaging 2. debian/cargo-checksum.json records no checksum at all ◂
  • Files: debian/cargo-checksum.json
  • Evidence: {"package":"Could not get crate checksum","files":{}}
  • Problem: dh-cargo copies this file over the crate's .cargo-checksum.json in the build tree and installs it as /usr/share/cargo/registry/system-deps-meta-9.0.0/.cargo-checksum.json (Debian::Debhelper::Buildsystem::cargo, configure/build/install). With no package checksum and an empty files map, cargo verifies nothing, and the file records neither which .crate the sources came from nor any per-file hash, i.e. the shipped source is unverified. It looks like debcargo was run without access to the crates.io .crate.
  • Fix: Regenerate the package with debcargo so the file holds the sha256 of the .crate and the per-file checksums (as debian/cargo-checksum.json normally does); if it genuinely cannot be produced, say why in debian/README.source.
minor packaging 3. relax-deps.patch rewrites dependency requirements with no DEP-3 header or explanation ◂
  • Files: debian/patches/relax-deps.patch:1, debian/patches/relax-deps.patch:19-22
  • Evidence: File begins directly with --- a/Cargo.toml; last hunk is [dependencies.zip] / -version = "2.4" / +version = "5", and three others widen 0.29/0.20/0.16 to >= x, < 1.
  • Problem: Unlike debian/patches/auto/auto-remove-targets.patch (which carries a one-line provenance note), this patch has no Description/Origin and nothing in debian/changelog mentions it, yet it is a substantive change: it replaces the manifest that the -dev package installs into /usr/share/cargo/registry with one that requires zip 5 (not 2.4) and accepts attohttpc 0.31, cargo-metadata 0.23 and lzma-rust2 0.19 (Debian's versions). A reader cannot tell from the package why, or whether it is meant to be forwarded.
  • Fix: Add a DEP-3 header (Description:, Origin:, Forwarded: not-needed) stating that Debian ships newer versions of these crates, and mention the deviation in the changelog entry.
Verified ◂
  • Read every file under debian/: control, rules, changelog, copyright, copyright.debcargo.hint, cargo-checksum.json, debcargo.toml, source/format, patches/series, both patches, tests/control, upstream/metadata (debian/watch deliberately not reviewed).
  • Full upstream inventory built: .cargo_vcs_info.json, Cargo.lock, Cargo.toml, Cargo.toml.orig, CHANGELOG.md, build.rs, src/{binary,error,lib,parse,test}.rs. No LICENSE/COPYING/NOTICE/AUTHORS file, no fonts/images/binaries, no vendored or generated third-party code. .pc/ excluded throughout.
  • Grepped the whole tree for copyright/licence/non-free wording (Copyright, (C), ©, SPDX-License-Identifier, Licensed under, Permission is hereby granted, GPL/LGPL/MPL/Apache/CC, public domain, All rights reserved, non-commercial, no-derivative, redistribut*): the only hits are in debian/copyright and debian/copyright.debcargo.hint.
  • Sampled rather than read exhaustively: heads of the .rs files read and the rest searched (the 3375-line Cargo.lock was sampled, not read in full).
  • Compared the unpacked tree with rust-system-deps-meta_9.0.0.orig.tar.gz: the tarball's Cargo.toml has attohttpc 0.29, cargo_metadata 0.20, lzma-rust2 0.16, zip 2.4 and the junction/inno/pkg-extractor targets, so both patches are applied as expected and debian/* adds no files to the upstream tree; Cargo.lock is upstream's, not added by Debian.
  • Checked every librust-* name in Build-Depends-Arch and Depends with apt-cache: all exist (as virtual packages provided by librust-*-dev) and satisfy the stated ranges; dh-sequence-cargo is supplied by dh-cargo (Provides).
  • Policy 12.5, 12.5.1, the copyright-format 1.0 document and the autopkgtest control-file specification read from the reviewing system to check the copyright file and the test stanzas.
  • uscan found the packaged version as the newest upstream release (upstream 9.0.0, packaged 9.0.0).
Not confirmed ◂
  • The copyright years in the Files: * stanza (2021-2026 Guillaume Desmottes, 2016-2019 Josh Triplett). No file carries a year, and debian/copyright.debcargo.hint says the years were taken from the upstream Git history; upstream's repository is not in the tarball, so they cannot be verified from here.
  • Whether the optional-feature code (src/binary.rs, the zip/gz/xz paths) still compiles against Debian's newer crates that relax-deps.patch allows (attohttpc 0.31, which 8, zip 5, lzma-rust2 0.19). dh_auto_build builds only the default feature set (empty), so the Debian build never compiles those paths; a build with --all-features would show it. The attohttpc::Error conversion and zip::ZipArchive::new/extract use look version-agnostic, but the crates' sources are not on this system to check.
  • Whether autopkgtest recognises the Restrictions: flaky used in all nine stanzas of debian/tests/control. The autopkgtest document shipped with debian-policy lists only rw-build-tree, breaks-testbed, needs-root, build-needed, allow-stderr, isolation-container, isolation-machine and needs-recommends, and says unknown restrictions cause the stanza to be skipped; autopkgtest itself is not installed here, and flaky is what debcargo generates. If it were unknown, no test would run at all.
  • Whether debcargo normally writes real checksums into debian/cargo-checksum.json: debcargo is not installed on the reviewing system, so the 'Could not get crate checksum' value could not be compared with the tool's output when it can reach crates.io.
  • Why the model asked for what a review has no use for. During this review it asked once 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/share/cargo" 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,

Some more minor issues (including that same checksums issue I mentioned in the last review), missing a "Source: ..." line in debian/copyright and missing DEP-3 headers explaining the 'relax-deps' patch.

Thanks!

Back to Dashboard | View all reviews for this package