Name: capstone Version: 4.0.1 Release: 2%{?dist} Summary: A lightweight multi-platform, multi-architecture disassembly framework %global gituser aquynh %global gitname capstone # 4.0.1 release %global commit f9c6a90489be7b3637ff1c7298e45efafe7cf1b9 # #global commit 75c05281b4bc8e8c41a1ab7f91705401caa3832a %global shortcommit %(c=%{commit}; echo ${c:0:7}) License: BSD URL: http://www.capstone-engine.org/ # 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/%{version}.tar.gz#/%{name}-%{version}.tar.gz # Test suite binary samples to be used for disassembly # Source1: # Fedora 29 makes python executable separate from python2 and python3. This patch makes # it possible to specify PYTHON2 and PYTHON3 binary to be explicit that by "python" we mean "python2" # Patch0: capstone-python.patch # Upstream patch which fixes libcapstone.pc. # See: https://github.com/aquynh/capstone/issues/1339 Patch1: 0001-Fix-include-path-in-pkg-config-for-Makefile-too-1339.patch %if 0%{?fedora} > 12 %global with_python3 1 %else %{!?__python2: %global __python2 /usr/bin/python2} %{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")} %endif %global srcname distribute BuildRequires: gcc BuildRequires: git BuildRequires: python2 BuildRequires: python2-devel BuildRequires: python2-setuptools BuildRequires: jna BuildRequires: java-devel %if 0%{?with_python3} BuildRequires: python%{python3_pkgversion} BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools %endif # if with_python3 %global _hardened_build 1 %description Capstone is a disassembly framework with the target of becoming the ultimate disasm engine for binary analysis and reversing in the security community. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package -n python2-capstone %{?python_provide:%python_provide python2-capstone} # Remove before F30 Provides: %{name}-python = %{version}-%{release} Provides: %{name}-python%{?_isa} = %{version}-%{release} Obsoletes: %{name}-python < %{version}-%{release} Summary: Python bindings for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description -n python2-capstone The %{name}-python package contains python bindings for %{name}. %if 0%{?with_python3} %package -n python%{python3_pkgversion}-capstone %{?python_provide:%python_provide python%{python3_pkgversion}-capstone} # Remove before F30 Provides: %{name}-python%{python3_pkgversion} = %{version}-%{release} Provides: %{name}-python%{python3_pkgversion}%{?_isa} = %{version}-%{release} Obsoletes: %{name}-python%{python3_pkgversion} < %{version}-%{release} Summary: Python bindings for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Summary: Python3 bindings for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description -n python%{python3_pkgversion}-capstone The %{name}-python3 package contains python3 bindings for %{name}. %endif # with_python3 %package java Summary: Java bindings for %{name} Requires: %{name} = %{version}-%{release} BuildArch: noarch %description java The %{name}-java package contains java bindings for %{name}. %prep # autosetup -n %{gitname}-%{commit} -S git %autosetup -n %{gitname}-%{version} -S git %build DESTDIR="%{buildroot}" V=1 CFLAGS="%{optflags}" \ LIBDIRARCH="%{_lib}" INCDIR="%{_includedir}" \ make PYTHON2=%{__python2} PYTHON3=%{__python3} %{?_smp_mflags} # Fix pkgconfig file sed -i 's;%{buildroot};;' capstone.pc grep -v archive capstone.pc > capstone.pc.tmp mv capstone.pc.tmp capstone.pc # build python bindings pushd bindings/python CFLAGS="%{optflags}" %{__python2} setup.py build %if 0%{?with_python3} CFLAGS="%{optflags}" %{__python3} setup.py build %endif # with_python3 popd # build java bindings pushd bindings/java make PYTHON2=%{__python2} PYTHON3=%{__python3} CFLAGS="%{optflags}" # %{?_smp_mflags} parallel seems broken popd %install DESTDIR=%{buildroot} LIBDIRARCH=%{_lib} \ INCDIR="%{_includedir}" make install find %{buildroot} -name '*.la' -exec rm -f {} ';' find %{buildroot} -name '*.a' -exec rm -f {} ';' # install python bindings pushd bindings/python %{__python2} setup.py install --skip-build --root %{buildroot} %if 0%{?with_python3} %{__python3} setup.py install --skip-build --root %{buildroot} %endif # with_python3 popd # install java bindings install -D -p -m 0644 bindings/java/%{name}.jar %{buildroot}/%{_javadir}/%{name}.jar #%check #ln -s libcapstone.so libcapstone.so.4 #make check LD_LIBRARY_PATH="`pwd`" %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %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 %files devel %{_includedir}/* %{_libdir}/*.so %{_libdir}/pkgconfig/* %files -n python2-capstone %{python2_sitelib}/*egg-info %{python2_sitelib}/%{name} %if 0%{?with_python3} %files -n python%{python3_pkgversion}-capstone %{python3_sitelib}/*egg-info %{python3_sitelib}/%{name} %endif # _with_python3 %files java %{_javadir}/ %changelog * Sat Jan 12 2019 Richard W.M. Jones - 4.0.1-2 - Add upstream patch which fixes libcapstone.pc https://github.com/aquynh/capstone/issues/1339 * Fri Jan 11 2019 Michal Ambroz - 4.0.1-1 - bump to 4.0.1 release * Mon Aug 27 2018 Michal Ambroz - 3.0.5-1 - bump to 3.0.5 * Thu Jul 12 2018 Fedora Release Engineering - 3.0.4-18 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Mon Jul 02 2018 Miro Hrončok - 3.0.4-17 - Rebuilt for Python 3.7 * Tue Jun 26 2018 Michal Ambroz - 3.0.4-16 - unify the naming convention for the python packages - fix the python3 package naming for EPEL7 * Tue Jun 19 2018 Miro Hrončok - 3.0.4-15 - Rebuilt for Python 3.7 * Fri Feb 09 2018 Igor Gnatenko - 3.0.4-14 - Escape macros in %%changelog * Wed Feb 07 2018 Fedora Release Engineering - 3.0.4-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 3.0.4-12 - Add Provides for the old name without %%_isa * Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 3.0.4-11 - Python 2 binary package renamed to python2-capstone See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 * Wed Aug 02 2017 Fedora Release Engineering - 3.0.4-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 3.0.4-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Fri Feb 10 2017 Fedora Release Engineering - 3.0.4-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Mon Dec 19 2016 Miro Hrončok - 3.0.4-7 - Rebuild for Python 3.6 * Tue Jul 19 2016 Fedora Release Engineering - 3.0.4-6 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages * Wed Feb 03 2016 Fedora Release Engineering - 3.0.4-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Tue Oct 27 2015 Stefan Cornelius - 3.0.4-4 - Really add dist tag this time * Sun Oct 25 2015 Stefan Cornelius - 3.0.4-3 - Fix issues found during package review: dist tag, git sources * Thu Jul 16 2015 Stefan Cornelius - 3.0.4-2 - Fix EPEL6 build problems * Wed Jul 15 2015 Stefan Cornelius - 3.0.4-1 - new version 3.0.4. Includes security fixes. * Tue May 12 2015 Stefan Cornelius - 3.0.3-2 - Addressed issues found during package review. * Fri May 08 2015 Stefan Cornelius - 3.0.3-1 - Update to version 3.0.3 * Fri May 08 2015 Stefan Cornelius - 3.0.2-3 - Added python3 and hardened build support. Update java building. - Various cleanups. * Wed May 06 2015 Stefan Cornelius - 3.0.2-2 - Update to 3.0.2. Fix 64bit issues. add %%check. * Sat Sep 27 2014 Adel Gadllah - 2.1.2-2 - Addressed issues found during package review. * Mon May 19 2014 Adel Gadllah - 2.1.2-1 - Initial package