]> git.saurik.com Git - apt.git/commitdiff
fix if-clause to generate hook-info for 'rc' packages
authorDavid Kalnischkies <kalnischkies@gmail.com>
Tue, 16 Jul 2013 21:15:55 +0000 (23:15 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Tue, 16 Jul 2013 21:15:55 +0000 (23:15 +0200)
The code incorrectly skips printing of current version information,
if the package has no current version (for APT, but for dpkg as it is
the case for packages which are removed but not purged) by using an
unintended "else if" rather than an "if".

Closes: 717006
apt-pkg/deb/dpkgpm.cc
test/integration/test-bug-712116-dpkg-pre-install-pkgs-hook-multiarch

index fb04735353c85af96b62f20b2c54d4b1b85d8cc2..d8fc8ef68cce46689114165819e9d6466f9e0f96 100644 (file)
@@ -294,7 +294,7 @@ bool pkgDPkgPM::SendPkgsInfo(FILE * const F, unsigned int const &Version)
       if (CurVer.end() == true && (I->Op == Item::Remove || I->Op == Item::Purge))
         CurVer = FindNowVersion(I->Pkg);
 
-      else if (CurVer.end() == true)
+      if (CurVer.end() == true)
       {
         if (Version <= 2)
            fprintf(F, "- ");
index aee44f76b7bcb7cfb77d761c69870fe2b0eac29f..a89cb7191260a87c17a404fb290905be0aaf7ae8 100755 (executable)
@@ -13,6 +13,13 @@ buildsimplenativepackage 'libsame' 'i386,amd64' '2' 'unstable' 'Multi-Arch: same
 buildsimplenativepackage 'stuff' 'i386,amd64' '1' 'stable' 'Depends: libsame (= 1), toolkit (= 1)'
 buildsimplenativepackage 'stuff' 'i386,amd64' '2' 'unstable' 'Depends: libsame (= 2), toolkit (= 2)'
 
+setupsimplenativepackage 'confpkg' 'amd64' '1' 'unstable'
+BUILDDIR='incoming/confpkg-1'
+echo 'foo "bar";' > ${BUILDDIR}/pkg.conf
+echo 'pkg.conf /etc/pkg.conf' >> ${BUILDDIR}/debian/install
+buildpackage "$BUILDDIR" 'unstable' 'main' 'amd64'
+rm -rf "$BUILDDIR"
+
 setupaptarchive
 
 hook='pre-install-pkgs'
@@ -93,3 +100,21 @@ testfileequal "${hook}-v3.list" 'libsame 2 amd64 same > - - none **REMOVE**
 stuff 2 i386 none > - - none **REMOVE**
 libsame 2 i386 same > - - none **REMOVE**
 toolkit 2 amd64 foreign > - - none **REMOVE**'
+
+observehook install confpkg
+testfileequal "${hook}-v2.list" 'confpkg - < 1 **CONFIGURE**'
+testfileequal "${hook}-v3.list" 'confpkg - - none < 1 amd64 none **CONFIGURE**'
+
+observehook remove confpkg
+testfileequal "${hook}-v2.list" 'confpkg 1 > - **REMOVE**'
+testfileequal "${hook}-v3.list" 'confpkg 1 amd64 none > - - none **REMOVE**'
+
+msgtest 'Conffiles of package remained after remove' 'confpkg'
+dpkg -l confpkg | grep -q '^rc' && msgpass || msgfail
+
+observehook purge confpkg
+testfileequal "${hook}-v2.list" 'confpkg 1 > - **REMOVE**'
+testfileequal "${hook}-v3.list" 'confpkg 1 amd64 none > - - none **REMOVE**'
+
+msgtest 'Conffiles are gone after purge' 'confpkg'
+dpkg -l confpkg 2>/dev/null | grep -q '^rc' && msgfail || msgpass