Преглед изворни кода

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 <[email protected]>

SVN-Revision: 48810
Hauke Mehrtens пре 9 година
родитељ
комит
832251a616
2 измењених фајлова са 162 додато и 0 уклоњено
  1. 78 0
      package/utils/bsdiff/Makefile
  2. 84 0
      package/utils/bsdiff/patches/001-musl.patch

+ 78 - 0
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 <[email protected]>
+
+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))

+ 84 - 0
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;