libopkg: fix --force-checksum to cover sha256sum cases as well
[oweals/opkg-lede.git] / libopkg / opkg_install.c
index 0db0acdf84e7d6f297da9f690e82aa8d4a41e15e..acb7530c863eabb90fa35464a5199fb92e5fba81 100644 (file)
@@ -1364,12 +1364,22 @@ opkg_install_pkg(pkg_t *pkg, int from_upgrade)
          file_sha256 = file_sha256sum_alloc(pkg->local_filename);
          if (file_sha256 && strcmp(file_sha256, pkg->sha256sum))
          {
-              opkg_msg(ERROR, "Package %s sha256sum mismatch. "
-                       "Either the opkg or the package index are corrupt. "
-                       "Try 'opkg update'.\n",
-                       pkg->name);
-              free(file_sha256);
-              return -1;
+              if (!conf->force_checksum)
+              {
+                  opkg_msg(ERROR,
+                           "Package %s sha256sum mismatch. "
+                           "Either the opkg or the package index are corrupt. "
+                           "Try 'opkg update'.\n",
+                           pkg->name);
+                  free(file_sha256);
+                  return -1;
+              }
+              else
+              {
+                  opkg_msg(NOTICE,
+                           "Ignored %s sha256sum mismatch.\n",
+                           pkg->name);
+              }
          }
         if (file_sha256)
               free(file_sha256);