diff --git a/.checkpackageignore b/.checkpackageignore
index 0cc742bf0960..98b38a386f01 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -343,7 +343,6 @@ package/brickd/S70brickd Shellcheck lib_sysv.Indent lib_sysv.Variables
 package/bridge-utils/0001-fix-build-on-musl.patch lib_patch.Upstream
 package/brltty/0001-Fix-linking-error-on-mips64el.patch lib_patch.Upstream
 package/brltty/S10brltty Shellcheck lib_sysv.Indent lib_sysv.Variables
-package/bsdiff/0001-Add-missing-header-for-u_char.patch lib_patch.Upstream
 package/bustle/0001-Makefile-fix-pcap-config-call.patch lib_patch.Upstream
 package/busybox/0001-networking-libiproute-use-linux-if_packet.h-instead-.patch lib_patch.Upstream
 package/busybox/0002-Makefile.flags-strip-non-l-arguments-returned-by-pkg.patch lib_patch.Upstream
diff --git a/package/bsdiff/0001-Add-missing-header-for-u_char.patch b/package/bsdiff/0001-Add-missing-header-for-u_char.patch
deleted file mode 100644
index 56affb4102ce..000000000000
--- a/package/bsdiff/0001-Add-missing-header-for-u_char.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-bspatch: Fix missing header <sys/types.h> for u_char
-
-Fixes http://autobuild.buildroot.net/results/31a/31a837cf6e34b02dce498f2b12e40d6d16a5a8e6/
-
-Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
-
-diff -purN bsdiff-4.3.orig/bspatch.c bsdiff-4.3/bspatch.c
---- bsdiff-4.3.orig/bspatch.c	2015-04-30 13:47:26.485903359 +0200
-+++ bsdiff-4.3/bspatch.c	2015-04-30 13:48:14.808908672 +0200
-@@ -35,6 +35,7 @@ __FBSDID("$FreeBSD: src/usr.bin/bsdiff/b
- #include <err.h>
- #include <unistd.h>
- #include <fcntl.h>
-+#include <sys/types.h>
-
- static off_t offtin(u_char *buf)
- {
diff --git a/package/bsdiff/Config.in b/package/bsdiff/Config.in
index 11fd8b9d3523..25295f06e70d 100644
--- a/package/bsdiff/Config.in
+++ b/package/bsdiff/Config.in
@@ -1,8 +1,10 @@
 config BR2_PACKAGE_BSDIFF
 	bool "bsdiff"
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11
 	select BR2_PACKAGE_BZIP2
+	select BR2_PACKAGE_LIBDIVSUFSORT
 	help
 	  Binary patch/diff like xdelta but creates smaller diffs.
 	  Needs bzip2 support.
 
-	  http://www.daemonology.net/bsdiff/
+	  https://android.googlesource.com/platform/external/bsdiff/
diff --git a/package/bsdiff/bsdiff.hash b/package/bsdiff/bsdiff.hash
index 102086b9fc04..e16d32023e1c 100644
--- a/package/bsdiff/bsdiff.hash
+++ b/package/bsdiff/bsdiff.hash
@@ -1,4 +1,3 @@
-# From http://www.daemonology.net/bsdiff/:
-md5  e6d812394f0e0ecc8d5df255aa1db22a  bsdiff-4.3.tar.gz
-# locally computed
-sha256  fc0a6e634ef77dcf14bf36c7b6d1e57ba1ac5c4809073dfaacb3b5f7ab277eb7  bsdiff.c
+# Locally calculated
+sha256  6f84d3b2f0b758a97e79f6294ed84da4cd5c1a2ab0f7cb3d5ed80fc234e09c32  bsdiff-8c17bdc0d759c8e6da90c5f72b052ba2605a0a3a-git4.tar.gz
+sha256  82d5f69a01bd5b3962ddf42f9346aee41ab80bf4cb67ed8a1ede966e8b080c54  README.chromium
diff --git a/package/bsdiff/bsdiff.mk b/package/bsdiff/bsdiff.mk
index 97a1b3921df4..e9ee9fa1b9f2 100644
--- a/package/bsdiff/bsdiff.mk
+++ b/package/bsdiff/bsdiff.mk
@@ -4,23 +4,21 @@
 #
 ################################################################################
 
-BSDIFF_VERSION = 4.3
-BSDIFF_SITE = http://www.daemonology.net/bsdiff
-BSDIFF_DEPENDENCIES = bzip2
+BSDIFF_VERSION = 8c17bdc0d759c8e6da90c5f72b052ba2605a0a3a
+BSDIFF_SITE = https://chromium.googlesource.com/chromiumos/third_party/bsdiff
+BSDIFF_SITE_METHOD = git
+BSDIFF_DEPENDENCIES = bzip2 libdivsufsort
 BSDIFF_LICENSE = BSD-2-Clause
-BSDIFF_LICENSE_FILES = bsdiff.c
+BSDIFF_LICENSE_FILES = README.chromium
 BSDIFF_CPE_ID_VENDOR = daemonology
 
 define BSDIFF_BUILD_CMDS
-	$(TARGET_MAKE_ENV) $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
-		$(@D)/bsdiff.c -lbz2 -o $(@D)/bsdiff
-	$(TARGET_MAKE_ENV) $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
-		$(@D)/bspatch.c -lbz2 -o $(@D)/bspatch
+	$(TARGET_MAKE_ENV)  $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS)
 endef
 
 define BSDIFF_INSTALL_TARGET_CMDS
-	$(INSTALL) -D -m 755 $(@D)/bsdiff $(TARGET_DIR)/usr/bin/bsdiff
-	$(INSTALL) -D -m 755 $(@D)/bspatch $(TARGET_DIR)/usr/bin/bspatch
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) \
+		DESTDIR=$(TARGET_DIR) install
 endef
 
 $(eval $(generic-package))
