DFSG NEW Queue

DFSG, Licensing & New Packages Team

rust-nostr-rs-relay 0.8.12-1

Package Information

DescriptionRelay implementation for the Nostr protocol - Rust source code

Source code for Debianized Rust crate "nostr-rs-relay"

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-rs-relay] (browse)
Trackerhttps://tracker.debian.org/pkg/rust-nostr-rs-relay
Uploaded3 days ago

New Package Report

.changes◂
DateWed, 11 Nov 2026 18:14:57 +0000
Sourcerust-nostr-rs-relay
Version0.8.12-1
Changed-ByYing-Chun Liu (PaulLiu) <paulliu@debian.org>
Architectureamd64 source
Distributionunstable
Changelog◂
rust-nostr-rs-relay (0.8.12-1) unstable; urgency=medium
 .
   * Package nostr-rs-relay 0.8.12 from crates.io using debcargo 2.8.4
.dsc◂
Componentmain
Package-Listlibrust-nostr-rs-relay-dev deb rust optional arch=any
nostr-rs-relay deb net optional arch=any
Sectionrust
Priorityoptional
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: nostr-rs-relay
Upstream-Contact: Greg Heartsfield <scsibug@imap.cc>
Source: https://git.sr.ht/~gheartsfield/nostr-rs-relay

Files: *
Copyright: 2021 Greg Heartsfield <scsibug@imap.cc>
License: MIT

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.

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 3 days ago.

Report◂

DFSG NEW review for rust-nostr-rs-relay version 0.8.12-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: upstream LICENSE says Copyright (c) 2021 Greg Heartsfield with the standard MIT text, Cargo.toml says license = "MIT", README.md says "This project is MIT licensed", and no other copyright, licence or restrictive wording exists anywhere else in the tree. debian/copyright is DEP-5 with the correct Format, a Files: * stanza naming Greg Heartsfield 2021, a later Files: debian/* stanza naming the Debian Rust Maintainers and PaulLiu 2026 for the man pages and other Debian files, and the standalone MIT paragraph. No non-free terms, no licence-less files, no vendored third-party code, and no binary assets whose provenance would need judging; the prescan's author check agrees that every holder in the tree is named.

Packaging

A well-constructed debcargo package: compat 13 with the dh sequencer, the crate/bin split correct (dh-cargo's cargo.pm installs the registry copy and both binaries straight into the binary package dirs), the systemd unit, sysusers file, conffile, man pages built with pandoc at build time, guarded by debian/clean, DEP-3 patches that forward-port the code to the crate versions actually in the archive, and autopkgtests covering all-features/default/no-default-features. The only fault I found is a wrong exit status documented in bulkloader(1).

Issues

minor packaging 1. bulkloader(1) documents exit status 1 for a database without a relay schema, but bulkloader panics and exits 101 ◂
  • Files: debian/man/bulkloader.md (EXIT STATUS, item 1), src/bin/bulkloader.rs:23-40
  • Basis: checked, in the package or with a reference tool
  • Evidence: man page: **1** : The database directory does not exist, the database could not be opened, or it has not been initialised with a relay schema yet.; code: let version = curr_db_version(&mut conn)?; ... if version != DB_VERSION { info!("version is not current, exiting"); panic!("cannot write to schema other than v{DB_VERSION}"); } with DB_VERSION = 18 (src/repo/sqlite_migration.rs:26) and curr_db_version returning PRAGMA user_version (0 for an empty database).
  • Problem: An existing but uninitialised database, or a missing nostr.db created by SQLITE_OPEN_CREATE (the pool is opened with OpenFlags::SQLITE_OPEN_READ_WRITE | OpenFlags::SQLITE_OPEN_CREATE), gives version 0, fails the comparison and panics, so the process exits 101, not 1. The 1 entry therefore contradicts the 101 entry two lines below it, and scripts that distinguish the two failure modes will misread an uninitialised database.
  • Fix: Remove or it has not been initialised with a relay schema yet from the exit-status 1 entry (it already belongs to the 101 entry), and say in DESCRIPTION that the database file is created empty if it is absent and then aborts on the version check.
Verified ◂
  • Prescan: the author check reports "every holder found is named in debian/copyright" and lists no files, so there is nothing from the scan left unaccounted for.
  • Complete tree inventory by glob with gitignore off (excluding .pc/ and debian/cargo-checksum.json): 13 top-level upstream files, .cargo/config.toml, .github/workflows/ci.yml, contrib/nostr-rs-relay.service, docs/ (6 markdown files), proto/nauthz.proto, src/ (23 files), tests/ (4 files), debian/ (28 files). All read or listed.
  • Licence evidence: the only notices in the tree are LICENSE (The MIT License (MIT) / Copyright (c) 2021 Greg Heartsfield), Cargo.toml and Cargo.toml.orig (license = "MIT") and README.md:162 (This project is MIT licensed.). Greps for Copyright, (C), ©, SPDX-License-Identifier, "Permission is hereby granted", GNU/LGPL/Apache/MPL, public domain, All rights reserved found nothing else; greps for non-commercial, no-modification, field-of-use, CC-BY-NC/ND and patent terms found nothing.
  • No images, fonts, PDFs, archives, minified JavaScript or wasm anywhere in the tree (glob over those extensions returns nothing), so no asset of unclear provenance needed judging.
  • debian/copyright is DEP-5 with the canonical Format URL, Files stanzas in the right order (Files: * then Files: debian/*), © holders (Greg Heartsfield 2021; Debian Rust Maintainers and PaulLiu 2026) that match LICENSE and debian/man/*.md (Copyright © 2026 Ying-Chun Liu (PaulLiu)), and the standalone MIT text matching LICENSE.
  • proto/nauthz.proto carries no separate notice and is the project's own gRPC schema (described in docs/grpc-extensions.md, compiled by build.rs and used from src/nauthz.rs), so the Files: * MIT stanza covers it correctly.
  • debian/copyright.debcargo.hint is debcargo's generation template (it still carries debcargo's FIXME (overlay) UNKNOWN-YEARS / UNKNOWN-LICENSE; FIXME (overlay) placeholders); it is not installed in any binary package — only debian/copyright is — and the reviewed debian/copyright is the accurate one.
  • Build wiring: dh $@ --buildsystem cargo at compat 13; dh_installsysusers is only in the default sequence from compat 14 (debhelper tool), so the explicit dh-sequence-installsysusers is required and correct; dh_missing defaults to --fail-missing at compat 13, and reading /usr/share/perl5/Debian/Debhelper/Buildsystem/cargo.pm shows install() writing the registry copy into debian/librust-nostr-rs-relay-dev/usr/share/cargo/registry/nostr-rs-relay-0.8.12 and the binaries into debian/nostr-rs-relay, so nothing is left in debian/tmp.
  • dh_installsysusers adds systemd | systemd-standalone-sysusers | systemd-sysusers to misc:Depends (/usr/bin/dh_installsysusers), and nostr-rs-relay has ${misc:Depends}; dh_installdeb auto-detects /etc files as conffiles, so the dh-exec line in nostr-rs-relay.install really makes /etc/nostr-rs-relay/config.toml a conffile as README.Debian and the man page say; dh_installdocs installs debian/.README.Debian automatically.
  • Patches: all nine have DEP-3 Description/Author/Forwarded/Last-Update headers, only 0001 touches Cargo.toml (checked by grep), and the forward ports match the crate versions in the archive (secp256k1 0.33.1, bech32 0.11.0, rusqlite 0.40.2, sqlx 0.9.0, tungstenite 0.28.0, hyper 1.11.1, tonic 0.14.5, prost-build 0.14.4), all checked with apt-cache; librust-prost-build-dev Depends on protobuf-compiler, so build.rs gets protoc transitively and the missing explicit Build-Depends is not a fault.
  • Test/automation equipment: dh-cargo 34 provides dh-sequence-cargo and /usr/share/cargo/bin/cargo-auto-test, satisfying the documented dh-cargo (>= 33~); librust-anyhow-1+default-dev is the crate's only dev-dependency and is in the autopkgtest Depends rather than Build-Depends, which is right because the cargo buildsystem's test step runs cargo build.
  • Control metadata: Standards-Version 4.7.4 against Policy 4.7.4.1 (current), correct Section/homepage/Vcs-*/X-Cargo-Crate fields, changelog version 0.8.12-1 for orig 0.8.12 on unstable signed by the Uploader, and the man pages and README.Debian agree with src/cli.rs (--config/--db), src/main.rs (config errors exit 1, default config.toml missing falls back with a warning), src/config.rs (section and default names) and the unit (User=nostr-rs-relay, StateDirectory matching the conffile's data_directory, installed with --no-start --no-enable).
  • uscan found the packaged version as the newest upstream release (upstream 0.8.12, packaged 0.8.12).
Not confirmed ◂
  • Build-Depends names librust-nostr+nip04-dev, +std-dev and +os-rng-dev (>= 0.18.0), but nothing in the archive lists or in the NEW queues provides them, nor is there a librust-nostr-dev or librust-nostr-0.45-dev; if rust-nostr has not been accepted since the lists were downloaded, a clean-chroot build cannot start.
  • autopkgtest is not installed on the reviewing system, so I could not check that Architecture: !riscv64 in the third debian/tests/control stanza is a field the tester accepts; the autopkgtest specification shipped with Policy does not list an Architecture field and says unknown fields make the tester skip the stanza, while the same document is old enough to say there are no defined Features although Features: test-name= is standard.
  • I could not build the package or run its tests, so the forward-port patches were judged from their text and from the crate versions in the archive, not from a compile.
Proposed changes ◂

None.

Uploader's response to the LLM review

The uploader was emailed about the review 3 days ago.

Other Reviews of this Package

VersionHashAllocatedCompletedReviewerStatusDetails
0.8.12-1 7ff720ea… 2026-11-10 04:42 2026-11-10 04:42 dfsg-uploader rejected VIEW
0.8.12-1 18badba5… 2026-11-11 00:24 2026-11-11 00:24 dfsg-uploader rejected VIEW
0.8.12-1 d13ab089… 2026-11-11 13:55 2026-11-11 13:55 dfsg-uploader rejected VIEW
0.8.12-1 9af6f868… 2026-11-11 17:23 2026-11-11 17:23 dfsg-uploader rejected VIEW

Back to Dashboard | View all reviews for this package