[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: