DFSG NEW Queue

DFSG, Licensing & New Packages Team

rust-polars-arrow-format 0.2.1-1

Package Information

DescriptionRust 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"

MaintainerDebian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Changed BySteffen Moeller <moeller@debian.org>
Sponsormoeller@debian.org
Distributionunstable
Architectureany
VCSgit: https://salsa.debian.org/rust-team/debcargo-conf.git [src/polars-arrow-format] (browse)
Closes#1147539
Trackerhttps://tracker.debian.org/pkg/rust-polars-arrow-format
Uploaded3 hours ago

New Package Report

.changes◂
Version0.2.1-1
Changed-BySteffen Moeller <moeller@debian.org>
Architecturesource amd64
Distributionunstable
DateFri, 06 Nov 2026 00:15:45 +0100
Sourcerust-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◂
Sectionrust
Priorityoptional
Componentmain
Package-Listlibrust-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/copyright is 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: has librust-planus-1.1+default-dev (<< 1.1.2), and librust-planus-1.1+default-dev (>= 1.1.1),; Cargo.toml pins version = "=1.1.1", and the generated code asserts const _: () = ::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-dev is provided by librust-planus-dev 1.3.0-1, which provides only the -1, -1.3 and -1.3.0 virtual 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/control uses @ (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_compatibility constant) and set the crate's requirement to 1.3, giving librust-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), while Files: 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.rs with Copyright: 2026 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> / 2026 Steffen Moeller <moeller@debian.org> and License: 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-cargo and Build-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-service for the tonic part 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 tonic dependency 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), and Depends: / ${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 domain and All rights reserved found no match, so the tree's only copyright notice is LICENSE's Copyright 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 by Files: *; 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]] and required-features. No maintainer scripts, no .install/.links/*.docs (normal debcargo layout), rules is dh $@ --buildsystem cargo plus a test override that dh skips 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, packaged 0.2.1).
  • Every pointer of debian/copyright to /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.

Back to Dashboard | View all reviews for this package