Some more thoughts about this bug, acquired during Debconf in Heidelberg
after discussions with multiple people (thanks).

1) apt-get could take Recommends into account when ordering the packages
for removal. I will file a (wish-list) bug about that shortly. @
Andreas, I assume you run apt-get with --no-install-recommends (or
similar via options)? I tested with installing recommends and then
apt-get seems to just do the right thing.

2) I am going to update the documentation to describe that we recommend
packages to Depends on their client, to avoid this problem. However, I
still believe that Recommends should also be possible (the Debian
dependency system just isn't very well suited for this use case, but see
point 4).

3) For the use case of Andreas (Andreas, you still didn't answer my
question in the previous e-mail), I think for non-interactive mode I am
just going to ignore this problem during uninstall. So anybody that
wants errors to be handled gracefully, don't purge packages in
non-interactive mode...

4) For the long term I am thinking about restructuring the
dbconfig-common package into multiple packages, e.g. dbconfig-mysql,
dbconfig-pgsql, dbconfig-sqlite, where packages can depend on. Those
dbconfig-* packages could then hard depend on the client. System
administrators that don't want the help of dbconfig-common should then
install dbconfig-no-thanks (or something like that) which must be an
alternative in the depends list of packages that require
dbconfig-common. This way I also solve the issue that dbconfig-common
can't determine at config time if the client will be available at
postinst time. The cost is multiple packages, but I believe it outweighs
the problems it solves. Thanks to AJ for the idea.

Paul

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to