rust-polars-arrow-format 0.2.1-1
Package Information
| Description | Rust bindings for Apache Arrow IPC and Flight data - Rust source code Apache Arrow defines a column-oriented memory format for tabular data and protocols for exchanging that data between applications. This crate provides generated Rust types for Arrow's interprocess communication (IPC) format, using Planus for FlatBuffers serialization. The flight-data feature provides Protocol Buffers messages for Arrow Flight using Prost. The Flight gRPC service bindings are not included in this Debian package. It is maintained as part of the Polars ecosystem. Source code for Debianized Rust crate "polars-arrow-format" |
|---|---|
| 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/polars-arrow-format] (browse) |
| Closes | #1147539 |
| Tracker | https://tracker.debian.org/pkg/rust-polars-arrow-format |
| Uploaded | 3 hours ago |
New Package Report
.changes
| Version | 0.2.1-1 |
|---|---|
| Changed-By | Steffen Moeller <moeller@debian.org> |
| Architecture | source amd64 |
| Distribution | unstable |
| Date | Fri, 06 Nov 2026 00:15:45 +0100 |
| Source | rust-polars-arrow-format |
Changelog
rust-polars-arrow-format (0.2.1-1) unstable; urgency=medium . * Initial upload (Closes: #1147539) * Package polars-arrow-format 0.2.1 from crates.io using debcargo 2.8.4 . * Use Debian's Prost 0.14 for Flight data messages. * Defer Flight service bindings requiring obsolete Tonic 0.8. * Add IPC and Flight-data serialization round-trip tests. * Use the co-installable Planus 1.1.1 runtime for generated IPC code.
.dsc
| Section | rust |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | librust-polars-arrow-format-dev deb rust optional arch=any |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: polars-arrow-format Upstream-Contact: Jorge C. Leitao <jorgecarleitao@gmail.com> Source: https://github.com/pola-rs/arrow-format Files: * Copyright: 2022-2025 Jorge C. Leitao <jorgecarleitao@gmail.com> License: Apache-2.0 Files: debian/* Copyright: 2026 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> 2026 Steffen Moeller <moeller@debian.org> License: Apache-2.0 License: Apache-2.0 Debian systems provide the Apache 2.0 license in /usr/share/common-licenses/Apache-2.0
DFSG Assistant LLM REVIEW 0 blocker, 1 important, 4 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-polars-arrow-format version 0.2.1-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: No
- Issues: 0 blocker, 1 important, 4 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The crate is Apache-2.0 throughout and DFSG-free: Cargo.toml declares license = "Apache-2.0", LICENSE is the full Apache 2.0 text (ending Copyright 2020-2022 Jorge C. Leitão), nothing in the tree carries non-free or no-modification wording, no third-party code is vendored, and Apache-2.0 is in /usr/share/common-licenses so the pointer in debian/copyright is enough. debian/copyright is DEP-5 and matches the tree except that the test file Debian itself added (tests/debian_compat.rs) falls under Files: * and is attributed to the upstream author; that is reported as a minor issue and does not change how the file may be used.
Packaging
The debcargo scaffolding is otherwise correct (DEP-3 patch, autopkgtest, current Standards-Version, sound changelog and Vcs fields), but the dependency data is wrong: the binary package Depends on librust-planus-1.1+default-dev, a virtual name nothing in the archive provides (planus is 1.3.0), so the package is uninstallable and its autopkgtest depends on it; and the crate's library dependencies appear in no Build-Depends field, so a clean chroot build cannot resolve them. The flight-service removal also left an uncompilable module and stale documentation behind.
Issues
important packaging 1. Depends on librust-planus-1.1+default-dev, which no package in the archive provides (planus is 1.3.0) ◂
- Files:
debian/control:22-24,Cargo.toml:50-51,src/ipc/generated.rs:3 - Basis: checked, in the package or with a reference tool
- Evidence:
Depends:haslibrust-planus-1.1+default-dev (<< 1.1.2),andlibrust-planus-1.1+default-dev (>= 1.1.1),; Cargo.toml pinsversion = "=1.1.1", and the generated code assertsconst _: () = ::planus::check_version_compatibility("planus-1.1.1");. apt-cache:librust-planus-1.1+default-dev: "There is no binary package named librust-planus-1.1+default-dev … nothing provides it. Nor is it a binary of this package or of any upload waiting in the NEW queues";librust-planus-1+default-devis provided bylibrust-planus-dev 1.3.0-1, which provides only the-1,-1.3and-1.3.0virtual names. - Problem: Every Depends must be satisfiable (Policy 7.2; the name is a virtual package provided by nothing, Policy 7.5). With no planus 1.1.x in unstable, experimental or NEW, the binary package cannot be installed on any system, and because
debian/tests/controluses@(the package under test) for its dependencies, the autopkgtest cannot be installed either. The pin is deliberate (changelog: "Use the co-installable Planus 1.1.1 runtime"; the patch says it keeps "the exact Planus runtime required by its generated code"), but nothing ships it. - Fix: Depend on the planus Debian has: regenerate src/ipc/generated.rs with planus 1.3 (updating the
check_version_compatibilityconstant) and set the crate's requirement to 1.3, givinglibrust-planus-1+default-dev (>= 1.3)in Depends. Alternatively get planus 1.1.1 into the archive first, which the Rust team is unlikely to want for a superseded 1.1.
minor licensing 2. Files: * attributes tests/debian_compat.rs, which Debian wrote, to Jorge C. Leitao ◂
- Files:
debian/copyright:7-11,debian/patches/debian-features.patch,tests/debian_compat.rs - Basis: checked, in the package or with a reference tool
- Evidence:
Files: */Copyright: 2022-2025 Jorge C. Leitao <jorgecarleitao@gmail.com>; the file is not in the .orig tarball and is created by the patch (--- /dev/null/+++ b/tests/debian_compat.rs, Author: Steffen Moeller), whileFiles: debian/*correctly names the 2026 Debian Rust Maintainers and Steffen Moeller. - Problem: A statement of copyright that names the wrong holder for a file is inaccurate (copyright-format 1.0 §6.6; a Debian contributor's own work is theirs, not the upstream author's). The licence itself is right, so this is accuracy only.
- Fix: Add a stanza before the debian/* one, e.g.
Files: tests/debian_compat.rswithCopyright: 2026 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>/2026 Steffen Moeller <moeller@debian.org>andLicense: Apache-2.0.
minor packaging 3. Build-Depends-Arch names none of the crate's library dependencies, so a clean build cannot resolve planus, prost or serde ◂
- Files:
debian/control:5-7 - Basis: inferred from what was read, not seen directly
- Evidence:
Build-Depends: debhelper-compat (= 13),/dh-sequence-cargoandBuild-Depends-Arch: cargo:native <!nocheck>,/rustc:native <!nocheck>,/libstd-rust-dev <!nocheck>— no librust-* entry at all, although the binary Depends lists planus, prost, prost-derive and serde, and Cargo.toml declares them. dh-cargo builds only against what is installed: cargo.pm's configure runs/usr/share/cargo/bin/cargo prepare-debian debian/cargo_registry --link-from-system, which just links the contents of /usr/share/cargo/registry. - Problem: Policy 7.7: Build-Depends-Arch must list everything needed to build the package from source. In an sbuild chroot that has only build-essential and these fields, cargo's resolution finds no planus, prost, prost-derive or serde, and the cargo buildsystem has no way to obtain them (no network, nothing in the package supplies them). debcargo normally generates exactly these entries here with
<!nocheck>; their absence looks like hand-editing of the generated control. - Fix: Add the crate's dependencies to Build-Depends-Arch with
<!nocheck>, as debcargo generates:librust-planus-1+default-dev (>= 1.3) <!nocheck>,librust-prost-0.14+default-dev <!nocheck>,librust-prost-derive-0.14+default-dev <!nocheck>,librust-serde-1+derive-dev <!nocheck>,librust-serde-1+std-dev <!nocheck>(with the planus name as fixed for the issue above).
minor packaging 4. flight-service was dropped, but src/flight/service.rs, lib.rs, README and the Description still refer to it ◂
- Files:
debian/patches/debian-features.patch,src/flight/service.rs,src/flight/mod.rs:6-8,src/lib.rs:8-13,README.md:11,debian/control - Basis: checked, in the package or with a reference tool
- Evidence: The patch removes
flight-service = ["flight-data", "tonic"]and[dependencies.tonic]and keeps#[cfg(feature = "flight-service")] pub mod service;in src/flight/mod.rs; README.md still lists "flight-servicefor thetonicpart of the Apache [Flight protocol]"; debian/control's Description says "The flight gRPC service bindings are not included in this Debian package." dh-cargo's install copies every top-level entry except debian, .pc, target and .git into /usr/share/cargo/registry, so the 40 KB src/flight/service.rs is installed. - Problem: The installed crate carries a module that no feature can ever enable (its feature and its
tonicdependency are gone), so 809 lines of dead, uncompilable code ship in /usr/share/cargo/registry/polars-arrow-format-0.2.1. The README tells users to enable a feature that does not exist, and the Description's claim that the bindings are not included is contradicted by the installed file. - Fix: Delete src/flight/service.rs in debian-features.patch and drop the
#[cfg(feature = "flight-service")]block from src/flight/mod.rs and the feature paragraph from README.md (both are covered by the same patch), so source and Description agree. Otherwise keep the feature and package tonic 0.8.
minor packaging 5. Depends lacks ${shlibs:Depends} at debhelper compat 13 ◂
- Files:
debian/control:3,debian/control:20-25 - Basis: checked, in the package or with a reference tool
- Evidence:
Build-Depends: debhelper-compat (= 13),andDepends:/${misc:Depends},followed directly by the librust-* entries — no${shlibs:Depends}. - Problem: Only from compat 14 does dh_gencontrol add relationship substvars to its field itself; at compat 13 the field is emitted as written, so the binary package's Depends omits it. debcargo's template includes it.
- Fix: Add
${shlibs:Depends}after${misc:Depends}(or raise the compat level to 14, where dh_gencontrol supplies the relationship substvars).
Verified ◂
- Read all of debian/ (control, rules, changelog, copyright, debcargo.toml, both .debcargo.hint files, source/format, patches/series and the single patch, tests/control, upstream/metadata) and every upstream file, except that the 941 KB src/ipc/generated.rs was read at its head and stub bodies and searched in full.
- Prescan's holder check found no copyright holder missing from debian/copyright; my own grep of src/ and tests/ for
Copyright,(C),©,SPDX-License-Identifier,Licensed under, permission grants, GNU/MPL licence names,public domainandAll rights reservedfound no match, so the tree's only copyright notice is LICENSE'sCopyright 2020-2022 Jorge C. Leitão. - debian/copyright is DEP-5 with a correct Format line, Upstream-Name/Contact and Source; Apache-2.0 is the real licence (Cargo.toml
license = "Apache-2.0", full Apache 2.0 text in LICENSE, no other licence file anywhere); /usr/share/common-licenses/Apache-2.0 makes the pointer sufficient. All 15 upstream files (Cargo.toml, Cargo.toml.orig, Cargo.lock, .cargo_vcs_info.json, .gitignore, LICENSE, README.md, generate.sh, tests/debian_compat.rs, src/lib.rs, src/flight/{mod,data,service}.rs, src/ipc/{mod,generated}.rs) are matched byFiles: *; debian/ by the debian/* stanza; no Files-Excluded and nothing excluded is still in the tree. - src/ipc/generated.rs is planus output from Apache Arrow's File/Schema/Message/SparseTensor/Tensor .fbs (its own header names them, generate.sh fetches them), and src/flight/data.rs and service.rs are prost/tonic output of Flight.proto (data.rs says "generated through the build.rs script"). Neither the .fbs/.proto inputs nor build.rs are in the tarball, so regenerating needs the network; the shipped Rust is itself editable source under the same Apache-2.0 terms as the Arrow schemas, so this is not a DFSG problem, and no third-party notice is being stripped from a file that carried one.
- tests/debian_compat.rs is Debian's own: absent from the .orig tarball, added by debian-features.patch; it is Apache-2.0-compatible.
- apt-cache: librust-prost-0.14-dev, librust-prost-derive-0.14-dev and librust-serde-1+derive-dev/+std-dev are provided by librust-prost-dev 0.14.4-1, librust-prost-derive-dev 0.14.4-1 and librust-serde-dev 1.0.229-1; dh-sequence-cargo is provided by dh-cargo 34, which satisfies autopkgtest's
dh-cargo (>= 33~). Only the planus name is unprovided (reported). - The single patch has complete DEP-3 headers (Description, Author, Forwarded: not-needed, Last-Update) and does what it says: prost 0.11→0.14, tonic and the flight-service/full features removed, the round-trip test wired with
[[test]]andrequired-features. No maintainer scripts, no .install/.links/*.docs (normal debcargo layout), rules isdh $@ --buildsystem cargoplus a test override thatdhskips under nocheck at compat 13. - Standards-Version 4.7.4 against Policy 4.7.4.1 (current); changelog version 0.2.1-1, unstable, urgency=medium, one entry closing #1147539 and matching X-Cargo-Crate-Version 0.2.1; Vcs-Git/Vcs-Browser for debcargo-conf and Homepage present; autopkgtest present with nine stanzas; source format 3.0 (quilt).
- uscan found the packaged version as the newest upstream release (upstream
0.2.1, packaged0.2.1). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (Apache-2.0).
Not confirmed ◂
- Whether planus 1.3.0 would satisfy the generated code's
check_version_compatibility("planus-1.1.1"); planus is not installed here (no /usr/share/cargo/registry), so the function could not be read and the fix offered in the first issue assumes a regeneration or an explicit version-check update. - The apt lists are a snapshot taken this morning; a librust-planus-1.1-dev accepted since then would make the first issue moot. apt-cache reports nothing provides it and nothing in NEW does either, as of 2026-11-06.
- debcargo 2.8.4 is not installed here, so the exact Build-Depends-Arch layout it generates could not be inspected; the second issue's conclusion rests on dh-cargo's registry-only build and on this package's own binary Depends listing the same crates.
Proposed changes ◂
None.
Uploader's response to the LLM review
The uploader was emailed about the review 2 hours ago.