* [gentoo-commits] dev/dev-zero:master commit in: dev-python/py-unrar2/files/, dev-python/py-unrar2/
@ 2016-03-26 20:27 Tiziano Müller
0 siblings, 0 replies; only message in thread
From: Tiziano Müller @ 2016-03-26 20:27 UTC (permalink / raw
To: gentoo-commits
commit: 1804e49c36651ab7b99c3464bef821adafca91d1
Author: Tiziano Müller <dev-zero <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 26 20:27:31 2016 +0000
Commit: Tiziano Müller <dev-zero <AT> gentoo <DOT> org>
CommitDate: Sat Mar 26 20:27:31 2016 +0000
URL: https://gitweb.gentoo.org/dev/dev-zero.git/commit/?id=1804e49c
dev-python/py-unrar2: required for SiCKRAGE
dev-python/py-unrar2/Manifest | 1 +
...-unrar2-0.99.6-fix-tabs-and-unrar-version.patch | 184 +++++++++++++++++++++
dev-python/py-unrar2/py-unrar2-0.99.6.ebuild | 33 ++++
3 files changed, 218 insertions(+)
diff --git a/dev-python/py-unrar2/Manifest b/dev-python/py-unrar2/Manifest
new file mode 100644
index 0000000..e40ce79
--- /dev/null
+++ b/dev-python/py-unrar2/Manifest
@@ -0,0 +1 @@
+DIST py-unrar2-0.99.6.tar.gz 731321 SHA256 1aa6c67870a60224baea9fc8dbd72ad0bd1452ca4c90415bf54768e1463002bb SHA512 f8704977202c482eee071d1e35ceb3654d72d9de53854d4b4ce4c5c789525b02d2b82cc76fde3e2d341289da9cd48c33fc0e93101ff45a67767ee0743dfe6c17 WHIRLPOOL fdf2decddd83dc56a22d0078107e85dcc5aadcbc1211384d7ceac82e60cb6577025faed99b9ccc9c3fc25beef828fe50b56a63d18ab92a39254f00c6a8ca8d39
diff --git a/dev-python/py-unrar2/files/py-unrar2-0.99.6-fix-tabs-and-unrar-version.patch b/dev-python/py-unrar2/files/py-unrar2-0.99.6-fix-tabs-and-unrar-version.patch
new file mode 100644
index 0000000..8fa9d2b
--- /dev/null
+++ b/dev-python/py-unrar2/files/py-unrar2-0.99.6-fix-tabs-and-unrar-version.patch
@@ -0,0 +1,184 @@
+From adc3f2e0268c7f02bbf32a6a439a066dab023bcd Mon Sep 17 00:00:00 2001
+From: Dustyn Gibson <miigotu@gmail.com>
+Date: Sat, 3 Oct 2015 22:11:33 -0700
+Subject: [PATCH] Try new date formats on strptime valueError exception, Fixes
+ yk4ever/py-unrar2/issues/14
+
+---
+ unix.py | 65 +++++++++++++++++++++++++++++++++++------------------------------
+ 1 file changed, 35 insertions(+), 30 deletions(-)
+
+diff --git a/unix.py b/unix.py
+index 12cced4..72c9eaf 100644
+--- a/unix.py
++++ b/unix.py
+@@ -48,7 +48,7 @@ def call_unrar(params):
+ pass
+ if rar_executable_cached is None:
+ raise UnpackerNotInstalled("No suitable RAR unpacker installed")
+-
++
+ assert type(params) == list, "params must be list"
+ args = [rar_executable_cached] + params
+ try:
+@@ -62,15 +62,15 @@ class RarFileImplementation(object):
+ def init(self, password=None):
+ global rar_executable_version
+ self.password = password
+-
+-
++
++
+ stdoutdata, stderrdata = self.call('v', []).communicate()
+-
++
+ for line in stderrdata.splitlines():
+ if line.strip().startswith("Cannot open"):
+ raise FileOpenError
+ if line.find("CRC failed")>=0:
+- raise IncorrectRARPassword
++ raise IncorrectRARPassword
+ accum = []
+ source = iter(stdoutdata.splitlines())
+ line = ''
+@@ -107,28 +107,28 @@ def init(self, password=None):
+ else:
+ self.comment = None
+ else:
+- raise UnpackerNotInstalled("Unsupported RAR version, expected 4.x or 5.x, found: "
++ raise UnpackerNotInstalled("Unsupported RAR version, expected 4.x or 5.x, found: "
+ + signature.split(" ")[1])
+-
+-
++
++
+ def escaped_password(self):
+ return '-' if self.password == None else self.password
+-
+-
++
++
+ def call(self, cmd, options=[], files=[]):
+ options2 = options + ['p'+self.escaped_password()]
+ soptions = ['-'+x for x in options2]
+ return call_unrar([cmd]+soptions+['--',self.archiveName]+files)
+
+ def infoiter(self):
+-
++
+ command = "v" if rar_executable_version == 4 else "l"
+ stdoutdata, stderrdata = self.call(command, ['c-']).communicate()
+-
++
+ for line in stderrdata.splitlines():
+ if line.strip().startswith("Cannot open"):
+ raise FileOpenError
+-
++
+ accum = []
+ source = iter(stdoutdata.splitlines())
+ line = ''
+@@ -136,7 +136,7 @@ def infoiter(self):
+ if line.strip().endswith('is not RAR archive'):
+ raise InvalidRARArchive
+ if line.startswith("CRC failed") or line.startswith("Checksum error"):
+- raise IncorrectRARPassword
++ raise IncorrectRARPassword
+ line = source.next()
+ line = source.next()
+ i = 0
+@@ -153,7 +153,11 @@ def infoiter(self):
+ data['size'] = int(fields[0])
+ attr = fields[5]
+ data['isdir'] = 'd' in attr.lower()
+- data['datetime'] = time.strptime(fields[3]+" "+fields[4], '%d-%m-%y %H:%M')
++ try:
++ data['datetime'] = time.strptime(fields[3]+" "+fields[4], '%d-%m-%y %H:%M')
++ except ValueError:
++ data['datetime'] = time.strptime(fields[3]+" "+fields[4], '%Y-%m-%d %H:%M')
++
+ data['comment'] = None
+ data['volume'] = None
+ yield data
+@@ -169,13 +173,16 @@ def infoiter(self):
+ data['size'] = int(fields[1])
+ attr = fields[0]
+ data['isdir'] = 'd' in attr.lower()
+- data['datetime'] = time.strptime(fields[2]+" "+fields[3], '%d-%m-%y %H:%M')
++ try:
++ data['datetime'] = time.strptime(fields[2]+" "+fields[3], '%d-%m-%y %H:%M')
++ except ValueError:
++ data['datetime'] = time.strptime(fields[2]+" "+fields[3], '%Y-%m-%d %H:%M')
+ data['comment'] = None
+- data['volume'] = None
++ data['volume'] = None
+ yield data
+ i += 1
+ line = source.next()
+-
++
+
+ def read_files(self, checker):
+ res = []
+@@ -184,9 +191,9 @@ def read_files(self, checker):
+ if checkres==True and not info.isdir:
+ pipe = self.call('p', ['inul'], [info.filename]).stdout
+ res.append((info, pipe.read()))
+- return res
++ return res
++
+
+-
+ def extract(self, checker, path, withSubpath, overwrite):
+ res = []
+ command = 'x'
+@@ -211,27 +218,27 @@ def extract(self, checker, path, withSubpath, overwrite):
+ proc = self.call(command, options, names)
+ stdoutdata, stderrdata = proc.communicate()
+ if stderrdata.find("CRC failed")>=0 or stderrdata.find("Checksum error")>=0:
+- raise IncorrectRARPassword
+- return res
+-
++ raise IncorrectRARPassword
++ return res
++
+ def destruct(self):
+ pass
+-
++
+ def get_volume(self):
+ command = "v" if rar_executable_version == 4 else "l"
+ stdoutdata, stderrdata = self.call(command, ['c-']).communicate()
+-
++
+ for line in stderrdata.splitlines():
+ if line.strip().startswith("Cannot open"):
+ raise FileOpenError
+-
++
+ source = iter(stdoutdata.splitlines())
+ line = ''
+ while not line.startswith('-----------'):
+ if line.strip().endswith('is not RAR archive'):
+ raise InvalidRARArchive
+ if line.startswith("CRC failed") or line.startswith("Checksum error"):
+- raise IncorrectRARPassword
++ raise IncorrectRARPassword
+ line = source.next()
+ line = source.next()
+ if rar_executable_version == 4:
+@@ -243,7 +250,7 @@ def get_volume(self):
+ return int(items[5]) - 1
+ else:
+ return None
+-
++
+ elif rar_executable_version == 5:
+ while not line.startswith('-----------'):
+ line = source.next()
+@@ -253,5 +260,3 @@ def get_volume(self):
+ return int(items[2]) - 1
+ else:
+ return None
+-
+-
diff --git a/dev-python/py-unrar2/py-unrar2-0.99.6.ebuild b/dev-python/py-unrar2/py-unrar2-0.99.6.ebuild
new file mode 100644
index 0000000..210b80c
--- /dev/null
+++ b/dev-python/py-unrar2/py-unrar2-0.99.6.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Improved Python wrapper around the free UnRAR.dll"
+HOMEPAGE="https://pypi.python.org/pypi/py-unrar2/ http://code.google.com/py-unrar2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="app-arch/unrar"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-fix-tabs-and-unrar-version.patch" )
+
+python_prepare_all() {
+ # do not install crap
+ rm -rf UnRARDLL windows.py *.r* *.txt *~ *.html MANIFEST* *.orig *.bin .hg* *.swp || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ python test_UnRAR2.py || die
+}
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2016-03-26 20:27 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-26 20:27 [gentoo-commits] dev/dev-zero:master commit in: dev-python/py-unrar2/files/, dev-python/py-unrar2/ Tiziano Müller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox