Saturday 2 October 2021

+1 maintenance report

+1 Maintenance, Sep 27-Oct 1

haskell-hgettext:
Seeing this had been stuck in -proposed for quite some time with failing
autopkgtests, I cross-checked with Debian. The autopkgtests also fail
there, but the package has been allowed into a stable release; so I have
added a hint marking the tests as bad to unblock this, following the
principle that we should not exclude a universe package from release due to
tests that are unmaintained in Debian and aren't an indicator of releasable
quality.

gudev-sharp-1.0:
Upload fails because we have a gudev-sharp-3.0 synced from experimental,
which takes over monodoc-gudev-manual at a higher version. Uploaded to drop
the obsoleted binary. This package obviously has no reverse-dependencies
since it isn't built, and may be of limited value since a later release is
already present, but it's easy enough to fix and if it gets removed from
Debian later that's easily sorted.

golang-yaml.v2:
Blocked by autopkgtest failures that don't happen in Debian. History
suggests they may have been fixed in Ubuntu sometime since April.
Retriggered to see if they pass now. They do - so this should migrate soon,
as
https://people.canonical.com/~ubuntu-archive/proposed-migration/update_output_notest.txt
confirms the failing autopkgtests were the only blockers.

golang-github-smartystreets-gunit:
Blocked by a failing autopkgtest of revdep
golang-github-smartystreets-go-aws-auth on armhf only. But the updated
package is a no-change rebuild, so this is suspicious. Triggered a baseline
retest against the release pocket to confirm that this is a regressed test.
(A number of people had retried the test over the previous months, but no
one had yet checked if the test was bad in the release pocket.) The test
times out the same way in the release pocket, so hinted.

golang-github-lucas-clemente-quic-go:
Strange s390x-specific autopkgtest failure related to TCP6 ECN flags;
unclear why this should be, possibly an endianness issue in the code but not
digging further at this time.

golang-github-kisielk-gotool:
Another consistently failing autopkgtest on a reverse-dependency that has
not been tested against the release pocket baseline. Tested, confirmed the
regression, and hinted.

golang-github-cactus-go-statsd-client:
Autopkgtests that pass in Debian but fail in Ubuntu. Reproduced the failure
locally in an arm64 VM. Also reproduced the failure with version 5.0.0-1,
which is the version currently in Debian unstable. Not digging further at
this time.

gitaly:
Build-depends on golang-gopkg-libgit2-git2go.v28-dev which no longer exists,
having been replaced by golang-gopkg-libgit2-git2go.v31-dev (Debian bug
#976820). This package is not going to be buildable without source
changes, and has multiple RC bugs in Debian. Removed from -proposed.

gdnsd:
Package has been blocked from updating for 3 years due to the default
configuration being incompatible with systemd-resolved. We shouldn't leave
packages in the release pocket without updates indefinitely, but with my
release hat on I'm not comfortable with overriding autopkgtests that
indicate a package will fail to install altogether. I've removed the
package from release and -proposed, and commented on bug #1764327.

gauche-gtk:
Package fails to build in Debian and Ubuntu, is only present in unstable and
-proposed. Based on the analysis in bug #1934534, it would have been ideal
if someone had escalated this to the ubuntu-archive team to remove it from
-proposed a while ago. Done now.

eztrace-contrib:
FTBFS, not in Debian stable or testing. Removed.

crystal:
FTBFS, not in Debian stable or testing. Removed.

caml-crush:
FTBFS, not in Debian stable or testing. Removed from -proposed and from the
release pocket.

ayatana-indicator-{sound,session,power}:
dep-wait on lomiri-url-dispatcher which is in -proposed but not built. This
in turn build-depends on liblomiri-app-launch-dev, which is uninstallable;
the new version is dep-wait on libmirclient-dev (>= 0.5). Current mir does
not build a libmirclient-dev binary package; after discussing with Chris
Halse Rogers, it seems that lomiri-app-launch is going to require
non-trivial porting to current mir before this will be buildable in Ubuntu.
I've removed lomiri-app-launch from -proposed, but have left the
reverse-build-dependencies there rather than dealing with them at this
point.

apertium-br-fr:
the autopkgtest failure on s390x has an associated error message, "Error:
Unknown error matching regexp (code -29)". Tracking this error message
through the apertium and subsequently pcre source, code -29 maps to
PCRE_ERROR_BADENDIANNESS. Digging into the apertium code, it seems that the
relevant source file doesn't include the necessary config.h to set
WORDS_BIGENDIAN. Fixing the missing include lets the tests pass. I'm a
little wary that "correcting" the endianness could introduce new issues with
existing data files, but I re-tested with the previous version of
apertium-br-fr which had the same autopkgtest and which was passing before,
and it continues to pass with the new one, so there are no apparent
regressions in compatibility - so uploaded apertium and forwarded the patch
to Debian.

With this, all packages which have been stuck in -proposed since the start
of the impish cycle with no further uploads/syncs have at least had a
preliminary review as part of +1 maintenance, and most have an associated
update-excuse bug linked.

xrdp:
a warning about unknown archs has been promoted to an error, causing build
failures on ppc64el and s390x. Without further analysis for correctness,
I've added ppc64el and s390x to the list of architectures not requiring
structure alignment, because this is how the package was built before, so
there is no regression. Patch forwarded to Debian for further evaluation.

xorgxrdp:
unblocked by the above xrdp fix.

rally-openstack:
This package ftbfs in Ubuntu but not in Debian. The root error is:

/usr/lib/python3/dist-packages/eventlet/patcher.py:109: in inject
module = __import__(module_name, {}, {}, module_name.split('.')[:-1])
/usr/lib/python3/dist-packages/dns/hash.py:23: in <module>
warnings.warn(
E DeprecationWarning: dns.hash module will be removed in future versions. Please use hashlib instead.

The python3-dnspython package which provides
/usr/lib/python3/dist-packages/dns/hash.py was rolled back from 2.0.0 to
1.16.0 because of incompatibilites with eventlet in groovy, but we now seem
to have a compatibility problem in the opposite direction (albeit a
deprecation warning rather than an error). Cherry-picking python3-dnspython
2.0.0-1 from Debian unstable allows the package to pass tests in general,
but there are still two failing tests... and there are two DIFFERENT failing
tests in Debian unstable. In any case, the rolled-back dnspython has been
causing test failures since hirsute (LP: #1907228), so I've added a task to
that for rally-openstack and tagged it update-excuse, as well as bringing
the bug to the attention of the uploader of the dnspython revert.

qtmir:
also dep-wait on lomiri-url-dispatcher.

paperwork:
I had a look at this, but didn't make any progress vs the bugs that have
already been filed (LP: #1937256). Possibly a libinsane bug, possibly a
girepository/ffi issue.

golang-github-likexian-gokit:
FTBFS in Debian and Ubuntu, so removed from -proposed and Debian bug filed.

ggcov:
Package has hard-coded checks on g++ version strings, which breaks whenever
gcc is updated. Currently broken in Debian testing and unstable. No
reverse-dependencies, so removed from -proposed and from the release pocket,
as this behavior means it's broken at runtime in impish right now.

debos:
New autopkgtest fails because it exercises a virtualization option that's
not supported in Ubuntu. This was reported to Debian, as Debian bug
#989145. However, the alternative virtualization option also isn't useful
in Ubuntu for autopkgtests, because it would require nested KVM which isn't
supported on the autopkgtest infrastructure. I have questions of whether
debos is useful on Ubuntu given that in its default config it doesn't work
(https://bugs.launchpad.net/ubuntu/+source/debos/+bug/1795079), but I've at
least proposed a possible option for updating the package with a minimal
passing autopkgtest rather than continuing to ship an untested package.

boxer-data:
Package should have been added to the sync blacklist in 2019. This was done
finally in August (LP: #1843049), but the package didn't get removed from
-proposed. Done now.

bfh-metapackages:
Metapackages for a Debian pure blend; not installable due to Debian-specific
dependencies, and not applicable to Ubuntu. Removed and blacklisted.

appstream-generator:
The build failure of this version is reproducible in Debian as well. There
is a new version in Debian unstable that fixes the build failure; it also
depends on a newer appstream than we have in impish. I've synced appstream
and appstream-generator as these both appear to reasonable microreleases,
but I left them in unapproved for further release team review (and they've
been approved and accepted).

crowdsec:
Error regarding go types, with both golang-github-docker-go-connections-dev
and golang-github-docker-docker-dev shipping go-connections/nat. Unsure how
to fix this, punting for now.

nvidia-settings-tesla-4{60,50,40,18}, nvidia-graphics-drivers-tesla-460:
We do our own nvidia packaging independent of Debian, and a large number of
nvidia source packages are blacklisted for syncing. Added to the blacklist
and removed.

libiptcdata:
dep-wait on i386 because libhash-fieldhash-perl is not available there.
Added libhash-fieldhash-perl to the manual whitelist, retriggered build for
i386. libiptcdata built successfully once the build-dependency was
available.

nvidia-graphics-drivers-465:
Obsolete source package superseded by nvidia-graphics-drivers-470 which took
over all its binaries as transitional packages. Removed from release and
-proposed.

rust-file-diff:
FTBFS in Debian and Ubuntu because of junk binary test data depending on
obsolete libraries (Debian bug #990382). Removed.

ognibuild:
Tests require the newer breezy-debian in -proposed, which fails to build and
therefore is not on track for release in impish. We could trigger the
autopkgtests to run against the version of breezy-debian in -proposed and
get ognibuild to migrate, but that would leave some of its features
non-functional because of the incompatible brz-debian package.
- breezy-debian FTBFS, as tracked in LP: #1933034. The fix for this is to
get a new breezy built (3.2.1), but it FTBFS due to bug #1937173, which
affects both Debian and Ubuntu. The bug report had not yet been forwarded
to Debian, so I've done this now.

upstream-ontologist:
Autopkgtests haven't been run since June. The test history gives some
reason to believe the failures may have been fixed by unrelated changes, so
retried them. The tests still failed, however; quite possibly due to LP:
#1931369, which entangles several packages.

ruby-chef-utils:
FTBFS because the tests access (through a dependent library) the Internet
during build. I'm not sure if this is a bug in ruby-chef-utils or in
ruby-fauxhai, so I've opened a Debian bug and an Ubuntu bug (LP: #) rather
than removing the package from -proposed at this time.

kubectx:
previously removed because it depends on kubernetes, which is blacklisted
for syncing in Ubuntu and exists only as a dummy package referring to the
kubernetes snap. Removed the new version of the package.

dbus-cpp:
This package is not in Debian testing for the same build failures and
autopkgtest problems that are preventing it from migrating to the impish
release pocket. Removed the package from -proposed.

fossil:
The new version fails to build because it requires functions only present in
sqlite3 3.36, not in the 3.35 currently in impish. Unclear why fossil was
uploaded to Debian before the sqlite3 it build-depends on, but this can wait
until JJ opens, we don't need to be syncing a new sqlite3 right now.

ncbi-entrez-direct:
This package fails to build from source in both Debian and Ubuntu. I've
filed a bug in Debian, and removed the buggy version from -proposed, leaving
it to the Debian maintainer to resolve.

suricata:
Still affected by LP: #1929150. Has not been shipped in a stable release
since eoan due to this bug, and never shipped a version affected by this
bug. Removed again.

picolibc:
The new picolibc-aarch64-linux-gnu package, unlike the others, relies on a
compiler (gcc-aarch64-linux-gnu) that doesn't target a libc-less environment
by default, so gets entangled with Ubuntu gcc's default stackprotector
support. Filed Debian bug #995473 because I'm not sure exactly the right
changes to the gcc spec file to fix this.

inputplug:
dep-wait on a virtual package provided by librust-x11rb-dev. Unfortunately
dep-waits on virtual packages are not auto-cleared. Manually retried the
builds, which succeeded.

mysql-workbench:
Reintroduced after a previous removal due to blocking the python2 removal,
this package previously had an Ubuntu delta to drop -Werror from the bulid
flags in order to let it build with Ubuntu's (usually ahead) compilers.
Reintroducing this patch and disabling the mariadb-compatibility patch
(which is not compatible with MySQL) is sufficient to let the package build.

piuparts:
Debian bug #991970 has previously been reported for this build failure, but
it was not a serious bug in Debian because Debian was not yet using
golang-1.16 by default. It is now the default there, so I've raised the bug
severity and removed the package from -proposed, with the expectation we'll
get the fix from Debian in the next cycle.

lomiri-download-manager:
dep-wait on libnih, which was originally an Ubuntu package and has since
been removed and blacklisted. Synced libnih from Debian unstable, since the
original justification for the blacklisting no longer applies. Once libnih
is built, however, lomiri-download-manager fails to build because the
.symbols file lists various destructors which aren't guaranteed to be
exported (and aren't with the current Ubuntu toolchain). The package fails
to build in Debian unstable with /different/ symbols file mismatches. Filed
bug #995281 in Debian, and removed the package from -proposed.

I also took a look at packages that are blocked in -proposed because they
are out-of-date on i386; fixed gtk4, gst-plugins-good1.0.
intel-media-driver-non-free is also out-of-date on i386, but due to a build
failure rather than a missing build-dependency, so I didn't investigate it
further.

The rest of my time on +1 maintenance this week was spent on trying to
improve the performance of proposed-migration runs, which even with only
~100 packages in -proposed are clocking in at over an hour. We've had a bug
for a while (https://bugs.launchpad.net/britney/+bug/1904880) to improve the
performance by grabbing the full autopkgtest database in one go, instead of
iterating over myriad individual files in swift. A branch is now available
for this at
<https://code.launchpad.net/~vorlon/britney/+git/britney2-ubuntu/+ref/adt-results-from-swift>.
However, after some testing, I find that the swift downloads are not a
bottleneck at all, the time it takes britney to run is indistinguishable
between retrieving from swift vs retrieving from sqlite. So I'm going to be
looking to take some time to instrument britney and find out where the
actual bottlenecks are, since it's not on downloading the results.

--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer https://www.debian.org/
slangasek@ubuntu.com vorlon@debian.org