This is an automated message from the Debian DFSG, Licensing & New
Packages Team.

The Debian NEW review of python-rbloom 1.5.4-1 has been completed.

Decision: ACCEPTED
Reviewer: Andrew McMillan

Review comment:

Hi,

A couple of minor issues you should think about fixing on your next upload...

1. [important] [packaging] Build-Depends missing python3-dev: cdylib links 
libpython but nothing in Build-Depends provides the dev symlink

 - Files: `debian/control (Build-Depends); 
debian/patches/0002-Patch-out-extension-module-pyo3-feature.patch`
 - Evidence: Patch 0002 deletes `"extension-module",` from the pyo3 features in 
`Cargo.toml`, so pyo3 links against libpython. `python3-all` Depends only on 
`python3`, `python3.14`, `python3.15`; `dh-python`/`dh-sequence-python3` and 
`pybuild-plugin-pyproject` Depends only `python3:any`; `python3-maturin` 
Depends `python3:any`, libc6, libgcc-s1, libzstd1 (verified via apt-cache). 
None installs the `libpython3.X.so` dev symlink/`python3-config` that linking 
`-lpython3.X` (or pyo3-build-config's libpython lookup) needs; only 
`python3-dev`/`libpython3-dev` provide it.
 - Problem: With `extension-module` removed, the final `.so` must be linked 
against libpython, which requires the development library. On a clean buildd 
(or sbuild/pbuilder chroot) where only the declared Build-Depends are 
installed, the link step could fail or pyo3's build could error "Could not find 
Python dynamic library". The local build likely worked only because the 
maintainer's environment happens to have python3-dev installed. This is a 
genuine missing build dependency.
 - Fix: Add `python3-all-dev` (or at least `python3-dev`; if pybuild builds 
against all of `python3-all`'s interpreters, the per-version `-dev` of each is 
needed) to Build-Depends, then verify with a clean build.

2. [minor] [packaging] Generated cargo build state committed in 
debian/cargo_home

 - Files: `debian/cargo_home/config.toml, debian/cargo_home/.package-cache, 
debian/cargo_home/.package-cache-mutate, 
debian/cargo_home/registry/CACHEDIR.TAG; debian/clean`
 - Evidence: `debian/cargo_home/config.toml` contains machine/build-specific 
content, e.g. `[build] rustflags = [... '-C', 'linker=riscv64-linux-gnu-gcc', 
... '--remap-path-prefix', 
'/build/python-rbloom-1.5.4=/usr/share/cargo/registry/python-rbloom-1.5.4', 
...]`, with `source.crates-io replace-with = "dh-cargo-registry"` pointing at 
`/build/python-rbloom-1.5.4/debian/cargo_registry`.  `.package-cache` / 
`.package-cache-mutate` are empty. All four are present in 
`python-rbloom_1.5.4-1.debian.tar.xz`. `debian/clean` lists only 
`debian/cargo_home/.global-cache`, which is why the others leaked into the 
source package.
 - Problem: Build-time artifacts with absolute build paths and a cross-arch 
linker got committed to the Debian source package. They are regenerated by 
`cargo prepare-debian` each build, so they do not break the build, but shipping 
them is sloppy, non-reproducible-looking, and they are not cleaned by 
`dh_clean`.
 - Fix: Remove `debian/cargo_home/` (generated at build time) from the source 
package / git, and either extend `debian/clean` or gitignore 
`debian/cargo_home/` so the files do not reappear.

Full review details: https://dfsg-new-queue.debian.org/reviews/python-rbloom

Reply via email to