Hello, The merge request on Salsa (debian/net-tools !6) fixes this FTBFS by building net-tools without ROSE. May I suggest a fix that keeps ROSE support instead?
ROSE is still in use on amateur radio packet nodes, mine among them. After its removal from Linux 7.1 the code lives on out of tree (linux-netdev/mod-orphan) with the same user-space interface, and Debian stable and older releases still ship kernels that include it. With ROSE compiled out, "netstat --rose" and "route -A rose" disappear and rose0 shows up as an unknown hardware type in ifconfig. Only lib/rose.c depends on <linux/rose.h>. glibc ships its own <netrose/rose.h> (and <netax25/ax25.h>), which does not depend on the kernel headers and defines everything rose.c needs; ax25.c and netrom.c already use <netax25/ax25.h> this way. The attached patch makes rose.c include the glibc header when __has_include() finds it, and fall back to <linux/rose.h> otherwise, so builds with another C library behave as before. It applies to 2.10-2 (offset 2 lines) and needs no change in debian/config.h or debian/config.make. Tested on amd64 with GCC and glibc 2.43, on the 2.10 tree with the Debian configuration: - with an include tree from which linux/rose.h and linux/netrom.h were removed (as in linux-libc-dev 7.3): before the patch, rose.c:41 "fatal error: linux/rose.h"; after, the whole build succeeds; - with the normal headers: unchanged; - on a live ROSE node (kernel 7.0): ifconfig rose0, netstat --rose and route -A rose give the expected output; - with musl-gcc, rose.c behaves as before the patch. The same change has been proposed upstream as ecki/net-tools pull request 72. Upstream disabled ROSE in its default https://www.google.com/url?q=http://config.in&source=gmail&ust=1792171441590000&sa=E in July (#70); the patch does not change that default, it only lets distributions that enable ROSE, as Debian does, keep building it. Thanks, Bernard Pidoux, F6BVP
Description: rose: use the C library's <netrose/rose.h> when available Linux 7.1 removed <linux/rose.h> from the kernel uapi headers, so rose.c no longer builds against linux-libc-dev 7.3. glibc ships its own <netrose/rose.h> and <netax25/ax25.h>, independent of the kernel headers; use them when __has_include() finds them and fall back to the kernel headers otherwise (musl), so that ROSE support can be kept. Author: Bernard Pidoux <[email protected]> Forwarded: https://github.com/ecki/net-tools/pull/72 Bug-Debian: https://bugs.debian.org/1150382 Bug-Debian: https://bugs.debian.org/1143341 Last-Update: 2026-10-15 --- diff --git a/lib/rose.c b/lib/rose.c index dfcebae..c1bcf82 100644 --- a/lib/rose.c +++ b/lib/rose.c @@ -34,7 +34,19 @@ #include "intl.h" #include "util.h" -#ifndef _NETROSE_ROSE_H +/* Prefer the C library's ROSE header: unlike <linux/rose.h>, which was + removed from the kernel uapi headers in Linux 7.1, it does not depend + on the kernel version. Fall back to the kernel headers otherwise (musl). */ +#if defined(__has_include) +#if __has_include(<netrose/rose.h>) +#define HAVE_NETROSE_ROSE_H 1 +#endif +#endif + +#if defined(HAVE_NETROSE_ROSE_H) +#include <netax25/ax25.h> +#include <netrose/rose.h> +#elif !defined(_NETROSE_ROSE_H) #include <linux/ax25.h> #include <linux/rose.h> /* this will check for the broken #define PF_ROSE AF_ROSE define in some older kernel headers */

