blob: 7486bd59822aa935734976f2ccb95d35c9ff3fda (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
Name: capstone
Version: 3.0.4
Release: 2
Summary: A lightweight multi-platform, multi-architecture disassembly framework
License: BSD
URL: http://www.capstone-engine.org/
Source0: http://www.capstone-engine.org/download/%{version}/%{name}-%{version}.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
%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
* Thu Jul 16 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.4-2
- Fix EPEL6 build problems
* Wed Jul 15 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.4-1
- new version 3.0.4. Includes security fixes.
* Tue May 12 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.3-2
- Addressed issues found during package review.
* Fri May 08 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.3-1
- Update to version 3.0.3
* Fri May 08 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.2-3
- Added python3 and hardened build support. Update java building.
- Various cleanups.
* Wed May 06 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.2-2
- Update to 3.0.2. Fix 64bit issues. add %check.
* Sat Sep 27 2014 Adel Gadllah <adel.gadllah@gmail.com> - 2.1.2-2
- Addressed issues found during package review.
* Mon May 19 2014 Adel Gadllah <adel.gadllah@gmail.com> - 2.1.2-1
- Initial package
|