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-openoff...@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


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to