Review: rust-nostr 0.45.6-1
Package Information
| Description | Nostr protocol - Rust source code Source code for Debianized Rust crate "nostr" |
|---|---|
| Maintainer | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> |
| Changed By | Ying-Chun Liu (PaulLiu) <paulliu@debian.org> |
| Sponsor | paulliu@debian.org |
| Distribution | unstable |
| Architecture | any |
| VCS | git: https://salsa.debian.org/rust-team/debcargo-conf.git [src/nostr] (browse) |
| Tracker | https://tracker.debian.org/pkg/rust-nostr |
| Uploaded | 6 hours ago |
New Package Report
.changes
| Distribution | unstable |
|---|---|
| Source | rust-nostr |
| Version | 0.45.6-1 |
| Changed-By | Ying-Chun Liu (PaulLiu) <paulliu@debian.org> |
| Architecture | amd64 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
| Section | rust |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | librust-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/copyrightis 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/copyrightFiles: *has2026 Yuki Kishimoto <yukikishimoto@protonmail.com>,2026 Nostr Dev Kit Developers,2023-2025 Rust Nostr Developers;LICENSEhasCopyright (c) 2022-2023 Yuki KishimotoandCopyright (c) 2023-present Nostr Dev Kit Developers; every source header reads2022-2023 Yuki Kishimoto/2023-2025 Rust Nostr Developers, andsrc/nips/nip66.rs:1reads// 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-YEARSfor 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 plaincargo 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 carriesRestrictions: allow-stderr, flaky, which is debcargo's marker for thetest_is_brokensettings 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-Cratenostr. - 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, packaged0.45.6). - Every pointer of
debian/copyrightto /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.