summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/deb/dpkgpm.cc15
-rwxr-xr-xtest/integration/test-apt-progress-fd12
-rwxr-xr-xtest/integration/test-apt-progress-fd-deb8224
-rwxr-xr-xtest/integration/test-dpkg-assert-multi-arch9
-rwxr-xr-xtest/integration/test-no-fds-leaked-to-maintainer-scripts3
5 files changed, 25 insertions, 18 deletions
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index 4a77942f1..4591049a9 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -1248,15 +1248,28 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
if (RunScriptsWithPkgs("DPkg::Pre-Install-Pkgs") == false)
return false;
+ decltype(List)::const_iterator::difference_type const notconfidx =
+ _config->FindB("Dpkg::ExplicitLastConfigure", false) ? std::numeric_limits<decltype(notconfidx)>::max() :
+ std::distance(List.cbegin(), std::find_if_not(List.crbegin(), List.crend(), [](Item const &i) { return i.Op == Item::Configure; }).base());
+
// support subpressing of triggers processing for special
// cases like d-i that runs the triggers handling manually
bool const TriggersPending = _config->FindB("DPkg::TriggersPending", false);
- if (_config->FindB("DPkg::ConfigurePending", true) == true)
+ bool const ConfigurePending = _config->FindB("DPkg::ConfigurePending", true);
+ if (ConfigurePending)
List.push_back(Item(Item::ConfigurePending, PkgIterator()));
// for the progress
BuildPackagesProgressMap();
+ if (notconfidx != std::numeric_limits<decltype(notconfidx)>::max())
+ {
+ if (ConfigurePending)
+ List.erase(std::next(List.cbegin(), notconfidx), std::prev(List.cend()));
+ else
+ List.erase(std::next(List.cbegin(), notconfidx), List.cend());
+ }
+
d->stdin_is_dev_null = false;
// create log
diff --git a/test/integration/test-apt-progress-fd b/test/integration/test-apt-progress-fd
index 86eaa1354..57728ca81 100755
--- a/test/integration/test-apt-progress-fd
+++ b/test/integration/test-apt-progress-fd
@@ -25,8 +25,7 @@ pmstatus:testing:50.0000:Preparing to configure testing (amd64)
pmstatus:dpkg-exec:50.0000:Running dpkg
pmstatus:testing:50.0000:Configuring testing (amd64)
pmstatus:testing:66.6667:Configuring testing (amd64)
-pmstatus:testing:83.3333:Installed testing (amd64)
-pmstatus:dpkg-exec:83.3333:Running dpkg'
+pmstatus:testing:83.3333:Installed testing (amd64)'
# upgrade
exec 3> apt-progress.log
@@ -41,8 +40,7 @@ pmstatus:testing:50.0000:Preparing to configure testing (amd64)
pmstatus:dpkg-exec:50.0000:Running dpkg
pmstatus:testing:50.0000:Configuring testing (amd64)
pmstatus:testing:66.6667:Configuring testing (amd64)
-pmstatus:testing:83.3333:Installed testing (amd64)
-pmstatus:dpkg-exec:83.3333:Running dpkg'
+pmstatus:testing:83.3333:Installed testing (amd64)'
# reinstall
exec 3> apt-progress.log
@@ -57,8 +55,7 @@ pmstatus:testing:50.0000:Preparing to configure testing (amd64)
pmstatus:dpkg-exec:50.0000:Running dpkg
pmstatus:testing:50.0000:Configuring testing (amd64)
pmstatus:testing:66.6667:Configuring testing (amd64)
-pmstatus:testing:83.3333:Installed testing (amd64)
-pmstatus:dpkg-exec:83.3333:Running dpkg'
+pmstatus:testing:83.3333:Installed testing (amd64)'
# and remove
exec 3> apt-progress.log
@@ -83,7 +80,6 @@ pmstatus:testing2:50.0000:Preparing to configure testing2 (i386)
pmstatus:dpkg-exec:50.0000:Running dpkg
pmstatus:testing2:50.0000:Configuring testing2 (i386)
pmstatus:testing2:66.6667:Configuring testing2 (i386)
-pmstatus:testing2:83.3333:Installed testing2 (i386)
-pmstatus:dpkg-exec:83.3333:Running dpkg'
+pmstatus:testing2:83.3333:Installed testing2 (i386)'
rm -f apt-progress*.log
diff --git a/test/integration/test-apt-progress-fd-deb822 b/test/integration/test-apt-progress-fd-deb822
index a8d59608d..d9a4505d1 100755
--- a/test/integration/test-apt-progress-fd-deb822
+++ b/test/integration/test-apt-progress-fd-deb822
@@ -58,10 +58,6 @@ Status: progress
Package: testing:amd64
Percent: 83.3333
Message: Installed testing (amd64)
-
-Status: progress
-Percent: 83.3333
-Message: Running dpkg
'
rm -f apt-progress*.log
diff --git a/test/integration/test-dpkg-assert-multi-arch b/test/integration/test-dpkg-assert-multi-arch
index f73c78935..14b29ec87 100755
--- a/test/integration/test-dpkg-assert-multi-arch
+++ b/test/integration/test-dpkg-assert-multi-arch
@@ -16,12 +16,15 @@ setupaptarchive
testqualifier() {
msgtest 'Test with' $1 'for correct qualifier mode' $2
- GIVEN="$(aptget install $1 -qq -o Debug::pkgDPkgPM=1 2>&1 | grep -v -- '--unpack' | sed -e 's/^.*--[^u][^ ]* \([^ ]*\).*$/\1/')"
+ #aptget install $1 -qq -o Debug::pkgDPkgPM=1 || true
+ aptget install $1 -qq -o Debug::pkgDPkgPM=1 -o Dpkg::ExplicitLastConfigure=1 > testqualifier.output 2>&1 || true
+ GIVEN="$(grep -v -- '--unpack' testqualifier.output | sed -e 's/^.*--[^u][^ ]* \([^ ]*\).*$/\1/')"
if [ "$GIVEN" = "$2" ]; then
msgpass
else
- echo
- echo "$GIVEN"
+ cat >&2 testqualifier.output
+ echo >&2
+ echo >&2 "$GIVEN"
msgfail
fi
}
diff --git a/test/integration/test-no-fds-leaked-to-maintainer-scripts b/test/integration/test-no-fds-leaked-to-maintainer-scripts
index d86e638cd..56cbff095 100755
--- a/test/integration/test-no-fds-leaked-to-maintainer-scripts
+++ b/test/integration/test-no-fds-leaked-to-maintainer-scripts
@@ -59,8 +59,7 @@ startup packages configure
configure $PKGNAME 1.0 <none>
status unpacked $PKGNAME 1.0
status half-configured $PKGNAME 1.0
-status installed $PKGNAME 1.0
-startup packages configure" cut -f 3- -d' ' rootdir/var/log/dpkg.log
+status installed $PKGNAME 1.0" cut -f 3- -d' ' rootdir/var/log/dpkg.log
}
checkinstall