# +1 Maintenance Report I was on +1 maintenance on the week of 2024-09-16.
The previous +1 maintenance report (by Paul Mars) is here: https://lists.ubuntu.com/archives/ubuntu-devel/2024-September/043123.html. ## Details I spent much time on the FFmpeg 7 transition (NBS items). The most common reason for the failure was that `AVChannelLayout` is no longer a bitmask (typed as `unsigned int` in C) but a `struct`, while the `channels` attribute was removed from `AVChannel` and needs to be accessed through `AVChannelLayout` via the `nb_channels` attribute. FFmpeg 7 also removed some old APIs that were deprecated since FFmpeg 5. Since I don't have permission to upload packages, most of the changes described are proposed as merge proposals. ### r-bioc-affxparser armhf was marked unbuildable for this package. Upon investigation, this package actually builds correctly on armhf and also passes the unit tests. This package is blocking the majority of the R ecosystem packages from migrating. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/r-bioc-affxparser/+git/r-bioc-affxparser/+merge/473317 ### ocaml-re This package contains a broken `sed` command in the autopkgtest test script that breaks the unit test code. Correcting the `sed` command to properly remove the `(rule ...)` expression from the unit test prologue was the fix. This package is blocking a lot of packages in the Ocaml ecosystem. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/ocaml-re/+git/ocaml-re/+merge/473319 ### dvbcut This software used too many old FFmpeg APIs (e.g. accessing codec parameters through `codec` instead of `codecpar`), I have backported two upstream patches to fix the issues to build on FFmpeg 6. It was still not enough to fix the build failure on FFmpeg 7; the next problem was that the `picture_number` counters were removed. This software wants to know where the `picture` transition happens (the `picture_number` value changed). Upon some digging, it seems to be really finding where the I-frames are in the MPEG streams. I have introduced a patch to find the I-frames by checking whether FFmpeg thinks the current frame is a keyframe (I or IDR-frame). https://code.launchpad.net/~liushuyu-011/ubuntu/+source/dvbcut/+git/dvbcut/+merge/473324 ### aubio This software has multiple issues: - On the FFmpeg front, it used `channels` and set the channel count as a number. I have backported two upstream patches to fix this API issue. On the Python front, it had issues with the regular expressions in the binding generator script, which produced incorrect header files. Another issue was in its glue code, where the CV-qualifiers of multiple pointer types were mismatched. I have made a patch to fix these issues. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/aubio/+git/aubio/+merge/473379 ### notcurses This software used some old FFmpeg APIs to access the frame duration information. I have backported an upstream patch to fix this API issue. The package itself did not include the `/usr/share/dpkg/architecture.mk` file but referenced multiple `DEB_*_ARCH` variables in the `debian/rules` file. I don't know how it was built previously. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/notcurses/+git/notcurses/+merge/473382 ### pqiv This package needs a no-change rebuild (did not caught by the transition tracker?) https://code.launchpad.net/~liushuyu-011/ubuntu/+source/pqiv/+git/pqiv/+merge/473386 ### moc This software used the `channels` attribute to access the audio channel information; as previously discussed, this is no longer possible in FFmpeg 7. I have created a patch to fix this issue. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/moc/+git/moc/+merge/473387 ### janus This software used the `channels` attribute to access the audio channel information; as previously discussed, this is no longer possible in FFmpeg 7. I have created a patch to fix this issue. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/janus/+git/janus/+merge/473389 ### performous This software contains a lot of API compatibility issues. I have backported an upstream patch to fix this. The patch has been heavily modified due to we are packaging an older version of this software. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/performous/+git/performous/+merge/473476 ### openboard This software used the `channels` attribute to access the audio channel information; as previously discussed, this is no longer possible in FFmpeg 7. I have backported an upstream patch to fix this issue. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/openboard/+git/openboard/+merge/473395 ### zoneminder This software contains a lot of API compatibility issues. A lot of pre-FFmpeg 5 APIs were used. I have adapted an upstream patch to fix this. The patch has been heavily modified because we are packaging an older version of this software. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/zoneminder/+git/zoneminder/+merge/473472 ### libopenshot This software used the `channels` attribute to calculate how many audio samples to copy, and as previously discussed, this is no longer possible in FFmpeg 7. I have backported an upstream patch to fix this issue. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/libopenshot/+git/libopenshot/+merge/473479 **The following are packages that are part of the archive rebuild test. I have fixed these packages as part of the +1 maintenance.** ## zsh Due to the GCC 14 transition, many of the broken compiler tests inside `configure.ac` caused the program to mid-build. I have backported an upstream patch to correct the tests. Another issue was that the `boolcodes` variable has a different linkage and type (`static char*`) in the source file than declared in the header file (`const char* const`). I have created a patch to fix this mistake. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/zsh/+git/zsh/+merge/473532 ## kbd Due to the GCC 14 transition, `kbd` no longer builds due to missing C standard library headers. I have created a patch to add missing headers. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/kbd/+git/kbd/+merge/473534 ## aptdaemon Due to the Python 3.12 transition, `setuptools` no longer provides a test driver. This package still expects the `setup.py test` to launch the test suite. I have changed the `debian/rules` script to use the `nosetests3` driver instead. I also discovered that the `test_cdrom` is very flaky (with a chance of passing of about 60%), so I have disabled this test to avoid randomly failing the build. https://code.launchpad.net/~liushuyu-011/ubuntu/+source/aptdaemon/+git/aptdaemon/+merge/473537 -- ubuntu-devel mailing list ubuntu-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel