app-misc/binwalk: backport patch to support backports-lzma
authorTim Harder <radhermit@gentoo.org>
Wed, 26 Apr 2017 06:14:49 +0000 (02:14 -0400)
committerTim Harder <radhermit@gentoo.org>
Wed, 26 Apr 2017 06:22:57 +0000 (02:22 -0400)
In addition to pyliblzma.

app-misc/binwalk/binwalk-2.1.1.ebuild
app-misc/binwalk/files/0001-Added-check-for-backports.lzma-when-importing-lzma-m.patch [new file with mode: 0644]

index 466c274a8dff0b8960d9ba68497cc12d60009445..031f4169fe83cc118e1f381d14298988fb4927f7 100644 (file)
@@ -16,10 +16,12 @@ KEYWORDS="~amd64 ~x86"
 IUSE="graph"
 
 RDEPEND="
-       $(python_gen_cond_dep 'dev-python/pyliblzma[${PYTHON_USEDEP}]' python2_7)
+       $(python_gen_cond_dep 'dev-python/backports-lzma[${PYTHON_USEDEP}]' python2_7)
        graph? ( dev-python/pyqtgraph[opengl,${PYTHON_USEDEP}] )
 "
 
+PATCHES=( "${FILESDIR}"/0001-Added-check-for-backports.lzma-when-importing-lzma-m.patch )
+
 python_install_all() {
        local DOCS=( API.md INSTALL.md README.md )
        distutils-r1_python_install_all
diff --git a/app-misc/binwalk/files/0001-Added-check-for-backports.lzma-when-importing-lzma-m.patch b/app-misc/binwalk/files/0001-Added-check-for-backports.lzma-when-importing-lzma-m.patch
new file mode 100644 (file)
index 0000000..7084980
--- /dev/null
@@ -0,0 +1,67 @@
+From 95bce4edcc6e92c9517b80ccb1fb956f591e0738 Mon Sep 17 00:00:00 2001
+From: Craig Heffner <heffnercj@gmail.com>
+Date: Tue, 5 Jan 2016 13:28:24 -0500
+Subject: [PATCH] Added check for backports.lzma when importing lzma module
+
+---
+ src/binwalk/modules/compression.py | 5 ++++-
+ src/binwalk/plugins/lzmaextract.py | 6 +++++-
+ src/binwalk/plugins/lzmavalid.py   | 5 ++++-
+ 3 files changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/src/binwalk/modules/compression.py b/src/binwalk/modules/compression.py
+index 97ca68d..e919f7e 100644
+--- a/src/binwalk/modules/compression.py
++++ b/src/binwalk/modules/compression.py
+@@ -2,11 +2,14 @@
+ 
+ import os
+ import zlib
+-import lzma
+ import struct
+ import binwalk.core.compat
+ import binwalk.core.common
+ from binwalk.core.module import Option, Kwarg, Module
++try:
++    import lzma
++except ImportError:
++    from backports import lzma
+ 
+ class LZMAHeader(object):
+     def __init__(self, **kwargs):
+diff --git a/src/binwalk/plugins/lzmaextract.py b/src/binwalk/plugins/lzmaextract.py
+index 137b4cc..93f6240 100755
+--- a/src/binwalk/plugins/lzmaextract.py
++++ b/src/binwalk/plugins/lzmaextract.py
+@@ -12,7 +12,11 @@ class LZMAExtractPlugin(binwalk.core.plugin.Plugin):
+             # lzma package in Python 2.0 decompress() does not handle multiple
+             # compressed streams, only first stream is extracted.
+             # backports.lzma package could be used to keep consistent behaviour.
+-            import lzma
++            try:
++                import lzma
++            except ImportError:
++                from backports import lzma
++
+             self.decompressor = lzma.decompress
+ 
+             # If the extractor is enabled for the module we're currently loaded
+diff --git a/src/binwalk/plugins/lzmavalid.py b/src/binwalk/plugins/lzmavalid.py
+index a343656..62e15b9 100644
+--- a/src/binwalk/plugins/lzmavalid.py
++++ b/src/binwalk/plugins/lzmavalid.py
+@@ -17,7 +17,10 @@ class LZMAPlugin(binwalk.core.plugin.Plugin):
+ 
+     def init(self):
+         try:
+-            import lzma
++            try:
++                import lzma
++            except ImportError:
++                from backports import lzma
+             self.decompressor = lzma.decompress
+         except ImportError as e:
+             self.decompressor = None
+-- 
+2.12.2
+