From ac4fcb61c65e94ed5c29819172c579134cced5f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Tue, 4 Mar 2025 08:57:26 +0100 Subject: [PATCH 01/11] Update buildroot to new LTS base (2025.02) --- buildroot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildroot b/buildroot index 3592f7d3..06a983c9 160000 --- a/buildroot +++ b/buildroot @@ -1 +1 @@ -Subproject commit 3592f7d3e1d1d95bb87f993a0f67416fad37122d +Subproject commit 06a983c96424101972e98062740b72854e2c92be From ed2a776c5585e5634ed41f44183243f067c86efb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Tue, 4 Mar 2025 10:02:09 +0100 Subject: [PATCH 02/11] Remove obsolete patches --- .../6.11/fix-wrong-autoneg-state.patch | 29 ------------------- patches/frr/8.5.4/0001-libyang-compat.patch | 22 -------------- 2 files changed, 51 deletions(-) delete mode 100644 patches/ethtool/6.11/fix-wrong-autoneg-state.patch delete mode 100644 patches/frr/8.5.4/0001-libyang-compat.patch diff --git a/patches/ethtool/6.11/fix-wrong-autoneg-state.patch b/patches/ethtool/6.11/fix-wrong-autoneg-state.patch deleted file mode 100644 index c44176cc..00000000 --- a/patches/ethtool/6.11/fix-wrong-autoneg-state.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9b2f6b94132d14b1d2d2a7d3b65bac4f3a056aac Mon Sep 17 00:00:00 2001 -From: Mohan Prasad J -Date: Mon, 4 Nov 2024 04:04:07 +0530 -Subject: netlink: settings: Fix for wrong auto-negotiation state - -Auto-negotiation state in json format showed the -opposite state due to wrong comparison. -Fix for returning the correct auto-neg state implemented. - -Signed-off-by: Mohan Prasad J ---- - netlink/settings.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/netlink/settings.c b/netlink/settings.c -index dbfb520..b9b3ba9 100644 ---- a/netlink/settings.c -+++ b/netlink/settings.c -@@ -546,7 +546,7 @@ int linkmodes_reply_cb(const struct nlmsghdr *nlhdr, void *data) - (autoneg == AUTONEG_DISABLE) ? "off" : "on"); - else - print_bool(PRINT_JSON, "auto-negotiation", NULL, -- autoneg == AUTONEG_DISABLE); -+ autoneg != AUTONEG_DISABLE); - } - if (tb[ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG]) { - uint8_t val; --- -cgit 1.2.3-korg diff --git a/patches/frr/8.5.4/0001-libyang-compat.patch b/patches/frr/8.5.4/0001-libyang-compat.patch deleted file mode 100644 index 7b6093e4..00000000 --- a/patches/frr/8.5.4/0001-libyang-compat.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/lib/yang.c b/lib/yang.c -index ef1cf898a..c780b8e8c 100644 ---- a/lib/yang.c -+++ b/lib/yang.c -@@ -647,7 +647,7 @@ struct yang_data *yang_data_list_find(const struct list *list, - } - - /* Make libyang log its errors using FRR logging infrastructure. */ --static void ly_log_cb(LY_LOG_LEVEL level, const char *msg, const char *path) -+static void ly_log_cb(LY_LOG_LEVEL level, const char *msg, const char *path, uint64_t line) - { - int priority = LOG_ERR; - -@@ -742,7 +742,7 @@ struct ly_ctx *yang_ctx_new_setup(bool embedded_modules, bool explicit_compile) - void yang_init(bool embedded_modules, bool defer_compile) - { - /* Initialize libyang global parameters that affect all containers. */ -- ly_set_log_clb(ly_log_cb, 1); -+ ly_set_log_clb(ly_log_cb); - ly_log_options(LY_LOLOG | LY_LOSTORE); - - /* Initialize libyang container for native models. */ From 97623b989c03486df7045f00d2886d48de4e6a64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Tue, 4 Mar 2025 12:24:32 +0100 Subject: [PATCH 03/11] frr: Add upstream compat patch to work with libyang 3 --- patches/frr/9.1.3/0001-libyang-compat.patch | 67 +++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 patches/frr/9.1.3/0001-libyang-compat.patch diff --git a/patches/frr/9.1.3/0001-libyang-compat.patch b/patches/frr/9.1.3/0001-libyang-compat.patch new file mode 100644 index 00000000..0efbda97 --- /dev/null +++ b/patches/frr/9.1.3/0001-libyang-compat.patch @@ -0,0 +1,67 @@ +diff -urN frr-9.1.3.orig/lib/yang.c frr-9.1.3/lib/yang.c +--- frr-9.1.3.orig/lib/yang.c 2024-12-27 22:06:42.000000000 +0100 ++++ frr-9.1.3/lib/yang.c 2025-03-04 12:23:06.723640114 +0100 +@@ -10,11 +10,23 @@ + #include "lib_errors.h" + #include "yang.h" + #include "yang_translator.h" ++#include + #include "northbound.h" + + DEFINE_MTYPE_STATIC(LIB, YANG_MODULE, "YANG module"); + DEFINE_MTYPE_STATIC(LIB, YANG_DATA, "YANG data structure"); + ++/* Safe to remove after libyang 2.2.8 */ ++#if (LY_VERSION_MAJOR < 3) ++#define yang_lyd_find_xpath3(ctx_node, tree, xpath, format, prefix_data, vars, \ ++ set) \ ++ lyd_find_xpath3(ctx_node, tree, xpath, vars, set) ++#else ++#define yang_lyd_find_xpath3(ctx_node, tree, xpath, format, prefix_data, vars, \ ++ set) \ ++ lyd_find_xpath3(ctx_node, tree, xpath, LY_VALUE_JSON, NULL, vars, set) ++#endif ++ + /* libyang container. */ + struct ly_ctx *ly_native_ctx; + +@@ -657,7 +669,12 @@ + } + + /* Make libyang log its errors using FRR logging infrastructure. */ +-static void ly_log_cb(LY_LOG_LEVEL level, const char *msg, const char *path) ++static void ly_zlog_cb(LY_LOG_LEVEL level, const char *msg, const char *data_path ++#if !(LY_VERSION_MAJOR < 3) ++ , ++ const char *schema_path, uint64_t line ++#endif ++) + { + int priority = LOG_ERR; + +@@ -674,8 +691,14 @@ + break; + } + +- if (path) +- zlog(priority, "libyang: %s (%s)", msg, path); ++ if (data_path) ++ zlog(priority, "libyang: %s (%s)", msg, data_path); ++#if !(LY_VERSION_MAJOR < 3) ++ else if (schema_path) ++ zlog(priority, "libyang %s (%s)\n", msg, schema_path); ++ else if (line) ++ zlog(priority, "libyang %s (line %" PRIu64 ")\n", msg, line); ++#endif + else + zlog(priority, "libyang: %s", msg); + } +@@ -752,7 +775,7 @@ + void yang_init(bool embedded_modules, bool defer_compile) + { + /* Initialize libyang global parameters that affect all containers. */ +- ly_set_log_clb(ly_log_cb, 1); ++ ly_set_log_clb(ly_zlog_cb); + ly_log_options(LY_LOLOG | LY_LOSTORE); + + /* Initialize libyang container for native models. */ From c5fe10aada0f8c9adc456d508dc3acf394c02bd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Tue, 4 Mar 2025 13:04:36 +0100 Subject: [PATCH 04/11] busybox: Add patch for the new version --- ...adduser-D-behavior-and-add-d-for-SSH.patch | 97 +++++++++++++++++++ ...gin-add-support-for-shadow-passwords.patch | 55 +++++++++++ 2 files changed, 152 insertions(+) create mode 100644 patches/busybox/1.37.0/0001-adduser-clarify-adduser-D-behavior-and-add-d-for-SSH.patch create mode 100644 patches/busybox/1.37.0/0002-login-add-support-for-shadow-passwords.patch diff --git a/patches/busybox/1.37.0/0001-adduser-clarify-adduser-D-behavior-and-add-d-for-SSH.patch b/patches/busybox/1.37.0/0001-adduser-clarify-adduser-D-behavior-and-add-d-for-SSH.patch new file mode 100644 index 00000000..e96e8147 --- /dev/null +++ b/patches/busybox/1.37.0/0001-adduser-clarify-adduser-D-behavior-and-add-d-for-SSH.patch @@ -0,0 +1,97 @@ +From 7e93dca4dab6bdbb39fd7f7c0f436839a1eb626e Mon Sep 17 00:00:00 2001 +From: Joachim Wiberg +Date: Wed, 5 Jul 2023 22:38:56 +0200 +Subject: [PATCH 1/2] adduser: clarify adduser -D behavior and add -d for SSH + key login +Organization: Addiva Elektronik + +Clarify that -D locks the account (!), then add -d to create an account +for which password login is disabled (*) but the user can log in with +SSH keys. + +This also adjusts the long option --disabled-password, which was mapped +to -D, probably mistakenly. With this change BusyBox adduser behaves +the same as Debian's --disabled-login and --disabled-password. + +Fixes #10981 + +Signed-off-by: Joachim Wiberg +--- + loginutils/adduser.c | 24 ++++++++++++++---------- + 1 file changed, 14 insertions(+), 10 deletions(-) + +diff --git a/loginutils/adduser.c b/loginutils/adduser.c +index d3c795afa..cf6a0264a 100644 +--- a/loginutils/adduser.c ++++ b/loginutils/adduser.c +@@ -62,7 +62,8 @@ + //usage: "\n -s SHELL Login shell" + //usage: "\n -G GRP Group" + //usage: "\n -S Create a system user" +-//usage: "\n -D Don't assign a password" ++//usage: "\n -D Don't assign a password (locked account)" ++//usage: "\n -d Like -D but allow login using SSH keys" + //usage: "\n -H Don't create home directory" + //usage: "\n -u UID User id" + //usage: "\n -k SKEL Skeleton directory (/etc/skel)" +@@ -82,10 +83,11 @@ + #define OPT_SHELL (1 << 2) + #define OPT_GID (1 << 3) + #define OPT_DONT_SET_PASS (1 << 4) +-#define OPT_SYSTEM_ACCOUNT (1 << 5) +-#define OPT_DONT_MAKE_HOME (1 << 6) +-#define OPT_UID (1 << 7) +-#define OPT_SKEL (1 << 8) ++#define OPT_DISABLED_PASS (1 << 5) ++#define OPT_SYSTEM_ACCOUNT (1 << 6) ++#define OPT_DONT_MAKE_HOME (1 << 7) ++#define OPT_UID (1 << 8) ++#define OPT_SKEL (1 << 9) + + /* remix */ + /* recoded such that the uid may be passed in *p */ +@@ -168,7 +170,8 @@ static const char adduser_longopts[] ALIGN1 = + "gecos\0" Required_argument "g" + "shell\0" Required_argument "s" + "ingroup\0" Required_argument "G" +- "disabled-password\0" No_argument "D" ++ "disabled-password\0" No_argument "d" ++ "disabled-login\0" No_argument "D" + "empty-password\0" No_argument "D" + "system\0" No_argument "S" + "no-create-home\0" No_argument "H" +@@ -202,10 +205,10 @@ int adduser_main(int argc UNUSED_PARAM, char **argv) + pw.pw_dir = NULL; + + opts = getopt32long(argv, "^" +- "h:g:s:G:DSHu:k:" ++ "h:g:s:G:DdSHu:k:" + /* at least one and at most two non-option args */ + /* disable interactive passwd for system accounts */ +- "\0" "-1:?2:SD", ++ "\0" "-1:?2:SDd", + adduser_longopts, + &pw.pw_dir, &pw.pw_gecos, &pw.pw_shell, + &usegroup, &uid, &skel +@@ -263,7 +266,8 @@ int adduser_main(int argc UNUSED_PARAM, char **argv) + * 8. unix date when login expires (i.e. when it may no longer be used) + */ + /* fields: 2 3 4 5 6 78 */ +- p = xasprintf("!:%u:0:99999:7:::", (unsigned)(time(NULL)) / (24*60*60)); ++ p = xasprintf("%c:%u:0:99999:7:::", (opts & OPT_DISABLED_PASS) ? '*' : '!', ++ (unsigned)(time(NULL)) / (24*60*60)); + /* ignore errors: if file is missing we suppose admin doesn't want it */ + update_passwd(bb_path_shadow_file, pw.pw_name, p, NULL); + if (ENABLE_FEATURE_CLEAN_UP) +@@ -305,7 +309,7 @@ int adduser_main(int argc UNUSED_PARAM, char **argv) + } + } + +- if (!(opts & OPT_DONT_SET_PASS)) { ++ if (!(opts & (OPT_DONT_SET_PASS | OPT_DISABLED_PASS))) { + /* interactively set passwd */ + passwd_wrapper(pw.pw_name); + } +-- +2.34.1 + diff --git a/patches/busybox/1.37.0/0002-login-add-support-for-shadow-passwords.patch b/patches/busybox/1.37.0/0002-login-add-support-for-shadow-passwords.patch new file mode 100644 index 00000000..e7c9223c --- /dev/null +++ b/patches/busybox/1.37.0/0002-login-add-support-for-shadow-passwords.patch @@ -0,0 +1,55 @@ +From 2a1462d9f6a117cf1a5ae531d36143bd0a55d533 Mon Sep 17 00:00:00 2001 +From: Joachim Wiberg +Date: Wed, 5 Jul 2023 23:48:14 +0200 +Subject: [PATCH 2/2] login: add support for shadow passwords +Organization: Addiva Elektronik + +login, on fallback from PAM, or when PAM support is not enabled, checks +pw->pw_passwd for locked ("!") or passwordless ("*") accounts. However, +on systems with shadow passwords the first character will always be "x". + +This patch adds shadow password support from the passwd tool, letting +the user end up in "Login incorrect" rather than the "login: bad salt" +case, which could be used by an attacker to guess the state of accounts. + +Signed-off-by: Joachim Wiberg +--- + loginutils/login.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/loginutils/login.c b/loginutils/login.c +index b02be2176..0e7f20844 100644 +--- a/loginutils/login.c ++++ b/loginutils/login.c +@@ -345,6 +345,11 @@ int login_main(int argc UNUSED_PARAM, char **argv) + #endif + #if ENABLE_LOGIN_SESSION_AS_CHILD + pid_t child_pid; ++#endif ++#if ENABLE_FEATURE_SHADOWPASSWDS ++ /* Using _r function to avoid pulling in static buffers */ ++ struct spwd spw, *result = NULL; ++ char buffer[256]; + #endif + IF_FEATURE_UTMP(pid_t my_pid;) + +@@ -493,6 +498,16 @@ int login_main(int argc UNUSED_PARAM, char **argv) + goto fake_it; + } + ++#if ENABLE_FEATURE_SHADOWPASSWDS ++ if (getspnam_r(pw->pw_name, &spw, buffer, sizeof(buffer), &result) ++ || !result || strcmp(result->sp_namp, pw->pw_name)) { ++ strcpy(username, "UNKNOWN"); ++ goto fake_it; ++ } else { ++ pw->pw_passwd = result->sp_pwdp; ++ } ++#endif ++ + if (pw->pw_passwd[0] == '!' || pw->pw_passwd[0] == '*') + goto auth_failed; + +-- +2.34.1 + From f4e75dfecb54d1dfcc0cc1089e255760279ab601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Tue, 4 Mar 2025 14:49:05 +0100 Subject: [PATCH 05/11] Update the name in hash file for the packages for fetched from git Buildroot have change the named for the tar-package created for a package created from a git repo. --- package/faux/faux.hash | 2 +- package/klish-plugin-sysrepo/klish-plugin-sysrepo.hash | 2 +- package/klish/klish.hash | 2 +- package/nghttp2-asio/nghttp2-asio.hash | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package/faux/faux.hash b/package/faux/faux.hash index 7b718e09..9a0de32d 100644 --- a/package/faux/faux.hash +++ b/package/faux/faux.hash @@ -1,3 +1,3 @@ # Locally calculated sha256 9d9d33b873917ca5d0bdcc47a36d2fd385971ab0c045d1472fcadf95ee5bcf5b LICENCE -sha256 f8725f39b9d9d45c8ad6fd2cfc3c1c834a80c32b4217a3d07dd8ed7fe4b6e352 faux-df1d569287bc45d8fd880287c00e3874c5627c19-br1.tar.gz +sha256 b385d30b88cab31bf910436ceb1262947bf34a19ca85098c28510e639dc4b37d faux-df1d569287bc45d8fd880287c00e3874c5627c19-git4.tar.gz diff --git a/package/klish-plugin-sysrepo/klish-plugin-sysrepo.hash b/package/klish-plugin-sysrepo/klish-plugin-sysrepo.hash index 210eba63..618c789b 100644 --- a/package/klish-plugin-sysrepo/klish-plugin-sysrepo.hash +++ b/package/klish-plugin-sysrepo/klish-plugin-sysrepo.hash @@ -1,3 +1,3 @@ # Locally calculated sha256 9d9d33b873917ca5d0bdcc47a36d2fd385971ab0c045d1472fcadf95ee5bcf5b LICENCE -sha256 b579d0028c8c88ddea27282f03c8c23fa9a758ad47918aeffb048456cf204375 klish-plugin-sysrepo-b693714a1ff5f8021651d7619556afb19945e5e6-br1.tar.gz +sha256 598089ad964594bbbaf2b7d7214d8761c828174eef53b7cfb1cd98517f407d01 klish-plugin-sysrepo-b693714a1ff5f8021651d7619556afb19945e5e6-git4.tar.gz diff --git a/package/klish/klish.hash b/package/klish/klish.hash index 9153dfb7..26e4d492 100644 --- a/package/klish/klish.hash +++ b/package/klish/klish.hash @@ -1,3 +1,3 @@ # Locally calculated sha256 9d9d33b873917ca5d0bdcc47a36d2fd385971ab0c045d1472fcadf95ee5bcf5b LICENCE -sha256 0305355dd29dc276f7957d51e2406907e0c862dfd46f496c8a921df4f3d72a8d klish-019ebd2704e322b5d500f5687d526431e535eec8-br1.tar.gz +sha256 79c9b16b227320fea358114738933ea25be33f8f263d3eec1f83fb603c0c0b22 klish-019ebd2704e322b5d500f5687d526431e535eec8-git4.tar.gz diff --git a/package/nghttp2-asio/nghttp2-asio.hash b/package/nghttp2-asio/nghttp2-asio.hash index c28b16ab..0ede0b45 100644 --- a/package/nghttp2-asio/nghttp2-asio.hash +++ b/package/nghttp2-asio/nghttp2-asio.hash @@ -1,4 +1,4 @@ # Locally calculated sha256 6b94f3abc1aabd0c72a7c7d92a77f79dda7c8a0cb3df839a97890b4116a2de2a COPYING -sha256 6bd96a33f41f73d6ca524efa946b5e592227a5dd6dd21f193fadf4be3583552d nghttp2-asio-e877868abe06a83ed0a6ac6e245c07f6f20866b5-br1.tar.gz +sha256 d971c538a31eae5714d2434d90f86794f267615e85e8d2bb0c383e83c300e1ce nghttp2-asio-e877868abe06a83ed0a6ac6e245c07f6f20866b5-git4.tar.gz From b52c462cfaab9e55705295ebd689cf03b4ebb2dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Tue, 4 Mar 2025 15:03:33 +0100 Subject: [PATCH 06/11] Update patches for new versions --- ...aticd-Re-enable-split-config-support.patch | 30 +++++++++++++++++++ ...add-mcast_flood_always-bridge-option.patch | 0 ...-accept-symbolic-names-also-for-show.patch | 0 ...-all-users-of-group-wheel-to-connect.patch | 0 ...rc-main-add-optional-syslog-support.patch} | 29 ++++++++---------- ...0001-src-bundle-enable-tftp-protocol.patch | 29 ------------------ 6 files changed, 43 insertions(+), 45 deletions(-) create mode 100644 patches/frr/9.1.3/0002-staticd-Re-enable-split-config-support.patch rename patches/iproute2/{6.12.0 => 6.13.0}/0001-iplink_bridge-add-mcast_flood_always-bridge-option.patch (100%) rename patches/iproute2/{6.12.0 => 6.13.0}/0002-ipaddress-accept-symbolic-names-also-for-show.patch (100%) rename patches/lldpd/{1.0.17 => 1.0.18}/0001-lldpd-allow-all-users-of-group-wheel-to-connect.patch (100%) rename patches/rauc/{1.8/0002-src-main-add-optional-syslog-support.patch => 1.13/0001-src-main-add-optional-syslog-support.patch} (79%) delete mode 100644 patches/rauc/1.8/0001-src-bundle-enable-tftp-protocol.patch diff --git a/patches/frr/9.1.3/0002-staticd-Re-enable-split-config-support.patch b/patches/frr/9.1.3/0002-staticd-Re-enable-split-config-support.patch new file mode 100644 index 00000000..92301623 --- /dev/null +++ b/patches/frr/9.1.3/0002-staticd-Re-enable-split-config-support.patch @@ -0,0 +1,30 @@ +From 5f37809521acda432d77aa4028b74c5713c2d988 Mon Sep 17 00:00:00 2001 +From: Tobias Waldekranz +Date: Wed, 20 Nov 2024 15:53:21 +0100 +Subject: [PATCH 2/2] staticd: Re-enable split config support +Organization: Addiva Elektronik + +Because we can. + +Signed-off-by: Tobias Waldekranz +--- + staticd/static_main.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/staticd/static_main.c b/staticd/static_main.c +index 165fb4d65..59e924c83 100644 +--- a/staticd/static_main.c ++++ b/staticd/static_main.c +@@ -128,8 +128,7 @@ FRR_DAEMON_INFO(staticd, STATIC, .vty_port = STATIC_VTY_PORT, + + .privs = &static_privs, .yang_modules = staticd_yang_modules, + .n_yang_modules = array_size(staticd_yang_modules), +- +- .flags = FRR_NO_SPLIT_CONFIG); ++ ); + + int main(int argc, char **argv, char **envp) + { +-- +2.43.0 + diff --git a/patches/iproute2/6.12.0/0001-iplink_bridge-add-mcast_flood_always-bridge-option.patch b/patches/iproute2/6.13.0/0001-iplink_bridge-add-mcast_flood_always-bridge-option.patch similarity index 100% rename from patches/iproute2/6.12.0/0001-iplink_bridge-add-mcast_flood_always-bridge-option.patch rename to patches/iproute2/6.13.0/0001-iplink_bridge-add-mcast_flood_always-bridge-option.patch diff --git a/patches/iproute2/6.12.0/0002-ipaddress-accept-symbolic-names-also-for-show.patch b/patches/iproute2/6.13.0/0002-ipaddress-accept-symbolic-names-also-for-show.patch similarity index 100% rename from patches/iproute2/6.12.0/0002-ipaddress-accept-symbolic-names-also-for-show.patch rename to patches/iproute2/6.13.0/0002-ipaddress-accept-symbolic-names-also-for-show.patch diff --git a/patches/lldpd/1.0.17/0001-lldpd-allow-all-users-of-group-wheel-to-connect.patch b/patches/lldpd/1.0.18/0001-lldpd-allow-all-users-of-group-wheel-to-connect.patch similarity index 100% rename from patches/lldpd/1.0.17/0001-lldpd-allow-all-users-of-group-wheel-to-connect.patch rename to patches/lldpd/1.0.18/0001-lldpd-allow-all-users-of-group-wheel-to-connect.patch diff --git a/patches/rauc/1.8/0002-src-main-add-optional-syslog-support.patch b/patches/rauc/1.13/0001-src-main-add-optional-syslog-support.patch similarity index 79% rename from patches/rauc/1.8/0002-src-main-add-optional-syslog-support.patch rename to patches/rauc/1.13/0001-src-main-add-optional-syslog-support.patch index 7a47ea44..ed85c89d 100644 --- a/patches/rauc/1.8/0002-src-main-add-optional-syslog-support.patch +++ b/patches/rauc/1.13/0001-src-main-add-optional-syslog-support.patch @@ -17,11 +17,11 @@ Signed-off-by: Joachim Wiberg src/main.c | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) -diff --git a/src/main.c b/src/main.c -index 70bb7b5..cfc8607 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -9,6 +9,7 @@ + +diff -urN rauc-1.13.orig/src/main.c rauc-1.13/src/main.c +--- rauc-1.13.orig/src/main.c 2025-03-04 14:55:59.671534612 +0100 ++++ rauc-1.13/src/main.c 2025-03-04 14:57:13.022772424 +0100 +@@ -10,6 +10,7 @@ #include #include #include @@ -29,7 +29,7 @@ index 70bb7b5..cfc8607 100644 #include #include -@@ -1961,6 +1962,38 @@ static gboolean unknown_start(int argc, char **argv) +@@ -2460,6 +2461,38 @@ return TRUE; } @@ -68,25 +68,25 @@ index 70bb7b5..cfc8607 100644 typedef enum { UNKNOWN = 0, INSTALL, -@@ -2142,7 +2175,7 @@ static void create_option_groups(void) +@@ -2676,7 +2709,7 @@ static void cmdline_handler(int argc, char **argv) { - gboolean help = FALSE, debug = FALSE, version = FALSE; + gboolean help = FALSE, debug = FALSE, use_syslog = FALSE, version = FALSE; - gchar *confpath = NULL, *keyring = NULL, **intermediate = NULL, *mount = NULL; + g_autofree gchar *confpath = NULL, *keyring = NULL, *mount = NULL; char *cmdarg = NULL; g_autoptr(GOptionContext) context = NULL; -@@ -2155,6 +2188,7 @@ static void cmdline_handler(int argc, char **argv) - {"intermediate", '\0', 0, G_OPTION_ARG_FILENAME_ARRAY, &intermediate, "intermediate CA file name", "PEMFILE"}, +@@ -2690,6 +2723,7 @@ + {"intermediate", '\0', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_FILENAME_ARRAY, &intermediate, "intermediate CA file or PKCS#11 URL", "PEMFILE|PKCS11-URL"}, {"mount", '\0', 0, G_OPTION_ARG_FILENAME, &mount, "mount prefix", "PATH"}, {"debug", 'd', 0, G_OPTION_ARG_NONE, &debug, "enable debug output", NULL}, + {"syslog", 's', 0, G_OPTION_ARG_NONE, &use_syslog, "use syslog instead of stdout", NULL}, {"version", '\0', 0, G_OPTION_ARG_NONE, &version, "display version", NULL}, - {"help", 'h', 0, G_OPTION_ARG_NONE, &help, NULL, NULL}, + {"help", 'h', 0, G_OPTION_ARG_NONE, &help, "display help and exit", NULL}, {0} -@@ -2269,6 +2303,15 @@ static void cmdline_handler(int argc, char **argv) - g_message("Debug log domains: '%s'", domains); +@@ -2816,6 +2850,15 @@ + ); } + if (use_syslog) { @@ -101,6 +101,3 @@ index 70bb7b5..cfc8607 100644 /* get first parameter without dashes */ for (gint i = 1; i <= argc; i++) { if (argv[i] && !g_str_has_prefix(argv[i], "-")) { --- -2.34.1 - diff --git a/patches/rauc/1.8/0001-src-bundle-enable-tftp-protocol.patch b/patches/rauc/1.8/0001-src-bundle-enable-tftp-protocol.patch deleted file mode 100644 index 30f501bb..00000000 --- a/patches/rauc/1.8/0001-src-bundle-enable-tftp-protocol.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 6d1d38458c911b281fa7da59ce01cec590bc1c64 Mon Sep 17 00:00:00 2001 -From: Joachim Wiberg -Date: Thu, 23 Nov 2023 17:16:16 +0100 -Subject: [PATCH 1/2] src/bundle: enable tftp protocol -Organization: Addiva Elektronik - -Despite its age, TFTP still reigns strong in some sectors. Enable it -for KernelKit//Infix. - -Signed-off-by: Joachim Wiberg ---- - src/bundle.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/bundle.c b/src/bundle.c -index 05d4e72..b70e191 100644 ---- a/src/bundle.c -+++ b/src/bundle.c -@@ -1322,6 +1322,7 @@ static gboolean is_remote_scheme(const gchar *scheme) - { - return (g_strcmp0(scheme, "http") == 0) || - (g_strcmp0(scheme, "https") == 0) || -+ (g_strcmp0(scheme, "tftp") == 0) || - (g_strcmp0(scheme, "sftp") == 0) || - (g_strcmp0(scheme, "ftp") == 0); - } --- -2.34.1 - From de711b01234646a92189f8c34fd37502d642164c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Tue, 4 Mar 2025 18:17:49 +0100 Subject: [PATCH 07/11] netsnmp: Update patch after toolchain upgrade --- patches/netsnmp/5.9.3/snmpd-reconf-ready.patch | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/patches/netsnmp/5.9.3/snmpd-reconf-ready.patch b/patches/netsnmp/5.9.3/snmpd-reconf-ready.patch index e4d3ba8d..0491a27a 100644 --- a/patches/netsnmp/5.9.3/snmpd-reconf-ready.patch +++ b/patches/netsnmp/5.9.3/snmpd-reconf-ready.patch @@ -1,5 +1,15 @@ ---- a/agent/snmpd.c 2023-11-10 08:51:59.539942616 +0100 -+++ b/agent/snmpd.c 2023-11-10 08:56:27.719112830 +0100 +diff -urN netsnmp-5.9.3.orig/agent/snmpd.c netsnmp-5.9.3/agent/snmpd.c +--- netsnmp-5.9.3.orig/agent/snmpd.c 2025-03-04 18:09:48.420162455 +0100 ++++ netsnmp-5.9.3/agent/snmpd.c 2025-03-04 18:13:48.149281606 +0100 +@@ -123,7 +123,7 @@ + # define PATH_MAX 255 + # endif + #endif +- ++#include + #include + #include + #include "agent_global_vars.h" @@ -179,6 +179,7 @@ #define TIMETICK 500000L From 9bdad9bc8b9bb551cabf1374846515c7bf5a5e25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Tue, 4 Mar 2025 18:22:54 +0100 Subject: [PATCH 08/11] podman: Update podman hash Just minor change of filename from podman-4.5.0.tar.gz to podman-4.5.0-go2.tar.gz --- package/podman/podman.hash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/podman/podman.hash b/package/podman/podman.hash index c0110686..e1d968cb 100644 --- a/package/podman/podman.hash +++ b/package/podman/podman.hash @@ -1,3 +1,3 @@ # Locally computed -sha256 830a633630bf6e61f2b8d4ca00efdd9a173ef25cdd49d4a4364c293e088561df podman-4.5.0.tar.gz +sha256 830a633630bf6e61f2b8d4ca00efdd9a173ef25cdd49d4a4364c293e088561df podman-4.5.0-go2.tar.gz sha256 62fb8a3a9621dc2388174caaabe9c2317b694bb9a1d46c98bcf5655b68f51be3 LICENSE From 3f491ea7856e26c1c3a7ea783cb498c32c9e8103 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Wed, 5 Mar 2025 08:43:10 +0100 Subject: [PATCH 09/11] yangdoc: Add patch to remove pip-tools as requirement Not used --- ...01-Remove-pip-tools-as-a-requirement.patch | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 patches/python-yangdoc/0.6.0/0001-Remove-pip-tools-as-a-requirement.patch diff --git a/patches/python-yangdoc/0.6.0/0001-Remove-pip-tools-as-a-requirement.patch b/patches/python-yangdoc/0.6.0/0001-Remove-pip-tools-as-a-requirement.patch new file mode 100644 index 00000000..f1e6823b --- /dev/null +++ b/patches/python-yangdoc/0.6.0/0001-Remove-pip-tools-as-a-requirement.patch @@ -0,0 +1,30 @@ +From 1aed761c6e4148d2800b73500df769dfee4fea6e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= +Date: Wed, 5 Mar 2025 08:38:22 +0100 +Subject: [PATCH] Remove pip-tools as a requirement +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Organization: Wires + +It is not used. + +Signed-off-by: Mattias Walström +--- + pyproject.toml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pyproject.toml b/pyproject.toml +index 5b4eb3e..66b735b 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,5 +1,5 @@ + [build-system] +-requires = ["setuptools", "wheel", "pip-tools"] ++requires = ["setuptools", "wheel"] + build-backend = "setuptools.build_meta" + + [project] +-- +2.43.0 + From 1b5aa16652e90c69bfb23a60d9e555e680d0802e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Mon, 17 Mar 2025 11:17:35 +0100 Subject: [PATCH 10/11] dnsmasq: Remove relay agent info patch --- .../dnsmasq/2.90/0000-relay-agent-info.patch | 190 ------------------ 1 file changed, 190 deletions(-) delete mode 100644 patches/dnsmasq/2.90/0000-relay-agent-info.patch diff --git a/patches/dnsmasq/2.90/0000-relay-agent-info.patch b/patches/dnsmasq/2.90/0000-relay-agent-info.patch deleted file mode 100644 index f661c0a6..00000000 --- a/patches/dnsmasq/2.90/0000-relay-agent-info.patch +++ /dev/null @@ -1,190 +0,0 @@ -commit 9ae2b2a466871d936ab79b15c95ba85cbc7d5cd6 -Author: Stefan Schlosser -Date: Fri Aug 23 10:52:17 2024 +0200 - - dnsmasq: add support for option 82 - - This patch adds support to insert Option 82 Relay Agent Information (see RFC3046) - into relayed DHCP requests. - - When relay has been turned on with --dhcp-relay, the suboptions circuit-id and remote-id - can be configured using directives --dhcp-circuitid and --dhcp-remoteid with a maximum of - 4 bytes denoted in hex format: - - dhcp-circuitid=set:enterprise,00:11:22:33 - dhcp-remoteid=set:enterprise,cc:dd:ee:ff - - If circuit-id is not set, dnsmasq will use the interface index instead. - - These options usually provide a way to map requests to --dhcp-host and --dhcp-range directives - but dhcp-proxy function uses them already for similar purposes. - - The existing option space will be used (no re-negotiation). If it doesn't fit to a packet a warning - - "Not enough space to add relay agent information" - - will be dropped. - - Signed-off-by: Stefan Schlosser - -diff --git dnsmasq-2.90/src/dhcp.c dnsmasq-2.90/src/dhcp.c -index b65facd..4c399eb 100644 ---- dnsmasq-2.90/src/dhcp.c -+++ dnsmasq-2.90/src/dhcp.c -@@ -1117,7 +1117,10 @@ static int relay_upstream4(int iface_index, struct dhcp_packet *mess, size_t sz) - /* plug in our address */ - mess->giaddr.s_addr = relay->local.addr4.s_addr; - } -- -+ -+ /* add relay agent information */ -+ add_relay_agent_info(relay, mess, sz); -+ - to.sa.sa_family = AF_INET; - to.in.sin_addr = relay->server.addr4; - to.in.sin_port = htons(relay->port); -diff --git dnsmasq-2.90/src/dnsmasq.h dnsmasq-2.90/src/dnsmasq.h -index e455c3f..73cb94e 100644 ---- dnsmasq-2.90/src/dnsmasq.h -+++ dnsmasq-2.90/src/dnsmasq.h -@@ -1902,3 +1902,6 @@ int add_update_server(int flags, - const char *interface, - const char *domain, - union all_addr *local_addr); -+ -+ -+int add_relay_agent_info(struct dhcp_relay *relay, struct dhcp_packet *mess, size_t sz); -diff --git dnsmasq-2.90/src/rfc2131.c dnsmasq-2.90/src/rfc2131.c -index 68834ea..05a4faa 100644 ---- dnsmasq-2.90/src/rfc2131.c -+++ dnsmasq-2.90/src/rfc2131.c -@@ -2812,4 +2812,129 @@ static void apply_delay(u32 xid, time_t recvtime, struct dhcp_netid *netid) - } - } - -+struct relay_info { -+ struct { -+ unsigned char *data; -+ int len; -+ } circuit; -+ struct { -+ unsigned char *data; -+ int len; -+ } remote; -+}; -+ -+static inline int subopt_add(unsigned char *ptr, size_t size, -+ int subopt, unsigned char *buf, int len) -+{ -+ if ((len + 2) > size) -+ { -+ my_syslog(MS_DHCP | LOG_WARNING, "No space for relay sub option %d", subopt); -+ return 0; -+ } -+ -+ *(ptr++) = subopt; -+ *(ptr++) = len; -+ memcpy(ptr, buf, len); -+ -+ return (len + 2); -+} -+ -+static int option_add(struct dhcp_packet *mess, size_t sz, -+ struct relay_info *info) -+{ -+ unsigned char *start = &mess->options[0] + sizeof(u32); -+ unsigned char *end = (unsigned char *)mess + sz; -+ unsigned char *optend = NULL; -+ unsigned char opt[64], *sub, *p; -+ int size, len = 0; -+ int ret = -1; -+ -+ sub = &opt[2]; -+ size = sizeof(opt) - 2; -+ -+ if (info->circuit.len > 0) -+ len += subopt_add(sub+len, size-len, -+ SUBOPT_CIRCUIT_ID, -+ info->circuit.data, -+ info->circuit.len); -+ -+ if (info->remote.len > 0) -+ len += subopt_add(sub+len, size-len, -+ SUBOPT_REMOTE_ID, -+ info->remote.data, -+ info->remote.len); -+ -+ if (len == 0) -+ return 0; /* Nothing to add */ -+ -+ opt[0] = OPTION_AGENT_ID; -+ opt[1] = len; -+ len += 2; -+ -+ /* find option end */ -+ optend = option_find1(start, end, OPTION_END, 1); -+ if (!optend) -+ return -1; -+ -+ *optend = 0; -+ -+ p = dhcp_skip_opts(start); -+ if ((p + len + 1) >= end) -+ { -+ my_syslog(MS_DHCP | LOG_WARNING, "Not enough space to add relay agent information"); -+ goto out; -+ } -+ -+ memcpy(p, opt, len); -+ optend = p + len; -+ -+ ret = 0; -+out: -+ *optend = OPTION_END; -+ return ret; -+} -+ -+int add_relay_agent_info(struct dhcp_relay *relay, struct dhcp_packet *mess, size_t sz) -+{ -+ struct dhcp_vendor *vendor; -+ struct relay_info info; -+ int ifindex; -+ -+ if (option_find(mess, sz, OPTION_AGENT_ID, 1)) -+ return 0; /* don't alter any existing relay agent info */ -+ -+ /* lookup circuit-id and remote-id */ -+ info.circuit.len = info.remote.len = 0; -+ -+ for (vendor = daemon->dhcp_vendors; vendor; vendor = vendor->next) -+ { -+ if (vendor->match_type == MATCH_CIRCUIT) -+ { -+ if (info.circuit.len == 0) -+ { -+ info.circuit.data = vendor->data; -+ info.circuit.len = vendor->len; -+ } -+ } -+ else if (vendor->match_type == MATCH_REMOTE) -+ { -+ if (info.remote.len == 0) -+ { -+ info.remote.data = vendor->data; -+ info.remote.len = vendor->len; -+ } -+ } -+ } -+ -+ /* use interface index as circuit-id if not specified */ -+ if (info.circuit.len == 0) -+ { -+ ifindex = htonl(relay->iface_index); -+ info.circuit.data = &ifindex; -+ info.circuit.len = sizeof(ifindex); -+ } -+ -+ return option_add(mess, sz, &info); -+} -+ - #endif /* HAVE_DHCP */ From b8a9dc97432c5bbc50aff5c88af9c141d04129f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Mon, 17 Mar 2025 19:51:18 +0100 Subject: [PATCH 11/11] Update Changelog [skip ci] --- doc/ChangeLog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index ca31a805..068c0c9f 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -6,9 +6,11 @@ All notable changes to the project are documented in this file. [v25.03.0][UNRELEASED] - ------------------------- +**News:** this release is the first with the new Buildroot LTS (2025.02) ### Changes - Upgrade Linux kernel to 6.12.19 (LTS) + - Upgrade Buildroot to 2025.02.0 (LTS) ### Fixes