Review: ringdecomposerlib 1.1.3-1
Package Information
| Description | library for calculation of the unique ring families and other cycle bases RingDecomposerLib is an ANSI-C library with a Python wrapper for calculation of unique ring families and other cycle bases (relevant cycles, smallest set of smallest rings). |
|---|---|
| Maintainer | Debichem Team <debichem-devel@lists.alioth.debian.org> |
| Changed By | Andrius Merkys <merkys@debian.org> |
| Distribution | unstable |
| Architecture | any |
| VCS | git: https://salsa.debian.org/debichem-team/ringdecomposerlib (browse) |
| Closes | #1151046 |
| Blocked Bugs | #1149286 (serious) |
| Tracker | https://tracker.debian.org/pkg/ringdecomposerlib |
| Uploaded | 4 hours ago |
New Package Report
.changes
| Changed-By | Andrius Merkys <merkys@debian.org> |
|---|---|
| Architecture | source amd64 |
| Distribution | unstable |
| Date | Mon, 19 Oct 2026 02:33:49 -0400 |
| Source | ringdecomposerlib |
| Version | 1.1.3-1 |
Changelog
ringdecomposerlib (1.1.3-1) unstable; urgency=medium . * Initial release. (Closes: #1151046)
.dsc
| Section | libdevel |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | libringdecomposerlib-dev deb libdevel optional arch=any |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://github.com/rareylab/RingDecomposerLib Upstream-Name: RingDecomposerLib Upstream-Contact: https://github.com/rareylab/RingDecomposerLib/issues Files: * Copyright: 2016, University of Hamburg, ZBH - Center for Bioinformatics, Niek Andresen, Florian Flachsenberg, Matthias Rarey License: BSD-3-Clause Files: debian/* Copyright: 2026, Andrius Merkys <merkys@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: . 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . 2. 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. . 3. Neither the name of the copyright holder 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 HOLDER 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
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 hours ago.
Report
DFSG NEW review for ringdecomposerlib version 1.1.3-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: No
- Issues: 0 blocker, 1 important, 1 minor; 1 more from the model's own knowledge, under Not confirmed
- debian/watch: absent
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
All files are BSD-3-Clause (upstream “BSD New”). Every C/C++/Cython/Python source carries the standard University of Hamburg ZBH notice (2016, Niek Andresen, Florian Flachsenberg, Matthias Rarey); files without an individual notice (CMakeLists, docs, DIMACS test data, CI files) are part of the same upstream release under the root LICENSE and are covered by the Files: * stanza. debian/copyright is machine-readable DEP-5 with accurate stanzas and reproduces the full BSD-3-Clause text, which is required since it is not in /usr/share/common-licenses. No non-free terms, no unlicensed files, no built or minified or binary files, no vendored third-party code, no Files-Excluded needed.
Packaging
Solid foundation: debhelper compat 13, dh $@, current Standards-Version, single clean -dev package, sufficient Build-Depends, no patches. But execute_after_dh_install in debian/rules deletes the shared library that upstream's CMake builds and installs and hand-moves the static archive into the multiarch dir, so the package ships only a static lib and header with no runtime library, compensating for the missing SOVERSION instead of fixing it; the layout should be done with .install files. The Maintainer address uses the decommissioned alioth list.
Issues
1. [important] [packaging] Shared library is deleted in an override; the -dev package ships only a static archive
- Files:
debian/rules,src/RingDecomposerLib/CMakeLists.txt - Basis: checked, in the package or with a reference tool
- Evidence:
rm debian/libringdecomposerlib-dev/usr/lib/*.so;mv debian/libringdecomposerlib-dev/usr/lib/*.a debian/libringdecomposerlib-dev/usr/lib/$(DEB_HOST_MULTIARCH). CMake builds the shared target viabuild_library("${SHARED_LIBRARY}" "SHARED")with no VERSION/SOVERSION, so the installed shared library is an unversionedlibRingDecomposerLib.sowith no SONAME. - Problem: The workaround wanted to avoid shipping a SONAME-less shared library, but destroys the shared artifact upstream ships: no runtime/binary package is produced, consumers can only link statically, and
libringdecomposerlib-devhas no accompanying runtime library. The raw mkdir/mv/rm in a rules hook (instead ofdebian/*.install, where compat 13 supports${DEB_HOST_MULTIARCH}) is fragile: a future upstream change that stops producing the.a/.sowould break the glob. A sponsor should require the shared library be shipped properly rather than deleted. - Fix: Add a Debian patch setting
VERSION/SOVERSIONon the shared target in src/RingDecomposerLib/CMakeLists.txt and ship the versioned shared library (with a runtime binary package and shlibs), or, if static-only is deliberate, replace the mkdir/mv/rm block with adebian/libringdecomposerlib-dev.installfile installing the static archive intousr/lib/${DEB_HOST_MULTIARCH}.
2. [minor] [packaging] There is no debian/watch
- Files:
debian/watch - Basis: found by the review tooling's own checks
- Problem: Without a watch file new upstream releases are not noticed by uscan, the tracker or the maintainer's tools.
- Fix: Add a
debian/watchin version 5 format, or, if upstream has no usable release channel, one holding a comment that says so.
Verified
- debian/copyright read in full: DEP-5 1.0 format,
Files: *,Files: debian/*, and a standaloneLicense: BSD-3-Clauseparagraph with the complete licence text (correct, since BSD-3-Clause is not shipped in /usr/share/common-licenses). - Copyright holders and licence in debian/copyright match the tree: all C/Python/Cython files carry the same BSD-3-Clause header crediting University of Hamburg, ZBH Center for Bioinformatics, 2016, Niek Andresen, Florian Flachsenberg, Matthias Rarey. The copyright grep covered all 51 files with notices and the prescan's author check confirms every holder found is named in debian/copyright.
- Files without an individual notice are covered by the root LICENSE and the
Files: *stanza: CMakeLists.txt (7 files incl. root, src/, src/python, test), INSTALL, README, README.md, mainpage.doxygen, documentation/doxygen.cfg, documentation/sphinx/{conf.py,index.rst}, test/README, the 26 test/.dimacs, .gitignore, .travis.yml, src/python/setup.py.in. - No other licence files exist anywhere (no COPYING/NOTICE/AUTHORS in subdirectories); no vendored code; RDKit (benchmark, external) and DIMACS test data are not bundled.
- No binary/built files: a glob for .so/.o/.a/.class/.jar/.pyc/minified/PDF/image files returned only .py sources; everything is the preferred form for modification (C, Cython .pyx/.pxd, CMake, text data).
- test/*.dimacs are text graph files (molecular ring topologies, PubChem-derived with chemical data removed) - test data, not a licensing concern.
- debian/control, rules, changelog and source/format read in full. debhelper-compat (= 13) with
dh $@;Standards-Version: 4.7.4equals the current Policy 4.7.4.1 (checked via the policy tool). Single binarylibringdecomposerlib-dev(libdevel, Multi-Arch: same);${misc:Depends}present; no shlibs needed since no shared library remains. Build-Depends (debhelper-compat, cmake) suffice for the default build; python wrapper and RDKit benchmark are off by default. - Changelog 1.1.3-1, unstable, initial release closing #1151046; source format 3.0 (quilt) with no patches, so nothing to review there; Vcs-* fields consistent with the salsa debichem-team/ringdecomposerlib namespace; no autopkgtests (optional).
- At compat 13, dh_missing defaults to --fail-missing but only scans debian/tmp, while a single-binary build installs directly into the package directory (verified via the debhelper tool), so the build is not at risk from the missing/installed-file check.
CMAKE_POLICY_VERSION_MINIMUM=3.5in override_dh_auto_configure is a legitimate guard for thecmake_minimum_required(VERSION 3.1)deprecation under current cmake.
Not confirmed
- Could not build or run the package (read-only review); the ctest validation tests and the resulting files are unexercised. No certain build or test failure is identifiable from the sources: the
.soand.anamed by the rules glob are produced by the CMake install. - The salsa repository named by the Vcs-* fields was not verified to exist.
- Whether the lists.alioth.debian.org address still forwards mail could not be checked; flagged as a minor issue.
- Whether this is a fault: Stale Debian Team mailing-list address in Maintainer. The model reported it as a minor packaging issue from its own knowledge of something outside the package, which it did not check with a tool, so it is not counted among the issues. Files:
debian/control.
Evidence:Maintainer: Debichem Team <debichem-devel@lists.alioth.debian.org>
Problem: lists.alioth.debian.org was decommissioned in 2018; the Debichem Team's list is debichem-devel@lists.debian.org. Mail from the BTS to this address (including the closure CC in the changelog) will not reach the team.
Fix: Usedebichem-devel@lists.debian.org.
Proposed changes
None.
Uploader's response to the LLM review
I find it strange that LLM review proposes patching-in the SOVERSION for otherwise unversioned shared library - this goes against Debian principles of not going against upstream's wishes in shared library versioning. I think the removal of *.so and methods chosen for this task are proportionate for this case.
Lack of debian/watch will be addressed in subsequent uploads, I have forgotten to add it, thanks for spotting.
— Andrius Merkys (merkys), 1 hour ago
Review Information
accepted — allocated to awm 1 hour ago, started 1 hour ago, completed 1 hour ago.
Final Comment
I think there are opinions about how sonames should work, and the way that most people do it is generally the best way. If upstream have strong opinions about doing it the way they do it, then by all means follow them, but if they're doing it the wrong way for bad reasons then doing it the right way is potentially a good thing. I don't make any assessment of whether upstream in this case are one or the other, but I'm perfectly happy for you to disagree with the LLM on this point.
Thanks!