opkg: Fix --force-checksum when using SHA256

Allow installing packages with mismatching SHA256 checksums via

$ opkg install --force-checksum $PACKAGE

Signed-off-by: Florian Fieber <florian@florianfieber.de>

SVN-Revision: 45904
This commit is contained in:
John Crispin 2015-06-05 14:12:45 +00:00
parent 7d8de52d4d
commit 72eb909a0d

View file

@ -0,0 +1,31 @@
--- a/libopkg/opkg_install.c
+++ b/libopkg/opkg_install.c
@@ -1364,12 +1364,22 @@ opkg_install_pkg(pkg_t *pkg, int from_up
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);