Intial import (#829676)
This commit is contained in:
parent
d35755991b
commit
8b33398520
4
.gitignore
vendored
4
.gitignore
vendored
@ -0,0 +1,4 @@
|
||||
*~
|
||||
*.rpm
|
||||
*.tar*
|
||||
results_*/
|
2
README
2
README
@ -1,2 +0,0 @@
|
||||
There's currently no "python-construct" build avail for el6. We'll build
|
||||
this when it will be avail.
|
142
pyelftools-0.22-construct.patch
Normal file
142
pyelftools-0.22-construct.patch
Normal file
@ -0,0 +1,142 @@
|
||||
diff --git a/elftools/common/construct_utils.py b/elftools/common/construct_utils.py
|
||||
index 53caa97..41c2815 100644
|
||||
--- a/elftools/common/construct_utils.py
|
||||
+++ b/elftools/common/construct_utils.py
|
||||
@@ -6,7 +6,7 @@
|
||||
# Eli Bendersky (eliben@gmail.com)
|
||||
# This code is in the public domain
|
||||
#-------------------------------------------------------------------------------
|
||||
-from ..construct import Subconstruct, ConstructError, ArrayError
|
||||
+from construct import Subconstruct, ConstructError, ArrayError
|
||||
|
||||
|
||||
class RepeatUntilExcluding(Subconstruct):
|
||||
diff --git a/elftools/common/utils.py b/elftools/common/utils.py
|
||||
index 7bd1d5b..8b2400b 100644
|
||||
--- a/elftools/common/utils.py
|
||||
+++ b/elftools/common/utils.py
|
||||
@@ -9,7 +9,7 @@
|
||||
from contextlib import contextmanager
|
||||
from .exceptions import ELFParseError, ELFError, DWARFError
|
||||
from .py3compat import int2byte
|
||||
-from ..construct import ConstructError
|
||||
+from construct import ConstructError
|
||||
|
||||
|
||||
def bytelist2string(bytelist):
|
||||
diff --git a/elftools/dwarf/enums.py b/elftools/dwarf/enums.py
|
||||
index 6508764..a474d32 100644
|
||||
--- a/elftools/dwarf/enums.py
|
||||
+++ b/elftools/dwarf/enums.py
|
||||
@@ -6,7 +6,7 @@
|
||||
# Eli Bendersky (eliben@gmail.com)
|
||||
# This code is in the public domain
|
||||
#-------------------------------------------------------------------------------
|
||||
-from ..construct import Pass
|
||||
+from construct import Pass
|
||||
|
||||
|
||||
ENUM_DW_TAG = dict(
|
||||
diff --git a/elftools/dwarf/structs.py b/elftools/dwarf/structs.py
|
||||
index 39e4815..c50a874 100644
|
||||
--- a/elftools/dwarf/structs.py
|
||||
+++ b/elftools/dwarf/structs.py
|
||||
@@ -7,7 +7,7 @@
|
||||
# Eli Bendersky (eliben@gmail.com)
|
||||
# This code is in the public domain
|
||||
#-------------------------------------------------------------------------------
|
||||
-from ..construct import (
|
||||
+from construct import (
|
||||
UBInt8, UBInt16, UBInt32, UBInt64, ULInt8, ULInt16, ULInt32, ULInt64,
|
||||
SBInt8, SBInt16, SBInt32, SBInt64, SLInt8, SLInt16, SLInt32, SLInt64,
|
||||
Adapter, Struct, ConstructError, If, RepeatUntil, Field, Rename, Enum,
|
||||
diff --git a/elftools/elf/elffile.py b/elftools/elf/elffile.py
|
||||
index 458273f..a4d62bd 100644
|
||||
--- a/elftools/elf/elffile.py
|
||||
+++ b/elftools/elf/elffile.py
|
||||
@@ -9,7 +9,7 @@
|
||||
from ..common.py3compat import BytesIO
|
||||
from ..common.exceptions import ELFError
|
||||
from ..common.utils import struct_parse, elf_assert
|
||||
-from ..construct import ConstructError
|
||||
+from construct import ConstructError
|
||||
from .structs import ELFStructs
|
||||
from .sections import (
|
||||
Section, StringTableSection, SymbolTableSection,
|
||||
diff --git a/elftools/elf/enums.py b/elftools/elf/enums.py
|
||||
index deb9f35..7b778c7 100644
|
||||
--- a/elftools/elf/enums.py
|
||||
+++ b/elftools/elf/enums.py
|
||||
@@ -6,7 +6,7 @@
|
||||
# Eli Bendersky (eliben@gmail.com)
|
||||
# This code is in the public domain
|
||||
#-------------------------------------------------------------------------------
|
||||
-from ..construct import Pass
|
||||
+from construct import Pass
|
||||
|
||||
|
||||
# e_ident[EI_CLASS] in the ELF header
|
||||
diff --git a/elftools/elf/gnuversions.py b/elftools/elf/gnuversions.py
|
||||
index 4a4473f..d4f4b75 100644
|
||||
--- a/elftools/elf/gnuversions.py
|
||||
+++ b/elftools/elf/gnuversions.py
|
||||
@@ -6,7 +6,7 @@
|
||||
# Yann Rouillard (yann@pleiades.fr.eu.org)
|
||||
# This code is in the public domain
|
||||
#------------------------------------------------------------------------------
|
||||
-from ..construct import CString
|
||||
+from construct import CString
|
||||
from ..common.utils import struct_parse, elf_assert
|
||||
from .sections import Section, Symbol
|
||||
|
||||
diff --git a/elftools/elf/sections.py b/elftools/elf/sections.py
|
||||
index ce62450..99b6613 100644
|
||||
--- a/elftools/elf/sections.py
|
||||
+++ b/elftools/elf/sections.py
|
||||
@@ -6,7 +6,7 @@
|
||||
# Eli Bendersky (eliben@gmail.com)
|
||||
# This code is in the public domain
|
||||
#-------------------------------------------------------------------------------
|
||||
-from ..construct import CString
|
||||
+from construct import CString
|
||||
from ..common.utils import struct_parse, elf_assert, parse_cstring_from_stream
|
||||
|
||||
|
||||
diff --git a/elftools/elf/segments.py b/elftools/elf/segments.py
|
||||
index bc54da2..dfb3a14 100644
|
||||
--- a/elftools/elf/segments.py
|
||||
+++ b/elftools/elf/segments.py
|
||||
@@ -6,7 +6,7 @@
|
||||
# Eli Bendersky (eliben@gmail.com)
|
||||
# This code is in the public domain
|
||||
#-------------------------------------------------------------------------------
|
||||
-from ..construct import CString
|
||||
+from construct import CString
|
||||
from ..common.utils import struct_parse
|
||||
from .constants import SH_FLAGS
|
||||
|
||||
diff --git a/elftools/elf/structs.py b/elftools/elf/structs.py
|
||||
index 0862400..51b1715 100644
|
||||
--- a/elftools/elf/structs.py
|
||||
+++ b/elftools/elf/structs.py
|
||||
@@ -7,7 +7,7 @@
|
||||
# Eli Bendersky (eliben@gmail.com)
|
||||
# This code is in the public domain
|
||||
#-------------------------------------------------------------------------------
|
||||
-from ..construct import (
|
||||
+from construct import (
|
||||
UBInt8, UBInt16, UBInt32, UBInt64,
|
||||
ULInt8, ULInt16, ULInt32, ULInt64,
|
||||
SBInt32, SLInt32, SBInt64, SLInt64,
|
||||
diff --git a/setup.py b/setup.py
|
||||
index a105774..d8cd590 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -41,7 +41,6 @@ setup(
|
||||
'elftools.elf',
|
||||
'elftools.common',
|
||||
'elftools.dwarf',
|
||||
- 'elftools.construct', 'elftools.construct.lib',
|
||||
],
|
||||
|
||||
scripts=['scripts/readelf.py']
|
148
pyelftools.spec
Normal file
148
pyelftools.spec
Normal file
@ -0,0 +1,148 @@
|
||||
%global debug_package %{nil}
|
||||
%global commitdate 20130619
|
||||
%global commit a1d968102e82fea06692c367849bc25418780f77
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
|
||||
Name: pyelftools
|
||||
Version: 0.22
|
||||
Release: 0.1.git%{commitdate}.%{shortcommit}%{?dist}
|
||||
Summary: Pure-Python library for parsing and analyzing ELF files
|
||||
|
||||
License: Public Domain
|
||||
URL: https://github.com/eliben/%{name}
|
||||
|
||||
# We 'll use git snapshots, because upstream keeps master-branch
|
||||
# in a usable, working state. See:
|
||||
# https://github.com/eliben/pyelftools/wiki/Hacking-guide#contributing
|
||||
Source0: %{url}/archive/%{commit}/%{name}-%{version}.git%{commitdate}.%{shortcommit}.tar.gz
|
||||
|
||||
Patch0: pyelftools-0.22-construct.patch
|
||||
|
||||
BuildRequires: python2-devel
|
||||
BuildRequires: python-setuptools
|
||||
BuildRequires: python-construct
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: python3-construct
|
||||
%endif
|
||||
|
||||
%description
|
||||
Pure-Python library for parsing and analyzing ELF files
|
||||
and DWARF debugging information.
|
||||
|
||||
|
||||
%package -n python-%{name}
|
||||
Summary: Pure-Python library for parsing and analyzing ELF files
|
||||
|
||||
BuildArch: noarch
|
||||
Requires: python-construct
|
||||
Provides: %{name} = %{version}-%{release}
|
||||
|
||||
%description -n python-%{name}
|
||||
Pure-Python library for parsing and analyzing ELF files
|
||||
and DWARF debugging information.
|
||||
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
%package -n python3-%{name}
|
||||
Summary: Pure-Python library for parsing and analyzing ELF files
|
||||
|
||||
BuildArch: noarch
|
||||
Requires: python3-construct
|
||||
|
||||
%description -n python3-%{name}
|
||||
Pure-Python library for parsing and analyzing ELF files
|
||||
and DWARF debugging information.
|
||||
%endif
|
||||
|
||||
|
||||
%prep
|
||||
%setup -qn %{name}-%{commit}
|
||||
%patch0 -p1
|
||||
|
||||
# remove bundled construct lib
|
||||
rm -rf elftools/construct
|
||||
|
||||
# python3-package
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
rm -rf %{py3dir}
|
||||
cp -a . %{py3dir}
|
||||
|
||||
# fix hashbang
|
||||
sed -i -e 's|#!/usr/bin/env python|#!/usr/bin/python3|' %{py3dir}/scripts/readelf.py
|
||||
%endif
|
||||
|
||||
sed -i -e 's|#!/usr/bin/env python|#!/usr/bin/python2|' scripts/readelf.py
|
||||
|
||||
|
||||
%build
|
||||
%{__python} setup.py build
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
pushd %{py3dir}
|
||||
%{__python3} setup.py build
|
||||
%endif
|
||||
|
||||
|
||||
%install
|
||||
%{__python} setup.py install -O1 --skip-build --root %{buildroot}
|
||||
mv %{buildroot}/usr/bin/readelf.py %{buildroot}/usr/bin/pyreadelf
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
pushd %{py3dir}
|
||||
%{__python3} setup.py install -O1 --skip-build --root %{buildroot}
|
||||
mv %{buildroot}/usr/bin/readelf.py %{buildroot}/usr/bin/py3readelf
|
||||
%endif
|
||||
|
||||
|
||||
%check
|
||||
%{__python} test/run_all_unittests.py
|
||||
%{__python} test/run_examples_test.py
|
||||
# tests may fail because of differences in output-formatting
|
||||
# from binutils' readelf. See:
|
||||
# https://github.com/eliben/pyelftools/wiki/Hacking-guide#tests
|
||||
%{__python} test/run_readelf_tests.py || :
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
%{__python3} test/run_all_unittests.py
|
||||
%{__python3} test/run_examples_test.py
|
||||
# tests may fail because of differences in output-formatting
|
||||
# from binutils' readelf. See:
|
||||
# https://github.com/eliben/pyelftools/wiki/Hacking-guide#tests
|
||||
%{__python3} test/run_readelf_tests.py || :
|
||||
%endif
|
||||
|
||||
|
||||
%files -n python-%{name}
|
||||
%doc CHANGES LICENSE README* TODO
|
||||
%{python_sitelib}/*elftools*
|
||||
%{_bindir}/pyreadelf
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
%files -n python3-%{name}
|
||||
%doc CHANGES LICENSE README* TODO
|
||||
%{python3_sitelib}/*elftools*
|
||||
%{_bindir}/py3readelf
|
||||
%endif
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Aug 16 2013 Björn Esser <bjoern.esser@gmail.com> - 0.22-0.1.git20130619.a1d9681
|
||||
- update to latest pre-release git snapshot
|
||||
- add python3-package
|
||||
- build on all arches to get some conclusion from testsuite,
|
||||
but create noarch pkgs
|
||||
|
||||
* Sat Jun 08 2013 Terje Rosten <terje.rosten@ntnu.no> - 0.21-2
|
||||
- Remove bundled construct lib
|
||||
|
||||
* Thu May 09 2013 Terje Rosten <terje.rosten@ntnu.no> - 0.21-1
|
||||
- 0.21
|
||||
- Run test
|
||||
- Updated source url
|
||||
- Drop defattr
|
||||
|
||||
* Wed Jun 06 2012 Kushal Das <kushal@fedoraproject.org> 0.20-1
|
||||
- Intial package (#829676)
|
Loading…
Reference in New Issue
Block a user