Monday 18 May 2020

Re: Help understanding the package set we need to maintain for partial i386

Hi Christian,

On Mon, May 18, 2020 at 03:57:39PM +0200, Christian Ehrhardt wrote:
> Hi,
> I was revisiting one of the packages the server team usually looks
> after: `rdma-core`.
> Late in the focal release cycle I was asked to mark the `pandoc`
> build-dependency with !i386 as it doesn't exist there and was causing
> problems [1]. I was revisiting this now to resolve it in a better way
> to be able to make the package a sync again.

> I had a discussion with Debian and started to wonder why this is a
> problem for Ubuntu at all. That made me identify a weak spot in my
> understanding of partial i386 [3][4].
> The odd thing to me is that `rdma-core` isn't part of the i386
> whitelist [5], so why would it be a problem that the d/control lists
> pandoc as build-dep - I'd have expected it to not build at all.
> Then I realized that germinate still pulls it in [6], but failed to
> see why. Is it that we actually have i386 builds on the whitelist and
> in addition all-of-its-build-deps ?

The relevant germinate output is
https://people.canonical.com/~ubuntu-archive/germinate-output/i386.groovy/i386+build-depends

This shows the source packages that are in the set, as well as why they're
pulled in.

rdma-core is there as a dependency of openmpi, which is a dependency of
mpi-defaults, which is a build-dependency of boost.

There are a lot more packages that need to be built on i386 than those that
are directly in the whitelist, because we need a closure over
build-dependencies in order to be able to build the packages that are in the
whitelist.

> Furthermore that might explain why the only dependency left is openmpi
> which also isn't part of the whitelist [5] but shown in germinate [6].

> $ reverse-depends --release=groovy --arch=i386 src:rdma-core
> Reverse-Depends
> * libopenmpi-dev (for libibverbs-dev)

> I now wonder if a much easier fix might be to remove the build
> dependency to rdma-core on src:openmpi (for i386 only) which would
> finally make rdma-core really not building on i386. Is that a better
> solution? Openmpi in turn has a much longer list of things depending
> on it, doing the cut at openmpi->rdma-core seems to be the cleanest.

I have no preference on whether we do the cut above or below rdma. If you
find that having openmpi not depend on rdma-core on i386, and keeping
rdma-core in sync, is easier for maintenance, then that's fine.

> But then I have realized that while there are not more runtime
> dependencies, build dependencies in i386 seem to be quite a lot still
> (reverse-depends --release=groovy --arch=i386 --build-dep
> src:rdma-core shows 41).

As far as I know these are all false-positives; I don't know that
reverse-depends --build-dep --arch=foo ever does anything useful.
Spot-checking the output, I see that most of these packages only have arch:
all packages published on i386.

> With this mail I'd look for:
> a) general guidance on `is the effective i386 build = whitelist + build-deps`
> b) feedback on the suggestion to remove the rdma-core build dep on
> openmpi; or would all 41 build-deps have to go away?
> c) other alternatives

> The answers to (a) we could add to the wiki [4].
> The answers to (b)+(c) will hopefully help me to go on with this, it
> might eventually come down to keeping the current Delta (trivial) in
> rdma-core, but along the way understanding the inner workings better
> would be great.
>
> [1]: https://launchpad.net/ubuntu/+source/rdma-core/28.0-1ubuntu1
> [2]: https://github.com/linux-rdma/rdma-core/pull/756#issuecomment-630138899
> [3]: https://discourse.ubuntu.com/t/community-process-for-32-bit-compatibility/12598
> [4]: https://wiki.ubuntu.com/i386
> [5]: https://git.launchpad.net/~ubuntu-core-dev/ubuntu-seeds/+git/i386/tree/i386
> [6]: https://people.canonical.com/~ubuntu-archive/germinate-output/i386.focal/i386+build-depends.sources

--
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