diff --git a/libzmq.spec b/libzmq.spec new file mode 100644 index 0000000000000000000000000000000000000000..c479e94cd0688f818075aad0bc8051a4dd2bdbf0 --- /dev/null +++ b/libzmq.spec @@ -0,0 +1,312 @@ +# To build with draft APIs, use "--with drafts" in rpmbuild for local builds or add +# Macros: +# %_with_drafts 1 +# at the BOTTOM of the OBS prjconf +%bcond_with drafts +%if %{with drafts} +%define DRAFTS yes +%else +%define DRAFTS no +%endif +%define lib_name libzmq5 +Name: zeromq +Version: 4.3.4 +Release: 1%{?dist} +Summary: The ZeroMQ messaging library +Group: Applications/Internet +License: LGPLv3+ +URL: http://www.zeromq.org/ +Source0: v4.3.4.tar.gz + +Prefix: %{_prefix} +Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root +#BuildRequires: autoconf automake libtool glib2-devel libbsd-devel +BuildRequires: autoconf automake libtool glib2-devel +%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5) +BuildRequires: e2fsprogs-devel +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +%endif +%bcond_with pgm +%if %{with pgm} +BuildRequires: openpgm-devel +%define PGM yes +%else +%define PGM no +%endif +%bcond_with libgssapi_krb5 +%if %{with libgssapi_krb5} +BuildRequires: krb5-devel +%define GSSAPI yes +%else +%define GSSAPI no +%endif +%bcond_with libsodium +%if %{with libsodium} +BuildRequires: libsodium-devel +%define SODIUM yes +%else +%define SODIUM no +%endif +%bcond_with nss +%if %{with nss} +%if 0%{?suse_version} +BuildRequires: mozilla-nss-devel +%else +BuildRequires: nss-devel +%endif +%define NSS yes +%else +%define NSS no +%endif +%bcond_with tls +%if %{with tls} && ! 0%{?centos_version} < 700 +%if 0%{?suse_version} +BuildRequires: libgnutls-devel +%else +BuildRequires: gnutls-devel +%endif +%define TLS yes +%else +%define TLS no +%endif +BuildRequires: gcc, make, gcc-c++, libstdc++-devel, asciidoc, xmlto +Requires: libstdc++ + +# +# Conditional build options +# Default values are: +# --without-libgssapi_krb5 +# --without-libsodium +# --without-pgm +# + +# If neither macro exists, use the default value. +%{!?_with_libgssapi_krb5: %{!?_without_libgssapi_krb5: %define _without_libgssapi_krb5 --without-liblibgssapi_krb5}} +%{!?_with_libsodium: %{!?_without_libsodium: %define _without_libsodium --without-libsodium}} +%{!?_with_pgm: %{!?_without_pgm: %define _without_pgm --without-pgm}} +%{!?_with_nss: %{!?_without_nss: %define _without_nss --without-nss}} + +# It's an error if both --with and --without options are specified +%{?_with_libgssapi_krb5: %{?_without_libgssapi_krb5: %{error: both _with_libgssapi_krb5 and _without_libgssapi_krb5}}} +%{?_with_libsodium: %{?_without_libsodium: %{error: both _with_libsodium and _without_libsodium}}} +%{?_with_pgm: %{?_without_pgm: %{error: both _with_pgm and _without_pgm}}} + +%{?_with_libgssapi_krb5:BuildRequires: krb5-devel} +%{?_with_libgssapi_krb5:Requires: krb5-libs} + +%{?_with_libsodium:BuildRequires: libsodium-devel} +%{?_with_libsodium:Requires: libsodium} + +%{?_with_pgm:BuildRequires: openpgm-devel} +%{?_with_pgm:Requires: openpgm} + +%if 0%{?suse_version} +%{?_with_nss:BuildRequires: mozilla-nss-devel} +%{?_with_nss:Requires: mozilla-nss} +%else +%{?_with_nss:BuildRequires: nss-devel} +%{?_with_nss:Requires: nss} +%endif + +%if ! 0%{?centos_version} < 700 +%if 0%{?suse_version} +%{?_with_tls:BuildRequires: libgnutls-devel} +%else +%{?_with_tls:BuildRequires: gnutls-devel} +%endif +%{?_with_tls:Requires: gnutls} +%endif + +%ifarch pentium3 pentium4 athlon i386 i486 i586 i686 x86_64 +%{!?_with_pic: %{!?_without_pic: %define _with_pic --with-pic}} +%{!?_with_gnu_ld: %{!?_without_gnu_ld: %define _with_gnu_ld --with-gnu_ld}} +%endif + +# We do not want to ship libzmq.la +%define _unpackaged_files_terminate_build 0 + +%description +The 0MQ lightweight messaging kernel is a library which extends the +standard socket interfaces with features traditionally provided by +specialised messaging middleware products. 0MQ sockets provide an +abstraction of asynchronous message queues, multiple messaging +patterns, message filtering (subscriptions), seamless access to +multiple transport protocols and more. + +%package -n %{lib_name} +Summary: Shared Library for ZeroMQ +Group: Productivity/Networking/Web/Servers +Conflicts: zeromq + +%description -n %{lib_name} +The 0MQ lightweight messaging kernel is a library which extends the +standard socket interfaces with features traditionally provided by +specialised messaging middleware products. 0MQ sockets provide an +abstraction of asynchronous message queues, multiple messaging +patterns, message filtering (subscriptions), seamless access to +multiple transport protocols and more. + +This package contains the ZeroMQ shared library. + +%package devel +Summary: Development files and static library for the ZeroMQ library +Group: Development/Libraries +Requires: %{lib_name} = %{version}-%{release}, pkgconfig +%bcond_with pgm +%if %{with pgm} +Requires: openpgm-devel +%endif +%bcond_with libgssapi_krb5 +%if %{with libgssapi_krb5} +Requires: krb5-devel +%endif +%bcond_with libsodium +%if %{with libsodium} +Requires: libsodium-devel +%endif +%bcond_with nss +%if %{with nss} +%if 0%{?suse_version} +Requires: mozilla-nss-devel +%else +Requires: nss-devel +%endif +%endif +%bcond_with tls +%if %{with tls} && ! 0%{?centos_version} < 700 +%if 0%{?suse_version} +Requires: libgnutls-devel +%else +Requires: gnutls-devel +%endif +%endif + +%description devel +The 0MQ lightweight messaging kernel is a library which extends the +standard socket interfaces with features traditionally provided by +specialised messaging middleware products. 0MQ sockets provide an +abstraction of asynchronous message queues, multiple messaging +patterns, message filtering (subscriptions), seamless access to +multiple transport protocols and more. + +This package contains ZeroMQ related development libraries and header files. + +%package -n libzmq-tools +Summary: ZeroMQ tools +Group: Productivity/Networking/Web/Servers + +%description -n libzmq-tools +The 0MQ lightweight messaging kernel is a library which extends the +standard socket interfaces with features traditionally provided by +specialised messaging middleware products. 0MQ sockets provide an +abstraction of asynchronous message queues, multiple messaging +patterns, message filtering (subscriptions), seamless access to +multiple transport protocols and more. + +This package contains tools such as curve_keygen to use with libzmq. + +%prep +%setup -n libzmq-%{version} + +# Sed version number of openpgm into configure +%global openpgm_pc $(basename %{_libdir}/pkgconfig/openpgm*.pc .pc) +sed -i "s/openpgm-[0-9].[0-9]/%{openpgm_pc}/g" \ + configure* + +%build +# Workaround for automake < 1.14 bug +mkdir -p config +autoreconf -fi +%configure --enable-drafts=%{DRAFTS} \ + --with-pgm=%{PGM} \ + --with-libsodium=%{SODIUM} \ + --with-libgssapi_krb5=%{GSSAPI} \ + --with-nss=%{NSS} \ + --with-tls=%{TLS} \ + %{?_with_pic} \ + %{?_without_pic} \ + %{?_with_gnu_ld} \ + %{?_without_gnu_ld} + +%{__make} %{?_smp_mflags} + +%install +[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot} + +# Install the package to build area +%{__make} check VERBOSE=1 +%makeinstall + +%post +/sbin/ldconfig + +%postun +/sbin/ldconfig + +%clean +[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot} + +%files -n %{lib_name} +%defattr(-,root,root,-) + +# docs in the main package +%doc AUTHORS COPYING COPYING.LESSER NEWS + +# libraries +%{_libdir}/libzmq.so.* + +%{_mandir}/man7/zmq.7.gz + +%files devel +%defattr(-,root,root,-) +%{_includedir}/zmq.h +%{_includedir}/zmq_utils.h + +%{_libdir}/libzmq.a +%{_libdir}/pkgconfig/libzmq.pc +%{_libdir}/libzmq.so + +%{_mandir}/man3/zmq* +# skip man7/zmq.7.gz +%{_mandir}/man7/zmq_* + +%files -n libzmq-tools +%defattr(-,root,root,-) +%{_bindir}/curve_keygen + +%changelog +* Fri Oct 4 2019 Luca Boccassi +- Add macro for optional TLS dependency + +* Wed Sep 11 2019 Luca Boccassi +- Add macro for optional NSS dependency + +* Sat Aug 19 2017 Luca Boccassi +- Fix parsing and usage of conditionals for sodium/pgm/krb5 so that they work + in OBS +- Do not ship libzmq.la anymore, it's not needed and causes overlinking + +* Sun Nov 06 2016 Luca Boccassi +- Add libzmq-tool to package curve_keygen in /usr/bin + +* Sun Jul 31 2016 Luca Boccassi +- Follow RPM standards and rename zeromq to libzmq5 + +* Sat Oct 25 2014 Phillip Mienk +- Add --with/--without libgssapi_krb5 support following J.T.Conklin's pattern + +* Sat Oct 18 2014 J.T. Conklin +- Add --with/--without pgm support +- Add --with/--without libsodium support + +* Tue Jun 10 2014 Tristian Celestin 4.0.4 +- Updated packaged files + +* Mon Nov 26 2012 Justin Cook 3.2.2 +- Update packaged files + +* Fri Apr 8 2011 Mikko Koppanen 3.0.0-1 +- Update dependencies and packaged files + +* Sat Apr 10 2010 Mikko Koppanen 2.0.7-1 +- Initial packaging diff --git a/v4.3.4.tar.gz b/v4.3.4.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..537b380f1552eb5e8a1d3b714000128c017e4d8a Binary files /dev/null and b/v4.3.4.tar.gz differ