]> git.saurik.com Git - apt.git/commitdiff
* apt-pkg/depcache.cc:
authorDavid Kalnischkies <kalnischkies@gmail.com>
Wed, 29 Sep 2010 17:55:04 +0000 (19:55 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Wed, 29 Sep 2010 17:55:04 +0000 (19:55 +0200)
  - do not check endpointer packages instead of only those which prevented
    NeverAutoRemove settings from having an effect (Closes: #598452)

apt-pkg/depcache.h
debian/changelog
test/integration/framework
test/integration/test-autoremove

index 08e68355814d1ebd66d03bc7257a531dc82d34c1..2d3dbdf77ebb2737fd922633b7389e97e601d2c9 100644 (file)
@@ -189,7 +189,7 @@ class pkgDepCache : protected pkgCache::Namespace
      DefaultRootSetFunc() : Configuration::MatchAgainstConfig("APT::NeverAutoRemove") {};
      virtual ~DefaultRootSetFunc() {};
 
      DefaultRootSetFunc() : Configuration::MatchAgainstConfig("APT::NeverAutoRemove") {};
      virtual ~DefaultRootSetFunc() {};
 
-     bool InRootSet(const pkgCache::PkgIterator &pkg) { return pkg.end() == true && Match(pkg.Name()); };
+     bool InRootSet(const pkgCache::PkgIterator &pkg) { return pkg.end() == false && Match(pkg.Name()); };
    };
 
    struct StateCache
    };
 
    struct StateCache
index 5e13333091bd1c3142508e15556d56ed4c0899bb..bf68f84e13010ef468ad0018a0ea589222fe8ed8 100644 (file)
@@ -6,8 +6,11 @@ apt (0.8.6) UNRELEASED; urgency=low
       available one as it is maybe not an expected language (Closes: #597925)
   * apt-pkg/contrib/strutl.cc:
     - add a space between number and unit as required by SI (Closes: #598352)
       available one as it is maybe not an expected language (Closes: #597925)
   * apt-pkg/contrib/strutl.cc:
     - add a space between number and unit as required by SI (Closes: #598352)
+  * apt-pkg/depcache.cc:
+    - do not check endpointer packages instead of only those which prevented
+      NeverAutoRemove settings from having an effect (Closes: #598452)
 
 
- -- David Kalnischkies <kalnischkies@gmail.com>  Tue, 28 Sep 2010 17:25:22 +0200
+ -- David Kalnischkies <kalnischkies@gmail.com>  Wed, 29 Sep 2010 19:54:45 +0200
 
 apt (0.8.5) unstable; urgency=low
 
 
 apt (0.8.5) unstable; urgency=low
 
index 59d2f0e85e548ad8762514168fe3b13f3af395ae..c09afcbad8752151583b144b47b923a36fd45622 100644 (file)
@@ -499,3 +499,27 @@ testnopackage() {
        fi
        msgpass
 }
        fi
        msgpass
 }
+
+testdpkginstalled() {
+       msgtest "Test for correctly installed package(s) with" "dpkg -l $*"
+       local PKGS="$(dpkg -l $* | grep '^[a-z]' | grep '^[^i]' | wc -l)"
+       if [ "$PKGS" != 0 ]; then
+               echo $PKGS
+               dpkg -l $* | grep '^[a-z]'
+               msgfail
+               return 1
+       fi
+       msgpass
+}
+
+testdpkgnoninstalled() {
+       msgtest "Test for correctly non-installed package(s) with" "dpkg -l $*"
+       local PKGS="$(dpkg -l $* | grep '^[a-z]' | grep '^[^u]' | wc -l)"
+       if [ "$PKGS" != 0 ]; then
+               echo
+               dpkg -l $* | grep '^[a-z]'
+               msgfail
+               return 1
+       fi
+       msgpass
+}
index fb39e979af4cf98a69bdd57f31fe3d854729d271..7127b3d82af83e400898f34ad12be2b5a086ca1a 100755 (executable)
@@ -4,26 +4,50 @@ set -e
 local TESTDIR=$(readlink -f $(dirname $0))
 . $TESTDIR/framework
 setupenvironment
 local TESTDIR=$(readlink -f $(dirname $0))
 . $TESTDIR/framework
 setupenvironment
-configarchitecture "i386"
+configarchitecture 'i386'
 
 
-buildsimplenativepackage "unrelated" "all" "1" "unstable"
-buildsimplenativepackage "po-debconf" "all" "1.0.16" "unstable"
-buildsimplenativepackage "debhelper" "all" "8.0.0" "unstable" "Depends: po-debconf"
+buildsimplenativepackage 'unrelated' 'all' '1' 'unstable'
+buildsimplenativepackage 'po-debconf' 'all' '1.0.16' 'unstable'
+buildsimplenativepackage 'debhelper' 'all' '8.0.0' 'unstable' 'Depends: po-debconf'
 setupaptarchive
 
 aptget install unrelated debhelper -qq 2>&1 > /dev/null
 setupaptarchive
 
 aptget install unrelated debhelper -qq 2>&1 > /dev/null
+testdpkginstalled 'unrelated' 'debhelper' 'po-debconf'
 
 
-testfileequal "rootdir/var/lib/apt/extended_states" "Package: po-debconf
+testfileequal 'rootdir/var/lib/apt/extended_states' 'Package: po-debconf
 Architecture: i386
 Auto-Installed: 1
 Architecture: i386
 Auto-Installed: 1
-"
+'
 aptget remove debhelper -y -qq 2>&1 > /dev/null
 aptget remove debhelper -y -qq 2>&1 > /dev/null
+testdpkgnoninstalled 'debhelper'
+testdpkginstalled 'po-debconf unrelated'
+
+echo 'APT::NeverAutoRemove { "^debc.*nf$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove
+testequal 'Reading package lists...
+Building dependency tree...
+Reading state information...
+The following packages will be REMOVED:
+  po-debconf
+0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
+Remv po-debconf [1.0.16]' aptget autoremove -s
+testdpkginstalled 'po-debconf'
+
+echo 'APT::NeverAutoRemove { "^po-debconf$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove
 aptget autoremove -y -qq 2>&1 > /dev/null
 aptget autoremove -y -qq 2>&1 > /dev/null
+testdpkginstalled 'po-debconf'
 
 
-testfileequal "rootdir/var/lib/apt/extended_states" ""
+echo 'APT::NeverAutoRemove { "^po-.*$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove
+aptget autoremove -y -qq 2>&1 > /dev/null
+testdpkginstalled "po-debconf"
+
+rm rootdir/etc/apt/apt.conf.d/00autoremove
+aptget autoremove -y -qq 2>&1 > /dev/null
+testdpkgnoninstalled 'po-debconf'
+
+testfileequal 'rootdir/var/lib/apt/extended_states' ''
 
 sed -i rootdir/var/log/apt/history.log -e '/^Commandline: / d' -e '/^Start-Date: / d' -e '/^End-Date: / d'
 
 sed -i rootdir/var/log/apt/history.log -e '/^Commandline: / d' -e '/^Start-Date: / d' -e '/^End-Date: / d'
-testfileequal "rootdir/var/log/apt/history.log" '
+testfileequal 'rootdir/var/log/apt/history.log' '
 Install: unrelated:i386 (1), debhelper:i386 (8.0.0), po-debconf:i386 (1.0.16, automatic)
 
 Remove: debhelper:i386 (8.0.0)
 Install: unrelated:i386 (1), debhelper:i386 (8.0.0), po-debconf:i386 (1.0.16, automatic)
 
 Remove: debhelper:i386 (8.0.0)