Parcourir la source

dpkg: Distinguish error reports between archives and packages

Guillem Jover il y a 12 ans
Parent
commit
e6debc6c47
4 fichiers modifiés avec 18 ajouts et 2 suppressions
  1. 2 0
      debian/changelog
  2. 1 1
      src/archives.c
  3. 14 1
      src/errors.c
  4. 1 0
      src/main.h

+ 2 - 0
debian/changelog

@@ -82,6 +82,8 @@ dpkg (1.17.2) UNRELEASED; urgency=low
   * Add new symlink_to_dir command to dpkg-maintscript-helper. Closes: #720712
     Based on a patch by Bastien ROUCARIÈS <roucaries.bastien@gmail.com>.
   * Add new dir_to_symlink command to dpkg-maintscript-helper. Closes: #583585
+  * Distinguish dpkg error reports between errors while processing packages
+    and archives.
 
   [ Updated programs translations ]
   * German (Sven Joachim).

+ 1 - 1
src/archives.c

@@ -1648,7 +1648,7 @@ archivefiles(const char *const *argv)
         break;
       continue;
     }
-    push_error_context_jump(&ejbuf, print_error_perpackage, thisarg);
+    push_error_context_jump(&ejbuf, print_error_perarchive, thisarg);
 
     dpkg_selabel_load();
 

+ 14 - 1
src/errors.c

@@ -81,7 +81,7 @@ print_error_perpackage(const char *emsg, const void *data)
 {
   const char *pkgname = data;
 
-  notice(_("error processing %s (--%s):\n %s"),
+  notice(_("error processing package %s (--%s):\n %s"),
          pkgname, cipaction->olong, emsg);
 
   statusfd_send("status: %s : %s : %s", pkgname, "error", emsg);
@@ -89,6 +89,19 @@ print_error_perpackage(const char *emsg, const void *data)
   enqueue_error_report(pkgname);
 }
 
+void
+print_error_perarchive(const char *emsg, const void *data)
+{
+  const char *filename = data;
+
+  notice(_("error processing archive %s (--%s):\n %s"),
+         filename, cipaction->olong, emsg);
+
+  statusfd_send("status: %s : %s : %s", filename, "error", emsg);
+
+  enqueue_error_report(filename);
+}
+
 int
 reportbroken_retexitstatus(int ret)
 {

+ 1 - 0
src/main.h

@@ -204,6 +204,7 @@ void cu_prermremove(int argc, void **argv);
 /* from errors.c */
 
 void print_error_perpackage(const char *emsg, const void *data);
+void print_error_perarchive(const char *emsg, const void *data);
 void forcibleerr(int forceflag, const char *format, ...) DPKG_ATTR_PRINTF(2);
 int reportbroken_retexitstatus(int ret);
 bool skip_due_to_hold(struct pkginfo *pkg);