Help needed with Conflicts/Replaces/Provides after renaming packages and reordering files
Hi,
at request of upstream the freediams package should be reordered. The current
package is in short designet like that:
freediams: arch any files
freediams-data: arch all files consisting of
1. drug database
2. images and other data used by the binary
The new layout should look like this:
freediams: anything except the drug database
1. arch any files as before
2. images and other data used by the binary
freediams-drugs: drug database
As a consequence the new freediams version will at install time try to
override files which were previosely in freediams-data and also
freediams-drugs will override files from the previous freediams-data.
Here is a snippet of the SVN log which was supposed to solve this:
----- Forwarded message from Andreas Tille <tille@alioth.debian.org> -----
Author: tille
Date: 2011-11-30 12:11:51 +0000 (Wed, 30 Nov 2011)
New Revision: 8714
Modified:
trunk/packages/freediams/trunk/debian/control
Log:
try to find a reasonable upgrade path from freediams+freediams-data to freediams+freediams-drugs using a combination of Conflicts/Provides/Replaces but failed. :-(
Modified: trunk/packages/freediams/trunk/debian/control
===================================================================
--- trunk/packages/freediams/trunk/debian/control 2011-11-30 05:20:33 UTC (rev 8713)
+++ trunk/packages/freediams/trunk/debian/control 2011-11-30 12:11:51 UTC (rev 8714)
@@ -16,6 +16,8 @@
Depends: ${shlibs:Depends}, ${misc:Depends}, libqtcore4 (>= 4.4.3), libqtgui4 (>= 4.4.3), libqt4-sql-sqlite, libqt4-xml,
libqt4-network, libqt4-svg, freediams-drugs (= ${source:Version})
Suggests: freediams-doc, ttf-mscorefonts-installer
+Conflicts: freediams-data
+Replaces: freediams-data
Description: Pharmaceutical drugs prescriptor and interactions checker
FreeDiams prescriber is the result of FreeMedForms prescriber plugins
built into a standalone application. It is developed by medical doctors
@@ -35,7 +37,10 @@
Package: freediams-drugs
Architecture: all
Depends: ${misc:Depends}
-Recommends: freediams
+Recommends: freediams (= ${source:Version})
+Conflicts: freediams-data, freediams (<< ${source:Version})
+Replaces: freediams-data
+Provides: freediams-data
Description: Data for pharmaceutical drugs prescriptor and interactions checker FreeDiams
FreeDiams prescriber is the result of FreeMedForms prescriber plugins
built into a standalone application. It is developed by medical doctors
----- End forwarded message -----
However, if I try to install the new packages into an existing
installation I get:
$ LANG= sudo dpkg -i --auto-deconfigure freediams-drugs_0.6.2-1_all.deb freediams_0.6.2-1_amd64.deb
Selecting previously unselected package freediams-drugs.
dpkg: regarding freediams-drugs_0.6.2-1_all.deb containing freediams-drugs:
freediams-drugs conflicts with freediams (<< 0.6.2-1)
freediams (version 0.5.4-1) is present and installed.
dpkg: error processing freediams-drugs_0.6.2-1_all.deb (--install):
conflicting packages - not installing freediams-drugs
dpkg: considering removing freediams-data in favour of freediams ...
dpkg: yes, will remove freediams-data in favour of freediams.
(Reading database ... 375686 files and directories currently installed.)
Preparing to replace freediams 0.5.4-1 (using freediams_0.6.2-1_amd64.deb) ...
De-configuring freediams, to allow removal of freediams-data ...
Unpacking replacement freediams ...
More than one copy of package freediams has been unpacked
in this run ! Only configuring it once.
dpkg: dependency problems prevent configuration of freediams:
freediams depends on freediams-drugs (= 0.6.2-1); however:
Package freediams-drugs is not installed.
dpkg: error processing freediams (--install):
dependency problems - leaving unconfigured
Processing triggers for gnome-menus ...
Processing triggers for desktop-file-utils ...
Processing triggers for man-db ...
Errors were encountered while processing:
freediams-drugs_0.6.2-1_all.deb
freediams
the freediams package is installed without freediams-drugs
$ LANG= apt-cache policy freediams freediams-data freediams-drugs
freediams:
Installed: 0.6.2-1
Candidate: 0.6.2-1
Version table:
*** 0.6.2-1 0
100 /var/lib/dpkg/status
0.6.0-1 0
50 http://ftp.de.debian.org/debian/ unstable/main amd64 Packages
0.5.4-1 0
501 http://debian.tu-bs.de/debian/ testing/main amd64 Packages
freediams-data:
Installed: (none)
Candidate: 0.5.4-1
Version table:
0.6.0-1 0
50 http://ftp.de.debian.org/debian/ unstable/main amd64 Packages
0.5.4-1 0
501 http://debian.tu-bs.de/debian/ testing/main amd64 Packages
freediams-drugs:
Installed: (none)
Candidate: (none)
Version table:
I tried to learn from this by doing
$ svn diff
Index: control
===================================================================
--- control (Revision 8714)
+++ control (Arbeitskopie)
@@ -40,7 +40,6 @@
Recommends: freediams (= ${source:Version})
Conflicts: freediams-data, freediams (<< ${source:Version})
Replaces: freediams-data
-Provides: freediams-data
Description: Data for pharmaceutical drugs prescriptor and interactions checker FreeDiams
FreeDiams prescriber is the result of FreeMedForms prescriber plugins
built into a standalone application. It is developed by medical doctors
which leaded to some other problem instead of solving the issue:
$ LANG= sudo dpkg -i --auto-deconfigure freediams-drugs_0.6.2-1_all.deb freediams_0.6.2-1_amd64.deb
Selecting previously unselected package freediams-drugs.
dpkg: regarding freediams-drugs_0.6.2-1_all.deb containing freediams-drugs:
freediams-drugs conflicts with freediams (<< 0.6.2-1)
freediams (version 0.6.0-1) is present and installed.
dpkg: error processing freediams-drugs_0.6.2-1_all.deb (--install):
conflicting packages - not installing freediams-drugs
dpkg: considering removing freediams-data in favour of freediams ...
dpkg: yes, will remove freediams-data in favour of freediams.
(Reading database ... 376123 files and directories currently installed.)
Preparing to replace freediams 0.6.0-1 (using freediams_0.6.2-1_amd64.deb) ...
De-configuring freediams, to allow removal of freediams-data ...
Unpacking replacement freediams ...
More than one copy of package freediams has been unpacked
in this run ! Only configuring it once.
dpkg: dependency problems prevent configuration of freediams:
freediams depends on freediams-drugs (= 0.6.2-1); however:
Package freediams-drugs is not installed.
dpkg: error processing freediams (--install):
dependency problems - leaving unconfigured
Processing triggers for gnome-menus ...
Processing triggers for desktop-file-utils ...
Processing triggers for man-db ...
Errors were encountered while processing:
freediams-drugs_0.6.2-1_all.deb
freediams
So what is finally to proper combination of Provides/Replaces/Conflicts
to be able to upgrade the package smoothly?
Kind regards
Andreas.
--
http://fam-tille.de
Reply to: