]> err.no Git - dpkg/commitdiff
Improve log and status-fd output
authorIan Jackson <ian@davenant.greenend.org.uk>
Tue, 25 Mar 2008 05:06:59 +0000 (07:06 +0200)
committerGuillem Jover <guillem@debian.org>
Tue, 25 Mar 2008 05:48:06 +0000 (07:48 +0200)
Add calls to log_message and hook statusfd_send into log_action.

ChangeLog
debian/changelog
man/ChangeLog
man/dpkg.1
src/archives.c
src/configure.c
src/help.c
src/packages.c
src/processarc.c

index 562fdda827c4fc0c765a46b4f3543c2a06251246..457b5c835d7e5b7f8e424b0a84d0ff1ba03c80a6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-03-25  Ian Jackson  <ian@davenant.greenend.org.uk>
+
+       * src/archives.c (archivefiles): Call log_message.
+       * src/configure.c (deferred_configure): Likewise.
+       * src/packages.c (packages): Likewise.
+       * src/processarc.c (process_archive): Call log_action after printing
+       the action to perform to stdout.
+       * src/help.c (log_action): Call statusfd_send.
+
 2008-03-25  Ian Jackson  <ian@davenant.greenend.org.uk>,
             Guillem Jover  <guillem@debian.org>
 
index 2b33bfe4e627cf2dd52f9d987c32ba6130d06764..f28d30f0cec50d702b0c3bf139f30915cee4b971 100644 (file)
@@ -36,6 +36,8 @@ dpkg (1.14.17) UNRELEASED; urgency=low
   * Move test suite invokation to a new check target in debian/rules.
   * Add support for nocheck DEB_BUILD_OPTIONS in debian/rules, so that the
     dpkg test suite can be skept if desired.
+  * Improve log and status-fd output by printing more status change updates
+    and actions. Thanks to Ian Jackson.
 
   [ Raphael Hertzog ]
   * Add a warning displayed by dpkg-genchanges if the current version is
index 586de5de8a08af19a3c86f8a88bce33aa10d30c2..db2ebac59584d3729b3f992f7f642b145e22b79d 100644 (file)
@@ -1,3 +1,7 @@
+2008-03-25  Ian Jackson  <ian@davenant.greenend.org.uk>
+
+       * dpkg.1: Document improved status-fd output.
+
 2008-03-14  Guillem Jover  <guillem@debian.org>
 
        Fix errors spotted by Helge Kreutzmann.
index a49b5de0b9ea3fb9d8d9948e18bbd0df0eedf35e..0adbf135b163bf6f9e57b257612e7b8a212bf76b 100644 (file)
@@ -480,12 +480,30 @@ be marked selected for deinstallation.
 Don't install the package if the same version of the package is already
 installed.
 .TP
-\fB\-\-status\-fd \fP\fI<n>\fP
-Send package status info to file descriptor \fI<n>\fP. This can be given
-multiple times. Status updates are of the form `status: <pkg>: <pkg state>'.
-Errors are reported as `status: <pkg>: error: extend-error-message'.
-Configuration file conflicts are reported as 
-`status: conffile-prompt: conffile : 'current-conffile' 'new-conffile' useredited distedited'.
+\fB\-\-status\-fd \fR\fIn\fR
+Send machine-readable package status and progress information to file
+descriptor \fIn\fP. This option can be specified multiple times. The
+information is generally one record per line, in one of the following
+forms:
+.RS
+.TP
+.BI "status: " package ": " status
+Package status changed; \fIstatus\fR is as in the status file.
+.TP
+.BI "status: " package " : error : " extended-error-message
+An error occurred. Unfortunately at the time of writing
+\fIextended-error-message\fR can contain newlines, although in locales
+where the translators have not made mistakes every newline is followed
+by at least one space.
+.TP
+.BI "status: " file " : conffile-prompt : '" real-old "' '" real-new "' " useredited " " distedited
+User is being asked a configuration file question.
+.TP
+.BI "processing: " stage ": " package
+Sent just before a processing stage starts. \fIstage\fR is one of
+.BR upgrade ", " install " (both sent before unpacking),"
+.BR configure ", " trigproc  ", " remove  ", " purge .
+.RE
 .TP
 \fB\-\-log=\fP\fIfilename\fP
 Log status change updates and actions to \fIfilename\fP, instead of
index c325647faaa1b5e5dcb50e89f70bbf5f94bb1da8..cfd471f23ef00d196f0eb6c5549a98ba40ab1810 100644 (file)
@@ -1088,6 +1088,7 @@ void archivefiles(const char *const *argv) {
                :                               msdbrw_needsuperuser);
 
   checkpath();
+  log_message("startup archives %s", cipaction->olong);
   
   if (f_recursive) {
     
index 8f447fe1cf53056565ee92ea4e17d3d3daa52ebb..4fbdc74c05b2ba145c200d68baf54304dc1202e9 100644 (file)
@@ -132,6 +132,7 @@ void deferred_configure(struct pkginfo *pkg) {
 
        printf(_("Setting up %s (%s) ...\n"),pkg->name,
               versiondescribe(&pkg->installed.version, vdew_nonambig));
+       log_action("configure", pkg);
 
        if (f_noact) {
                pkg->status= stat_installed;
index 2396d39b7796984abdebf0cca9b4ed7c65cb4c2e..67371409c9d2a14fdc6cb1997f3dc35f974e140e 100644 (file)
@@ -490,4 +490,5 @@ void log_action(const char *action, struct pkginfo *pkg) {
   log_message("%s %s %s %s", action, pkg->name,
              versiondescribe(&pkg->installed.version, vdew_nonambig),
              versiondescribe(&pkg->available.version, vdew_nonambig));
+  statusfd_send("processing: %s: %s", action, pkg->name);
 }
index 50f18ec702ddc060fe140aeeadd192267e16dfb4..9d00ef0ee99d06096a8b63c4a5d5cc5ce61da6ef 100644 (file)
@@ -94,6 +94,7 @@ void packages(const char *const *argv) {
                : fc_nonroot ? msdbrw_write
                :              msdbrw_needsuperuser);
   checkpath();
+  log_message("startup packages %s", cipaction->olong);
 
   if (f_pending) {
 
index 271e1b86e3a23b68b44566a382f10612002b7e99..d47a3f48bcf5082dfccb14442d397be2e84b91d8 100644 (file)
@@ -284,11 +284,11 @@ void process_archive(const char *filename) {
   filesdbinit();
   
   if (pkg->status != stat_notinstalled && pkg->status != stat_configfiles) {
-    log_action("upgrade", pkg);
     printf(_("Preparing to replace %s %s (using %s) ...\n"),
            pkg->name,
            versiondescribe(&pkg->installed.version,vdew_nonambig),
            pfilename);
+    log_action("upgrade", pkg);
   } else {
     printf(_("Unpacking %s (from %s) ...\n"),pkg->name,pfilename);
     log_action("install", pkg);