xref: /aosp_15_r20/external/capstone/packages/rpm/capstone.spec (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf EbrahimiName:           capstone
2*9a0e4156SSadaf EbrahimiVersion:        3.0.4
3*9a0e4156SSadaf EbrahimiRelease:        2
4*9a0e4156SSadaf EbrahimiSummary:        A lightweight multi-platform, multi-architecture disassembly framework
5*9a0e4156SSadaf Ebrahimi
6*9a0e4156SSadaf EbrahimiLicense:        BSD
7*9a0e4156SSadaf EbrahimiURL:            http://www.capstone-engine.org/
8*9a0e4156SSadaf EbrahimiSource0:        http://www.capstone-engine.org/download/%{version}/%{name}-%{version}.tar.gz
9*9a0e4156SSadaf Ebrahimi
10*9a0e4156SSadaf Ebrahimi%if 0%{?fedora} > 12
11*9a0e4156SSadaf Ebrahimi%global with_python3 1
12*9a0e4156SSadaf Ebrahimi%else
13*9a0e4156SSadaf Ebrahimi%{!?__python2: %global __python2 /usr/bin/python2}
14*9a0e4156SSadaf Ebrahimi%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")}
15*9a0e4156SSadaf Ebrahimi%endif
16*9a0e4156SSadaf Ebrahimi
17*9a0e4156SSadaf Ebrahimi%global srcname distribute
18*9a0e4156SSadaf Ebrahimi
19*9a0e4156SSadaf EbrahimiBuildRequires:  python2-devel
20*9a0e4156SSadaf EbrahimiBuildRequires:  jna
21*9a0e4156SSadaf EbrahimiBuildRequires:  java-devel
22*9a0e4156SSadaf Ebrahimi%if 0%{?with_python3}
23*9a0e4156SSadaf EbrahimiBuildRequires:  python3-devel
24*9a0e4156SSadaf Ebrahimi%endif # if with_python3
25*9a0e4156SSadaf Ebrahimi%global _hardened_build 1
26*9a0e4156SSadaf Ebrahimi
27*9a0e4156SSadaf Ebrahimi
28*9a0e4156SSadaf Ebrahimi%description
29*9a0e4156SSadaf EbrahimiCapstone is a disassembly framework with the target of becoming the ultimate
30*9a0e4156SSadaf Ebrahimidisasm engine for binary analysis and reversing in the security community.
31*9a0e4156SSadaf Ebrahimi
32*9a0e4156SSadaf Ebrahimi%package        devel
33*9a0e4156SSadaf EbrahimiSummary:        Development files for %{name}
34*9a0e4156SSadaf EbrahimiRequires:       %{name}%{?_isa} = %{version}-%{release}
35*9a0e4156SSadaf Ebrahimi
36*9a0e4156SSadaf Ebrahimi%description    devel
37*9a0e4156SSadaf EbrahimiThe %{name}-devel package contains libraries and header files for
38*9a0e4156SSadaf Ebrahimideveloping applications that use %{name}.
39*9a0e4156SSadaf Ebrahimi
40*9a0e4156SSadaf Ebrahimi%package        python
41*9a0e4156SSadaf EbrahimiSummary:        Python bindings for %{name}
42*9a0e4156SSadaf EbrahimiRequires:       %{name}%{?_isa} = %{version}-%{release}
43*9a0e4156SSadaf Ebrahimi
44*9a0e4156SSadaf Ebrahimi%description    python
45*9a0e4156SSadaf EbrahimiThe %{name}-python package contains python bindings for %{name}.
46*9a0e4156SSadaf Ebrahimi
47*9a0e4156SSadaf Ebrahimi%if 0%{?with_python3}
48*9a0e4156SSadaf Ebrahimi%package	python3
49*9a0e4156SSadaf EbrahimiSummary:	Python3 bindings for %{name}
50*9a0e4156SSadaf EbrahimiRequires:	%{name}%{?_isa} = %{version}-%{release}
51*9a0e4156SSadaf Ebrahimi
52*9a0e4156SSadaf Ebrahimi%description	python3
53*9a0e4156SSadaf EbrahimiThe %{name}-python3 package contains python3 bindings for %{name}.
54*9a0e4156SSadaf Ebrahimi%endif # with_python3
55*9a0e4156SSadaf Ebrahimi
56*9a0e4156SSadaf Ebrahimi%package        java
57*9a0e4156SSadaf EbrahimiSummary:        Java bindings for %{name}
58*9a0e4156SSadaf EbrahimiRequires:       %{name} = %{version}-%{release}
59*9a0e4156SSadaf EbrahimiBuildArch:      noarch
60*9a0e4156SSadaf Ebrahimi
61*9a0e4156SSadaf Ebrahimi%description    java
62*9a0e4156SSadaf EbrahimiThe %{name}-java package contains java bindings for %{name}.
63*9a0e4156SSadaf Ebrahimi
64*9a0e4156SSadaf Ebrahimi%prep
65*9a0e4156SSadaf Ebrahimi%setup -q
66*9a0e4156SSadaf Ebrahimi
67*9a0e4156SSadaf Ebrahimi%build
68*9a0e4156SSadaf EbrahimiDESTDIR="%{buildroot}" 	V=1 CFLAGS="%{optflags}" \
69*9a0e4156SSadaf EbrahimiLIBDIRARCH="%{_lib}" INCDIR="%{_includedir}" make %{?_smp_mflags}
70*9a0e4156SSadaf Ebrahimi
71*9a0e4156SSadaf Ebrahimi# Fix pkgconfig file
72*9a0e4156SSadaf Ebrahimised -i 's;%{buildroot};;' capstone.pc
73*9a0e4156SSadaf Ebrahimigrep -v archive capstone.pc > capstone.pc.tmp
74*9a0e4156SSadaf Ebrahimimv capstone.pc.tmp capstone.pc
75*9a0e4156SSadaf Ebrahimi
76*9a0e4156SSadaf Ebrahimi# build python bindings
77*9a0e4156SSadaf Ebrahimipushd bindings/python
78*9a0e4156SSadaf EbrahimiCFLAGS="%{optflags}" %{__python2} setup.py build
79*9a0e4156SSadaf Ebrahimi%if 0%{?with_python3}
80*9a0e4156SSadaf EbrahimiCFLAGS="%{optflags}" %{__python3} setup.py build
81*9a0e4156SSadaf Ebrahimi%endif # with_python3
82*9a0e4156SSadaf Ebrahimipopd
83*9a0e4156SSadaf Ebrahimi
84*9a0e4156SSadaf Ebrahimi# build java bindings
85*9a0e4156SSadaf Ebrahimipushd bindings/java
86*9a0e4156SSadaf Ebrahimimake CFLAGS="%{optflags}" # %{?_smp_mflags} parallel seems broken
87*9a0e4156SSadaf Ebrahimipopd
88*9a0e4156SSadaf Ebrahimi
89*9a0e4156SSadaf Ebrahimi%install
90*9a0e4156SSadaf EbrahimiDESTDIR=%{buildroot} LIBDIRARCH=%{_lib} \
91*9a0e4156SSadaf EbrahimiINCDIR="%{_includedir}" make install
92*9a0e4156SSadaf Ebrahimifind %{buildroot} -name '*.la' -exec rm -f {} ';'
93*9a0e4156SSadaf Ebrahimifind %{buildroot} -name '*.a' -exec rm -f {} ';'
94*9a0e4156SSadaf Ebrahimi
95*9a0e4156SSadaf Ebrahimi# install python bindings
96*9a0e4156SSadaf Ebrahimipushd bindings/python
97*9a0e4156SSadaf Ebrahimi%{__python2} setup.py install --skip-build --root %{buildroot}
98*9a0e4156SSadaf Ebrahimi%if 0%{?with_python3}
99*9a0e4156SSadaf Ebrahimi%{__python3} setup.py install --skip-build --root %{buildroot}
100*9a0e4156SSadaf Ebrahimi%endif # with_python3
101*9a0e4156SSadaf Ebrahimipopd
102*9a0e4156SSadaf Ebrahimi
103*9a0e4156SSadaf Ebrahimi# install java bindings
104*9a0e4156SSadaf Ebrahimiinstall -D -p -m 0644 bindings/java/%{name}.jar  %{buildroot}/%{_javadir}/%{name}.jar
105*9a0e4156SSadaf Ebrahimi
106*9a0e4156SSadaf Ebrahimi%check
107*9a0e4156SSadaf Ebrahimiln -s libcapstone.so libcapstone.so.3
108*9a0e4156SSadaf Ebrahimimake check LD_LIBRARY_PATH="`pwd`"
109*9a0e4156SSadaf Ebrahimi
110*9a0e4156SSadaf Ebrahimi%post -p /sbin/ldconfig
111*9a0e4156SSadaf Ebrahimi
112*9a0e4156SSadaf Ebrahimi%postun -p /sbin/ldconfig
113*9a0e4156SSadaf Ebrahimi
114*9a0e4156SSadaf Ebrahimi
115*9a0e4156SSadaf Ebrahimi%files
116*9a0e4156SSadaf Ebrahimi# %license does not work for RHEL<7
117*9a0e4156SSadaf Ebrahimi%if 0%{?rhel} || 0%{?fedora} < 21
118*9a0e4156SSadaf Ebrahimi%doc LICENSE.TXT LICENSE_LLVM.TXT
119*9a0e4156SSadaf Ebrahimi%else
120*9a0e4156SSadaf Ebrahimi%license LICENSE.TXT LICENSE_LLVM.TXT
121*9a0e4156SSadaf Ebrahimi%endif # %license workarond for RHEL<7
122*9a0e4156SSadaf Ebrahimi%doc README ChangeLog
123*9a0e4156SSadaf Ebrahimi%{_libdir}/*.so.*
124*9a0e4156SSadaf Ebrahimi
125*9a0e4156SSadaf Ebrahimi%files devel
126*9a0e4156SSadaf Ebrahimi%{_includedir}/*
127*9a0e4156SSadaf Ebrahimi%{_libdir}/*.so
128*9a0e4156SSadaf Ebrahimi%{_libdir}/pkgconfig/*
129*9a0e4156SSadaf Ebrahimi
130*9a0e4156SSadaf Ebrahimi%files python
131*9a0e4156SSadaf Ebrahimi%{python2_sitelib}/*egg-info
132*9a0e4156SSadaf Ebrahimi%{python2_sitelib}/%{name}
133*9a0e4156SSadaf Ebrahimi
134*9a0e4156SSadaf Ebrahimi%if 0%{?with_python3}
135*9a0e4156SSadaf Ebrahimi%files python3
136*9a0e4156SSadaf Ebrahimi%{python3_sitelib}/*egg-info
137*9a0e4156SSadaf Ebrahimi%{python3_sitelib}/%{name}
138*9a0e4156SSadaf Ebrahimi%endif # _with_python3
139*9a0e4156SSadaf Ebrahimi
140*9a0e4156SSadaf Ebrahimi%files java
141*9a0e4156SSadaf Ebrahimi%{_javadir}/
142*9a0e4156SSadaf Ebrahimi
143*9a0e4156SSadaf Ebrahimi%changelog
144*9a0e4156SSadaf Ebrahimi* Thu Jul 16 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.4-2
145*9a0e4156SSadaf Ebrahimi- Fix EPEL6 build problems
146*9a0e4156SSadaf Ebrahimi
147*9a0e4156SSadaf Ebrahimi* Wed Jul 15 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.4-1
148*9a0e4156SSadaf Ebrahimi- new version 3.0.4. Includes security fixes.
149*9a0e4156SSadaf Ebrahimi
150*9a0e4156SSadaf Ebrahimi* Tue May 12 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.3-2
151*9a0e4156SSadaf Ebrahimi- Addressed issues found during package review.
152*9a0e4156SSadaf Ebrahimi
153*9a0e4156SSadaf Ebrahimi* Fri May 08 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.3-1
154*9a0e4156SSadaf Ebrahimi-  Update to version 3.0.3
155*9a0e4156SSadaf Ebrahimi
156*9a0e4156SSadaf Ebrahimi* Fri May 08 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.2-3
157*9a0e4156SSadaf Ebrahimi- Added python3 and hardened build support. Update java building.
158*9a0e4156SSadaf Ebrahimi- Various cleanups.
159*9a0e4156SSadaf Ebrahimi
160*9a0e4156SSadaf Ebrahimi* Wed May 06 2015 Stefan Cornelius <scorneli@redhat.com> - 3.0.2-2
161*9a0e4156SSadaf Ebrahimi- Update to 3.0.2. Fix 64bit issues. add %check.
162*9a0e4156SSadaf Ebrahimi
163*9a0e4156SSadaf Ebrahimi* Sat Sep 27 2014 Adel Gadllah <adel.gadllah@gmail.com> - 2.1.2-2
164*9a0e4156SSadaf Ebrahimi- Addressed issues found during package review.
165*9a0e4156SSadaf Ebrahimi
166*9a0e4156SSadaf Ebrahimi* Mon May 19 2014 Adel Gadllah <adel.gadllah@gmail.com> - 2.1.2-1
167*9a0e4156SSadaf Ebrahimi- Initial package
168