aboutsummaryrefslogtreecommitdiffstats
path: root/package/system
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2015-06-05 14:12:45 +0000
committerJohn Crispin <blogic@openwrt.org>2015-06-05 14:12:45 +0000
commit454a6bcfd14bd565c8faa3037121ff5f90f0b9bb (patch)
tree1c55a24701a8fe9250bbe367ef02ce7889df4ac4 /package/system
parentba5dcb3068ced2b72201aa90e6b7260820782e6d (diff)
downloadupstream-454a6bcfd14bd565c8faa3037121ff5f90f0b9bb.tar.gz
upstream-454a6bcfd14bd565c8faa3037121ff5f90f0b9bb.tar.bz2
upstream-454a6bcfd14bd565c8faa3037121ff5f90f0b9bb.zip
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> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45904 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/system')
-rw-r--r--package/system/opkg/patches/240-fix-force-checksum-for-sha256.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/package/system/opkg/patches/240-fix-force-checksum-for-sha256.patch b/package/system/opkg/patches/240-fix-force-checksum-for-sha256.patch
new file mode 100644
index 0000000000..8af4d4071d
--- /dev/null
+++ b/package/system/opkg/patches/240-fix-force-checksum-for-sha256.patch
@@ -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);