BUILDDIR=kronosnet-${VERSION}
SRCARCHIVE=kronosnet_${VERSION}.orig.tar.xz
-DEBARCHIVE=kronosnet_${VERSION}-${DEBRELEASE}.debian.tar.xz
ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
all:
ls -1 ${DEBS}
-${BUILDDIR}: upstream/${SRCARCHIVE} upstream/${DEBARCHIVE} patches/*
+${BUILDDIR}: upstream/${SRCARCHIVE} patches/*
rm -rf ${BUILDDIR}
mkdir ${BUILDDIR}
ln -sf upstream/${SRCARCHIVE} ${SRCARCHIVE}
tar -x -C ${BUILDDIR} --strip-components=1 -f upstream/${SRCARCHIVE}
- tar -C ${BUILDDIR} -xf upstream/${DEBARCHIVE}
+ cp -a debian/ ${BUILDDIR}
cd ${BUILDDIR}; ln -s ../patches patches
cd ${BUILDDIR}; quilt push -a
cd ${BUILDDIR}; rm -rf .pc ./patches
--- /dev/null
+kronosnet (1.8-2) unstable; urgency=medium
+
+ * [b6a2cdc] New patch: send test: skip the SCTP test if SCTP is not supported
+ by the kernel
+
+ -- Ferenc Wágner <wferi@debian.org> Wed, 03 Apr 2019 10:33:30 +0200
+
+kronosnet (1.8-1) unstable; urgency=medium
+
+ * [ff7beff] New upstream release (1.8)
+ * [21d7565] Update copyright years
+
+ -- Ferenc Wágner <wferi@debian.org> Mon, 01 Apr 2019 23:59:14 +0200
+
+kronosnet (1.7-1) unstable; urgency=medium
+
+ * [4e5fcde] New upstream release (1.7)
+ * [f23dac4] Delete our patches, they went upstream
+
+ -- Ferenc Wágner <wferi@debian.org> Thu, 31 Jan 2019 19:06:49 +0100
+
+kronosnet (1.6-4) unstable; urgency=medium
+
+ * [50a96b8] Fix ugly assignment bug in my patch
+
+ -- Ferenc Wágner <wferi@debian.org> Fri, 28 Dec 2018 10:21:26 +0100
+
+kronosnet (1.6-3) unstable; urgency=medium
+
+ * [c2eec28] New patch: Fix nozzle man dates to SOURCE_EPOCH, just like the
+ libknet ones are
+
+ -- Ferenc Wágner <wferi@debian.org> Wed, 26 Dec 2018 11:00:26 +0100
+
+kronosnet (1.6-2) unstable; urgency=medium
+
+ * [121d257] New patch: Skip SCTP event initialization if the protocol is not
+ supported
+ * [7112630] Run libknet unit tests as autopkgtests, too.
+ Buildds lack SCTP support, so this is more comprehensive.
+ * [62e62e6] Update Standards-Version to 4.3.0 (no changes required)
+ * [45b1073] Add libnozzle autopkgtests.
+ The libnozzle tests are all skipped during the build because they need
+ root privileges.
+
+ -- Ferenc Wágner <wferi@debian.org> Mon, 24 Dec 2018 02:12:39 +0100
+
+kronosnet (1.6-1) unstable; urgency=medium
+
+ * [640f767] New upstream release (1.6)
+ * [c9f9431] Revert "New patch: Try to be compatible with earlier kernels"
+ Kronosnet 1.6 fixed this in a better way.
+ * [4c9b44c] Update copyright years and libnozzle name
+ * [435f2f8] New binary packages: libnozzle1 and libnozzle-dev
+ libnozzle requires libnl-3 and libnl-route-3
+ * [65f93be] Extend the long description of Kronosnet
+ * [37dc7b7] Suggest the documentation from libknet-dev
+ * [16cfc1b] Ship README and COPYRIGHT in all binary packages
+ * [d8b5f19] New patch: Install the nozzle man pages
+ * [5e01b4c] The nozzle man pages are in libknet-doc.
+ It isn't worth introducing a new binary package for.
+ * [b513715] New patch: Fix typos
+
+ -- Ferenc Wágner <wferi@debian.org> Wed, 19 Dec 2018 11:59:23 +0100
+
+kronosnet (1.5-1) unstable; urgency=medium
+
+ * [055d424] Use the 'replace' merge mode.
+ The debian directory is not upstream territory, so this is safer.
+ * [89d5ff1] New upstream release (1.5)
+ * [ebf50a1] Update debian/copyright
+ * [8f34d31] New patch: Try to be compatible with earlier kernels
+
+ -- Ferenc Wágner <wferi@debian.org> Tue, 27 Nov 2018 13:41:40 +0100
+
+kronosnet (1.4-1) unstable; urgency=medium
+
+ * [25262ef] New upstream release (1.4)
+ * [f98fbaa] Update Standards-Version to 4.2.1 (no changes required)
+
+ -- Ferenc Wágner <wferi@debian.org> Sat, 22 Sep 2018 18:02:02 +0200
+
+kronosnet (1.3-1) unstable; urgency=medium
+
+ * [a52437e] New upstream release (1.2)
+ * [78b1a8e] The upstream build system already handles SOURCE_DATE_EPOCH
+ * [3fc0634] Update Standards-Version to 4.1.4 (no changes required)
+ * [428a983] New upstream release (1.3)
+
+ -- Ferenc Wágner <wferi@debian.org> Tue, 08 May 2018 20:29:23 +0200
+
+kronosnet (1.1-2) unstable; urgency=medium
+
+ * [db289c1] New patch reproducible-build.patch
+ Thanks to Chris Lamb (Closes: #892021)
+
+ -- Ferenc Wágner <wferi@debian.org> Sun, 04 Mar 2018 17:25:53 +0100
+
+kronosnet (1.1-1) unstable; urgency=medium
+
+ * [39a7e15] Revert "GCC already uses SOURCE_DATE_EPOCH"
+ This reverts commit 7611955b1e867624f3f1ab6810e3434c544426d0.
+ Since configure adds -Werror to CFLAGS by default, the -Wdate-time added
+ by dpkg-buildflags broke the build, but unnecessarily: modern gcc
+ already uses SOURCE_DATE_EPOCH, so reproducibility wasn't broken.
+ However, setting CFLAGS directly wasn't a good idea, since it dropped
+ the useful (mostly hardening) options as well.
+ As the __TIME__ and __DATE__ macros are used in the kronosnetd code
+ only, which isn't compiled by default, this setting had better go.
+ * [7d0af74] Pristine-tar is used by several gbp subcommands
+ * [490655d] New upstream release 1.1 (Closes: #886973)
+ * [9b89566] Drop upstreamed patches
+ * [5391160] Don't try building Kronosnet on the Hurd.
+ It misses both epoll and kevent, our two options. (Closes: #886972)
+ * [a532e65] The test suite can already run unprivileged
+ * [17d7e7c] Older liblz4 versions are also supported now
+ * [f80a59a] Use the official project description
+ * [7df074f] Split out the man pages into libknet-doc.
+ Building the documentation (man pages) requires extra dependencies and
+ effort, spare it if possible.
+ * [2fe8f33] Make --as-needed effective by patching libtool
+ * [750d039] Switch to dh_missing
+
+ -- Ferenc Wágner <wferi@debian.org> Sun, 25 Feb 2018 17:59:44 +0100
+
+kronosnet (1.0-1) unstable; urgency=medium
+
+ * [f1fd87b] New upstream release (1.0)
+ * [7c1d7d2] Remove upstreamed patches, refresh the rest
+ * [327ea77] New patch: Give Hurd a chance
+ * [a89012a] Update Standards-Version to 4.1.3 (no changes required)
+ * [384b59c] Host the packaging repository on salsa.debian.org
+ * [07215f5] The required lz4 version is still experimental only
+ * [fd6c2bd] Switch to Debhelper compat level 11 (no changes required)
+ * Upload to unstable.
+
+ -- Ferenc Wágner <wferi@debian.org> Tue, 09 Jan 2018 01:37:53 +0100
+
+kronosnet (0.9-2) experimental; urgency=medium
+
+ * [5b8fc8e] Further description updates will also be needed
+ * [b61fb92] netinet/sctp.h isn't in separate package on BSD
+ * [6d4aea9] New patch: tests: skip the SCTP test if SCTP is not
+ supported by the kernel
+
+ -- Ferenc Wágner <wferi@debian.org> Tue, 02 Jan 2018 00:36:31 +0100
+
+kronosnet (0.9-1) experimental; urgency=medium
+
+ * Initial release. (Closes: #879824)
+
+ -- Ferenc Wágner <wferi@debian.org> Sun, 17 Dec 2017 23:44:28 +0100
--- /dev/null
+Source: kronosnet
+Section: admin
+Priority: optional
+Maintainer: Debian HA Maintainers <debian-ha-maintainers@lists.alioth.debian.org>
+Uploaders:
+ Ferenc Wágner <wferi@debian.org>,
+Standards-Version: 4.3.0
+Build-Depends:
+ debhelper (>= 11~),
+ libnl-3-dev,
+ libnl-route-3-dev,
+ libsctp-dev [linux-any],
+ pkg-config,
+# Compress plugins:
+ libbz2-dev,
+ liblz4-dev,
+ liblzma-dev,
+ liblzo2-dev,
+ zlib1g-dev,
+# Crypto plugins:
+ libnss3-dev,
+ libnspr4-dev,
+ libssl-dev,
+Build-Depends-Indep:
+ doxygen,
+ libqb-dev,
+ libxml2-dev,
+Homepage: https://kronosnet.org/
+Vcs-Git: https://salsa.debian.org/ha-team/kronosnet.git
+Vcs-Browser: https://salsa.debian.org/ha-team/kronosnet
+X-Common-Description: 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.
+ .
+ Kronosnet is the new underlying network protocol for Linux HA components
+ (Corosync), that features ability to use multiple links between nodes,
+ active/active and active/passive link failover policies, automatic link
+ recovery, FIPS compliant encryption (nss and/or openssl), automatic PMTUd and
+ in general better performances compared to the old network protocol.
+X-Nozzle-Description: 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.
+
+Package: libknet-dev
+Section: libdevel
+# Hurd misses both epoll and kevent:
+Architecture: linux-any kfreebsd-any
+Multi-Arch: same
+Depends:
+ libknet1 (= ${binary:Version}),
+ ${misc:Depends},
+Suggests:
+ libknet-doc (= ${binary:Version}),
+Description: kronosnet core switching implementation (developer files)
+ ${S:X-Common-Description}
+ .
+ This package contains header files required to build libknet clients.
+
+Package: libknet-doc
+Section: doc
+Architecture: all
+Multi-Arch: foreign
+Depends:
+ ${misc:Depends},
+# The man pages originally shipped in libknet-dev:
+Breaks:
+ libknet-dev (<< 1.1),
+Replaces:
+ libknet-dev (<< 1.1),
+Description: kronosnet core API documentation
+ ${S:X-Common-Description}
+ .
+ This package contains the man pages of the API functions.
+
+Package: libknet1
+Section: libs
+# Hurd misses both epoll and kevent:
+Architecture: linux-any kfreebsd-any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+Description: kronosnet core switching implementation
+ ${S:X-Common-Description}
+ .
+ This package contains libraries that are used by libknet clients.
+
+Package: libnozzle-dev
+Section: libdevel
+# Hurd misses both epoll and kevent:
+Architecture: linux-any kfreebsd-any
+Multi-Arch: same
+Depends:
+ libnozzle1 (= ${binary:Version}),
+ ${misc:Depends},
+Suggests:
+ libknet-doc (= ${binary:Version}),
+Description: userland wrapper around kernel tap devices (developer files)
+ ${S:X-Nozzle-Description}
+ .
+ This package contains header files required to build libnozzle clients.
+
+Package: libnozzle1
+Section: libs
+# Hurd misses both epoll and kevent:
+Architecture: linux-any kfreebsd-any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+Description: userland wrapper around kernel tap devices
+ ${S:X-Nozzle-Description}
+ .
+ This package contains libraries that are used by libnozzle clients.
--- /dev/null
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: kronosnet
+Source: https://kronosnet.org/releases
+
+Files: *
+Copyright: 2010-2019 Red Hat, Inc.
+License: GPL-2+
+
+Files: libknet/*
+ libnozzle/*
+Copyright: 2010-2019 Red Hat, Inc.
+License: LGPL-2.1+
+
+Files: debian/*
+Copyright: 2017-2019 Ferenc Wágner <wferi@debian.org>
+License: LGPL-2.1+
+
+Files: build-aux/git-version-gen
+Copyright: 2012-2019 Red Hat, Inc.
+ 2007-2016 Free Software Foundation, Inc.
+License: GPL-3+
+
+License: LGPL-2.1+
+ You can redistribute these libraries and/or modify them under the
+ terms of the GNU Lesser General Public License as published by the
+ Free Software Foundation; either version 2.1 of the License, or (at
+ your option) any later version.
+ .
+ The libraries are distributed in the hope that they will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU Lesser General
+ Public License can be found in "/usr/share/common-licenses/LGPL-2.1".
+
+License: GPL-2+
+ You can redistribute these applications and/or modify them under the
+ terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+ .
+ The applications are distributed in the hope that they will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in "/usr/share/common-licenses/GPL-2".
+
+License: GPL-3+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in "/usr/share/common-licenses/GPL-3".
--- /dev/null
+[DEFAULT]
+debian-branch = debian/master
+upstream-branch = upstream/latest
+pristine-tar = True
+
+[import-orig]
+merge-mode = replace
+
+[pq]
+patch-numbers = False
+
+[dch]
+full = True
+multimaint-merge = True
+id-length = 7
--- /dev/null
+usr/include/libknet.h
+usr/lib/*/libknet.so
+usr/lib/*/pkgconfig/libknet.pc
--- /dev/null
+usr/share/man/man3
--- /dev/null
+usr/lib/*/libknet.so.*
+usr/lib/*/kronosnet
--- /dev/null
+libknet.so.1 libknet1 #MINVER#
+* Build-Depends-Package: libknet-dev
+ LIBKNET@LIBKNET 0.9
+ knet_addrtostr@LIBKNET 0.9
+ knet_get_compress_list@LIBKNET 0.9
+ knet_get_crypto_list@LIBKNET 0.9
+ knet_get_transport_id_by_name@LIBKNET 0.9
+ knet_get_transport_list@LIBKNET 0.9
+ knet_get_transport_name_by_id@LIBKNET 0.9
+ knet_handle_add_datafd@LIBKNET 0.9
+ knet_handle_clear_stats@LIBKNET 0.9
+ knet_handle_compress@LIBKNET 0.9
+ knet_handle_crypto@LIBKNET 0.9
+ knet_handle_enable_filter@LIBKNET 0.9
+ knet_handle_enable_pmtud_notify@LIBKNET 0.9
+ knet_handle_enable_sock_notify@LIBKNET 0.9
+ knet_handle_free@LIBKNET 0.9
+ knet_handle_get_channel@LIBKNET 0.9
+ knet_handle_get_datafd@LIBKNET 0.9
+ knet_handle_get_stats@LIBKNET 0.9
+ knet_handle_get_transport_reconnect_interval@LIBKNET 0.9
+ knet_handle_new@LIBKNET 0.9
+ knet_handle_new_ex@LIBKNET 1.1
+ knet_handle_pmtud_get@LIBKNET 0.9
+ knet_handle_pmtud_getfreq@LIBKNET 0.9
+ knet_handle_pmtud_setfreq@LIBKNET 0.9
+ knet_handle_remove_datafd@LIBKNET 0.9
+ knet_handle_set_transport_reconnect_interval@LIBKNET 0.9
+ knet_handle_setfwd@LIBKNET 0.9
+ knet_host_add@LIBKNET 0.9
+ knet_host_enable_status_change_notify@LIBKNET 0.9
+ knet_host_get_host_list@LIBKNET 0.9
+ knet_host_get_id_by_host_name@LIBKNET 0.9
+ knet_host_get_name_by_host_id@LIBKNET 0.9
+ knet_host_get_policy@LIBKNET 0.9
+ knet_host_get_status@LIBKNET 0.9
+ knet_host_remove@LIBKNET 0.9
+ knet_host_set_name@LIBKNET 0.9
+ knet_host_set_policy@LIBKNET 0.9
+ knet_link_clear_config@LIBKNET 0.9
+ knet_link_get_config@LIBKNET 0.9
+ knet_link_get_enable@LIBKNET 0.9
+ knet_link_get_link_list@LIBKNET 0.9
+ knet_link_get_ping_timers@LIBKNET 0.9
+ knet_link_get_pong_count@LIBKNET 0.9
+ knet_link_get_priority@LIBKNET 0.9
+ knet_link_get_status@LIBKNET 0.9
+ knet_link_set_config@LIBKNET 0.9
+ knet_link_set_enable@LIBKNET 0.9
+ knet_link_set_ping_timers@LIBKNET 0.9
+ knet_link_set_pong_count@LIBKNET 0.9
+ knet_link_set_priority@LIBKNET 0.9
+ knet_log_get_loglevel@LIBKNET 0.9
+ knet_log_get_loglevel_id@LIBKNET 0.9
+ knet_log_get_loglevel_name@LIBKNET 0.9
+ knet_log_get_subsystem_id@LIBKNET 0.9
+ knet_log_get_subsystem_name@LIBKNET 0.9
+ knet_log_set_loglevel@LIBKNET 0.9
+ knet_recv@LIBKNET 0.9
+ knet_send@LIBKNET 0.9
+ knet_send_sync@LIBKNET 0.9
+ knet_strtoaddr@LIBKNET 0.9
--- /dev/null
+usr/include/libnozzle.h
+usr/lib/*/libnozzle.so
+usr/lib/*/pkgconfig/libnozzle.pc
--- /dev/null
+usr/lib/*/libnozzle.so.*
--- /dev/null
+libnozzle.so.1 libnozzle1 #MINVER#
+* Build-Depends-Package: libnozzle-dev
+ LIBNOZZLE@LIBNOZZLE 1.6
+ nozzle_add_ip@LIBNOZZLE 1.6
+ nozzle_close@LIBNOZZLE 1.6
+ nozzle_del_ip@LIBNOZZLE 1.6
+ nozzle_get_fd@LIBNOZZLE 1.6
+ nozzle_get_handle_by_name@LIBNOZZLE 1.6
+ nozzle_get_ips@LIBNOZZLE 1.6
+ nozzle_get_mac@LIBNOZZLE 1.6
+ nozzle_get_mtu@LIBNOZZLE 1.6
+ nozzle_get_name_by_handle@LIBNOZZLE 1.6
+ nozzle_open@LIBNOZZLE 1.6
+ nozzle_reset_mac@LIBNOZZLE 1.6
+ nozzle_reset_mtu@LIBNOZZLE 1.6
+ nozzle_run_updown@LIBNOZZLE 1.6
+ nozzle_set_down@LIBNOZZLE 1.6
+ nozzle_set_mac@LIBNOZZLE 1.6
+ nozzle_set_mtu@LIBNOZZLE 1.6
+ nozzle_set_up@LIBNOZZLE 1.6
--- /dev/null
+From: =?utf-8?q?Ferenc_W=C3=A1gner?= <wferi@debian.org>
+Date: Wed, 3 Apr 2019 10:26:11 +0200
+Subject: send test: skip the SCTP test if SCTP is not supported by the kernel
+
+For example, module loading is disabled on Debian build daemons.
+---
+ libknet/tests/api_knet_send.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/libknet/tests/api_knet_send.c b/libknet/tests/api_knet_send.c
+index f241201..1c55db1 100644
+--- a/libknet/tests/api_knet_send.c
++++ b/libknet/tests/api_knet_send.c
+@@ -173,12 +173,13 @@ static void test(uint8_t transport)
+ }
+
+ if (knet_link_set_config(knet_h, 1, 0, transport, &lo, &lo, 0) < 0) {
++ int exit_status = transport == KNET_TRANSPORT_SCTP && errno == EPROTONOSUPPORT ? SKIP : FAIL;
+ printf("Unable to configure link: %s\n", strerror(errno));
+ knet_host_remove(knet_h, 1);
+ knet_handle_free(knet_h);
+ flush_logs(logfds[0], stdout);
+ close_logpipes(logfds);
+- exit(FAIL);
++ exit(exit_status);
+ }
+
+ if (knet_link_set_enable(knet_h, 1, 0, 1) < 0) {
--- /dev/null
+send-test-skip-the-SCTP-test-if-SCTP-is-not-supported-by-.patch
--- /dev/null
+#!/usr/bin/make -f
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+# Ensure that we link against all needed libraries (cf. Policy 10.2)
+export DEB_LDFLAGS_MAINT_APPEND=-Wl,-z,defs
+
+%:
+ dh $@
+
+# Libtool destroys --as-needed for dynamic libraries (#347650)
+override_dh_autoreconf:
+ dh_autoreconf --as-needed
+
+override_dh_auto_configure:
+ dh_auto_configure -- \
+ --docdir=/usr/share/doc/libknet1 \
+ `dh_listpackages | grep -q '^libknet-doc$$' || printf %s --disable-man` \
+ --disable-static
+
+override_dh_install:
+ rm debian/tmp/usr/lib/*/libknet.la \
+ debian/tmp/usr/lib/*/libnozzle.la \
+ debian/tmp/usr/lib/*/kronosnet/*.la \
+ debian/tmp/usr/share/doc/libknet1/README \
+ debian/tmp/usr/share/doc/libknet1/README.licence \
+ debian/tmp/usr/share/doc/libknet1/COPYRIGHT \
+ debian/tmp/usr/share/doc/libknet1/COPYING.applications \
+ debian/tmp/usr/share/doc/libknet1/COPYING.libraries
+ dh_install
+
+override_dh_installdocs:
+ dh_installdocs -A COPYRIGHT README
+
+override_dh_missing:
+ dh_missing --fail-missing
+
+override_dh_makeshlibs:
+ dh_makeshlibs --exclude=/kronosnet/ # ignore the modules
--- /dev/null
+3.0 (quilt)
--- /dev/null
+Depends: libknet-dev, libnozzle-dev,
+ gcc, libc6-dev, make, pkg-config,
+ libnl-3-dev, libnl-route-3-dev, libsctp-dev,
+ libbz2-dev, liblz4-dev, liblzma-dev, liblzo2-dev, zlib1g-dev,
+ libnss3-dev, libssl-dev
+Restrictions: allow-stderr, isolation-container, needs-root
+Tests: unit
--- /dev/null
+#!/bin/sh -ex
+
+./configure --disable-man
+
+# api-test-coverage would need a build, so call check-TESTS, not check:
+make LIBS="$(pkg-config --libs libknet) \$(PTHREAD_LIBS) \$(dl_LIBS)" \
+ VERBOSE=1 -C libknet/tests all check-TESTS
+
+mkdir -p /dev/net
+[ -c /dev/net/tun ] || mknod -m666 /dev/net/tun c 10 200
+make LIBS="$(pkg-config --libs libnozzle) \$(PTHREAD_LIBS) \$(libnl_LIBS)" \
+ VERBOSE=1 -C libnozzle/tests all check-TESTS
--- /dev/null
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+u5LZ0iLuY5xKLFCUjbMPIg==
+=huHv
+-----END PGP PUBLIC KEY BLOCK-----
--- /dev/null
+version=4
+
+opts=pgpmode=auto \
+ https://kronosnet.org/releases/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@