DFSG NEW Queue

DFSG, Licensing & New Packages Team

tinyalsa 2.0.0+git20241128-1

Package Information

Descriptionutilities to interface with ALSA

TinyALSA is a lightweight interface to ALSA in the Linux kernel.

The aims are:

* Provide a basic pcm and mixer API. * If it's not absolutely needed, don't add it to the API. * Avoid supporting complex and unnecessary operations, that could be dealt with at a higher level. * Provide comprehensive documentation.

MaintainerDebian ALSA Maintainers <pkg-alsa-devel@lists.alioth.debian.org>
Changed ByLukas Märdian <lukas.maerdian@oss.qualcomm.com>
Sponsorslyon@debian.org
Distributionunstable
Architectureany
VCSgit: https://salsa.debian.org/alsa-team/tinyalsa.git (browse)
Closes#1079473
Trackerhttps://tracker.debian.org/pkg/tinyalsa
Uploaded3 hours ago

New Package Report

.changes◂
Distributionunstable
DateMon, 02 Nov 2026 10:17:18 +0100
Sourcetinyalsa
Version2.0.0+git20241128-1
Changed-ByLukas Märdian <lukas.maerdian@oss.qualcomm.com>
Architecturesource arm64
Changelog◂
tinyalsa (2.0.0+git20241128-1) unstable; urgency=medium
 .
   * Initial release (Closes: #1079473).
.dsc◂
Package-Listlibtinyalsa-dev deb libdevel optional arch=any
libtinyalsa2 deb libs optional arch=any
tinyalsa deb sound optional arch=any
tinyalsa-tests deb sound optional arch=any
Sectionlibdevel
Priorityoptional
Componentmain
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: tinyalsa
Upstream-Contact: https://github.com/tinyalsa/tinyalsa/issues
Source: https://github.com/tinyalsa/tinyalsa

Files: *
Copyright: 2011-2021, The Android Open Source Project
           2019, The Linux Foundation
License: BSD-3-Clause~AOSP

Files: examples/plugins/sample_mixer_plugin.c
       examples/plugins/sample_pcm_plugin.c
       examples/sndcardparser/sample_sndcardparser.c
       include/tinyalsa/plugin.h
       src/mixer_hw.c
       src/mixer_io.h
       src/mixer_plugin.c
       src/pcm_hw.c
       src/pcm_io.h
       src/pcm_plugin.c
       src/snd_card_plugin.c
       src/snd_card_plugin.h
Copyright: 2019-2021, The Linux Foundation
           2021, The Android Open Source Project
License: BSD-3-Clause~LinuxFoundation

Files: utils/optparse.h
Copyright: Christopher Wellons
License: public-domain
 This is free and unencumbered software released into the public domain.
Comment: Embedded copy of https://github.com/skeeto/optparse, only used at
 build time by the utilities; it is not installed.

Files: debian/*
Copyright: Qualcomm Technologies, Inc. and/or its subsidiaries
License: BSD-3-Clause

License: BSD-3-Clause~AOSP
 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 Android Open Source Project 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 Android Open Source Project ``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 Android Open Source Project 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.

License: BSD-3-Clause~LinuxFoundation
 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 Linux Foundation 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 "AS IS" AND ANY EXPRESS OR IMPLIED
 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
 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.

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 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 2 hours ago.

Report◂

DFSG NEW review for tinyalsa version 2.0.0+git20241128-1

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: Yes
  • Packaging is of good quality: No
  • Issues: 0 blocker, 1 important, 1 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: nothing found

Licensing

debian/copyright is DEP-5 and accurate: it names both holders that appear in the tree (The Android Open Source Project and The Linux Foundation) plus Christopher Wellons for the vendored utils/optparse.h, and its three licence stanzas reproduce, clause for clause, the notices in the files they cover, including the differing clause-3 entity and disclaimer wording of the two BSD-3 variants. The 12 files that carry the Linux Foundation variant are exactly the 12 listed in the second Files: stanza; everything else carries the AOSP variant. Full text is present for what /usr/share/common-licenses does not hold, nothing is under non-free terms, no file is unlicensed, and the two licences combined in the binaries are compatible. Only year drift (2012/2015/2019-2020/2020 against 2011-2021) was found.

Packaging

The packaging is otherwise modern and complete: compat 13 with dh $@ --buildsystem=meson, hardening flags, a proper symbols file that matches the ABI after patch 0002, DEP-3 patches (the pcm_out_test one forwarded upstream), a sensible four-way split with Multi-Arch: same on the library packages, autopkgtests covering both the -dev/example path and the hardware suite, salsa CI, gbp and upstream metadata, and Standards-Version 4.7.4 against Policy 4.7.4.1. It has one defect: Build-Depends does not name pkg-config although the meson build resolves gtest only through its .pc modules, so in a chroot holding just build-essential and the Build-Depends the test binary is silently not built and dh_install aborts.

Issues

important packaging 1. Build-Depends omits pkg-config, so meson cannot find gtest and dh_install aborts on debian/tinyalsa-tests.install ◂
  • Files: debian/control (Build-Depends), tests/meson.build (added by debian/patches/0001-meson-add-tests-option-and-gtest-based-test-suite.patch), debian/tinyalsa-tests.install
  • Basis: inferred from what was read, not seen directly
  • Evidence: Build-Depends: / debhelper-compat (= 13), / libgtest-dev, / meson, and, in tests/meson.build, gtest_dep = dependency('gtest', main: true, required: get_option('tests')) followed by if gtest_dep.found() around the executable('tinyalsa_test', ... install: true, install_dir: 'libexec/tinyalsa').
  • Problem: The only way meson can resolve that dependency here is pkg-config: libgtest-dev ships /usr/lib/x86_64-linux-gnu/pkgconfig/gtest.pc and gtest_main.pc (checked on the reviewing system) plus CMake config, and cmake is not a build-dependency either. No Build-Depends and no package in their dependency closure installs the pkg-config binary: checked with apt-cache against debhelper and its chain (dh-autoreconf, autoconf, automake, autopoint, libtool, autotools-dev, dpkg-dev, man-db, po-debconf, intltool-debian, gettext, dwz, file, libdebhelper-perl, libdpkg-perl), meson (ninja-build, python3-setuptools), libgtest-dev and googletest; none depends on or recommends pkg-config/pkgconf. In a chroot with only build-essential and the Build-Depends, meson reports gtest as not found; because the patched tests option defaults to auto that is not an error, tinyalsa_test is simply never built, and dh_install then fails to match usr/libexec/tinyalsa/tinyalsa_test in debian/tinyalsa-tests.install and exits with missing files, aborting (glob_expand_error_handler_reject plus the $missing_files check in /usr/bin/dh_install at compat 13). The same silence would hide a genuinely broken test build.
  • Fix: Add pkg-config to Build-Depends (the virtual package provided by pkgconf, which debian/tests/control already uses), and make the test build non-optional, e.g. dh $@ --buildsystem=meson -Dtests=enabled in debian/rules or required: true for gtest in the patch, so a missing gtest stops configure instead of dropping the binary package's only file.
minor packaging 2. uscan finds only upstream versions older than the packaged one ◂
  • Files: debian/watch
  • Basis: found by the review tooling's own checks
  • Evidence: upstream 2.0.0, packaged 2.0.0+git20241128
  • Problem: The newest version uscan finds with debian/watch is older than the version in debian/changelog, so the watch file does not find the packaged release: it may look in the wrong place, or the versions may need mangling to compare.
  • Fix: Check where debian/watch looks and how it mangles versions.
Verified ◂
  • The scan before the review reported that every copyright holder found in the tree is named in debian/copyright, and flagged no other file; the tree was in any case inventoried directory by directory and grepped for Copyright, (C), ©, SPDX-License-Identifier, All rights reserved and the licence phrases, excluding .pc/.
  • debian/copyright is DEP-5 with Format:, Upstream-Name, Upstream-Contact and Source, four Files: stanzas and three stand-alone License: stanzas, each with the text that is not in /usr/share/common-licenses. No Files-Excluded is declared and none is needed.
  • The AOSP holder and years match NOTICE and the AOSP headers (src/mixer.c, src/pcm.c, include/tinyalsa/*.h, utils/*.c, tests/src/*.cc, tests/include/pcm_test_device.h, BUILD); the Linux Foundation holder matches the 12 files in the second stanza (src/mixer_hw.c, src/mixer_io.h, src/mixer_plugin.c, src/pcm_hw.c, src/pcm_io.h, src/pcm_plugin.c, src/snd_card_plugin.c, src/snd_card_plugin.h, include/tinyalsa/plugin.h and the three examples/ samples) - no LF file is missing from it and no other file uses that wording.
  • utils/optparse.h is the only public-domain file, attributed to Christopher Wellons, and is #included build-time only by tinyplay, tinycap, tinymix and tinypcminfo; no copy is installed, as the stanza's Comment says.
  • LICENSE and MODULE_LICENSE_BSD are 0-byte files (Android markers); the licence text lives in NOTICE, whose AOSP-variant wording debian/copyright reproduces. METADATA (license_type: NOTICE) agrees.
  • Files with no notice of their own (examples/pcm-readi.c, examples/pcm-writei.c, include/tinyalsa/attributes.h, the Makefiles, .travis.yml, scripts/version.sh, scripts/travis-build.sh) are covered by Files: *, which is the project's licence.
  • doxygen/Doxyfile is a stock generated doxygen 1.8.17 configuration template, claims no copyright and no licence of its own, is not built (meson's docs option is a no-op with a FIXME) and is not installed - not a licensing or DFSG problem.
  • BUILD, WORKSPACE and Android.bp are Bazel/Soong files the Debian build does not use; WORKSPACE fetches googletest from GitHub, but only for Bazel builds - the Debian build uses the system libgtest-dev, so no network access.
  • src/limits.c is dead upstream code: it is not in meson's or CMake's source list and defines two symbols that nothing references; not installed.
  • debian/patches/* all carry DEP-3 Description, Author, Forwarded and Last-Update; 0003 is forwarded to upstream PR 284, 0001 and 0002 are marked not-needed (build option and symbol visibility), which is defensible.
  • debian/libtinyalsa2.symbols lists libtinyalsa.so.2 libtinyalsa2 #MINVER# with Build-Depends-Package: libtinyalsa-dev and is consistent with patch 0002 hiding hw_ops/plug_ops.
  • libgtest-dev (1.18.0-1) provides gtest.pc and gtest_main.pc; meson depends on ninja-build, so --buildsystem=meson and dependency('gtest', main: true) need no further library build-dependency.
  • pkgconf (which Provides pkg-config), kmod and build-essential named in debian/tests/control all exist; the build test's /usr/share/doc/libtinyalsa-dev/examples/pcm-readi.c path is what dh_installexamples produces from debian/libtinyalsa-dev.examples, and the loopback test skips cleanly when cards or the module are unavailable.
  • Standards-Version 4.7.4 is current against Policy 4.7.4.1 (first two components equal); the Maintainer address is the one other ALSA-team packages in the archive carry (alsa-utils 1.2.16-1); source format 3.0 (quilt), debian/compat absent in favour of debhelper-compat (= 13).
  • debian/tinyalsa.manpages duplicates meson's install_man; dh_installman finds the four pages in debian/tmp and logs them, so the file is redundant but harmless.
Not confirmed ◂

None.

Proposed changes ◂

None.

Uploader's response to the LLM review

The uploader was emailed about the review 2 hours ago.

Back to Dashboard | View all reviews for this package