wok-current rev 20747
Up par2 (0.8.0)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Feb 10 12:08:41 2019 +0100 (2019-02-10) |
parents | ed2d66b3c838 |
children | e87d1c820fff |
files | linld/stuff/src/ISO9660.CPP linld/stuff/src/ISO9660.H linld/stuff/src/TAZBOOT.CPP par2/receipt par2/stuff/par2cmdline-0.4-gcc4.patch |
line diff
1.1 --- a/linld/stuff/src/ISO9660.CPP Sun Feb 10 10:49:22 2019 +0100 1.2 +++ b/linld/stuff/src/ISO9660.CPP Sun Feb 10 12:08:41 2019 +0100 1.3 @@ -5,6 +5,14 @@ 1.4 1.5 struct isostate isostate; 1.6 1.7 +#if 1 1.8 +#define setdirofs(to,sec) (*(int*)((char*)&(to)+1) = *(int*)&(sec)<<(SECTORBITS-8)) 1.9 +#define cpydirofs(to,from) (*(int*)((char*)&(to)+1) = *(int*)((char*)&(from)+1)) 1.10 +#else 1.11 +#define setdirofs(to,sec) (to = (sec)<<SECTORBITS) 1.12 +#define cpydirofs(to,from) ((to) = (from)) 1.13 +#endif 1.14 + 1.15 int isoreset(char *name) 1.16 { 1.17 static const unsigned long root = 16UL * 2048; 1.18 @@ -17,12 +25,12 @@ 1.19 //close(x->fd); 1.20 return -1; 1.21 } 1.22 - x->dirofs = (* (unsigned long *) (isostate.buffer + 0x9E)) << SECTORBITS; 1.23 + setdirofs(x->dirofs, (* (unsigned long *) (isostate.buffer + 0x9E))); 1.24 x->dirsize = filesize2dirsize(* (unsigned long *) (isostate.buffer + 0xA6)); 1.25 return 0; 1.26 } 1.27 1.28 -int isoreaddir(int restart) 1.29 +int isoreaddir(void) 1.30 { 1.31 int size; 1.32 char *p; 1.33 @@ -31,9 +39,9 @@ 1.34 #endif 1.35 struct isostate *x=&isostate; 1.36 1.37 - if (restart) { 1.38 + if (x->curdirsize == 0xFFFF) { 1.39 x->curdirsize = x->dirsize; 1.40 - x->curdirofs = x->dirofs; 1.41 + cpydirofs(x->curdirofs, x->dirofs); 1.42 goto restarted; 1.43 } 1.44 if (x->curpos >= SECTORSZ || * (short *) (x->buffer + x->curpos) == 0) { 1.45 @@ -102,7 +110,6 @@ 1.46 #define IS_DIR(x)( (*((char*) &x + 1) & (char)0676) == (char)0) 1.47 int isoopen(const char *filename) 1.48 { 1.49 - int restart; 1.50 char *name, *s, c; 1.51 char _64bits = cpuhaslm(); 1.52 struct isostate *x=&isostate; 1.53 @@ -115,7 +122,7 @@ 1.54 for (name = s; *s && *s != '/'; s++); 1.55 c = *s; 1.56 *s = 0; 1.57 - for (restart = 1; isoreaddir(restart) == 0; restart = 0) { 1.58 + for (x->curdirsize = 0xFFFF; isoreaddir() == 0;) { 1.59 const char *n = name, *i = x->filename; 1.60 if (_64bits) { 1.61 if (strhead(i, n)) continue; 1.62 @@ -125,7 +132,7 @@ 1.63 if (strcmp(i, n)) continue; 1.64 *s++ = c; 1.65 if (IS_DIR(x->filemod)) { 1.66 - x->dirofs = x->fileofs; 1.67 + cpydirofs(x->dirofs, x->fileofs); 1.68 x->dirsize = filesize2dirsize(x->filesize); 1.69 if (c) goto next; 1.70 }
2.1 --- a/linld/stuff/src/ISO9660.H Sun Feb 10 10:49:22 2019 +0100 2.2 +++ b/linld/stuff/src/ISO9660.H Sun Feb 10 12:08:41 2019 +0100 2.3 @@ -4,7 +4,7 @@ 2.4 //#define filesize2dirsize(x) (x) 2.5 //#define DIRSECTORSZ SECTORSZ 2.6 typedef unsigned dirsizetype; 2.7 -#define filesize2dirsize(x) (*(unsigned *)((char *)&(x)+1)) 2.8 +#define filesize2dirsize(x) (*(dirsizetype *)((char *)&(x)+1)) 2.9 #define DIRSECTORSZ (SECTORSZ/256) 2.10 extern struct isostate { 2.11 int fd; 2.12 @@ -29,6 +29,6 @@ 2.13 extern _fastcall int isoreadsector(const unsigned long *offset); 2.14 extern int isoreset(char *name); 2.15 extern int isoopen(const char *name); 2.16 -extern int isoreaddir(int restart); 2.17 +extern int isoreaddir(void); 2.18 #define isolabel() do { isofileofs=0x8028; isofilesize=32; } while (0) 2.19 #endif
3.1 --- a/linld/stuff/src/TAZBOOT.CPP Sun Feb 10 10:49:22 2019 +0100 3.2 +++ b/linld/stuff/src/TAZBOOT.CPP Sun Feb 10 12:08:41 2019 +0100 3.3 @@ -69,7 +69,6 @@ 3.4 const char *init = " rdinit=/init.exe", *mode="menu"; 3.5 char c; 3.6 static char rootfs[16], fallback[16], isknoppix, noauto; 3.7 - int restart; 3.8 unsigned long magic; 3.9 struct isostate *x=&isostate; 3.10 3.11 @@ -92,7 +91,7 @@ 3.12 break; 3.13 } 3.14 } while (isoopen("isolinux") >= 0); // Knoppix 3.15 - for (c = 0, restart = 1; isoreaddir(restart) == 0; restart = 0) { 3.16 + for (c = 0, x->curdirsize = 0xFFFF; isoreaddir() == 0;) { 3.17 if (strstr(x->filename, ".gz")) 3.18 strcpy(fallback, x->filename); 3.19 if (strhead(x->filename, "rootfs")
4.1 --- a/par2/receipt Sun Feb 10 10:49:22 2019 +0100 4.2 +++ b/par2/receipt Sun Feb 10 12:08:41 2019 +0100 4.3 @@ -2,25 +2,26 @@ 4.4 4.5 PACKAGE="par2" 4.6 SOURCE="par2cmdline" 4.7 -VERSION="0.4" 4.8 +VERSION="0.8.0" 4.9 CATEGORY="system-tools" 4.10 SHORT_DESC="Utility for posting and recovery of multi-part archives." 4.11 MAINTAINER="pascal.bellard@slitaz.org" 4.12 LICENSE="GPL2" 4.13 TARBALL="$SOURCE-$VERSION.tar.gz" 4.14 WEB_SITE="http://parchive.sourceforge.net/" 4.15 -WGET_URL="$SF_MIRROR/parchive/$TARBALL" 4.16 +WGET_URL="https://github.com/Parchive/par2cmdline/archive/v$VERSION.tar.gz" 4.17 +PROVIDE="par2cmdline" 4.18 4.19 DEPENDS="gcc-lib-base" 4.20 +BUILD_DEPENDS="automake" 4.21 4.22 # Rules to configure and make the package. 4.23 compile_rules() 4.24 { 4.25 - #http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-arch/par2cmdline/files/par2cmdline-0.4-gcc4.patch 4.26 - patch -p1 < $stuff/par2cmdline-0.4-gcc4.patch || true 4.27 - ./configure --prefix=/usr --infodir=/usr/share/info \ 4.28 - --mandir=/usr/share/man \ 4.29 - $CONFIGURE_ARGS && 4.30 + ./automake.sh 4.31 + ./configure --prefix=/usr \ 4.32 + --mandir=/usr/share/man \ 4.33 + $CONFIGURE_ARGS && 4.34 make && 4.35 make DESTDIR=$DESTDIR install 4.36 } 4.37 @@ -28,7 +29,7 @@ 4.38 # Rules to gen a SliTaz package suitable for Tazpkg. 4.39 genpkg_rules() 4.40 { 4.41 - cp -a $install/usr $fs 4.42 - mkdir -p $install/usr/share/doc 4.43 - cp $src/README $src/ROADMAP $install/usr/share/doc 4.44 + mkdir -p $fs/usr/share/doc 4.45 + cp $src/README $fs/usr/share/doc 4.46 + cp -a $install/usr/bin $fs/usr 4.47 }
5.1 --- a/par2/stuff/par2cmdline-0.4-gcc4.patch Sun Feb 10 10:49:22 2019 +0100 5.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 5.3 @@ -1,62 +0,0 @@ 5.4 -Fix compilation with gcc-4. 5.5 - 5.6 -Patch by Dirk-Jan Heijs. 5.7 - 5.8 -http://bugs.gentoo.org/102391 5.9 -http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=287904 5.10 - 5.11 ---- par2cmdline-0.4/reedsolomon.cpp 5.12 -+++ par2cmdline-0.4/reedsolomon.cpp 5.13 -@@ -51,7 +51,7 @@ 5.14 - } 5.15 - } 5.16 - 5.17 --bool ReedSolomon<Galois8>::SetInput(const vector<bool> &present) 5.18 -+template <> bool ReedSolomon<Galois8>::SetInput(const vector<bool> &present) 5.19 - { 5.20 - inputcount = (u32)present.size(); 5.21 - 5.22 -@@ -80,7 +80,7 @@ 5.23 - return true; 5.24 - } 5.25 - 5.26 --bool ReedSolomon<Galois8>::SetInput(u32 count) 5.27 -+template <> bool ReedSolomon<Galois8>::SetInput(u32 count) 5.28 - { 5.29 - inputcount = count; 5.30 - 5.31 -@@ -101,7 +101,7 @@ 5.32 - return true; 5.33 - } 5.34 - 5.35 --bool ReedSolomon<Galois8>::Process(size_t size, u32 inputindex, const void *inputbuffer, u32 outputindex, void *outputbuffer) 5.36 -+template <> bool ReedSolomon<Galois8>::Process(size_t size, u32 inputindex, const void *inputbuffer, u32 outputindex, void *outputbuffer) 5.37 - { 5.38 - // Look up the appropriate element in the RS matrix 5.39 - Galois8 factor = leftmatrix[outputindex * (datapresent + datamissing) + inputindex]; 5.40 -@@ -189,7 +189,7 @@ 5.41 - 5.42 - // Set which of the source files are present and which are missing 5.43 - // and compute the base values to use for the vandermonde matrix. 5.44 --bool ReedSolomon<Galois16>::SetInput(const vector<bool> &present) 5.45 -+template <> bool ReedSolomon<Galois16>::SetInput(const vector<bool> &present) 5.46 - { 5.47 - inputcount = (u32)present.size(); 5.48 - 5.49 -@@ -233,7 +233,7 @@ 5.50 - 5.51 - // Record that the specified number of source files are all present 5.52 - // and compute the base values to use for the vandermonde matrix. 5.53 --bool ReedSolomon<Galois16>::SetInput(u32 count) 5.54 -+template <> bool ReedSolomon<Galois16>::SetInput(u32 count) 5.55 - { 5.56 - inputcount = count; 5.57 - 5.58 -@@ -267,7 +267,7 @@ 5.59 - return true; 5.60 - } 5.61 - 5.62 --bool ReedSolomon<Galois16>::Process(size_t size, u32 inputindex, const void *inputbuffer, u32 outputindex, void *outputbuffer) 5.63 -+template <> bool ReedSolomon<Galois16>::Process(size_t size, u32 inputindex, const void *inputbuffer, u32 outputindex, void *outputbuffer) 5.64 - { 5.65 - // Look up the appropriate element in the RS matrix