Sunday 17 March 2024

+1 maintenance report

Hi there,

I was on the +1 maintenance shift on the week of March 4th, 2024.
Most of my time was spent helping Steve move the armhf 64-bit time_t
archive rebuilds.

The following is a summary of all the packages I worked on:

## Fixed FTBFS

### `openmpi`

This package was very poorly scripted and allowed file installation
failures to present.
Multiple files were absent from the final binary packages because the
binary packages were renamed to have `t64` suffixes.
This led to `mpi4py` having strange test failures.
I have corrected the installation behaviors to install the previously
missed libraries.
The fix can be found at
https://code.launchpad.net/~liushuyu-011/ubuntu/+source/openmpi/+git/openmpi/+merge/462375.

### `mpi4py`

This package had a documentation build failure and also a test failure
during the build.

The documentation issue was caused by the `sphinx` behaviour change
after the Python 3.12 transition (where `sphinx` was also upgraded).
This issue was addressed by removing a previous `PYTHONPATH`
overriding hack and using the InterSphinx index from the local
filesystem instead of downloading from the Internet. Unfortunately,
due to a file installation issue in the `numpy` package, the `numpy`
package lacks an InterSphinx index file, so I have to disable the
cross-module documentation indexing for `mpi4py` -> `numpy`.

The test issue was caused by the `openmpi` package not having the
correct library files installed. The details are described in the
`openmpi` section above.

You can find the documentation fix at
https://code.launchpad.net/~liushuyu-011/ubuntu/+source/mpi4py/+git/mpi4py/+merge/462361.

### `gnuplot`

This package had a documentation build failure during the build process.

It was due to a broken documentation converter that somehow worked
fine before `glibc` was upgraded.
That documentation converter had an out-of-bound memory read when
reading `gnuplot.doc` (note that this is gnuplot format, not MS Word
format) because
the input file contained an unexpected syntactic layout. I have
provided a fix at
https://code.launchpad.net/~liushuyu-011/ubuntu/+source/gnuplot/+git/gnuplot/+merge/462273.

### `libabigail`

This package contained a redundant `dh_makeshlibs` call in
`debian/rules`. It made the package uninstallable after the binary
packages were renamed to have `t64` suffixes.
I have submitted a patch to get this segment removed:
https://code.launchpad.net/~liushuyu-011/ubuntu/+source/libabigail/+git/libabigail/+merge/462286.

### `jackd2`

This package was un-buildable after the Python 3.12 transition due to
its source code tree containing an outdated copy of the `waf` build
system.
I have backported the upstream fix as a distribution patch here:
https://code.launchpad.net/~liushuyu-011/ubuntu/+source/jackd2/+git/jackd2/+merge/462267.

### `gobject-introspection`

This package was fine, but the library itself was not designed to
handle a `time_t` size that is wider than the register width. After
the `armhf` `time_t` transition,
`armhf` will have a 64-bit `time_t` type, which is 2x the size of the
register-width (32-bit).
I have proposed a fix to the upstream:
https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/451
and also kept a distribution patch to fix the
issue in Ubuntu:
https://code.launchpad.net/~liushuyu-011/ubuntu/+source/gobject-introspection/+git/gobject-introspection/+merge/462175.
The upstream seemed to have issues with turning platform-dependent
types into platform-sized G-I primitives, so Simon McVittie from
Collabora submitted an improved patch
here: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3966.

### `hdf5`

This package had an issue with the dependency declarations, where the
non-`t64`-suffixed dependencies were used.
I have submitted a patch to address this issue:
https://code.launchpad.net/~liushuyu-011/ubuntu/+source/hdf5/+git/hdf5/+merge/462287.

### `qt6-webengine` and `qtwebengine-opensource-src`

These two Chromiums, with different coats of Qt paints, suffered from
the Python 3.12 transition, which broke many of their build scripts.
I have to backport several batches of Chromium patches to fix the build issues.
- https://code.launchpad.net/~liushuyu-011/ubuntu/+source/qt6-webengine/+git/qt6-webengine/+merge/462543
- https://code.launchpad.net/~liushuyu-011/ubuntu/+source/qt6-webengine/+git/qt6-webengine/+merge/462529
- https://bugs.launchpad.net/bugs/2058066
- https://bugs.launchpad.net/ubuntu/+source/qtwebengine-opensource-src/+bug/2058117

There are still some issues with building on `armhf` due to several
vendored 3rdparty libraries having `time_t` allergies pending
investigations.

## Archive Bootstrapping for `armhf`

As part of the archive rebuild for `armhf`, we must start from the
dark and cold status before properly building anything clean.

With the help from Steve, Vladimir, Benjamin and Michael, I have
prepared and uploaded the following packages for bootstrapping the
archive:

- `vala`
- `gtk+2.0`
- `gtk+3.0`
- `gtk-4`
- `samba`
- `json-glib`
- `librsvg`
- `libqrtr-glib`
- `libqmi`
- `libmbim`
- `libgudev`
- `modemmanager`
- `libsoup3`
- `php8.3`
- `cups`
- `libwacom`
- `pygobject`
- `gjs`
- `xterm`
- `groff`
- `libsdl2`
- `vim`
- `graphviz`
- `ghostscript`
- `avahi`
- `poppler`
- `libdbusmenu`
- `gssdp`
- `gupnp`
- `neatvnc`
- `freerdp2`
- `gupnp-igd`
- `weston`
- `libnice`
- `tesseract`
- `colord`
- `sane-backends`
- `enchant-2`
- `gdal`
- `leptonlib`
- `ffmpeg`
- `ogre-1.12`
- `nodejs`

I will still check the `armhf` bootstrapping progress in the coming
weeks to help accelerate the rebuild process.

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel