DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: rust-nostr 0.45.6-1

Package Information

DescriptionNostr protocol - Rust source code

Source code for Debianized Rust crate "nostr"

MaintainerDebian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Changed ByYing-Chun Liu (PaulLiu) <paulliu@debian.org>
Sponsorpaulliu@debian.org
Distributionunstable
Architectureany
VCSgit: https://salsa.debian.org/rust-team/debcargo-conf.git [src/nostr] (browse)
Trackerhttps://tracker.debian.org/pkg/rust-nostr
Uploaded6 hours ago

New Package Report

.changes◂
Distributionunstable
Sourcerust-nostr
Version0.45.6-1
Changed-ByYing-Chun Liu (PaulLiu) <paulliu@debian.org>
Architectureamd64 source
Changelog◂
rust-nostr (0.45.6-1) unstable; urgency=medium
 .
   * Package nostr 0.45.6 from crates.io using debcargo 2.8.3
.dsc◂
Sectionrust
Priorityoptional
Componentmain
Package-Listlibrust-nostr-dev deb rust optional arch=any
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: nostr
Upstream-Contact:
 Yuki Kishimoto <yukikishimoto@protonmail.com>
 Nostr Dev Kit Developers
Source: https://github.com/nostrdevkit/nostr.git

Files: *
Copyright:
 2026 Yuki Kishimoto <yukikishimoto@protonmail.com>
 2026 Nostr Dev Kit Developers
 2023-2025 Rust Nostr Developers
 2021 Paul Miller
License: MIT

Files: src/nips/nip11.rs
Copyright:
 2022 Thomas (0xtlt)
 2022-2023 Yuki Kishimoto <yukikishimoto@protonmail.com>
 2023-2025 Rust Nostr Developers
License: MIT

Files: src/nips/nip06/bip32.rs
Copyright:
 2026 Yuki Kishimoto <yukikishimoto@protonmail.com>
 2026 Nostr Dev Kit Developers
License: CC0-1.0

Files: debian/*
Copyright:
 2026 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
 2026 Ying-Chun Liu (PaulLiu) <paulliu@debian.org>
License: MIT

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.

License: CC0-1.0
 Debian systems provide the CC0 1.0 Universal License in
 /usr/share/common-licenses/CC0-1.0

DFSG Assistant LLM REVIEW 0 blocker, 0 important, 1 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 5 hours ago.

Report◂

DFSG NEW review for rust-nostr version 0.45.6-1

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: Yes
  • Packaging is of good quality: Yes
  • Issues: 0 blocker, 0 important, 1 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: nothing found

Licensing

The whole tree is MIT (LICENSE, license = "MIT" in Cargo.toml, and // Distributed under the MIT software license in every file header that has one), except src/nips/nip06/bip32.rs, which carries // SPDX-License-Identifier: CC0-1.0; both are DFSG-free and compatible in one binary. debian/copyright is DEP-5, matches every file through Files: * plus specific stanzas for nip11.rs, bip32.rs and debian/*, names every holder found in the tree (Yuki Kishimoto, Paul Miller, Thomas (0xtlt), Rust Nostr Developers, Nost Nostr Dev Kit Developers), reproduces the full MIT text and points to /usr/share/common-licenses/CC0-1.0, which exists. The only inaccuracy is the upstream years in Files: *, reported below as minor; no licence is missing and no file is under non-free terms.

Packaging

Textbook debcargo 2.8.3 output: source format 3.0 (quilt), debhelper compat 13 with dh-sequence-cargo, one Multi-Arch: same librust-nostr-dev with collapse_features and a Provides for each of the crate's 16 features, Standards-Version 4.7.4 (the reviewing system's Policy version), three DEP-3 patches with Forwarded headers, and 18 autopkgtest runs. Every package named in Depends and Build-Depends-Arch exists in the archive at a satisfying version, the Breaks on rustc matches rust-version 1.85.0/edition 2024, and there are no maintainer scripts. No policy violation, upgrade hazard or user-visible defect found.

Issues

minor licensing 1. debian/copyright gives upstream years that no file supports (2026 for Yuki Kishimoto, 2026 for Nostr Dev Kit Developers, 2023-2025 for Rust Nostr Developers) ◂
  • Files: debian/copyright:8-12, LICENSE:3-4, src/nips/nip66.rs:1
  • Basis: checked, in the package or with a reference tool
  • Evidence: debian/copyright Files: * has 2026 Yuki Kishimoto <yukikishimoto@protonmail.com>, 2026 Nostr Dev Kit Developers, 2023-2025 Rust Nostr Developers; LICENSE has Copyright (c) 2022-2023 Yuki Kishimoto and Copyright (c) 2023-present Nostr Dev Kit Developers; every source header reads 2022-2023 Yuki Kishimoto / 2023-2025 Rust Nostr Developers, and src/nips/nip66.rs:1 reads // Copyright (c) 2026 Rust Nostr Developers.
  • Problem: The Copyright field must collect the notices that apply to the matched files without sacrificing information (copyright-format 1.0 section 6.8). The holders are right but the years are not: no file claims 2026 for Yuki Kishimoto (LICENSE says 2022-2023), and nip66.rs's 2026 notice for Rust Nostr Developers falls outside the declared 2023-2025. The correct per-file years were already present in debian/copyright.debcargo.hint, where debcargo left upstream years as UNKNOWN-YEARS for the maintainer to fill in; writing 2026 replaced that placeholder with a value the source contradicts.
  • Fix: Use the years from the notices, e.g. 2022-2023 Yuki Kishimoto, 2023-present Nostr Dev Kit Developers, 2023-2026 Rust Nostr Developers, 2021 Paul Miller, or copy the per-file years from debian/copyright.debcargo.hint.
Verified ◂
  • The prescan listed no files of its own; its author check scanned 111 files and found every copyright holder named in debian/copyright. I re-checked the holder list myself against every header in src/ and examples/ and found no holder outside the file (Yuki Kishimoto, Paul Miller, Thomas (0xtlt), Rust Nostr Developers, Nostr Dev Kit Developers).
  • Licence evidence collected with grep over the whole tree (Copyright, (C), ©, SPDX-License-Identifier, Licensed under, GNU/Apache/MPL, public domain, All rights reserved): only MIT notices and one SPDX line, in src/nips/nip06/bip32.rs. The prescan's non-free-wording and built-file categories found nothing.
  • src/nips/nip06/bip32.rs is the only non-MIT file, // SPDX-License-Identifier: CC0-1.0, and has its own stanza; the licence text is referenced from /usr/share/common-licenses/CC0-1.0, which is present on the reviewing system.
  • Ten upstream .rs files have no per-file header (src/error.rs, src/util/ct_eq.rs, src/util/json.rs, src/util/sha256.rs, src/nips/util.rs, src/nips/nip01/tags.rs, src/event/signature.rs, src/nips/nip13/{blocking_wrapper,multi_thread,single_thread}.rs); each is compiled into the same crate, whose root LICENSE and Cargo.toml license = "MIT" cover them, so they are not unlicensed.
  • src/nips/nip44/nip44.vectors.json is NIP-44 test-vector data (not generated code, no generator needed), covered by Files: *.
  • debian/copyright is DEP-5 with the canonical Format URL, one catch-all, three specific Files stanzas (later ones override Files: * as intended), one stand-alone MIT paragraph and a CC0-1.0 paragraph; Files: debian/* covers the packaging.
  • Dependencies checked with apt-cache: librust-aes-0.8+default-dev (0.8.4), librust-base64-0.22-dev (0.22.1), librust-bech32 (0.11.0), librust-bip39 (3.0.0), librust-bitcoin-hashes (1.0.0), librust-cbc-0.1+{alloc,default,std} (0.1.2), librust-chacha20-0.9+{default,std} (0.9.1), librust-chacha20poly1305-0.10+{alloc,std} (0.10.1), librust-faster-hex (1.0.0), librust-opaquerr (0.2.0), librust-rand 0.10.3+ds (provides +alloc/+std/+sys-rng), librust-scrypt (0.12.0), librust-secp256k1 (0.33.1), librust-unicode-normalization (0.1.26), librust-universal-time (0.3.1), librust-url (2.5.8), librust-zeroize (1.9.0), and the autopkgtest-only librust-reqwest-0.12+rustls-tls-dev and librust-tokio+macros-dev all exist.
  • Build-Depends-Arch names exactly what the default feature set (std -> alloc) needs plus the optional-feature entries carried by alloc/std; aes, scrypt, cbc+default, chacha20+default and rand+sys-rng are absent because dh-cargo's test step (/usr/share/perl5/Debian/Debhelper/Buildsystem/cargo.pm, sub test) runs plain cargo build, i.e. default features only. The autopkgtests get those packages through @, which the autopkgtest specification expands to the binary package generated by the source package, i.e. librust-nostr-dev and its Depends.
  • Patches: three, all with Description/Forwarded/Author/Last-Update; 0001 relaxes bech32, bip39, bitcoin_hashes, faster-hex and secp256k1 minimums to the versions the archive has (bech32 0.11, bip39 3.0, bitcoin-hashes 1.0, faster-hex 1.0, secp256k1 0.33), and 0002/0003 adapt the code to the secp256k1 0.33 and faster-hex 1.0 APIs that are the only versions packaged, so the widened ranges resolve to versions the patched code targets.
  • Every non-@ autopkgtest carries Restrictions: allow-stderr, flaky, which is debcargo's marker for the test_is_broken settings in debian/debcargo.toml; the all-features run is the one left unmarked, and the tests still execute.
  • Standards-Version 4.7.4 equals the Policy version on the reviewing system (A10 lists 4.7.4 as the newest), so it is current. Vcs-Git/Vcs-Browser point at debcargo-conf src/nostr, matching X-Cargo-Crate nostr.
  • Tree contains no build artifacts, vendored third-party crates or binaries; .pc/ and debian/cargo-checksum.json were left out as instructed.
  • uscan found the packaged version as the newest upstream release (upstream 0.45.6, packaged 0.45.6).
  • Every pointer of debian/copyright to /usr/share/common-licenses names a file that is there (CC0-1.0).
Not confirmed ◂
  • Whether the feature-gated code compiles against the versions the archive has for the two crates whose upstream target differs most: bip39 3.0.0 (upstream asks 2.1) and bech32 0.11.0 (upstream asks 0.12). No crate sources are installed under /usr to compare APIs, and the build only compiles the default feature set, so a mismatch would show up only in the all-features autopkgtest.
  • Whether an ITP bug exists for rust-nostr: the changelog closes none (* Package nostr 0.45.6 from crates.io using debcargo 2.8.3), which is what debcargo's template produces.
Proposed changes ◂

None.

Uploader's response to the LLM review

The uploader rejected this upload in response to the review.

Review Information

rejected — allocated to dfsg-uploader 5 hours ago, started 5 hours ago, completed 5 hours ago.

Final Comment

The uploader rejected this upload in response to the automated (LLM) review of it, so that they can fix the problems it found and upload again.

Back to Dashboard | View all reviews for this package