Review: gfaz 0.0~git20260915.f1c1b7f-2
Package Information
| Description | GFA compression tool based on 2-mer reordering GFAz compresses Graphical Fragment Assembly (GFA) files by reordering segments and encoding paths with a learned grammar on top of Zstandard. In the upstream benchmarks it reaches up to 20x higher compression ratio than gzip and 13x higher than Zstandard. Besides compression, the tool computes pangenome statistics (growth curves, PAV, similarity, depth, deconstruction) directly on the compressed container without decompressing to GFA. This package contains the gfaz command line tool. |
|---|---|
| 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 all |
| VCS | git: https://salsa.debian.org/med-team/gfaz.git (browse) |
| Popcon Installs | 1 |
| Binary NEW | Yes (new binary packages of a source already in sid) |
| Tracker | https://tracker.debian.org/pkg/gfaz |
| Uploaded | 2 days ago |
New Package Report
.changes
| Version | 0.0~git20260915.f1c1b7f-2 |
|---|---|
| Changed-By | Andreas Tille <tille@debian.org> |
| Architecture | source amd64 all |
| Distribution | unstable |
| Date | Thu, 05 Nov 2026 09:14:59 +0100 |
| Source | gfaz |
Changelog
gfaz (0.0~git20260915.f1c1b7f-2) unstable; urgency=medium
.
* Build shared and static gfaz libraries to enable building vg against
these
* Ship the upstream test suite as examples in a new gfaz-examples
package and run it from the autopkgtest run-unit-test script..dsc
| Section | science |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | gfaz deb science optional arch=any gfaz-examples deb science optional arch=all libgfaz-dev deb libdevel optional arch=any libgfaz0 deb libs optional arch=any python3-gfaz deb python optional arch=any |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: GFAz Source: https://github.com/babyplutokurt/GFAz Files: * Copyright: 2026 The GFAz authors (see LICENSE) License: MIT Files: extern/robin_hood/* Copyright: 2018-2021 Martin Ankerl License: MIT Files: debian/* Copyright: 2026 Andreas Tille <tille@debian.org> License: MIT License: MIT 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, 0 important, 1 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 days ago.
Report
DFSG NEW review for gfaz version 0.0~git20260915.f1c1b7f-2
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: Yes
- Issues: 0 blocker, 0 important, 1 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The tree is MIT throughout: the upstream LICENSE is the standard MIT text, extern/robin_hood/robin_hood.h carries its own MIT/SPDX header, and no other file states or suggests a different licence or non-free terms. debian/copyright is DEP-5 format and matches that: Files: * claims MIT for the GFAz code, a later stanza names Martin Ankerl for the one vendored header, and debian/* is attributed to the uploader, with the full MIT text given (MIT is not in /usr/share/common-licenses). The only oddity is upstream's own doing: its LICENSE says just 'Copyright (c) 2026' without a holder, and debian/copyright mirrors that with 'The GFAz authors (see LICENSE)', so no holder stated anywhere is omitted.
Packaging
Packaging is in good shape for a new package: compat 14 with debhelper-compat and an out-of-tree cmake build, Standards-Version 4.7.4 (current in its first two components against policy 4.7.4.1), correct binary split with gfaz/python3-gfaz/gfaz-examples/libgfaz0/libgfaz-dev, every installed path covered by exactly one .install/.examples file, per-package dependencies that follow the split (versioned libgfaz0 from the shlibs system, ${python3:Depends}, libgfaz0 (= ${binary:Version}) in -dev), three DEP-3 patches matching the applied tree, an autopkgtest that runs the shipped upstream suite against the installed binary via GFAZ_BIN, salsa-ci, DEP-12 upstream metadata, and a justified lintian override for the deliberately merged library package. The only real gap is the absent manual page for the gfaz CLI.
Issues
minor packaging 1. gfaz CLI is installed without any manual page ◂
- Files:
debian/gfaz.install,debian/rules,src/cli/gfaz_cli.cpp - Basis: checked, in the package or with a reference tool
- Evidence: debian/gfaz.install contains only
usr/bin/gfaz; the tree has no*.1and nodebian/gfaz.manpages. Policy 12.1: "Each program, utility, and function should have an associated manual page included in the same package or a dependency. ... If no manual page is available, this is considered as a bug" - Problem: gfaz is the package's main user-facing program and takes about ten subcommands (compress, decompress, extract-path/-walk, add-haplotypes, growth, pav, similarity, stats, depth, deconstruct);
man gfazfinds nothing, and Policy 12.1 calls the absence of a manual page a bug. - Fix: Add a gfaz.1 (the usage in src/cli and the command docs under docs/workflows give the material) and install it through debian/gfaz.manpages, or at least file a wishlist bug so the gap is tracked.
Verified ◂
- Coverage: all 235 files of the source tree (everything except .pc/) were searched, by grep for Copyright/(C)/©/SPDX-License-Identifier/Licensed under/Permission is hereby granted/GNU/Apache/MPL/public domain/All rights reserved, and by reading debian/copyright, LICENSE and extern/robin_hood/robin_hood.h in full.
- The prescan's author check reports that every holder it found is named in debian/copyright; it listed no individual file, and the only holders in the tree are Martin Ankerl (extern/robin_hood/robin_hood.h,
Copyright (c) 2018-2021 Martin Ankerl,SPDX-License-Identifier: MIT) and the unnamedCopyright (c) 2026in LICENSE, both represented. - extern/robin_hood/robin_hood.h is a vendored, header-only robin-hood hashtable under MIT; Debian ships no robin-hood package (apt-cache finds none), so the copy is not a duplicate of an existing library, and its own Files stanza plus the shared MIT text cover it.
- extern/zstd, extern/fse, extern/pybind11 and extern/cuCollections are empty submodule directories listed in .gitmodules; no third-party source is vendored there. The build uses the system libzstd (default GFAZ_USE_SYSTEM_ZSTD=ON, libzstd-dev) and the system pybind11 (patch 0001), so Files: * des not leave any file misdescribed.
- No built artefacts or opaque files: glob for .o/.so/.a/.pyc/pycache/CMakeCache.txt/CMakeFiles/compile_commands.json/install_manifest.txt and for images, PDFs, fonts and archives returned nothing; example.gfa, tests/fixtures/.gfa|.bed and tests/golden/* are small hand-made or tool-generated test data, not third-party material with its own terms.
- No non-free wording anywhere (non-commercial, research/academic-only, no-modification, field-of-use, CC-*-NC/-ND, 'All rights reserved'): no matches in the tree.
- debian/copyright uses the correct DEP-5 Format URL; its three stanzas (
*,extern/robin_hood/*,debian/*) and the single stand-alone MIT paragraph are valid for copyright-format 1.0, and MIT is not in /usr/share/common-licenses so reproducing it is required and done. - Upstream names no copyright holder anywhere (LICENSE line 3 is only
Copyright (c) 2026); debian/copyright's 'The GFAz authors (see LICENSE)' is therefore as specific as the upstream evidence allows, rather than a wrong or omitted entity. - Packaging checks read in full: control, rules, changelog, copyright, source/format, all .install/.examples/.docs files, README.test, tests/control and tests/run-unit-test, upstream/metadata, salsa-ci.yml, libgfaz0.lintian-overrides, and the three patches with their series.
- Build inputs exist: pybind11-dev 3.1.0-2, libzstd-dev 1.5.7, pkgconf, cmake, python3-dev, debhelper-compat (= 14), and dh-sequence-python3 (provided by dh-python 7); debhelper passes CMAKE_INSTALL_PREFIX=/usr and CMAKE_INSTALL_LIBDIR=lib/ itself, so libgfaz0.install/libgfaz-dev.install's
usr/lib/*/patterns match what is installed. - Package split matches the installed paths: the patched CMakeLists installs only /usr/bin/gfaz, the three libgfaz_*.so.0/.so.0.0.0 and .so links, the three .a archives, /usr/include/gfaz (including robin_hood.h) and, from rules, the python extension in dist-packages; each is matched by exactly one of gfaz.install, libgfaz0.install, libgfaz-dev.install or python3-gfaz.install, so dh_missing has nothing left and dh_python3 processes the module.
- Dependencies follow that split: dh_makeshlibs generates the libgfaz0 shlibs entries and dh_shlibdeps turns them into a versioned libgfaz0 dependency of gfaz and python3-gfaz; libgfaz-dev depends libgfaz0 (= ${binary:Version}) and libzstd-dev (headers use zstd and robin_hood.h); gfaz-examples depends on gfaz and python3-gfaz, the two things its runner needs.
- Patches 0001-0003 all carry Description/Origin/Last-Update/Forwarded DEP-3 headers, their content matches the applied tree, and 0003 is what makes tests/regression/regression_utils.py honour GFAZ_BIN, so debian/tests/run-unit-test (which exports GFAZ_BIN=/usr/bin/gfaz) exercises the installed binary; the autopkgtest also finds the installed gfa_compression module through sys.executable, so the binding suite is not skipped.
- The examples install ships example.gfa and the whole tests/ tree (fixtures and goldens) that the harness needs, and the suite is also registered as a CTest test, so it runs in the build; no test or CMake code reaches the network (no urllib/requests/curl/wget/FetchContent/ExternalProject).
- policy 8.1 permits merging several shared libraries into one package 'provided that all of their SONAMEs will always change together'; the three gfaz libraries are built with one SOVERSION and one version and the lintian override documents that, so the libgfaz0 name is justified.
- Standards-Version 4.7.4 is current (policy is 4.7.4.1); compat 14 and the override targets (dh_auto_configure, dh_auto_install, dh_installexamples) are used correctly, and since compat 13 dh skips dh_auto_test under nocheck by itself, which this package does not need to handle.
- Changelog is sane: unstable, version 0.0~git20260915.f1c1b7f-2 following the -1 initial upload, weekday/date pairs correct, #1151944 closed in the initial entry, and the -2 entry describes the new shared/static library split.
- uscan found the packaged version as the newest upstream release (upstream
0.0~git20260915.f1c1b7f, packaged0.0~git20260915.f1c1b7f).
Not confirmed ◂
- File permissions could not be inspected with the available tools (debian/rules and debian/tests/run-unit-test must be executable); a build or autopkgtest run would show any missing bit.
- libgfaz-dev also installs the CUDA-only headers under include/compress/gpu/ although the libraries are configured with ENABLE_CUDA=OFF, so those declarations have no implementation in the shipped binaries; this is unused surface rather than a packaging rule violation, and a consumer would only notice by trying to link against them.
Proposed changes ◂
None.
Uploader's response to the LLM review
This is exactly the same source code as accepted last week. There are just additional binary packages. IMHO accepting should be easy.
— Andreas Tille (tille), 2 days ago
Review Information
accepted — allocated to awm 2 days ago, started 2 days ago, completed 2 days ago.
Final Comment
Other Reviews of this Package
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 0.0~git20260915.f1c1b7f-1 | 9f6a1af8… | 2026-10-25 20:31 | 2026-10-25 20:32 | awm | accepted | VIEW |