Review for Package: src:fdk-aac [Summary] fdk-aac is a high quality and (arguably?) open source AAC codec from Fraunhofer IIS. The OSS license does not cover certain patented functionality. The package is in good shape and can be used for gnome remote desktop sharing. 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 need a security review, so I'll assign ubuntu-security List of specific binary packages to be promoted to main: aac-enc, libfdk-aac2 Specific binary packages built, but NOT to be promoted to main: Notes: - AA to check the license/patent situation, see https://bugs.debian.org/981285 - Parses data formats (audio) from an untrusted source, therefore I'll assign ~ubuntu-security for a review. Required TODOs: #0 Upstream does not provide a test-suite, but please add any type of automated testing in addition to the manual test plan. At least something simple like this: https://sources.debian.org/src/libxcb/1.15-1/debian/tests/build/?hl=2#L2 to verify the lib is installed correctly and can be linked against. #1 And maybe some additional testing using acc-enc to covert a simple .wav to .acc, verifying the checksums. Recommended TODOs: #2 The package should get a team bug subscriber before being promoted #3 does NOT have a non-trivial test suite that runs as autopkgtest: => Manual test plan provided: https://wiki.ubuntu.com/DesktopTeam/TestPlans/RemoteDesktop #4 Some of the lintian remarks seem easy enough, we could try to help Debian with those: I: fdk-aac source: older-debian-watch-file-standard 3 [debian/watch] I: libfdk-aac2: symbols-file-missing-build-depends-package-field libfdk-aac.so.2 [symbols] I: fdk-aac source: quilt-patch-missing-description [debian/patches/add_more_arch] #5 Try to help upstream with some of the build time warnings: warning: macro "__DATE__/__TIME__" might prevent reproducible builds [-Wdate-time] warning: type '...' violates the C++ One Definition Rule [-Wodr] [Duplication] There is no other package in main providing the same functionality. There are several AAC encoders available in Ubuntu, but non in main so far. FDK AAC seems to be the highes quality option and therefore a good choice. [Dependencies] OK: - no other Dependencies to MIR due to this - no -dev/-debug/-doc packages that need exclusion - No dependencies in main that are only superficially tested requiring more tests now. Problems: None [Embedded sources and static linking] OK: - no embedded source present - no static linking - does not have unexpected Built-Using entries - not a go package, no extra constraints to consider in that regard - not a rust package, no extra constraints to consider in that regard - Does not include vendored code 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 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) - does not deal with cryptography (en-/decryption, certificates, signing, ...) Problems: - Parses data formats (audio) from an untrusted source. [Common blockers] OK: - does not FTBFS currently - no new python2 dependency Problems: - does NOT have a test suite that runs at build time - does NOT have a non-trivial test suite that runs as autopkgtest => Manual test plan provided: https://wiki.ubuntu.com/DesktopTeam/TestPlans/RemoteDesktop [Packaging red flags] RULE: - Does Ubuntu carry a non necessary delta? RULE: - If it's a library, does it either have a symbols file or use an empty RULE: argument to dh_makeshlibs -V? (pass such a patch on to Debian, but RULE: don't block on it). Note that for C++, see [[DailyRelease/FAQ]] for a RULE: method to demangle C++ symbols files. RULE: - Does it have a watch file? (If relevant, e.g. non-native) RULE: - Is its update history slow or sporadic? RULE: - Is the current release packaged? RULE: - Will entering main make it harder for the people currently keeping it RULE: up to date? (i.e. are they only MOTUs?) RULE: - Lintian warnings RULE: - Is debian/rules a mess? Ideally it uses dh and overrides to make it as RULE: tiny as possible. RULE: - If a package shall be promoted it should NOT be on the lto-disabled RULE: list, but the fix, or the work-around should be directly in the package RULE: to enforce maintainer awareness and make it more visible to anyone RULE: looking at the package - see https://wiki.ubuntu.com/ToolChain/LTO. OK: - Ubuntu does not carry a delta - symbols tracking is in place - d/watch is present and looks ok (if needed, e.g. non-native) => see https://salsa.debian.org/multimedia-team/fdk-aac/-/commit/544855658173564dd3b8c2a4877b2f0f070071c4 - Upstream update history is slow (yearly), but OK for this type of library - Debian/Ubuntu update history is slow, but OK for this type of library - the current release is packaged - 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 - It is not on the lto-disabled list Problems: - Some "nice-to-have" lintian remarks: I: fdk-aac source: older-debian-watch-file-standard 3 [debian/watch] I: libfdk-aac2: symbols-file-missing-build-depends-package-field libfdk-aac.so.2 [symbols] I: fdk-aac source: quilt-patch-missing-description [debian/patches/add_more_arch] [Upstream red flags] OK: - no Errors during the build - no incautious use of malloc/sprintf (as far as we can check it) - no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH - 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: - Some "nice-to-have" build time warnings: warning: macro "__DATE__/__TIME__" might prevent reproducible builds [-Wdate-time] warning: type '...' violates the C++ One Definition Rule [-Wodr]