Eugene V. Lyubimkin wrote: > Jonathan Nieder wrote: >> What I meant to achieve is accomplished with Replaces/Provides without >> the Conflicts. Once xz-utils has written over all the files of lzma, >> lzma would be marked as uninstalled, so normally the two packages >> would not be installed at once. >> >> But how to ensure all the files of lzma are overwritten, when newer >> versions could always add more files? [...] > Seems slightly ugly, but 'Breaks: lzma' may help.
I agree, so I won't be using ‘Breaks:’. The more I think about it, the more my solution seems not to be a solution at all. Although xz-utils includes the same files as lzma outside of /usr/share/doc, it would make no sense for xz-utils to include /usr/share/doc/lzma/copyright. Marking xz-utils ‘Replaces: lzma’ allows for a smooth install but does not ensure lzma is uninstalled. Worse still, if one forgets to uninstall lzma and then uninstalls xz-utils, dpkg will think its dependency on lzma is still satisfied. The result is a broken installation. The only sane way to replace a (pseudo-)essential package seems to be the way Sven Joachim indicated, which uses an upgrade of the replaced package to make the scenario in the last paragraph impossible. I don’t want to force XZ Utils on anyone, so I am not inclined to do that. Even making xz-lzma divert /usr/bin/lzma leaves a window of time when there is no /usr/bin/lzma installed. The way forward: 1. Split xz-utils into xz-utils and xz-lzma packages. Users can install xz-utils without encountering all this mess (already done a while ago). Since xz-lzma Provides/Replaces/Conflicts lzma, it cannot be installed, so do not ship it yet. 2. Patch dpkg to use the “xz” command if available. Change its Pre-Depends: to lzma | xz-utils. 3. Start shipping the xz-lzma package, installable at last. It would have been nice to allow xz-lzma and lzma as alternative ways to satisfy dpkg’s dependency without modifying dpkg, but I can’t see any way to do that. Thanks again for all the help, Jonathan -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org