![](https://seccdn.libravatar.org/avatar/af8a9293484ed04b89081d848929b19a.jpg?s=120&d=mm&r=g)
On Wed, Aug 4, 2021 at 8:31 AM John Paul Adrian Glaubitz <adrian.glaubitz@suse.com> wrote:
On 8/4/21 2:05 PM, Thorsten Kukuk wrote:
On Wed, Aug 04, Rainer Klier wrote:
so that such a broken system can't happen any more.
If you follow the advice and use "zypper dup" instead of updating single selected packages, this would not happen, too ;)
His point is still valid though. If the binary package of udev and systemd need to have matching version numbers [1], this should be expressed in the BuildRequires of the src:systemd spec file.
zypper shouldn't make it possible here to shoot yourself into the foot.
Adrian
[1] I haven't verified whether this actually holds true, FWIW.
There's a fairly common openSUSE footgun where people do requires on subpackages with something like "foo = %{version}" instead of "foo = %{version}-%{release}", which creates this problem because it doesn't tell the package manager to keep everything upgraded together. This is *especially* a problem if you are patching things and only bumping the release instead of the version, and the patch can introduce ABI or interface differences. People seem to be under the mistaken impression that there's some magical pixie dust that always resolves these issues, but there isn't. In this circumstance, though, there's a version upgrade, so that isn't the issue. And even so, the systemd package *mostly* avoids this footgun. However, udev does *not* have a "Requires: systemd%{?_isa} = %{version}-%{release}" stanza[1], even though it should because that's where libsystemd-shared (the internal library that is used by systemd services) lives. So getting out of sync is actually possible. [1]: https://code.opensuse.org/package/systemd/blob/098d77b61940503c85313ff49fa06... -- 真実はいつも一つ!/ Always, there's only one truth!