Package: libpam-elogind-compat
Version: 1.3
Severity: serious
Justification: silent file overwrite in upgrade situation
User: helm...@debian.org
Usertags: dep17p1
Control: clone -1 -2
Control: affects -1 + libpam-systemd
Control: retitle -2 libpam-systemd needs a versioned conflict for 
libpam-elogind-compat
Control: reassign -2 libpam-systemd
Control: found -2 255~rc1-2
Control: affects -2 + libpam-elogind-compat
Control: block -2 by -1

libpam-elogind-compat declares "Replaces: libpam-systemd", because they
both install e.g. /lib/x86_64-linux-gnu/security/pam_systemd.so on
amd64. Since libpam-systemd/255~rc1-2 in experimental, this file is
located in the corresponding location below /usr. Therefore the Replaces
declaration is not matched by dpkg and becomes ineffective. The
resulting behaviour is as if there was no replaces. This is problem
class is described in more detail in DEP17[1] P1.

The simplest mitigation for this kind of problem is preventing
concurrent unpack by upgrading Replaces to Conflicts (and thus dropping
the now implied Breaks). This mitigation is described in more detail in
DEP17[1] M7.

Do you know why Breaks+Replaces has been chosen here? Do you see any
issues with upgrading to Conflicts?

A timely solution is appreciated, because libpam-systemd will need a
versioned Conflicts on unfixed versions of libpam-elogind-compat to
avoid breaking upgrades.

Helmut

[1] https://subdivi.de/~helmut/dep17.html

Reply via email to