- updated to 0.31.0
authorJakub Bogusz <qboosh@pld-linux.org>
Thu, 28 May 2020 16:39:29 +0000 (18:39 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Thu, 28 May 2020 16:39:29 +0000 (18:39 +0200)
- removed obsolete PROTON-731 Installing-Python-requires-Proton-be-inst patch
- added format patch (-Werror=format-security conflicts with -Wno-format)
- package cpp,python,ruby bindings; also golang is available

0001-PROTON-731-Installing-Python-requires-Proton-be-inst.patch [deleted file]
qpid-proton-format.patch [new file with mode: 0644]

diff --git a/0001-PROTON-731-Installing-Python-requires-Proton-be-inst.patch b/0001-PROTON-731-Installing-Python-requires-Proton-be-inst.patch
deleted file mode 100644 (file)
index 26de0c0..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From a0670dd53c9d3b444656917e0b663364f6f20aa5 Mon Sep 17 00:00:00 2001
-From: "Darryl L. Pierce" <mcpierce@gmail.com>
-Date: Mon, 27 Oct 2014 15:01:52 -0400
-Subject: [PATCH] PROTON-731: Installing Python requires Proton be installed
- already.
-The CHECK_SYSINSTALL_PYTHON variable was not being set, so it's now
-being set by default but can be overridden from the command line.
-Also changed the PYTHON_SITEARCH_PACKAGES variable a cache done that can
-also be overridden from the command line as well.
- proton-c/bindings/python/CMakeLists.txt | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-diff --git a/proton-c/bindings/python/CMakeLists.txt b/proton-c/bindings/python/CMakeLists.txt
-index b8cdb57..ff8c706 100644
---- a/proton-c/bindings/python/CMakeLists.txt
-+++ b/proton-c/bindings/python/CMakeLists.txt
-@@ -22,6 +22,8 @@
- set(CMAKE_SWIG_FLAGS "-threads")
- include_directories (${PYTHON_INCLUDE_PATH})
-@@ -74,7 +76,7 @@ if (CHECK_SYSINSTALL_PYTHON)
- else ()
-   # install the bindings using the CMAKE path variables:
-   install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile cproton.py
-                                 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
diff --git a/qpid-proton-format.patch b/qpid-proton-format.patch
new file mode 100644 (file)
index 0000000..a3a894d
--- /dev/null
@@ -0,0 +1,11 @@
+--- qpid-proton-0.31.0/CMakeLists.txt.orig     2020-05-07 16:57:23.000000000 +0200
++++ qpid-proton-0.31.0/CMakeLists.txt  2020-05-26 22:29:21.525675340 +0200
+@@ -140,7 +140,7 @@
+   set (COMPILE_WARNING_FLAGS "${WERROR} -Wall -pedantic-errors")
+   # C++ allow "%z" format specifier and variadic macros
+-  set (CXX_WARNING_FLAGS "${COMPILE_WARNING_FLAGS} -Wno-format -Wno-variadic-macros")
++  set (CXX_WARNING_FLAGS "${COMPILE_WARNING_FLAGS} -Wno-variadic-macros")
+     set (COMPILE_WARNING_FLAGS "${COMPILE_WARNING_FLAGS} -Wstrict-prototypes -Wc++-compat -Wvla -Wsign-compare -Wwrite-strings")
+     set (COMPILE_LANGUAGE_FLAGS "-std=c99")
index 10e4198374acc93a67f27bb1afdaf8ac23813bba..e1eeb5821b59fe92535c2d50a5aad6a89de4c120 100644 (file)
-# - bindings and bconds for them
-Summary:       A high performance, lightweight messaging library
+# TODO: package go files (where?)
+# Conditional build:
+%bcond_with    static_libs     # static libraries
+%bcond_with    golang          # Go binding
+%bcond_without python          # Python binding
+%bcond_without ruby            # Ruby binding
+Summary:       Qpid Proton - AMQP messaging toolkit
+Summary(pl.UTF-8):     Qpid Proton - narzędzia do komunikacji AMQP
 Name:          qpid-proton
-Version:       0.8
-Release:       0.1
+Version:       0.31.0
+Release:       1
 License:       Apache v2.0
 Group:         Libraries
-Source0:       http://www.apache.org/dist/qpid/proton/%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 48bfbd7ba5a639760bb28380f4d68208
-Patch0001:     0001-PROTON-731-Installing-Python-requires-Proton-be-inst.patch
+Source0:       https://downloads.apache.org/qpid/proton/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 568bb8459e54ce94fc216de2b9e2b038
+Patch0:                %{name}-format.patch
 URL:           http://qpid.apache.org/proton/
-BuildRequires: cmake >= 2.6
+BuildRequires: cmake >= 2.8.12
+BuildRequires: cyrus-sasl-devel
 BuildRequires: doxygen
-BuildRequires: epydoc
+%{?with_golang:BuildRequires:  golang >= 1.11}
+BuildRequires: libstdc++-devel
 BuildRequires: libuuid-devel
 BuildRequires: openssl-devel
 BuildRequires: pkgconfig
-BuildRequires: python
-BuildRequires: python-devel
-BuildRequires: swig
+BuildRequires: python >= 2
+%{?with_python:BuildRequires:  python-devel}
+%{?with_ruby:BuildRequires:    ruby-devel}
+%{?with_python:BuildRequires:  swig-python}
+%{?with_ruby:BuildRequires:    swig-ruby}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define        proton_datadir %{_datadir}/proton-%{version}
 Proton is a high performance, lightweight messaging library. It can be
 used in the widest range of messaging applications including brokers,
-client libraries, routers, bridges, proxies, and more. Proton is based
-on the AMQP 1.0 messaging standard. Using Proton it is trivial to
-integrate with the AMQP 1.0 ecosystem from any platform, environment,
-or language.
+client libraries, routers, bridges, proxies, and more. Proton makes it
+trivial to integrate with the AMQP 1.0 ecosystem from any platform,
+environment, or language.
+%description -l pl.UTF-8
+Proton to wydajna, lekka biblioteka do komunikacji. Może być używana w
+szerokiej gamie aplikacji komunikacyjnych, w tym brokerów, bibliotek
+klienckich, routerów, mostków, proxy itp. Proton powoduje, że
+integrowanie z ekosystemem AMQP 1.0 z woeolnej platformy, środowiska
+czy języka staje się trywialne.
 %package c
 Summary:       C libraries for Qpid Proton
+Summary(pl.UTF-8):     Biblioteki C Qpid Proton
 Group:         Libraries
 %description c
+C libraries for Qpid Proton.
+%description c -l pl.UTF-8
+Biblioteki C Qpid Proton.
 %package c-devel
-Summary:       Development libraries for writing messaging apps with Qpid Proton
+Summary:       Development files for Qpid Proton C libraries
+Summary(pl.UTF-8):     Pliki programistyczne bibliotek Qpid Proton dla C
 Group:         Development/Libraries
-Requires:      qpid-proton-c = %{version}-%{release}
+Requires:      %{name}-c = %{version}-%{release}
 %description c-devel
+Development files for writing messaging apps with Qpid Proton C
+%description c-devel -l pl.UTF-8
+Pliki programistyczne do tworzenia aplikacji z wykorzystaniem
+bibliotek C Qpid Proton.
+%package c-apidocs
+Summary:       Documentation for Qpid Proton C API
+Summary(pl.UTF-8):     Dokumentacja API bibliotek C Qpid Proton
+Group:         Documentation
+Obsoletes:     qpid-proton-c-devel-doc < 0.31.0
+%if "%{_rpmversion}" >= "4.6"
+BuildArch:     noarch
+%description c-apidocs
+Documentation for Qpid Proton C API.
+%description c-apidocs -l pl.UTF-8
+Dokumentacja API bibliotek C Qpid Proton.
-%package c-devel-doc
-Summary:       Documentation for the C development libraries for Qpid Proton
+%package cpp
+Summary:       C++ libraries for Qpid Proton
+Summary(pl.UTF-8):     Biblioteki C++ Qpid Proton
+Group:         Libraries
+Requires:      %{name}-c = %{version}-%{release}
+Requires:      libstdc++-devel
+%description cpp
+C++ libraries for Qpid Proton.
+%description cpp -l pl.UTF-8
+Biblioteki C++ Qpid Proton.
+%package cpp-devel
+Summary:       Development files for Qpid Proton C++ library
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki Qpid Proton dla C++
+Group:         Development/Libraries
+Requires:      %{name}-c-devel = %{version}-%{release}
+Requires:      %{name}-cpp = %{version}-%{release}
+%description cpp-devel
+Development files for writing messaging apps with Qpid Proton C++
+%description cpp-devel -l pl.UTF-8
+Pliki programistyczne do tworzenia aplikacji z wykorzystaniem
+biblioteki C++ Qpid Proton.
+%package cpp-apidocs
+Summary:       Documentation for Qpid Proton C++ API
+Summary(pl.UTF-8):     Dokumentacja API biblioteki C++ Qpid Proton
 Group:         Documentation
-%if "%{_rpmversion}" >= "5"
+%if "%{_rpmversion}" >= "4.6"
 BuildArch:     noarch
-%description c-devel-doc
+%description cpp-apidocs
+Documentation for Qpid Proton C++ API.
+%description c-apidocs -l pl.UTF-8
+Dokumentacja API biblioteki C++ Qpid Proton.
 %package -n python-%{name}
 Summary:       Python language bindings for the Qpid Proton messaging framework
+Summary(pl.UTF-8):     Wiązania Pythona do szkieletu komunikacji Qpid Proton
 Group:         Libraries/Python
 Requires:      %{name}-c = %{version}-%{release}
 %description -n python-%{name}
+Python language bindings for the Qpid Proton messaging framework.
+%description -n python-%{name} -l pl.UTF-8
+Wiązania Pythona do szkieletu komunikacji Qpid Proton.
-%package -n python-%{name}-doc
+%package -n python-%{name}-apidocs
 Summary:       Documentation for the Python language bindings for Qpid Proton
+Summary(pl.UTF-8):     Dokumentacja wiązań Pythona do biblioteki Qpid Proton
 Group:         Documentation
-%if "%{_rpmversion}" >= "5"
+Obsoletes:     python-qpid-proton-doc < 0.31.0
+%if "%{_rpmversion}" >= "4.6"
 BuildArch:     noarch
-%description -n python-%{name}-doc
+%description -n python-%{name}-apidocs
+Documentation for the Python language bindings for Qpid Proton.
+%description -n python-%{name}-apidocs -l pl.UTF-8
+Dokumentacja wiązań Pythona do biblioteki Qpid Proton.
+%package -n ruby-%{name}
+Summary:       Ruby language bindings for the Qpid Proton messaging framework
+Summary(pl.UTF-8):     Wiązania języka Ruby do szkieletu komunikacji Qpid Proton
+Group:         Development/Languages
+Requires:      %{name}-c = %{version}-%{release}
+Requires:      ruby-modules
+%description -n ruby-%{name}
+Ruby language bindings for the Qpid Proton messaging framework.
+%description -n ruby-%{name} -l pl.UTF-8
+Wiązania języka Ruby do szkieletu komunikacji Qpid Proton.
 %setup -q
-%patch0001 -p1
+%patch0 -p1
+%{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
+       c/examples/testme \
+       cpp/examples/testme
+%{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' \
+       python/examples/*.py
-%cmake \
-       -DPYTHON_SITEARCH_PACKAGES=%{python_sitearch} \
-       -DBINDING_LANGS="%{?with_perl:PERL} %{?with_php:PHP} %{?with_python:PYTHON} %{?with_ruby:RUBY}" \
-       -DNOBUILD_RUBY=1 \
-       -DNOBUILD_PHP=1 \
-       -DNOBUILD_JAVA=1 \
-       -DBUILD_PYTHON=0 \
-       -DBUILD_PERL=0 \
-       .
+install -d build
+cd build
+%cmake .. \
+       -DBUILD_BINDINGS="cpp;go%{?with_python:;python}%{?with_ruby:;ruby}" \
+       %{?with_golang:-DBUILD_GO=ON} \
+       %{?with_static_libs:-DBUILD_STATIC_LIBS=ON} \
+       -DPYTHON_SITEARCH_PACKAGES=%{py_sitedir} \
 %{__make} all docs
-%{__make} install \
+%{__make} -C build install \
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/proton/{CMakeLists.txt,LICENSE.txt,README.md,examples/README.md,tests}
+install -d $RPM_BUILD_ROOT{%{_examplesdir},%{_docdir}/%{name}}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/examples/c $RPM_BUILD_ROOT%{_examplesdir}/%{name}-c-%{version}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/examples/cpp $RPM_BUILD_ROOT%{_examplesdir}/%{name}-cpp-%{version}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/docs/api-c $RPM_BUILD_ROOT%{_docdir}/%{name}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/docs/api-cpp $RPM_BUILD_ROOT%{_docdir}/%{name}
 %if %{with python}
-chmod +x $RPM_BUILD_ROOT%{py_sitedir}/_cproton.so
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/docs/api-py $RPM_BUILD_ROOT%{_docdir}/%{name}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/examples/python $RPM_BUILD_ROOT%{_examplesdir}/python-%{name}-%{version}
-# clean up files that are not shipped
-rm -rf $RPM_BUILD_ROOT%{_exec_prefix}/bindings
-rm -rf $RPM_BUILD_ROOT%{_libdir}/java
-rm -rf $RPM_BUILD_ROOT%{_libdir}/libproton-jni.so
-rm -rf $RPM_BUILD_ROOT%{_datarootdir}/java
-rm -rf $RPM_BUILD_ROOT%{_libdir}/proton.cmake
+%if %{with ruby}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/proton/examples/ruby $RPM_BUILD_ROOT%{_examplesdir}/ruby-%{name}-%{version}
@@ -117,39 +223,101 @@ rm -rf $RPM_BUILD_ROOT
 %post  c -p /sbin/ldconfig
 %postun        c -p /sbin/ldconfig
+%post  cpp -p /sbin/ldconfig
+%postun        cpp -p /sbin/ldconfig
 %files c
-%dir %{proton_datadir}
-%doc %{proton_datadir}/LICENSE
-%doc %{proton_datadir}/README
-%doc %{proton_datadir}/TODO
+%doc NOTICE.txt README.md
 %attr(755,root,root) %{_libdir}/libqpid-proton.so.*.*.*
-%ghost %{_libdir}/libqpid-proton.so.2
-%attr(755,root,root) %{_bindir}/proton
-%attr(755,root,root) %{_bindir}/proton-dump
+%attr(755,root,root) %ghost %{_libdir}/libqpid-proton.so.11
+%attr(755,root,root) %{_libdir}/libqpid-proton-core.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libqpid-proton-core.so.10
+%attr(755,root,root) %{_libdir}/libqpid-proton-proactor.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libqpid-proton-proactor.so.1
 %files c-devel
+%attr(755,root,root) %{_libdir}/libqpid-proton.so
+%attr(755,root,root) %{_libdir}/libqpid-proton-core.so
+%attr(755,root,root) %{_libdir}/libqpid-proton-proactor.so
+%dir %{_includedir}/proton
-%files c-devel-doc
+%files c-apidocs
+%dir %{_docdir}/%{name}
+%files cpp
-%doc %{proton_datadir}/docs/api-c
+%attr(755,root,root) %{_libdir}/libqpid-proton-cpp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libqpid-proton-cpp.so.12
+%files cpp-devel
+%attr(755,root,root) %{_libdir}/libqpid-proton-cpp.so
+%files cpp-apidocs
+%dir %{_docdir}/%{name}
 %if %{with python}
 %files -n python-%{name}
+%attr(755,root,root) %{py_sitedir}/_cproton.so
-%files -n python-%{name}-doc
+%files -n python-%{name}-apidocs
-%doc %{proton_datadir}/docs/api-py
+%dir %{_docdir}/%{name}
+%if %{with ruby}
+%files -n ruby-%{name}
+%if 0
+# cannot use SYSINSTALL_RUBY for now because...
+%attr(755,root,root) %{ruby_vendorarchdir}/cproton.so
+# the files below are likely to conflict with other ruby packages
+# ...so use private install
+%dir %{_libdir}/proton
+%dir %{_libdir}/proton/bindings
+%dir %{_libdir}/proton/bindings/ruby
+%attr(755,root,root) %{_libdir}/proton/bindings/ruby/cproton.so
This page took 0.104133 seconds and 4 git commands to generate.