Review: libsdsl 2.4+dfsg-1
Package Information
| Description | succinct data structure library - development files The Succinct Data Structure Library (SDSL) is a powerful and flexible C++11 library implementing succinct data structures. In total, the library contains the highlights of 40 research publications. Succinct data structures can represent an object (such as a bitvector or a tree) in space close the information-theoretic lower bound of the object while supporting operations of the original object efficiently. The theoretical time complexity of an operations performed on the classical data structure and the equivalent succinct data structure are (most of the time) identical. This package installs development files. |
|---|---|
| Maintainer | Debian Science Maintainers <debian-science-maintainers@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/science-team/libsdsl.git (browse) |
| Popcon Installs | 400 |
| Binary NEW | Yes (new binary packages of a source already in sid) |
| Tracker | https://tracker.debian.org/pkg/libsdsl |
| Uploaded | 15 days ago |
Potential Library Transition
The maintainer says no transition is needed and asked us to review anyway.
As explained previously the thre Rdeps are under control.
— tille, 15 days ago
New Package Report
.changes
| Source | libsdsl |
|---|---|
| Version | 2.4+dfsg-1 |
| Changed-By | Andreas Tille <tille@debian.org> |
| Architecture | source amd64 |
| Distribution | unstable |
| Date | Thu, 22 Oct 2026 08:36:31 +0200 |
Changelog
libsdsl (2.4+dfsg-1) unstable; urgency=medium
.
* Development of this library moved to
https://github.com/vgteam/sdsl-lite/
* New upstream version
* Standards-Version: 4.7.4 (routine-update)
* Reflow Uploaders field (cme)
* Remove Priority field (cme)
* debputy lint --auto-fix (routine-update)
* Rebase CMake patch for the new upstream build system
* Install sdsl-lite.pc with corrected multiarch paths
* Refresh use_debian_packaged_d3.patch
* Drop typo_caught_by_gcc15.patch and cmake-4.patch, fixed upstream
* Bump the SONAME to 4 and rename the runtime package to libsdsl4
because the 2.4.0 ABI is not compatible with 2.1.1
* Fix the runtime package description
* Add an autopkgtest smoke test covering the shared and static libraries
* Fix d/copyright after automated DFSG review
* Enhanced d/copyright thanks to dfsg-author-check.dsc
| Section | libdevel |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | libsdsl-dev deb libdevel optional arch=any libsdsl4 deb libs optional arch=any |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: libsdsl
Source: https://github.com/vgteam/sdsl-lite/
Files-Excluded: external/libdivsufsort*
external/d3*
Files: *
Copyright: 2007-2014 Simon Gog
License: GPL-3+
Files: include/sdsl/hyb_vector.hpp
Copyright: 2014 Juha Karkkainen, Dominik Kempa and Simon J. Puglisi
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.
Comment: Simon Gog made the following changes:
- replace std::vectors by int_vectors
- add support for rank0
- added naive implementation of method get_int
- TODO: added a naive implementation of select
Files: include/sdsl/qsufsort.hpp
Copyright: 1999, N. Jesper Larsson
2012 Simon Gog
License: GPL-3+
Comment: Jesper Larsson left the following statement in qsufsort.c
This file contains an implementation of the algorithm presented in "Faster
Suffix Sorting" by N. Jesper Larsson (jesper@cs.lth.se) and Kunihiko
Sadakane (sada@is.s.u-tokyo.ac.jp).
.
This software may be used freely for any purpose. However, when distributed,
the original source must be clearly stated, and, when the source code is
distributed, the copyright notice must be retained and any alterations in
the code must be clearly marked. No warranty is given regarding the quality
of this software.
Files: include/sdsl/k2_tree*
Copyright: 2016 Francisco Montoto
License: GPL-3+
Files: include/sdsl/sd_vector.hpp
Copyright: 2012-2014 Simon Gog
2015 Genome Research Ltd.
2021 Jouni Sirén
License: GPL-3+
Files: include/sdsl/simple_sds.hpp
Copyright: 2021 Jouni Sirén
License: GPL-3+
Files: include/sdsl/construct_lcp.hpp
lib/construct_lcp.cpp
Copyright: 2010-2013 Simon Gog
2013 Timo Beller
License: GPL-3+
Files: debian/*
Copyright: 2015 Tomasz Buchert <tomasz@debian.org>
2018 Andreas Tille <tille@debian.org>
License: GPL-3+
License: GPL-3+
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
On Debian systems, the complete text of the GNU General
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
DFSG Assistant LLM REVIEW 0 blocker, 1 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 15 days ago.
Report
DFSG NEW review for libsdsl version 2.4+dfsg-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: Yes
- Issues: 0 blocker, 1 important, 1 minor
- debian/watch: version 5, refused by the checks made before uscan is run
- debian/copyright: machine-readable
- Scan before the review: 7 found
Licensing
The source is DFSG-compliant: the aggregate library is GPL-3+ (COPYING names Simon Gog and Jouni Sirén), with one permissive Expat file (hyb_vector.hpp, correctly given its own stanza with the MIT text), and specific stanzas for sd_vector.hpp, simple_sds.hpp, qsufsort.hpp and k2_tree* — all accurate. Files-Excluded removes external/libdivsufsort* and external/d3*; the googletest submodule is empty (not shipped), and libdivsufsort is pulled in from the Debian libdivsufsort-dev package. No non-free wording, no built blobs installed. The only defect is that a few GPL-3+ headers name co-holders (Matthias Petri, Markus Brenner) that debian/copyright's catch-all does not list.
Packaging
Packaging is good: debhelper-compat 14 supplied via dh with proper overrides, hardening=+all, d-shlibs for the shared/static split, SONAME bumped to 4 consistently with the libsdsl4 binary package, Multi-Arch: same, an autopkgtest smoke test exercising both shared and static linkage via pkg-config, salsa-ci, upstream metadata and DEP-3-ish patches. Standards-Version 4.7.4 matches current Policy 4.7.4.1. The Build-Depends entry architecture-is-64-bit [!x32] is a valid, deliberate construct: architecture-is-64-bit is a real virtual package provided by architecture-properties (verified via apt-cache), used to restrict building to 64-bit architectures while allowing x32.
Issues
important packaging 1. debian/watch was refused by the checks made before uscan is run ◂
- Files:
debian/watch - Basis: found by the review tooling's own checks
- Evidence: - it contains a "transport::address" style git URL
- Problem: These checks refuse what is not plausibly a watch file, and the values known to make uscan do something other than look at an upstream site. uscan was not run, so the file is untested.
- Fix: Read
debian/watchand correct it. If uscan is run on it by hand, do that with caution.
minor licensing 2. debian/copyright catch-all omits co-copyright holders Matthias Petri and Markus Brenner ◂
- Files:
debian/copyright (Files: * stanza, Copyright: 2007-2014 Simon Gog); include/sdsl/bit_vector_il.hpp; include/sdsl/uint128_t.hpp; include/sdsl/wt_hutu.hpp - Basis: checked, in the package or with a reference tool
- Evidence:
bit_vector_il.hpp/uint128_t.hppcarryCopyright (C) 2012 Simon Gog, Matthias Petri;wt_hutu.hppcarriesCopyright (C) 2013 Simon Gog, Timo Beller and Markus Brenner. These files are covered only by theFiles: *stanza, which names only Simon Gog. - Problem: debian/copyright should name every copyright holder of every file it covers. Matthias Petri and Markus Brenner (and Timo Beller, for wt_hutu.hpp) are not named in any stanza, so the file is incomplete/technically inaccurate. The licence (GPL-3+) is correct, so this is a completeness nit.
- Fix: Name the co-holders in the
Files: *stanza (e.g. add2012 Simon Gog, Matthias Petriand2013 Simon Gog, Timo Beller and Markus Brenner), or give these three files their ownFiles:stanzas.
Verified ◂
- debian/copyright is machine-readable DEP-5, begins with the correct
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/line; every Files: stanza and its holder/licence summary was read in full. - Catch-all
Files: *(GPL-3+) matches the header of the ~90 include/sdsl headers, lib/.cpp, test/, benchmark/, examples/, tutorial/, extras/ and root files, all of which carry the GPL-3+ notice; sd_vector.hpp, simple_sds.hpp, construct_lcp, k2_tree* and qsufsort.hpp each get a correct specific stanza. - hyb_vector.hpp is Expat (MIT) — verified its full permission notice matches the reproduced Expat text in the stanza.
- Files-Excluded correctly names external/libdivsufsort* and external/d3*, which are not in the tree; only
external/CMakeLists.txtand an emptyexternal/googletest/submodule remain (googletest not shipped). libdivsufsort is a Build-Depends. - qsufsort.hpp contains Larsson's 1999 permissive original notice plus Simon Gog's GPL-3+ adaptation; the stanza records his terms in a Comment — acceptable and DFSG-free.
- Prescan files: test/test_cases/abc_abc_abc.txt (12 bytes), abc_abc_abc2.txt, all_symbols.txt (256 bytes, all byte values), keeper.int (504 bytes) and faust.txt.tar.gz / moby.int.tar.gz are small test-data fixtures / gzip-compressed test inputs, decompressible, not built artifacts, and never installed — not DFSG problems.
- extras/cheatsheet/viz.pdf is a static figure used by \includegraphics{viz.pdf} in sdsl-cheatsheet.tex; its generating source (online space-vis) is not shipped. Never installed; a doc-figure-only nit, noted rather than raised as an issue.
architecture-is-64-bit [!x32]Build-Depends: the pseudo-package is a real virtual package provided byarchitecture-properties(apt-cache), whose own description documents the exactBuild-Depends: architecture-is-64-bitusage — a valid, intentional 64-bit restriction.- SONAME bump patch (
LIBRARY_VERSION_MAJOR+2-> 4) is consistent with the libsdsl4 binary package; ABI-incompatible-symbol removal claim matches upstream 2.4.0 change. - Standards-Version 4.7.4 is current (Policy 4.7.4.1). debhelper compat 14; the runtime package correctly carries ${shlibs:Depends}/${misc:Depends} and Pre-Depends.
- Autopkgtest
smoke(Depends: @, g++, pkgconf) compiles and runs against both shared and static libraries via pkg-config and checks the d3.js runtime file. - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (GPL-3).
Not confirmed ◂
- Whether extras/cheatsheet/viz.pdf contains any unusual licensing text or provenance problem — it is a binary PDF that could not be opened; based on its role (a small figure embedded in the uninstalled cheatsheet doc) no practical impact is expected.
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 awm 15 days ago, started 15 days ago, completed 15 days ago.
Final Comment
Hi,
Still seemingly two issues the LLM finds, but I'll let you decide if they're important.
Thanks!
Other Reviews of this Package
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 2.4+dfsg-1 | ddacd43c… | 2026-10-23 05:38 | 2026-10-23 05:38 | dfsg-uploader | rejected | VIEW |