Review for Package: src:libldac [Summary] LDAC, LDAC/ABR is a codec by Sony, used for bluetooth headsets. The encoder is Apache-2.0 licensed and can be used by pulseaudio or pipewire to transmit audio. From a MIR POV the upstream package doesn't seem to be super well maintained (slow/sporadic updates), but it's a mature library, with a small, isolated usecase, which does not need lots of updates. So seems to be OK. MIR team ACK under the constraint to resolve the below listed required TODOs and as much as possible having a look at the recommended TODOs. This does not need a security review. List of specific binary packages to be promoted to main: - libldacbt-enc2, libldacbt-abr2 Specific binary packages built, but NOT to be promoted to main: Notes: #0 "seeded-in-ubuntu libldac" shows that the Kubuntu/Budgie/Mate/UbuntuStudio seeds depend on this package already, IMO this is not a problem. I will confirm with the rest of the MIR team. Required TODOs: #1 please run `update-maintainer` on the package, to update debian/control #2 It is on the lto-disabled list (for s390x only). s390x is not supported by upstream and FTBFS, so this entry should just be removed from the list. #3 does NOT have a test suite that runs at build time, and it only has one simple autopkgtest (marked "superficial"). This does not fully check the Q/A-testing requirements, IMO. Usually a proper autopkgtest would do, but here the autopkgtest is minimal and we don't have build-time tests... Are there any plans for end-to-end testing of the bluetooth codec/hardware? Could a end2end test plan/code/log be provided or stated in the comments? Recommended TODOs: #4 The package should get a team bug subscriber before being promoted #5 build-time warnings should be resolved, working with upstream (see below) [Duplication] There is no other package in main providing the same functionality. [Dependencies] OK: - no other Dependencies to MIR due to this - checked with check-mir ("mini-soong" is a build-dependency and can stay in universe) - none of the (potentially auto-generated) dependencies (Depends and Recommends) that are present after build are not in main - no -dev/-debug/-doc packages that need exclusion - No dependencies in main that are only superficially tested requiring more tests now. Problems: - "seeded-in-ubuntu libldac" shows that it is being used in Kubuntu/Budgie/Mate/UbuntuStudio already, IMO this is not a problem. [Embedded sources and static linking] OK: - no embedded source present - no static linking - does not have odd Built-Using entries - not a go package, no extra constraints to consider in that regard Problems: None [Security] OK: - history of CVEs does not look concerning - does not run a daemon as root - does not use webkit1,2 - does not use lib*v8 directly - does not parse data formats - does not open a port/socket - does not process arbitrary web content - does not use centralized online accounts - does not integrate arbitrary javascript into the desktop - does not deal with system authentication (eg, pam), etc) - does not deal with security attestation (secure boot, tpm, signatures) Problems: None [Common blockers] OK: - does not FTBFS currently - does have a (non-trivial?!) test suite that runs as autopkgtest - no new python2 dependency - not a Python package - not a Go package Problems: - does NOT have a test suite that runs at build time - test suite failure MUST fail the build upon error. - bluetooth HW prevents end2end tests. Is there a test plan, code, log provided? [Packaging red flags] OK: - Ubuntu does carry a delta, but it is reasonable and maintenance under control, submitted to Debian in https://bugs.debian.org/1011314 - symbols tracking is in place - d/watch is present and looks ok (if needed, e.g. non-native) - Upstream update history is slow, but OK for a small library like this - Debian/Ubuntu update history is sporadic, but OK for a small library like this - the current release is packaged (+ git snapshot on top of it) - promoting this does not seem to cause issues for MOTUs that so far maintained the package - no massive Lintian warnings - d/rules is rather clean Problems: - please run `update-maintainer` on the package, to update debian/control - It is on the lto-disabled list (for s390x only). s390x is not supported by upstream and FTBFS, so this entry should just be removed from the list [Upstream red flags] OK: - no incautious use of malloc/sprintf (as far as we can check it) - no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH (usage is OK inside tests) - no use of user nobody - no use of setuid - no important open bugs (crashers, etc) in Debian or Ubuntu - no dependency on webkit, qtwebkit, seed or libgoa-* - not part of the UI for extra checks - no translation present, but none needed for this case (user visible)? Problems: - warnings during the build: In file included from src/ldaclib.c:37: src/sigana_ldac.c: In function ‘ana_frame_status_ldac’: src/sigana_ldac.c:178:24: warning: ‘a_status’ may be used uninitialized [-Wmaybe-uninitialized] 178 | return a_status[0]; | ~~~~~~~~^~~ src/sigana_ldac.c:133:9: note: ‘a_status’ declared here 133 | int a_status[LDAC_PRCNCH]; | ^~~~~~~~ src/sigana_ldac.c: In function ‘ana_frame_status_ldac’: src/sigana_ldac.c:178:24: warning: ‘a_status’ may be used uninitialized [-Wmaybe-uninitialized] 178 | return a_status[0]; | ^ src/sigana_ldac.c:133:9: note: ‘a_status’ declared here 133 | int a_status[LDAC_PRCNCH]; | ^