Review: python-opuslib-next 1.3.1-1
Package Information
| Description | Python bindings for the Opus audio codec This library encodes PCM audio as Opus packets and decodes Opus packets back to PCM, with support for integer and floating-point samples. It provides encoder and decoder interfaces for single streams, multistream audio and projection-based channel mapping. Codec controls allow adjustment of bitrate, encoding complexity and in-band forward error correction. This is a maintained fork of opuslib, retaining its API under the distinct module name opuslib_next. |
|---|---|
| Maintainer | Home Assistant Team <team+homeassistant@tracker.debian.org> |
| Changed By | Edward Betts <edward@4angle.com> |
| Sponsor | edward@debian.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/homeassistant-team/deps/python-opuslib-next.git (browse) |
| Closes | #1151105 |
| Tracker | https://tracker.debian.org/pkg/python-opuslib-next |
| Uploaded | 2 days ago |
New Package Report
.changes
| Date | Sat, 17 Oct 2026 10:54:26 +0100 |
|---|---|
| Source | python-opuslib-next |
| Version | 1.3.1-1 |
| Changed-By | Edward Betts <edward@4angle.com> |
| Architecture | all source |
| Distribution | unstable |
Changelog
python-opuslib-next (1.3.1-1) unstable; urgency=medium . * Initial release. (Closes: #1151105)
.dsc
| Section | python |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | python3-opuslib-next deb python optional arch=all |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: opuslib-next
Upstream-Contact: kalicyh <kalicyh@qq.com>
Source: https://github.com/kalicyh/opuslib-next
Files: *
Copyright: 2025, Kalicyh
License: BSD-3-clause
Files: debian/*
Copyright: 2026 Edward Betts <edward@4angle.com>
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 the tastypie 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 tastypie 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 1 day ago.
Report
DFSG NEW review for python-opuslib-next version 1.3.1-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 code is free: everything is under the BSD-3-clause licence of LICENSE and pyproject.toml, with no non-free terms, no vendored third-party code and no built artefacts. debian/copyright is DEP-5 and names the right holder, but its stand-alone BSD-3-clause text is not the licence the files carry: both the third clause and the liability disclaimer name 'tastypie', a different project, where upstream's LICENSE names 'SvartalF' and ''. The file therefore misstates the licence text and must be corrected.
Packaging
The packaging is clean and conventional: debhelper compat 14 with dh-sequence-python3 and pybuild/hatchling, an Architecture: all package whose runtime dependency on libopus0 matches the ctypes load of libopus.so.0, tests properly confined to Build-Depends-Indep with <!nocheck>, a declared autopkgtest (autodep8's pybuild test is available on the system), correct Vcs-* fields, and Standards-Version 4.7.4.1 which equals the current Policy. No patches or maintainer scripts are needed and none are present. The only defect is in debian/copyright, reported under licensing.
Issues
1. [blocker] [licensing] debian/copyright's BSD-3-clause text is another project's notice, naming 'tastypie'
- Files:
debian/copyright:26,debian/copyright:33,LICENSE:9,LICENSE:15 - Basis: checked, in the package or with a reference tool
- Evidence: debian/copyright:
* Neither the name of the tastypie nor theandIN NO EVENT SHALL tastypie BE LIABLE FOR ANY; upstream LICENSE (identical in the .orig tarball):* Neither the name of the SvartalF nor theandIN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY - Problem: The stand-alone
License: BSD-3-clauseparagraph is not the licence of the files it is attached to: it is the wording of the django-tastypie licence, evidently copied from another package, and names that unrelated project in the endorsement clause and in the liability disclaimer. The files are licensed under the notice in LICENSE, which names SvartalF and leaves the disclaimer's holder as a placeholder. The licence family is right, but the reproduced text is inaccurate, so debian/copyright does not correctly describe the licensing of the package (DEP-5 requires the full text of the licence actually granted, copyright-format 6.7/5.3). - Fix: Replace the stand-alone BSD-3-clause paragraph with the text of upstream's LICENSE verbatim (SvartalF in the third clause,
<COPYRIGHT HOLDER>in the disclaimer), so debian/copyright reproduces the licence the files carry. If the maintainer prefers the canonical BSD-3 template, use Kalicyh as the copyright holder consistently and say so; do not keep the tastypie wording.
Verified
- Read all of debian/ (changelog, control, copyright, rules, docs, salsa-ci.yml, source/format, upstream/metadata) and every upstream Python file, LICENSE, README.md, pyproject.toml, uv.lock and the GitHub workflows.
- The pre-review author check found no holder missing; the only copyright notices in the tree are LICENSE:1
Copyright (c) 2025, Kalicyhand opuslib_next/init.py:10:copyright: Copyright (c) 2025, Kalicyh, both matching theFiles: *stanza'sCopyright: 2025, Kalicyh. - debian/copyright is DEP-5 with the correct Format line;
Files: *covers every upstream file andFiles: debian/*the packaging; no Files-Excluded is needed. - The licence is plainly free: BSD-3-clause as stated in LICENSE and pyproject.toml (
license = "BSD-3-Clause"); no non-commercial, no-modification or field-of-use terms anywhere in the tree. - No built or non-preferred-form files: no jars, class files, shared objects, bytecode, minified JS/CSS, PDFs, fonts or firmware. uv.lock is uv's generated dependency lock file (only package names, URLs and hashes) and is reproducible from pyproject.toml, so it is not a source-less artefact.
- No vendored third-party code or embedded copies of Debian libraries; the package is pure Python and loads the system libopus through ctypes.
- Build-Depends are satisfiable from the archive: debhelper-compat (= 14); dh-sequence-python3; dh-sequence-single-binary (provided by debhelper 14.5); pybuild-plugin-pyproject and python3-hatchling (1.30.1-2); python3-all. Build-Depends-Indep python3-pytest and libopus0 are needed only for the test run and carry <!nocheck>.
- The runtime
Depends: libopus0matches the code, which loads libopus.so.0 via ctypes.util.find_library. Testsuite: autopkgtest-pkg-pybuildis supported by autodep8 on this system (its pybuild generate script supplies pybuild-autopkgtest and @builddeps@); no debian/tests directory is needed for it.- Standards-Version 4.7.4.1 equals the reviewing system's Policy version 4.7.4.1, so it is current.
- No debian/patches, no maintainer scripts, no links/dirs/install files, and none are needed; debhelper compat 14 adds the relationship substvars itself.
- Changelog is well formed:
python-opuslib-next (1.3.1-1) unstable; urgency=medium, initial release closing an ITP, with a valid current date. - uscan found the packaged version as the newest upstream release (upstream
1.3.1, packaged1.3.1).
Not confirmed
- tests/decoder.py:6-7 and tests/encoder.py:7-9 say
From the tests/test_opus_api.c; according to /usr/share/doc/libopus0/copyright, libopus'stests/*are copyright Xiph.Org Foundation and BSD-2-clause, neither of which appears in debian/copyright. Whether the Python tests are a port of that C file (and so a derived work needing its notice) cannot be checked without the libopus sources. - README.md calls the project a fork of orion-labs/opuslib and the code keeps that API, but no notice from that project is present; whether any code was copied from it and its holder omitted could not be checked, as the original is not available here.
- The package was not built and its test suite was not run (read-only review); nothing in the tree suggests a certain build or test failure.
Proposed changes
None.
Uploader's response to the LLM review
The uploader rejected this upload in response to the review.
Review Information
rejected — allocated to dfsg-uploader 6 hours ago, started 6 hours ago, completed 6 hours ago.
Final Comment
The uploader rejected this upload in response to the automated (LLM) review of it, so that they can fix the problems it found and upload again.