Debian NEW review of dune-common 2.11.0-2: ACCEPTED
awm at debian.org
awm at debian.org
Tue Oct 13 01:31:32 BST 2026
This is an automated message from the Debian DFSG, Licensing & New
Packages Team.
The Debian NEW review of dune-common 2.11.0-2 has been completed.
Decision: ACCEPTED
Reviewer: Andrew McMillan
Review comment:
Hi,
A bunch of issues found in the review, but they're all minor or trivial findings. Enjoy!
1. [minor] [licensing] pybind11 stanza omits copyright holders named in the shipped headers
- Files: debian/copyright, stanza `Files: dune/python/pybind11/*.h dune/python/pybind11/_version.py`; dune/python/pybind11/detail/init.h, typing.h, stl/filesystem.h, eigen/common.h, gil_safe_call_once.h, type_caster_pyobject_ptr.h
- Evidence: `Copyright (c) 2017 Jason Rhinelander <jason at imaginary.ca>`; `Copyright (c) 2023 The pybind Community.`; `Copyright (c) 2021 The Pybind Development Team.`; `Copyright (c) 2023 Dustin Spicuzza <dustin at virtualroadside.com>`
- Problem: The stanza's Copyright list (retrieved from pybind11's LICENSE on 2021-08-21) does not represent four holders that appear in the shipped headers. Licence coverage itself is correct: under copyright-format glob rules `*` matches slashes, so `dune/python/pybind11/*.h` covers all 35 headers including the detail/, eigen/ and stl/ subdirectories, and the full BSD-3-clause text is included.
- Fix: Add the missing holders to the stanza's Copyright field (or add a Comment noting that pybind11's LICENSE covers all contributors).
2. [minor] [licensing] Files:* Copyright list is missing two holders listed in upstream's own
COPYING/LICENSE.md
- Files: debian/copyright, `Files: *` stanza
- Evidence: upstream `COPYING`/`LICENSE.md` contain `2024 andrthu` and `2025 Tobias Meyer Andersen`; neither line appears in the `Files: *` Copyright field.
- Problem: Copyright is not fully accurate: two holders in the upstream holder list are not represented in debian/copyright's catch-all stanza.
- Fix: Add the two lines when next refreshing debian/copyright.
3. [minor] [licensing] pybind11 stanza lists a file that is not in the tarball
- Files: `debian/copyright pybind11 stanza; dune/python/pybind11/_version.py (absent)`
- Evidence: _version.py does not exist under dune/python/pybind11/ (the vendored pybind11 2.12 header-only copy ships no such file).
- Problem: A Files pattern matching nothing; harmless but stale.
- Fix: Drop the `_version.py` pattern from the stanza.
4. [minor] [licensing] LGPL-3.0-or-later alternative of dual-licensed files not recorded
- Files: `dune/common/hybridmultiindex.hh; dune/common/typetree/*.hh and dune/common/typetree/test/*`
- Evidence: `SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception OR LGPL-3.0-or-later`
- Problem: debian/copyright describes these files only as `GPL-2 with DUNE exception`; the LGPL-3.0-or-later option a recipient may choose is not mentioned, so the licence is under-described.
- Fix: Record both options, e.g. `License: GPL-2 with DUNE exception or LGPL-3.0`, and add the LGPL-3 text (or a reference to /usr/share/common-licenses/LGPL-3).
5. [minor] [licensing] Boost-derived pow() in quadmath.hh not credited
- Files: `dune/common/quadmath.hh (around line 352)`
- Evidence: comment: `modified version of boost::math::cstdfloat::detail::pown ... distributed under the Boost Software License, Version 1.0`
- Problem: The file's SPDX header and debian/copyright only state the DUNE GPL-2-with-exception; the embedded function adapted from Boost Math is BSL-1.0 code whose notice/licence text is not reproduced or recorded in debian/copyright.
- Fix: Record the Boost provenance for quadmath.hh in debian/copyright (holder + BSL-1.0 text).
6. [minor] [packaging] CXXFLAGS restore in patch uses a misspelled variable name, leaving flags empty
- Files: `debian/patches/fix-linitian-file-references-package-build-path (cmake/modules/DuneProject.cmake)`
- Evidence: saves `_configure_file_cxx_flags_backup ${CMAKE_CXX_FLAGS}` but restores `set(CMAKE_CXX_FLAGS ${_configure_file_cxxflags_backup})` (different name).
- Problem: CMAKE_CXX_FLAGS is set to empty instead of being restored. Currently benign because the code runs inside finalize_dune_project() after all targets already captured their flags, but it is a latent defect: any later use of CMAKE_CXX_FLAGS would see an empty value (losing Debian's flags).
- Fix: Use the same variable name in both statements.
7. [minor] [packaging] Vendored pybind11 is an embedded copy of a library Debian ships
- Files: dune/python/pybind11/* (pybind11 2.12.0; see dune/python/pybind11/detail/common.h, `PYBIND11_VERSION_MAJOR 2 / MINOR 12`)
- Evidence: Debian ships pybind11 (`python3-pybind11 3.1.0-2`); Policy 4.13: binary packages should reference the libraries already in Debian rather than a convenience copy.
- Problem: The source embeds a pinned pybind11 2.12.0 and installs its headers into python3-dune-common instead of using the Debian-packaged pybind11-dev. Upstream deliberately pins a specific version for its bindings, so a justified choice is acceptable, but it should be documented.
- Fix: Either build against the system pybind11-dev, or add a Comment in debian/copyright / a note in debian/* documenting why the pinned vendored copy is kept (its version differences matter to DUNE's bindings).
8. [minor] [packaging] debian/watch is in the old version 4 format
- Files: `debian/watch`
- Evidence: `version=4`
- Problem: Version 5 is the current format of `debian/watch`.
- Fix: Convert it to version 5; a mechanical conversion is proposed below:
================================
Version: 5
Source: https://gitlab.dune-project.org/core/@PACKAGE@/tags?sort=updated_desc
Matching-Pattern: -/archive/v?\d[\d.]+/@PACKAGE at -@ANY_VERSION@@ARCHIVE_EXT@
Filenamemangle: s%.*@PACKAGE at -v?@ANY_VERSION@\.(.*)\.bz2.*%@PACKAGE at -$1.$2\.bz2%
Searchmode: plain
Update-Script: uupdate
================================
Thanks!
Full review details: https://dfsg-new-queue.debian.org/reviews/dune-common
More information about the debian-science-maintainers
mailing list