%if 0%{?fedora} || 0%{?rhel} >= 7 %global __python_sitelib %{python2_sitelib} %else %{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %global __python_sitelib %{python_sitelib} %{?__python2:%global __python2 %{__python}} %endif %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.5.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 %{__python2} setup.py build %if 0%{?fedora} || 0%{?rhel} >= 7 pushd %{py3dir} %{__python3} setup.py build %endif %install %{__python2} 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 %{__python2} test/run_all_unittests.py %{__python2} 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 %{__python2} 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 * Sun Aug 17 2014 Fedora Release Engineering - 0.22-0.5.git20130619.a1d9681 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Sat Jun 07 2014 Fedora Release Engineering - 0.22-0.4.git20130619.a1d9681 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Tue May 27 2014 Kalev Lember - 0.22-0.3.git20130619.a1d9681 - Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 * Wed Oct 02 2013 Björn Esser - 0.22-0.2.git20130619.a1d9681 - adaptions for new Python-guidelines * Fri Aug 16 2013 Björn Esser - 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 - 0.21-2 - Remove bundled construct lib * Thu May 09 2013 Terje Rosten - 0.21-1 - 0.21 - Run test - Updated source url - Drop defattr * Wed Jun 06 2012 Kushal Das 0.20-1 - Intial package (#829676)