binwalk: sync with gentoo

This commit is contained in:
blshkv 2017-04-27 12:25:46 +08:00
parent 71e532d9d9
commit 80df323e22
No known key found for this signature in database
GPG key ID: 9CCF6FCB8D8A14BF
3 changed files with 113 additions and 31 deletions

View file

@ -0,0 +1,46 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
inherit distutils-r1
if [[ ${PV} == "9999" ]] ; then
EGIT_REPO_URI="https://github.com/devttys0/binwalk.git"
inherit git-r3
else
SRC_URI="https://github.com/devttys0/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="amd64 x86"
fi
DESCRIPTION="A tool for identifying files embedded inside firmware images"
HOMEPAGE="https://github.com/devttys0/binwalk"
LICENSE="MIT"
SLOT="0"
IUSE="graph squashfs"
RDEPEND="
$(python_gen_cond_dep 'dev-python/backports-lzma[${PYTHON_USEDEP}]' python2_7)
dev-python/pyliblzma
sys-apps/file[${PYTHON_USEDEP}]
graph? ( dev-python/pyqtgraph[opengl,${PYTHON_USEDEP}] )
squashfs? ( sys-fs/squashfs-tools:0
sys-fs/sasquatch
)
"
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
}
pkg_postinst() {
if [[ -z ${REPLACING_VERSIONS} ]]; then
elog "binwalk has many optional dependencies to automatically"
elog "extract/decompress data, see INSTALL.md for more details."
fi
}

View file

@ -1,31 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python{2_7,3_3,3_4} )
inherit distutils-r1
DESCRIPTION="A tool for identifying files embedded inside firmware images"
HOMEPAGE="https://github.com/devttys0/binwalk"
SRC_URI="https://github.com/devttys0/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="graph squashfs"
#git gcc gcc-c++ make openssl-devel qtwebkit-devel qt-devel gzip bzip2 tar arj p7zip p7zip-plugins
#cabextract squashfs-tools zlib zlib-devel lzo lzo-devel xz xz-compat-libs xz-libs xz-devel
#xz-lzma-compat python-backports-lzma lzip pyliblzma perl-Compress-Raw-Lzma"
RDEPEND="
dev-python/backports-lzma
dev-python/pyliblzma
sys-apps/file[${PYTHON_USEDEP}]
graph? ( dev-python/pyqtgraph[opengl,${PYTHON_USEDEP}] )
squashfs? ( sys-fs/squashfs-tools:0
sys-fs/sasquatch
)
"

View file

@ -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