]> git.saurik.com Git - apt.git/commitdiff
call dpkg with --no-triggers by default
authorDavid Kalnischkies <david@kalnischkies.de>
Thu, 21 Jul 2016 14:33:01 +0000 (16:33 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Wed, 10 Aug 2016 21:18:04 +0000 (23:18 +0200)
Implemented a long while ago now with relatively good progress reporting
involving triggers is a good time to try delaying the execution of
triggers across dpkg invocations finally by default.

Note: The bugreport talks also about 'smarter' configuration which is a
much bigger part and approached from multiple directions, but doesn't
really involve triggers per-se so considering it decoupled should help
in getting it doneā€¦

Closes: #626599
apt-pkg/deb/dpkgpm.cc

index bc34e50e03a4b8faddd458c0cfd2e84cb036f09b..e4f9550b0337ad1c9773dea103ba154a275fe339 100644 (file)
@@ -1303,7 +1303,7 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
       OSArgMax = 32*1024;
    OSArgMax -= EnvironmentSize() - 2*1024;
    unsigned int const MaxArgBytes = _config->FindI("Dpkg::MaxArgBytes", OSArgMax);
-   bool const NoTriggers = _config->FindB("DPkg::NoTriggers", false);
+   bool const NoTriggers = _config->FindB("DPkg::NoTriggers", true);
 
    if (RunScripts("DPkg::Pre-Invoke") == false)
       return false;
@@ -1474,6 +1474,12 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
       ADDARG(status_fd_buf);
       unsigned long const Op = I->Op;
 
+      if (NoTriggers == true && I->Op != Item::TriggersPending &&
+         I->Op != Item::ConfigurePending)
+      {
+        ADDARGC("--no-triggers");
+      }
+
       switch (I->Op)
       {
         case Item::Remove:
@@ -1520,11 +1526,6 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
         break;
       }
 
-      if (NoTriggers == true && I->Op != Item::TriggersPending &&
-         I->Op != Item::ConfigurePending)
-      {
-        ADDARGC("--no-triggers");
-      }
       char * tmpdir_to_free = nullptr;
 
       // Write in the file or package names