From 4e6db8ca3a7ad52dfb4f443f36d1af744d8c79d6 Mon Sep 17 00:00:00 2001 From: Michal Ambroz Date: Fri, 14 May 2021 22:20:54 +0200 Subject: [PATCH] modernize the capstone specfile, rebuild for EPEL --- capstone.rpmlintrc | 2 -- capstone.spec | 81 +++++++++++++++++++++++----------------------- 2 files changed, 40 insertions(+), 43 deletions(-) diff --git a/capstone.rpmlintrc b/capstone.rpmlintrc index edf9709..f304280 100644 --- a/capstone.rpmlintrc +++ b/capstone.rpmlintrc @@ -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') diff --git a/capstone.spec b/capstone.spec index 09c7598..a9b2fef 100644 --- a/capstone.spec +++ b/capstone.spec @@ -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 - 4.0.2-5 +- modernize specfile, using with bcond and py*_build macros + * Tue Jan 26 2021 Fedora Release Engineering - 4.0.2-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild