]> git.saurik.com Git - apt.git/commitdiff
react to trig-pend only if we have nothing else to do
authorDavid Kalnischkies <david@kalnischkies.de>
Fri, 18 Nov 2016 11:04:08 +0000 (12:04 +0100)
committerDavid Kalnischkies <david@kalnischkies.de>
Wed, 23 Nov 2016 15:37:39 +0000 (16:37 +0100)
If a package is triggered dpkg frequently issues two messages about it
causing us to make a note about it both times which messes up our
planned dpkg actions view. Adding these actions if we have nothing else
planned fixes this and should still be correct as those planned actions
will deal with the triggering just fine and we avoid strange problems
like a package triggered before its removed…

apt-pkg/deb/dpkgpm.cc

index 9d1739d68032988ab67247d43e8b9607ab02d0e8..7c41e02b4059f5f3b0d31ad1e4697ec6d0eb0fd7 100644 (file)
@@ -715,18 +715,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(char *line)
    if (prefix == "status")
    {
       std::vector<struct DpkgState> &states = PackageOps[pkgname];
-      if (action == "triggers-pending")
-      {
-        if (Debug == true)
-           std::clog << "(parsed from dpkg) pkg: " << pkgname
-              << " action: " << action << " (prefix 2 to "
-              << PackageOpsDone[pkgname] << " of " << states.size() << ")" << endl;
-
-        states.insert(states.begin(), {"installed", N_("Installed %s")});
-        states.insert(states.begin(), {"half-configured", N_("Configuring %s")});
-        PackagesTotal += 2;
-      }
-      else if(PackageOpsDone[pkgname] < states.size())
+      if(PackageOpsDone[pkgname] < states.size())
       {
         char const * next_action = states[PackageOpsDone[pkgname]].state;
         if (next_action)
@@ -793,6 +782,17 @@ void pkgDPkgPM::ProcessDpkgStatusLine(char *line)
            }
         }
       }
+      else if (action == "triggers-pending")
+      {
+        if (Debug == true)
+           std::clog << "(parsed from dpkg) pkg: " << pkgname
+              << " action: " << action << " (prefix 2 to "
+              << PackageOpsDone[pkgname] << " of " << states.size() << ")" << endl;
+
+        states.insert(states.begin(), {"installed", N_("Installed %s")});
+        states.insert(states.begin(), {"half-configured", N_("Configuring %s")});
+        PackagesTotal += 2;
+      }
    }
 }
                                                                        /*}}}*/