Bug#689813: libgraphite2-3: misses Breaks: libgraphite2-2.0.0
On 2012-10-06 19:44, Rene Engelhard wrote:
> I added a Breaks: libgraphite2-2.0.0 and get this:
>
> rene@frodo:~/Debian/Pakete/graphite2$ sudo dpkg -i libgraphite2-3_1.2.0-2_amd64.deb
> rene@frodo:~/Debian/Pakete/graphite2$ sudo dpkg -i --auto-deconfigure libgraphite2-3_1.2.0-2_amd64.deb
> -> boom.
dpkg is not the right tool to test non-trivial upgrade scenarios.
And Breaks/Replaces are non-trivial.
In a minimal pbuilder sid chroot:
# apt-get install libreoffice-core # that has a Depends: libgraphite2-2.0.0
[...]
# # copy the debs to /tmp/debs and run dpkg-scanpackages there
# echo deb file:///tmp/debs ./ > /etc/apt/sources.list.d/local.list
# apt-get update # make the new packages available
# apt-get install libgraphite2-3
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
libgraphite2-2.0.0
The following NEW packages will be installed:
libgraphite2-3
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 0 B/65.4 kB of archives.
After this operation, 7168 B of additional disk space will be used.
Do you want to continue [Y/n]?
WARNING: The following packages cannot be authenticated!
libgraphite2-3
Install these packages without verification [y/N]? y
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 1.)
debconf: falling back to frontend: Readline
dpkg: libgraphite2-2.0.0: dependency problems, but removing anyway as you requested:
libreoffice-core depends on libgraphite2-2.0.0.
(Reading database ... 18591 files and directories currently installed.)
Removing libgraphite2-2.0.0 ...
Selecting previously unselected package libgraphite2-3.
(Reading database ... 18585 files and directories currently installed.)
Unpacking libgraphite2-3 (from .../libgraphite2-3_1.2.0-1.1_amd64.deb) ...
Setting up libgraphite2-3 (1.2.0-1.1) ...
# l /usr/lib/libgraphite2*
lrwxrwxrwx 1 root root 17 Oct 6 18:34 /usr/lib/libgraphite2.so.2.0.0 -> libgraphite2.so.3
lrwxrwxrwx 1 root root 21 Oct 6 18:34 /usr/lib/libgraphite2.so.3 -> libgraphite2.so.3.0.1
-rw-r--r-- 1 root root 113496 Oct 6 18:34 /usr/lib/libgraphite2.so.3.0.1
# dpkg -s libgraphite2-3
Package: libgraphite2-3
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 125
Maintainer: Debian LibreOffice Team <debian-openoffice@lists.debian.org>
Architecture: amd64
Source: graphite2
Version: 1.2.0-1.1
Replaces: libgraphite2-2.0.0 (<< 1.2.0)
Provides: libgraphite2-2.0.0
Depends: libc6 (>= 2.2.5)
Breaks: libgraphite2-2.0.0 (<< 1.2.0)
Description: Font rendering engine for Complex Scripts -- library
everything is fine :-)
I made both Breaks and Replaces versioned, and apt does the
right thing - removes the obsolete libgraphite2-2.0.0 package
and keeps libreoffice installed
Provides: libgraphite2-2.0.0
-Replaces: libgraphite2-2.0.0
+Replaces: libgraphite2-2.0.0 (<< 1.2.0)
+Breaks: libgraphite2-2.0.0 (<< 1.2.0)
There is only one problem with your upgrade scenario: if only
libgraphite2-2.0.0 is installed, and nothing adds a dependency on
libgraphite2-3, apt sees no reason to install the new library and
keeps the obsolete one installed instead. So you will either need
a transition (binNMU libreoffice, probably sourceful update the two
packages in Suggests, fonts-sil-padauk and grcompiler) or a
transitional package.
Having -dev installed would probably make the difference as it
will add the dependency on 2-3.
Andreas
Reply to: