pyelftools/pyelftools.spec

175 lines
5.1 KiB
RPMSpec

%if 0%{?fedora} || 0%{?rhel} >= 8
%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.7.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} >= 8
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} >= 8
%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} >= 8
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} >= 8
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} >= 8
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} >= 8
%{__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} >= 8
%files -n python3-%{name}
%doc CHANGES LICENSE README* TODO
%{python3_sitelib}/*elftools*
%{_bindir}/py3readelf
%endif
%changelog
* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.22-0.7.git20130619.a1d9681
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.22-0.6.git20130619.a1d9681
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.22-0.5.git20130619.a1d9681
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.22-0.4.git20130619.a1d9681
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue May 27 2014 Kalev Lember <kalevlember@gmail.com> - 0.22-0.3.git20130619.a1d9681
- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4
* Wed Oct 02 2013 Björn Esser <bjoern.esser@gmail.com> - 0.22-0.2.git20130619.a1d9681
- adaptions for new Python-guidelines
* 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)