libsparsepp 1.23-1
Package Information
| Description | memory efficient hash map and hash set (headers) Sparsepp is a fast, memory efficient hash map and hash set specialized for low memory usage and high performance. It is a C++11 implementation derived from Google's sparsehash library. This package contains the header files. |
|---|---|
| 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 | all |
| VCS | git: https://salsa.debian.org/med-team/libsparsepp.git (browse) |
| Closes | #1152280 |
| Tracker | https://tracker.debian.org/pkg/libsparsepp |
| Uploaded | 6 hours ago |
New Package Report
.changes
| Architecture | source all |
|---|---|
| Distribution | unstable |
| Date | Tue, 27 Oct 2026 19:30:10 +0100 |
| Source | libsparsepp |
| Version | 1.23-1 |
| Changed-By | Andreas Tille <tille@debian.org> |
Changelog
libsparsepp (1.23-1) unstable; urgency=medium . * Initial release (Closes: #1152280)
.dsc
| Section | libdevel |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | libsparsepp-dev deb libdevel optional arch=all |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: sparsepp
Source: https://github.com/greg7mdp/sparsepp
Files: *
Copyright: 2016 Gregory Popovitch <greg7mdp@gmail.com>
2005 Google Inc.
License: BSD-3-clause
Files: sparsepp/spp_config.h
Copyright: 2016 Gregory Popovitch <greg7mdp@gmail.com>
2005 Google Inc.
License: BSL-1.0
On Debian systems you can find the full text of the Boost Software License
Version 1.0 at /usr/share/common-licenses/BSL-1.0
Files: sparsepp/spp_timer.h
Copyright: 2016 Mariano Gonzalez
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.
Files: debian/*
Copyright: 2026 Andreas Tille <tille@debian.org
License: BSD-3-clause
License: BSD-3-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
DFSG Assistant LLM REVIEW 1 blocker, 0 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 3 hours ago.
Report
DFSG NEW review for libsparsepp version 1.23-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: Yes
- Issues: 1 blocker, 0 important, 0 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The licences combined here (BSD-3-clause, BSL-1.0 and MIT/Expat) are all DFSG-free, and no restrictive or non-free wording appears anywhere in the tree. debian/copyright is DEP-5 and matches every file except sparsepp/spp_utils.h, which states that part of its code is derived from Boost and reproduces the Boost Software License, yet is recorded only under the Files: * BSD-3-clause stanza; the BSL-1.0 terms applying to that file are missing. Everything else (spp.h, spp_config.h, spp_timer.h, spp_test.cc, the notice-less examples/tests/build files, the public-domain dlmalloc adaptation) is described correctly.
Packaging
The packaging is clean and current: debhelper compat 14 with the single-binary addon explicitly named via dh-sequence-single-binary, a correct Architecture: all / Multi-Arch: foreign header package, a DEP-3 patch, an autopkgtest that builds and runs the shipped examples against the installed headers, and a build-time test loop that skips only the two documented exceptions. Standards-Version 4.7.4 matches the reviewing system's Policy 4.7.4.1. No policy violation, missing dependency or upgrade problem found.
Issues
1. [blocker] [licensing] Files: * gives only BSD-3-clause for sparsepp/spp_utils.h, whose Boost-derived code is under BSL-1.0
- Files:
sparsepp/spp_utils.h:1-56,debian/copyright:5-8 - Basis: checked, in the package or with a reference tool
- Evidence: sparsepp/spp_utils.h:5-6:
// Code derived derived from Boost libraries./// Boost software licence reproduced below., followed by the BSL text at :36// Boost Software License - Version 1.0 - August 17th, 2003. debian/copyright has onlyFiles: *...License: BSD-3-clause, whileFiles: sparsepp/spp_config.his givenLicense: BSL-1.0for exactly the same situation. - Problem: The file carries two grants: the 3-clause BSD grant for Steven Gregory Popovitch's code and the Boost Software License for the portions derived from Boost. Policy 12.5 requires the copyright file to carry the distribution licence(s) of the package and to describe each file's terms; BSL-1.0 is not recorded for this file, so debian/copyright is inaccurate and incomplete for it (and inconsistent with its own treatment of spp_config.h).
- Fix: Add a stanza for the file, e.g.
Files: sparsepp/spp_utils.hwithCopyright: 2016 Steven Gregory Popovitch <greg7mdp@gmail.com>andLicense: BSD-3-clause and BSL-1.0pointing at /usr/share/common-licenses/BSL-1.0, or make theFiles: *licenceBSD-3-clause and BSL-1.0.
Verified
- Read all of debian/ in full (control, rules, changelog, copyright, *.install/docs/examples, source/format, tests/control, tests/run-unit-test, patches/series and the patch, README.test, salsa-ci.yml, lrc.config) and every upstream text file; the tree contains no binaries, fonts, images, generated code or minified files.
- Prescan finding accounted for: the holder in sparsepp/spp_utils.h:2,
Steven Gregory Popovitch - greg7mdp@gmail.com, is the same person asGregory Popovitch <greg7mdp@gmail.com>in debian/copyright:6 (identical address), so no additional holder needs naming. - sparsepp/spp_dlalloc.h:4 is
a C++ allocator created from Doug Lea's dlmalloc (Version 2.8.6 ...). dlmalloc is released to the public domain and imposes no notice, so the file's description as BSD-3-clause (LICENSE plusFiles: *) is not a DFSG problem and needs no separate stanza; aCommentcrediting dlmalloc would only be an improvement. - Other notices match debian/copyright: LICENSE and sparsepp/spp.h (© 2016 Popovitch, © 2005 Google, BSD-3), tests/spp_test.cc (© 2016 Popovitch, © 2010 Google — year drift only), sparsepp/spp_config.h (BSL-1.0 text; the pointer /usr/share/common-licenses/BSL-1.0 was verified to exist), sparsepp/spp_timer.h (Expat, text matches the stanza).
- No non-free or restrictive terms: a case-insensitive grep for GPL, non-commercial, no-modification, field-of-use, research-only, public-domain and SPDX wording across the upstream tree returned nothing restrictive.
- Files with no notice at all (examples/.cc, tests/spp_alloc_test.cc, tests/perftest1.cc, tests/spp_relative_include_test.cc, both makefiles, README.md, bench.md, CHANGELOG.md, spp.natvis, conanfile.py, test_package/, .travis.yml, .github/FUNDING.yml, docs/.gitignore, the vsprojects project files) are part of the upstream work and covered by its LICENSE, which the
Files: *stanza describes. - tests/spp_bitset_test.cc includes <sparsepp/spp_bitset.h>, which is genuinely absent from libsparsepp_1.23.orig.tar.gz (tarball listing checked), as README.test states; the test is also excluded from the installed examples by the
-X spp_bitset_testin debian/rules. - The orig tarball is a git snapshot (greg7mdp-sparsepp-0d0b7a4) whose content is exactly the unpacked upstream tree; nothing was removed, so no
Files-Excludedis required. - Packaging facts checked:
dh-sequence-single-binaryis a virtual package provided by debhelper 14.5 (apt-cache), which is the explicit way to keep the single-binary addon at compat 15; Standards-Version 4.7.4 has the same first two components as Policy 4.7.4.1;Multi-Arch: foreignon an arch:all header package matches the existing libsparsehash-dev; the Debian Med maintainer address is the one other Debian Med packages use (apt-cache python3-biopython). - The patch has DEP-3 headers (Description, Author, Forwarded, Last-Update) and touches only two example files, making them match examples/makefile's
-std=c++11; nothing else is patched. - debian/rules' override_dh_auto_test compiles and runs every shipped example and test except tests/perftest1.cc and tests/spp_bitset_test.cc, both explained in README.test; at compat 13+ dh itself skips that override under DEB_BUILD_OPTIONS=nocheck, so no in-target check is needed.
- dh_installexamples with -X keeps
testsas a subdirectory (thecp --parentspath in /usr/bin/dh_installexamples), which is the layout debian/tests/run-unit-test expects; the autopkgtest builds from /usr/share/doc/libsparsepp-dev/examples, using /usr/include for <sparsepp/spp.h> and the symlink for the../sparsepp/spp.hrelative include. - debian/lrc.config (single line
sparsepp/spp_utils.h) is an unused licence-review helper configuration: debian/rules does not reference it and it is not installed in any package, so it has no effect on the build or binary; it could be dropped as dead weight. - Coverage: debian/ read exhaustively; all nine sparsepp/ headers read at their head and grepped whole; LICENSE, README.md, CHANGELOG.md, conanfile.py, .travis.yml, spp.natvis, both makefiles and the patch read; bench.md grepped only; the vsprojects XML files were not read (no licence-bearing content expected).
- uscan found the packaged version as the newest upstream release (upstream
1.23, packaged1.23). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (BSL-1.0).
Not confirmed
- The package was not built and its tests were not run (read-only review); the build-time test loop and the autopkgtest were read, not executed.
- Could not check the bug closure in the changelog (#1152280) without network access.
Proposed changes
None.
Uploader's response to the LLM review
lrc told me about the issue with sparsepp/spp_utils.h. If you as a human agree with lrc + LLM I can apply the suggested fix but I'm personally unsure whether this is a real issue since I think the file is really BSD-3-clause. That's the reason why I added it to debian/lrc.config.
— Andreas Tille (tille), 1 hour ago