From 832251a616b626f834a11ca3f81f30c3fec592d0 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 27 Feb 2016 22:59:13 +0000 Subject: [PATCH] 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 SVN-Revision: 48810 --- package/utils/bsdiff/Makefile | 78 +++++++++++++++++++ package/utils/bsdiff/patches/001-musl.patch | 84 +++++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 package/utils/bsdiff/Makefile create mode 100644 package/utils/bsdiff/patches/001-musl.patch diff --git a/package/utils/bsdiff/Makefile b/package/utils/bsdiff/Makefile new file mode 100644 index 00000000000..9904b7eb87b --- /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 + +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 00000000000..5232bc1fe78 --- /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 + #include + +-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; -- 2.30.2