Friday 21 June 2024

+1 Maintenance Report

Hi there,

I was on the +1 maintenance shift on the week of June 17th, 2024.

Most of my time was spent picking up toolchains or programming
language-related issues (and retrying all the "unknown" tests).

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

### node-yarnpkg

This is a leftover from the last week.
Thanks to Athos' investigation, I was able to get a head start. Upon
further investigation, Debian/Ubuntu's Emscripten package behaves in
an unexpected way (I have confirmed that the upstream Emscripten
binaries do not have such an issue).
See https://code.launchpad.net/~liushuyu-011/ubuntu/+source/node-yarnpkg/+git/node-yarnpkg/+merge/467614
for more details.

### libxml-grddl-perl / libxml-libxslt-perl

These require a no-change rebuild due to mismatching libxml sover.
I can't do that since I am not a CoreDev.

### jsxgraph

It was superseded by a (not so proper) Debian fix. The real issue was
that `Build-Depends` was missing the `gawk` package. The Debian
maintainer switched the script to use `sed` instead.

### ruff

The package was added to the sync blocklist in the last release.
To finish the sync, an archive admin must remove this package from the list.

### dub

This package was borked due to an LTO issue on s390x. doko uploaded a
workaround (removing LTO flags).
It may be noted that `-fall-inst` might not be needed, causing the ODR
(One Definition Rule) violation during GCC's WPA (Whole Program
Analysis) phase.

Also, the packages are not built on PPC64EL because the D standard
library (libphobos) is missing. The reason for that is how the D
standard library handles 128-bit float point numbers.
On Debian/Ubuntu, the C library defaults to using IBM's "double
double" format, while the D standard library expects IEEE-754
binary-128 format.
This makes the D standard library unbuildable and causes the D
language toolchain to fall back to "Better-C only" mode. A potential
solution is to build LDC but define the `real` primitive in D to
64-bit. However, this is an untested configuration in the D standard
library.

### ypy

This package requires the introduction of new Rust packages
(`rust-yrs` and `rust-lib0`).
Since Ubuntu does not maintain Rust micropackages, those need to be
added through Debian.

### rust-imperative

This package requires the introduction of new Rust packages (`rust-stemmers`).
Since Ubuntu does not maintain Rust micropackages, those need to be
added through Debian.

### vectorscan

This package breaks when you enable LTO. Some inlined functions
contain SIMD intrinsics, so enabling LTO will confuse GCC on how to
inline and link the final program.

See https://code.launchpad.net/~liushuyu-011/ubuntu/+source/vectorscan/+git/vectorscan/+merge/467842.

### tiledarray / btas

Lies deep in the abyss, `tiledarray` seems to attract a lot of
unwanted attention from countless people doing +1 shifts.

My new findings are, `tiledarray` and `btas` need to be upgraded
(probably needs to be done in Debian) so that they will build with new
BLAS + LAPACK.

The upstream for those two projects is still very much alive; they are
just too shy to make new releases:
https://github.com/ValeevGroup/BTAS.

My recommendation is to remove those packages from the archive and
re-introduce them once `btas` is upgraded in Debian.

### node-get-stream

This package had the autopkgtest crash on ppc64el and s390x.
Upon investigation, the crash was caused by Node.js Garbage Collector
being unable to perform GC collections under memory pressure
(translation: consumed too much memory and then went out of memory).

This package blocked several Node.js micropackages.

I am not entirely sure how to fix the issue, maybe we can add
swapfiles in the autopkgtest runners? The tests in `node-get-stream`
seem to require about 4 GiB of RAM.

### paraview

Debian built the package using `-O0` but did not specify why.
This breaks compilation on ppc64el due to insufficient branch space
for the jump, and s390x due to unable to link certain symbols.

This package blocks `facet-analyzer`.

I made a patch to fix the issue:
https://bugs.launchpad.net/ubuntu/+source/paraview/+bug/2070081/comments/1.

### netavark

This Rust package does not use the latest `rustix` library.
The older version requires a copy of the outline assembly library
vendored inside.
Those also got removed since we removed binary blobs from the source code.

I have made a patch to use `libc` by default:
https://code.launchpad.net/~liushuyu-011/ubuntu/+source/netavark/+git/netavark/+merge/467844

### python-cramjam

This Rust package does not use the latest `pyo3` library.
Debian Rust Team usually only keeps the latest version in the archive,
so it references a package that no longer exists.

I have made a patch to use the newer `pyo3` library:
https://code.launchpad.net/~liushuyu-011/ubuntu/+source/python-cramjam/+git/python-cramjam/+merge/467617

### rust-secret-service

This package requires `rust-zbus` package version to be 3.x, while we
have 4.x in the archive.

`rust-zbus` underwent a major API overhaul with the 3.x -> 4.x update,
so patching it is not feasible.

I don't know what to do with this situation, as upgrading the package
to a newer version will have a snowball effect.

### ubuntu-kylin-software-center

This is a Ubuntu native package used by Ubuntu Kylin.
I have fixed this package on the upstream; hopefully, Ubuntu Kylin
maintainers will release it soon.

### xilinx-runtime

This package is missing a few header includes (mostly `<cstdlib>` and
`<cstdint>`). I currently don't have a working ARM device to test
build the package (as it's missing a lot of headers, it's not feasible
to iterate on Launchpad).

### ruby-rackup / ruby-rack-session

Those require `ruby-rack` v3. This version was removed from Ubuntu
(also only in Debian experimental).

My recommendation is to remove those packages from the archive and
reintroduce them once the `ruby-rack` v3 transition is completely
finished.

### aevol

This package had a test crash due to NULL pointer dereference.

I have made a patch to check for `NULL` before using it:
https://code.launchpad.net/~liushuyu-011/ubuntu/+source/aevol/+git/aevol/+merge/468013

### ldc

It is not present on the excuses page, but it is worth mentioning:
during the investigation of `dub,` I discovered that this package
suppressed smoke tests after the build.

I might fix the package later and request a sponsorship in Debian.

Thanks,
Zixing

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