commit 1261af8e8adc740d5b0cc68ebcc2d427f31022cad5cbdba3ceff20e50ac4ef69 Author: Adrian Schröter Date: Wed Sep 4 09:08:40 2024 +0200 Sync from SUSE:SLFO:Main kronosnet revision 77a531f2a8180de90172b06698b50baa diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/kronosnet-1.28.tar.xz b/kronosnet-1.28.tar.xz new file mode 100644 index 0000000..8dbc0ee --- /dev/null +++ b/kronosnet-1.28.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebc3a7529dd10dcfbf168856a45d0c98c69247fed89bd01b504b2f469f483458 +size 484164 diff --git a/kronosnet.changes b/kronosnet.changes new file mode 100644 index 0000000..c81d57e --- /dev/null +++ b/kronosnet.changes @@ -0,0 +1,251 @@ +------------------------------------------------------------------- +Wed Mar 27 09:55:48 UTC 2024 - Emil Penchev + +- kronosnet-1.28 + changes since 1.15 + * [links] fix conversion + * [rx] allow links to be active faster + * [links] fix ping interval and pong timeout value checking + * [nozzle] don´t leak tun/tap interfaces in test suite + * [crypto] Try crypt and decrypt on crypto_init + * [spec] Migrate to SPDX license + * [nozzle] tests: Fix 'set_down' test on FreeBSD-devel + * [tx] Remove expensive memsets + * [log] Add a TRACE log level + * [man] update to latest doxyxml from libqb + * [udp] Move EPERM to be alongside EMSGSIZE in tx error handler + * [pmtud] Reset/restart pmtud when a node joins + * [doc] To Do list moved to projects.clusterlabs.org (#379) + * [logging] Fix Initializing typo + * [tx] fix epoll event size to cope with extra event on send to link + * [tests] deal with new annocheck symlink checks + * [tests] update memcheck exceptions + * [UDP] Check for EHOSTUNREACH + * [build] fix flag detections for gcc + * [doc] update links to mailing lists and drop obsolete test suite + * [logging] slow down knet a bit when log socket is busy + * [crypto] improve logging when failing to decrypt packets + * [udp] use ICMP error messages to trigger faster link down detection + * [host] fix dst_seq_num initialization race condition + * [crypto] fix nss crypto buffer boundaries usage + * [build] fix debug build vs annocheck parameters + * [tests] temporary disable annobin lto check for centos8 failure + * [build] Add annobin build/check support + * [nozzle] fix tests on machines that don´t have bash + * [tests] make execution of functional testing optionals + * send: Fix send_sync() + * [transports] remove unused internal ACL API + * [acl] major internal rework + * [acl] make knet_link_add_acl a wrapper to knet_link_insert_acl + * [host] use correct seq_num to reclaim buffers + * [rx] increase defrag buffers to better deal with network jitter + * [man] update doxygen2man to latest from libqb + * [doc] Add comments to structure members + * [link] don´t allow mix of dynamic and static links + * [link] use previously cached value as link info might not be accurate + * [link] don´t leak resources if link configuration fails + * [tests] suppress more libnss3 errors + * [spec] cleanup some krosnonetd leftovers + * [tx] minor optimizations to avoid recalculating socksize over and over + * [docs] IRC channel is now on Libera Chat + * [coverity] fix 2 buffer initialization (potential) issues + * [nozzle] fix nozzle_up() on FreeBSD + * [lib] Don't use -rpath + * [nozzle] Remove inet_ntoa() call + * [handle] validate handle in public API + * [global] Update copyright + * [docs] Update README for BSD section + * [openssl] port knet top openssl3.0-alpha13 + * [tests] hide another internal libnss non recurring memory leak + * [tests] add more exceptions to deal with Ubuntu latest rebuilds (clang counterpart) + * [tests] add more exceptions to deal with Ubuntu latest rebuilds + * [cleanup] remove unused infrastructure to send HOSTINFO messages + * [sctp] check and warn about internal fd tracker + * [tests] hide internal nss memory leak (non-recurring) + * [rx] fix data stats on RX to match TX model + * [rx] fix per link stats for data packets + * [threads] make sure to initialize events + * [cleanup] drop no longer used poc-code + * [cleanup] kill all unsupported kronosnetd code + * [cleanup] Move public APIs calls to more suitable location + * [crypto] add support for openssl 3.0 + * [man] fix type comparison + * [tests] more ignore list of nss internal stuff + * [tests] ignore openssl errors triggered when building with clang + * [tests] fix variable increment logic (detected by clang) + * [crypto] add support for live reconfiguration + * [build] update valgrind memcheck exception file + * [tests] sets defaults for coverity scan check to match CI + * [tests] add basic framework to create, join and stop many nodes + * [tests] use link_get_enable instead of get_status + * [tests] remove unnecessary shutdown locking + * [build] Use git-version-gen during specfile build + * [build] Fix fallback handling in git-version-gen + * [man] sync doxygen2man from libqb master + * [openssl] allow use of deprecated HMAC interface with openssl 3.0 + * [tests] strip extra symbol information generated by new nm + * [transport] notify transports that a link is down + * [sctp] fix ifup/ifdown handling for connected sockets + * [netutils] move sockaddr_len definition where it belongs + * [links] fix spacing + * [sctp] make sure outgoing connections are bound to a specific IP address + * [man] use libqb version of doxygen2man when available + * [build] make sure to use correct libqb include files across + * [lists] add missing build CFLAGS for test suite + * [lists] drop internal implementation and use libqb one + * [lists] fix build with recent gcc changes + * [tests] fix return code from wait_for_packet + + Added: kronosnet-1.28.tar.xz + Removed : kronosnet-1.28.tar.gz + +------------------------------------------------------------------- +Wed Apr 15 12:28:47 UTC 2020 - XinLiang + +- kronosnet-1.15 + changes since 1.14 + * [stats] allow knet_link_get_status to operate in readlock context + * [stats] allow knet_handle_get_stats to operate in a readlock context + * [rx] kill unused variable + * [transports] use SO_REUSEADDR only for sctp + * [man] Enhance prio description of POLICY_PASSIVE + * man: Change strcat to strncat + * man: Fix covscan reports in doxyxml.c + changes since 1.13 + * [global] Update copyright across the board + * [sctp] major surgery to use only SCTP events to determine socket status + * [rx] use defines to determine RX data types vs random numbers + * [tx] Don't Clear out msghdr for all transports. + * [rx] Don't return 512 EOF messages from _recvmmsg + * [rx] send reply packets only when transport is connected + * [rx] unify latency values to a capped value to link precision + * [latency] fix incorrect math that could lead to bad latency calculation + * [udp] Better fix for -ENETUNREACH + * [udp] simplify code (same logic) + * [udp] don't make socket spin if a network I/F is down + * [nozzle] use interface name size consistently and drop strncpy in favour of memmove + * [host] use KNET_MAX_HOST_LEN consistently + * [handle] fix typo in error log message + * [handle] make sure to unlock config handle on failure + * [RX] silence defrag buffer expiration debug error + * [TX] discard too big packets when reading from socketpairs + * [RX] handle short write to the application properly + * [RX] Discard incoming packets if knet cannot reply back. + * [build] fix openssl version detection when not using pkg-config + changes since 1.12 + * [PMTUd] invalidate MTU for a link if the value is lower than minimum + * [rx] copy data into the defrag buffer only if we know the size of the frame + * [host] fix defrag buffers reclaim logic + * [host] rename variables to make it easier to read the code + +------------------------------------------------------------------- +Fri Oct 11 05:11:13 UTC 2019 - Yuan Ren + +- kronosnet-1.12 + changes since 1.11 + * Default compression level use + * Fix a lot of converity errors + * Fix lock, buffer overrun and memory release bugs + * Retry locking in case of failure in SCTP + * Stabilize latency calculation when nodes are not responsive + changes since 1.10 + * Log information about detected kernel MTU + * Fix MTU calculation when using crypto and add docs + * Rework the whole math to calculate MTU + * Add dynamic pong timeout when using crypto + * Add ability to manually override MTU and disable PMTUd + changes since 1.9 + * automatically add and remove point to point access lists + * allow knet_bench to enable/disable access lists + * enable access lists for GENERIC_ACL protocols (udp for example) + * add access lists support to sctp + * Do some function rename and code cleanup + * Add documentation for enable_access_list + * add external API calls to manage access lists + * add support for libzstd + * fix openssl1.0 initialization code + changes since 1.8 + * remove libnss 3des support + * improve error message decoding from ICMP errors + changes since 1.7 + * fix libnozzle man page generation target + * don´t specify destination address for connection oriented protocols + * increase log level for currently used links + +------------------------------------------------------------------- +Thu Jan 31 02:38:41 UTC 2019 - Yuan Ren + +- kronosnet-1.7 + changes since 1.6 + * Fix minor issues with libnozzle man pages + * SCTP: support more kernel versions + * Better debugging information of internal threads status + * Fix build with gcc9 + * [developers] expose API version in libknet.h and enable + all compiler warnings at build time + changes since 1.5 + * [IMPORTANT] Fix a PMTUd packet size issue when using + crypto communications + * Fix build with older versions of openssl + * Fix a CPU spinning issue when iptables are set incorrectly + * Fix a SCTP kernel <-> userland compatibility issue + * Minor other fixes across the code and build infrastructure + * libnozzle hits the first GA release. + +------------------------------------------------------------------- +Thu Oct 25 06:48:25 UTC 2018 - jchen@suse.com + +- kronosnet-1.5 + changes since 1.4 + * [IMPORTANT] fix internal loopback link handling + * Improved internal threads information for debugging purposes + changes since 1.3 + * Reduced amount of locking around non-performance critical areas + * Optimized threads startup and shutdown timer +- Removed: add-version.patch + +------------------------------------------------------------------- +Tue Apr 24 06:30:54 UTC 2018 - bliu@suse.com + +- kronosnet-1.3 is available now(bsc#1090641) + changes since 1.2 + * Fix potential crashes in the crypto code + + changes since 1.1 + * Fix a potential crash when using external destination handlers + * Improve compression level validation by delegating the validation to + the external compression library + * Improve the build system to accommodate repeatable builds + +------------------------------------------------------------------- +Mon Mar 5 06:19:10 UTC 2018 - bliu@suse.com + +- kronosnet-1.0 is available now(bsc#1077702) + kronosnet-1.1 released, so upgrade to 1.1 + * Fix plugins loader by switching from RPATH to RUNPATH + * Man pages are now automatically generated at build time + * Better error reporting from crypto plugins + * Fix and improve the whole build system + * Add support for some older lz4 versions + * Fix issue with UDP sockets that could cause knet to spin + * Add new API call to run knet unprivileged + + Added: kronosnet-1.1.tar.gz + add-version.patch + Removed: kronosnet-1.0.tar.gz + +------------------------------------------------------------------- +Tue Jan 30 23:16:45 UTC 2018 - jengelh@inai.de + +- Fix almost-empty SRPM description. +- Fix faulty leading whitespace in descriptions. +- Reduce size of %if..%endif blocks to minimum. +- Remove pkgconfig requires that are already automatically detected. + +------------------------------------------------------------------- +Tue Jan 26 06:24:30 UTC 2018 - bliu@suse.com + +- kronosnet-1.0 is available now(bsc#1077702) + Added: kronosnet-1.0.tar.gz + kronosnet.spec + kronosnet.changes diff --git a/kronosnet.spec b/kronosnet.spec new file mode 100644 index 0000000..789d664 --- /dev/null +++ b/kronosnet.spec @@ -0,0 +1,569 @@ +# +# spec file for package kronosnet +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +# set defaults from ./configure invokation +%bcond_without sctp +%bcond_without nss +%bcond_without openssl +%bcond_without zlib +%if 0%{?suse_version} >= 1500 +%bcond_without lz4 +%else +%bcond_with lz4 +%endif +%bcond_without lzo2 +%bcond_without lzma +%bcond_without bzip2 +%bcond_without zstd +%bcond_with kronosnetd +%bcond_without libnozzle +%bcond_without runautogen +%bcond_with rpmdebuginfo +%bcond_with overriderpmdebuginfo +%bcond_without buildman +%bcond_with installtests + +%if %{with overriderpmdebuginfo} +%undefine _enable_debug_packages +%endif + +%if %{with sctp} +BuildRequires: lksctp-tools-devel +%endif +%if %{with nss} +%if 0%{suse_version} +BuildRequires: mozilla-nss-devel +%else +BuildRequires: nss-devel +%endif +%endif +%if %{with openssl} +%if 0%{?suse_version} +BuildRequires: libopenssl-devel +%else +BuildRequires: openssl-devel +%endif +%endif +%if %{with zlib} +BuildRequires: zlib-devel +%endif +%if %{with lz4} +%if 0%{?suse_version} +BuildRequires: liblz4-devel +%else +BuildRequires: lz4-devel +%endif +%endif +%if %{with lzo2} +BuildRequires: lzo-devel +%endif +%if %{with lzma} +BuildRequires: xz-devel +%endif +%if %{with bzip2} +%if 0%{?suse_version} +BuildRequires: libbz2-devel +%else +BuildRequires: bzip2-devel +%endif +%endif +%if %{with zstd} +BuildRequires: libzstd-devel +%endif +%if %{with libnozzle} +BuildRequires: libnl3-devel +%endif +%if %{with kronosnetd} +BuildRequires: pam-devel +%endif +%if %{with runautogen} +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +%endif +%if %{with buildman} +BuildRequires: doxygen +BuildRequires: libqb-devel +BuildRequires: libxml2-devel +%endif +# main (empty) package +# http://www.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html +Name: kronosnet +Version: 1.28 +Release: 0 +Summary: Multipoint-to-Multipoint VPN daemon +License: GPL-2.0-or-later AND LGPL-2.1-or-later +Group: Productivity/Clustering/HA +URL: https://kronosnet.org +Source0: https://kronosnet.org/releases/kronosnet-%{version}.tar.xz + +## Setup/build bits +# Build dependencies +BuildRequires: gcc +BuildRequires: pkgconfig +%if %{with overriderpmdebuginfo} +%undefine _enable_debug_packages +%endif +# required to build man pages +%if %{defined buildmanpages} +BuildRequires: doxygen +BuildRequires: libqb-devel +BuildRequires: libxml2-devel +%endif +%if %{defined buildsctp} +BuildRequires: lksctp-tools-devel +%endif +%if %{defined buildcryptonss} +BuildRequires: mozilla-nss-devel +%endif +%if %{defined buildcryptoopenssl} +BuildRequires: openssl-devel +%endif +%if %{defined buildcompresszlib} +BuildRequires: zlib-devel +%endif +%if %{defined buildcompresslz4} +BuildRequires: liblz4-devel +%endif +%if %{defined buildcompresslzo2} +BuildRequires: lzo-devel +%endif +%if %{defined buildcompresslzma} +BuildRequires: xz-devel +%endif +%if %{defined buildcompressbzip2} +BuildRequires: libbz2-devel +%endif +%if %{defined buildcompresszstd} +BuildRequires: libzstd-devel +%endif +%if %{defined buildkronosnetd} +BuildRequires: libqb-devel +BuildRequires: pam-devel +%endif +%if %{defined buildautogen} +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +%endif +%if %{defined buildlibnozzle} +BuildRequires: libnl3-devel +%endif + +%prep +%setup -q -n %{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}} + +%build +%if %{with runautogen} +./autogen.sh +%endif + +%configure \ +%if %{with installtests} + --enable-install-tests \ +%else + --disable-install-tests \ +%endif +%if %{with buildman} + --enable-man \ +%else + --disable-man \ +%endif +%if %{with sctp} + --enable-libknet-sctp \ +%else + --disable-libknet-sctp \ +%endif +%if %{with nss} + --enable-crypto-nss \ +%else + --disable-crypto-nss \ +%endif +%if %{with openssl} + --enable-crypto-openssl \ +%else + --disable-crypto-openssl \ +%endif +%if %{with zlib} + --enable-compress-zlib \ +%else + --disable-compress-zlib \ +%endif +%if %{with lz4} + --enable-compress-lz4 \ +%else + --disable-compress-lz4 \ +%endif +%if %{with lzo2} + --enable-compress-lzo2 \ +%else + --disable-compress-lzo2 \ +%endif +%if %{with lzma} + --enable-compress-lzma \ +%else + --disable-compress-lzma \ +%endif +%if %{with bzip2} + --enable-compress-bzip2 \ +%else + --disable-compress-bzip2 \ +%endif +%if %{with zstd} + --enable-compress-zstd \ +%else + --disable-compress-zstd \ +%endif +%if %{with kronosnetd} + --enable-kronosnetd \ +%else + --disable-kronosnetd \ +%endif +%if %{with libnozzle} + --enable-libnozzle \ +%else + --disable-libnozzle \ +%endif + --with-initdefaultdir=%{_sysconfdir}/sysconfig/ \ + --with-systemddir=%{_unitdir} + +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} + +# tree cleanup +# remove static libraries +find %{buildroot} -name "*.a" -exec rm {} \; +# remove libtools leftovers +find %{buildroot} -type f -name "*.la" -exec rm {} \; + +# remove init scripts +rm -rf %{buildroot}/etc/init.d + +# remove docs +rm -rf %{buildroot}/usr/share/doc/kronosnet + +# main empty package +%description + The kronosnet source + +%if %{with kronosnetd} +## Runtime and subpackages section +%package -n kronosnetd +Summary: Multipoint-to-Multipoint VPN daemon +Group: Productivity/Clustering/HA +Requires(post): systemd-sysv +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +Requires(post): shadow-utils +Requires(preun): shadow-utils +Requires: /etc/pam.d/passwd +Requires: pam + +%description -n kronosnetd +The kronosnet daemon is a bridge between kronosnet switching engine +and kernel network tap devices, to create and administer a +distributed LAN over multipoint-to-multipoint VPNs. +The daemon does a poor attempt to provide a configure UI similar +to other known network devices/tools (Cisco, quagga). +Beside looking horrific, it allows runtime changes and +reconfiguration of the kronosnet(s) without daemon reload +or service disruption. + +%post -n kronosnetd +%systemd_post kronosnetd.service +getent group kronosnetadm >/dev/null || %{_sbindir}/groupadd --force --system kronosnetadm + +%preun -n kronosnetd +%systemd_preun kronosnetd.service + +%files -n kronosnetd +%license COPYING.* COPYRIGHT +%dir %{_sysconfdir}/kronosnet +%dir %{_sysconfdir}/kronosnet/* +%config(noreplace) %{_sysconfdir}/sysconfig/kronosnetd +%config(noreplace) %{_sysconfdir}/pam.d/kronosnetd +%config(noreplace) %{_sysconfdir}/logrotate.d/kronosnetd +%{_unitdir}/kronosnetd.service +%{_sbindir}/* +%{_mandir}/man8/* +%endif + +%if %{with libnozzle} +%package -n libnozzle1 +Summary: Simple userland wrapper around kernel tap devices + +%description -n libnozzle1 +This is an over-engineered commodity library to manage a pool +of tap devices and provides the basic +pre-up.d/up.d/down.d/post-down.d infrastructure. + +%files -n libnozzle1 +%license COPYING.* COPYRIGHT +%{_libdir}/libnozzle.so.* + +%if 0%{?ldconfig_scriptlets} +%ldconfig_scriptlets -n libnozzle1 +%else +%post -n libnozzle1 -p /sbin/ldconfig +%postun -n libnozzle1 -p /sbin/ldconfig +%endif + +%package -n libnozzle-devel +Summary: Simple userland wrapper around kernel tap devices (developer files) +Requires: libnozzle1%{_isa} = %{version}-%{release} +Provides: libnozzle1-devel = %{version} +Obsoletes: libnozzle1-devel <= %{version} +Requires: pkgconfig + +%description -n libnozzle-devel +This is an over-engineered commodity library to manage a pool +of tap devices and provides the basic +pre-up.d/up.d/down.d/post-down.d infrastructure. + +%files -n libnozzle-devel +%license COPYING.* COPYRIGHT +%{_libdir}/libnozzle.so +%{_includedir}/libnozzle.h +%{_libdir}/pkgconfig/libnozzle.pc +%if %{with buildman} +%{_mandir}/man3/nozzle*.3.gz +%endif +%endif + +%package -n libknet1 +Summary: Kronosnet core switching implementation +Group: System/Libraries + +%description -n libknet1 +The whole kronosnet core is implemented in this library. +Please refer to the not-yet-existing documentation for further +information. + +%files -n libknet1 +%license COPYING.* COPYRIGHT +%{_libdir}/libknet.so.* +%dir %{_libdir}/kronosnet + +%if 0%{?ldconfig_scriptlets} +%ldconfig_scriptlets -n libknet1 +%else +%post -n libknet1 -p /sbin/ldconfig +%postun -n libknet1 -p /sbin/ldconfig +%endif + +%package -n libknet-devel +Summary: Development files fro the Kronosnet core switching implementation +Group: Development/Libraries/C and C++ +Requires: libknet1%{_isa} = %{version}-%{release} +Requires: pkgconfig +Provides: libknet1-devel = %{version} +Obsoletes: libknet1-devel <= %{version} + +%description -n libknet-devel +The whole kronosnet core is implemented in this library. +Please refer to the not-yet-existing documentation for further +information. + +%files -n libknet-devel +%license COPYING.* COPYRIGHT +%{_libdir}/libknet.so +%{_includedir}/libknet.h +%{_libdir}/pkgconfig/libknet.pc +%if %{with buildman} +%{_mandir}/man3/knet_*.3.gz +%endif + +%if %{with nss} +%package -n libknet1-crypto-nss-plugin +Summary: Provides libknet1 nss support +Group: System/Libraries +Requires: libknet1%{_isa} = %{version}-%{release} + +%description -n libknet1-crypto-nss-plugin +Provides NSS crypto support for libknet1. + +%files -n libknet1-crypto-nss-plugin +%{_libdir}/kronosnet/crypto_nss.so +%endif + +%if %{with openssl} +%package -n libknet1-crypto-openssl-plugin +Summary: Provides libknet1 openssl support +Group: System/Libraries +Requires: libknet1%{_isa} = %{version}-%{release} + +%description -n libknet1-crypto-openssl-plugin +Provides OpenSSL crypto support for libknet1. + +%files -n libknet1-crypto-openssl-plugin +%{_libdir}/kronosnet/crypto_openssl.so +%endif + +%if %{with zlib} +%package -n libknet1-compress-zlib-plugin +Summary: Provides libknet1 zlib support +Group: System/Libraries +Requires: libknet1%{_isa} = %{version}-%{release} + +%description -n libknet1-compress-zlib-plugin +Provides zlib compression support for libknet1. + +%files -n libknet1-compress-zlib-plugin +%{_libdir}/kronosnet/compress_zlib.so +%endif + +%if %{with lz4} +%package -n libknet1-compress-lz4-plugin +Summary: Provides libknet1 lz4 and lz4hc support +Group: System/Libraries +Requires: libknet1%{_isa} = %{version}-%{release} + +%description -n libknet1-compress-lz4-plugin +Provides lz4 and lz4hc compression support for libknet1. + +%files -n libknet1-compress-lz4-plugin +%{_libdir}/kronosnet/compress_lz4.so +%{_libdir}/kronosnet/compress_lz4hc.so +%endif + +%if %{with lzo2} +%package -n libknet1-compress-lzo2-plugin +Summary: Provides libknet1 lzo2 support +Group: System/Libraries +Requires: libknet1%{_isa} = %{version}-%{release} + +%description -n libknet1-compress-lzo2-plugin +Provides lzo2 compression support for libknet1. + +%files -n libknet1-compress-lzo2-plugin +%{_libdir}/kronosnet/compress_lzo2.so +%endif + +%if %{with lzma} +%package -n libknet1-compress-lzma-plugin +Summary: Provides libknet1 lzma support +Group: System/Libraries +Requires: libknet1%{_isa} = %{version}-%{release} + +%description -n libknet1-compress-lzma-plugin +Provides lzma compression support for libknet1. + +%files -n libknet1-compress-lzma-plugin +%{_libdir}/kronosnet/compress_lzma.so +%endif + +%if %{with bzip2} +%package -n libknet1-compress-bzip2-plugin +Summary: Provides libknet1 bzip2 support +Group: System/Libraries +Requires: libknet1%{_isa} = %{version}-%{release} + +%description -n libknet1-compress-bzip2-plugin +Provides bzip2 compression support for libknet1. + +%files -n libknet1-compress-bzip2-plugin +%{_libdir}/kronosnet/compress_bzip2.so +%endif + +%if %{with zstd} +%package -n libknet1-compress-zstd-plugin +Summary: Provides libknet1 zstd support +Group: System/Libraries +Requires: libknet1%{_isa} = %{version}-%{release} + +%description -n libknet1-compress-zstd-plugin +Provides zstd compression support for libknet1. + +%files -n libknet1-compress-zstd-plugin +%{_libdir}/kronosnet/compress_zstd.so +%endif + +%package -n libknet1-crypto-plugins-all +Summary: Provides libknet1 crypto plugins meta package +Group: System/Libraries +%if %{with nss} +Requires: libknet1-crypto-nss-plugin%{_isa} = %{version}-%{release} +%endif +%if %{with openssl} +Requires: libknet1-crypto-openssl-plugin%{_isa} = %{version}-%{release} +%endif + +%description -n libknet1-crypto-plugins-all +Provides meta package to install all of libknet1 crypto plugins + +%files -n libknet1-crypto-plugins-all + +%package -n libknet1-compress-plugins-all +Summary: Provides libknet1 compress plugins meta package +Group: System/Libraries +%if %{with zlib} +Requires: libknet1-compress-zlib-plugin%{_isa} = %{version}-%{release} +%endif +%if %{with lz4} +Requires: libknet1-compress-lz4-plugin%{_isa} = %{version}-%{release} +%endif +%if %{with lzo2} +Requires: libknet1-compress-lzo2-plugin%{_isa} = %{version}-%{release} +%endif +%if %{with lzma} +Requires: libknet1-compress-lzma-plugin%{_isa} = %{version}-%{release} +%endif +%if %{with bzip2} +Requires: libknet1-compress-bzip2-plugin%{_isa} = %{version}-%{release} +%endif +%if %{with zstd} +Requires: libknet1-compress-zstd-plugin%{_isa} = %{version}-%{release} +%endif + +%description -n libknet1-compress-plugins-all + Meta package to install all of libknet1 compress plugins + +%files -n libknet1-compress-plugins-all + +%package -n libknet1-plugins-all +Summary: Provides libknet1 plugins meta package +Group: System/Libraries +Requires: libknet1-compress-plugins-all%{_isa} = %{version}-%{release} +Requires: libknet1-crypto-plugins-all%{_isa} = %{version}-%{release} + +%description -n libknet1-plugins-all + Meta package to install all of libknet1 plugins + +%files -n libknet1-plugins-all + +%if %{with installtests} +%package -n kronosnet-tests +Summary: Provides kronosnet test suite +Group: System/Libraries +Requires: libknet1%{_isa} = %{version}-%{release} + +%description -n kronosnet-tests + This package contains all the libknet and libnozzle test suite. + +%files -n kronosnet-tests +%{_libdir}/kronosnet/tests/* +%endif + +%if %{with rpmdebuginfo} +%endif + +%changelog