Monday, 27 November 2023

+1 maintenance report - Nov 21st -> Nov 24th 2023

Hello,

I was on my plus-one shift last week. I was off on Monday so it makes it a slightly
shorter report to write.

### libnet-cups-perl (LP: #2044113)

We are ahead of Debian for cupsfilters by one major version. I introduced a patch
to make libnet-cups-perl build properly against libcupsfilters 2.0.
It isn't trivial to make the package compatible with both versions of cups-filters,
so I think we need to maintain the delta in Ubuntu until Debian switches from
cups-filters 1.28 to 2.0.
I also filed a bug report upstream to add support for cups-filters 2.0 in Net-CUPS.
Thanks to Till for sponsoring the upload!

### kitty (LP: #2043080, LP: #2044243)

I merged 0.26.5-5 from Debian unstable and opened a PR in Debian so we can drop our
delta later. As a response, Debian pulled in a new upstream version that has the fix
we need.
Once kitty 0.31 made it to Debian unstable, I requested a sync.
Thank you Simon Quigley for sponsoring both the merge and the sync!

### acedb (LP: #2044385)

acedb was FTBFS in noble. It turned out to be incompatible with glibc 2.38 because
glibc 2.38 makes the strcasestr function available by default. Previously, it made
the function available only when building with _GNU_SOURCE.
acedb defines its own strcasestr function when it thinks the function is not available
(the logic did not cover recent glibc-s). This resulted in multiple definitions with
glibc 2.38.
I added a patch to skip the (re)definition when building with recent glibc-s.
The patch was accepted in Debian before being sponsored in Ubuntu, and the package
auto-synced.

### khmer (LP: #2044383)

In retrospect, I spent /way/ too much time on this package. I think I should have
filed a removal package from the get go since it isn't actively maintained... but
I assumed it was going to be a quick win (and spoiler, it wasn't).

khmer was FTBFS with Python 3.12. The only visible failure at the time was in the
build-time test-suite and looked straightforward to address:

> AttributeError: module 'configparser' has no attribute 'SafeConfigParser'.
> Did you mean: 'RawConfigParser'?


I wrote a fix for this issue, made sure the package would build (well, at least I
thought so...), uploaded a .debdiff, forwarded the patch to Debian and upstream,
and called it done.

Then it turned out that my PPA was not building with -proposed enabled. And as you
know, one (or several) failures can hide behind another. There were actually
dozens other failures, all in the build-time test-suite. The test-suite was failing
on some test-cases and hanging on others (and when it did hang, it hung until
timeout ; therefore not showing any report of the previous errors).

After several iterations. I think I addressed all the remaining issues, submitted
another debdiff and forwarded the changes to Debian and upstream.

This was an interesting experience for sure. I learned that Python 3.12 is /not/
forgiving when a script forgets to close a file that it opened for writing.
This was the root cause of ~90% of the failures in src:khmer when building against
Python 3.12.
* With Python 3.11, there didn't seem to be much of a problem with files that were
open(..., mode="w") without either:
* an explicit call to .close() ; or
* an automatic call to .close() when using context managers (with blocks)
* With Python 3.12, all these files appear truncated. This made the test-suite go
wrong in many obscure ways.

Takeaway: remember to .close() your files (or use a context manager, really!)
especially if you work with Python 3.12.

I still need a sponsor to take my second patch. The diff is hard to read because I've
introduced context managers - which change the indentation of large chunks of code.
Being in a quilt patch does not make it easier either. Maybe the PR upstream is a
better place to start reviewing?

Thank you Simon Quigley for sponsoring the first patch, and looking at some of the
other failures! And sorry about this mess!

### python-ulmo (LP: #2044545)

I merged 0.8.8+dfsg1-1.1, allowing us to drop one piece of our delta (with one left).
I will need a sponsor to upload it :)

### peewee, pgl-ddl-deploy, dataclasses-json

Re-triggered autopkgtest-s blocking migration for these three packages so they would
run against updated dependencies. They both migrated.

### misc

I noticed in proposed-migrations that an unusual number of packages failed to build
because GCC was segfault-ing. I didn't have enough time to investigate.

Thank you,
Olivier

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