Compare commits

...

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

8 changed files with 644 additions and 649 deletions

7
.gitignore vendored
View File

@ -1 +1,6 @@
SOURCES/kronosnet-1.25.tar.gz
/kronosnet-1.21.tar.xz
/kronosnet-1.22.tar.gz
/kronosnet-1.22.tar.xz
/kronosnet-1.24.tar.xz
/kronosnet-1.25.tar.xz
/kronosnet-1.28.tar.xz

View File

@ -1 +1 @@
76421d7954a007b3aca9b0dfd80cf033c5981d3a SOURCES/kronosnet-1.25.tar.gz
2d8bac472188907dc04c0f1f9457bf4ae8d9f8d8 kronosnet-1.28.tar.xz

View File

@ -1,647 +0,0 @@
###############################################################################
###############################################################################
##
## Copyright (C) 2012-2023 Red Hat, Inc. All rights reserved.
##
## This copyrighted material is made available to anyone wishing to use,
## modify, copy, or redistribute it subject to the terms and conditions
## of the GNU General Public License v.2 or higher
##
###############################################################################
###############################################################################
# set defaults from ./configure invokation
%bcond_without sctp
%bcond_without nss
%bcond_without openssl
%bcond_without zlib
%bcond_without lz4
%bcond_without lzo2
%bcond_without lzma
%bcond_without bzip2
%bcond_with zstd
%bcond_with kronosnetd
%bcond_without libnozzle
%bcond_without runautogen
%bcond_with rpmdebuginfo
%bcond_with overriderpmdebuginfo
%bcond_without installtests
# DWZ crashes when making debuginfos. This workaround is from
# https://github.com/docker/docker/issues/22051
# I got this via https://bugzilla.redhat.com/show_bug.cgi?id=1691946
%global _dwz_low_mem_die_limit 0
%if %{with overriderpmdebuginfo}
%undefine _enable_debug_packages
%endif
%if %{with sctp}
%global buildsctp 1
%endif
%if %{with nss}
%global buildcryptonss 1
%endif
%if %{with openssl}
%global buildcryptoopenssl 1
%endif
%if %{with zlib}
%global buildcompresszlib 1
%endif
%if %{with lz4}
%global buildcompresslz4 1
%endif
%if %{with lzo2}
%global buildcompresslzo2 1
%endif
%if %{with lzma}
%global buildcompresslzma 1
%endif
%if %{with bzip2}
%global buildcompressbzip2 1
%endif
%if %{with zstd}
%global buildcompresszstd 1
%endif
%if %{with libnozzle}
%global buildlibnozzle 1
%endif
%if %{with kronosnetd}
%global buildlibnozzle 1
%global buildkronosnetd 1
%endif
%if %{with runautogen}
%global buildautogen 1
%endif
%if %{with installtests}
%global installtestsuite 1
%endif
# main (empty) package
# http://www.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html
Name: kronosnet
Summary: Multipoint-to-Multipoint VPN daemon
Version: 1.25
Release: 1%{?dist}
License: GPLv2+ and LGPLv2+
URL: http://www.kronosnet.org
Source0: http://www.kronosnet.org/releases/kronosnet-%{version}.tar.gz
# Build dependencies
BuildRequires: gcc
# required to build man pages
BuildRequires: libxml2-devel doxygen
BuildRequires: libqb-devel
%if %{defined buildsctp}
BuildRequires: lksctp-tools-devel
%endif
%if %{defined buildcryptonss}
BuildRequires: nss-devel
%endif
%if %{defined buildcryptoopenssl}
BuildRequires: openssl-devel
%endif
%if %{defined buildcompresszlib}
BuildRequires: zlib-devel
%endif
%if %{defined buildcompresslz4}
BuildRequires: lz4-devel
%endif
%if %{defined buildcompresslzo2}
BuildRequires: lzo-devel
%endif
%if %{defined buildcompresslzma}
BuildRequires: xz-devel
%endif
%if %{defined buildcompressbzip2}
BuildRequires: bzip2-devel
%endif
%if %{defined buildcompresszstd}
BuildRequires: libzstd-devel
%endif
%if %{defined buildkronosnetd}
BuildRequires: systemd
BuildRequires: pam-devel
%endif
%if %{defined buildlibnozzle}
BuildRequires: libnl3-devel
%endif
%if %{defined buildautogen}
BuildRequires: automake
BuildRequires: libtool
BuildRequires: autoconf
%endif
%prep
%setup -q -n %{name}-%{version}
%build
%if %{defined buildautogen}
./autogen.sh
%endif
%{configure} \
%if %{defined buildsctp}
--enable-libknet-sctp \
%else
--disable-libknet-sctp \
%endif
%if %{defined buildcryptonss}
--enable-crypto-nss \
%else
--disable-crypto-nss \
%endif
%if %{defined buildcryptoopenssl}
--enable-crypto-openssl \
%else
--disable-crypto-openssl \
%endif
%if %{defined buildcompresszlib}
--enable-compress-zlib \
%else
--disable-compress-zlib \
%endif
%if %{defined buildcompresslz4}
--enable-compress-lz4 \
%else
--disable-compress-lz4 \
%endif
%if %{defined buildcompresslzo2}
--enable-compress-lzo2 \
%else
--disable-compress-lzo2 \
%endif
%if %{defined buildcompresslzma}
--enable-compress-lzma \
%else
--disable-compress-lzma \
%endif
%if %{defined buildcompresszstd}
--enable-compress-zstd \
%else
--disable-compress-zstd \
%endif
%if %{defined buildkronosnetd}
--enable-kronosnetd \
%endif
%if %{defined buildlibnozzle}
--enable-libnozzle \
%endif
%if %{defined installtestsuite}
--enable-install-tests \
%else
--disable-install-tests \
%endif
--with-initdefaultdir=%{_sysconfdir}/sysconfig/ \
--with-systemddir=%{_unitdir}
make %{_smp_mflags}
%install
make install DESTDIR=%{buildroot}
# tree cleanup
# remove static libraries
find %{buildroot} -name "*.a" -exec rm {} \;
# remove libtools leftovers
find %{buildroot} -name "*.la" -exec rm {} \;
# handle systemd vs init script
# remove init scripts
rm -rf %{buildroot}/etc/init.d
# remove docs
rm -rf %{buildroot}/usr/share/doc/kronosnet
# Disabled because of concern that the testsuite does not play nice with the
# network loopback interface. Upstream has a comprehensive CI/CD system which
# tests different versions of Fedora and should be very safe. In the unlikely
# event of bugs, we should probably avoid DoS´ing the fedora builders by
# generating unwanted traffic.
#%check
# main empty package
%description
kronosnet source
%if %{defined buildkronosnetd}
## Runtime and subpackages section
%package -n kronosnetd
Summary: Multipoint-to-Multipoint VPN daemon
License: GPLv2+
Requires(post): shadow-utils
Requires: pam, /etc/pam.d/passwd
%{?systemd_requires}
%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 || groupadd --force kronosnetadm
%postun -n kronosnetd
%systemd_postun kronosnetd.service
%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 %{defined buildlibnozzle}
%package -n libnozzle1
Summary: Simple userland wrapper around kernel tap devices
License: LGPLv2+
%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.*
%ldconfig_scriptlets -n libnozzle1
%package -n libnozzle1-devel
Summary: Simple userland wrapper around kernel tap devices (developer files)
License: LGPLv2+
Requires: libnozzle1%{_isa} = %{version}-%{release}
Requires: pkgconfig
%description -n libnozzle1-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 libnozzle1-devel
%license COPYING.* COPYRIGHT
%{_libdir}/libnozzle.so
%{_includedir}/libnozzle.h
%{_libdir}/pkgconfig/libnozzle.pc
%endif
%package -n libknet1
Summary: Kronosnet core switching implementation (protocol v1)
License: LGPLv2+
BuildRequires: libqb-devel
BuildRequires: doxygen
%description -n libknet1
Kronosnet, often referred to as knet, is a network abstraction layer
designed for High Availability use cases, where redundancy, security,
fault tolerance and fast fail-over are the core requirements of your
application.
The whole kronosnet core is implemented in this library.
Please refer to https://kronosnet.org/ for further information.
%files -n libknet1
%license COPYING.* COPYRIGHT
%{_libdir}/libknet.so.*
%dir %{_libdir}/kronosnet
%ldconfig_scriptlets -n libknet1
%package -n libknet1-devel
Summary: Kronosnet core switching implementation (developer files)
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
Requires: pkgconfig
%description -n libknet1-devel
The whole kronosnet core is implemented in this library.
Please refer to the not-yet-existing documentation for further
information.
# libknet.pc leading to pkgconfig(libknet) automatic virtual provides,
# like other files, is not explicitly versioned in the name like the
# subpackages are -- intention of doing so for subpackage names is
# to ease the cross-checking the compatibility of the remote clients
# interchanging data using this network communication library, as
# the number denotes the protocol version (providing multiple
# protocol versions in parallel is not planned).
%files -n libknet1-devel
%{_libdir}/libknet.so
%{_includedir}/libknet.h
%{_libdir}/pkgconfig/libknet.pc
%{_mandir}/man3/*.3.gz
%if %{defined buildcryptonss}
%package -n libknet1-crypto-nss-plugin
Summary: Libknet1 nss support
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-crypto-nss-plugin
NSS crypto support for libknet1.
%files -n libknet1-crypto-nss-plugin
%{_libdir}/kronosnet/crypto_nss.so
%endif
%if %{defined buildcryptoopenssl}
%package -n libknet1-crypto-openssl-plugin
Summary: Libknet1 openssl support
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-crypto-openssl-plugin
OpenSSL crypto support for libknet1.
%files -n libknet1-crypto-openssl-plugin
%{_libdir}/kronosnet/crypto_openssl.so
%endif
%if %{defined buildcompresszlib}
%package -n libknet1-compress-zlib-plugin
Summary: Libknet1 zlib support
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-compress-zlib-plugin
zlib compression support for libknet1.
%files -n libknet1-compress-zlib-plugin
%{_libdir}/kronosnet/compress_zlib.so
%endif
%if %{defined buildcompresslz4}
%package -n libknet1-compress-lz4-plugin
Summary: Libknet1 lz4 and lz4hc support
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-compress-lz4-plugin
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 %{defined buildcompresslzo2}
%package -n libknet1-compress-lzo2-plugin
Summary: Libknet1 lzo2 support
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-compress-lzo2-plugin
lzo2 compression support for libknet1.
%files -n libknet1-compress-lzo2-plugin
%{_libdir}/kronosnet/compress_lzo2.so
%endif
%if %{defined buildcompresslzma}
%package -n libknet1-compress-lzma-plugin
Summary: Libknet1 lzma support
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-compress-lzma-plugin
lzma compression support for libknet1.
%files -n libknet1-compress-lzma-plugin
%{_libdir}/kronosnet/compress_lzma.so
%endif
%if %{defined buildcompressbzip2}
%package -n libknet1-compress-bzip2-plugin
Summary: Libknet1 bzip2 support
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-compress-bzip2-plugin
bzip2 compression support for libknet1.
%files -n libknet1-compress-bzip2-plugin
%{_libdir}/kronosnet/compress_bzip2.so
%endif
%if %{defined buildcompresszstd}
%package -n libknet1-compress-zstd-plugin
Summary: Libknet1 zstd support
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%description -n libknet1-compress-zstd-plugin
zstd compression support for libknet1.
%files -n libknet1-compress-zstd-plugin
%{_libdir}/kronosnet/compress_zstd.so
%endif
%package -n libknet1-crypto-plugins-all
Summary: Libknet1 crypto plugins meta package
License: LGPLv2+
%if %{defined buildcryptonss}
Requires: libknet1-crypto-nss-plugin%{_isa} = %{version}-%{release}
%endif
%if %{defined buildcryptoopenssl}
Requires: libknet1-crypto-openssl-plugin%{_isa} = %{version}-%{release}
%endif
%description -n libknet1-crypto-plugins-all
meta package to install all of libknet1 crypto plugins
%files -n libknet1-crypto-plugins-all
%package -n libknet1-compress-plugins-all
Summary: Libknet1 compress plugins meta package
License: LGPLv2+
%if %{defined buildcompresszlib}
Requires: libknet1-compress-zlib-plugin%{_isa} = %{version}-%{release}
%endif
%if %{defined buildcompresslz4}
Requires: libknet1-compress-lz4-plugin%{_isa} = %{version}-%{release}
%endif
%if %{defined buildcompresslzo2}
Requires: libknet1-compress-lzo2-plugin%{_isa} = %{version}-%{release}
%endif
%if %{defined buildcompresslzma}
Requires: libknet1-compress-lzma-plugin%{_isa} = %{version}-%{release}
%endif
%if %{defined buildcompressbzip2}
Requires: libknet1-compress-bzip2-plugin%{_isa} = %{version}-%{release}
%endif
%if %{defined buildcompresszstd}
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: Libknet1 plugins meta package
License: LGPLv2+
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
Group: System Environment/Libraries
Summary: kronosnet test suite
Requires: libknet1 = %{version}-%{release}
Requires: libnozzle1%{_isa} = %{version}-%{release}
%description -n kronosnet-tests
this package contains the libknet test suite
%files -n kronosnet-tests
%defattr(-,root,root,-)
%{_libdir}/kronosnet/tests/*
%endif
%if %{with rpmdebuginfo}
# This is left over from upstream.
%debug_package
%endif
%changelog
* Mon Jan 16 2023 Christine Caulfield <ccaulfie@redhat.com> - 1.25-1
Rebase to 1.25 for PMTUd fixes
Resolves: rhbz#2161172
* Wed Jul 27 2022 Christine Caulfield <ccaulfie@redhat.com> - 1.24-2
Don't run nozzle_up_down tests, as they don't work in RH CI
Resolves: rhbz#2024095
* Wed Jul 27 2022 Christine Caulfield <ccaulfie@redhat.com> - 1.24-1
Rebase to 1.24
Resolves: rhbz#2024095
* Thu Sep 16 2021 Christine Caulfield <ccaulfie@redhat.com> - 1.22-1
Rebase to 1.22
Resolves: rhbz#1999976
* Wed Sep 23 2020 Christine Caulfield <ccaulfie@redhat.com> - 1.18-1
Rebase to 1.18
Resolves: rhbz#1855301
* Wed May 6 2020 Christine Caulfield <ccaulfie@redhat.com> - 1.16-1
Rebase to 1.16
Resolves: rhbz#1796503
* Wed Apr 15 2020 Christine Caulfield <ccaulfie@redhat.com> - 1.15-1
Rebase to 1.15
Resolves: rhbz#1796503
* Thu Oct 17 2019 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.10-4
Disable fun_pmtud_crypto_test as it can take several hours to run
Resolves: rhbz#1736872
* Wed Oct 16 2019 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.10-3
PMTUd: Fix MTU calculation when using crypto
Resolves: rhbz#1736872
host: Fix defrag buffer reclaim logic that could cause delivery
of corrupted data
ResolveS: rhbz#1761711
* Wed Oct 16 2019 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.10-2
link: Fix memory corruption when too many up/down events are recorded
Resolves: rhbz#1753517
* Wed Jun 12 2019 Christine Caulfield <ccaulfie@redhat.com> - 1.10-1
Rebase to 1.10 for ACL support
Resolves: rhbz#1688880
* Tue May 21 2019 Christine Caulfield <ccaulfie@redhat.com> - 1.9-3
Fix kronosnet-tests dependancies and add workaround for dwz crash
Resolves: rhbz#1688880
* Tue May 14 2019 Christine Caulfield <ccaulfie@redhat.com> - 1.9-2
add some covscan fixes
Resolves: rhbz#1688880
* Tue May 14 2019 Christine Caulfield <ccaulfie@redhat.com> - 1.9-1
Rebase to knet 1.9
Resolves: rhbz#1688880
* Thu Mar 28 2019 Christine Caulfield <ccaulfie@redhat.com> - 1.4-5
link: Check address families on a link always match
Resolves: rhbz#1691419
* Thu Mar 14 2019 Christine Caulfield <ccaulfie@redhat.com> - 1.4-4
Add Gating tests
Resolves: rhbz#1682128
* Fri Dec 14 2018 Christine Caulfield <ccaulfie@redhat.com> - 1.4-3
Don't spin if we get EPERM from sendmsg - iptables can cause this
Resolves: rhbz#1658301
* Fri Oct 19 2018 Christine Caulfield <ccaulfie@redhat.com> - 1.4-2
Don't close the loopback link when all the 'real' nodes are down
Resolves: rhbz1640619
* Tue Aug 7 2018 Christine Caulfield <ccaulfie@redhat.com> - 1.4-1
- Rebase to v1.4
* Tue May 22 2018 Christine Caulfield <ccaulfie@redhat.com> - 1.3-1
- Rebase to v1.3
* Tue Apr 10 2018 Christine Caulfield <ccaulfie@redhat.com> - 1.1-9
- Rebase from Fedora
* Fri Mar 09 2018 Madison Kelly <mkelly@alteeve.ca> - 1.1-8
- Changed pkgconfig() to normal package names to help avoid the wrong
package being pulled in to satisfy dependencies.
* Wed Mar 07 2018 Madison Kelly <mkelly@alteeve.ca> - 1.1-7
- Moved the comment back above '%%files -n libknet1-devel'.
- Added comment to '%%debug_package'.
* Wed Mar 07 2018 Madison Kelly <mkelly@alteeve.ca> - 1.1-6
- Added a version requirement to lz4 to deal with koji pulling in the
wrong package.
* Tue Mar 06 2018 Madison Kelly <mkelly@alteeve.ca> - 1.1-5
- Updated ldconfig scriptlet calls.
- Moved the debug_package leading comment.
* Sun Mar 04 2018 Madison Kelly <mkelly@alteeve.ca> - 1.1-4
- Removed leading spaces from descriptions.
- Added the (commented out) %%check tests.
- Updated the changelog macro references to have two percent signs.
- Dropped the redundant libknet1-devel license files.
- Changed 'GPLv2+ + LGPLv2+' to 'GPLv2+ and LGPLv2+'.
- Updated %%ldconfig_scriptlets call.
- Clarified the kronosnet protocol version in the summary.
* Mon Feb 26 2018 Madison Kelly <mkelly@alteeve.ca> - 1.1-3
- Fixed the changelog to not have the full macro names.
* Sun Feb 25 2018 Madison Kelly <mkelly@alteeve.ca> - 1.1-2
- Moved the 'BuildRequires: systemd' to be conditional with kronostnetd.
* Sun Feb 25 2018 Madison Kelly <mkelly@alteeve.ca> - 1.1-1
- Rerolled for 1.1 upstream release.
- Removed the (no longer needed) gcc8-fixes.patch
- Added the new doxygen and libqb-devel buildrequires for libknetd.

7
gating.yaml Normal file
View File

@ -0,0 +1,7 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

575
kronosnet.spec Normal file
View File

@ -0,0 +1,575 @@
###############################################################################
###############################################################################
##
## Copyright (C) 2012-2023 Red Hat, Inc. All rights reserved.
##
## This copyrighted material is made available to anyone wishing to use,
## modify, copy, or redistribute it subject to the terms and conditions
## of the GNU General Public License v.2 or higher
##
###############################################################################
###############################################################################
# set defaults from ./configure invocation
%bcond_without sctp
%bcond_without nss
%bcond_without openssl
%bcond_without zlib
%bcond_without lz4
%bcond_without lzo2
%bcond_without lzma
%bcond_without bzip2
%bcond_without zstd
%bcond_without libnozzle
%bcond_without runautogen
%bcond_with rpmdebuginfo
%bcond_with overriderpmdebuginfo
%bcond_without buildman
%bcond_without installtests
%if %{with overriderpmdebuginfo}
%undefine _enable_debug_packages
%endif
# main (empty) package
# http://www.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html
Name: kronosnet
Summary: Multipoint-to-Multipoint VPN daemon
Version: 1.28
Release: 1%{?dist}
License: GPLv2+ and LGPLv2+
URL: https://kronosnet.org
Source0: https://kronosnet.org/releases/%{name}-%{version}.tar.xz
#Patch0: 1_24.testfix.patch
# Build dependencies
BuildRequires: make
BuildRequires: gcc libqb-devel
# required to build man pages
%if %{with buildman}
BuildRequires: libxml2-devel doxygen doxygen2man
%endif
%if %{with sctp}
BuildRequires: lksctp-tools-devel
%endif
%if %{with nss}
BuildRequires: nss-devel
%endif
%if %{with openssl}
BuildRequires: openssl-devel
%endif
%if %{with zlib}
BuildRequires: zlib-devel
%endif
%if %{with lz4}
BuildRequires: lz4-devel
%endif
%if %{with lzo2}
BuildRequires: lzo-devel
%endif
%if %{with lzma}
BuildRequires: xz-devel
%endif
%if %{with bzip2}
BuildRequires: bzip2-devel
%endif
%if %{with zstd}
BuildRequires: libzstd-devel
%endif
%if %{with libnozzle}
BuildRequires: libnl3-devel
%endif
%if %{with runautogen}
BuildRequires: autoconf automake libtool
%endif
%prep
%setup -q -n %{name}-%{version}
#%patch0 -p1 -b .1_24.testfix
%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 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} -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 libnozzle}
%package -n libnozzle1
Summary: Simple userland wrapper around kernel tap devices
License: LGPLv2+
%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 libnozzle1-devel
Summary: Simple userland wrapper around kernel tap devices (developer files)
License: LGPLv2+
Requires: libnozzle1%{_isa} = %{version}-%{release}
Requires: pkgconfig
%description -n libnozzle1-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 libnozzle1-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
License: LGPLv2+
%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 libknet1-devel
Summary: Kronosnet core switching implementation (developer files)
License: LGPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
Requires: pkgconfig
%description -n libknet1-devel
The whole kronosnet core is implemented in this library.
Please refer to the not-yet-existing documentation for further
information.
%files -n libknet1-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
License: LGPLv2+
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
License: LGPLv2+
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
License: LGPLv2+
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
License: LGPLv2+
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
License: LGPLv2+
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
License: LGPLv2+
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
License: LGPLv2+
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
License: LGPLv2+
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
License: LGPLv2+
%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
License: LGPLv2+
%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
License: LGPLv2+
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
License: GPLv2+
Requires: libknet1%{_isa} = %{version}-%{release}
%if %{with libnozzle}
Requires: libnozzle1%{_isa} = %{version}-%{release}
%endif
%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}
%debug_package
%endif
%changelog
* Mon Oct 9 2023 Christine Caulfield <ccaulfie@redhat.com> - 1.28-1
Rebase to 1.28 for startup and performance fixes
threads: add config check to match min value with pong timeouts
rx: allow links to be active faster
links: fix ping interval and pong timeout value checking
crypto: Try crypt and decrypt on crypto_init
tx: Remove expensive memsets
log: Add a TRACE log level
Resolves: #RHEL-11787
* Wed Jan 18 2023 Christine Caulfield <ccaulfie@redhat.com> - 1.25-1
Rebase to 1.25 for PMTUd fixes
Resolves: rhbz#2161168
* Fri Jul 15 2022 Christine Caulfield <ccaulfie@redhat.com> - 1.24-2
- Fix libnozzle tests failing & covscan warning on api_knet_handle_new test
Resolves: rhbz#2024090
* Fri Jul 15 2022 Christine Caulfield <ccaulfie@redhat.com> - 1.24-1
- Rebase to 1.24
Resolves: rhbz#2024090
* Wed Oct 06 2021 Christine Caulfield <ccaulfie@redhat.com> - 1.22-3
- Add back the test suite that got lost in the pull from Fedora
Resolves: rhbz#1999980
* Wed Oct 06 2021 Christine Caulfield <ccaulfie@redhat.com> - 1.22-1
- Rebase to v1.22
Resolves: rhbz#1999980
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.21-4
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed Jun 16 2021 Florian Weimer <fweimer@redhat.com> - 1.21-3
- Rebuilt for RHEL 9 BETA for openssl 3.0
Related: rhbz#1971065
* Thu May 13 2021 Christine Caulfield <ccaulfie@redhat.com> - 1.21-2
- add -fstack-clash-protection to the build. For the CI
Resolves: rhbz#1954551
* Wed Apr 28 2021 Christine Caulfield <ccaulfie@redhat.com> - 1.21-1
- Rebase to 1.21 to incorporate fixes for CI complaints & openssl3
Resolves: rhbz#1954551
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.20-3
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.20-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Oct 19 2020 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.20-1
- New upstream release
- Fix TX/RX stats collections
- Minor test suite improvements
- Minor build fixes
* Mon Aug 17 2020 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.19-1
- New upstream release
- Add native support for openssl 3.0 (drop API COMPAT macros).
- Code cleanup of public APIs. Lots of lines of code moved around, no
functional changes.
- Removed kronosnetd unsupported code completely
- Removed unused poc-code from the source tree
- Make sure to initialize epoll events structures
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.18-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 14 2020 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.18-1
- New upstream release
- Add ability to change crypto configuration at runtime without
restarting knet and without packet drop
- Add compatibility support for openssl 3.0
- Add functional testing framework and new test cases
- Minor build fixes
- Fix BuildRequires to use libqb doxygen2man vs internal copy
* Thu Apr 23 2020 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.16-1
- New upstream release
- Fix major issues with SCTP transport
- Fix build with recent gcc
- Minor bug fixes
- Update BuildRequires now that libqb is used unconditionally
* Wed Mar 04 2020 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.15-1
- New upstream release
- Fix major interaction issues between stats gathering and PMTUd
- Fix UDP socket options that could lead to knet not being properly
functional
- Man pages updates
- Minor bug fixes
* Fri Jan 31 2020 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.14-1
- New upstream release
- Fixes several major issues with newer kernels
- Fix build with gcc10
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.13-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Oct 16 2019 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.13-1
- New upstream release
- Fixes more memory corruption problems on unstable networks.
* Fri Sep 20 2019 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.12-1
- New upstream release
- Fixes memory corruption problem on unstable networks.
* Wed Aug 21 2019 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.11-1
- New upstream release
- Fixes major issues with PMTUd implementation when used in combination with
crypto.
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.10-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed Jun 12 2019 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.10-1
- New upstream release
- fix URL in spec file (rhbz#1708616)
* Thu May 09 2019 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.9-1
- New upstream release
* Wed May 08 2019 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.8-2
- Fix ldconfig scriptlet (Resolves rhbz#1699074)
- Cleanup .gitignore (Resolves rhbz#1699093)
* Wed Apr 03 2019 Madison Kelly <mkelly@alteeve.ca> - 1.8-1
- Updated to upstream release v1.8.

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (kronosnet-1.28.tar.xz) = 2eabdb5f7c74e4d51cb0601a00e34c5af8715f76231fe752499a393f41c0aa5c562cc7a0984afaf6101ad90627e8450a8b6760863b9ce0d5cc7b941483ee15ca

35
tests/run-tests.sh Executable file
View File

@ -0,0 +1,35 @@
#!/bin/sh
EXCLUDES="knet_bench_test api_knet_handle_new_limit_test fun_pmtud_crypto_test api_nozzle_run_updown_test run-tests.sh"
TESTS_RUN=0
TESTS_FAILED=0
modprobe sctp
cd /usr/lib64/kronosnet/tests
for i in *
do
echo $EXCLUDES|grep $i >/dev/null 2>/dev/null
if [ $? = 1 ]
then
echo
echo "---- running $i"
./$i
if [ $? != 0 ]
then
TESTS_FAILED=$((TESTS_FAILED + 1))
echo "FAILED: $i"
fi
TESTS_RUN=$((TESTS_RUN + 1))
fi
done
echo
echo "Tests run: $TESTS_RUN"
echo "Tests failed: $TESTS_FAILED"
if [ $TESTS_FAILED -gt 0 ]
then
exit 1
else
exit 0
fi

19
tests/tests.yml Normal file
View File

@ -0,0 +1,19 @@
- hosts: localhost
roles:
- role: standard-test-source # Fetch source tarball and unpack it into the test environment
tags:
- always
- role: standard-test-basic
tags:
- atomic
- classic
required_packages:
- bash
- kronosnet-tests
- kernel-modules-extra
tests:
- check: # Run tests
dir: .
run: ./run-tests.sh