Revert "Upgrade buildroot to 2026.02.0"

This commit is contained in:
Mattias Walström
2026-03-04 19:47:11 +01:00
committed by GitHub
parent 0bedde52d3
commit 082bcd1712
49 changed files with 524 additions and 100 deletions
@@ -8,22 +8,7 @@
};
};
};
/*
From 236317dd4e55512933dcdaec3d0b4a0824f5e5bd Mon Sep 17 00:00:00 2001
From: Shiji Yang <yangshiji66@outlook.com>
Date: Sun, 10 Aug 2025 18:11:01 +0800
Subject: [PATCH] arm64: dts: mediatek: mt7986: increase ATF reserved memory to
256 kiB
The latest Mediatek open-source Trusted Firmware-A project has
reserved 256 KiB for BL2 and BL31. It is better to increase the
reserved memory region in the Linux kernel to protect the data.
https://github.com/openwrt/openwrt/blob/main/target/linux/mediatek/patches-6.12/199-arm64-dts-mediatek-mt7986-increase-ATF-reserved-memo.patch
*/
&secmon_reserved {
reg = <0 0x43000000 0 0x40000>;
};
&cpu_thermal {
/delete-node/ trips;
/delete-node/ cooling-maps;
-17
View File
@@ -1,17 +0,0 @@
auth requisite pam_nologin.so
auth [success=1 default=ignore] pam_unix.so nullok
auth requisite pam_deny.so
auth required pam_permit.so
account requisite pam_nologin.so
account [success=1 default=ignore] pam_unix.so
account requisite pam_deny.so
account required pam_permit.so
password [success=1 default=ignore] pam_unix.so
password requisite pam_deny.so
password required pam_permit.so
session required pam_loginuid.so
session optional pam_keyinit.so force revoke
session optional pam_motd.so
-10
View File
@@ -3,16 +3,6 @@ Change Log
All notable changes to the project are documented in this file.
[v26.03.0][UNRELEASED] -
-------------------------
### Changes
- Upgrade Buildroot to 2026.02 (LTS)
### Fixes
[v26.02.0][] - 2026-03-01
-------------------------
+4
View File
@@ -27,15 +27,19 @@ source "$BR2_EXTERNAL_INFIX_PATH/package/klish/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/klish-plugin-sysrepo/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/landing/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/libsrx/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/lowdown/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/mcd/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/mdns-alias/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/netbrowse/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/onieprom/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/podman/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/python-spy/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/python-libyang/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/python-yangdoc/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/skeleton-init-finit/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/tetris/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/libyang-cpp/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/sysrepo-cpp/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/rousette/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/nghttp2-asio/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/date-cpp/Config.in"
+1
View File
@@ -17,6 +17,7 @@ config BR2_PACKAGE_FEATURE_GPS
select BR2_PACKAGE_GPSD_ISYNC
select BR2_PACKAGE_GPSD_ITRAX
select BR2_PACKAGE_GPSD_NMEA2000
select BR2_PACKAGE_GPSD_OCEANSERVER
select BR2_PACKAGE_GPSD_ONCORE
select BR2_PACKAGE_GPSD_RTCM104V2
select BR2_PACKAGE_GPSD_RTCM104V3
+6
View File
@@ -0,0 +1,6 @@
config BR2_PACKAGE_LIBYANG_CPP
bool "libyang-cpp"
depends on BR2_USE_MMU
select BR2_PACKAGE_LIBYANG
help
Libyang CPP bindings
+3
View File
@@ -0,0 +1,3 @@
# Locally calculated
sha256 82e3758011ec44c78e98d0777799d6e12aec5b8a64b32ebb20d0fe50e32488bb LICENSE
sha256 70fd0df940026fb930d5407abe679e064caf4701bff35d79465b9ad2c0915808 libyang-cpp-v4.tar.gz
+13
View File
@@ -0,0 +1,13 @@
################################################################################
#
# CPP bindings for libyang
#
################################################################################
LIBYANG_CPP_VERSION = v4
LIBYANG_CPP_SITE = $(call github,CESNET,libyang-cpp,$(LIBYANG_CPP_VERSION))
LIBYANG_CPP_LICENSE = BSD-3-Clause
LIBYANG_CPP_LICENSE_FILES = LICENSE
LIBYANG_CPP_DEPENDENCIES = libyang
LIBYANG_CPP_INSTALL_STAGING = YES
$(eval $(cmake-package))
+7
View File
@@ -0,0 +1,7 @@
config BR2_PACKAGE_LOWDOWN
bool "lowdown"
help
Simple markdown translator, useful for terminals.
https://kristaps.bsd.lv/lowdown/
@@ -1,8 +1,7 @@
diff --git a/configure b/configure
index 8ae6a78..c8ab908 100755
--- a/configure
+++ b/configure
@@ -61,12 +61,7 @@ echo "config.log: writing..."
diff -urN lowdown-VERSION_1_0_2.orig/configure lowdown-VERSION_1_0_2/configure
--- lowdown-VERSION_1_0_2.orig/configure 2025-03-21 12:58:06.151106271 +0000
+++ lowdown-VERSION_1_0_2/configure 2025-03-21 13:20:20.649825864 +0000
@@ -61,12 +61,7 @@
MAKE_FLAGS=""
@@ -16,7 +15,7 @@ index 8ae6a78..c8ab908 100755
if [ -n "$MAKE_FLAGS" ]; then
echo "GNU submake detected: using --no-print-directory" 1>&2
@@ -79,9 +74,6 @@ fi
@@ -79,9 +74,6 @@
# in.
#----------------------------------------------------------------------
+3
View File
@@ -0,0 +1,3 @@
# Locally calculated
sha256 292f15c06a7fef39547775f7adabb19cf24a9ca2ffdf5b60fe8f933647e9f774 LICENSE.md
sha256 049b7883874f8a8e528dc7c4ed7b27cf7ceeb9ecf8fe71c3a8d51d574fddf84b lowdown-VERSION_1_0_2.tar.gz
+24
View File
@@ -0,0 +1,24 @@
################################################################################
#
# lowdown
#
################################################################################
LOWDOWN_VERSION = VERSION_1_0_2
LOWDOWN_SITE = $(call github,kristapsdz,lowdown,$(LOWDOWN_VERSION))
LOWDOWN_LICENSE = ISC
LOWDOWN_LICENSE_FILES = LICENSE.md
define LOWDOWN_CONFIGURE_CMDS
(cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure)
endef
define LOWDOWN_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
endef
define LOWDOWN_INSTALL_TARGET_CMDS
$(INSTALL) -t $(TARGET_DIR)/usr/bin -D -m 0755 $(@D)/lowdown
endef
$(eval $(generic-package))
-1
View File
@@ -13,6 +13,5 @@ NGHTTP2_ASIO_DEPENDENCIES = boost nghttp2 openssl
NGHTTP2_ASIO_INSTALL_STAGING = YES
NGHTTP2_ASIO_AUTOGEN = YES
NGHTTP2_ASIO_AUTORECONF = YES
NGHTTP2_ASIO_CONF_OPTS += -DCMAKE_POLICY_VERSION_MINIMUM=3.5
$(eval $(cmake-package))
+56
View File
@@ -0,0 +1,56 @@
config BR2_PACKAGE_PODMAN
bool "podman"
depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_TOOLCHAIN_USES_UCLIBC # no fexecve
depends on BR2_USE_MMU # libgpgme
select BR2_PACKAGE_CRUN # runtime dependency
select BR2_PACKAGE_CONMON # runtime dependency
select BR2_PACKAGE_CNI_PLUGINS # runtime dependency
select BR2_PACKAGE_BRIDGE_UTILS # Required for container networking
select BR2_PACKAGE_IPTABLES # Required for container network
select BR2_PACKAGE_CGROUPFS_MOUNT if !BR2_PACKAGE_SYSTEMD # runtime dependency
select BR2_PACKAGE_CA_CERTIFICATES # Required for the podman pull command via https
select BR2_PACKAGE_LIBGPGME
help
podman is a CLI tool for spawning and running containers
according to the OCI specification.
https://github.com/containers/podman
if BR2_PACKAGE_PODMAN
config BR2_PACKAGE_PODMAN_DRIVER_BTRFS
bool "btrfs filesystem driver"
depends on BR2_USE_MMU # btrfs-progs
depends on BR2_TOOLCHAIN_HAS_THREADS # btrfs-progs
select BR2_PACKAGE_BTRFS_PROGS
help
Build the btrfs filesystem driver.
config BR2_PACKAGE_PODMAN_DRIVER_DEVICEMAPPER
bool "devicemapper filesystem driver"
depends on BR2_TOOLCHAIN_HAS_THREADS # lvm2
depends on BR2_USE_MMU # lvm2
depends on !BR2_STATIC_LIBS # lvm2
select BR2_PACKAGE_LVM2
help
Build the devicemapper filesystem driver.
config BR2_PACKAGE_PODMAN_DRIVER_VFS
bool "vfs filesystem driver"
depends on BR2_USE_WCHAR # gvfs
depends on BR2_USE_MMU # gvfs
depends on BR2_TOOLCHAIN_HAS_THREADS # gvfs
depends on !BR2_STATIC_LIBS # gvfs
select BR2_PACKAGE_GVFS
help
Build the vfs filesystem driver.
endif
comment "podman needs a glibc or musl toolchain w/ threads"
depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS && \
BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_UCLIBC
+14
View File
@@ -0,0 +1,14 @@
{
"default": [
{
"type": "insecureAcceptAnything"
}
],
"transports":
{
"docker-daemon":
{
"": [{"type":"insecureAcceptAnything"}]
}
}
}
+3
View File
@@ -0,0 +1,3 @@
# Locally computed
sha256 53f6bf7a8e4b647b2378ea8bfee6c67e03e412bf027b4dc0ff37a3a764703405 podman-4.9.5-go2.tar.gz
sha256 62fb8a3a9621dc2388174caaabe9c2317b694bb9a1d46c98bcf5655b68f51be3 LICENSE
+138
View File
@@ -0,0 +1,138 @@
################################################################################
#
# podman
#
################################################################################
PODMAN_VERSION = 4.9.5
PODMAN_SITE = $(call github,containers,podman,v$(PODMAN_VERSION))
PODMAN_LICENSE = Apache-2.0
PODMAN_LICENSE_FILES = LICENSE
PODMAN_CPE_ID_VENDOR = podman_project
PODMAN_GOMOD = github.com/containers/podman/v4
PODMAN_BUILD_TARGETS = cmd/podman cmd/rootlessport cmd/quadlet
PODMAN_DEPENDENCIES += libgpgme
PODMAN_LDFLAGS = \
-X $(PODMAN_GOMOD)/libpod/define.gitCommit=$(PODMAN_VERSION)
PODMAN_TAGS = \
btrfs_noversion containers_image_openpgp \
exclude_graphdriver_devicemapper exclude_graphdriver_zfs
ifeq ($(BR2_INIT_SYSTEMD),y)
PODMAN_TAGS += systemd
endif
ifeq ($(BR2_PACKAGE_LIBAPPARMOR),y)
PODMAN_DEPENDENCIES += libapparmor
PODMAN_TAGS += apparmor
endif
ifeq ($(BR2_PACKAGE_LIBSECCOMP),y)
PODMAN_TAGS += seccomp
PODMAN_DEPENDENCIES += libseccomp host-pkgconf
else
define PODMAN_SECCOMP_PROFILE
$(INSTALL) -D -m 644 $(PODMAN_PKGDIR)/unconfined.conf \
$(TARGET_DIR)/etc/containers/containers.conf
endef
endif
ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
PODMAN_TAGS += selinux
PODMAN_DEPENDENCIES += libselinux
endif
ifeq ($(BR2_PACKAGE_PODMAN_DRIVER_BTRFS),y)
PODMAN_DEPENDENCIES += btrfs-progs
define PODMAN_BTFRS_DRIVER_CONFIG_FIXUPS
$(call KCONFIG_ENABLE_OPT,CONFIG_BTRFS_FS)
$(call KCONFIG_ENABLE_OPT,CONFIG_BTRFS_FS_POSIX_ACL)
endef
else
PODMAN_TAGS += exclude_graphdriver_btrfs
endif
ifeq ($(BR2_PACKAGE_PODMAN_DRIVER_DEVICEMAPPER),y)
PODMAN_DEPENDENCIES += lvm2
define PODMAN_DEVICEMAPPER_DRIVER_CONFIG_FIXUPS
$(call KCONFIG_ENABLE_OPT,CONFIG_MD)
$(call KCONFIG_ENABLE_OPT,CONFIG_BLK_DEV_DM)
$(call KCONFIG_ENABLE_OPT,CONFIG_MD_THIN_PROVISIONING)
endef
else
PODMAN_TAGS += exclude_graphdriver_devicemapper
endif
ifeq ($(BR2_PACKAGE_PODMAN_DRIVER_VFS),y)
PODMAN_DEPENDENCIES += gvfs
else
PODMAN_TAGS += exclude_graphdriver_vfs
endif
ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y)
define PODMAN_BASH_COMPLETION
$(INSTALL) -D -m 644 $(@D)/completions/bash/podman \
$(TARGET_DIR)/usr/share/bash-completion/completions/
endef
endif
define PODMAN_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr \
install.bin
$(INSTALL) -d -m 700 $(TARGET_DIR)/etc/cni
$(INSTALL) -d -m 700 $(TARGET_DIR)/etc/cni/net.d
$(INSTALL) -D -m 644 $(@D)/cni/87-podman-bridge.conflist \
$(TARGET_DIR)/etc/cni/net.d/87-podman-bridge.conflist
$(INSTALL) -d -m 755 $(TARGET_DIR)/etc/containers
$(INSTALL) -D -m 644 $(PODMAN_PKGDIR)/containers-policy.json \
$(TARGET_DIR)/etc/containers/policy.json
$(PODMAN_SECCOMP_PROFILE)
$(PODMAN_BASH_COMPLETION)
endef
define PODMAN_INSTALL_INIT_SYSTEMD
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr \
install.systemd
endef
define PODMAN_LINUX_CONFIG_FIXUPS
$(call KCONFIG_ENABLE_OPT,CONFIG_MEMCG)
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS)
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_SCHED)
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_FREEZER)
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_DEVICE)
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_CPUACCT)
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUP_PIDS)
$(call KCONFIG_ENABLE_OPT,CONFIG_CPUSETS)
$(call KCONFIG_ENABLE_OPT,CONFIG_NAMESPACES)
$(call KCONFIG_ENABLE_OPT,CONFIG_UTS_NS)
$(call KCONFIG_ENABLE_OPT,CONFIG_IPC_NS)
$(call KCONFIG_ENABLE_OPT,CONFIG_PID_NS)
$(call KCONFIG_ENABLE_OPT,CONFIG_NET_NS)
$(call KCONFIG_ENABLE_OPT,CONFIG_USER_NS)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_ADVANCED)
$(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE_NETFILTER)
$(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XTABLES)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_ADDRTYPE)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_CONNTRACK)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_IPVS)
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_COMMENT)
$(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_IPTABLES)
$(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_FILTER)
$(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_NAT)
$(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_TARGET_MASQUERADE)
$(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE)
$(call KCONFIG_ENABLE_OPT,CONFIG_NET_CORE)
$(call KCONFIG_ENABLE_OPT,CONFIG_VETH)
$(call KCONFIG_ENABLE_OPT,CONFIG_KEYS)
$(call KCONFIG_ENABLE_OPT,CONFIG_POSIX_MQUEUE)
$(call KCONFIG_ENABLE_OPT,CONFIG_OVERLAY_FS)
$(PODMAN_BTFRS_DRIVER_CONFIG_FIXUPS)
$(PODMAN_DEVICEMAPPER_DRIVER_CONFIG_FIXUPS)
endef
$(eval $(golang-package))
+5
View File
@@ -0,0 +1,5 @@
[Network]
network_backend = "cni"
[containers]
seccomp_profile = "unconfined"
+7
View File
@@ -0,0 +1,7 @@
config BR2_PACKAGE_SYSREPO_CPP
bool "sysrepo-cpp"
depends on BR2_USE_MMU
select BR2_PACKAGE_LIBYANG_CPP
select BR2_PACKAGE_SYSREPO
help
Sysrepo CPP bindings
+3
View File
@@ -0,0 +1,3 @@
# Locally calculated
sha256 82e3758011ec44c78e98d0777799d6e12aec5b8a64b32ebb20d0fe50e32488bb LICENSE
sha256 d7fbeaba7f2fdaf70c67cc70f438943eee636b21f08854e58967d0d97801bacc sysrepo-cpp-v6.tar.gz
+13
View File
@@ -0,0 +1,13 @@
################################################################################
#
# CPP bindings for sysrepo
#
################################################################################
SYSREPO_CPP_VERSION = v6
SYSREPO_CPP_SITE = $(call github,sysrepo,sysrepo-cpp,$(SYSREPO_CPP_VERSION))
SYSREPO_CPP_LICENSE = BSD-3-Clause
SYSREPO_CPP_LICENSE_FILES = LICENSE
SYSREPO_CPP_DEPENDENCIES = sysrepo libyang-cpp
SYSREPO_CPP_INSTALL_STAGING = YES
$(eval $(cmake-package))
@@ -1,11 +1,8 @@
From f9008d2d58b215886961ae2ce90caba473207309 Mon Sep 17 00:00:00 2001
From 392735fcb41b303b6dbe3517fab9ba734ff2e288 Mon Sep 17 00:00:00 2001
From: Joachim Wiberg <troglobit@gmail.com>
Date: Tue, 5 Mar 2024 09:41:46 +0100
Subject: [PATCH 1/2] iplink_bridge: add mcast_flood_always bridge option
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Organization: Wires
Organization: Addiva Elektronik
- Break out boolopt handling to simplify parsing and setting
- Add set/get support for mcast_flood_always
@@ -13,7 +10,6 @@ Organization: Wires
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
Signed-off-by: Mattias Walström <lazzer@gmail.com>
---
include/uapi/linux/if_bridge.h | 1 +
ip/iplink_bridge.c | 19 +++++++++++++++++++
@@ -21,22 +17,22 @@ Signed-off-by: Mattias Walström <lazzer@gmail.com>
3 files changed, 32 insertions(+)
diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h
index bed5e0c1..637ad93c 100644
index c206cf6..84ef423 100644
--- a/include/uapi/linux/if_bridge.h
+++ b/include/uapi/linux/if_bridge.h
@@ -832,6 +832,7 @@ enum br_boolopt_id {
@@ -830,6 +830,7 @@ enum br_boolopt_id {
BR_BOOLOPT_NO_LL_LEARN,
BR_BOOLOPT_MCAST_VLAN_SNOOPING,
BR_BOOLOPT_MST_ENABLE,
BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION,
+ BR_BOOLOPT_MCAST_FLOOD_ALWAYS,
BR_BOOLOPT_MAX
};
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 76e69086..827a0716 100644
index 1fe8955..d4f2c80 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -42,6 +42,7 @@ static void print_explain(FILE *f)
@@ -41,6 +41,7 @@ static void print_explain(FILE *f)
" [ vlan_default_pvid VLAN_DEFAULT_PVID ]\n"
" [ vlan_stats_enabled VLAN_STATS_ENABLED ]\n"
" [ vlan_stats_per_port VLAN_STATS_PER_PORT ]\n"
@@ -44,7 +40,7 @@ index 76e69086..827a0716 100644
" [ mcast_snooping MULTICAST_SNOOPING ]\n"
" [ mcast_vlan_snooping MULTICAST_VLAN_SNOOPING ]\n"
" [ mcast_router MULTICAST_ROUTER ]\n"
@@ -247,6 +248,18 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
@@ -245,6 +246,18 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
bm.optval |= mcvl_bit;
else
bm.optval &= ~mcvl_bit;
@@ -63,7 +59,7 @@ index 76e69086..827a0716 100644
} else if (matches(*argv, "mcast_query_use_ifaddr") == 0) {
__u8 mcast_qui;
@@ -638,6 +651,7 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
@@ -623,6 +636,7 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
__u32 mcvl_bit = 1 << BR_BOOLOPT_MCAST_VLAN_SNOOPING;
__u32 no_ll_learn_bit = 1 << BR_BOOLOPT_NO_LL_LEARN;
__u32 mst_bit = 1 << BR_BOOLOPT_MST_ENABLE;
@@ -71,10 +67,10 @@ index 76e69086..827a0716 100644
struct br_boolopt_multi *bm;
bm = RTA_DATA(tb[IFLA_BR_MULTI_BOOLOPT]);
@@ -661,6 +675,11 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
"mdb_offload_fail_notification",
"mdb_offload_fail_notification %u ",
!!(bm->optval & mofn_bit));
@@ -641,6 +655,11 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
"mst_enabled",
"mst_enabled %u ",
!!(bm->optval & mst_bit));
+ if (bm->optmask & mcfl_bit)
+ print_uint(PRINT_ANY,
+ "mcast_flood_always",
@@ -84,10 +80,10 @@ index 76e69086..827a0716 100644
if (tb[IFLA_BR_MCAST_ROUTER])
diff --git a/man/man8/ip-link.8.in b/man/man8/ip-link.8.in
index e3297c57..f2852adf 100644
index efb6248..2308835 100644
--- a/man/man8/ip-link.8.in
+++ b/man/man8/ip-link.8.in
@@ -1737,6 +1737,8 @@ the following additional arguments are supported:
@@ -1712,6 +1712,8 @@ the following additional arguments are supported:
] [
.BI vlan_stats_per_port " VLAN_STATS_PER_PORT "
] [
@@ -96,7 +92,7 @@ index e3297c57..f2852adf 100644
.BI mcast_snooping " MULTICAST_SNOOPING "
] [
.BI mcast_vlan_snooping " MULTICAST_VLAN_SNOOPING "
@@ -1887,6 +1889,16 @@ or disable
@@ -1860,6 +1862,16 @@ or disable
.RI ( VLAN_STATS_PER_PORT " == 0) "
per-VLAN per-port stats accounting. Can be changed only when there are no port VLANs configured.
@@ -1,11 +1,8 @@
From 2aac8bf90e25e33e022c850702d8581d7d6cba25 Mon Sep 17 00:00:00 2001
From a035696129b543952e8105c27689ed4f9312eb3b Mon Sep 17 00:00:00 2001
From: Joachim Wiberg <troglobit@gmail.com>
Date: Mon, 20 May 2024 21:35:11 +0200
Subject: [PATCH 2/2] ipaddress: accept symbolic names also for show
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Organization: Wires
Organization: Addiva Elektronik
This is a follow-up to 709063e, which in turn was a follow-up to
bdb8d85, to add support for 'ip addr show proto static', where
@@ -13,16 +10,15 @@ bdb8d85, to add support for 'ip addr show proto static', where
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
Signed-off-by: Mattias Walström <lazzer@gmail.com>
---
ip/ipaddress.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 4d93a04a..1bff689e 100644
index 4e1f934f..437072f9 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -2248,7 +2248,7 @@ static int ipaddr_list_flush_or_save(int argc, char **argv, int action)
@@ -2224,7 +2224,7 @@ static int ipaddr_list_flush_or_save(int argc, char **argv, int action)
__u8 proto;
NEXT_ARG();
@@ -0,0 +1,34 @@
--- a/src/daemon/lldpd.c
+++ b/src/daemon/lldpd.c
@@ -1581,6 +1581,8 @@
struct group *group;
uid_t uid;
gid_t gid;
+#else
+ struct group *group;
#endif
saved_argv = argv;
@@ -1780,6 +1782,8 @@
if ((group = getgrnam(PRIVSEP_GROUP)) == NULL)
fatalx("main", "no " PRIVSEP_GROUP " group for privilege separation, please create it");
gid = group->gr_gid;
+#else
+ group = getgrnam("wheel");
#endif
/* Create and setup socket */
@@ -1815,6 +1819,13 @@
S_IRUSR | S_IWUSR | S_IXUSR |
S_IRGRP | S_IWGRP | S_IXGRP) == -1)
log_warn("main", "unable to chmod control socket");
+#else
+ if (group) {
+ if (chown(ctlname, -1, group->gr_gid))
+ log_warn("main", "unable to chown control socket");
+ else
+ chmod(ctlname, 0770);
+ }
#endif
/* Create associated advisory lock file */
@@ -0,0 +1,12 @@
diff --git a/src/bundle.c b/src/bundle.c
index 05ec358..d5888d4 100644
--- a/src/bundle.c
+++ b/src/bundle.c
@@ -1313,6 +1313,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) ||
(g_strcmp0(scheme, "ftps") == 0);
@@ -0,0 +1,84 @@
diff --git a/src/main.c b/src/main.c
index 8e851b4..62d0bec 100644
--- a/src/main.c
+++ b/src/main.c
@@ -9,6 +9,7 @@
#include <locale.h>
#include <stdio.h>
#include <string.h>
+#include <syslog.h>
#include <sys/ioctl.h>
#include <unistd.h>
@@ -2183,6 +2184,38 @@ static gboolean unknown_start(int argc, char **argv)
return TRUE;
}
+static int log_level(GLogLevelFlags level)
+{
+ if (level & G_LOG_FLAG_FATAL)
+ return LOG_EMERG;
+ if (level & G_LOG_FLAG_RECURSION)
+ return LOG_ALERT;
+ if (level & G_LOG_LEVEL_CRITICAL)
+ return LOG_CRIT;
+ if (level & G_LOG_LEVEL_ERROR)
+ return LOG_ERR;
+ if (level & G_LOG_LEVEL_WARNING)
+ return LOG_WARNING;
+ if (level & G_LOG_LEVEL_MESSAGE)
+ return LOG_NOTICE;
+ if (level & G_LOG_LEVEL_INFO)
+ return LOG_INFO;
+ if (level & G_LOG_LEVEL_DEBUG)
+ return LOG_DEBUG;
+
+ /* Fallback to INFO for unknown levels */
+ return LOG_INFO;
+}
+
+static void syslog_handler(const gchar *domain, GLogLevelFlags level, const gchar *message, gpointer arg)
+{
+ /* unused */
+ (void)domain;
+ (void)arg;
+
+ syslog(log_level(level), "%s", message);
+}
+
typedef enum {
UNKNOWN = 0,
INSTALL,
@@ -2370,7 +2403,7 @@ static void create_option_groups(void)
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;
g_autofree gchar *confpath = NULL, *keyring = NULL, *mount = NULL;
char *cmdarg = NULL;
g_autoptr(GOptionContext) context = NULL;
@@ -2383,6 +2416,7 @@ static void cmdline_handler(int argc, char **argv)
{"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, "display help and exit", NULL},
{0}
@@ -2500,6 +2534,15 @@ static void cmdline_handler(int argc, char **argv)
g_message("Debug log domains: '%s'", domains);
}
+ if (use_syslog) {
+ GLogLevelFlags levels = G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION;
+ const char *ident = "rauc";
+
+ /* XXX: facility should be configurable */
+ openlog(ident, LOG_PID | LOG_NOWAIT, LOG_LOCAL0);
+ g_log_set_handler(ident, levels, syslog_handler, NULL);
+ }
+
/* get first parameter without dashes */
for (gint i = 1; i <= argc; i++) {
if (argv[i] && !g_str_has_prefix(argv[i], "-")) {
@@ -0,0 +1,29 @@
This makes the output more user friendly on systems where the bootname
is the common way to refer to a slot.
Example output:
...
40% Checking slot rootfs.1 (secondary)
46% Checking slot rootfs.1 (secondary) done.
...
diff --git a/src/install.c b/src/install.c
index ea7c95b3..fb38bcab 100644
--- a/src/install.c
+++ b/src/install.c
@@ -965,7 +965,11 @@ static gboolean handle_slot_install_plan(const RaucManifest *manifest, const RIm
install_args_update(args, "Checking slot %s", plan->target_slot->name);
- r_context_begin_step_weighted_formatted("check_slot", 0, 1, "Checking slot %s", plan->target_slot->name);
+ r_context_begin_step_weighted_formatted("check_slot", 0, 1, "Checking slot %s%s%s%s",
+ plan->target_slot->name,
+ plan->target_slot->bootname ? " (" : "",
+ plan->target_slot->bootname ? plan->target_slot->bootname : "",
+ plan->target_slot->bootname ? ")" : "");
r_slot_status_load(plan->target_slot);
slot_state = plan->target_slot->status;
--
2.34.1
@@ -0,0 +1,24 @@
Print "the standard" warning banner at start of installation.
diff --git a/src/main.c b/src/main.c
index 8e851b47..bba1d012 100644
--- a/src/main.c
+++ b/src/main.c
@@ -258,6 +258,14 @@ static gboolean install_start(int argc, char **argv)
if (access_args.http_headers)
args->access_args.http_headers = g_strdupv(access_args.http_headers);
+ g_print("+------------------------------------------------------------------------------+\n");
+ g_print("| |\n");
+ g_print("| [!] Installation might take a while. DO NOT power off the device. |\n");
+ g_print("| |\n");
+ g_print("| Please wait while the upgrade completes. |\n");
+ g_print("| |\n");
+ g_print("+------------------------------------------------------------------------------+\n");
+
r_loop = g_main_loop_new(NULL, FALSE);
if (ENABLE_SERVICE) {
g_auto(GVariantDict) dict = G_VARIANT_DICT_INIT(NULL);
--
2.34.1
@@ -1,11 +1,8 @@
From 20b63b112df3092b51b8f1d2f9ef26c238fbc3dc Mon Sep 17 00:00:00 2001
From c4e4ad9d69b3bc62ee53f8088d6a192d288c6645 Mon Sep 17 00:00:00 2001
From: Joachim Wiberg <troglobit@gmail.com>
Date: Thu, 23 Nov 2023 18:49:36 +0100
Subject: [PATCH] src/main: add optional syslog support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Organization: Wires
Subject: [PATCH 2/2] src/main: add optional syslog support
Organization: Addiva Elektronik
Instead of having to redirect (colored) logs to stdout/stderr, this
patch adds support for logging directly to syslog with approximate
@@ -16,15 +13,14 @@ logged to LOG_LOCAL0 facility. This should of course be configurable
but is not at this stage.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Signed-off-by: Mattias Walström <lazzer@gmail.com>
---
src/main.c | 45 ++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
diff --git a/src/main.c b/src/main.c
index b3192a38..0ca5af21 100644
--- a/src/main.c
+++ b/src/main.c
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 <locale.h>
#include <stdio.h>
@@ -33,7 +29,7 @@ index b3192a38..0ca5af21 100644
#include <sys/ioctl.h>
#include <unistd.h>
@@ -2540,6 +2541,38 @@ static gboolean unknown_start(int argc, char **argv)
@@ -2460,6 +2461,38 @@
return TRUE;
}
@@ -72,16 +68,16 @@ index b3192a38..0ca5af21 100644
typedef enum {
UNKNOWN = 0,
INSTALL,
@@ -2774,7 +2807,7 @@ static gboolean collect_config_values(const gchar *option_name, const gchar *val
@@ -2676,7 +2709,7 @@
static void cmdline_handler(int argc, char **argv)
{
- gboolean help = FALSE, debug = FALSE, version = FALSE;
+ gboolean help = FALSE, debug = FALSE, version = FALSE, use_syslog = FALSE;
g_autofree gchar *confpath = NULL, *mount = NULL;
+ gboolean help = FALSE, debug = FALSE, use_syslog = FALSE, version = FALSE;
g_autofree gchar *confpath = NULL, *keyring = NULL, *mount = NULL;
char *cmdarg = NULL;
g_autoptr(GOptionContext) context = NULL;
@@ -2789,6 +2822,7 @@ static void cmdline_handler(int argc, char **argv)
@@ -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},
@@ -89,7 +85,7 @@ index b3192a38..0ca5af21 100644
{"version", '\0', 0, G_OPTION_ARG_NONE, &version, "display version", NULL},
{"help", 'h', 0, G_OPTION_ARG_NONE, &help, "display help and exit", NULL},
{0}
@@ -2916,6 +2950,15 @@ static void cmdline_handler(int argc, char **argv)
@@ -2816,6 +2850,15 @@
);
}
@@ -105,6 +101,3 @@ index b3192a38..0ca5af21 100644
/* get first parameter without dashes */
for (gint i = 1; i <= argc; i++) {
if (argv[i] && !g_str_has_prefix(argv[i], "-")) {
--
2.43.0
+1 -1
View File
@@ -208,7 +208,7 @@ static int change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd
/* Local clock fallback - only if stratum is valid (1-15) */
if (stratum >= 1 && stratum <= 15) {
fprintf(fp, "# Local reference clock - fallback stratum %d source\n", stratum);
fprintf(fp, "local stratum %d orphan waitunsynced 0\n\n", stratum);
fprintf(fp, "local stratum %d orphan\n\n", stratum);
}
}
+1 -1
View File
@@ -23,7 +23,7 @@ with infamy.Test() as test:
tgtssh = env.attach("target", "mgmt", "ssh")
with test.step("Verify the presence of a watchdog device"):
wctl = tgtssh.run(["watchdogctl", "-j"], stdout=subprocess.PIPE)
wctl = tgtssh.run(["watchdogctl"], stdout=subprocess.PIPE)
conf = json.loads(wctl.stdout)
dogs = [ dog for dog in conf.get("device", []) if dog.get("name", "") == "/dev/watchdog" ]