diff options
Diffstat (limited to 'misc/par2cmdline')
-rw-r--r-- | misc/par2cmdline/README | 3 | ||||
-rw-r--r-- | misc/par2cmdline/par2.1 | 284 | ||||
-rw-r--r-- | misc/par2cmdline/par2cmdline.SlackBuild | 83 | ||||
-rw-r--r-- | misc/par2cmdline/par2cmdline.info | 8 | ||||
-rw-r--r-- | misc/par2cmdline/patches/gcc4.patch | 62 | ||||
-rw-r--r-- | misc/par2cmdline/patches/letype.patch | 219 | ||||
-rw-r--r-- | misc/par2cmdline/patches/offset.patch | 16 | ||||
-rw-r--r-- | misc/par2cmdline/patches/precedence.patch | 108 | ||||
-rw-r--r-- | misc/par2cmdline/slack-desc | 2 |
9 files changed, 56 insertions, 729 deletions
diff --git a/misc/par2cmdline/README b/misc/par2cmdline/README index 2e1f55e960..db66c7ad42 100644 --- a/misc/par2cmdline/README +++ b/misc/par2cmdline/README @@ -5,6 +5,3 @@ parity sets to detect damage in files and repair them if necessary. The program uses Reed Solomon Coding to perform its error correction. A useful program for checking and ensuring the integrity of binaries retrieved from usenet for instance. - -Several patches have been included to fix compilation issues on current -platforms. diff --git a/misc/par2cmdline/par2.1 b/misc/par2cmdline/par2.1 deleted file mode 100644 index b10f5e7f09..0000000000 --- a/misc/par2cmdline/par2.1 +++ /dev/null @@ -1,284 +0,0 @@ -.\" -.\" par2(1) -.\" -.\" Copyright (C) 2004 Andres Salomon -.TH par2 1 "May 2004" -.SH NAME -par2 \- PAR 2.0 compatible file verification and repair tool. -.SH SYNOPSIS -.B par2 -c(reate) [options] <par2 file> [files] -.br -.B par2 -v(erify) [options] <par2 file> [files] -.br -.B par2 -r(epair) [options] <par2 file> [files] -.br - -.br - Or: -.br - -.br -.B par2create -[options] <par2 file> [files] -.br -.B par2verify -[options] <par2 file> [files] -.br -.B par2repair -[options] <par2 file> [files] -.SH DESCRIPTION -par2 is a program for creating and using PAR2 files to detect -damage in data files and repair them if necessary. It can be used with -any kind of file. -.SH OPTIONS -.TP -.B -b<n> -Set the Block-Count -.TP -.B -s<n> -Set the Block-Size (Don't use both -b and -s) -.TP -.B -r<n> -Level of Redundancy (%) -.TP -.B -c<n> -Recovery block count (don't use both -r and -c) -.TP -.B -f<n> -First Recovery-Block-Number -.TP -.B -u -Uniform recovery file sizes -.TP -.B -l -Limit size of recovery files (Don't use both -u and -l) -.TP -.B -n<n> -Number of recovery files (Don't use both -n and -l) -.TP -.B -m<n> -Memory (in MB) to use -.TP -.B -v [-v] -Be more verbose -.TP -.B -q [-q] -Be more quiet (-qq gives silence) -.TP -.B -- -Treat all remaining CommandLine as filenames -.TP -.BR -.SH EXAMPLES - -With PAR 2.0 you can create PAR2 recovery files for as few as 1 or as many as -32768 files. If you wanted to create PAR1 recovery files for a single file -you are forced to split the file into muliple parts and RAR is frequently -used for this purpose. You do NOT need to split files with PAR 2.0. - -To create PAR 2 recovery files for a single data file (e.g. one called -test.mpg), you can use the following command: - - par2 create test.mpg - -If test.mpg is an 800 MB file, then this will create a total of 8 PAR2 files -with the following filenames (taking roughly 6 minutes on a PC with a -1500MHz CPU): - - test.mpg.par2 - This is an index file for verification only - test.mpg.vol00+01.par2 - Recovery file with 1 recovery block - test.mpg.vol01+02.par2 - Recovery file with 2 recovery blocks - test.mpg.vol03+04.par2 - Recovery file with 4 recovery blocks - test.mpg.vol07+08.par2 - Recovery file with 8 recovery blocks - test.mpg.vol15+16.par2 - Recovery file with 16 recovery blocks - test.mpg.vol31+32.par2 - Recovery file with 32 recovery blocks - test.mpg.vol63+37.par2 - Recovery file with 37 recovery blocks - -The test.mpg.par2 file is 39 KB in size and the other files vary in size from -443 KB to 15 MB. - -These par2 files will enable the recovery of up to 100 errors totalling 40 MB -of lost or damaged data from the original test.mpg file when it and the par2 -files are posted on UseNet. - -When posting on UseNet it is recommended that you use the "-s" option to set -a blocksize that is equal to the Article size that you will use to post the -data file. If you wanted to post the test.mpg file using an article size -of 300 KB then the command you would type is: - - par2 create -s307200 test.mpg - -This will create 9 PAR2 files instead of 8, and they will be capable of -correcting up to 134 errors totalling 40 MB. It will take roughly 8 minutes -to create the recovery files this time. - -In both of these two examples, the total quantity of recovery data created -was 40 MB (which is 5% of 800 MB). If you wish to create a greater or lesser -quantity of recovery data, you can use the "-r" option. - -To create 10% recovery data instead of the default of 5% and also to use a -block size of 300 KB, you would use the following command: - - par2 create -s307200 -r10 test.mpg - -This would also create 9 PAR2 files, but they would be able to correct up to -269 errors totalling 80 MB. Since twice as much recovery data is created, it -will take about 16 minutes to do so with a 1500MHz CPU. - -The "-u" and "-n" options can be used to control exactly how many recovery -files are created and how the recovery blocks are distributed amoungst them. -They do not affect the total quantity of recovery data created. - -The "-f" option is used when you create additional recovery data. - -e.g. If you have already created 10% and want another 5% then you migh use -the following command: - - par2 create -s307200 -r5 -f300 test.mpg - -This specifies the same block size (which is a requirement for additional -recovery files), 5% recovery data, and a first block number of 300. - -The "-m" option controls how much memory par2 uses. It defaults to -16 MB unless you override it. - -CREATING PAR2 FILES FOR MULTIPLE DATA FILES - -When creating PAR2 recovery files form multiple data files, you must specify -the base filename to use for the par2 files and the names of all of the data -files. - -If test.mpg had been split into multiple RAR files, then you could use: - - par2 create test.mpg.rar.par2 test.mpg.part*.rar - -The files filename "test.mpg.rar.par2" says what you want the par2 files to -be called and "test.mpg.part*.rar" should select all of the RAR files. - -VERIFYING AND REPAIRING - -When using par2 recovery files to verify or repair the data files from -which they were created, you only need to specify the filename of one -of the par2 files to par2. - -e.g.: - - par2 verify test.mpg.par2 - -This tells par2 to use the information in test.mpg.par2 to verify the -data files. - -par2 will automatically search for the other par2 files that were -created and use the information they contain to determine the filenames -of the original data files and then to verify them. - -If all of the data files are ok, then par2 will report that repair -will not be required. - -If any of the data files are missing or damaged, par2 will report -the details of what it has found. If the recovery files contain enough -recovery blocks to repair the damage, you will be told that repair is -possible. Otherwise you will be told exactly how many recovery blocks -will be required in order to repair. - -To carry out a repair use the following command: - - par2 repair test.mpg.par2 - -This tells par2 to verify and if possible repair any damaged or -missing files. If a repair is carried out, then each file which is -repaired will be re-verified to confirm that the repair was successful. - -MISSNAMED AND INCOMPLETE DATA FILES - -If any of the recovery files or data files have the wrong filename, then -par2 will not automatically find and scan them. - -To have par2 scan such files, you must include them on the command -line when attempting to verify or repair. - -e.g.: - - par2 r test.mpg.par2 other.mpg - -This tells par2 to scan the file called other.mpg to see if it -contains any data belonging to the original data files. - -If one of the extra files specified in this way is an exact match -for a data file, then the repair process will rename the file so that -it has the correct filename. - -Because par2 is designed to be able to find good data within a -damaged file, it can do the same with incomplete files downloaded from -UseNet. If some of the articles for a file are missing, you should still -download the file and save it to disk for par2 to scan. If you -do this then you may find that you can carry out a repair in a situation -where you would not otherwise have sufficient recovery data. - -You can have par2 scan all files that are in the current directory -using a command such as: - - par2 r test.mpg.par2 * - -WHAT TO DO WHEN YOU ARE TOLD YOU NEED MORE RECOVERY BLOCKS - -If par2 determines that any of the data files are damaged or -missing and finds that there is insufficient recovery data to effect -a repair, you will be told that you need a certain number of recovery -blocks. You can obtain these by downloading additional recovery files. - -In order to make things easy, par2 files have filenames that tell you -exactly how many recovery blocks each one contains. - -Assuming that the following command was used to create recovery data: - - par2 c -b1000 -r5 test.mpg - -Then the recovery files that are created would be called: - - test.mpg.par2 - test.mpg.vol00+01.par2 - test.mpg.vol01+02.par2 - test.mpg.vol03+04.par2 - test.mpg.vol07+08.par2 - test.mpg.vol15+16.par2 - test.mpg.vol31+19.par2 - -The first file in this list does not contain any recovery data, it only -contains information sufficient to verify the data files. - -Each of the other files contains a different number of recovery blocks. -The number after the '+' sign is the number of recovery blocks and the -number preceding the '+' sign is the block number of the first recovery -block in that file. - -If par2 told you that you needed 10 recovery blocks, then you would -need "test.mpg.vol01+02.par2" and "test.mpg.vol07+08.par". You might of course -choose to fetch "test.mpg.vol15+16.par2" instead (in which case you would have -an extra 6 recovery blocks which would not be used for the repair). - -.SH NOTES - -This version of par2 does not support recording path information for -files. Whilst you can create recovery files for files from multiple locations, -it will expect all files to be in the current directory when verifying and -repairing. This limitation will be corrected in an update. - -.SH REED SOLOMON CODING - -PAR2 uses Reed Solomon Coding to perform its calculations. For details of this -coding technique try the following link: - -``A Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-like Systems'' -<http://www.cs.utk.edu/~plank/plank/papers/CS-96-332.html> - -.SH AUTHOR -.br -.B par2 -was written by Peter Brian Clements <peterbclements@users.sourceforge.net>. - -This man page was contributed by Andres Salomon <dilinger@voxel.net> -for the Debian GNU/Linux system (but may be used by others). diff --git a/misc/par2cmdline/par2cmdline.SlackBuild b/misc/par2cmdline/par2cmdline.SlackBuild index 589783a415..f1101051ea 100644 --- a/misc/par2cmdline/par2cmdline.SlackBuild +++ b/misc/par2cmdline/par2cmdline.SlackBuild @@ -1,12 +1,29 @@ #!/bin/sh # Slackware build script for par2cmdline -# Written by Thomas Morper <thomas@beingboiled.info> -# Thanks to maldoror for the previous version of this script -# Thanks to Debian, Fedora and Gentoo for patches and the man page + +# Copyright 2014, Thomas Morper <thomas@beingboiled.info>, Augsburg, Germany +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PRGNAM=par2cmdline -VERSION=${VERSION:-0.4} +VERSION=${VERSION:-0.6.5} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -43,29 +60,22 @@ rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +tar xvf $CWD/v$VERSION.tar.gz cd $PRGNAM-$VERSION chown -R root:root . find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \ - -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \; - -# Fix wrong permissions -chmod 644 ChangeLog NEWS - -# Make it work with gcc4 -patch -p1 < $CWD/patches/gcc4.patch - -# Fix crash in quiet mode -patch -p1 < $CWD/patches/offset.patch + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; -# Kill warnings (and fix a PPC compilation error) -patch -p1 < $CWD/patches/letype.patch +# Fix permissions. +chmod 644 ChangeLog INSTALL NEWS -# Kill warnings -patch -p1 < $CWD/patches/precedence.patch +# Generate 'configure'. +aclocal +automake --add-missing +autoconf CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ @@ -74,30 +84,39 @@ CXXFLAGS="$SLKCFLAGS" \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --sysconfdir=/etc \ --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ --build=$ARCH-slackware-linux make make check -make install-strip DESTDIR=$PKG - -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a AUTHORS COPYING ChangeLog INSTALL NEWS PORTING README ROADMAP \ - $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +make install DESTDIR=$PKG -# Replace the hardlinks with symlinks +# Replace absolute symlinks with relative ones. cd $PKG/usr/bin rm -f par2create; ln -s par2 par2create rm -f par2repair; ln -s par2 par2repair rm -f par2verify; ln -s par2 par2verify +cd - + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true -# Install the man pages -mkdir -p $PKG/usr/man/man1 -gzip -9 < $CWD/par2.1 > $PKG/usr/man/man1/par2.1.gz +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +# Symlink manpage for the command aliases. cd $PKG/usr/man/man1 ln -s par2.1.gz par2create.1.gz ln -s par2.1.gz par2repair.1.gz ln -s par2.1.gz par2verify.1.gz +cd - + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS PORTING README README.md ROADMAP \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc diff --git a/misc/par2cmdline/par2cmdline.info b/misc/par2cmdline/par2cmdline.info index 67b1dd1959..2de73c62e8 100644 --- a/misc/par2cmdline/par2cmdline.info +++ b/misc/par2cmdline/par2cmdline.info @@ -1,8 +1,8 @@ PRGNAM="par2cmdline" -VERSION="0.4" -HOMEPAGE="http://parchive.sourceforge.net" -DOWNLOAD="http://downloads.sourceforge.net/parchive/par2cmdline-0.4.tar.gz" -MD5SUM="1551b63e57e3c232254dc62073b723a9" +VERSION="0.6.5" +HOMEPAGE="https://github.com/BlackIkeEagle/par2cmdline" +DOWNLOAD="https://github.com/BlackIkeEagle/par2cmdline/archive/v0.6.5.tar.gz" +MD5SUM="31fe6f6daea6644c2a5c0a50ff403c10" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" diff --git a/misc/par2cmdline/patches/gcc4.patch b/misc/par2cmdline/patches/gcc4.patch deleted file mode 100644 index c6da26789e..0000000000 --- a/misc/par2cmdline/patches/gcc4.patch +++ /dev/null @@ -1,62 +0,0 @@ -Fix compilation with gcc-4. - -Patch by Dirk-Jan Heijs. - -http://bugs.gentoo.org/102391 -http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=287904 - ---- par2cmdline-0.4/reedsolomon.cpp -+++ par2cmdline-0.4/reedsolomon.cpp -@@ -51,7 +51,7 @@ - } - } - --bool ReedSolomon<Galois8>::SetInput(const vector<bool> &present) -+template <> bool ReedSolomon<Galois8>::SetInput(const vector<bool> &present) - { - inputcount = (u32)present.size(); - -@@ -80,7 +80,7 @@ - return true; - } - --bool ReedSolomon<Galois8>::SetInput(u32 count) -+template <> bool ReedSolomon<Galois8>::SetInput(u32 count) - { - inputcount = count; - -@@ -101,7 +101,7 @@ - return true; - } - --bool ReedSolomon<Galois8>::Process(size_t size, u32 inputindex, const void *inputbuffer, u32 outputindex, void *outputbuffer) -+template <> bool ReedSolomon<Galois8>::Process(size_t size, u32 inputindex, const void *inputbuffer, u32 outputindex, void *outputbuffer) - { - // Look up the appropriate element in the RS matrix - Galois8 factor = leftmatrix[outputindex * (datapresent + datamissing) + inputindex]; -@@ -189,7 +189,7 @@ - - // Set which of the source files are present and which are missing - // and compute the base values to use for the vandermonde matrix. --bool ReedSolomon<Galois16>::SetInput(const vector<bool> &present) -+template <> bool ReedSolomon<Galois16>::SetInput(const vector<bool> &present) - { - inputcount = (u32)present.size(); - -@@ -233,7 +233,7 @@ - - // Record that the specified number of source files are all present - // and compute the base values to use for the vandermonde matrix. --bool ReedSolomon<Galois16>::SetInput(u32 count) -+template <> bool ReedSolomon<Galois16>::SetInput(u32 count) - { - inputcount = count; - -@@ -267,7 +267,7 @@ - return true; - } - --bool ReedSolomon<Galois16>::Process(size_t size, u32 inputindex, const void *inputbuffer, u32 outputindex, void *outputbuffer) -+template <> bool ReedSolomon<Galois16>::Process(size_t size, u32 inputindex, const void *inputbuffer, u32 outputindex, void *outputbuffer) - { - // Look up the appropriate element in the RS matrix diff --git a/misc/par2cmdline/patches/letype.patch b/misc/par2cmdline/patches/letype.patch deleted file mode 100644 index e0c8d6c57b..0000000000 --- a/misc/par2cmdline/patches/letype.patch +++ /dev/null @@ -1,219 +0,0 @@ -diff -ur par2cmdline-0.4-orig/letype.h par2cmdline-0.4/letype.h ---- par2cmdline-0.4-orig/letype.h 2003-05-26 20:01:17.000000000 +0200 -+++ par2cmdline-0.4/letype.h 2006-05-09 10:47:29.000000000 +0200 -@@ -28,44 +28,15 @@ - - #else - --class leu16 -+struct leu16 - { --public: -- leu16(void); -- -- leu16(const leu16 &other); -- leu16& operator=(const leu16 &other); -- -- leu16(const u16 &other); - leu16& operator=(const u16 &other); - - operator u16(void) const; - --protected: - u16 value; - }; - --inline leu16::leu16(void) --{ --} -- --inline leu16::leu16(const leu16 &other) --: value(other.value) --{ --} -- --inline leu16& leu16::operator =(const leu16 &other) --{ -- value = other.value; -- return *this; --} -- --inline leu16::leu16(const u16 &other) --{ -- ((unsigned char*)&value)[0] = (unsigned char)((other >> 0) & 0xff); -- ((unsigned char*)&value)[1] = (unsigned char)((other >> 8) & 0xff); --} -- - inline leu16& leu16::operator=(const u16 &other) - { - ((unsigned char*)&value)[0] = (unsigned char)((other >> 0) & 0xff); -@@ -81,46 +52,15 @@ - } - - --class leu32 -+struct leu32 - { --public: -- leu32(void); -- -- leu32(const leu32 &other); -- leu32& operator=(const leu32 &other); -- -- leu32(const u32 &other); - leu32& operator=(const u32 &other); - - operator u32(void) const; - --protected: - u32 value; - }; - --inline leu32::leu32(void) --{ --} -- --inline leu32::leu32(const leu32 &other) --: value(other.value) --{ --} -- --inline leu32& leu32::operator =(const leu32 &other) --{ -- value = other.value; -- return *this; --} -- --inline leu32::leu32(const u32 &other) --{ -- ((unsigned char*)&value)[0] = (unsigned char)((other >> 0) & 0xff); -- ((unsigned char*)&value)[1] = (unsigned char)((other >> 8) & 0xff); -- ((unsigned char*)&value)[2] = (unsigned char)((other >> 16) & 0xff); -- ((unsigned char*)&value)[3] = (unsigned char)((other >> 24) & 0xff); --} -- - inline leu32& leu32::operator=(const u32 &other) - { - ((unsigned char*)&value)[0] = (unsigned char)((other >> 0) & 0xff); -@@ -140,50 +80,15 @@ - } - - --class leu64 -+struct leu64 - { --public: -- leu64(void); -- -- leu64(const leu64 &other); -- leu64& operator=(const leu64 &other); -- -- leu64(const u64 &other); - leu64& operator=(const u64 &other); - - operator u64(void) const; - --protected: - u64 value; - }; - --inline leu64::leu64(void) --{ --} -- --inline leu64::leu64(const leu64 &other) --: value(other.value) --{ --} -- --inline leu64& leu64::operator =(const leu64 &other) --{ -- value = other.value; -- return *this; --} -- --inline leu64::leu64(const u64 &other) --{ -- ((unsigned char*)&value)[0] = (unsigned char)((other >> 0) & 0xff); -- ((unsigned char*)&value)[1] = (unsigned char)((other >> 8) & 0xff); -- ((unsigned char*)&value)[2] = (unsigned char)((other >> 16) & 0xff); -- ((unsigned char*)&value)[3] = (unsigned char)((other >> 24) & 0xff); -- ((unsigned char*)&value)[4] = (unsigned char)((other >> 32) & 0xff); -- ((unsigned char*)&value)[5] = (unsigned char)((other >> 40) & 0xff); -- ((unsigned char*)&value)[6] = (unsigned char)((other >> 48) & 0xff); -- ((unsigned char*)&value)[7] = (unsigned char)((other >> 56) & 0xff); --} -- - inline leu64& leu64::operator=(const u64 &other) - { - ((unsigned char*)&value)[0] = (unsigned char)((other >> 0) & 0xff); -diff -ur par2cmdline-0.4-orig/md5.h par2cmdline-0.4/md5.h ---- par2cmdline-0.4-orig/md5.h 2003-08-02 01:41:04.000000000 +0200 -+++ par2cmdline-0.4/md5.h 2006-05-09 10:47:29.000000000 +0200 -@@ -20,6 +20,13 @@ - #ifndef __MD5_H__ - #define __MD5_H__ - -+#ifdef WIN32 -+#pragma pack(push, 1) -+#define PACKED -+#else -+#define PACKED __attribute__ ((packed)) -+#endif -+ - // This file defines the MD5Hash and MD5Context objects which are used - // to compute and manipulate the MD5 Hash values for a block of data. - -@@ -35,12 +42,11 @@ - - // MD5 Hash value - --class MD5Hash --{ --public: -- // Constructor does not initialise the value -- MD5Hash(void) {}; -+struct MD5Hash; -+ostream& operator<<(ostream &s, const MD5Hash &hash); - -+struct MD5Hash -+{ - // Comparison operators - bool operator==(const MD5Hash &other) const; - bool operator!=(const MD5Hash &other) const; -@@ -54,13 +60,8 @@ - friend ostream& operator<<(ostream &s, const MD5Hash &hash); - string print(void) const; - -- // Copy and assignment -- MD5Hash(const MD5Hash &other); -- MD5Hash& operator=(const MD5Hash &other); -- --public: - u8 hash[16]; // 16 byte MD5 Hash value --}; -+} PACKED; - - // Intermediate computation state - -@@ -144,16 +145,9 @@ - return !other.operator<(*this); - } - --inline MD5Hash::MD5Hash(const MD5Hash &other) --{ -- memcpy(&hash, &other.hash, sizeof(hash)); --} -- --inline MD5Hash& MD5Hash::operator=(const MD5Hash &other) --{ -- memcpy(&hash, &other.hash, sizeof(hash)); -- -- return *this; --} -+#ifdef WIN32 -+#pragma pack(pop) -+#endif -+#undef PACKED - - #endif // __MD5_H__ diff --git a/misc/par2cmdline/patches/offset.patch b/misc/par2cmdline/patches/offset.patch deleted file mode 100644 index 6539280668..0000000000 --- a/misc/par2cmdline/patches/offset.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- par2cmdline-0.4.orig/par2creatorsourcefile.cpp 2004-04-15 14:45:23.000000000 +0100 -+++ par2cmdline-0.4/par2creatorsourcefile.cpp 2005-09-29 02:27:43.000000000 +0100 -@@ -213,11 +213,12 @@ - } - } - -+ offset += want; -+ - if (noiselevel > CommandLine::nlQuiet) - { - // Display progress - u32 oldfraction = (u32)(1000 * offset / filesize); -- offset += want; - u32 newfraction = (u32)(1000 * offset / filesize); - if (oldfraction != newfraction) - { diff --git a/misc/par2cmdline/patches/precedence.patch b/misc/par2cmdline/patches/precedence.patch deleted file mode 100644 index 736e9f4a8e..0000000000 --- a/misc/par2cmdline/patches/precedence.patch +++ /dev/null @@ -1,108 +0,0 @@ -This patch just adds some extra parentheses to stop the compiler from -warning about the possible mix-up of operator precedence. - -diff -u -r par2cmdline-0.4-orig/par1repairer.cpp par2cmdline-0.4/par1repairer.cpp ---- par2cmdline-0.4-orig/par1repairer.cpp 2004-04-15 15:40:48.000000000 +0200 -+++ par2cmdline-0.4/par1repairer.cpp 2009-09-08 18:38:15.375114246 +0200 -@@ -324,7 +324,7 @@ - || - (fileheader.datasize && (fileheader.dataoffset < sizeof(fileheader) || fileheader.dataoffset + fileheader.datasize > filesize)) - || -- (fileheader.datasize && (fileheader.filelistoffset <= fileheader.dataoffset && fileheader.dataoffset < fileheader.filelistoffset+fileheader.filelistsize || fileheader.dataoffset <= fileheader.filelistoffset && fileheader.filelistoffset < fileheader.dataoffset + fileheader.datasize))) -+ (fileheader.datasize && ((fileheader.filelistoffset <= fileheader.dataoffset && fileheader.dataoffset < fileheader.filelistoffset+fileheader.filelistsize) || (fileheader.dataoffset <= fileheader.filelistoffset && fileheader.filelistoffset < fileheader.dataoffset + fileheader.datasize)))) - break; - - // Check the size of the file list -@@ -518,9 +518,9 @@ - // Check the the file extension is the correct form - if ((tail[0] == 'P' || tail[0] == 'p') && - ( -- (tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r') -+ ((tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r')) - || -- isdigit(tail[1]) && isdigit(tail[2]) -+ (isdigit(tail[1]) && isdigit(tail[2])) - )) - { - LoadRecoveryFile(filename); -@@ -549,9 +549,9 @@ - // Check the the file extension is the correct form - if ((tail[0] == 'P' || tail[0] == 'p') && - ( -- (tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r') -+ ((tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r')) - || -- isdigit(tail[1]) && isdigit(tail[2]) -+ (isdigit(tail[1]) && isdigit(tail[2])) - )) - { - LoadRecoveryFile(filename); -@@ -652,9 +652,9 @@ - // Check the the file extension is the correct form - if ((tail[0] == 'P' || tail[0] == 'p') && - ( -- (tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r') -+ ((tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r')) - || -- isdigit(tail[1]) && isdigit(tail[2]) -+ (isdigit(tail[1]) && isdigit(tail[2])) - )) - { - skip = true; -diff -u -r par2cmdline-0.4-orig/verificationhashtable.h par2cmdline-0.4/verificationhashtable.h ---- par2cmdline-0.4-orig/verificationhashtable.h 2003-06-03 13:48:52.000000000 +0200 -+++ par2cmdline-0.4/verificationhashtable.h 2009-09-08 18:37:51.945290947 +0200 -@@ -66,11 +66,11 @@ - // Comparison operators for searching - bool operator <(const VerificationHashEntry &r) const - { -- return crc < r.crc || crc == r.crc && hash < r.hash; -+ return crc < r.crc || (crc == r.crc && hash < r.hash); - } - bool operator >(const VerificationHashEntry &r) const - { -- return crc > r.crc || crc == r.crc && hash > r.hash; -+ return crc > r.crc || (crc == r.crc && hash > r.hash); - } - bool operator ==(const VerificationHashEntry &r) const - { -@@ -183,11 +183,11 @@ - - while (entry) - { -- if (entry->crc < crc || entry->crc == crc && entry->hash < hash) -+ if (entry->crc < crc || (entry->crc == crc && entry->hash < hash)) - { - entry = entry->right; - } -- else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) -+ else if (entry->crc > crc || (entry->crc == crc && entry->hash > hash)) - { - entry = entry->left; - } -@@ -402,14 +402,14 @@ - // have already been matched, or ones that are the wrong length - while (currententry && (currententry->SourceFile() != sourcefile || - currententry->IsSet() || -- checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() -+ (checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength()) - ) - ) - { - // If we found an unused entry (which was presumably for the wrong - // source file) remember it (providing it is the correct length). - if (0 == nextentry && !(currententry->IsSet() || -- checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() -+ (checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength()) - ) - ) - { -@@ -426,7 +426,7 @@ - - // Check for an unused entry which is the correct length - while (nextentry && (nextentry->IsSet() || -- checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() -+ (checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength()) - ) - ) - { diff --git a/misc/par2cmdline/slack-desc b/misc/par2cmdline/slack-desc index e503cd3a1a..d25c0d79b9 100644 --- a/misc/par2cmdline/slack-desc +++ b/misc/par2cmdline/slack-desc @@ -14,6 +14,6 @@ par2cmdline: if necessary. The program uses Reed Solomon Coding to perform its par2cmdline: error correction. A useful program for checking and ensuring the par2cmdline: integrity of binaries retrieved from usenet for instance. par2cmdline: -par2cmdline: http://parchive.sourceforge.net/ +par2cmdline: par2cmdline: par2cmdline: |