Mailinglist Archive: opensuse-factory (435 mails)

< Previous Next >
[opensuse-factory] Replacing libzypp stack with libdnf stack
  • From: Carson Black <uhhadd@xxxxxxxxx>
  • Date: Mon, 6 Jul 2020 23:45:58 -0400
  • Message-id: <>
Lately, I've become somewhat displeased by a lot of shortcomings of
the libzypp stack in regards to how it serves openSUSE.

In condensed list form, my complaints are:
- zypp using external binaries for tasks (rpm, repo2solv) causes
updates that change those binaries to be be particularly unstable
- zypp upgrading is unstable when curl is being updated (from what I
can remember this is because it uses private libcurl APIs that don't
have any stability guarantees)
- lack of parallel downloading of packages and repository metadata
(even libalpm has this now)
- PackageKit backend is extremely subpar (it's the only backend out of
ten or so that doesn't support cancelling transactions)
- nonexistence of a useful and well-documented plugin interface for zypper
- difficult to use from a variety of programming languages as most
bindings are broken and unsupported
- the C++ API itself is a mess, exposing a ton of implementation
details such as the XML parser in public API

Unfortunately, the lack of a developer ecosystem around and using
libzypp gives me extremely little hope that any of these architectural
issues will be fixed.

The DNF stack already maintained as part of openSUSE has none of these
issues, resulting in a noticeably better user experience when switched
in, especially for less technically competent users that rely on
friendly utilities like GNOME Software or Plasma Discover which rely
on PackageKit, where dnf provides a much better backend than zypp.

Plus, the larger ecosystem of developers and users of the DNF stack
gives me more confidence that it'll remain well maintained and any
issues that arise will be fixed.

From what I can tell, the only things that need any further
integration work besides just switching out the package manager would
be the YaST package manager module (which iirc also covers
installation) and transactional-update. Everything else (even stuff
like snapshot integration) that's needed for a cohesive package
management experience with the libdnf stack already exists in openSUSE
and I already see plenty of users setting up the libdnf stack to skip
out on all the issues of the default libzypp stack.

And speaking with an upstream (KDE dev) hat on, complaints from
openSUSE users re. Discover "not working" are about as useful as bugs
with stack traces from Arch, which doesn't ship debug symbols in any
capacity at all, due to the abysmal quality of the PackageKit backend.
For a lot of other KDE developers I've converted to openSUSE, the
abysmal quality of the libzypp PackageKit backend was a near
dealbreaker due to not being able to work on Discover with distro
packages until I shared how to set up the DNF PackageKit backend. If I
see someone complaining about Discover straight up not functioning,
it's almost certainly an openSUSE user. I wouldn't be surprised if our
friends at GNOME had a similar situation with GNOME Software.

Any thoughts/objections regarding the possibility of replacing the
libzypp stack in openSUSE with the libdnf stack?

-- Carson Black [ jan Pontajosi, Jan Blackquill ]
To unsubscribe, e-mail: opensuse-factory+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-factory+owner@xxxxxxxxxxxx

< Previous Next >