diff options
-rw-r--r-- | app-arch/par2cmdline/ChangeLog | 12 | ||||
-rw-r--r-- | app-arch/par2cmdline/files/digest-par2cmdline-0.4 | 2 | ||||
-rw-r--r-- | app-arch/par2cmdline/files/digest-par2cmdline-0.4-r1 | 2 | ||||
-rw-r--r-- | app-arch/par2cmdline/files/digest-par2cmdline-0.4-r2 | 3 | ||||
-rw-r--r-- | app-arch/par2cmdline/files/par2cmdline-0.4-letype.patch | 219 | ||||
-rw-r--r-- | app-arch/par2cmdline/files/par2cmdline-0.4-offset.patch | 16 | ||||
-rw-r--r-- | app-arch/par2cmdline/files/par2cmdline-0.4-wildcard-fix.patch | 92 | ||||
-rw-r--r-- | app-arch/par2cmdline/par2cmdline-0.4-r2.ebuild | 35 |
8 files changed, 307 insertions, 74 deletions
diff --git a/app-arch/par2cmdline/ChangeLog b/app-arch/par2cmdline/ChangeLog index fb1dae5bc131..a935be816ce7 100644 --- a/app-arch/par2cmdline/ChangeLog +++ b/app-arch/par2cmdline/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for app-arch/par2cmdline -# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-arch/par2cmdline/ChangeLog,v 1.13 2005/08/22 04:02:00 swegener Exp $ +# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/app-arch/par2cmdline/ChangeLog,v 1.14 2006/09/24 19:30:39 swegener Exp $ + +*par2cmdline-0.4-r2 (24 Sep 2006) + + 24 Sep 2006; Sven Wegener <swegener@gentoo.org> + +files/par2cmdline-0.4-letype.patch, +files/par2cmdline-0.4-offset.patch, + files/par2cmdline-0.4-wildcard-fix.patch, +par2cmdline-0.4-r2.ebuild: + Revision bump, include an update wildcard fix, a fix from debian and a fix + from fedora, bugs #129093, #144410 and #137092. 22 Aug 2005; Sven Wegener <swegener@gentoo.org> par2cmdline-0.4-r1.ebuild: Replace hardlinks with symlinks. diff --git a/app-arch/par2cmdline/files/digest-par2cmdline-0.4 b/app-arch/par2cmdline/files/digest-par2cmdline-0.4 index baa9c66a199c..904aac66aafb 100644 --- a/app-arch/par2cmdline/files/digest-par2cmdline-0.4 +++ b/app-arch/par2cmdline/files/digest-par2cmdline-0.4 @@ -1 +1,3 @@ MD5 1551b63e57e3c232254dc62073b723a9 par2cmdline-0.4.tar.gz 239312 +RMD160 e98dc84fa7a4304b8d71c1d373fdce0bca1e6290 par2cmdline-0.4.tar.gz 239312 +SHA256 9e32b7dbcf7bca8249f98824757d4868714156fe2276516504cd26f736e9f677 par2cmdline-0.4.tar.gz 239312 diff --git a/app-arch/par2cmdline/files/digest-par2cmdline-0.4-r1 b/app-arch/par2cmdline/files/digest-par2cmdline-0.4-r1 index baa9c66a199c..904aac66aafb 100644 --- a/app-arch/par2cmdline/files/digest-par2cmdline-0.4-r1 +++ b/app-arch/par2cmdline/files/digest-par2cmdline-0.4-r1 @@ -1 +1,3 @@ MD5 1551b63e57e3c232254dc62073b723a9 par2cmdline-0.4.tar.gz 239312 +RMD160 e98dc84fa7a4304b8d71c1d373fdce0bca1e6290 par2cmdline-0.4.tar.gz 239312 +SHA256 9e32b7dbcf7bca8249f98824757d4868714156fe2276516504cd26f736e9f677 par2cmdline-0.4.tar.gz 239312 diff --git a/app-arch/par2cmdline/files/digest-par2cmdline-0.4-r2 b/app-arch/par2cmdline/files/digest-par2cmdline-0.4-r2 new file mode 100644 index 000000000000..904aac66aafb --- /dev/null +++ b/app-arch/par2cmdline/files/digest-par2cmdline-0.4-r2 @@ -0,0 +1,3 @@ +MD5 1551b63e57e3c232254dc62073b723a9 par2cmdline-0.4.tar.gz 239312 +RMD160 e98dc84fa7a4304b8d71c1d373fdce0bca1e6290 par2cmdline-0.4.tar.gz 239312 +SHA256 9e32b7dbcf7bca8249f98824757d4868714156fe2276516504cd26f736e9f677 par2cmdline-0.4.tar.gz 239312 diff --git a/app-arch/par2cmdline/files/par2cmdline-0.4-letype.patch b/app-arch/par2cmdline/files/par2cmdline-0.4-letype.patch new file mode 100644 index 000000000000..e0c8d6c57b74 --- /dev/null +++ b/app-arch/par2cmdline/files/par2cmdline-0.4-letype.patch @@ -0,0 +1,219 @@ +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/app-arch/par2cmdline/files/par2cmdline-0.4-offset.patch b/app-arch/par2cmdline/files/par2cmdline-0.4-offset.patch new file mode 100644 index 000000000000..653928066807 --- /dev/null +++ b/app-arch/par2cmdline/files/par2cmdline-0.4-offset.patch @@ -0,0 +1,16 @@ +--- 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/app-arch/par2cmdline/files/par2cmdline-0.4-wildcard-fix.patch b/app-arch/par2cmdline/files/par2cmdline-0.4-wildcard-fix.patch index a3dd738e28ad..d5f43c7963ad 100644 --- a/app-arch/par2cmdline/files/par2cmdline-0.4-wildcard-fix.patch +++ b/app-arch/par2cmdline/files/par2cmdline-0.4-wildcard-fix.patch @@ -1,75 +1,23 @@ -Fix wildcard expansion of non-regular files. - -Patch by Bardur Arantsson. - -http://bugs.gentoo.org/51817 -http://sourceforge.net/tracker/index.php?func=detail&aid=958902&group_id=30568&atid=399698 - ---- par2cmdline-0.4/diskfile.cpp -+++ par2cmdline-0.4/diskfile.cpp -@@ -618,6 +618,12 @@ - return result; - } - -+bool is_regular_file(const string &p) -+{ -+ struct stat st; -+ return (stat(p.c_str(), &st) == 0 && S_ISREG(st.st_mode)); -+} -+ - list<string>* DiskFile::FindFiles(string path, string wildcard) - { - list<string> *matches = new list<string>; -@@ -648,7 +654,15 @@ - name.substr(0, where) == front && - name.substr(name.size()-back.size()) == back) - { -- matches->push_back(path + name); -+ if (is_regular_file(path + name)) -+ { -+ matches->push_back(path + name); -+ } -+ else -+ { -+ cerr << "Warning: '" << (path + name) -+ << "' ignored; not a regular file" << endl; -+ } - } +--- commandline.cpp.orig 2006-04-06 21:41:27.000000000 -0700 ++++ commandline.cpp 2006-04-07 00:12:29.000000000 -0700 +@@ -550,6 +550,20 @@ } else -@@ -667,7 +681,15 @@ - - if (pw == wildcard.end()) - { -- matches->push_back(path + name); -+ if (is_regular_file(path + name)) -+ { -+ matches->push_back(path + name); -+ } -+ else -+ { -+ cerr << "Warning: '" << (path + name) -+ << "' ignored; not a regular file" << endl; -+ } - } - } + { ++ //start of shell expanded * patch. -- Michael Evans ++ //The shell might expaned * so, if we have our name and we're creating, then filter for files... ++ if ((parfilename.length() != 0) && (operation == opCreate)) ++ { ++ struct stat st; ++ if (!(stat(argv[0], &st) == 0 && S_ISREG(st.st_mode))) ++ { ++ cerr << "Skipping non-regular file: " << argv[0] << endl; ++ argc--; ++ argv++; ++ options = false; ++ continue; ++ } ++ }//end of shell expanded * patch. -- Michael Evans + filenames = new list<string>; + filenames->push_back(argv[0]); } -@@ -678,12 +700,15 @@ - } - else - { -- struct stat st; -- string fn = path + wildcard; -- if (stat(fn.c_str(), &st) == 0) -+ if (is_regular_file(path + wildcard)) - { - matches->push_back(path + wildcard); - } -+ else -+ { -+ cerr << "Warning: '" << (path + wildcard) -+ << "' ignored; not a regular file" << endl; -+ } - } - - return matches; diff --git a/app-arch/par2cmdline/par2cmdline-0.4-r2.ebuild b/app-arch/par2cmdline/par2cmdline-0.4-r2.ebuild new file mode 100644 index 000000000000..803b3c109807 --- /dev/null +++ b/app-arch/par2cmdline/par2cmdline-0.4-r2.ebuild @@ -0,0 +1,35 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-arch/par2cmdline/par2cmdline-0.4-r2.ebuild,v 1.1 2006/09/24 19:30:39 swegener Exp $ + +inherit eutils + +DESCRIPTION="A PAR-2.0 file verification and repair tool" +HOMEPAGE="http://parchive.sourceforge.net/" +SRC_URI="mirror://sourceforge/parchive/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ppc ~ppc-macos ~x86" +IUSE="" + +DEPEND="" + +src_unpack() { + unpack ${A} + cd "${S}" + + epatch "${FILESDIR}"/${P}-wildcard-fix.patch + epatch "${FILESDIR}"/${P}-offset.patch + epatch "${FILESDIR}"/${P}-letype.patch + epatch "${FILESDIR}"/${P}-gcc4.patch +} + +src_install() { + make install DESTDIR="${D}" || die "make install failed" + # Replace the hardlinks with symlinks + dosym par2 /usr/bin/par2create + dosym par2 /usr/bin/par2repair + dosym par2 /usr/bin/par2verify + dodoc AUTHORS ChangeLog README +} |