diff -Nru busybox-1.36.1/debian/changelog busybox-1.36.1/debian/changelog --- busybox-1.36.1/debian/changelog 2024-04-08 15:55:04.000000000 +0000 +++ busybox-1.36.1/debian/changelog 2024-04-19 08:16:16.000000000 +0000 @@ -1,3 +1,10 @@ +busybox (1:1.36.1-6ubuntu3) noble; urgency=medium + + * d/p/reverse-cbq.patch: Re-instate defines from removed kernel headers + (LP: #2062414) + + -- Dave Jones Fri, 19 Apr 2024 10:16:16 +0200 + busybox (1:1.36.1-6ubuntu2) noble; urgency=high * No change rebuild for 64-bit time_t and frame pointers. diff -Nru busybox-1.36.1/debian/patches/reverse-cbq.patch busybox-1.36.1/debian/patches/reverse-cbq.patch --- busybox-1.36.1/debian/patches/reverse-cbq.patch 1970-01-01 00:00:00.000000000 +0000 +++ busybox-1.36.1/debian/patches/reverse-cbq.patch 2024-04-19 08:16:14.000000000 +0000 @@ -0,0 +1,108 @@ +From: Dave Jones +Bug: https://bugs.busybox.net/show_bug.cgi?id=16042 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/busybox/+bug/2062414 +Forwarded: not-needed +Description: Re-instates the CBQ defines that networking/tc.c relies upon + The CBQ UAPI was removed from the kernel in [1]. Unfortunately, busybox + relies upon the defines in this header. There is no current upstream patch, + so this is a hack which re-instates the defines from the removed header as + a compatibility header within busybox itself. It should be removed whenever + a proper re-write of networking/tc.c (the affected unit) is available. + + [1]: https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/noble/commit/?id=33241dca486264193ed68167c8eeae1fb197f3df + +--- /dev/null ++++ b/networking/cbq_compat.h +@@ -0,0 +1,82 @@ ++/* Derived from the following kernel commit, which removed the CBQ UAPI: ++ * https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/noble/commit/?id=33241dca486264193ed68167c8eeae1fb197f3df ++ */ ++ ++/* CBQ section */ ++ ++#define TC_CBQ_MAXPRIO 8 ++#define TC_CBQ_MAXLEVEL 8 ++#define TC_CBQ_DEF_EWMA 5 ++ ++struct tc_cbq_lssopt { ++ unsigned char change; ++ unsigned char flags; ++#define TCF_CBQ_LSS_BOUNDED 1 ++#define TCF_CBQ_LSS_ISOLATED 2 ++ unsigned char ewma_log; ++ unsigned char level; ++#define TCF_CBQ_LSS_FLAGS 1 ++#define TCF_CBQ_LSS_EWMA 2 ++#define TCF_CBQ_LSS_MAXIDLE 4 ++#define TCF_CBQ_LSS_MINIDLE 8 ++#define TCF_CBQ_LSS_OFFTIME 0x10 ++#define TCF_CBQ_LSS_AVPKT 0x20 ++ __u32 maxidle; ++ __u32 minidle; ++ __u32 offtime; ++ __u32 avpkt; ++}; ++ ++struct tc_cbq_wrropt { ++ unsigned char flags; ++ unsigned char priority; ++ unsigned char cpriority; ++ unsigned char __reserved; ++ __u32 allot; ++ __u32 weight; ++}; ++ ++struct tc_cbq_ovl { ++ unsigned char strategy; ++#define TC_CBQ_OVL_CLASSIC 0 ++#define TC_CBQ_OVL_DELAY 1 ++#define TC_CBQ_OVL_LOWPRIO 2 ++#define TC_CBQ_OVL_DROP 3 ++#define TC_CBQ_OVL_RCLASSIC 4 ++ unsigned char priority2; ++ __u16 pad; ++ __u32 penalty; ++}; ++ ++struct tc_cbq_police { ++ unsigned char police; ++ unsigned char __res1; ++ unsigned short __res2; ++}; ++ ++struct tc_cbq_fopt { ++ __u32 split; ++ __u32 defmap; ++ __u32 defchange; ++}; ++ ++struct tc_cbq_xstats { ++ __u32 borrows; ++ __u32 overactions; ++ __s32 avgidle; ++ __s32 undertime; ++}; ++ ++enum { ++ TCA_CBQ_UNSPEC, ++ TCA_CBQ_LSSOPT, ++ TCA_CBQ_WRROPT, ++ TCA_CBQ_FOPT, ++ TCA_CBQ_OVL_STRATEGY, ++ TCA_CBQ_RATE, ++ TCA_CBQ_RTAB, ++ TCA_CBQ_POLICE, ++ __TCA_CBQ_MAX, ++}; ++ ++#define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1) +--- a/networking/tc.c ++++ b/networking/tc.c +@@ -45,6 +45,7 @@ + + #include "libbb.h" + #include "common_bufsiz.h" ++#include "cbq_compat.h" + + #include "libiproute/utils.h" + #include "libiproute/ip_common.h" diff -Nru busybox-1.36.1/debian/patches/series busybox-1.36.1/debian/patches/series --- busybox-1.36.1/debian/patches/series 2023-12-12 20:38:56.000000000 +0000 +++ busybox-1.36.1/debian/patches/series 2024-04-19 08:16:14.000000000 +0000 @@ -23,3 +23,4 @@ syslogd-make-it-optionally-systemd-socket-activated.patch # install-fix-chown-resetting-suid-sgid-bits-from-chmod.patch +reverse-cbq.patch