]> err.no Git - dpkg/commitdiff
dpkg (1.2.2); priority=MEDIUM
authorIan Jackson <ian@chiark.chu.cam.ac.uk>
Thu, 23 May 1996 20:31:05 +0000 (21:31 +0100)
committerIan Jackson <ian@chiark.chu.cam.ac.uk>
Thu, 23 May 1996 20:31:05 +0000 (21:31 +0100)
  * Fixed dselect coredump found by Erick Branderhorst (thanks).
  * Sort obsolete removed packages separately, not under Available.

 -- Ian Jackson <ian@chiark.chu.cam.ac.uk>  Thu, 23 May 1996 21:31:05 +0100

debian.Changelog
debian.rules
dselect/pkgdepcon.cc
dselect/pkgdisplay.cc
dselect/pkglist.cc
dselect/pkglist.h

index e7949505a3f4301747936d73a502ddcca60f8da2..744f03276473adbf68246f41d7032451be83601a 100644 (file)
@@ -1,3 +1,10 @@
+dpkg (1.2.2); priority=MEDIUM
+
+  * Fixed dselect coredump found by Erick Branderhorst (thanks).
+  * Sort obsolete removed packages separately, not under Available.
+
+ -- Ian Jackson <ian@chiark.chu.cam.ac.uk>  Thu, 23 May 1996 21:31:05 +0100
+
 dpkg (1.2.1); priority=MEDIUM
 
   * `=' key in dselect really does `hold' rather than `unhold'.
index 737626029ced93b1aadd1f409184ad088778f53d..acaf38b7973486fb71b6d9d8c25f51f3ab6e3967 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/make -f
 
 package=dpkg
-version=1.2.1
+version=1.2.2
 
 archi=$(shell dpkg --print-architecture)
 DIR:=$(shell pwd)
index 75ea43490525412b127d42db5b964e69271cf209..bfe48c985c98a01ca9a925ad58939119fb005a45 100644 (file)
@@ -35,8 +35,9 @@ extern "C" {
 static const int depdebug= 1;
 
 int packagelist::useavailable(pkginfo *pkg) {
-  if (informative(pkg,&pkg->available) &&
+  if (pkg->clientdata &&
       pkg->clientdata->selected == pkginfo::want_install &&
+      informative(pkg,&pkg->available) &&
       (pkg->status != pkginfo::stat_installed ||
        versioncompare(&pkg->available.version,&pkg->installed.version) > 1))
     return 1;
index 89bd9f0f3d7ef4fbcacb302743446427d64b46ac..b024f6722c69dce5ab61662ad6da2c3ebbe15782 100644 (file)
@@ -59,13 +59,15 @@ const char
                          "Updated",
                          "Obsolete/local",
                          "Up-to-date",
-                         "Available" },
+                         "Available",
+                         "Removed" },
   *const ssastrings[]= { "Brokenly installed packages",
                          "Newly available packages",
                          "Updated packages (newer version is available)",
                          "Obsolete and local packages present on system",
                          "Up to date installed packages",
-                         "Available packages (not currently installed)" };
+                         "Available packages (not currently installed)",
+                         "Removed and no longer available packages" };
 
 const char
   *const sssstrings[]= { "Brokenly installed packages",
index dc62597a26870a3fa6c8991731a502aa3f5ec2d5..90ed643f4505bc94427db48b658cbb316c6fd208 100644 (file)
@@ -153,6 +153,7 @@ void packagelist::sortinplace() {
 void packagelist::ensurestatsortinfo() {
   const struct versionrevision *veri;
   const struct versionrevision *vera;
+  struct pkginfo *pkg;
   int index;
   
   if (debug) fprintf(debug,"packagelist[%p]::ensurestatsortinfos() "
@@ -170,7 +171,10 @@ void packagelist::ensurestatsortinfo() {
       if (debug)
         fprintf(debug,"packagelist[%p]::ensurestatsortinfos() i=%d pkg=%s\n",
                 this,index,table[index]->pkg->name);
-      switch (table[index]->pkg->status) {
+      pkg= table[index]->pkg;
+      if (!pkg->installed.valid) blankpackageperfile(&pkg->installed);
+      if (!pkg->available.valid) blankpackageperfile(&pkg->available);
+      switch (pkg->status) {
       case pkginfo::stat_unpacked:
       case pkginfo::stat_halfconfigured:
       case pkginfo::stat_halfinstalled:
@@ -178,9 +182,13 @@ void packagelist::ensurestatsortinfo() {
         break;
       case pkginfo::stat_notinstalled:
       case pkginfo::stat_configfiles:
-        table[index]->ssavail=
-          table[index]->original == pkginfo::want_unknown
-            ? ssa_notinst_unseen : ssa_notinst_seen;
+        if (!informativeversion(&pkg->available.version)) {
+          table[index]->ssavail= ssa_notinst_gone;
+        } else if (table[index]->original == pkginfo::want_unknown) {
+          table[index]->ssavail= ssa_notinst_unseen;
+        } else {
+          table[index]->ssavail= ssa_notinst_seen;
+        }
         break;
       case pkginfo::stat_installed:
         veri= &table[index]->pkg->installed.version;
index 575638be19370e79664c98a35d0d8257ecfd989f..c93db25351d61e38e000745da753286fa306ef84 100644 (file)
@@ -46,6 +46,7 @@ enum ssavailval {        // Availability sorting order, first to last:
   ssa_installed_gone,    //   Installed but no longer available
   ssa_installed_sameold, //   Same or older version available as installed
   ssa_notinst_seen,      //   Available but not installed
+  ssa_notinst_gone,      //   Not available, and only config files left
   ssa_none=-1
 };