Date: Mon, 27 May 2013 14:54:28 -0700 (PDT) From: William Grzybowski <william88@gmail.com> To: FreeBSD-gnats-submit@freebsd.org Subject: ports/179029: [PATCH] archivers/libpar2: update to 0.3 Message-ID: <51a3d614.0f84ec0a.33b9.ffffdd16@mx.google.com> Resent-Message-ID: <201305272230.r4RMU0PK053624@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 179029 >Category: ports >Synopsis: [PATCH] archivers/libpar2: update to 0.3 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Mon May 27 22:30:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: William Grzybowski >Release: FreeBSD 9.1-RELEASE amd64 >Organization: >Environment: >Description: This a patch to update to 0.3, sent by Herbert J. Skuhra <h.skuhra at gmail.com> >How-To-Repeat: >Fix: See attached patch --- patch-libpar2-0.3.diff begins here --- Index: archivers/libpar2/Makefile =================================================================== --- archivers/libpar2/Makefile (revision 319281) +++ archivers/libpar2/Makefile (working copy) @@ -2,10 +2,9 @@ # $FreeBSD$ PORTNAME= libpar2 -PORTVERSION= 0.2 -PORTREVISION= 4 +PORTVERSION= 0.3 CATEGORIES= archivers -MASTER_SITES= SF/parchive/${PORTNAME}/${PORTVERSION} +MASTER_SITES= https://launchpadlibrarian.net/139080388/ MAINTAINER= toxic@doobie.com COMMENT= Library for manipulating PAR2 files, extracted from par2cmdline @@ -17,20 +16,11 @@ LDFLAGS+= -L${LOCALBASE}/lib CPPFLAGS+= -I${LOCALBASE}/include -USE_GCC= any USE_LDCONFIG= yes USES= pkgconfig -OPTIONS_DEFINE= ENABLECANCEL -OPTIONS_DEFAULT= ENABLECANCEL -ENABLECANCEL_DESC= Enable graceful cancellation of repairs - .include <bsd.port.options.mk> -.if ${PORT_OPTIONS:MENABLECANCEL} -EXTRA_PATCHES= ${FILESDIR}/xpatch-addcancel-par2repairer.cpp -.endif - post-install: .if ${PORT_OPTIONS:MDOCS} @${MKDIR} ${DOCSDIR} Index: archivers/libpar2/distinfo =================================================================== --- archivers/libpar2/distinfo (revision 319281) +++ archivers/libpar2/distinfo (working copy) @@ -1,2 +1,2 @@ -SHA256 (libpar2-0.2.tar.gz) = 074fbf840f73b1e13e0405fce261078c81c8c0a4859e30a7bba10510f9199908 -SIZE (libpar2-0.2.tar.gz) = 401700 +SHA256 (libpar2-0.3.tar.gz) = 0bcc680db9e8d9fa178b2fec38681ff865d38d283085be1898eac1e615b51b36 +SIZE (libpar2-0.3.tar.gz) = 516329 Index: archivers/libpar2/files/patch-ChangeLog =================================================================== --- archivers/libpar2/files/patch-ChangeLog (revision 319281) +++ archivers/libpar2/files/patch-ChangeLog (working copy) @@ -1,13 +0,0 @@ ---- ChangeLog.orig 2010-04-28 12:17:05.000000000 -0700 -+++ ChangeLog 2010-04-28 12:16:35.000000000 -0700 -@@ -1,3 +1,10 @@ -+28 Apr 2010 FreeBSD Port -+ * Fix memory leak/segfault under certain circumstances. -+ http://sf.net/tracker/?func=detail&aid=2209433&group_id=30568&atid=399700 -+ -+16 Aug 2008 FreeBSD Port -+ * Fix 2G overflow for data_size (backported from vendor CVS) -+ - 03 Feb 2006 Francois LESUEUR - * Version 0.2 released - * Added support for detailed output Index: archivers/libpar2/files/patch-par2repairer.cpp =================================================================== --- archivers/libpar2/files/patch-par2repairer.cpp (revision 319281) +++ archivers/libpar2/files/patch-par2repairer.cpp (working copy) @@ -1,60 +0,0 @@ -diff -aud -U 5 ../libpar2-0.2-original/par2repairer.cpp ../libpar2-0.2/par2repairer.cpp ---- ../libpar2-0.2-original/par2repairer.cpp 2006-01-20 18:25:20.000000000 +0100 -+++ ../libpar2-0.2/par2repairer.cpp 2012-11-30 14:23:31.000000000 +0100 -@@ -76,10 +76,11 @@ - ++sf; - } - - delete mainpacket; - delete creatorpacket; -+ delete headers; - } - - - Result Par2Repairer::PreProcess(const CommandLine &commandline) - { -@@ -1259,11 +1260,11 @@ - string path; - string name; - DiskFile::SplitFilename(filename, path, name); - - cout << "Target: \"" << name << "\" - missing." << endl; -- sig_done.emit(name, 0, sourcefile->GetVerificationPacket()->BlockCount()); -+ sig_done.emit(name, 0, sourcefile->GetVerificationPacket() ? sourcefile->GetVerificationPacket()->BlockCount() : 0); - } - } - - ++sf; - } -@@ -1802,11 +1803,11 @@ - << "\" - no data found." - << endl; - } - } - } -- sig_done.emit(name,count,sourcefile->GetVerificationPacket()->BlockCount()); -+ sig_done.emit(name,count, count>0 && sourcefile->GetVerificationPacket() ? sourcefile->GetVerificationPacket()->BlockCount() : 0); - sig_progress.emit(1000.0); - return true; - } - - // Find out how much data we have found -diff -aud -U 5 ../libpar2-0.2-original/par2repairer.h ../libpar2-0.2/par2repairer.h ---- ../libpar2-0.2-original/par2repairer.h 2006-01-20 00:38:27.000000000 +0100 -+++ ../libpar2-0.2/par2repairer.h 2012-11-30 14:24:46.000000000 +0100 -@@ -34,10 +34,15 @@ - sigc::signal<void, std::string> sig_filename; - sigc::signal<void, double> sig_progress; - sigc::signal<void, ParHeaders*> sig_headers; - sigc::signal<void, std::string, int, int> sig_done; - -+ // This method allows to determine whether libpar2 includes the patches -+ // ("libpar2-0.2-bugfixes.patch") submitted to libpar2 project. -+ // Use the method in configure scripts for detection. -+ void BugfixesPatchVersion2() { } -+ - protected: - // Steps in verifying and repairing files: - - // Load packets from the specified file - bool LoadPacketsFromFile(string filename); Index: archivers/libpar2/files/patch-parheaders.h =================================================================== --- archivers/libpar2/files/patch-parheaders.h (revision 319281) +++ archivers/libpar2/files/patch-parheaders.h (working copy) @@ -1,11 +0,0 @@ ---- parheaders.h 2005/11/27 03:48:37 1.1 -+++ parheaders.h 2006/04/18 08:49:39 1.2 -@@ -9,7 +9,7 @@ - int other_files; - int block_size; - int data_blocks; -- int data_size; -+ long int data_size; - int chunk_size; - - ParHeaders(void); Index: archivers/libpar2/files/xpatch-addcancel-par2repairer.cpp =================================================================== --- archivers/libpar2/files/xpatch-addcancel-par2repairer.cpp (revision 319281) +++ archivers/libpar2/files/xpatch-addcancel-par2repairer.cpp (working copy) @@ -1,236 +0,0 @@ -diff -aud -U 5 ../libpar2-0.2-original/par2repairer.cpp ../libpar2-0.2/par2repairer.cpp ---- ../libpar2-0.2-original/par2repairer.cpp 2012-12-03 10:47:04.000000000 +0100 -+++ ../libpar2-0.2/par2repairer.cpp 2012-12-03 10:48:13.000000000 +0100 -@@ -50,10 +50,12 @@ - outputbuffer = 0; - - noiselevel = CommandLine::nlNormal; - headers = new ParHeaders; - alreadyloaded = false; -+ -+ cancelled = false; - } - - Par2Repairer::~Par2Repairer(void) - { - delete [] (u8*)inputbuffer; -@@ -404,10 +406,14 @@ - { - cout << "Loading: " << newfraction/10 << '.' << newfraction%10 << "%\r" << flush; - progress = offset; - sig_progress.emit(newfraction); - -+ if (cancelled) -+ { -+ break; -+ } - } - } - - // Attempt to read the next packet header - PACKET_HEADER header; -@@ -582,10 +588,15 @@ - if (noiselevel > CommandLine::nlQuiet) - cout << "No new packets found" << endl; - delete diskfile; - } - -+ if (cancelled) -+ { -+ return false; -+ } -+ - return true; - } - - // Finish loading a recovery packet - bool Par2Repairer::LoadRecoveryPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header) -@@ -831,26 +842,42 @@ - - // Load packets from each file that was found - for (list<string>::const_iterator s=files->begin(); s!=files->end(); ++s) - { - LoadPacketsFromFile(*s); -+ if (cancelled) -+ { -+ break; -+ } - } - - delete files; -+ if (cancelled) -+ { -+ return false; -+ } - } - - { - string wildcard = name.empty() ? "*.PAR2" : name + ".*.PAR2"; - list<string> *files = DiskFile::FindFiles(path, wildcard); - - // Load packets from each file that was found - for (list<string>::const_iterator s=files->begin(); s!=files->end(); ++s) - { - LoadPacketsFromFile(*s); -+ if (cancelled) -+ { -+ break; -+ } - } - - delete files; -+ if (cancelled) -+ { -+ return false; -+ } - } - - return true; - } - -@@ -864,13 +891,22 @@ - // If the filename contains ".par2" anywhere - if (string::npos != filename.find(".par2") || - string::npos != filename.find(".PAR2")) - { - LoadPacketsFromFile(filename); -+ if (cancelled) -+ { -+ break; -+ } - } - } - -+ if (cancelled) -+ { -+ return false; -+ } -+ - return true; - } - - // Check that the packets are consistent and discard any that are not - bool Par2Repairer::CheckPacketConsistency(void) -@@ -1208,10 +1244,15 @@ - - // Start verifying the files - sf = sortedfiles.begin(); - while (sf != sortedfiles.end()) - { -+ if (cancelled) -+ { -+ return false; -+ } -+ - // Do we have a source file - Par2RepairerSourceFile *sourcefile = *sf; - - // What filename does the file use - string filename = sourcefile->TargetFileName(); -@@ -1560,10 +1601,14 @@ - if (oldfraction != newfraction) - { - cout << "Scanning: \"" << shortname << "\": " << newfraction/10 << '.' << newfraction%10 << "%\r" << flush; - sig_progress.emit(newfraction); - -+ if (cancelled) -+ { -+ break; -+ } - } - } - - // If we fail to find a match, it might be because it was a duplicate of a block - // that we have already found. -@@ -1649,10 +1694,15 @@ - return false; - } - } - } - -+ if (cancelled) -+ { -+ return false; -+ } -+ - // Get the Full and 16k hash values of the file - filechecksummer.GetFileHashes(hashfull, hash16k); - - // Did we make any matches at all - if (count > 0) -@@ -2289,14 +2339,23 @@ - if (oldfraction != newfraction) - { - cout << "Repairing: " << newfraction/10 << '.' << newfraction%10 << "%\r" << flush; - sig_progress.emit(newfraction); - -+ if (cancelled) -+ { -+ break; -+ } - } - } - } - -+ if (cancelled) -+ { -+ break; -+ } -+ - ++inputblock; - ++inputindex; - } - } - else -@@ -2346,13 +2405,22 @@ - if (oldfraction != newfraction) - { - cout << "Processing: " << newfraction/10 << '.' << newfraction%10 << "%\r" << flush; - sig_progress.emit(newfraction); - -+ if (cancelled) -+ { -+ break; -+ } - } - } - -+ if (cancelled) -+ { -+ break; -+ } -+ - ++copyblock; - ++inputblock; - } - } - -@@ -2360,10 +2428,15 @@ - if (lastopenfile != NULL) - { - lastopenfile->Close(); - } - -+ if (cancelled) -+ { -+ return false; -+ } -+ - if (noiselevel > CommandLine::nlQuiet) - cout << "Writing recovered data\r"; - - // For each output block that has been recomputed - vector<DataBlock*>::iterator outputblock = outputblocks.begin(); -diff -aud -U 5 ../libpar2-0.2-with-bugfixes-patch/par2repairer.h ../libpar2-0.2/par2repairer.h ---- ../libpar2-0.2-original/par2repairer.h 2012-12-03 10:47:04.000000000 +0100 -+++ ../libpar2-0.2/par2repairer.h 2012-12-03 10:48:13.000000000 +0100 -@@ -186,8 +186,9 @@ - - u64 progress; // How much data has been processed. - u64 totaldata; // Total amount of data to be processed. - u64 totalsize; // Total data size - -+ bool cancelled; // repair cancelled - }; - - #endif // __PAR2REPAIRER_H__ --- patch-libpar2-0.3.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51a3d614.0f84ec0a.33b9.ffffdd16>