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
This commit is contained in:
Hauke Mehrtens 2016-02-27 22:59:13 +00:00
parent 9a94538272
commit 832251a616
2 changed files with 162 additions and 0 deletions

View file

@ -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))

View file

@ -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;