Print the package name corresponding to a failed script.
[oweals/opkg-lede.git] / libopkg / pkg.c
index 38816d4af6034e8d391e3b696ffc5452e7444b15..265f5541f37c8f98904e2b58f50a3cbea768330c 100644 (file)
@@ -21,6 +21,7 @@
 #include <string.h>
 #include <ctype.h>
 #include <unistd.h>
+#include <libgen.h>
 
 #include "pkg.h"
 
@@ -461,7 +462,7 @@ set_flags_from_control(pkg_t *pkg){
 
      fp = fopen(file_name, "r");
      if (fp == NULL) {
-            opkg_perror(ERROR, "Failed to open %s");
+            opkg_perror(ERROR, "Failed to open %s", file_name);
             free(file_name);
             return;
      }
@@ -713,7 +714,7 @@ pkg_formatted_field(FILE *fp, pkg_t *pkg, const char *field)
      case 'M':
          if (strcasecmp(field, "Maintainer") == 0) {
               if (pkg->maintainer) {
-                   fprintf(fp, "maintainer: %s\n", pkg->maintainer);
+                   fprintf(fp, "Maintainer: %s\n", pkg->maintainer);
               }
          } else if (strcasecmp(field, "MD5sum") == 0) {
               if (pkg->md5sum) {
@@ -1255,7 +1256,7 @@ pkg_run_script(pkg_t *pkg, const char *script, const char *args)
 
      /* XXX: FEATURE: When conf->offline_root is set, we should run the
        maintainer script within a chroot environment. */
-     if (conf->offline_root) {
+     if (conf->offline_root && !conf->force_postinstall) {
           opkg_msg(INFO, "Offline root mode: not running %s.%s.\n",
                          pkg->name, script);
          return 0;
@@ -1298,7 +1299,8 @@ pkg_run_script(pkg_t *pkg, const char *script, const char *args)
      free(cmd);
 
      if (err) {
-         opkg_msg(ERROR, "%s script returned status %d.\n", script, err);
+         opkg_msg(ERROR, "package \"%s\" %s script returned status %d.\n", 
+               pkg->name, script, err);
          return err;
      }