aboutsummaryrefslogtreecommitdiffstats
path: root/package/utils/bsdiff
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2016-02-27 22:59:13 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2016-02-27 22:59:13 +0000
commit832251a616b626f834a11ca3f81f30c3fec592d0 (patch)
tree61d7657b6eb2cadfd41a09cb425a2bb472b18b36 /package/utils/bsdiff
parent9a945382724f61880fcb7df9e6cb2db4be645598 (diff)
downloadupstream-832251a616b626f834a11ca3f81f30c3fec592d0.tar.gz
upstream-832251a616b626f834a11ca3f81f30c3fec592d0.tar.bz2
upstream-832251a616b626f834a11ca3f81f30c3fec592d0.zip
bsdiff: add bsdiff and bspatch tool package
This will be used to create a diff between the Lantiq annex A and the annex B firmware. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 48810
Diffstat (limited to 'package/utils/bsdiff')
-rw-r--r--package/utils/bsdiff/Makefile78
-rw-r--r--package/utils/bsdiff/patches/001-musl.patch84
2 files changed, 162 insertions, 0 deletions
diff --git a/package/utils/bsdiff/Makefile b/package/utils/bsdiff/Makefile
new file mode 100644
index 0000000000..9904b7eb87
--- /dev/null
+++ b/package/utils/bsdiff/Makefile
@@ -0,0 +1,78 @@
+#
+# Copyright (C) 2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bsdiff
+PKG_VERSION:=4.3
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.daemonology.net/bsdiff/
+PKG_MD5SUM:=e6d812394f0e0ecc8d5df255aa1db22a
+PKG_MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
+
+PKG_LICENSE:=BSD-2-Clause
+
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/bsdiff
+ SECTION:=utils
+ CATEGORY:=Utilities
+ DEPENDS:=+libbz2
+ TITLE:=Binary diff tool
+ URL:=http://www.daemonology.net/bsdiff/
+endef
+
+define Package/bspatch
+ SECTION:=utils
+ CATEGORY:=Utilities
+ DEPENDS:=+libbz2
+ TITLE:=Binary patch tool
+ URL:=http://www.daemonology.net/bsdiff/
+endef
+
+
+define Build/Compile
+ $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
+ -o $(PKG_BUILD_DIR)/bsdiff \
+ $(PKG_BUILD_DIR)/bsdiff.c -lbz2
+ $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
+ -o $(PKG_BUILD_DIR)/bspatch \
+ $(PKG_BUILD_DIR)/bspatch.c -lbz2
+endef
+
+define Package/bsdiff/install
+ $(INSTALL_DIR) $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/bsdiff $(1)/usr/bin/bsdiff
+endef
+
+define Package/bspatch/install
+ $(INSTALL_DIR) $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/bspatch $(1)/usr/bin/bspatch
+endef
+
+define Host/Install
+ $(INSTALL_DIR) $(STAGING_DIR)/host/bin/
+ $(MAKE) -C $(HOST_BUILD_DIR) PREFIX=$(STAGING_DIR)/host/ install
+endef
+
+define Host/Compile
+ $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
+ -o $(HOST_BUILD_DIR)/bsdiff \
+ $(HOST_BUILD_DIR)/bsdiff.c -lbz2
+endef
+
+define Host/Install
+ $(INSTALL_BIN) $(HOST_BUILD_DIR)/bsdiff $(STAGING_DIR)/host/bin/
+endef
+
+$(eval $(call HostBuild))
+
+$(eval $(call BuildPackage,bsdiff))
+$(eval $(call BuildPackage,bspatch))
diff --git a/package/utils/bsdiff/patches/001-musl.patch b/package/utils/bsdiff/patches/001-musl.patch
new file mode 100644
index 0000000000..5232bc1fe7
--- /dev/null
+++ b/package/utils/bsdiff/patches/001-musl.patch
@@ -0,0 +1,84 @@
+--- a/bsdiff.c 2005-08-17 00:13:52.000000000 +0200
++++ b/bsdiff.c 2016-02-21 01:39:31.157915765 +0100
+@@ -101,7 +101,7 @@
+ if(start+len>kk) split(I,V,kk,start+len-kk,h);
+ }
+
+-static void qsufsort(off_t *I,off_t *V,u_char *old,off_t oldsize)
++static void qsufsort(off_t *I,off_t *V,unsigned char *old,off_t oldsize)
+ {
+ off_t buckets[256];
+ off_t i,h,len;
+@@ -139,7 +139,7 @@
+ for(i=0;i<oldsize+1;i++) I[V[i]]=i;
+ }
+
+-static off_t matchlen(u_char *old,off_t oldsize,u_char *new,off_t newsize)
++static off_t matchlen(unsigned char *old,off_t oldsize,unsigned char *new,off_t newsize)
+ {
+ off_t i;
+
+@@ -149,8 +149,8 @@
+ return i;
+ }
+
+-static off_t search(off_t *I,u_char *old,off_t oldsize,
+- u_char *new,off_t newsize,off_t st,off_t en,off_t *pos)
++static off_t search(off_t *I,unsigned char *old,off_t oldsize,
++ unsigned char *new,off_t newsize,off_t st,off_t en,off_t *pos)
+ {
+ off_t x,y;
+
+@@ -175,7 +175,7 @@
+ };
+ }
+
+-static void offtout(off_t x,u_char *buf)
++static void offtout(off_t x,unsigned char *buf)
+ {
+ off_t y;
+
+@@ -196,7 +196,7 @@
+ int main(int argc,char *argv[])
+ {
+ int fd;
+- u_char *old,*new;
++ unsigned char *old,*new;
+ off_t oldsize,newsize;
+ off_t *I,*V;
+ off_t scan,pos,len;
+@@ -206,9 +206,9 @@
+ off_t overlap,Ss,lens;
+ off_t i;
+ off_t dblen,eblen;
+- u_char *db,*eb;
+- u_char buf[8];
+- u_char header[32];
++ unsigned char *db,*eb;
++ unsigned char buf[8];
++ unsigned char header[32];
+ FILE * pf;
+ BZFILE * pfbz2;
+ int bz2err;
+--- a/bspatch.c 2005-08-17 00:14:00.000000000 +0200
++++ b/bspatch.c 2016-02-21 01:39:29.753859970 +0100
+@@ -36,7 +36,7 @@
+ #include <unistd.h>
+ #include <fcntl.h>
+
+-static off_t offtin(u_char *buf)
++static off_t offtin(unsigned char *buf)
+ {
+ off_t y;
+
+@@ -62,8 +62,8 @@
+ int fd;
+ ssize_t oldsize,newsize;
+ ssize_t bzctrllen,bzdatalen;
+- u_char header[32],buf[8];
+- u_char *old, *new;
++ unsigned char header[32],buf[8];
++ unsigned char *old, *new;
+ off_t oldpos,newpos;
+ off_t ctrl[3];
+ off_t lenread;