Package: dpkg Version: 1.0.8 I have three test packages foo (1.0-0), foo (1.0-1) and bar (1.0-0).
Table 1: current interpretation by dpkg Package Version Depends Depends (in words) foo 1.0-0 bar (>1.0-0) bar with version higher than 1.0-0 foo 1.0-1 bar (>1.0-1) bar with version higher than 1.0-1 bar 1.0-0 - If this bar (1.0-0) is installed no version of these foo packages can be installed because they both require higher version of bar than provided. In practice foo (1.0-0) can be installed, foo (1.0-1) can't. The ">" character is misleading and in practice it is interpretated by dpkg as ">=". I would suggest to change the syntax used in Depends/Conflict/Provides/Recommends/Suggest fields into a more intuitive way (Table 2). Table 2: suggested interpretation by dpkg Package Version Depends Depends (in words) foo 1.0-0 bar (>=1.0-0) bar with version higher than or equal to 1.0-0 foo 1.0-1 bar (>1.0-1) bar with version higher than or equal to 1.0-1 bar 1.0-0 - ~~~~~~~~~~~ However, changing this now will break almost every Debian installation. A way to prevent is is to prevent building new packages with Depends/Conflict/etc fields with "<" or ">" in it, and notify the maintainer to change this to "<=" or ">=". Installation rules should remain the same until no more packages have "<" or ">" in it. For consistency a "=" character should be allowed to indicate that the mentioned version is requested. Erick Transcript example below: # dpkg --info bar-1.0-0.deb old debian package, version 0.939000. size 424 bytes: control archive= 242, main archive= 169. 140 bytes, 6 lines control Package: bar Version: 1.0 Package_Revision: 0 Maintainer: Erick Branderhorst <[EMAIL PROTECTED]> Description: bar test package # dpkg --info foo-1.0-0.deb old debian package, version 0.939000. size 443 bytes: control archive= 260, main archive= 170. 162 bytes, 7 lines control Package: foo Version: 1.0 Package_Revision: 0 Maintainer: Erick Branderhorst <[EMAIL PROTECTED]> Description: foo test package Depends: bar (>1.0-0) # dpkg --info foo-1.0-1.deb old debian package, version 0.939000. size 443 bytes: control archive= 261, main archive= 169. 162 bytes, 7 lines control Package: foo Version: 1.0 Package_Revision: 1 Maintainer: Erick Branderhorst <[EMAIL PROTECTED]> Description: foo test package Depends: bar (>1.0-1) # dpkg -i bar-1.0-0.deb Selecting previously deselected package bar. (Reading database ... 22075 files and directories currently installed.) Unpacking bar (from bar-1.0-0.deb) ... Setting up bar ... # dpkg -i foo-1.0-0.deb Selecting previously deselected package foo. (Reading database ... 22076 files and directories currently installed.) Unpacking foo (from foo-1.0-0.deb) ... Setting up foo ... # dpkg -i foo-1.0-1.deb (Reading database ... 22077 files and directories currently installed.) Preparing to replace foo (using foo-1.0-1.deb) ... Unpacking replacement foo ... dpkg: dependency problems prevent configuration of foo: foo depends on bar (>1.0-1); however: Version of bar on system is 1.0-0. dpkg: error processing foo (--install): dependency problems - leaving unconfigured Errors were encountered while processing: foo -- Erick [EMAIL PROTECTED] +31-10-4635142 Department of General Surgery (Intensive Care) University Hospital Rotterdam NL