[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Need help with Multi-Arch in systemd



Am 09.07.21 um 10:28 schrieb Helmut Grohne:

On Thu, Jul 08, 2021 at 11:03:48PM +0200, Michael Biebl wrote:

Option 2 would be to drop Multi-Arch: foreign from systemd. This would mean,
that packages like libpam-systemd/libnss-systemd can no longer be installed
for a foreign architecture (even though those modules only use architecture
independent interfaces of systemd).

That would break a pile of use cases and cause a lot of pain downstream.
Please don't.

Can you iterate on that a bit? I was looking for use cases, but couldn't come up with them.

Option 3 is something I came up with after reading the Multi-Arch related
wiki pages:
https://salsa.debian.org/systemd-team/systemd/-/commit/c379461a14dcd13e0b625bd8faabbcf7fb3d19d6
It would mean marking systemd as Multi-Arch: allowed. And packages that only
use architecture interfaces of systemd would have to use the :any
annotation.

Yeah, this technically works, but it causes a lot of maintenance effort,
because you get to hunt down every single systemd dependency in the
archive for years. I think our time is worth more than the cost of
introducing a new binary package into the archive.

As said, option 1 is not something I really consider a viable option for the aforementioned reasons.
I would appreciate feedback, if option 3 is proper solution or not, or if
there are other, better alternatives. If we go with option 3, should I
inform all rdeps of systemd to update their dependency accordingly, i.e. do
a MBF?

The problem I see here is less with annotating all deps once. It is more
the constant effort it incurs. It is not obvious that you should
annotate your systemd dependency :any. People will forget that when
adding systemd dependencies. What I take issue with is the permanent
cost that we keep in the long run.

So, packages need to decide whether they use architecture independent interfaces of systemd or not and annotate it accordingly. But they only need to do that once. Isn't this the same as with any python, ruby or perl dependency?

Maybe having something like the inverse of M-A: allowed would be useful?
Instead of having packages explicitly opt-in via a :any annotation, they can opt out and request the same architecture even if a package is marked as M-A: foreign? So the select few cases which use an architecture dependent interface of M-A: foreign package would use something like pkg:arch ?










Attachment: OpenPGP_signature
Description: OpenPGP digital signature


Reply to: