Summary: | rpm2debpkg should likely use Breaks rather than Conflicts | ||
---|---|---|---|
Product: | ThinLinc | Reporter: | Pierre Ossman <ossman> |
Component: | Build system | Assignee: | Pierre Ossman <ossman> |
Status: | NEW --- | ||
Severity: | Normal | Keywords: | prosaic |
Priority: | P2 | ||
Version: | trunk | ||
Target Milestone: | LowPrio | ||
Hardware: | PC | ||
OS: | Unknown | ||
Acceptance Criteria: |
* The control file in our .debs should have a Replaces:/Breaks: combo for obsoleted packages
* Obsolete should still have the same effect:
* New package is allowed to overwrite files
* Old package is removed to a "config-files" state
* install-server correctly identifies packages being obsoleted (see log)
|
Description
Pierre Ossman
We could see if we can find examples similar to what we've done in Debian's official packages. Also note that the installer currently doesn't have any support for "Breaks", so that needs to be added. (In reply to Pierre Ossman from comment #1) > We could see if we can find examples similar to what we've done in Debian's > official packages. I had a look at wireshark and how they dealt with the rename from ethereal, and found this: > Breaks: ethereal (<< 1.0.0-3), > wireshark (<< 2.0.0~), > wireshark-qt (<< 2.0.0~rc3+g841d5e1) > Replaces: ethereal (<< 1.0.0-3), > wireshark (<< 2.0.0~), > wireshark-qt (<< 2.0.0~rc3+g841d5e1) So Breaks/Replaces seem to indeed be the right combo. Unfortunately this doesn't seem to work in practice. apt is fine with either "Breaks" or "Conflicts". In both cases it realises that the old packages should be removed before the new one is added. However dpkg prints this when using Conflicts: > dpkg: considering removing thinlinc-tladm in favour of thinlinc-server ... > ... But with Breaks it just bails: > dpkg: regarding .../thinlinc-server_4.14.0post-0.unknown_amd64.deb containing thinlinc-server: > thinlinc-server breaks thinlinc-tladm (<< 4.15.0) > thinlinc-tladm (version 4.6.0-5144) is present and installed. > > dpkg: error processing archive ./thinlinc-server_4.14.0post-0.unknown_amd64.deb (--install): > installing thinlinc-server would break thinlinc-tladm, and > deconfiguration is not permitted (--auto-deconfigure might help) > Errors were encountered while processing: > ./thinlinc-server_4.14.0post-0.unknown_amd64.deb So unfortunately Conflicts seems to be the more practical option, even if it isn't the recommended one. |