bsdiff: add bsdiff and bspatch tool package
authorHauke Mehrtens <hauke@hauke-m.de>
Sat, 27 Feb 2016 22:59:13 +0000 (22:59 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 27 Feb 2016 22:59:13 +0000 (22:59 +0000)
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

package/utils/bsdiff/Makefile [new file with mode: 0644]
package/utils/bsdiff/patches/001-musl.patch [new file with mode: 0644]

diff --git a/package/utils/bsdiff/Makefile b/package/utils/bsdiff/Makefile
new file mode 100644 (file)
index 0000000..9904b7e
--- /dev/null
@@ -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 (file)
index 0000000..5232bc1
--- /dev/null
@@ -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;