Review: gcsa2 1.4+dfsg-1
Package Information
| Description | BWT-based index for graphs A reimplementation of the Generalized Compressed Suffix Array (GCSA), a BWT-based index for directed graphs. The implementation is based on the Succinct Data Structures Library 2.0 (SDSL) |
|---|---|
| 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/gcsa2.git (browse) |
| Closes | #1151599 |
| Tracker | https://tracker.debian.org/pkg/gcsa2 |
| Uploaded | 16 days ago |
New Package Report
.changes
| Architecture | source amd64 |
|---|---|
| Distribution | unstable |
| Date | Thu, 22 Oct 2026 11:30:29 +0200 |
| Source | gcsa2 |
| Version | 1.4+dfsg-1 |
| Changed-By | Andreas Tille <tille@debian.org> |
Changelog
gcsa2 (1.4+dfsg-1) unstable; urgency=medium . * Initial release. (Closes: #1151599)
.dsc
| Section | science |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | gcsa2 deb science optional arch=any libgcsa2-1 deb libs optional arch=any libgcsa2-dev deb libdevel optional arch=any |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: gcsa2 Source: https://github.com/jltsiren/gcsa2 Files-Excluded: paper Files: * Copyright: 2018, Jouni Siren 2015-2017, Genome Research Ltd. License: Expat Files: debian/* Copyright: © 2018 Michael R. Crusoe <michael.crusoe@gmail.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, 0 important, 2 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 16 days ago.
Report
DFSG NEW review for gcsa2 version 1.4+dfsg-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: Yes
- Issues: 0 blocker, 0 important, 2 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
All upstream files are MIT/Expat, held by Jouni Siren and Genome Research Ltd., both named in Files: *; the full Expat text is included. The only non-free file found in the previous version (paper/ltexpprt.sty, a no-modification SIAM macro) is now gone: Files-Excluded: paper is declared and the tree contains no paper/ directory (version is 1.4+dfsg for the repacked tarball). No built/minified/binary/vendored files exist and the pre-review scan's author check (31 files) confirmed every holder is named. The only wrinkle is that the Files: debian/* stanza omits Andreas Tille, who authored the changelog and the build_shared_library patch (minor).
Packaging
Solid Debian Med packaging: debhelper-compat 14 with dh $@ and hardening=+all (also applied through the patched Makefile's buildflags.mk include), a coherent three-way binary split (gcsa2 tools / libgcsa2-1 SONAME .so.1 / libgcsa2-dev with static lib, headers and dev symlink), Multi-Arch: same on both library packages, correct Sections, a shared+static autopkgtest, Vcs-*/Homepage, Standards-Version 4.7.4 matching current Policy 4.7.4.1, and a sane initial changelog closing #1151599. Build-Depends libsdsl-dev (>= 2.4) is satisfiable by the libsdsl 2.4+dfsg-1 upload now in NEW (archive carries 2.1.1+dfsg-6+b1). d-shlibmove installs the libraries/headers and generates the shlibs dependency; the SONAME matches the package name. Only nit: the four Debian-specific patches lack DEP-3 Forwarded/Origin fields (minor).
Issues
minor licensing 1. debian/* copyright stanza names only Michael R. Crusoe, omitting Andreas Tille ◂
- Files:
debian/copyright:12,debian/changelog:5,debian/patches/build_shared_library:3-4 - Basis: checked, in the package or with a reference tool
- Evidence:
Copyright: © 2018 Michael R. Crusoe <michael.crusoe@gmail.com>;-- Andreas Tille <tille@debian.org> Thu, 22 Oct 2026in changelog;Author: Andreas Tille <tille@debian.org>on build_shared_library. - Problem: Several Debian packaging files (the 2026 changelog entry, the build_shared_library patch, rules) are authored by Andreas Tille, so the
Files: debian/*stanza understates the packaging copyright: it omits a holder and antedates the packaging work to 2018. A missing holder is more than year drift. - Fix: Extend the stanza, e.g.
Copyright: 2018, Michael R. Crusoe; 2026, Andreas Tille(or attribute to the Debian Med Packaging Team).
minor packaging 2. Patches lack DEP-3 Forwarded/Origin headers ◂
- Files:
debian/patches/use_debian_sdsl,debian/patches/drop_unneeded_divsufsort,debian/patches/add_ldflags_cppflags,debian/patches/build_shared_library - Basis: checked, in the package or with a reference tool
- Evidence: Each patch has only
Description,Author,Last-Update; none carriesForwarded:,Origin:orBug:. - Problem: DEP-3 recommends Forwarded (and Origin) so a reviewer can see at a glance whether a patch should go upstream; here all four are inherently Debian-only (system SDSL, drop divsufsort, buildflags, shared library) and will never be forwarded, but that is not recorded.
- Fix: Add
Forwarded: not-needed(andOrigin:where known) to each patch header.
Verified ◂
- debian/copyright read in full: DEP-5 (
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/), headerUpstream-Name: gcsa2,Source: https://github.com/jltsiren/gcsa2,Files-Excluded: paper; stanzasFiles: *(Jouni Siren, Genome Research Ltd., Expat),Files: debian/*(Michael R. Crusoe, Expat), and a complete stand-alone Expat License text. - Pre-review scan listed only the dfg-author-check result: 31 files scanned, and it concluded every holder found is named in debian/copyright; it flagged no non-free wording and no built/binary/minified files. Accounted for in full.
- Full-tree glob (46 files, .pc/ and debian/ excluded) shows only C++ sources/headers, Makefiles, README.md, LICENSE, install.sh and .gitignore: no binaries, minified code, fonts/images, PDFs, archives or generated files, so no preferred-form-of-modification issue. The paper/ directory is absent, consistent with
Files-Excluded: paperand the 1.4+dfsg repack. - LICENSE is the complete Expat text listing only Jouni Siren (2018,2019,2021,2025,2026) and Genome Research Ltd. (2015-2017). Every src/.cpp, include/gcsa/.h and benchmark/*.cpp either carries that identical MIT header or (src/dbg.cpp, src/internal.cpp, src/lcp.cpp, src/path_graph.cpp, src/support.cpp, include/gcsa/{dbg,files,gcsa,internal,lcp,path_graph,support,utils}.h) has none, and is covered by the top-level LICENSE, so none is unlicensed; holders are only Siren/GRL. debian/copyright's condensed years are minor drift, not a missing holder.
- No embedded third-party code: patches use Debian's libsdsl (
use_debian_sdslremoves the ../sdsl-lite references) and drop the divsufsort link line; Debian's libsdsl3 carries no runtime libdivsufsort dependency, so-ldivsufsortis genuinely unneeded. - Packaging verified from the tree and reference tools: debian/control split (gcsa2 / libgcsa2-1 libs / libgcsa2-dev libdevel, all Architecture: any, Multi-Arch: same on both library packages), Build-Depends
debhelper-compat (= 14), d-shlibs, libsdsl-dev (>= 2.4); apt-cache shows libsdsl-dev at 2.1.1+dfsg-6+b1 with a 2.4+dfsg-1 upload in NEW that satisfies the versioned dependency, runtime lib is libsdsl3. - debian/rules:
dh $@, compat 14 via debhelper-compat, hardening=+all exported (also set in the patched Makefile through buildflags.mk, so CPPFLAGS/CXXFLAGS/LDFLAGS reach objects, the shared library and the programs); dh_auto_build passes MY_CXX=g++ INC_DIR=/usr/include LIB_DIR=/usr/lib; execute_after_dh_install creates the .so symlinks then runsd-shlibmove --commit --multiarch --devunversioned --exclude-la --override 's/libsdsl4-dev/libsdsl-dev/' --movedev include/gcsa usr/include lib/libgcsa2.so; Makefile has no install target so dh_auto_install is a no-op and dh_install(1) findsbin/*in the source root (compat-14 fallback), as gcsa2.install expects. - SONAME
libgcsa2.so.1(build_shared_library patch) matches package libgcsa2-1; binaries statically link libgcsa2.a and need only libsdsl/libstdc++/libgomp at runtime via dh_shlibdeps. - debian/source/format 3.0 (quilt); debian/upstream/metadata present; debian/tests/control
Tests: compile-linkwith Depends (libgcsa2-1, libgcsa2-dev, build-essential, libsdsl-dev), matching the dsc's Testsuite-Triggers; smoke.cpp compiles and runs against both the shared (-lgcsa2) and static (/usr/lib/$MULTIARCH/libgcsa2.a) library. - debian/changelog:
1.4+dfsg-1 unstable; initial release (Closes: #1151599)with valid date/author. Standards-Version 4.7.4 is current (Policy reads 4.7.4.1). Vcs-Git/Vcs-Browser point at salsa.debian.org/med-team/gcsa2; Homepage correct. Substvars are named explicitly in control, harmless at compat 14. - uscan found the packaged version as the newest upstream release (upstream
1.4, packaged1.4+dfsg).
Not confirmed ◂
- The build and d-shlibmove were not run: the shared library's placement in the Multi-Arch path and the exact generated dependencies (including the libsdsl3 runtime dependency) are inferred from the tooling and package layout, not observed.
- d-shlibmove(1) is not installed on the reviewing system, so
--movedev/--overridesemantics were not verified first-hand.
Proposed changes ◂
None.
Uploader's response to the LLM review
I've added myself in Files: debian/* copyright
— Andreas Tille (tille), 16 days ago
Review Information
accepted — allocated to awm 15 days ago, started 15 days ago, completed 15 days ago.
Final Comment
Other Reviews of this Package
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 1.4-1 | 30b3d562… | 2026-10-22 10:54 | 2026-10-22 10:54 | dfsg-uploader | rejected | VIEW |