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

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: