1 # TODO: package go files (where?)
4 %bcond_with static_libs # static libraries
5 %bcond_with golang # Go binding
6 %bcond_without python # Python binding
7 %bcond_without ruby # Ruby binding
9 Summary: Qpid Proton - AMQP messaging toolkit
10 Summary(pl.UTF-8): Qpid Proton - narzędzia do komunikacji AMQP
16 Source0: https://downloads.apache.org/qpid/proton/%{version}/%{name}-%{version}.tar.gz
17 # Source0-md5: 5bb5cc9a50f53c76fe281d5e3d5e5342
18 Patch0: %{name}-format.patch
19 URL: http://qpid.apache.org/proton/
20 BuildRequires: cmake >= 2.8.12
21 BuildRequires: cyrus-sasl-devel
22 BuildRequires: doxygen
23 %{?with_golang:BuildRequires: golang >= 1.11}
24 BuildRequires: libstdc++-devel
25 BuildRequires: libuuid-devel
26 BuildRequires: openssl-devel
27 BuildRequires: pkgconfig
28 BuildRequires: python >= 2
29 %{?with_python:BuildRequires: python-devel}
30 %{?with_ruby:BuildRequires: ruby-devel}
31 %{?with_python:BuildRequires: swig-python}
32 %{?with_ruby:BuildRequires: swig-ruby}
33 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
36 Proton is a high performance, lightweight messaging library. It can be
37 used in the widest range of messaging applications including brokers,
38 client libraries, routers, bridges, proxies, and more. Proton makes it
39 trivial to integrate with the AMQP 1.0 ecosystem from any platform,
40 environment, or language.
42 %description -l pl.UTF-8
43 Proton to wydajna, lekka biblioteka do komunikacji. Może być używana w
44 szerokiej gamie aplikacji komunikacyjnych, w tym brokerów, bibliotek
45 klienckich, routerów, mostków, proxy itp. Proton powoduje, że
46 integrowanie z ekosystemem AMQP 1.0 z woeolnej platformy, środowiska
47 czy języka staje się trywialne.
50 Summary: C libraries for Qpid Proton
51 Summary(pl.UTF-8): Biblioteki C Qpid Proton
55 C libraries for Qpid Proton.
57 %description c -l pl.UTF-8
58 Biblioteki C Qpid Proton.
61 Summary: Development files for Qpid Proton C libraries
62 Summary(pl.UTF-8): Pliki programistyczne bibliotek Qpid Proton dla C
63 Group: Development/Libraries
64 Requires: %{name}-c = %{version}-%{release}
67 Development files for writing messaging apps with Qpid Proton C
70 %description c-devel -l pl.UTF-8
71 Pliki programistyczne do tworzenia aplikacji z wykorzystaniem
72 bibliotek C Qpid Proton.
75 Summary: Documentation for Qpid Proton C API
76 Summary(pl.UTF-8): Dokumentacja API bibliotek C Qpid Proton
78 Obsoletes: qpid-proton-c-devel-doc < 0.31.0
79 %if "%{_rpmversion}" >= "4.6"
83 %description c-apidocs
84 Documentation for Qpid Proton C API.
86 %description c-apidocs -l pl.UTF-8
87 Dokumentacja API bibliotek C Qpid Proton.
90 Summary: C++ libraries for Qpid Proton
91 Summary(pl.UTF-8): Biblioteki C++ Qpid Proton
93 Requires: %{name}-c = %{version}-%{release}
94 Requires: libstdc++-devel
97 C++ libraries for Qpid Proton.
99 %description cpp -l pl.UTF-8
100 Biblioteki C++ Qpid Proton.
103 Summary: Development files for Qpid Proton C++ library
104 Summary(pl.UTF-8): Pliki programistyczne biblioteki Qpid Proton dla C++
105 Group: Development/Libraries
106 Requires: %{name}-c-devel = %{version}-%{release}
107 Requires: %{name}-cpp = %{version}-%{release}
109 %description cpp-devel
110 Development files for writing messaging apps with Qpid Proton C++
113 %description cpp-devel -l pl.UTF-8
114 Pliki programistyczne do tworzenia aplikacji z wykorzystaniem
115 biblioteki C++ Qpid Proton.
118 Summary: Documentation for Qpid Proton C++ API
119 Summary(pl.UTF-8): Dokumentacja API biblioteki C++ Qpid Proton
121 %if "%{_rpmversion}" >= "4.6"
125 %description cpp-apidocs
126 Documentation for Qpid Proton C++ API.
128 %description c-apidocs -l pl.UTF-8
129 Dokumentacja API biblioteki C++ Qpid Proton.
132 %package -n python-%{name}
133 Summary: Python language bindings for the Qpid Proton messaging framework
134 Summary(pl.UTF-8): Wiązania Pythona do szkieletu komunikacji Qpid Proton
135 Group: Libraries/Python
136 Requires: %{name}-c = %{version}-%{release}
138 %description -n python-%{name}
139 Python language bindings for the Qpid Proton messaging framework.
141 %description -n python-%{name} -l pl.UTF-8
142 Wiązania Pythona do szkieletu komunikacji Qpid Proton.
144 %package -n python-%{name}-apidocs
145 Summary: Documentation for the Python language bindings for Qpid Proton
146 Summary(pl.UTF-8): Dokumentacja wiązań Pythona do biblioteki Qpid Proton
148 Obsoletes: python-qpid-proton-doc < 0.31.0
149 %if "%{_rpmversion}" >= "4.6"
153 %description -n python-%{name}-apidocs
154 Documentation for the Python language bindings for Qpid Proton.
156 %description -n python-%{name}-apidocs -l pl.UTF-8
157 Dokumentacja wiązań Pythona do biblioteki Qpid Proton.
159 %package -n ruby-%{name}
160 Summary: Ruby language bindings for the Qpid Proton messaging framework
161 Summary(pl.UTF-8): Wiązania języka Ruby do szkieletu komunikacji Qpid Proton
162 Group: Development/Languages
163 Requires: %{name}-c = %{version}-%{release}
164 Requires: ruby-modules
166 %description -n ruby-%{name}
167 Ruby language bindings for the Qpid Proton messaging framework.
169 %description -n ruby-%{name} -l pl.UTF-8
170 Wiązania języka Ruby do szkieletu komunikacji Qpid Proton.
176 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
180 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' \
187 -DBUILD_BINDINGS="cpp;go%{?with_python:;python}%{?with_ruby:;ruby}" \
188 %{?with_golang:-DBUILD_GO=ON} \
189 %{?with_static_libs:-DBUILD_STATIC_LIBS=ON} \
190 -DPYTHON_SITEARCH_PACKAGES=%{py_sitedir} \
191 -DSYSINSTALL_PYTHON=ON
196 rm -rf $RPM_BUILD_ROOT
198 %{__make} -C build install \
199 DESTDIR=$RPM_BUILD_ROOT
201 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/proton/{CMakeLists.txt,LICENSE.txt,README.md,examples/README.md,tests}
203 install -d $RPM_BUILD_ROOT{%{_examplesdir},%{_docdir}/%{name}}
204 %{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/examples/c $RPM_BUILD_ROOT%{_examplesdir}/%{name}-c-%{version}
205 %{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/examples/cpp $RPM_BUILD_ROOT%{_examplesdir}/%{name}-cpp-%{version}
206 %{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/docs/api-c $RPM_BUILD_ROOT%{_docdir}/%{name}
207 %{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/docs/api-cpp $RPM_BUILD_ROOT%{_docdir}/%{name}
210 %{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/docs/api-py $RPM_BUILD_ROOT%{_docdir}/%{name}
211 %{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/examples/python $RPM_BUILD_ROOT%{_examplesdir}/python-%{name}-%{version}
217 %{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/examples/ruby $RPM_BUILD_ROOT%{_examplesdir}/ruby-%{name}-%{version}
221 rm -rf $RPM_BUILD_ROOT
223 %post c -p /sbin/ldconfig
224 %postun c -p /sbin/ldconfig
226 %post cpp -p /sbin/ldconfig
227 %postun cpp -p /sbin/ldconfig
230 %defattr(644,root,root,755)
231 %doc NOTICE.txt README.md
232 %attr(755,root,root) %{_libdir}/libqpid-proton.so.*.*.*
233 %attr(755,root,root) %ghost %{_libdir}/libqpid-proton.so.11
234 %attr(755,root,root) %{_libdir}/libqpid-proton-core.so.*.*.*
235 %attr(755,root,root) %ghost %{_libdir}/libqpid-proton-core.so.10
236 %attr(755,root,root) %{_libdir}/libqpid-proton-proactor.so.*.*.*
237 %attr(755,root,root) %ghost %{_libdir}/libqpid-proton-proactor.so.1
240 %defattr(644,root,root,755)
241 %attr(755,root,root) %{_libdir}/libqpid-proton.so
242 %attr(755,root,root) %{_libdir}/libqpid-proton-core.so
243 %attr(755,root,root) %{_libdir}/libqpid-proton-proactor.so
244 %dir %{_includedir}/proton
245 %{_includedir}/proton/*.h
246 %{_includedir}/proton/cproton.i
247 %{_pkgconfigdir}/libqpid-proton.pc
248 %{_pkgconfigdir}/libqpid-proton-core.pc
249 %{_pkgconfigdir}/libqpid-proton-proactor.pc
250 %{_libdir}/cmake/Proton
253 %defattr(644,root,root,755)
254 %dir %{_docdir}/%{name}
255 %{_docdir}/%{name}/api-c
256 %{_examplesdir}/%{name}-c-%{version}
259 %defattr(644,root,root,755)
260 %attr(755,root,root) %{_libdir}/libqpid-proton-cpp.so.*.*.*
261 %attr(755,root,root) %ghost %{_libdir}/libqpid-proton-cpp.so.12
264 %defattr(644,root,root,755)
265 %attr(755,root,root) %{_libdir}/libqpid-proton-cpp.so
266 %{_includedir}/proton/*.hpp
267 %{_includedir}/proton/codec
268 %{_includedir}/proton/internal
269 %{_includedir}/proton/io
270 %{_pkgconfigdir}/libqpid-proton-cpp.pc
271 %{_libdir}/cmake/ProtonCpp
274 %defattr(644,root,root,755)
275 %dir %{_docdir}/%{name}
276 %{_docdir}/%{name}/api-cpp
277 %{_examplesdir}/%{name}-cpp-%{version}
280 %files -n python-%{name}
281 %defattr(644,root,root,755)
282 %attr(755,root,root) %{py_sitedir}/_cproton.so
283 %{py_sitedir}/cproton.py[co]
286 %files -n python-%{name}-apidocs
287 %defattr(644,root,root,755)
288 %dir %{_docdir}/%{name}
289 %{_docdir}/%{name}/api-py
290 %{_examplesdir}/python-%{name}-%{version}
294 %files -n ruby-%{name}
295 %defattr(644,root,root,755)
297 # cannot use SYSINSTALL_RUBY for now because...
298 %attr(755,root,root) %{ruby_vendorarchdir}/cproton.so
299 %{ruby_vendorarchdir}/qpid_proton.rb
300 # the files below are likely to conflict with other ruby packages
301 %{ruby_vendorarchdir}/codec
302 %{ruby_vendorarchdir}/core
303 %{ruby_vendorarchdir}/handler
304 %{ruby_vendorarchdir}/reactor
305 %{ruby_vendorarchdir}/types
306 %{ruby_vendorarchdir}/util
308 # ...so use private install
309 %dir %{_libdir}/proton
310 %dir %{_libdir}/proton/bindings
311 %dir %{_libdir}/proton/bindings/ruby
312 %attr(755,root,root) %{_libdir}/proton/bindings/ruby/cproton.so
313 %{_libdir}/proton/bindings/ruby/qpid_proton.rb
314 %{_libdir}/proton/bindings/ruby/codec
315 %{_libdir}/proton/bindings/ruby/core
316 %{_libdir}/proton/bindings/ruby/handler
317 %{_libdir}/proton/bindings/ruby/reactor
318 %{_libdir}/proton/bindings/ruby/types
319 %{_libdir}/proton/bindings/ruby/util
321 %{_examplesdir}/ruby-%{name}-%{version}