FreeBSD Bugzilla – Attachment 169705 Details for
Bug 209063
misc/bdelta: 0.1.0 -> 0.3.1, change MASTER_SITE
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
bdelta.diff (text/plain), 9.97 KB, created by
Kurt Jaeger
on 2016-04-26 04:30:20 UTC
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Kurt Jaeger
Created:
2016-04-26 04:30:20 UTC
Size:
9.97 KB
patch
obsolete
>diff -r -u -N misc/bdelta/Makefile ../../home/pi/myp/misc/bdelta/Makefile >--- misc/bdelta/Makefile 2015-08-01 00:49:54.642207000 +0200 >+++ ../../home/pi/myp/misc/bdelta/Makefile 2016-04-26 06:29:04.647126000 +0200 >@@ -2,15 +2,22 @@ > # $FreeBSD: head/misc/bdelta/Makefile 361099 2014-07-07 15:31:01Z olgeni $ > > PORTNAME= bdelta >-PORTVERSION= 0.1.0 >+PORTVERSION= 0.3.1 >+DISTVERSIONPREFIX=v > CATEGORIES= misc devel >-MASTER_SITES= SF/deltup/${PORTNAME}/${PORTVERSION} > > MAINTAINER= novel@FreeBSD.org > COMMENT= Advanced delta creator, patcher, and library > >+LICENSE= MPL >+ >+WRKSRC= ${WRKDIR}/BDelta-${PORTVERSION}/src >+ > USES= gmake > USE_LDCONFIG= yes >+USE_GITHUB= yes >+GH_ACCOUNT= jjwhitney >+GH_PROJECT= BDelta > > PLIST_FILES= bin/bdelta bin/bpatch lib/libbdelta.so > >diff -r -u -N misc/bdelta/distinfo ../../home/pi/myp/misc/bdelta/distinfo >--- misc/bdelta/distinfo 2015-08-01 00:49:54.642863000 +0200 >+++ ../../home/pi/myp/misc/bdelta/distinfo 2016-04-26 05:51:18.242014000 +0200 >@@ -1,2 +1,2 @@ >-SHA256 (bdelta-0.1.0.tar.gz) = 7222011d8e3d2955f1ed094a0cc3edde6c681dd82bad5edb829ed68df32cd78d >-SIZE (bdelta-0.1.0.tar.gz) = 7418 >+SHA256 (jjwhitney-BDelta-v0.3.1_GH0.tar.gz) = 0ae5d6ede96d60efca2d142db7ed59af48d3044de5d329cfeaa48727171cd1bc >+SIZE (jjwhitney-BDelta-v0.3.1_GH0.tar.gz) = 14464 >diff -r -u -N misc/bdelta/files/patch-bdelta.cpp ../../home/pi/myp/misc/bdelta/files/patch-bdelta.cpp >--- misc/bdelta/files/patch-bdelta.cpp 1970-01-01 01:00:00.000000000 +0100 >+++ ../../home/pi/myp/misc/bdelta/files/patch-bdelta.cpp 2016-04-26 06:19:55.909705000 +0200 >@@ -0,0 +1,59 @@ >+--- bdelta.cpp.orig 2013-01-30 20:16:01 UTC >++++ bdelta.cpp >+@@ -10,6 +10,8 @@ >+ #include "file.h" >+ #include "compatibility.h" >+ >++#define FEFE >++ >+ const void *f_read(void *f, void *buf, unsigned place, unsigned num) { >+ fseek((FILE *)f, place, SEEK_SET); >+ fread_fixed((FILE *)f, buf, num); >+@@ -103,9 +105,15 @@ int main(int argc, char **argv) { >+ >+ nummatches = bdelta_numMatches(b); >+ >++#ifdef FEFE >++ long long * copyloc1 = new long long[nummatches + 1]; >++ long long * copyloc2 = new long long[nummatches + 1]; >++ unsigned * copynum = new unsigned[nummatches + 1]; >++#else >+ unsigned * copyloc1 = new unsigned[nummatches + 1]; >+ unsigned * copyloc2 = new unsigned[nummatches + 1]; >+ unsigned * copynum = new unsigned[nummatches + 1]; >++#endif >+ >+ FILE *fout = fopen(argv[3], "wb"); >+ if (!fout) { >+@@ -115,7 +123,7 @@ int main(int argc, char **argv) { >+ >+ const char *magic = "BDT"; >+ fwrite_fixed(fout, magic, 3); >+- unsigned short version = 1; >++ unsigned short version = 2; >+ write_word(fout, version); >+ unsigned char intsize = 4; >+ fwrite_fixed(fout, &intsize, 1); >+@@ -129,12 +137,22 @@ int main(int argc, char **argv) { >+ unsigned p1, p2, num; >+ bdelta_getMatch(b, i, &p1, &p2, &num); >+ // printf("%*x, %*x, %*x, %*x\n", 10, p1, 10, p2, 10, num, 10, p2-lastp2); >++#ifdef FEFE >++ copyloc1[i] = (long long)p1 - lastp1; >++ copyloc2[i] = (long long)p2 - lastp2; >++ copynum[i] = num; >++ write_varint(fout, copyloc1[i]); >++ write_varint(fout, copyloc2[i]); >++ write_varint(fout, copynum[i]); >++// printf("%u/%u: (%ld -> %u,%ld -> %u,%u)\n",i,nummatches,copyloc1[i],p1,copyloc2[i],p2,copynum[i]); >++#else >+ copyloc1[i] = p1 - lastp1; >+ write_dword(fout, copyloc1[i]); >+ copyloc2[i] = p2 - lastp2; >+ write_dword(fout, copyloc2[i]); >+ copynum[i] = num; >+ write_dword(fout, copynum[i]); >++#endif >+ lastp1 = p1 + num; >+ lastp2 = p2 + num; >+ } >diff -r -u -N misc/bdelta/files/patch-bpatch.cpp ../../home/pi/myp/misc/bdelta/files/patch-bpatch.cpp >--- misc/bdelta/files/patch-bpatch.cpp 1970-01-01 01:00:00.000000000 +0100 >+++ ../../home/pi/myp/misc/bdelta/files/patch-bpatch.cpp 2016-04-26 06:19:55.916033000 +0200 >@@ -0,0 +1,87 @@ >+--- bpatch.cpp.orig 2013-01-30 20:16:01 UTC >++++ bpatch.cpp >+@@ -7,6 +7,8 @@ >+ #include "file.h" >+ #include "compatibility.h" >+ >++#define FEFE >++ >+ bool copy_bytes_to_file(FILE *infile, FILE *outfile, unsigned numleft) { >+ size_t numread; >+ do { >+@@ -42,10 +44,17 @@ int main(int argc, char **argv) { >+ return 1; >+ } >+ unsigned short version = read_word(patchfile); >++#ifdef FEFE >++ if (version != 1 && version != 2) { >++ printf("unsupported patch version\n"); >++ return 1; >++ } >++#else >+ if (version != 1) { >+ printf("unsupported patch version\n"); >+ return 1; >+ } >++#endif >+ char intsize; >+ fread_fixed(patchfile, &intsize, 1); >+ if (intsize != 4) { >+@@ -57,14 +66,32 @@ int main(int argc, char **argv) { >+ >+ unsigned nummatches = read_dword(patchfile); >+ >++#ifdef FEFE >++ long long * copyloc1 = new long long[nummatches + 1]; >++ long long * copyloc2 = new long long[nummatches + 1]; >++ unsigned * copynum = new unsigned[nummatches + 1]; >++#else >+ unsigned * copyloc1 = new unsigned[nummatches + 1]; >+ unsigned * copyloc2 = new unsigned[nummatches + 1]; >+ unsigned * copynum = new unsigned[nummatches + 1]; >++#endif >+ >+ for (unsigned i = 0; i < nummatches; ++i) { >++#ifdef FEFE >++ if (version==2) { >++ copyloc1[i] = read_varint(patchfile); >++ copyloc2[i] = read_varint(patchfile); >++ copynum[i] = read_varint(patchfile); >++ } else { >+ copyloc1[i] = read_dword(patchfile); >+ copyloc2[i] = read_dword(patchfile); >+ copynum[i] = read_dword(patchfile); >++ } >++#else >++ copyloc1[i] = read_dword(patchfile); >++ copyloc2[i] = read_dword(patchfile); >++ copynum[i] = read_dword(patchfile); >++#endif >+ size2 -= copyloc2[i] + copynum[i]; >+ } >+ if (size2) { >+@@ -77,16 +104,22 @@ int main(int argc, char **argv) { >+ FILE *outfile = fopen(argv[2], "wb"); >+ >+ for (unsigned i = 0; i < nummatches; ++i) { >++// printf("%u/%u: copy %u bytes from patch file ofs %ld (dest ofs %u)\n",i,nummatches,copyloc2[i],ftell(patchfile),ftell(outfile)); >+ if (!copy_bytes_to_file(patchfile, outfile, copyloc2[i])) { >+ printf("Error. patchfile is truncated\n"); >+ return -1; >+ } >+ >+- int copyloc = copyloc1[i]; >++ long long copyloc = copyloc1[i]; >+ fseek(ref, copyloc, SEEK_CUR); >+ >++ long curofs=ftell(ref); >++ >++#ifdef FEFE >++// printf("%u/%u: (%d -> %u,%d -> %u,%u)\n",i,nummatches-1,copyloc,ftell(ref),copyloc2[i],ftell(outfile),copynum[i]); >++#endif >+ if (!copy_bytes_to_file(ref, outfile, copynum[i])) { >+- printf("Error while copying from reference file\n"); >++ printf("Error while copying from reference file (ofs %ld, %u bytes)\n", curofs, copynum[i]); >+ return -1; >+ } >+ } >diff -r -u -N misc/bdelta/files/patch-file.h ../../home/pi/myp/misc/bdelta/files/patch-file.h >--- misc/bdelta/files/patch-file.h 1970-01-01 01:00:00.000000000 +0100 >+++ ../../home/pi/myp/misc/bdelta/files/patch-file.h 2016-04-26 06:19:55.922367000 +0200 >@@ -0,0 +1,87 @@ >+--- file.h.orig 2013-01-30 20:16:01 UTC >++++ file.h >+@@ -3,6 +3,7 @@ >+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ >+ >+ #include <stdio.h> >++#include <cstdlib> >+ >+ #define MAX_IO_BLOCK_SIZE (1024 * 1024) >+ >+@@ -58,6 +59,44 @@ unsigned read_dword(FILE *f) { >+ return (read_word(f) << 16) + low; >+ } >+ >++static size_t scan_varint(const char* in,size_t len, unsigned long long* n) { >++ size_t i; >++ unsigned long long l; >++ if (len==0) return 0; >++ for (l=0, i=0; i<len; ++i) { >++ l+=(unsigned long long)(in[i]&0x7f) << (i*7); >++ if (!(in[i]&0x80)) { >++ *n=l; >++ return i+1; >++ } >++ } >++ return 0; >++} >++ >++size_t scan_pb_type0_sint(const char* in,size_t len,signed long long* l) { >++ unsigned long long m; >++ size_t n=scan_varint(in,len,&m); >++ if (!n) return 0; >++ *l=(-(m&1)) ^ (m>>1); >++ return n; >++} >++ >++long long read_varint(FILE* f) { >++ char buf[20]; >++ size_t i; >++ long long l; >++ for (i=0; i<sizeof(buf); ++i) { >++ fread_fixed(f,buf+i,1); >++ if (!(buf[i]&0x80)) { >++ if (scan_pb_type0_sint(buf,i+1,&l)!=i+1) break; >++ return l; >++ } >++ } >++ static char read_error_message[128]; >++ strcpy(read_error_message, "parse error: read_varint() failed"); >++ throw read_error_message; >++} >++ >+ void write_word(FILE *f, unsigned number) { >+ unsigned char b = number & 255, >+ b2 = number >> 8; >+@@ -70,6 +109,31 @@ void write_dword(FILE *f, unsigned numbe >+ write_word(f, number >> 16); >+ } >+ >++ >++/* write int in least amount of bytes, return number of bytes */ >++/* as used in varints from Google protocol buffers */ >++static size_t fmt_varint(char* dest,unsigned long long l) { >++ /* high bit says if more bytes are coming, lower 7 bits are payload; little endian */ >++ size_t i; >++ for (i=0; l; ++i, l>>=7) { >++ if (dest) dest[i]=(l&0x7f) | ((!!(l&~0x7f))<<7); >++ } >++ if (!i) { /* l was 0 */ >++ if (dest) dest[0]=0; >++ ++i; >++ } >++ return i; >++} >++ >++static size_t fmt_pb_type0_sint(char* dest,signed long long l) { >++ return fmt_varint(dest,(l << 1) ^ (l >> (sizeof(l)*8-1))); >++} >++ >++void write_varint(FILE* f, long long number) { >++ char tmp[20]; >++ fwrite_fixed(f,tmp,fmt_pb_type0_sint(tmp,number)); >++} >++ >+ bool fileExists(char *fname) { >+ FILE *f = fopen(fname, "rb"); >+ bool exists = (f != NULL); >diff -r -u -N misc/bdelta/files/patch-libbdelta.cpp ../../home/pi/myp/misc/bdelta/files/patch-libbdelta.cpp >--- misc/bdelta/files/patch-libbdelta.cpp 1970-01-01 01:00:00.000000000 +0100 >+++ ../../home/pi/myp/misc/bdelta/files/patch-libbdelta.cpp 2016-04-26 06:19:55.926621000 +0200 >@@ -0,0 +1,20 @@ >+--- libbdelta.cpp.orig 2016-04-26 04:19:52 UTC >++++ libbdelta.cpp >+@@ -118,7 +118,7 @@ unsigned match_backward(BDelta_Instance >+ template <class T> >+ inline T prior(T i) {return --i;} >+ template <class T> >+-inline T next(T i) {return ++i;} >++inline T bnext(T i) {return ++i;} >+ >+ >+ struct UnusedRange { >+@@ -421,7 +421,7 @@ void bdelta_pass(BDelta_Instance *b, uns >+ UnusedRange u1 = unused[i], u2 = unused2[i]; >+ if (u1.num >= blocksize && u2.num >= blocksize) >+ if (! maxHoleSize || (u1.num <= maxHoleSize && u2.num <= maxHoleSize)) >+- if (! (flags & BDELTA_SIDES_ORDERED) || (next(u1.ml) == u1.mr && next(u2.ml) == u2.mr)) >++ if (! (flags & BDELTA_SIDES_ORDERED) || (bnext(u1.ml) == u1.mr && bnext(u2.ml) == u2.mr)) >+ bdelta_pass_2(b, blocksize, minMatchSize, &u1, 1, &u2, 1); >+ } >+ }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 209063
: 169705