[packages/capstone] - new
qboosh
qboosh at pld-linux.org
Sat May 23 21:37:11 CEST 2020
commit 0dbcf2b0c924642e93b379e31ae42e6944fd8c2b
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Sat May 23 21:37:42 2020 +0200
- new
capstone-libsuffix.patch | 18 +++++++
capstone-shared.patch | 11 ++++
capstone.spec | 130 +++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 159 insertions(+)
---
diff --git a/capstone.spec b/capstone.spec
new file mode 100644
index 0000000..e8cf112
--- /dev/null
+++ b/capstone.spec
@@ -0,0 +1,130 @@
+#
+# Conditional build:
+%bcond_without static_libs # static library
+
+Summary: Capstone engine - dissassembly framework
+Summary(pl.UTF-8): Silnik Capstone - szkielet do disasemblacji
+Name: capstone
+Version: 4.0.1
+Release: 1
+License: BSD
+Group: Libraries
+#Source0Download: https://github.com/aquynh/capstone/releases
+Source0: https://github.com/aquynh/capstone/archive/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 1b0a9a0d50d9515dcf7684ce0a2270a4
+Patch0: %{name}-shared.patch
+Patch1: %{name}-libsuffix.patch
+URL: http://www.capstone-engine.org/
+BuildRequires: cmake >= 2.6
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+Capstone is a disassembly framework with the target of becoming the
+ultimate disasm engine for binary analysis and reversing in the
+security community. Capstone offers some unparalleled features:
+- Support for multiple hardware architectures: ARM, ARM64 (ARMv8),
+ Ethereum VM, M68K, MIPS, PPC, SPARC, SystemZ, TMS320C64X, M680X,
+ XCore and X86 (including X86_64).
+- Having clean/simple/lightweight/intuitive architecture-neutral API.
+- Provide details on disassembled instruction ("decomposer").
+- Provide semantics of the disassembled instruction, such as list of
+ implicit registers read & written.
+- Implemented in pure C language, with lightweight bindings for many
+ languages.
+- Native support for all popular platforms: Windows, MacOS X, iOS,
+ Android, Linux, *BSD, Solaris, etc.
+- Thread-safe by design.
+- Special support for embedding into firmware or OS kernel.
+- High performance & suitable for malware analysis (capable of
+ handling various X86 malware tricks).
+- Distributed under the open source BSD license.
+
+%description -l pl.UTF-8
+Capstone to szkielet do disasemblacji o aspiracjach do stania się
+standardowym silnikiem disasemblującym do analizy binariów i
+inżynierii wstecznej wśród społeczności związanej z bezpieczeństwem.
+Oferuje trochę niespotykanych możliwości:
+- obsługę wielu architektur sprzętowych: ARM, ARM64 (ARMv8), Ethereum
+ VM, M68K, MIPS, PPC, SPARC, SystemZ, TMS320C64X, M680X, XCore oraz
+ X86 (w tym X86_64)
+- czyste/proste/lekkie/intuicyjne API niezależne od architektury
+- podaje szczegóły disasemblowanej instrukcji ("dekompozycję")
+- podaje semantykę disasemblowanej instrukcji - np. listę niejawnych
+ odczytywanych i zapisywanych rejestrów
+- jest zaimplementowany w czystym C z lekkimi wiązaniami do wielu
+ innych języków
+- natywną obsługę wielu popularnych platform: Windows, MacOS X, iOS,
+ Android, Linux, *BSD, Solaris itp.
+- jest bezpieczny pod kątem wątków
+- specjalną obsługę osadzania w firmwarze lub jądrze systemu
+- wysoką wydajność, przydatność przy analizie podejrzanego
+ oprogramowania (obsługę różnych sztuczek architektury X86)
+- jest udostępniony z otwartymi źródłami na licencji BSD.
+
+%package devel
+Summary: Header files for Capstone dissassembler library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki disasemblera Capstone
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Header files for Capstone dissassembler library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki disasemblera Capstone.
+
+%package static
+Summary: Static Capstone dissassembler library
+Summary(pl.UTF-8): Biblioteka statyczna disasemblera Capstone
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description static
+Static Capstone dissassembler library.
+
+%description static -l pl.UTF-8
+Biblioteka statyczna disasemblera Capstone.
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+
+%build
+install -d build
+cd build
+%cmake .. \
+ %{!?with_static_libs:-DCAPSTONE_BUILD_STATIC=OFF}
+
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} -C build install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+%doc CREDITS.TXT ChangeLog LICENSE.TXT LICENSE_LLVM.TXT README.md SPONSORS.TXT TODO
+%attr(755,root,root) %{_bindir}/cstool
+%attr(755,root,root) %{_libdir}/libcapstone.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libcapstone.so.4
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libcapstone.so
+%{_includedir}/capstone
+%{_pkgconfigdir}/capstone.pc
+
+%if %{with static_libs}
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libcapstone.a
+%endif
diff --git a/capstone-libsuffix.patch b/capstone-libsuffix.patch
new file mode 100644
index 0000000..574b10f
--- /dev/null
+++ b/capstone-libsuffix.patch
@@ -0,0 +1,18 @@
+--- capstone-4.0.1/CMakeLists.txt.orig 2020-05-23 20:26:01.339972482 +0200
++++ capstone-4.0.1/CMakeLists.txt 2020-05-23 20:31:02.661673415 +0200
+@@ -574,14 +574,7 @@
+ source_group("Include\\M680X" FILES ${HEADERS_MC680X})
+ source_group("Include\\EVM" FILES ${HEADERS_EVM})
+
+-### test library 64bit routine:
+-get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
+-
+-if (NOT APPLE AND "${LIB64}" STREQUAL "TRUE")
+- set(LIBSUFFIX 64)
+-else()
+- set(LIBSUFFIX "")
+-endif()
++set(LIBSUFFIX "${LIB_SUFFIX}")
+
+ set(INSTALL_LIB_DIR lib${LIBSUFFIX} CACHE PATH "Installation directory for libraries")
+ mark_as_advanced(INSTALL_LIB_DIR)
diff --git a/capstone-shared.patch b/capstone-shared.patch
new file mode 100644
index 0000000..a741dad
--- /dev/null
+++ b/capstone-shared.patch
@@ -0,0 +1,11 @@
+Link cstool with capstone-shared instead of -static
+--- capstone-4.0.1/CMakeLists.txt.orig 2019-01-10 14:45:56.000000000 +0100
++++ capstone-4.0.1/CMakeLists.txt 2020-05-23 20:25:12.603569843 +0200
+@@ -491,7 +491,6 @@
+ if (CAPSTONE_BUILD_STATIC)
+ add_library(capstone-static STATIC ${ALL_SOURCES} ${ALL_HEADERS})
+ set_property(TARGET capstone-static PROPERTY OUTPUT_NAME capstone)
+- set(default-target capstone-static)
+ endif ()
+
+ # Force static runtime libraries
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/capstone.git/commitdiff/0dbcf2b0c924642e93b379e31ae42e6944fd8c2b
More information about the pld-cvs-commit
mailing list