From 2e48bb358fb499f98a7cea38f2f919fdee299664 Mon Sep 17 00:00:00 2001 From: Adel Gadllah Date: Sun, 29 Nov 2015 16:46:11 +0100 Subject: [PATCH] Initial import --- .gitignore | 1 + capstone.spec | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 180 insertions(+) create mode 100644 capstone.spec diff --git a/.gitignore b/.gitignore index e69de29..d8ecdf8 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/capstone-3.0.4-e710e4f.tar.gz diff --git a/capstone.spec b/capstone.spec new file mode 100644 index 0000000..c737ce8 --- /dev/null +++ b/capstone.spec @@ -0,0 +1,178 @@ +Name: capstone +Version: 3.0.4 +Release: 4%{?dist} +Summary: A lightweight multi-platform, multi-architecture disassembly framework + +%global gituser aquynh +%global gitname capstone +%global commit e710e4fcf40302c25d7bdc28da93571a61f21f5d +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +License: BSD +URL: http://www.capstone-engine.org/ +Source0: https://github.com/%{gituser}/%{gitname}/archive/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz + +%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: python2-devel +BuildRequires: jna +BuildRequires: java-devel +%if 0%{?with_python3} +BuildRequires: python3-devel +%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 python +Summary: Python bindings for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description python +The %{name}-python package contains python bindings for %{name}. + +%if 0%{?with_python3} +%package python3 +Summary: Python3 bindings for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description python3 +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 +%setup -q -n %{gitname}-%{commit} + +%build +DESTDIR="%{buildroot}" V=1 CFLAGS="%{optflags}" \ +LIBDIRARCH="%{_lib}" INCDIR="%{_includedir}" make %{?_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 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.3 +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 README ChangeLog +%{_libdir}/*.so.* + +%files devel +%{_includedir}/* +%{_libdir}/*.so +%{_libdir}/pkgconfig/* + +%files python +%{python2_sitelib}/*egg-info +%{python2_sitelib}/%{name} + +%if 0%{?with_python3} +%files python3 +%{python3_sitelib}/*egg-info +%{python3_sitelib}/%{name} +%endif # _with_python3 + +%files java +%{_javadir}/ + +%changelog +* 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 diff --git a/sources b/sources index e69de29..7398803 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +0acb350214f3e77657e1fb01a23c8cec capstone-3.0.4-e710e4f.tar.gz