Re: Conflicts does not remove old package
Hilmar Preuße:
> Hi,
>
> we got https://bugs.debian.org/978431 telling that the upgrade from
> buster to sid fails. This is also visible in piuparts [1].
>
> Unpacking texlive-base (2020.20201203-2) over (2018.20190227-2) ...
> dpkg: error processing archive
> /tmp/apt-dpkg-install-K7a7FC/07-texlive-base_2020.20201203-2_all.deb
> (--unpack):
> trying to overwrite
> '/usr/share/doc/texlive-doc/generic/iftex/iftex.pdf', which is also in
> package texlive-plain-generic 2018.20190227-2
> dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
> Selecting previously unselected package texlive-plain-generic.
> dpkg: considering deconfiguration of texlive-base, which would be
> broken by installation of texlive-plain-generic ...
> dpkg: yes, will deconfigure texlive-base (broken by
> texlive-plain-generic)
>
> When looking at the package texlive-base it already declares a
>
> Conflicts: (...) texlive-plain-generic (<< 2020.20200417).
>
> Hence I'd expect that old texlive-plain-generic is removed before the
> new texlive-base is installed. What are we doing wrong here?
>
> Hilmar
>
> [1]
> https://piuparts.debian.org/stable2sid/fail/texlive-plain-generic_2020.20201129-2.log
>
If you move files between packages (which appears to be the case here),
then you need Breaks + Replaces to avoid that error. In the example
given, it would be something like:
Breaks: (...) texlive-plain-generic (<< 2020.20200417)
Replaces: (...) texlive-plain-generic (<< 2020.20200417)
Yes, it is WET but that is sadly the way. Conflicts is *not* sufficient
- never has been and never will be.
~Niels
Reply to: