Tuesday, 2 April 2024

+1 rotation: report/hand-off

Hi folks,

I was on +1 last week, and this is my report/hand-off document.

# Hand-off

For folks that are on +1 this week and the next, given the recent events (t64
transition and xz-utils-related woes) I suggest you head over to
#ubuntu-release and ask the Release Team if you can be of help on whatever is
on fire at the moment.

If for some reason they don't have anything for you to work on and you can't
see anything jumping out for you to hammer on, I suggest looking at the IRC
logs on #ubuntu-release between 2024-03-26 and 2024-03-28, specifically any bug
mentioned. There's a good chance those bugs are test regressions that were
hinted through to unblock the t64 transition but could still use proper
investigation.


# Report

Last week was... interesting. For those that weren't following closely, there
was a big push to get the t64 transition unblocked before Beta Freeze. In
particular, most of Foundations took part in what could be considered a "mass
+1 party" where we worked through a huge list of packages. I didn't keep logs
of what I worked on during that time, so consider the following report more of
an excerpt than an exhaustive account of my rotation.


## motif

FTBFS on armhf due to the use of undeclared functions. Synced
2.3.8-3.1 from Debian to fix it.

## interimap (LP: #2059120)

Curious case of an arch:all package failing on armhf. It turns out that Perl
exposes native integer types through the pack() function, and interimap uses it
to create a `struct timeval` used to set a socket timeout. Obviously that
breaks on armhf now that `time_t != long`. Worth noting that upstream was aware
of the portability issues of that code.

Fixed in Ubuntu, forwarded to Debian.

## faketime vs bash (LP: #2059078)

TL;DR: faketime is utterly broken on armhf with t64

faketime is a library that one uses with `LD_PRELOAD` to mock typical libc
functions, mostly those dealing with time. However, currently, on armhf it
mocks and uses the 32-bit ABIs while using the 64-bit types internally.

When using a 32-bit ABI with a 64-bit struct, you'll "just" deal with bad data.
The other way around, though, will likely lead to memory corruption of some kind
as the 64-bit function with write past your 32-bit struct. That last
situation is
what happened to bash as it was still using 32bit `time_t`.

I "fixed" this by rebuilding bash, which means it bypasses faketime entirely.
Meanwhile, faketime is still broken, but fixing it requires more time than I
had at hand.

## click (LP: #2058769)

A Python file shipped in python3-click (arch:all) is generated at build-time
and exposes a path to the relevant libclick so file. Said path contains the
multiarch triplet, which will be wrong on any system that is not amd64.

My first patch ended up being broken, I'll upload a followup shortly.

## livevent, freerdp2

Uploaded the rdep rebuilds for both packages as they started their t64
transition.


That's all, folks!

Cheers,
Simon

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