Bug#22690: some observations
Hello,
The very same bug happened to me recently. After some investigation it seems that
the problem is caused by the following:
apache-ssl depends on apache | apache-common but also provides apache (thats
for 1.2.6+1.16-1). In case it remains in unpacked state problems begin.
debug log (a fragment of):
D000400: checking group ...
D000400: checking possibility -> apache
D000400: not installed - returning 0
D000400: checking provider apache-ssl
D000400: unpacked/halfconfigured, defer
D000400: found 1
D000400: checking possibility -> apache-common
D000400: not installed - returning 0
D000400: found 1
D000400: found 1 matched 0
process_queue() calls deferred_configure() which calls dependencies_ok().
Unfortunately dependencies_ok finds that apache-ssl depends on apache (which
is provided by the package inspected itself and hence not configured yet), so it
defers and it loops until dependtry gets over 4.
I am sorry not to have time to study it more in depth so i can't tell whether
apache-ssl description is wrong, but probably it wouldnt be bad to detect that loop.
Proposed patch:
--- dpkg/packages.c.orig Sat Feb 6 22:28:43 1999
+++ dpkg/packages.c Sat Feb 6 22:28:48 1999
@@ -297,8 +297,13 @@
}
if (possdependee->clientdata &&
possdependee->clientdata->istobe == itb_installnew) {
- debug(dbg_depcondetail," unpacked/halfconfigured, defer");
- return 1;
+ if (possdependee == requiredby) {
+ debug(dbg_depcondetail," provided by itself, ok");
+ return 3;
+ } else {
+ debug(dbg_depcondetail," unpacked/halfconfigured, defer");
+ return 1;
+ }
} else if (!removing && fc_configureany && !skip_due_to_hold(possdependee)) {
fprintf(stderr,
_("dpkg: also configuring `%s' (required by `%s')\n"),
Regards,
Peter
--
Peter Kundrat
kundrat@general-it.sk
Reply to: