[Pkg-utopia-maintainers] Bug#783827: severe but easily fixable dependency problem

Simon McVittie smcv at debian.org
Thu Apr 30 18:06:19 UTC 2015


On 30/04/15 17:22, x at muc.ccc.de wrote:
> - dozens if not hundred packages are actually prevented from being installed.

I was about to say "name one", but I have a shell script that can do
that for me. (See below.)

I think you'll find that those dozens or hundreds of packages are the
packages that depend, directly or indirectly, on libpam-systemd. This is
nothing to do with dbus: no amount of modification to dbus is going to
have any effect on whether those packages depend on libpam-systemd.

The meaining of a dependency on libpam-systemd is that their maintainers
have marked them as requiring login session tracking using
systemd-logind. You cannot have login session tracking using
systemd-logind if you don't have systemd-logind (obviously enough), and
that daemon is part of systemd.deb.

See below for a procedure you could use to get a complete list of
packages that depend, directly or indirectly, on systemd.

    S

----

My starting point is a somewhat minimal Debian 8 chroot. You didn't
specify any particular version of dbus, so I'll assume the stable
release that happened last week as a reasonable starting point; we
aren't far enough into the next release cycle for testing or unstable to
have diverged very far from there. As produced by debootstrap, the
chroot has systemd but no dbus.

Step 1, don't have systemd:

# apt-get install sysvinit-core systemd-
...
The following packages will be REMOVED:
  systemd systemd-sysv
The following NEW packages will be installed:
  sysvinit-core
...
Removing systemd (215-11) ...

Step 2, tell apt that you never want to see systemd on your system again:

# cat > /etc/apt/preferences
Package: systemd
Pin: version *
Pin-Priority: -1

Step 2.5, make sure it worked:

# apt-get --dry-run install systemd
...
E: Package 'systemd' has no installation candidate

Step 3, do have dbus:

# apt-get install dbus
...
The following NEW packages will be installed:
  dbus libcap-ng0 libdbus-1-3

(You should notice that this works fine, even though you don't have
systemd; this contradicts the assertion that dbus depends on systemd.)

Step 4, see what else we would be able to install, of the 42271 packages
that my example system knows about:

# apt-cache pkgnames | wc -l
42271
# apt-cache pkgnames | sort -u | while read package; do \
  echo "trying $package"; \
  apt-get --dry-run install dbus $package >/dev/null 2>/dev/null || \
  echo "would not be able to install $package"; done \
  | tee installables.log
... it takes a long time ...
# grep -v '^trying' installables.log
would not be able to install apper
would not be able to install apper-dbg
would not be able to install aptdaemon
...

Repeat with "systemd-sysv" instead of "systemd" in the preferences file
to see what you would be able to install if you are willing to accept
systemd-related daemons, but not systemd-as-pid-1.

Looking at the first few packages found (those starting with a), for
instance, you will notice that apper depends on aptdaemon, which depends
on libpam-systemd.



More information about the Pkg-utopia-maintainers mailing list