DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: python-wkb-wkt-converter 0.6.3-1

Package Information

Descriptionconverter between WKT and WKB geometry formats

This library converts geospatial geometries between Well-Known Text (WKT) and Well-Known Binary (WKB), including their extended forms EWKT and EWKB. It supports all seven OGC geometry types, including geometry collections, as well as empty geometries and Z and M coordinate dimensions.

Conversion functions accept binary or hexadecimal WKB and can preserve, remove or override spatial reference identifiers (SRIDs), or return them separately from the geometry. Both byte orders and ISO WKB dimension encodings are supported for input.

MaintainerDebian Python Team <team+python@tracker.debian.org>
Changed ByEdward Betts <edward@4angle.com>
Sponsoredward@debian.org
Distributionunstable
Architectureany
VCSgit: https://salsa.debian.org/python-team/packages/python-wkb-wkt-converter.git (browse)
Closes#1151750
Trackerhttps://tracker.debian.org/pkg/python-wkb-wkt-converter
Uploaded15 days ago

New Package Report

.changes◂
Sourcepython-wkb-wkt-converter
Version0.6.3-1
Changed-ByEdward Betts <edward@4angle.com>
Architectureamd64 source
Distributionunstable
DateFri, 23 Oct 2026 15:39:48 +0100
Changelog◂
python-wkb-wkt-converter (0.6.3-1) unstable; urgency=medium
 .
   * Initial release. (Closes: #1151750)
.dsc◂
Sectionpython
Priorityoptional
Componentmain
Package-Listpython3-wkb-wkt-converter deb python optional arch=any
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: wkb-wkt-converter
Upstream-Contact: Adrien Berchet <https://github.com/adrien-berchet>
Source: https://github.com/adrien-berchet/wkb_wkt_converter

Files: *
Copyright: Adrien Berchet
License: Expat

Files: debian/*
Copyright: 2026 Edward Betts <edward@4angle.com>
License: Expat

License: Expat
 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, 1 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 15 days ago.

Report◂

DFSG NEW review for python-wkb-wkt-converter version 0.6.3-1

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: Yes
  • Packaging is of good quality: No
  • Issues: 0 blocker, 1 important, 0 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: nothing found

Licensing

The whole source tree is MIT (Expat). pyproject.toml declares license = { text = "MIT" }, the Cargo workspace declares license = "MIT", and every file carries no explicit header but is uniformly attributed to upstream author Adrien Berchet. debian/copyright is machine-readable DEP-5 with a Files: * catch-all (Copyright: Adrien Berchet, License: Expat, full text included), a debian/* stanza (Edward Betts, 2026), and a standalone Expat paragraph. The prescan matched every copyright holder found in the tree against debian/copyright. No non-free terms, no built/vendored/minified files, fonts, or images of unclear provenance: the fuzz seeds/ are plain-text test fixtures, and the only Rust crates in Cargo.lock (pyo3, hex, etc.) are supplied from Debian's system crates, not vendored. Both answers: licensing is DFSG-compliant and accurate.

Packaging

Packaging is generally clean and modern: debhelper-compat 14, dh-sequence-python3/pybuild/maturin, single binary package, hardening bindnow, proper test Build-Depends, Standards-Version 4.7.4 (current 4.7.4.1), autopkgtest-pkg-pybuild, salsa Vcs fields, and a correct gbp.conf. It is held back by one substantive problem: the Rust manifest and Cargo.lock pin pyo3 to 0.28, but the archive only ships librust-pyo3-dev 0.29.3, so the offline cargo link (rules runs cargo prepare-debian --link-from-system then cargo generate-lockfile --offline) cannot satisfy the pyo3 = "0.28" constraint.

Issues

important packaging 1. pyo3 crate version (0.28) not available in Debian; offline cargo build cannot satisfy it ◂
  • Files: wkb_wkt_converter_py/Cargo.toml:18, Cargo.lock:45-46, debian/control (Build-Depends: librust-pyo3-dev (>= 0.28)), debian/rules
  • Basis: inferred from what was read, not seen directly
  • Evidence: pyo3 = { version = "0.28", features = ["extension-module"] }; Cargo.lock pins pyo3 0.28.3 (and pyo3-ffi/macros/build-config 0.28.3). apt-cache show librust-pyo3-dev in unstable returns only 0.29.3-1. debian/rules builds via $(CARGO) prepare-debian debian/cargo_registry --link-from-system then cargo generate-lockfile --offline, and dh_auto_configure --buildsystem=pybuild.
  • Problem: pyo3 = "0.28" is a caret constraint (^0.28) that excludes 0.29. Since Debian builds are offline and the only system pyo3 is 0.29.3, cargo generate-lockfile --offline (and the pybuild/maturin build against the linked system crates) cannot resolve pyo3 at all. The package is very unlikely to build in unstable. Build-Depends librust-pyo3-dev (>= 0.28) is satisfied by 0.29.3 but does not instruct the Rust build of the right version.
  • Fix: Bump the pyo3 dependency (and matching Cargo.lock entries) to 0.29 to match librust-pyo3-dev 0.29.3 in the archive, or wait until a pyo3 0.28 librust-pyo3-dev upload exists. Verify with an offline archive build after the bump.
Verified ◂
  • debian/copyright is DEP-5 format with correct Format: URI; Files: */debian/* stanzas and standalone Expat License paragraph cover the whole tree.
  • pyproject.toml, root Cargo.toml and both member Cargo.tomls all declare MIT; full Expat text is reproduced in debian/copyright (matches /usr/share/common-licenses Expat).
  • prescan (dfsg-author-check over 70 files) found every copyright holder already named in debian/copyright (Adrien Berchet, Edward Betts).
  • No built, minified, vendored or binary files: fuzz seeds/ are plain-text fixtures; only workspace crates are present, all Rust dependencies supplied from Debian system crates.
  • Test-only Build-Depends python3-hypothesis, python3-pytest, python3-shapely, librust-hex-dev all exist in the archive; python3-maturin 1.15.0-1 and librust-pyo3-dev 0.29.3-1 exist.
  • Build/test deps that run tests are correctly marked ; at debhelper compat 14 dh skips dh_auto_test on nocheck so no extra guard is needed.
  • debhelper-compat 14, hardening=+bindnow, autopkgtest-pkg-pybuild, Standards-Version 4.7.4 (current 4.7.4.1), salsa Vcs-* fields, gbp.conf, and upstream/metadata all correct.
  • uscan found the packaged version as the newest upstream release (upstream 0.6.3, packaged 0.6.3).
Not confirmed ◂
  • Whether librust-pyo3-dev 0.28 exists in any other suite (e.g. oldstable) that could supply the pinned version; apt-cache for unstable/experimental shows only 0.29.3, and unstable is what the build daemon uses.
Proposed changes ◂

None.

Uploader's response to the LLM review

The uploader was emailed about the review 15 days ago.

Review Information

accepted — allocated to eamanu 5 days ago, started 5 days ago, completed 5 days ago.

Final Comment

Public Notes

5 days ago ● public

licensecheck

Command: licensecheck -r --deb-machine .
Exit code: 0

Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: FIXME
Upstream-Contact: FIXME
Source: FIXME
Disclaimer: Autogenerated by licensecheck

Files: ./.github/workflows/ci.yml
 ./.github/workflows/fuzz.yml
 ./.github/workflows/release.yml
 ./AGENTS.md
 ./Cargo.lock
 ./Cargo.toml
 ./README.md
 ./asv.conf.json
 ./asv_benchmarks/__init__.py
 ./asv_benchmarks/python_api.py
 ./benchmarks/bench_python_api.py
 ./codecov.yml
 ./debian/changelog
 ./debian/control
 ./debian/gbp.conf
 ./debian/python3-wkb-wkt-converter.docs
 ./debian/rules
 ./debian/salsa-ci.yml
 ./debian/source/format
 ./debian/upstream/metadata
 ./debian/watch
 ./fuzz/Cargo.lock
 ./fuzz/Cargo.toml
 ./fuzz/README.md
 ./fuzz/fuzz_targets/common.rs
 ./fuzz/fuzz_targets/deep_nesting.rs
 ./fuzz/fuzz_targets/generic_input.rs
 ./fuzz/fuzz_targets/structured_roundtrip.rs
 ./fuzz/fuzz_targets/wkb_bytes.rs
 ./fuzz/fuzz_targets/wkt_text.rs
 ./fuzz/seeds/deep_nesting/depth_0
 ./fuzz/seeds/deep_nesting/depth_127
 ./fuzz/seeds/deep_nesting/depth_127_srid
 ./fuzz/seeds/deep_nesting/depth_128
 ./fuzz/seeds/deep_nesting/depth_136_srid
 ./fuzz/seeds/deep_nesting/depth_1_srid
 ./fuzz/seeds/generic_input/plain_hex_text
 ./fuzz/seeds/generic_input/text_auto_normalize
 ./fuzz/seeds/generic_input/text_strip_unvalidated
 ./fuzz/seeds/generic_input/wkb_hex_set_srid
 ./fuzz/seeds/generic_input/wkb_hex_strip_srid
 ./fuzz/seeds/structured_roundtrip/empty_cases
 ./fuzz/seeds/structured_roundtrip/polygon
 ./fuzz/seeds/structured_roundtrip/xy_point
 ./fuzz/seeds/structured_roundtrip/xyzm_collection_srid
 ./fuzz/seeds/wkb_bytes/empty_collection
 ./fuzz/seeds/wkb_bytes/point_be
 ./fuzz/seeds/wkb_bytes/point_le
 ./fuzz/seeds/wkb_bytes/point_zm_srid
 ./fuzz/seeds/wkb_bytes/truncated_srid_header
 ./fuzz/seeds/wkt_text/empty_collection
 ./fuzz/seeds/wkt_text/hex_point
 ./fuzz/seeds/wkt_text/multipoint_bare
 ./fuzz/seeds/wkt_text/point
 ./fuzz/seeds/wkt_text/polygon
 ./fuzz/seeds/wkt_text/srid_zm_collection
 ./pyproject.toml
 ./scripts/fuzz_coverage.sh
 ./scripts/list_fuzz_targets.py
 ./scripts/update_readme_benchmarks.py
 ./tests/test_property_based.py
 ./tests/test_python_bindings.py
 ./wkb_wkt_converter.pyi
 ./wkb_wkt_converter/Cargo.toml
 ./wkb_wkt_converter/src/error.rs
 ./wkb_wkt_converter/src/lib.rs
 ./wkb_wkt_converter/src/types.rs
 ./wkb_wkt_converter/src/wkb_to_wkt/builder.rs
 ./wkb_wkt_converter/src/wkb_to_wkt/mod.rs
 ./wkb_wkt_converter/src/wkb_to_wkt/reader.rs
 ./wkb_wkt_converter/src/wkt_to_wkb/mod.rs
 ./wkb_wkt_converter/src/wkt_to_wkb/tokenizer.rs
 ./wkb_wkt_converter/src/wkt_to_wkb/writer.rs
 ./wkb_wkt_converter/tests/ewkb_header_helpers.rs
 ./wkb_wkt_converter/tests/generic_converters.rs
 ./wkb_wkt_converter/tests/wkb_to_wkt.rs
 ./wkb_wkt_converter/tests/wkt_to_wkb.rs
 ./wkb_wkt_converter_py/Cargo.toml
 ./wkb_wkt_converter_py/src/lib.rs
Copyright: NONE
License: UNKNOWN
 FIXME

Files: ./debian/copyright
Copyright: 2026, Edward Betts <edward@4angle.com>
  Adrien Berchet
License: Expat
 FIXME

5 days ago ● public

debian/copyright check

Command: cme check dpkg-copyright
Exit code: 0

INFO: Model Dpkg::Copyright class: accept attribute should be a list of hash with 'pattern' key. I.e. something like [ { pattern => 'xyz.*', info}, ...] instead of [ 'xyz.*' => {info}, ... ]
INFO: Model Dpkg::Copyright::LicenseSpec class: accept attribute should be a list of hash with 'pattern' key. I.e. something like [ { pattern => 'xyz.*', info}, ...] instead of [ 'xyz.*' => {info}, ... ]
INFO: Model Dpkg::Copyright::Content class: accept attribute should be a list of hash with 'pattern' key. I.e. something like [ { pattern => 'xyz.*', info}, ...] instead of [ 'xyz.*' => {info}, ... ]
5 days ago ● public

licenserecon

Command: licenserecon
Exit code: 0

en: Versions: licenserecon '19.0'  licensecheck '3.3.9-1'

Parsing Source Tree  ....
Reading d/copyright  ....
Running licensecheck ....

No significant differences found
5 days ago ● public

Look for SPDX

Command: grep -r -B1 'SPDX-'
Exit code: 1

(no output)

5 days ago ● public

Lintian

Command: lintian -i -I -v --pedantic
Exit code: 0

(no output)

5 days ago ● public

duck

Command: duck
Exit code: 0

I: debian/upstream/metadata:URL: https://github.com/adrien-berchet/wkb_wkt_converter: INFORMATION (Certainty:wild-guess)
   Curl:0 HTTP:200 No error 
   Website seems to be outdated, is probably a parked domain or for sale. Please update your links!
   Matching regular expression(s):
    m/\bunsupported\b/i

I: debian/control: Homepage: https://github.com/adrien-berchet/wkb_wkt_converter: INFORMATION (Certainty:wild-guess)
   Curl:0 HTTP:200 No error 
   Website seems to be outdated, is probably a parked domain or for sale. Please update your links!
   Matching regular expression(s):
    m/\bunsupported\b/i

I: debian/copyright:4: URL: https://github.com/adrien-berchet/wkb_wkt_converter: INFORMATION (Certainty:wild-guess)
   Curl:0 HTTP:200 No error 
   Website seems to be outdated, is probably a parked domain or for sale. Please update your links!
   Matching regular expression(s):
    m/\bunsupported\b/i

I: debian/upstream/metadata:URL: https://github.com/adrien-berchet/wkb_wkt_converter.git: INFORMATION (Certainty:wild-guess)
   Curl:0 HTTP:200 No error 
   Website seems to be outdated, is probably a parked domain or for sale. Please update your links!
   Matching regular expression(s):
    m/\bunsupported\b/i

5 days ago ● public

look for copyright

Command: egrep -R -i copyright
Exit code: 0

debian/copyright:Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
debian/copyright:Copyright: Adrien Berchet
debian/copyright:Copyright: 2026 Edward Betts <edward@4angle.com>
debian/copyright: The above copyright notice and this permission notice shall be included in
debian/copyright: AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
5 days ago ● public

look for license

Command: egrep -R -i license
Exit code: 0

wkb_wkt_converter_py/Cargo.toml:license.workspace = true
Cargo.toml:license = "MIT"
wkb_wkt_converter/Cargo.toml:license.workspace = true
pyproject.toml:license = { text = "MIT" }
debian/copyright:License: Expat
debian/copyright:License: Expat
debian/copyright:License: Expat
debian/copyright: to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

Back to Dashboard | View all reviews for this package