]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/thrift/contrib/thrift.spec
buildsys: switch source download to quincy
[ceph.git] / ceph / src / jaegertracing / thrift / contrib / thrift.spec
1 #
2 # Licensed to the Apache Software Foundation (ASF) under one
3 # or more contributor license agreements. See the NOTICE file
4 # distributed with this work for additional information
5 # regarding copyright ownership. The ASF licenses this file
6 # to you under the Apache License, Version 2.0 (the
7 # "License"); you may not use this file except in compliance
8 # with the License. You may obtain a copy of the License at
9 #
10 # http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing,
13 # software distributed under the License is distributed on an
14 # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 # KIND, either express or implied. See the License for the
16 # specific language governing permissions and limitations
17 # under the License.
18 #
19
20 %define without_java 1
21 %define without_python 1
22 %define without_tests 1
23
24 %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
25 %{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
26
27 Name: thrift
28 License: Apache License v2.0
29 Group: Development
30 Summary: RPC and serialization framework
31 Version: 0.13.0
32 Release: 0
33 URL: http://thrift.apache.org
34 Packager: Thrift Developers <dev@thrift.apache.org>
35 Source0: %{name}-%{version}.tar.gz
36
37 BuildRequires: gcc >= 3.4.6
38 BuildRequires: gcc-c++
39
40 %if 0%{!?without_java:1}
41 BuildRequires: java-devel >= 0:1.5.0
42 BuildRequires: ant >= 0:1.6.5
43 %endif
44
45 %if 0%{!?without_python:1}
46 BuildRequires: python-devel
47 %endif
48
49 %if 0%{!?without_ruby:1}
50 %define gem_name %{name}
51 BuildRequires: ruby-devel
52 BuildRequires: rubygems-devel
53 %endif
54
55 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
56
57 %description
58 Thrift is a software framework for scalable cross-language services
59 development. It combines a powerful software stack with a code generation
60 engine to build services that work efficiently and seamlessly between C++,
61 Java, C#, Python, Ruby, Perl, PHP, Smalltalk, Erlang, OCaml, Haskell, and
62 other languages.
63
64 %files
65 %defattr(-,root,root)
66 %{_bindir}/thrift
67
68
69 %package lib-cpp
70 Summary: Thrift C++ library
71 Group: Libraries
72
73 %description lib-cpp
74 C++ libraries for Thrift.
75
76 %files lib-cpp
77 %defattr(-,root,root)
78 %{_libdir}/libthrift*.so.*
79 %{_libdir}/libthrift*.so
80
81
82 %package lib-cpp-devel
83 Summary: Thrift C++ library development files
84 Group: Libraries
85 Requires: %{name} = %{version}-%{release}
86 Requires: boost-devel
87 %if 0%{!?without_libevent:1}
88 Requires: libevent-devel >= 1.2
89 %endif
90 %if 0%{!?without_zlib:1}
91 Requires: zlib-devel
92 %endif
93
94 %description lib-cpp-devel
95 C++ static libraries and headers for Thrift.
96
97 %files lib-cpp-devel
98 %defattr(-,root,root)
99 %{_includedir}/thrift/
100 %{_libdir}/libthrift*.*a
101 %{_libdir}/pkgconfig/thrift*.pc
102
103
104 %if 0%{!?without_java:1}
105 %package lib-java
106 Summary: Thrift Java library
107 Group: Libraries
108 Requires: java >= 0:1.5.0
109
110 %description lib-java
111 Java libraries for Thrift.
112
113 %files lib-java
114 %defattr(-,root,root)
115 %{_javadir}/*
116 %endif
117
118
119 %if 0%{!?without_python:1}
120 %package lib-python
121 Summary: Thrift Python library
122 Group: Libraries
123
124 %description lib-python
125 Python libraries for Thrift.
126
127 %files lib-python
128 %defattr(-,root,root)
129 %{python_sitearch}/*
130 %endif
131
132
133 %if 0%{!?without_ruby:1}
134 %package -n rubygem-%{gem_name}
135 Summary: Thrift Ruby library
136 Group: Libraries
137 Obsoletes: %{name}-lib-ruby
138
139 %description -n rubygem-%{gem_name}
140 Ruby libraries for Thrift.
141
142 %files -n rubygem-%{gem_name}
143 %defattr(-,root,root)
144 %{gem_dir}/*
145 %endif
146
147
148 %if 0%{!?without_php:1}
149 %package lib-php
150 Summary: Thrift PHP library
151 Group: Libraries
152
153 %description lib-php
154 PHP libraries for Thrift.
155
156 %files lib-php
157 %defattr(-,root,root)
158 /usr/lib/php/*
159 %endif
160
161
162 %prep
163 %setup -q
164
165 %build
166 [[ -e Makefile.in ]] || ./bootstrap.sh
167 export GEM_HOME=${PWD}/.gem-home
168 export RUBYLIB=${PWD}/lib/rb/lib
169 %configure \
170 %{?without_libevent: --without-libevent } \
171 %{?without_zlib: --without-zlib } \
172 %{?without_tests: --without-tests } \
173 %{?without_java: --without-java } \
174 %{?without_python: --without-python } \
175 %{?without_ruby: --without-ruby } \
176 %{?without_php: --without-php } \
177 %{!?without_php: PHP_PREFIX=${RPM_BUILD_ROOT}/usr/lib/php } \
178 --without-csharp \
179 --without-erlang \
180
181 %if 0%{!?without_ruby:1}
182 eval $(grep "^WITH_RUBY_TRUE" config.log)
183 if [[ "${WITH_RUBY_TRUE}" != "" ]]; then
184 set +x
185 echo ""
186 echo "configure determined that ruby requirements are missing (bundler gem?), either install missing components" >&2
187 echo "or disable the ruby sub-packages as follows:" >&2
188 echo " rpmbuild -D'%without_ruby 1' ..." >&2
189 echo ""
190 exit 1
191 fi
192 %endif
193
194 make %{?_smp_mflags}
195
196 %if 0%{!?without_java:1}
197 cd lib/java
198 %ant
199 cd ../..
200 %endif
201
202 %if 0%{!?without_python:1}
203 cd lib/py
204 CFLAGS="%{optflags}" %{__python} setup.py build
205 cd ../..
206 %endif
207
208 %if 0%{!?without_ruby:1}
209 %gem_install -n lib/rb/thrift*.gem
210 %endif
211
212 %install
213 export GEM_HOME=${PWD}/.gem-home
214 export RUBYLIB=${PWD}/lib/rb/lib
215 %makeinstall
216 ln -s libthrift-%{version}.so ${RPM_BUILD_ROOT}%{_libdir}/libthrift.so.0
217 ln -s libthriftnb-%{version}.so ${RPM_BUILD_ROOT}%{_libdir}/libthriftnb.so.0
218 ln -s libthriftz-%{version}.so ${RPM_BUILD_ROOT}%{_libdir}/libthriftz.so.0
219
220 %if 0%{!?without_java:1}
221 mkdir -p $RPM_BUILD_ROOT%{_javadir}
222 cp -p lib/java/build/*.jar $RPM_BUILD_ROOT%{_javadir}
223 %endif
224
225 %if 0%{!?without_python:1}
226 cd lib/py
227 %{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
228 cd ../..
229 %endif
230
231 %if 0%{!?without_ruby:1}
232 mkdir -p %{buildroot}%{gem_dir}
233 cp -a ./%{gem_dir}/* %{buildroot}%{gem_dir}/
234 %endif
235
236 %clean
237 rm -rf ${RPM_BUILD_ROOT}
238
239
240 %post
241 umask 007
242 /sbin/ldconfig > /dev/null 2>&1
243
244
245 %postun
246 umask 007
247 /sbin/ldconfig > /dev/null 2>&1
248
249 %changelog
250 * Wed Aug 21 2013 Thrift Dev <dev@thrift.apache.org>
251 - Thrift 0.9.1 release.
252 * Wed Oct 10 2012 Thrift Dev <dev@thrift.apache.org>
253 - Thrift 0.9.0 release.