modernize the capstone specfile, rebuild for EPEL

This commit is contained in:
Michal Ambroz 2021-05-14 22:20:54 +02:00
parent 72b713c48b
commit 4e6db8ca3a
2 changed files with 40 additions and 43 deletions

View File

@ -1,6 +1,4 @@
from Config import addFilter
addFilter('capstone.*: macro-in-comment.*')
addFilter('capstone.*: rpm-buildroot-usage %build sed -i .s;%{buildroot};;.*')
addFilter('capstone.*: specfile-error warning: Macro expanded in comment on line ..: %{gituser}/%{gitname}/archive/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz')

View File

@ -1,18 +1,19 @@
Name: capstone
Version: 4.0.2
Release: 4%{?dist}
Release: 5%{?dist}
Summary: A lightweight multi-platform, multi-architecture disassembly framework
%global gituser aquynh
%global gitname capstone
# 4.0.1 release
%global commit f9c6a90489be7b3637ff1c7298e45efafe7cf1b9
# 4.0.2 release
%global commit 1d230532840a37ac032c6ab80128238fc930c6c1
%global shortcommit %(c=%{commit}; echo ${c:0:7})
License: BSD
URL: http://www.capstone-engine.org/
VCS: https://github.com/aquynh/capstone/
# https://github.com/aquynh/capstone/releases
#Source0: https://github.com/%{gituser}/%{gitname}/archive/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz
# Source0: https://github.com/%%{gituser}/%%{gitname}/archive/%%{commit}/%%{name}-%%{version}-%%{shortcommit}.tar.gz
Source0: https://github.com/%{gituser}/%{gitname}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
# Test suite binary samples to be used for disassembly
@ -44,22 +45,22 @@ disasm engine for binary analysis and reversing in the security community.}
%global srcname distribute
BuildRequires: gcc
BuildRequires: make
BuildRequires: git
BuildRequires: jna
BuildRequires: java-devel
%if 0%{?with_python2}
%if %{with python2}
BuildRequires: python2
BuildRequires: python2-devel
BuildRequires: python2-setuptools
%endif # if with_python2
%endif
%if 0%{?with_python3}
%if %{with python3}
BuildRequires: python%{python3_pkgversion}
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-setuptools
%endif # if with_python3
BuildRequires: make
%endif
%global _hardened_build 1
@ -78,7 +79,7 @@ developing applications that use %{name}.
%if 0%{?with_python2}
%if %{with python2}
%package -n python2-capstone
%{?python_provide:%python_provide python2-capstone}
# Remove before F30
@ -91,11 +92,12 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n python2-capstone
%{common_desc}
The python2-capstone package contains python bindings for %{name}.
%endif # with_python2
# with_python2
%endif
%if 0%{?with_python3}
%if %{with python3}
%package -n python%{python3_pkgversion}-capstone
%{?python_provide:%python_provide python%{python3_pkgversion}-capstone}
Provides: %{name}-python%{python3_pkgversion} = %{version}-%{release}
@ -108,7 +110,8 @@ Summary: Python3 bindings for %{name}
%description -n python%{python3_pkgversion}-capstone
%{common_desc}
The python%{python3_pkgversion}-capstone package contains python3 bindings for %{name}.
%endif # with_python3
#with python3
%endif
@ -124,13 +127,12 @@ The %{name}-java package contains java bindings for %{name}.
%prep
# autosetup -n %{gitname}-%{commit} -S git
# autosetup -n %%{gitname}-%%{commit} -S git
%autosetup -n %{gitname}-%{version} -S git
%build
#DESTDIR="%{buildroot}"
V=1 CFLAGS="%{optflags}" \
PREFIX="%{_prefix}" LIBDIRARCH="%{_lib}" INCDIR="%{_includedir}" \
%make_build PYTHON2=%{__python2} PYTHON3=%{__python3}
@ -144,18 +146,18 @@ mv capstone.pc.tmp capstone.pc
# build python bindings
pushd bindings/python
%if 0%{?with_python2}
CFLAGS="%{optflags}" %{__python2} setup.py build
%endif # with_python2
%if %{with python2}
%py2_build
%endif
%if 0%{?with_python3}
CFLAGS="%{optflags}" %{__python3} setup.py build
%endif # with_python3
%if %{with python3}
%py3_build
%endif
popd
# build java bindings needs some python
pushd bindings/java
%if 0%{?with_python3}
%if %{with python3}
%make_build PYTHON2=%{__python3} PYTHON3=%{__python3} CFLAGS="%{optflags}" # %{?_smp_mflags} parallel seems broken
%else
%make_build PYTHON2=%{__python2} PYTHON3=%{__python2} CFLAGS="%{optflags}" # %{?_smp_mflags} parallel seems broken
@ -172,13 +174,13 @@ find %{buildroot} -name '*.a' -exec rm -f {} ';'
# install python bindings
pushd bindings/python
%if 0%{?with_python2}
%{__python2} setup.py install --skip-build --root %{buildroot}
%endif # with_python2
%if %{with python2}
%py2_install
%endif
%if 0%{?with_python3}
%{__python3} setup.py install --skip-build --root %{buildroot}
%endif # with_python3
%if %{with python3}
%py3_install
%endif
popd
# install java bindings
@ -186,10 +188,9 @@ install -D -p -m 0644 bindings/java/%{name}.jar %{buildroot}/%{_javadir}/%{name
#%check
#ln -s libcapstone.so libcapstone.so.4
#make check LD_LIBRARY_PATH="`pwd`"
%check
ln -s libcapstone.so.4 libcapstone.so
make check LD_LIBRARY_PATH="`pwd`"
%ldconfig_scriptlets
@ -197,12 +198,7 @@ install -D -p -m 0644 bindings/java/%{name}.jar %{buildroot}/%{_javadir}/%{name
%files
# %license does not work for RHEL<7
%if 0%{?rhel} || 0%{?fedora} < 21
%doc LICENSE.TXT LICENSE_LLVM.TXT
%else
%license LICENSE.TXT LICENSE_LLVM.TXT
%endif # %license workarond for RHEL<7
%doc CREDITS.TXT ChangeLog README.md SPONSORS.TXT
%{_libdir}/*.so.*
%{_bindir}/cstool
@ -216,19 +212,19 @@ install -D -p -m 0644 bindings/java/%{name}.jar %{buildroot}/%{_javadir}/%{name
%if 0%{?with_python2}
%if %{with python2}
%files -n python2-capstone
%{python2_sitelib}/*egg-info
%{python2_sitelib}/%{name}
%endif # _with_python2
%endif
%if 0%{?with_python3}
%if %{with python3}
%files -n python%{python3_pkgversion}-capstone
%{python3_sitelib}/*egg-info
%{python3_sitelib}/%{name}
%endif # _with_python3
%endif
@ -236,6 +232,9 @@ install -D -p -m 0644 bindings/java/%{name}.jar %{buildroot}/%{_javadir}/%{name
%{_javadir}/
%changelog
* Fri May 14 2021 Michal Ambroz <rebus AT_ seznam.cz> - 4.0.2-5
- modernize specfile, using with bcond and py*_build macros
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild