Przeglądaj źródła

Update archtable to reflect current archive: Add amd64 and remove
sh. Closes: #367329

Frank Lichtenheld 20 lat temu
rodzic
commit
67ab421510
5 zmienionych plików z 19 dodań i 1 usunięć
  1. 10 0
      ChangeLog
  2. 3 0
      debian/changelog
  3. 0 1
      lib/database.c
  4. 2 0
      src/processarc.c
  5. 4 0
      src/remove.c

+ 10 - 0
ChangeLog

@@ -1,3 +1,13 @@
+2006-05-19  Piotr Engelking  <inkerman42@gmail.com>
+
+	* lib/database.c (informative): Don't regard
+	architecture information alone as informative.
+	* src/processarc.c (process_archive): Also
+	delete origin, bugs and architecture information
+	for disappearing packages.
+	* src/remove.c (removal_bulk): Likewise for
+	removed packages.
+
 2006-05-19  Frank Lichtenheld  <djpig@debian.org>
 
 	* utils/enoent.c: Add a comment at the top of the

+ 3 - 0
debian/changelog

@@ -36,6 +36,9 @@ dpkg (1.13.20~) UNRELEASED; urgency=low
     DPKG_NEW_CONFFILE on sub shells since we actually don't.
   * Fix printing of user defined fields with --showformat and
     document the existance of this feature in dpkg-query man page.
+  * Make --forget-old-unavail more reliable by deleting architecture
+    information of removed packages. Patch by Piotr Engelking.
+    Closes: #208532
 
   [ Nicolas François ]
   * fix typos in the Russian man pages. Thanks to Stepan Golosunov.

+ 0 - 1
lib/database.c

@@ -110,7 +110,6 @@ int informative(struct pkginfo *pkg, struct pkginfoperfile *info) {
       nes(info->bugs) ||
       nes(info->installedsize) ||
       nes(info->source) ||
-      nes(info->architecture) ||
       informativeversion(&info->version) ||
       info->conffiles ||
       info->arbs) return 1;

+ 2 - 0
src/processarc.c

@@ -998,6 +998,8 @@ void process_archive(const char *filename) {
     otherpkg->installed.essential= 0;
     otherpkg->installed.description= otherpkg->installed.maintainer= 0;
     otherpkg->installed.installedsize= otherpkg->installed.source= 0;
+    otherpkg->installed.origin= otherpkg->installed.bugs= 0;
+    otherpkg->installed.architecture= 0;
     otherpkg->installed.conffiles= 0;
     blankversion(&otherpkg->installed.version);
     otherpkg->installed.arbs= 0;

+ 4 - 0
src/remove.c

@@ -245,6 +245,8 @@ static void removal_bulk_remove_files(
       debug(dbg_eachfiledetail, "removal_bulk removing `%s'", fnvb.buf);
       if (!rmdir(fnvb.buf) || errno == ENOENT || errno == ELOOP) continue;
       if (errno == ENOTEMPTY) {
+	debug(dbg_eachfiledetail, "removal_bulk `%s' was not empty, will try again later",
+	      fnvb.buf);
         push_leftover(&leftover,namenode);
         continue;
       } else if (errno == EBUSY || errno == EPERM) {
@@ -579,6 +581,8 @@ void removal_bulk(struct pkginfo *pkg) {
     pkg->installed.essential= 0;
     pkg->installed.description= pkg->installed.maintainer= 0;
     pkg->installed.source= pkg->installed.installedsize= 0;
+    pkg->installed.origin= pkg->installed.bugs= 0;
+    pkg->installed.architecture= 0;
     blankversion(&pkg->installed.version);
     pkg->installed.arbs= 0;
   }