Review: libgbwtgraph 1.5-1
Package Information
| Description | GBWT-backed handle graph - shared library GBWTGraph is a handle graph based on the Graph BWT (GBWT). Its data model is based on the graph as an alignment of haplotypes. The GBWT index provides the graph topology, while the node sequences are stored in plain form for fast extraction. Construction extracts the sequences from another graph implementing the libhandlegraph HandleGraph interface. This package contains the shared library. |
|---|---|
| Maintainer | Debian Med Packaging Team <debian-med-packaging@lists.alioth.debian.org> |
| Changed By | Andreas Tille <tille@debian.org> |
| Sponsor | tille@debian.org |
| Distribution | unstable |
| Architecture | any |
| VCS | git: https://salsa.debian.org/med-team/libgbwtgraph.git (browse) |
| Closes | #1152193 |
| Tracker | https://tracker.debian.org/pkg/libgbwtgraph |
| Uploaded | 12 days ago |
New Package Report
.changes
| Source | libgbwtgraph |
|---|---|
| Version | 1.5-1 |
| Changed-By | Andreas Tille <tille@debian.org> |
| Architecture | source amd64 |
| Distribution | unstable |
| Date | Mon, 26 Oct 2026 19:51:29 +0100 |
Changelog
libgbwtgraph (1.5-1) unstable; urgency=medium . * Initial release (Closes: #1152193).
.dsc
| Section | science |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | gbwtgraph deb science optional arch=any libgbwtgraph-dev deb libdevel optional arch=any libgbwtgraph1 deb libs optional arch=any |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: gbwtgraph Source: https://github.com/jltsiren/gbwtgraph Files: * Copyright: 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026 Jouni Siren and other authors License: Expat Files: debian/* Copyright: 2026 Andreas Tille <tille@debian.org> 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 11 days ago.
Report
DFSG NEW review for libgbwtgraph version 1.5-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis 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 tree is MIT/Expat throughout: the root LICENSE carries the Expat text and the single copyright line 'Jouni Siren and other authors', and no other licence or holder appears anywhere (grep for Copyright, (C), ©, SPDX, GNU, Apache, MPL, public-domain and reserved-rights wording hit only LICENSE and debian/copyright). debian/copyright is DEP-5, uses the correct canonical Format URL, and its Files: * plus Files: debian/* stanzas cover every path; the Expat text is reproduced in full. No vendored third-party code, no built or minified files, and test data are plain GFA text.
Packaging
Mostly competent packaging: compat 14, hardening=+all, d-shlibs for a proper libgbwtgraph1/libgbwtgraph-dev split with SONAME libgbwtgraph.so.1, four DEP-3 patches, an autopkgtest, salsa-ci and a sane changelog. But Build-Depends and libgbwtgraph-dev's Depends require libsdsl-dev (>= 2.4) while the archive's libsdsl-dev is 2.1.1+dfsg-6+b1, so the build dependency is unsatisfiable and the -dev package would be uninstallable even if the package built. That must be fixed before upload.
Issues
important packaging 1. libsdsl-dev (>= 2.4) cannot be satisfied; the archive has libsdsl-dev 2.1.1+dfsg-6+b1 ◂
- Files:
debian/control:13,debian/control:44 - Basis: checked, in the package or with a reference tool
- Evidence: Build-Depends: ... libsdsl-dev (>= 2.4), ... and libgbwtgraph-dev Depends: ... libsdsl-dev (>= 2.4), while
apt-cache show libsdsl-devgivesVersion: 2.1.1+dfsg-6+b1,Source: libsdsl (2.1.1+dfsg-6)— the only version in the reviewing system's unstable/experimental lists of 2026-10-27. - Problem: dpkg version comparison puts 2.1.1+dfsg-6+b1 below 2.4, so the build-dependency is unsatisfiable: the package cannot be built on the buildds, and libgbwtgraph-dev, whose Depends repeats the restriction, could not be installed even if it were built. debian/patches/use_debian_sdsl explicitly switches the build to the system libsdsl-dev, so the >= 2.4 floor is inconsistent with what Debian ships.
- Fix: Depend on the libsdsl-dev version that actually exists (drop the version or use the archive's), after confirming that version provides everything the code needs; the tree uses
sdsl::simple_sdspervasively, so if 2.1.1 lacks<sdsl/simple_sds.hpp>the package needs a libsdsl that provides it, or simple-sds packaged/bundled instead.
Verified ◂
- The prescan listed no file: its author check scanned 78 files and found every copyright holder already named in debian/copyright, so there is no file to account for individually.
- Full inventory of the upstream tree (78 files, .pc/ excluded): Makefile, install.sh, README.md, SERIALIZATION.md, LICENSE, .gitignore, an empty .gitmodules, 13 headers under include/gbwtgraph/, 20 .cpp under src/, 11 test programs plus shared.h, the GFA fixtures in tests/gfas/ and tests/gfas/set-pggname.py. All are text source or plain test data; there are no archives, object files, shared objects, bytecode, PDFs or minified JS/CSS.
- A tree-wide grep for Copyright, (C), ©, SPDX-License-Identifier, Licensed under, permission notices, GNU/Apache/MPL wording, public domain and All rights reserved returned matches only in LICENSE and debian/copyright. The root LICENSE (Expat, 'Jouni Siren and other authors') is the only upstream licensing statement; set-pggname.py and the GFA fixtures carry no separate terms and are covered by it.
- src/canonical_gfa.cpp is shipped but is not in LIBOBJS in the Makefile, so it is not compiled; the
<handlegraph/algorithms/canonical_gfa.hpp>include removed from tests/test_gfa.cpp by the patch is not needed by anything that is built. gbwt_to_canonical_gfa() itself lives in src/gfa.cpp and uses no such header. - Shared-library packaging: debian/rules builds libgbwtgraph.so.1.5 with SONAME libgbwtgraph.so.1 and uses d-shlibmove --multiarch --devunversioned to split it into libgbwtgraph1 (runtime) and libgbwtgraph-dev (headers under /usr/include/gbwtgraph plus the linker symlink), which matches the SONAME and Policy 8; gbwtgraph.install installs bin/*, and the Makefile builds seven tools.
- Dependencies that are visible in the sources: include/gbwtgraph/utils.h includes <openssl/evp.h>, so libssl-dev in Build-Depends and in the -dev Depends is justified; libgtest-dev is needed by tests/Makefile; pkgconf is needed by the Makefile's pkg-config probe; d-shlibs is needed by rules.
- debhelper compat 14: relationship substvars are added by dh_gencontrol itself, so the ${shlibs:Depends}/${misc:Depends} naming in control and their absence elsewhere is not an issue; dh_missing defaults to --fail-missing; dh skips override_dh_auto_test on DEB_BUILD_OPTIONS=nocheck, and the extra check in rules is harmless. Standards-Version 4.7.4 against Policy 4.7.4.1 matches in its first two components.
- Patch review: the four patches in debian/patches/series all have Description, Author and Last-Update; build_shared_library adds the shared object and -fPIC, add_ldflags_cppflags passes CPPFLAGS/CXXFLAGS/LDFLAGS into the test build, use_debian_sdsl removes the SDSL_DIR/Make.helper includes, drop_canonical_gfa_tool removes the canonical_gfa program and its test.
- The autopkgtest (debian/tests/control, debian/tests/smoke, smoke.cpp) builds a small program against libgbwtgraph and runs
gfa2gbwt -candgbz_stats -g: -c is the documented compress-GFA mode that writes .gbz, and gbz_stats -g prints the 'Nodes' line the grep looks for. - debian/changelog is a well-formed 1.5-1 unstable entry closing #1152193; debian/source/format is 3.0 (quilt); Vcs-Git, Vcs-Browser, Homepage and debian/upstream/metadata are present and consistent.
- uscan found the packaged version as the newest upstream release (upstream
1.5, packaged1.5).
Not confirmed ◂
- libgbwt-dev and libhandlegraph-dev appear nowhere in the archive lists used here (as of 2026-10-27) and are not in ftp-master's NEW list either, so their existence and versions could not be checked; if they are not yet accepted the build dependency cannot be resolved.
- libgbwtgraph-dev depends on libhandlegraph-dev (>= 20261019), while debian/patches/drop_canonical_gfa_tool states that the libhandlegraph packaged in Debian is a 2024-11-22 snapshot that lacks canonical_gfa.hpp. If that is still the packaged version the -dev package is uninstallable; if a newer snapshot exists, the patch has become obsolete. Neither state could be verified.
- The tree uses sdsl::simple_sds and debian/tests/smoke.cpp includes <sdsl/simple_sds.hpp>; the archive's libsdsl-dev is built from simongog/sdsl-lite 2.1.1, which may predate simple-sds entirely. libsdsl-dev is not installed on this system, so its contents could not be inspected; a build would show whether the header and namespace exist.
- d-shlibmove is not installed here, so it could not be checked whether its arguments
lib/libgbwtgraph.soandinclude/gbwtgraphare resolved against the build tree: nothing stages files into debian/tmp (the upstream Makefile has no install target and debian/rules has no override_dh_auto_install), so a build would show whether execute_after_dh_install finds them.
Proposed changes ◂
None.
Uploader's response to the LLM review
Seems the apt cache the LLM is using is outdated. Please accept.
— Andreas Tille (tille), 11 days ago
Review Information
accepted — allocated to awm 11 days ago, started 11 days ago, completed 11 days ago.