0a9709d58f227e5f62f7679ddbd84c35f16d78f4
[packages/qpid-proton.git] / qpid-proton.spec
1 # TODO: package go files (where?)
2 #
3 # Conditional build:
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
8
9 Summary:        Qpid Proton - AMQP messaging toolkit
10 Summary(pl.UTF-8):      Qpid Proton - narzędzia do komunikacji AMQP
11 Name:           qpid-proton
12 Version:        0.32.0
13 Release:        1
14 License:        Apache v2.0
15 Group:          Libraries
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)
34
35 %description
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.
41
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.
48
49 %package c
50 Summary:        C libraries for Qpid Proton
51 Summary(pl.UTF-8):      Biblioteki C Qpid Proton
52 Group:          Libraries
53
54 %description c
55 C libraries for Qpid Proton.
56
57 %description c -l pl.UTF-8
58 Biblioteki C Qpid Proton.
59
60 %package c-devel
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}
65
66 %description c-devel
67 Development files for writing messaging apps with Qpid Proton C
68 libraries.
69
70 %description c-devel -l pl.UTF-8
71 Pliki programistyczne do tworzenia aplikacji z wykorzystaniem
72 bibliotek C Qpid Proton.
73
74 %package c-apidocs
75 Summary:        Documentation for Qpid Proton C API
76 Summary(pl.UTF-8):      Dokumentacja API bibliotek C Qpid Proton
77 Group:          Documentation
78 Obsoletes:      qpid-proton-c-devel-doc < 0.31.0
79 %if "%{_rpmversion}" >= "4.6"
80 BuildArch:      noarch
81 %endif
82
83 %description c-apidocs
84 Documentation for Qpid Proton C API.
85
86 %description c-apidocs -l pl.UTF-8
87 Dokumentacja API bibliotek C Qpid Proton.
88
89 %package cpp
90 Summary:        C++ libraries for Qpid Proton
91 Summary(pl.UTF-8):      Biblioteki C++ Qpid Proton
92 Group:          Libraries
93 Requires:       %{name}-c = %{version}-%{release}
94 Requires:       libstdc++-devel
95
96 %description cpp
97 C++ libraries for Qpid Proton.
98
99 %description cpp -l pl.UTF-8
100 Biblioteki C++ Qpid Proton.
101
102 %package cpp-devel
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}
108
109 %description cpp-devel
110 Development files for writing messaging apps with Qpid Proton C++
111 library.
112
113 %description cpp-devel -l pl.UTF-8
114 Pliki programistyczne do tworzenia aplikacji z wykorzystaniem
115 biblioteki C++ Qpid Proton.
116
117 %package cpp-apidocs
118 Summary:        Documentation for Qpid Proton C++ API
119 Summary(pl.UTF-8):      Dokumentacja API biblioteki C++ Qpid Proton
120 Group:          Documentation
121 %if "%{_rpmversion}" >= "4.6"
122 BuildArch:      noarch
123 %endif
124
125 %description cpp-apidocs
126 Documentation for Qpid Proton C++ API.
127
128 %description c-apidocs -l pl.UTF-8
129 Dokumentacja API biblioteki C++ Qpid Proton.
130
131
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}
137
138 %description -n python-%{name}
139 Python language bindings for the Qpid Proton messaging framework.
140
141 %description -n python-%{name} -l pl.UTF-8
142 Wiązania Pythona do szkieletu komunikacji Qpid Proton.
143
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
147 Group:          Documentation
148 Obsoletes:      python-qpid-proton-doc < 0.31.0
149 %if "%{_rpmversion}" >= "4.6"
150 BuildArch:      noarch
151 %endif
152
153 %description -n python-%{name}-apidocs
154 Documentation for the Python language bindings for Qpid Proton.
155
156 %description -n python-%{name}-apidocs -l pl.UTF-8
157 Dokumentacja wiązań Pythona do biblioteki Qpid Proton.
158
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
165
166 %description -n ruby-%{name}
167 Ruby language bindings for the Qpid Proton messaging framework.
168
169 %description -n ruby-%{name} -l pl.UTF-8
170 Wiązania języka Ruby do szkieletu komunikacji Qpid Proton.
171
172 %prep
173 %setup -q
174 %patch0 -p1
175
176 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
177         c/examples/testme \
178         cpp/examples/testme
179
180 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' \
181         python/examples/*.py
182
183 %build
184 install -d build
185 cd build
186 %cmake .. \
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
192
193 %{__make} all docs
194
195 %install
196 rm -rf $RPM_BUILD_ROOT
197
198 %{__make} -C build install \
199         DESTDIR=$RPM_BUILD_ROOT
200
201 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/proton/{CMakeLists.txt,LICENSE.txt,README.md,examples/README.md,tests}
202
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}
208
209 %if %{with python}
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}
212
213 %py_postclean
214 %endif
215
216 %if %{with ruby}
217 %{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/examples/ruby $RPM_BUILD_ROOT%{_examplesdir}/ruby-%{name}-%{version}
218 %endif
219
220 %clean
221 rm -rf $RPM_BUILD_ROOT
222
223 %post   c -p /sbin/ldconfig
224 %postun c -p /sbin/ldconfig
225
226 %post   cpp -p /sbin/ldconfig
227 %postun cpp -p /sbin/ldconfig
228
229 %files c
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
238
239 %files c-devel
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
251
252 %files c-apidocs
253 %defattr(644,root,root,755)
254 %dir %{_docdir}/%{name}
255 %{_docdir}/%{name}/api-c
256 %{_examplesdir}/%{name}-c-%{version}
257
258 %files cpp
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
262
263 %files cpp-devel
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
272
273 %files cpp-apidocs
274 %defattr(644,root,root,755)
275 %dir %{_docdir}/%{name}
276 %{_docdir}/%{name}/api-cpp
277 %{_examplesdir}/%{name}-cpp-%{version}
278
279 %if %{with python}
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]
284 %{py_sitedir}/proton
285
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}
291 %endif
292
293 %if %{with ruby}
294 %files -n ruby-%{name}
295 %defattr(644,root,root,755)
296 %if 0
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
307 %else
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
320 %endif
321 %{_examplesdir}/ruby-%{name}-%{version}
322 %endif
This page took 0.116613 seconds and 2 git commands to generate.