浏览代码

merged from donkult

Michael Vogt 14 年之前
父节点
当前提交
cf4f17a9d8

+ 2 - 9
apt-pkg/packagemanager.cc

@@ -551,14 +551,6 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
       cout << endl;
       cout << endl;
    }
    }
 
 
-   // Check if it is already unpacked
-   if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure &&
-       Cache[Pkg].Keep() == true)
-   {
-      cout << OutputInDepth(Depth) << "SmartUnPack called on Package " << Pkg.Name() << " but its unpacked" << endl;
-      return false;
-   }
- 
    VerIterator const instVer = Cache[Pkg].InstVerIter(Cache);
    VerIterator const instVer = Cache[Pkg].InstVerIter(Cache);
 
 
    /* PreUnpack Checks: This loop checks and attempts to rectify and problems that would prevent the package being unpacked.
    /* PreUnpack Checks: This loop checks and attempts to rectify and problems that would prevent the package being unpacked.
@@ -768,7 +760,8 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
 	    return false;
 	    return false;
       }
       }
    }
    }
-   else if (Install(Pkg,FileNames[Pkg->ID]) == false)
+   // packages which are already unpacked don't need to be unpacked again
+   else if (Pkg.State() != pkgCache::PkgIterator::NeedsConfigure && Install(Pkg,FileNames[Pkg->ID]) == false)
       return false;
       return false;
 
 
    if (Immediate == true) {
    if (Immediate == true) {

+ 9 - 0
debian/changelog

@@ -1,3 +1,12 @@
+apt (0.8.16~exp8) experimental; urgency=low
+
+  [ David Kalnischkies ]
+  * apt-pkg/packagemanager.cc:
+    - do not fail on unpacked packages in SmartUnPack, just don't
+      shedule them for unpack, but do all checks and configure them
+
+ -- David Kalnischkies <kalnischkies@gmail.com>  Mon, 17 Oct 2011 11:21:21 +0200
+
 apt (0.8.16~exp7) experimental; urgency=low
 apt (0.8.16~exp7) experimental; urgency=low
 
 
   [ David Kalnischkies ]
   [ David Kalnischkies ]

+ 18 - 1
test/integration/test-conflicts-loop

@@ -15,4 +15,21 @@ insertpackage 'unstable' 'openjdk-6-jre-headless' 'i386' '6b20-1.9.8-0ubuntu1~10
 
 
 setupaptarchive
 setupaptarchive
 
 
-aptget dist-upgrade -s -o Debug::pkgPackageManager=true -o Debug::pkgDpkgPM=true -o APT::Immediate-Configure-All=true
+testequal 'Reading package lists...
+Building dependency tree...
+The following packages will be upgraded:
+  openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib
+3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+  openjdk-6-jre-lib conflicts with openjdk-6-jre
+    openjdk-6-jre conflicts with openjdk-6-jre-headless
+      openjdk-6-jre-headless conflicts with openjdk-6-jre
+Remv openjdk-6-jre [6b16-1.8-0ubuntu1]
+      openjdk-6-jre-headless conflicts with openjdk-6-jre-lib
+Remv openjdk-6-jre-lib [6b16-1.8-0ubuntu1]
+Inst openjdk-6-jre-headless [6b16-1.8-0ubuntu1] (6b20-1.9.8-0ubuntu1~10.04.1 unstable [i386])
+    openjdk-6-jre conflicts with openjdk-6-jre-lib
+Inst openjdk-6-jre [6b16-1.8-0ubuntu1] (6b20-1.9.8-0ubuntu1~10.04.1 unstable [i386])
+Inst openjdk-6-jre-lib [6b16-1.8-0ubuntu1] (6b20-1.9.8-0ubuntu1~10.04.1 unstable [i386])
+Conf openjdk-6-jre-lib (6b20-1.9.8-0ubuntu1~10.04.1 unstable [i386])
+Conf openjdk-6-jre (6b20-1.9.8-0ubuntu1~10.04.1 unstable [i386])
+Conf openjdk-6-jre-headless (6b20-1.9.8-0ubuntu1~10.04.1 unstable [i386])' aptget dist-upgrade -s -o APT::Immediate-Configure-All=true

+ 7 - 1
test/integration/test-package-reinstallation

@@ -14,4 +14,10 @@ insertinstalledpackage 'apt' 'i386' '0.8.15' 'Depends: libc6'
 
 
 setupaptarchive
 setupaptarchive
 
 
-aptget install --reinstall libc6 libc-bin -s -o Debug::pkgPackageManager=1
+testequal 'Reading package lists...
+Building dependency tree...
+0 upgraded, 0 newly installed, 2 reinstalled, 0 to remove and 0 not upgraded.
+Inst libc-bin [2.13-8] (2.13-8 unstable [i386])
+Conf libc-bin (2.13-8 unstable [i386])
+Inst libc6 [2.13-8] (2.13-8 unstable [i386])
+Conf libc6 (2.13-8 unstable [i386])' aptget install --reinstall libc6 libc-bin -s

+ 1 - 21
test/integration/test-provides-gone-with-upgrade

@@ -13,26 +13,6 @@ Replaces: apt (<< 0.8.15)'
 
 
 setupaptarchive
 setupaptarchive
 
 
-#testequal 'Reading package lists...
-#Building dependency tree...
-#The following NEW packages will be installed:
-#  libapt-pkg4.10
-#The following packages will be upgraded:
-#  apt
-#1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
-#Inst libapt-pkg4.10 (0.8.15 unstable [i386]) [libapt-pkg4.10:i386 on apt:i386] []
-#Conf libapt-pkg4.10:i386 broken
-# Breaks:apt:i386
-# []
-#Inst apt [0.8.14] (0.8.15 unstable [i386])
-#Conf apt (0.8.15 unstable [i386])
-#E: Conf Broken libapt-pkg4.10:i386' 
-aptget dist-upgrade -s -o Debug::pkgPackageManager=1
-# the solution by dpkg will be to deconfigure apt with the configuration of libapt-pkg4.10
-
-exit 0
-
-#FIXME: a good result would be this instead, but it requires that APT can delay his immediate configuration…
 testequal 'Reading package lists...
 testequal 'Reading package lists...
 Building dependency tree...
 Building dependency tree...
 The following NEW packages will be installed:
 The following NEW packages will be installed:
@@ -40,7 +20,7 @@ The following NEW packages will be installed:
 The following packages will be upgraded:
 The following packages will be upgraded:
   apt
   apt
 1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
 1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst apt [0.8.14] (0.8.15 unstable [i386]) []
 Inst libapt-pkg4.10 (0.8.15 unstable [i386])
 Inst libapt-pkg4.10 (0.8.15 unstable [i386])
 Conf libapt-pkg4.10 (0.8.15 unstable [i386])
 Conf libapt-pkg4.10 (0.8.15 unstable [i386])
-Inst apt [0.8.14] (0.8.15 unstable [i386])
 Conf apt (0.8.15 unstable [i386])' aptget dist-upgrade -s
 Conf apt (0.8.15 unstable [i386])' aptget dist-upgrade -s