%if 0%{?fedora} > 28 || 0%{?rhel} >= 8 %global py2readelf py2readelf %global py3readelf pyreadelf %else %global py2readelf pyreadelf %global py3readelf py3readelf %endif %if 0%{?fedora} && 0%{?fedora} < 31 %global with_python2 1 %endif %if 0%{?rhel} && 0%{?rhel} < 8 %global with_python2 1 %endif %if 0%{?fedora} || 0%{?rhel} >= 8 %global with_python3 1 %endif Summary: Pure-Python library for parsing and analyzing ELF files Name: pyelftools Version: 0.25 Release: 1%{?dist} License: Public Domain URL: https://github.com/eliben/pyelftools Source0: https://files.pythonhosted.org/packages/source/p/pyelftools/pyelftools-%{version}.tar.gz %if 0%{?with_python2} BuildRequires: python2-devel BuildRequires: python2-setuptools %endif %if 0%{?with_python3} BuildRequires: python3-devel BuildRequires: python3-setuptools %endif BuildArch: noarch %global _description \ Pure-Python library for parsing and analyzing ELF files\ and DWARF debugging information. %description %_description %if 0%{?with_python2} %package -n python2-%{name} Summary: %{summary} Requires: python2-construct %{?python_provide:%python_provide python2-%{name}} # Remove before F30 %if 0%{?fedora} < 29 Provides: %{name} = %{version}-%{release} %endif %description -n python2-%{name} %_description %endif # with_python2 %if 0%{?with_python3} %package -n python3-%{name} Summary: %{summary} Requires: python3-construct %{?python_provide:%python_provide python3-%{name}} %description -n python3-%{name} %_description %endif %prep %setup -q %build %if 0%{?with_python2} %{py2_build} %endif %if 0%{?with_python3} %{py3_build} %endif %install %if 0%{?with_python2} %{py2_install} mv %{buildroot}/usr/bin/readelf.py %{buildroot}/usr/bin/%{py2readelf} %endif %if 0%{?with_python3} %{py3_install} mv %{buildroot}/usr/bin/readelf.py %{buildroot}/usr/bin/%{py3readelf} %endif %check %if 0%{?with_python2} %{__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 || : %endif %if 0%{?with_python3} %{__python3} test/run_all_unittests.py %{__python3} test/run_examples_test.py # ditto %{__python3} test/run_readelf_tests.py || : %endif %if 0%{?with_python2} %files -n python2-%{name} %license LICENSE %doc CHANGES %{_bindir}/%{py2readelf} %{python2_sitelib}/elftools %{python2_sitelib}/pyelftools-*.egg-info %endif %if 0%{?with_python3} %files -n python3-%{name} %license LICENSE %doc CHANGES %{_bindir}/%{py3readelf} %{python3_sitelib}/elftools %{python3_sitelib}/pyelftools-*.egg-info %endif %changelog * Sun May 05 2019 Terje Rosten - 0.25-1 - 0.25 - Use bundled construct as construct 2.9 is incompatible - Drop Python 2 stuff on el8 and Python 31 or newer * Sat Feb 02 2019 Fedora Release Engineering - 0.24-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Fri Jul 13 2018 Fedora Release Engineering - 0.24-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Tue Jun 19 2018 Miro Hrončok - 0.24-2 - Rebuilt for Python 3.7 * Sun Jun 17 2018 Terje Rosten - 0.24-1 - 0.24 - some clean up - remove naked provide for Fedora 29 and later - switch to Python 3 for pyreadelf for Fedora 29 and later * Wed Feb 21 2018 Iryna Shcherbina - 0.22-0.16.git20130619.a1d9681 - Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) * Fri Feb 09 2018 Fedora Release Engineering - 0.22-0.15.git20130619.a1d9681 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 0.22-0.14.git20130619.a1d9681 - Python 2 binary package renamed to python2-pyelftools See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 * Thu Aug 03 2017 Fedora Release Engineering - 0.22-0.13.git20130619.a1d9681 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Thu Jul 27 2017 Fedora Release Engineering - 0.22-0.12.git20130619.a1d9681 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Sat Feb 11 2017 Fedora Release Engineering - 0.22-0.11.git20130619.a1d9681 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Mon Dec 19 2016 Miro Hrončok - 0.22-0.10.git20130619.a1d9681 - Rebuild for Python 3.6 * Tue Jul 19 2016 Fedora Release Engineering - 0.22-0.9.git20130619.a1d9681 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages * Thu Feb 04 2016 Fedora Release Engineering - 0.22-0.8.git20130619.a1d9681 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Tue Nov 10 2015 Fedora Release Engineering - 0.22-0.7.git20130619.a1d9681 - Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 * Thu Jun 18 2015 Fedora Release Engineering - 0.22-0.6.git20130619.a1d9681 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * 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)