rust-serde-pickle 1.2.0-1
Package Information
| Description | Serde-based serialization library for Python's pickle format - Rust source code Source code for Debianized Rust crate "serde-pickle" |
|---|---|
| Maintainer | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> |
| Changed By | Steffen Moeller <moeller@debian.org> |
| Sponsor | moeller@debian.org |
| Distribution | unstable |
| Architecture | any |
| VCS | git: https://salsa.debian.org/rust-team/debcargo-conf.git [src/serde-pickle] (browse) |
| Closes | #1152598 |
| Tracker | https://tracker.debian.org/pkg/rust-serde-pickle |
| Uploaded | 3 hours ago |
New Package Report
.changes
| Date | Fri, 30 Oct 2026 13:05:40 +0100 |
|---|---|
| Source | rust-serde-pickle |
| Version | 1.2.0-1 |
| Changed-By | Steffen Moeller <moeller@debian.org> |
| Architecture | source amd64 |
| Distribution | unstable |
Changelog
rust-serde-pickle (1.2.0-1) unstable; urgency=medium
.
* Initial release (Closes: #1152598).
* Use num-bigint 0.5 and criterion 0.5 available in Debian.
* Port property tests to QuickCheck 1 and rand 0.10; relax regex pin.
* Gate the benchmark executable on its required feature, and decode its
object fixtures with their restore state.
* Fix asymmetric float/big-integer ordering, with a regression test..dsc
| Priority | optional |
|---|---|
| Component | main |
| Package-List | librust-serde-pickle-dev deb rust optional arch=any |
| Section | rust |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: serde-pickle Upstream-Contact: Georg Brandl <georg@python.org> Source: https://github.com/birkenfeld/serde-pickle Files: * Copyright: 2015-2024 Georg Brandl <georg@python.org> License: MIT or Apache-2.0 Files: debian/* Copyright: 2026 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> 2026 Steffen Moeller <moeller@debian.org> 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 1 blocker, 0 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 2 hours ago.
Report
DFSG NEW review for rust-serde-pickle version 1.2.0-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: Yes
- Issues: 1 blocker, 0 important, 0 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: 17 found
Licensing
The code is free: every Rust and Python source file carries the same MIT/Apache-2.0 notice (2015-2024 Georg Brandl), LICENSE-APACHE is the full Apache 2.0 text, and debian/copyright is DEP-5 with both licence texts. It is not accurate for every file, however: LICENSE-MIT's own notice names The Rust Project Developers, and the catch-all Files: * stanza attributes that file to Georg Brandl alone and never records that holder.
Packaging
Standard debcargo packaging, done well: Build-Depends-Arch follows Cargo.toml after the patches and all its names exist in the archive; the <!nocheck> markers match the fact that dh-cargo's only compile step is dh_auto_test's cargo build; the five patches are DEP-3 with clear purposes and consistent hunks in both Cargo.toml and Cargo.toml.orig; autopkgtests exercise the default, no-feature and feature combinations with the dev-dependencies declared there; changelog, compat level 13, source format and Vcs fields are all sane.
Issues
1. [blocker] [licensing] debian/copyright attributes LICENSE-MIT to Georg Brandl and does not name The Rust Project Developers
- Files:
LICENSE-MIT:1,debian/copyright:6-9 - Basis: checked, in the package or with a reference tool
- Evidence:
LICENSE-MIT:1:Copyright (c) 2014 The Rust Project Developers;debian/copyright,Files: *:Copyright:2015-2024 Georg Brandl <georg@python.org> - Problem:
LICENSE-MITis matched by the catch-allFiles: *stanza, so the only copyright notice it carries is recorded as Georg Brandl's, and The Rust Project Developers are not named anywhere in the file. The MIT permission text is reproduced, but copyright-format 6.8 requires the Copyright field to collect all relevant copyright notices of the files in the stanza; this one is missing, and debcargo's owndebian/copyright.debcargo.hintdid have a separateFiles: LICENSE-MITstanza with that holder, so this was dropped, not overlooked for lack of evidence. I also confirmed the same notice in the .orig tarball's LICENSE-MIT. - Fix: Add a stanza after the catch-all, e.g.
Files: LICENSE-MIT/Copyright: 2014 The Rust Project Developers/License: MIT, so the holder is recorded; aFiles: LICENSE-APACHEstanza for the licence text is optional.
Verified
- Read every file of debian/ (control, rules, changelog, copyright, copyright.debcargo.hint, debcargo.toml, README.source, source/format, all five patches and series, tests/control, upstream/metadata) and the .dsc and .orig tarball.
- Inventoried all 45 upstream files: src/ (consts.rs, de.rs, error.rs, lib.rs, ser.rs, value.rs, value_impls.rs), examples/pickle.rs, benches/benchmark.rs, benches/data/ (biglist.pickle, genperfdata.py, manyrefs.pickle, manystrings.pickle), test/{arby.rs,mod.rs}, test/data/, .github/workflows/main.yml, Cargo.toml, Cargo.toml.orig, Cargo.lock, CHANGELOG.md, LICENSE-APACHE, LICENSE-MIT, README.md, rust-toolchain, .rustfmt.toml, .gitignore, .cargo_vcs_info.json.
- Every .rs and .py source file begins with the identical header
Copyright (c) 2015-2024 Georg Brandl ... Licensed under the Apache License, Version 2.0 ... or the MIT license;test/data/generate.pyhas the same header (itshttp:#...in the header is an upstream typo, not a licence term);benches/data/genperfdata.pyhas no header but is covered by the crate-wide MIT/Apache-2.0 terms. - LICENSE-APACHE is the complete, unmodified Apache License 2.0 (201 lines including the appendix); LICENSE-MIT is the standard MIT text. debian/copyright is DEP-5 and has stand-alone MIT (full text) and Apache-2.0 (pointer to /usr/share/common-licenses/Apache-2.0) paragraphs; Cargo.toml's
license = "MIT/Apache-2.0"agrees. - grep over the whole tree (gitignore false, excluding .pc) for Copyright/(C)/©/SPDX-License-Identifier/Licensed under/Permission is hereby granted/GNU/Apache License/Mozilla/public domain/All rights reserved found no holder or licence terms other than the above two files; no non-free clauses, field-of-use or no-modification text anywhere.
- The 17 binary files from the scan are all pickle fixtures, not built artefacts, and their generators are shipped:
benches/data/biglist.pickle,benches/data/manyrefs.pickle,benches/data/manystrings.pickleare produced bybenches/data/genperfdata.pyand read bybench_picklefilein benches/benchmark.rs:180-182;test/data/test_recursive_proto1.pickle,test_recursive_proto2.pickle,test_recursive_proto3.pickle,test_recursive_proto4.pickle,test_recursive_proto5.pickle(and proto0) are produced by test/data/generate.py and read by therecursivetest in test/mod.rs:340-353;test/data/test_unresolvable_global.pickleis produced by the same script and read by test/mod.rs:435;test/data/tests_py2_proto0.pickle,tests_py2_proto1.pickle,tests_py2_proto2.pickle,tests_py3_proto1.pickle,tests_py3_proto2.pickle,tests_py3_proto3.pickle,tests_py3_proto4.pickle,tests_py3_proto5.pickle(and py3 proto0) are produced by generate.py and read by theunpickle_alltest in test/mod.rs:322-330. generate.py reproduces exactly this set of names, so their preferred form for modification is present. - Packaging dependencies: every Build-Depends-Arch and binary-Depends name exists in the archive - librust-num-bigint-dev 0.5.1-1 provides librust-num-bigint-0.5+default-dev, librust-criterion-dev 0.5.1-11 provides criterion-0.5, librust-iter-read-dev 1.1.0-1, librust-rand-dev 0.10.3+ds-1, librust-quickcheck-dev 1.1.0-1, and dh-cargo 34 provides dh-sequence-cargo (and cargo-auto-test, so tests/control's
dh-cargo (>= 33~)is satisfiable). Dependencies correspond one-for-one to Cargo.toml's dependencies after the patches. - Dev-dependencies (quickcheck, rand, regex, serde_derive, serde_json) are absent from Build-Depends and present in debian/tests/control: correct, because /usr/share/perl5/Debian/Debhelper/Buildsystem/cargo.pm's test step runs
cargo buildunlesstestis passed, and debian/rules passes nothing. - Build-Depends-Arch marks every Rust build dependency <!nocheck>: consistent with cargo.pm, whose only compile is the dh_auto_test step that dh skips under nocheck; compat 13 does not run overrides there and none is defined.
- Patches: all five have DEP-3 headers (Description, Author, Forwarded, Last-Update), each states its purpose, and the working tree confirms they applied; num-bigint/criterion/test-dependency changes are mirrored in both Cargo.toml and Cargo.toml.orig, and the num-bigint 0.5 change matches the archive's librust-num-bigint-dev 0.5.1.
- Standards-Version 4.7.4 against Policy 4.7.4.1 (first two components 4.7) is current enough; debhelper-compat (= 13) with
dh $@ --buildsystem cargo, source format 3.0 (quilt), changelog 1.2.0-1 in unstable dated Fri, 30 Oct 2026 closing #1152598, Homepage and Vcs-* fields consistent with the upstream repository and debcargo-conf layout. - No maintainer scripts, no .maintscript, no files needing Files-Excluded (LICENSE-MIT in the unpacked tree is identical to the .orig tarball's), no images, fonts or PDFs, and no documentation built from missing sources.
- uscan found the packaged version as the newest upstream release (upstream
1.2.0, packaged1.2.0). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (Apache-2.0).
Not confirmed
- I did not build the package or run the autopkgtests (read-only review); the QuickCheck/rand port, the criterion bench gating and the fixtures' restore-state change were checked by reading the patches and the patched tree, not by executing them.
Proposed changes
None.
Uploader's response to the LLM review
The issue found was that the LICENSE-MIT file has a copyright on its own that I should have respected in the d/copyright file. But we already know that it was the MIT that crafted that copyright file. We just copy that declaration into every package without declaring it all the time.
In the "verified" section of the LLM's review it finds that "LICENSE-MIT is the standard MIT text. debian/copyright is DEP-5 and has stand-alone MIT (full text)". I am confident that upstream made a mistake/had a different semantics in mind by putting up that copyright statement into that file that way it is - that is the library upstream author and the Rust team.
— Steffen Möller (moeller), 1 hour ago