Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2025-11-09 21:14:47 +08:00
commit 52b64f2f43
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
63 changed files with 1449 additions and 137 deletions

View File

@ -2,7 +2,7 @@
uci -q batch <<-EOF >/dev/null
# DUID-UUID - RFC6355
set network.globals.dhcp_default_duid="$(hexdump -vn 16 -e '"0004" 2/2 "%x"' /dev/urandom)"
set network.globals.dhcp_default_duid="$(printf '%s%s' '0004' $(cat /proc/sys/kernel/random/uuid | sed -e 's/-//g'))"
commit network
EOF

View File

@ -135,7 +135,8 @@ smartrg,sdg-8733a|\
smartrg,sdg-8734)
ubootenv_add_mmc "u-boot-env" "mmcblk0" "0x0" "0x8000" "0x8000"
;;
tplink,archer-ax80-v1)
tplink,archer-ax80-v1|\
tplink,be450)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000" "8"
;;
ubnt,unifi-6-plus)

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=gdb
PKG_VERSION:=16.2
PKG_VERSION:=16.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/gdb
PKG_HASH:=4002cb7f23f45c37c790536a13a720942ce4be0402d929c9085e92f10d480119
PKG_HASH:=bcfcd095528a987917acf9fff3f1672181694926cc18d609c99d0042c00224c5
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1

View File

@ -1,13 +1,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=trace-cmd
PKG_VERSION:=3.3
PKG_VERSION:=3.3.3
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=$(PKG_NAME)-v$(PKG_VERSION)
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd
PKG_MIRROR_HASH:=7a4f9c3a18a01012cd76ab9a0a2c4447aed8293d005679d5228ef2aef243445c
PKG_MIRROR_HASH:=e20fa2cf177b62b756458cca708870d3e9e5586e7d1365b20e36512c487a1149
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING

View File

@ -1,14 +1,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wireless-regdb
PKG_VERSION:=2025.07.10
PKG_VERSION:=2025.10.07
PKG_RELEASE:=1
PKG_LICENSE:=ISC
PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
PKG_HASH:=a8340bcdcd1b5db6c79149879d122b170f3bb075381718d4f429ad831a6fa28d
PKG_HASH:=d4c872a44154604c869f5851f7d21d818d492835d370af7f58de8847973801c3
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=pcre2
PKG_VERSION:=10.46
PKG_VERSION:=10.47
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://github.com/PCRE2Project/pcre2/releases/download/$(PKG_NAME)-$(PKG_VERSION)
PKG_HASH:=15fbc5aba6beee0b17aecb04602ae39432393aba1ebd8e39b7cabf7db883299f
PKG_HASH:=47fe8c99461250d42f89e6e8fdaeba9da057855d06eb7fc08d9ca03fd08d7bc7
PKG_MAINTAINER:=Shane Peelar <lookatyouhacker@gmail.com>
PKG_LICENSE:=BSD-3-Clause

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wolfssl
PKG_VERSION:=5.7.6
PKG_VERSION:=5.8.2
PKG_REAL_VERSION:=$(PKG_VERSION)-stable
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_REAL_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/wolfSSL/wolfssl/archive/v$(PKG_REAL_VERSION)
PKG_HASH:=52b1e439e30d1ed8162a16308a8525a862183b67aa30373b11166ecbab000d63
PKG_HASH:=3ef126e3466e2f8f6ebb62b916a7f8fb26c6709dbdf2b63a167759f2fdb53068
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_REAL_VERSION)
@ -22,7 +22,7 @@ PKG_FIXUP:=libtool libtool-abiver
PKG_INSTALL:=1
PKG_BUILD_FLAGS:=no-mips16 lto
PKG_BUILD_PARALLEL:=1
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=LICENSING COPYING
PKG_MAINTAINER:=Eneas U de Queiroz <cotequeiroz@gmail.com>
PKG_CPE_ID:=cpe:/a:wolfssl:wolfssl

View File

@ -1,6 +1,6 @@
--- a/wolfssl/wolfcrypt/settings.h
+++ b/wolfssl/wolfcrypt/settings.h
@@ -3722,7 +3722,7 @@ extern void uITRON4_free(void *p) ;
@@ -3842,7 +3842,7 @@ extern void uITRON4_free(void *p) ;
/* warning for not using harden build options (default with ./configure) */
/* do not warn if big integer support is disabled */

View File

@ -727,6 +727,10 @@
"type": "alias",
"default": "multicast_to_unicast"
},
"na_mcast_to_ucast": {
"description": "IPv6 Neighbor Advertisement multicast-to-unicast conversion",
"type": "boolean"
},
"nas_identifier": {
"description": "NAS-Identifier string for RADIUS messages",
"type": "string"
@ -948,6 +952,10 @@
"description": "Use RSNE override IE WPA3 compatibility (0: disabled, 1: enabled, 2:force WPA2 for older devices)",
"default": 1
},
"sae_password_file": {
"description": "External file containing VLAN SAE MAC address triplets",
"type": "string"
},
"sae_pwe": {
"description": "SAE mechanism for PWE derivation",
"type": "number",
@ -957,6 +965,10 @@
"description": "Require MFP for all associations using SAE",
"type": "boolean"
},
"sae_track_password": {
"description": "Tracking of SAE password use",
"type": "number"
},
"server:host": {
"type": "string"
},

View File

@ -43,6 +43,9 @@ function iface_setup(config) {
if (config.multicast_to_unicast || config.proxy_arp)
config.ap_isolate = 1;
if (config.proxy_arp)
set_default(config, 'na_mcast_to_ucast', true);
append('bssid', config.macaddr);
config.ssid2 = config.ssid;
config.wmm_enabled = 1;
@ -56,7 +59,7 @@ function iface_setup(config) {
'wds_sta', 'wds_bridge', 'snoop_iface', 'vendor_elements', 'nas_identifier', 'radius_acct_interim_interval',
'ocv', 'multicast_to_unicast', 'preamble', 'proxy_arp', 'per_sta_vif', 'mbo',
'bss_transition', 'wnm_sleep_mode', 'wnm_sleep_mode_no_keys', 'qos_map_set', 'max_listen_int',
'dtim_period', 'wmm_enabled', 'start_disabled',
'dtim_period', 'wmm_enabled', 'start_disabled', 'na_mcast_to_ucast',
]);
}
@ -82,7 +85,8 @@ function iface_auth_type(config) {
if (config.auth_type in [ 'sae', 'owe', 'eap2', 'eap192' ]) {
config.ieee80211w = 2;
config.sae_require_mfp = 1;
config.sae_pwe = 2;
if (!config.ppsk)
config.sae_pwe = 2;
}
if (config.auth_type in [ 'psk-sae', 'eap-eap2' ]) {
@ -90,7 +94,8 @@ function iface_auth_type(config) {
if (config.rsn_override)
config.rsn_override_mfp = 2;
config.sae_require_mfp = 1;
config.sae_pwe = 2;
if (!config.ppsk)
config.sae_pwe = 2;
}
if (config.own_ip_addr)
@ -118,20 +123,23 @@ function iface_auth_type(config) {
config.vlan_possible = 1;
config.wps_possible = 1;
if (config.auth_type == 'psk' && config.ppsk) {
if (config.ppsk) {
iface_authentication_server(config);
config.macaddr_acl = 2;
config.wpa_psk_radius = 2;
} else if (length(config.key) == 64) {
config.wpa_psk = key;
} else if (length(config.key) >= 8) {
} else if (length(config.key) >= 8 && length(config.key) <= 63) {
config.wpa_passphrase = config.key;
} else if (!config.wpa_psk_file) {
} else if (config.key) {
netifd.setup_failed('INVALID_WPA_PSK');
}
set_default(config, 'wpa_psk_file', `/var/run/hostapd-${config.ifname}.psk`);
touch_file(config.wpa_psk_file);
set_default(config, 'sae_password_file', `/var/run/hostapd-${config.ifname}.sae`);
touch_file(config.sae_password_file);
break;
case 'eap':
@ -167,7 +175,7 @@ function iface_auth_type(config) {
}
append_vars(config, [
'sae_require_mfp', 'sae_pwe', 'time_advertisement', 'time_zone',
'sae_require_mfp', 'sae_password_file', 'sae_pwe', 'sae_track_password', 'time_advertisement', 'time_zone',
'wpa_group_rekey', 'wpa_ptk_rekey', 'wpa_gmk_rekey', 'wpa_strict_rekey',
'macaddr_acl', 'wpa_psk_radius', 'wpa_psk', 'wpa_passphrase', 'wpa_psk_file',
'eapol_version', 'dynamic_vlan', 'radius_request_cui', 'eap_reauth_period',
@ -294,7 +302,7 @@ function iface_vlan(interface, config, vlans) {
]);
}
function iface_stations(config, stas) {
function iface_wpa_stations(config, stas) {
if (!length(stas))
return;
@ -313,6 +321,30 @@ function iface_stations(config, stas) {
set_default(config, 'wpa_psk_file', path);
}
function iface_sae_stations(config, stas) {
if (!length(stas))
return;
let path = `/var/run/hostapd-${config.ifname}.sae`;
let file = fs.open(path, 'w');
for (let k, sta in stas)
if (sta.config.mac && sta.config.key) {
let mac = sta.config.mac;
if (mac == '00:00:00:00:00:00')
mac = 'ff:ff:ff:ff:ff:ff';
let station = `${sta.config.key}|mac=${mac}`;
if (sta.config.vid)
station = station + `|vlanid=${sta.config.vid}`;
station = station + '\n';
file.write(station);
}
file.close();
set_default(config, 'sae_password_file', path);
}
function iface_eap_server(config) {
if (!config.eap_server)
return;
@ -432,7 +464,8 @@ function iface_interworking(config) {
export function generate(interface, data, config, vlans, stas, phy_features) {
config.ctrl_interface = '/var/run/hostapd';
iface_stations(config, stas);
iface_wpa_stations(config, stas);
iface_sae_stations(config, stas);
config.start_disabled = data.ap_start_disabled;
iface_setup(config);
@ -502,7 +535,7 @@ export function generate(interface, data, config, vlans, stas, phy_features) {
}
/* raw options */
for (let raw in config.hostapd_options)
for (let raw in config.hostapd_bss_options)
append_raw(raw);
if (config.mlo) {

View File

@ -303,7 +303,7 @@ function device_htmode_append(config) {
config.short_gi_160 = 0;
}
config.tx_queue_data2_burst = '2.0';
set_default(config, 'tx_queue_data2_burst', '2.0');
let vht_capab = phy_capabilities.vht_capa;

View File

@ -362,7 +362,7 @@ hostapd_common_add_bss_config() {
config_add_array supported_rates
config_add_boolean sae_require_mfp
config_add_int sae_pwe
config_add_int sae_pwe sae_track_password
config_add_string 'owe_transition_bssid:macaddr' 'owe_transition_ssid:string'
config_add_string owe_transition_ifname
@ -385,7 +385,7 @@ hostapd_common_add_bss_config() {
config_add_array airtime_sta_weight
config_add_int airtime_bss_weight airtime_bss_limit
config_add_boolean multicast_to_unicast multicast_to_unicast_all proxy_arp per_sta_vif
config_add_boolean multicast_to_unicast multicast_to_unicast_all proxy_arp per_sta_vif na_mcast_to_ucast
config_add_array hostapd_bss_options
config_add_boolean default_disabled
@ -551,10 +551,10 @@ hostapd_set_bss_options() {
macfilter ssid utf8_ssid uapsd hidden short_preamble rsn_preauth \
iapp_interface eapol_version dynamic_vlan ieee80211w nasid \
acct_secret acct_port acct_interval \
bss_load_update_period chan_util_avg_period sae_require_mfp sae_pwe \
bss_load_update_period chan_util_avg_period sae_require_mfp sae_pwe sae_track_password \
multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key skip_inactivity_poll \
ppsk airtime_bss_weight airtime_bss_limit airtime_sta_weight \
multicast_to_unicast_all proxy_arp per_sta_vif \
multicast_to_unicast_all proxy_arp per_sta_vif na_mcast_to_ucast \
eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id radius_server_clients radius_server_auth_port \
vendor_elements fils ocv apup rsn_override
@ -647,6 +647,7 @@ hostapd_set_bss_options() {
esac
[ -n "$sae_require_mfp" ] && append bss_conf "sae_require_mfp=$sae_require_mfp" "$N"
[ -n "$sae_pwe" ] && append bss_conf "sae_pwe=$sae_pwe" "$N"
[ -n "$sae_track_password" ] && append bss_conf "sae_track_password=$sae_track_password" "$N"
local vlan_possible=""
@ -1161,6 +1162,10 @@ hostapd_set_bss_options() {
set_default proxy_arp 0
if [ "$proxy_arp" -gt 0 ]; then
append bss_conf "proxy_arp=$proxy_arp" "$N"
set_default na_mcast_to_ucast 1
fi
if [ "$na_mcast_to_ucast" -gt 0 ]; then
append bss_conf "na_mcast_to_ucast=$na_mcast_to_ucast" "$N"
fi
set_default per_sta_vif 0

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=iproute2
PKG_VERSION:=6.14.0
PKG_VERSION:=6.17.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
PKG_HASH:=a6d23588150096591c3d00fc27a324a82ee71d7a1a9eea78df5df17ad9b8461f
PKG_HASH:=9781e59410ab7dea8e9f79bb10ff1488e63d10fcbb70503b94426ba27a8e2dec
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=iptables
PKG_LICENSE:=GPL-2.0

View File

@ -0,0 +1,27 @@
From 7119f3736f689ab396ca4193ac593938affd55fa Mon Sep 17 00:00:00 2001
From: Yureka <yureka@cyberchaos.dev>
Date: Sun, 12 Oct 2025 14:39:47 +0200
Subject: lib: bridge: avoid redefinition of in6_addr
On musl libc, which does not use the kernel definitions of in6_addr, including
the libc headers after the kernel (UAPI) headers would cause a redefinition
error. The opposite order avoids the redefinition.
Fixes: 9e89d5b94d749f37525cd8778311e1c9f28f172a
Signed-off-by: Yureka <yureka@cyberchaos.dev>
---
lib/bridge.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/lib/bridge.c
+++ b/lib/bridge.c
@@ -2,8 +2,8 @@
#include <net/if.h>
-#include "bridge.h"
#include "utils.h"
+#include "bridge.h"
void bridge_print_vlan_flags(__u16 flags)
{

View File

@ -1,6 +1,6 @@
--- a/tc/Makefile
+++ b/tc/Makefile
@@ -107,6 +107,9 @@ CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PR
@@ -108,6 +108,9 @@ CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PR
ifneq ($(IPT_LIB_DIR),)
CFLAGS += -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\"
endif

View File

@ -105,4 +105,4 @@
+
UTILOBJ = utils.o utils_math.o rt_names.o ll_map.o ll_types.o ll_proto.o ll_addr.o \
inet_proto.o namespace.o json_writer.o json_print.o json_print_math.o \
names.o color.o bpf_legacy.o bpf_glue.o exec.o fs.o cg_map.o ppp_proto.o
names.o color.o bpf_legacy.o bpf_glue.o exec.o fs.o cg_map.o \

View File

@ -31,7 +31,7 @@ Subject: [PATCH] add support for dropping with FAILED_POLICY
if (!end || end == arg || *end || res > 255)
--- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h
@@ -265,6 +265,7 @@ enum {
@@ -273,6 +273,7 @@ enum {
RTN_THROW, /* Not in this table */
RTN_NAT, /* Translate this address */
RTN_XRESOLVE, /* Use external resolver */

View File

@ -11,7 +11,7 @@
--- a/tc/Makefile
+++ b/tc/Makefile
@@ -120,7 +120,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
@@ -121,7 +121,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic $< -o $@

View File

@ -11,9 +11,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/iwinfo.git
PKG_SOURCE_DATE:=2025-10-19
PKG_SOURCE_VERSION:=904f114548bac1e21f49f0bf1e16ebd8ac907885
PKG_MIRROR_HASH:=6d8e292beb2fffb10028cebb08247090272b1ad6381212b3fdc159cf5a7588f5
PKG_SOURCE_DATE:=2025-11-07
PKG_SOURCE_VERSION:=5f4c213fc59f1a82d9f0140642d668ae2969531b
PKG_MIRROR_HASH:=363e245821d9bc6ffe2cf20f4b51670f1f91928df22a2ffe73a06767f737fb6d
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=GPL-2.0

View File

@ -12,9 +12,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/rpcd.git
PKG_MIRROR_HASH:=9dfe55b9eee240916fe7a2f060280a610e4729b08effbb75089c5d29435c3bf1
PKG_SOURCE_DATE:=2025-10-03
PKG_SOURCE_VERSION:=cfb93f105ca2b5e81c5e489076f38d5786f346ea
PKG_MIRROR_HASH:=79a5e17e29396e98c2bb2b0004d370223628ee32dc033cb073a1115c5386f5aa
PKG_SOURCE_DATE:=2025-11-07
PKG_SOURCE_VERSION:=917000075eb48c934f0a456be3b884758c376e0b
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=ISC

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=e2fsprogs
PKG_VERSION:=1.47.2
PKG_VERSION:=1.47.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/tytso/e2fsprogs/v$(PKG_VERSION)/
PKG_HASH:=08242e64ca0e8194d9c1caad49762b19209a06318199b63ce74ae4ef2d74e63c
PKG_HASH:=857e6ef800feaa2bb4578fbc810214be5d3c88b072ea53c5384733a965737329
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=NOTICE

View File

@ -18,7 +18,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
--- a/configure
+++ b/configure
@@ -930,6 +930,7 @@ enable_rpath
@@ -931,6 +931,7 @@ enable_rpath
with_libiconv_prefix
with_libintl_prefix
enable_largefile
@ -26,7 +26,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
with_libarchive
enable_fuse2fs
enable_lto
@@ -1647,6 +1648,7 @@ Optional Packages:
@@ -1650,6 +1651,7 @@ Optional Packages:
--without-libiconv-prefix don't search for libiconv in includedir and libdir
--with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib
--without-libintl-prefix don't search for libintl in includedir and libdir
@ -34,7 +34,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
--without-libarchive disable use of libarchive
--with-multiarch=ARCH specify the multiarch triplet
--with-udev-rules-dir[=DIR]
@@ -13690,7 +13692,155 @@ then :
@@ -13736,7 +13738,155 @@ then :
fi
@ -191,7 +191,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
printf %s "checking for magic_file in -lmagic... " >&6; }
if test ${ac_cv_lib_magic_magic_file+y}
then :
@@ -13728,17 +13878,39 @@ printf "%s\n" "$ac_cv_lib_magic_magic_fi
@@ -13774,17 +13924,39 @@ printf "%s\n" "$ac_cv_lib_magic_magic_fi
if test "x$ac_cv_lib_magic_magic_file" = xyes
then :
MAGIC_LIB=-lmagic
@ -237,7 +237,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
--- a/configure.ac
+++ b/configure.ac
@@ -1295,12 +1295,59 @@ SOCKET_LIB=''
@@ -1297,12 +1297,59 @@ SOCKET_LIB=''
AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
AC_SUBST(SOCKET_LIB)
dnl

View File

@ -8,18 +8,20 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=mtd-utils
PKG_VERSION:=2.2.1
PKG_VERSION:=2.3.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://infraroot.at/pub/mtd/
PKG_HASH:=f7ae20b2eb79ee83441468f0b99d897024cd96ff853eea59106fb1952065c803
PKG_HASH:=2db102908b232406ccb20719c0f43b61196aef4534493419fbf98a273c598c10
PKG_INSTALL:=1
PKG_FLAGS:=nonshared
PKG_BUILD_FLAGS:=gc-sections
PKG_FIXUP:=autoreconf
PKG_BUILD_DEPENDS:=util-linux
PKG_LICENSE:=GPLv2
@ -59,6 +61,7 @@ MAKE_FLAGS += LDLIBS+="$(LIBGCC_S)"
CONFIGURE_ARGS += \
--enable-tests \
--disable-unit-tests \
--without-crypto \
--without-xattr \
--without-zstd \

View File

@ -0,0 +1,57 @@
From 8a83b306db64d6f60186d4396b0b770163b85b6e Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Wed, 26 Feb 2025 18:24:00 +0000
Subject: ubifs-utils: link libmissing.a in case execinfo.h isn't present
On musl execinfo.h doesn't exist, but ubifs-utils uses backtrace() when
reporting errors. This results in build failures under musl.
Handily, libmissing.a already exists with a stub implementation of
backtrace().
Guard the execinfo.h include and if it isn't available instead include
libmissing.h, and link to libmissing.a to provide backtrace() if needed.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/Makemodule.am | 4 ++--
ubifs-utils/common/defs.h | 5 ++++-
2 files changed, 6 insertions(+), 3 deletions(-)
--- a/ubifs-utils/Makemodule.am
+++ b/ubifs-utils/Makemodule.am
@@ -72,7 +72,7 @@ mkfs_ubifs_SOURCES = \
ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
mkfs_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(ZSTD_LIBS) $(UUID_LIBS) $(LIBSELINUX_LIBS) $(OPENSSL_LIBS) \
- $(DUMP_STACK_LD) $(ASAN_LIBS) -lm -lpthread
+ $(DUMP_STACK_LD) $(ASAN_LIBS) -lm -lpthread libmissing.a
mkfs_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(ZSTD_CFLAGS) $(UUID_CFLAGS) $(LIBSELINUX_CFLAGS) \
-I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/common -I $(top_srcdir)/ubifs-utils/libubifs
@@ -90,7 +90,7 @@ fsck_ubifs_SOURCES = \
ubifs-utils/fsck.ubifs/handle_disconnected.c
fsck_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(ZSTD_LIBS) $(UUID_LIBS) $(LIBSELINUX_LIBS) $(OPENSSL_LIBS) \
- $(DUMP_STACK_LD) $(ASAN_LIBS) -lm -lpthread
+ $(DUMP_STACK_LD) $(ASAN_LIBS) -lm -lpthread libmissing.a
fsck_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(ZSTD_CFLAGS) $(UUID_CFLAGS) $(LIBSELINUX_CFLAGS) \
-I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/common -I $(top_srcdir)/ubifs-utils/libubifs \
-I$(top_srcdir)/ubifs-utils/fsck.ubifs
--- a/ubifs-utils/common/defs.h
+++ b/ubifs-utils/common/defs.h
@@ -13,8 +13,11 @@
#include <errno.h>
#include <time.h>
#include <assert.h>
+#if HAVE_EXECINFO_H
#include <execinfo.h>
-
+#else
+#include "libmissing.h"
+#endif
#include "ubifs.h"
/* common.h requires the PROGRAM_NAME macro */

View File

@ -0,0 +1,32 @@
From 2669111e3c60b8e146c174db5d2e7e9991f3dd87 Mon Sep 17 00:00:00 2001
From: AntonMoryakov <ant.v.moryakov@gmail.com>
Date: Thu, 24 Apr 2025 21:19:22 +0300
Subject: ubifs-utils: common: fix memory leak in devtable.c
Report of the static analyzer:
Dynamic memory, referenced by 'line', is allocated at devtable.c:356
by calling function 'getline' and lost at devtable.c:388.
(line: while (getline(&line, &len, f) != -1) {)
Correct explained:
Now line is freed in any exit scenario via out_close which eliminates this error.
Triggers found by static analyzer Svace.
Signed-off-by: Anton Moryakov <ant.v.moryakov@gmail.co
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/common/devtable.c | 1 +
1 file changed, 1 insertion(+)
--- a/ubifs-utils/common/devtable.c
+++ b/ubifs-utils/common/devtable.c
@@ -392,6 +392,7 @@ int parse_devtable(const char *tbl_file)
out_close:
fclose(f);
+ free(line);
free_devtable_info();
return -1;
}

View File

@ -0,0 +1,32 @@
From ac0ab65ebcd7b11739986b81343457469fbb43b0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 22 Mar 2025 21:01:32 -0700
Subject: Improve check for GCC compiler version
When using unreleased compiler has version like
15.0.1 and that test fails because __GNUC_MINOR__ < 1
becomes true, therefore check for full version string
which is more rubust.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/common/atomic.h | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- a/ubifs-utils/common/atomic.h
+++ b/ubifs-utils/common/atomic.h
@@ -2,8 +2,12 @@
#ifndef __ATOMIC_H__
#define __ATOMIC_H__
+#define GCC_VERSION (__GNUC__ * 10000 \
+ + __GNUC_MINOR__ * 100 \
+ + __GNUC_PATCHLEVEL__)
+
/* Check GCC version, just to be safe */
-#if !defined(__GNUC__) || (__GNUC__ < 4) || (__GNUC_MINOR__ < 1)
+#if GCC_VERSION < 40100
# error atomic.h works only with GCC newer than version 4.1
#endif /* GNUC >= 4.1 */

View File

@ -0,0 +1,45 @@
From 12bc9ad824bd8f18a5ec9c7154ad2374cf8c7ae3 Mon Sep 17 00:00:00 2001
From: Fabio Estevam <festevam@gmail.com>
Date: Wed, 19 Feb 2025 10:02:41 -0300
Subject: ubifs-utils: ubifs.h: Include <fcntl.h>
Include the <fcntl.h> header file to fix the following error
when building with musl:
| In file included from ../git/ubifs-utils/common/compr.c:42:
| ../git/ubifs-utils/libubifs/ubifs.h:313:9: error: unknown type name 'loff_t'; did you mean 'off_t'?
| 313 | loff_t ui_size;
| | ^~~~~~
| | off_t
| ../git/ubifs-utils/libubifs/ubifs.h:1341:9: error: unknown type name 'loff_t'; did you mean 'off_t'?
| 1341 | loff_t i_size;
| | ^~~~~~
| | off_t
| ../git/ubifs-utils/libubifs/ubifs.h:1342:9: error: unknown type name 'loff_t'; did you mean 'off_t'?
| 1342 | loff_t d_size;
| | ^~~~~~
| | off_t
| ../git/ubifs-utils/libubifs/ubifs.h:1899:44: error: unknown type name 'loff_t'; did you mean 'off_t'?
| 1899 | int deletion, loff_t new_size);
| | ^~~~~~
| | off_t
| make: *** [Makefile:4878: ubifs-utils/common/mkfs_ubifs-compr.o] Error 1
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Reviewed-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/libubifs/ubifs.h | 1 +
1 file changed, 1 insertion(+)
--- a/ubifs-utils/libubifs/ubifs.h
+++ b/ubifs-utils/libubifs/ubifs.h
@@ -11,6 +11,7 @@
#ifndef __UBIFS_H__
#define __UBIFS_H__
+#include <fcntl.h>
#include <string.h>
#include "linux_types.h"

View File

@ -0,0 +1,33 @@
From 173f9714c8da1d685bfa951d43b9310d16bbab3c Mon Sep 17 00:00:00 2001
From: Fabio Estevam <festevam@gmail.com>
Date: Wed, 19 Feb 2025 10:02:42 -0300
Subject: ubifs-utils: journal: Include <sys/stat.h>
Include the <sys/stat.h> header file to fix the following error
when building with musl:
| ../git/ubifs-utils/libubifs/journal.c: In function 'ubifs_get_dent_type':
| ../git/ubifs-utils/libubifs/journal.c:414:24: error: 'S_IFMT' undeclared (first use in this function)
| 414 | switch (mode & S_IFMT) {
| | ^~~~~~
| ../git/ubifs-utils/libubifs/journal.c:414:24: note: each undeclared identifier is reported only once for each function it appears in
| ../git/ubifs-utils/libubifs/journal.c:415:14: error: 'S_IFREG' undeclared (first use in this function)
| 415 | case S_IFREG:
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/libubifs/journal.c | 1 +
1 file changed, 1 insertion(+)
--- a/ubifs-utils/libubifs/journal.c
+++ b/ubifs-utils/libubifs/journal.c
@@ -46,6 +46,7 @@
* all the nodes.
*/
+#include <sys/stat.h>
#include "bitops.h"
#include "kmem.h"
#include "ubifs.h"

View File

@ -0,0 +1,33 @@
From 77981a2888c711268b0e7f32af6af159c2288e23 Mon Sep 17 00:00:00 2001
From: Fabio Estevam <festevam@gmail.com>
Date: Wed, 19 Feb 2025 10:02:44 -0300
Subject: ubifs-utils: extract_files: Include <linux/limits.h>
Include <linux/limits.h> to fix the following build error when building
with musl:
| ../git/ubifs-utils/fsck.ubifs/extract_files.c: In function 'parse_ino_node':
| ../git/ubifs-utils/fsck.ubifs/extract_files.c:144:47: error: 'XATTR_LIST_MAX' undeclared (first use in this function)
| 144 | if (ino_node->xnms + ino_node->xcnt > XATTR_LIST_MAX) {
| | ^~~~~~~~~~~~~~
| ../git/ubifs-utils/fsck.ubifs/extract_files.c:144:47: note: each undeclared identifier is reported only once for each function it appears in
| make: *** [Makefile:4374: ubifs-utils/fsck.ubifs/fsck_ubifs-extract_files.o] Error 1
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/fsck.ubifs/extract_files.c | 2 ++
1 file changed, 2 insertions(+)
--- a/ubifs-utils/fsck.ubifs/extract_files.c
+++ b/ubifs-utils/fsck.ubifs/extract_files.c
@@ -10,6 +10,8 @@
#include <getopt.h>
#include <sys/stat.h>
+#include <linux/limits.h>
+
#include "linux_err.h"
#include "bitops.h"
#include "kmem.h"

View File

@ -0,0 +1,30 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat, 25 Oct 2025 15:38:31 +0200
Subject: Remove ubifs test builds
The build from the tar file fails with:
```
make[3]: *** No rule to make target 'tests/ubifs_tools-tests/images/good.gz', needed by 'all-am'. Stop.
```
The tar does not contain the test data files. We do not need these
tests, just deactivate them.
A new tar file created with this upstream fix should contain the missing
files:
https://patchwork.ozlabs.org/project/linux-mtd/patch/20250220112554.2150046-1-m.olbrich@pengutronix.de/
---
Makefile.am | 1 -
1 file changed, 1 deletion(-)
--- a/Makefile.am
+++ b/Makefile.am
@@ -64,7 +64,6 @@ include tests/jittertest/Makemodule.am
include tests/checkfs/Makemodule.am
include tests/fs-tests/Makemodule.am
include tests/mtd-tests/Makemodule.am
-include tests/ubifs_tools-tests/Makemodule.am
endif
if UNIT_TESTS

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=util-linux
PKG_VERSION:=2.41.1
PKG_RELEASE:=2
PKG_VERSION:=2.41.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.41
PKG_HASH:=be9ad9a276f4305ab7dd2f5225c8be1ff54352f565ff4dede9628c1aaa7dec57
PKG_HASH:=6062a1d89b571a61932e6fc0211f36060c4183568b81ee866cf363bce9f6583e
PKG_CPE_ID:=cpe:/a:kernel:util-linux

View File

@ -36,7 +36,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+ /* Don't parse any failsafe / backup partitions */
+ if (strcmp(mtd->name, "firmware"))
+ return -EINVAL;
+ return -ENOENT;
+
parts = kcalloc(TRX_PARSER_MAX_PARTS, sizeof(struct mtd_partition),
GFP_KERNEL);

View File

@ -112,7 +112,7 @@ static int mtdsplit_parse_seil_fw(struct mtd_info *master,
u64 id;
if (!seil_bootdev_is_active(np))
return -ENODEV;
return 0;
ret = of_property_read_u64(np, "iij,seil-id", &id);
if (ret) {
@ -137,7 +137,7 @@ static int mtdsplit_parse_seil_fw(struct mtd_info *master,
if (be64_to_cpu(header.id) != id ||
be32_to_cpu(header.vfmt) != SEIL_VFMT) {
pr_debug("no valid seil image found in \"%s\"\n", master->name);
ret = -ENODEV;
ret = 0;
goto err_free_parts;
}
@ -154,7 +154,7 @@ static int mtdsplit_parse_seil_fw(struct mtd_info *master,
if (ret || (master->size - rootfs_offset) == 0) {
pr_debug("no rootfs after seil image in \"%s\"\n",
master->name);
ret = -ENODEV;
ret = 0;
goto err_free_parts;
}

View File

@ -0,0 +1,409 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/dts-v1/;
#include "mt7988a.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/mt65xx.h>
#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
/ {
model = "TP-Link BE450";
compatible = "tplink,be450", "mediatek,mt7988d";
chosen {
stdout-path = "serial0:115200n8";
};
aliases {
serial0 = &serial0;
label-mac-device = &gmac0;
led-boot = &led_status;
led-failsafe = &led_status;
led-running = &led_status;
led-upgrade = &led_status;
};
memory@40000000 {
reg = <0x0 0x40000000 0x0 0x40000000>;
device_type = "memory";
};
cpus {
/delete-node/ cpu@3;
};
reg_1p8v: regulator-1p8v {
compatible = "regulator-fixed";
regulator-name = "fixed-1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
reg_3p3v: regulator-3p3v {
compatible = "regulator-fixed";
regulator-name = "fixed-3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&button_pins>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&pio 13 GPIO_ACTIVE_LOW>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&pio 14 GPIO_ACTIVE_LOW>;
};
};
gpio-leds {
compatible = "gpio-leds";
led-0 {
gpios = <&pio 21 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_ORANGE>;
function = LED_FUNCTION_WAN;
};
led-1 {
gpios = <&pio 28 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_WLAN_5GHZ;
};
led-2 {
gpios = <&pio 29 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_WLAN_2GHZ;
};
led_status: led-3 {
gpios = <&pio 30 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_STATUS;
panic-indicator;
};
led-4 {
gpios = <&pio 31 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_LAN;
};
led-5 {
gpios = <&pio 35 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_WPS;
};
led-6 {
gpios = <&pio 57 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_WAN;
};
led-7 {
gpios = <&pio 68 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_USB;
};
};
};
&cpu0 {
proc-supply = <&rt5190_buck3>;
};
&cpu1 {
proc-supply = <&rt5190_buck3>;
};
&cpu2 {
proc-supply = <&rt5190_buck3>;
};
&cci {
proc-supply = <&rt5190_buck3>;
};
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_flash_pins>;
status = "okay";
spi_nand: spi_nand@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "spi-nand";
reg = <0>;
spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
spi-cal-addrlen = <5>;
spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>;
spi-cal-datalen = <7>;
spi-cal-enable;
spi-cal-mode = "read-data";
spi-max-frequency = <52000000>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <4>;
partitions: partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "boot";
reg = <0x0 0x200000>;
read-only;
};
partition@200000 {
label = "u-boot-env";
reg = <0x200000 0x100000>;
};
partition@300000 {
label = "ubi0";
reg = <0x300000 0x3200000>;
};
partition@3500000 {
label = "ubi1";
reg = <0x3500000 0x3200000>;
read-only;
};
partition@6700000 {
label = "userconfig";
reg = <0x6700000 0x800000>;
read-only;
};
partition@6f00000 {
label = "tp_data";
reg = <0x6f00000 0x800000>;
read-only;
};
};
};
};
&eth {
pinctrl-names = "default";
pinctrl-0 = <&mdio0_pins>;
status = "okay";
};
&gmac0 {
status = "okay";
};
&gmac1 {
phy-mode = "internal";
phy-connection-type = "internal";
phy = <&int_2p5g_phy>;
status = "okay";
};
&gmac2 {
phy-mode = "usxgmii";
phy-connection-type = "usxgmii";
phy = <&phy0>;
status = "okay";
};
&gsw_phy3 {
status = "disabled";
};
&mdio_bus {
phy0: ethernet-phy@0 {
/* RTL8261N */
compatible = "ethernet-phy-ieee802.3-c45";
reg = <0>;
reset-gpios = <&pio 3 GPIO_ACTIVE_LOW>;
reset-assert-us = <100000>;
reset-deassert-us = <100000>;
};
};
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
status = "okay";
rt5190a_64: rt5190a@64 {
compatible = "richtek,rt5190a";
reg = <0x64>;
/*interrupts-extended = <&gpio26 0 IRQ_TYPE_LEVEL_LOW>;*/
vin2-supply = <&rt5190_buck1>;
vin3-supply = <&rt5190_buck1>;
vin4-supply = <&rt5190_buck1>;
regulators {
rt5190_buck1: buck1 {
regulator-name = "rt5190a-buck1";
regulator-min-microvolt = <5090000>;
regulator-max-microvolt = <5090000>;
regulator-allowed-modes =
<RT5190A_OPMODE_AUTO RT5190A_OPMODE_FPWM>;
regulator-boot-on;
regulator-always-on;
};
buck2 {
regulator-name = "vcore";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1400000>;
regulator-boot-on;
regulator-always-on;
};
rt5190_buck3: buck3 {
regulator-name = "vproc";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1400000>;
regulator-boot-on;
};
buck4 {
regulator-name = "rt5190a-buck4";
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <850000>;
regulator-allowed-modes =
<RT5190A_OPMODE_AUTO RT5190A_OPMODE_FPWM>;
regulator-boot-on;
regulator-always-on;
};
ldo {
regulator-name = "rt5190a-ldo";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-boot-on;
regulator-always-on;
};
};
};
};
&pcie0 {
pinctrl-names = "default";
pinctrl-0 = <&pcie0_1_pins>;
reset-gpios = <&pio 7 GPIO_ACTIVE_LOW>;
status = "okay";
pcie@0,0 {
reg = <0x0000 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
mt7996@0,0 {
reg = <0x0000 0 0 0 0>;
};
};
};
&pio {
button_pins: button-pins {
pins = "GPIO_RESET", "GPIO_WPS";
bias-disable; /* bias-disable */
};
mdio0_pins: mdio0-pins {
mux {
function = "eth";
groups = "mdc_mdio0";
};
conf {
groups = "mdc_mdio0";
drive-strength = <MTK_DRIVE_8mA>;
};
};
i2c0_pins: i2c0-pins-g0 {
mux {
function = "i2c";
groups = "i2c0_1";
};
};
pcie0_1_pins: pcie0-pins-g1 {
mux {
function = "pcie";
groups = "pcie_2l_0_pereset", "pcie_clk_req_n0_0";
};
};
spi0_flash_pins: spi0-pins {
mux {
function = "spi";
groups = "spi0", "spi0_wp_hold";
};
};
enable-usb-power {
gpio-hog;
gpios = <32 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "USB power";
};
};
&ssusb1 {
status = "okay";
};
&switch {
status = "okay";
ports {
port@0 {
label = "lan3";
};
port@1 {
label = "lan2";
};
port@2 {
label = "lan1";
};
port@3 {
status = "disabled";
};
};
};
&tphy {
status = "okay";
};
&serial0 {
status = "okay";
};
&watchdog {
status = "okay";
};

View File

@ -222,6 +222,11 @@ teltonika,rutc50)
totolink,x6000r)
ucidef_set_led_netdev "wan" "wan" "green:wan" "wan" "link tx rx"
;;
tplink,be450)
ucidef_set_led_netdev "br-lan" "lan" "blue:lan" "br-lan" "link tx rx"
ucidef_set_led_netdev "wlan2g" "WLAN2G" "blue:wlan-2ghz" "phy0.0-ap0"
ucidef_set_led_netdev "wlan5g" "WLAN5G" "blue:wlan-5ghz" "phy0.1-ap0"
;;
tplink,fr365-v1)
ucidef_set_led_netdev "port2-green-act" "port-2" "green:port2_act" "port2" "link tx rx"
ucidef_set_led_netdev "port1-green-act" "port-1" "green:sfp" "port1" "link tx rx"

View File

@ -165,6 +165,9 @@ mediatek_setup_interfaces()
tplink,archer-ax80-v1)
ucidef_set_interfaces_lan_wan "lan0 lan1 lan2 lan3" eth1
;;
tplink,be450)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 eth2" eth1
;;
tplink,re6000xd)
ucidef_set_interface_lan "lan1 lan2 eth1"
;;

View File

@ -35,6 +35,14 @@ case "$FIRMWARE" in
;;
esac
;;
"mediatek/mt7996/mt7992_eeprom.bin")
case "$board" in
tplink,be450)
ln -sf /tmp/tp_data/MT7992_EEPROM.bin \
/lib/firmware/$FIRMWARE
;;
esac
;;
*)
exit 1
;;

View File

@ -147,6 +147,7 @@ case "$board" in
;;
mercusys,mr90x-v1|\
tplink,archer-ax80-v1|\
tplink,be450|\
tplink,re6000xd)
addr=$(get_mac_binary "/tmp/tp_data/default-mac" 0)
[ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress

View File

@ -16,6 +16,7 @@ preinit_mount_cfg_part() {
mercusys,mr80x-v3|\
mercusys,mr90x-v1|\
tplink,archer-ax80-v1|\
tplink,be450|\
tplink,re6000xd)
mount_ubi_part "tp_data" "tp_data"
;;

View File

@ -43,6 +43,11 @@ preinit_set_mac_address() {
addr=$(get_mac_binary "/tmp/tp_data/default-mac" 0)
ip link set dev eth1 address "$(macaddr_add $addr 1)"
;;
tplink,be450)
addr=$(get_mac_binary "/tmp/tp_data/default-mac" 0)
ip link set dev eth1 address "$(macaddr_add $addr 1)"
ip link set dev eth2 address "$(macaddr_add $addr 2)"
;;
tplink,fr365-v1)
lan_mac=$(strings /dev/mtd11 | grep 'option macaddr' | awk -F"'" '{print $2}')
wan_mac="$(macaddr_add $lan_mac 1)"

View File

@ -189,6 +189,7 @@ platform_do_upgrade() {
mercusys,mr80x-v3|\
mercusys,mr90x-v1|\
tplink,archer-ax80-v1|\
tplink,be450|\
tplink,re6000xd)
CI_UBIPART="ubi0"
nand_do_upgrade "$1"

View File

@ -1855,7 +1855,7 @@ define Device/mediatek_mt7987a-rfb
DEVICE_DTS_DIR := ../dts
DEVICE_DTC_FLAGS := --pad 4096
DEVICE_DTS_LOADADDR := 0x4ff00000
DEVICE_PACKAGES := mt798x-2p5g-phy-firmware-internal kmod-sfp blkid
DEVICE_PACKAGES := kmod-sfp
KERNEL_LOADADDR := 0x40000000
KERNEL := kernel-bin | gzip
KERNEL_INITRAMFS := kernel-bin | lzma | \
@ -2409,6 +2409,21 @@ define Device/tplink_fr365-v1
endef
TARGET_DEVICES += tplink_fr365-v1
define Device/tplink_be450
DEVICE_VENDOR := TP-Link
DEVICE_MODEL := BE450
DEVICE_DTS := mt7988d-tplink-be450
DEVICE_DTS_DIR := ../dts
DEVICE_PACKAGES := kmod-mt7992-firmware kmod-usb3 \
mt7988-2p5g-phy-firmware mt7988-wo-firmware
UBINIZE_OPTS := -E 5
BLOCKSIZE := 128k
PAGESIZE := 2048
IMAGE_SIZE := 51200k
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
endef
TARGET_DEVICES += tplink_be450
define Device/tplink_re6000xd
DEVICE_VENDOR := TP-Link
DEVICE_MODEL := RE6000XD

View File

@ -68,6 +68,7 @@ realtek_setup_macs()
lan_mac_end=$(macaddr_add $lan_mac $((mac_count2-mac_count1)))
;;
plasmacloud,esx28|\
plasmacloud,mcx3|\
plasmacloud,psx8|\
plasmacloud,psx10|\
plasmacloud,psx28)

View File

@ -28,6 +28,7 @@ platform_do_upgrade() {
case "$board" in
plasmacloud,esx28|\
plasmacloud,mcx3|\
plasmacloud,psx8|\
plasmacloud,psx10|\
plasmacloud,psx28)

View File

@ -4,6 +4,7 @@ set_boot_part() {
local board=$(board_name)
case "$board" in
plasmacloud,mcx3|\
plasmacloud,psx8|\
plasmacloud,psx10)
if [ "$part_num" = "1" ]; then
@ -70,6 +71,7 @@ platform_do_upgrade_dualboot_plasmacloud() {
# identify "inactive" slot id based on the expected partition id
# of the primary ("firmware1") slot
case "$(board_name)" in
plasmacloud,mcx3|\
plasmacloud,psx8|\
plasmacloud,psx10)
primary_firmware_mtd=3

View File

@ -0,0 +1,210 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/dts-v1/;
#include "rtl930x.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
/ {
compatible = "plasmacloud,mcx3", "realtek,rtl9302-soc";
model = "Plasma Cloud MCX3";
chosen {
/* get active mtdparts from u-boot */
/delete-property/ bootargs;
};
aliases {
led-boot = &led_power;
led-running = &led_power;
led-failsafe = &led_power;
led-upgrade = &led_power;
label-mac-device = &ethernet0;
};
memory@0 {
reg = <0x0 0x10000000>;
};
keys {
compatible = "gpio-keys";
mode {
label = "reset";
gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
i2c0: i2c-gpio0 {
compatible = "i2c-gpio";
#address-cells = <1>;
#size-cells = <0>;
sda-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
scl-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
i2c-gpio,delay-us = <5>; /* ~100 kHz */
};
sfp0: sfp-lan3 {
compatible = "sff,sfp";
i2c-bus = <&i2c0>;
los-gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
mod-def0-gpio = <&gpio0 12 GPIO_ACTIVE_LOW>;
tx-disable-gpio = <&gpio0 22 GPIO_ACTIVE_HIGH>;
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinmux_disable_sys_led>;
led_power: led-0 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_POWER;
gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
default-state = "on";
};
led-1 {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_STATUS;
gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
default-state = "on";
linux,default-trigger = "heartbeat";
};
};
led_set@0 {
compatible = "realtek,rtl9300-leds";
active-low;
led_set0 = <(RTL93XX_LED_SET_10G | RTL93XX_LED_SET_5G |
RTL93XX_LED_SET_2P5G | RTL93XX_LED_SET_1G |
RTL93XX_LED_SET_100M | RTL93XX_LED_SET_10M |
RTL93XX_LED_SET_LINK | RTL93XX_LED_SET_ACT)>;
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <10000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0xe0000>;
read-only;
};
partition@e0000 {
label = "u-boot-env";
reg = <0xe0000 0x10000>;
nvmem-layout {
compatible = "u-boot,env";
macaddr_ubootenv_ethaddr: ethaddr {
#nvmem-cell-cells = <1>;
};
};
};
partition@f0000 {
label = "u-boot-env2";
reg = <0xf0000 0x10000>;
};
partition@100000 {
label = "firmware1";
reg = <0x100000 0xf80000>;
compatible = "openwrt,uimage", "denx,uimage";
openwrt,ih-magic = <0x93000000>;
};
partition@1080000 {
label = "firmware2";
reg = <0x1080000 0xf80000>;
compatible = "openwrt,uimage", "denx,uimage";
openwrt,ih-magic = <0x93000000>;
};
};
};
};
&ethernet0 {
nvmem-cells = <&macaddr_ubootenv_ethaddr 0>;
nvmem-cell-names = "mac-address";
};
&mdio_bus0 {
/* External RTL8224 PHY */
phy0: ethernet-phy@0 {
reg = <0>;
compatible = "ethernet-phy-ieee802.3-c45";
rtl9300,smi-address = <0 0>;
};
phy1: ethernet-phy@1 {
reg = <1>;
compatible = "ethernet-phy-ieee802.3-c45";
rtl9300,smi-address = <0 1>;
};
};
&switch0 {
ports {
#address-cells = <1>;
#size-cells = <0>;
SWITCH_PORT_SDS(0, 2, 2, 10g-qxgmii)
SWITCH_PORT_SDS(1, 1, 2, 10g-qxgmii)
port@26 {
reg = <26>;
label = "lan3";
pcs-handle = <&serdes8>;
phy-mode = "1000base-x";
sfp = <&sfp0>;
led-set = <0>;
managed = "in-band-status";
nvmem-cells = <&macaddr_ubootenv_ethaddr 3>;
nvmem-cell-names = "mac-address";
};
/* CPU-port */
port@28 {
ethernet = <&ethernet0>;
reg = <28>;
phy-mode = "internal";
fixed-link {
speed = <1000>;
full-duplex;
};
};
};
};
&port0 {
nvmem-cells = <&macaddr_ubootenv_ethaddr 2>;
nvmem-cell-names = "mac-address";
};
&port1 {
nvmem-cells = <&macaddr_ubootenv_ethaddr 1>;
nvmem-cell-names = "mac-address";
};

View File

@ -30,6 +30,12 @@ define Device/plasmacloud-common
IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata
endef
define Device/plasmacloud_mcx3
$(Device/plasmacloud-common)
DEVICE_MODEL := MCX3
endef
TARGET_DEVICES += plasmacloud_mcx3
define Device/plasmacloud_psx8
$(Device/plasmacloud-common)
DEVICE_MODEL := PSX8

View File

@ -7,12 +7,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=gdb
PKG_VERSION:=16.2
PKG_VERSION:=16.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/gdb
PKG_HASH:=4002cb7f23f45c37c790536a13a720942ce4be0402d929c9085e92f10d480119
PKG_HASH:=bcfcd095528a987917acf9fff3f1672181694926cc18d609c99d0042c00224c5
PKG_CPE_ID:=cpe:/a:gnu:gdb
GDB_DIR:=$(PKG_NAME)-$(PKG_VERSION)

View File

@ -34,11 +34,9 @@ Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
zlib/zutil.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zlib/zutil.h b/zlib/zutil.h
index d9a20ae1bf4..183e51b96b6 100644
--- a/zlib/zutil.h
+++ b/zlib/zutil.h
@@ -137,7 +137,7 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
@@ -137,7 +137,7 @@ extern z_const char * const z_errmsg[10]
# endif
#endif
@ -47,6 +45,3 @@ index d9a20ae1bf4..183e51b96b6 100644
# define OS_CODE 7
# ifndef Z_SOLO
# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
--
2.49.0

View File

@ -135,7 +135,7 @@ $(curdir)/quilt/compile := $(curdir)/autoconf/compile $(curdir)/findutils/compil
$(curdir)/sdcc/compile := $(curdir)/bison/compile
$(curdir)/squashfs3-lzma/compile := $(curdir)/lzma-old/compile
$(curdir)/squashfs4/compile := $(curdir)/xz/compile $(curdir)/zlib/compile
$(curdir)/util-linux/compile := $(curdir)/bison/compile $(curdir)/automake/compile
$(curdir)/util-linux/compile := $(curdir)/bison/compile $(curdir)/meson/compile
$(curdir)/yafut/compile := $(curdir)/cmake/compile
ifneq ($(HOST_OS),Linux)

View File

@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=e2fsprogs
PKG_CPE_ID:=cpe:/a:e2fsprogs_project:e2fsprogs
PKG_VERSION:=1.47.2
PKG_HASH:=08242e64ca0e8194d9c1caad49762b19209a06318199b63ce74ae4ef2d74e63c
PKG_VERSION:=1.47.3
PKG_HASH:=857e6ef800feaa2bb4578fbc810214be5d3c88b072ea53c5384733a965737329
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/tytso/e2fsprogs/v$(PKG_VERSION)/

View File

@ -0,0 +1,72 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat, 25 Oct 2025 19:59:58 +0200
Subject: create_inode: Fix compilation again kernel < 5.12
Copy the header definition from Linux kernel v5.12 to allow compilation
against kernel headers from an kernel older than v5.12.
struct fsverity_descriptor was already added in kernel 5.11, compiling
against kernel 5.11 kernel headers could cause problems.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
misc/create_inode.c | 47 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
--- a/misc/create_inode.c
+++ b/misc/create_inode.c
@@ -575,6 +575,53 @@ static inline off_t round_up(off_t n, of
return ((n - bias + (blksz - 1)) & ~(blksz - 1)) + bias;
}
+#ifndef FS_IOC_READ_VERITY_METADATA
+
+/*
+ * Struct containing a file's Merkle tree properties. The fs-verity file digest
+ * is the hash of this struct. A userspace program needs this struct only if it
+ * needs to compute fs-verity file digests itself, e.g. in order to sign files.
+ * It isn't needed just to enable fs-verity on a file.
+ *
+ * Note: when computing the file digest, 'sig_size' and 'signature' must be left
+ * zero and empty, respectively. These fields are present only because some
+ * filesystems reuse this struct as part of their on-disk format.
+ */
+struct fsverity_descriptor {
+ __u8 version; /* must be 1 */
+ __u8 hash_algorithm; /* Merkle tree hash algorithm */
+ __u8 log_blocksize; /* log2 of size of data and tree blocks */
+ __u8 salt_size; /* size of salt in bytes; 0 if none */
+#ifdef __KERNEL__
+ __le32 sig_size;
+#else
+ __le32 __reserved_0x04; /* must be 0 */
+#endif
+ __le64 data_size; /* size of file the Merkle tree is built over */
+ __u8 root_hash[64]; /* Merkle tree root hash */
+ __u8 salt[32]; /* salt prepended to each hashed block */
+ __u8 __reserved[144]; /* must be 0's */
+#ifdef __KERNEL__
+ __u8 signature[];
+#endif
+};
+
+#define FS_VERITY_METADATA_TYPE_MERKLE_TREE 1
+#define FS_VERITY_METADATA_TYPE_DESCRIPTOR 2
+#define FS_VERITY_METADATA_TYPE_SIGNATURE 3
+
+struct fsverity_read_metadata_arg {
+ __u64 metadata_type;
+ __u64 offset;
+ __u64 length;
+ __u64 buf_ptr;
+ __u64 __reserved;
+};
+
+#define FS_IOC_READ_VERITY_METADATA \
+ _IOWR('f', 135, struct fsverity_read_metadata_arg)
+#endif
+
static errcode_t copy_fs_verity_data(ext2_file_t e2_file, ext2_off_t e2_offset,
int fd, uint64_t metadata_type,
__u32 *written)

View File

@ -7,12 +7,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=mtd-utils
PKG_VERSION:=2.2.1
PKG_VERSION:=2.3.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://infraroot.at/pub/mtd/
PKG_HASH:=f7ae20b2eb79ee83441468f0b99d897024cd96ff853eea59106fb1952065c803
PKG_HASH:=2db102908b232406ccb20719c0f43b61196aef4534493419fbf98a273c598c10
PKG_CPE_ID:=cpe:/a:mtd-utils_project:mtd-utils
PKG_FIXUP:=autoreconf

View File

@ -0,0 +1,57 @@
From 8a83b306db64d6f60186d4396b0b770163b85b6e Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Wed, 26 Feb 2025 18:24:00 +0000
Subject: ubifs-utils: link libmissing.a in case execinfo.h isn't present
On musl execinfo.h doesn't exist, but ubifs-utils uses backtrace() when
reporting errors. This results in build failures under musl.
Handily, libmissing.a already exists with a stub implementation of
backtrace().
Guard the execinfo.h include and if it isn't available instead include
libmissing.h, and link to libmissing.a to provide backtrace() if needed.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/Makemodule.am | 4 ++--
ubifs-utils/common/defs.h | 5 ++++-
2 files changed, 6 insertions(+), 3 deletions(-)
--- a/ubifs-utils/Makemodule.am
+++ b/ubifs-utils/Makemodule.am
@@ -72,7 +72,7 @@ mkfs_ubifs_SOURCES = \
ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
mkfs_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(ZSTD_LIBS) $(UUID_LIBS) $(LIBSELINUX_LIBS) $(OPENSSL_LIBS) \
- $(DUMP_STACK_LD) $(ASAN_LIBS) -lm -lpthread
+ $(DUMP_STACK_LD) $(ASAN_LIBS) -lm -lpthread libmissing.a
mkfs_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(ZSTD_CFLAGS) $(UUID_CFLAGS) $(LIBSELINUX_CFLAGS) \
-I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/common -I $(top_srcdir)/ubifs-utils/libubifs
@@ -90,7 +90,7 @@ fsck_ubifs_SOURCES = \
ubifs-utils/fsck.ubifs/handle_disconnected.c
fsck_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(ZSTD_LIBS) $(UUID_LIBS) $(LIBSELINUX_LIBS) $(OPENSSL_LIBS) \
- $(DUMP_STACK_LD) $(ASAN_LIBS) -lm -lpthread
+ $(DUMP_STACK_LD) $(ASAN_LIBS) -lm -lpthread libmissing.a
fsck_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(ZSTD_CFLAGS) $(UUID_CFLAGS) $(LIBSELINUX_CFLAGS) \
-I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/common -I $(top_srcdir)/ubifs-utils/libubifs \
-I$(top_srcdir)/ubifs-utils/fsck.ubifs
--- a/ubifs-utils/common/defs.h
+++ b/ubifs-utils/common/defs.h
@@ -13,8 +13,11 @@
#include <errno.h>
#include <time.h>
#include <assert.h>
+#if HAVE_EXECINFO_H
#include <execinfo.h>
-
+#else
+#include "libmissing.h"
+#endif
#include "ubifs.h"
/* common.h requires the PROGRAM_NAME macro */

View File

@ -0,0 +1,32 @@
From 2669111e3c60b8e146c174db5d2e7e9991f3dd87 Mon Sep 17 00:00:00 2001
From: AntonMoryakov <ant.v.moryakov@gmail.com>
Date: Thu, 24 Apr 2025 21:19:22 +0300
Subject: ubifs-utils: common: fix memory leak in devtable.c
Report of the static analyzer:
Dynamic memory, referenced by 'line', is allocated at devtable.c:356
by calling function 'getline' and lost at devtable.c:388.
(line: while (getline(&line, &len, f) != -1) {)
Correct explained:
Now line is freed in any exit scenario via out_close which eliminates this error.
Triggers found by static analyzer Svace.
Signed-off-by: Anton Moryakov <ant.v.moryakov@gmail.co
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/common/devtable.c | 1 +
1 file changed, 1 insertion(+)
--- a/ubifs-utils/common/devtable.c
+++ b/ubifs-utils/common/devtable.c
@@ -392,6 +392,7 @@ int parse_devtable(const char *tbl_file)
out_close:
fclose(f);
+ free(line);
free_devtable_info();
return -1;
}

View File

@ -0,0 +1,32 @@
From ac0ab65ebcd7b11739986b81343457469fbb43b0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 22 Mar 2025 21:01:32 -0700
Subject: Improve check for GCC compiler version
When using unreleased compiler has version like
15.0.1 and that test fails because __GNUC_MINOR__ < 1
becomes true, therefore check for full version string
which is more rubust.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/common/atomic.h | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- a/ubifs-utils/common/atomic.h
+++ b/ubifs-utils/common/atomic.h
@@ -2,8 +2,12 @@
#ifndef __ATOMIC_H__
#define __ATOMIC_H__
+#define GCC_VERSION (__GNUC__ * 10000 \
+ + __GNUC_MINOR__ * 100 \
+ + __GNUC_PATCHLEVEL__)
+
/* Check GCC version, just to be safe */
-#if !defined(__GNUC__) || (__GNUC__ < 4) || (__GNUC_MINOR__ < 1)
+#if GCC_VERSION < 40100
# error atomic.h works only with GCC newer than version 4.1
#endif /* GNUC >= 4.1 */

View File

@ -0,0 +1,45 @@
From 12bc9ad824bd8f18a5ec9c7154ad2374cf8c7ae3 Mon Sep 17 00:00:00 2001
From: Fabio Estevam <festevam@gmail.com>
Date: Wed, 19 Feb 2025 10:02:41 -0300
Subject: ubifs-utils: ubifs.h: Include <fcntl.h>
Include the <fcntl.h> header file to fix the following error
when building with musl:
| In file included from ../git/ubifs-utils/common/compr.c:42:
| ../git/ubifs-utils/libubifs/ubifs.h:313:9: error: unknown type name 'loff_t'; did you mean 'off_t'?
| 313 | loff_t ui_size;
| | ^~~~~~
| | off_t
| ../git/ubifs-utils/libubifs/ubifs.h:1341:9: error: unknown type name 'loff_t'; did you mean 'off_t'?
| 1341 | loff_t i_size;
| | ^~~~~~
| | off_t
| ../git/ubifs-utils/libubifs/ubifs.h:1342:9: error: unknown type name 'loff_t'; did you mean 'off_t'?
| 1342 | loff_t d_size;
| | ^~~~~~
| | off_t
| ../git/ubifs-utils/libubifs/ubifs.h:1899:44: error: unknown type name 'loff_t'; did you mean 'off_t'?
| 1899 | int deletion, loff_t new_size);
| | ^~~~~~
| | off_t
| make: *** [Makefile:4878: ubifs-utils/common/mkfs_ubifs-compr.o] Error 1
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Reviewed-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/libubifs/ubifs.h | 1 +
1 file changed, 1 insertion(+)
--- a/ubifs-utils/libubifs/ubifs.h
+++ b/ubifs-utils/libubifs/ubifs.h
@@ -11,6 +11,7 @@
#ifndef __UBIFS_H__
#define __UBIFS_H__
+#include <fcntl.h>
#include <string.h>
#include "linux_types.h"

View File

@ -0,0 +1,33 @@
From 173f9714c8da1d685bfa951d43b9310d16bbab3c Mon Sep 17 00:00:00 2001
From: Fabio Estevam <festevam@gmail.com>
Date: Wed, 19 Feb 2025 10:02:42 -0300
Subject: ubifs-utils: journal: Include <sys/stat.h>
Include the <sys/stat.h> header file to fix the following error
when building with musl:
| ../git/ubifs-utils/libubifs/journal.c: In function 'ubifs_get_dent_type':
| ../git/ubifs-utils/libubifs/journal.c:414:24: error: 'S_IFMT' undeclared (first use in this function)
| 414 | switch (mode & S_IFMT) {
| | ^~~~~~
| ../git/ubifs-utils/libubifs/journal.c:414:24: note: each undeclared identifier is reported only once for each function it appears in
| ../git/ubifs-utils/libubifs/journal.c:415:14: error: 'S_IFREG' undeclared (first use in this function)
| 415 | case S_IFREG:
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/libubifs/journal.c | 1 +
1 file changed, 1 insertion(+)
--- a/ubifs-utils/libubifs/journal.c
+++ b/ubifs-utils/libubifs/journal.c
@@ -46,6 +46,7 @@
* all the nodes.
*/
+#include <sys/stat.h>
#include "bitops.h"
#include "kmem.h"
#include "ubifs.h"

View File

@ -0,0 +1,33 @@
From 77981a2888c711268b0e7f32af6af159c2288e23 Mon Sep 17 00:00:00 2001
From: Fabio Estevam <festevam@gmail.com>
Date: Wed, 19 Feb 2025 10:02:44 -0300
Subject: ubifs-utils: extract_files: Include <linux/limits.h>
Include <linux/limits.h> to fix the following build error when building
with musl:
| ../git/ubifs-utils/fsck.ubifs/extract_files.c: In function 'parse_ino_node':
| ../git/ubifs-utils/fsck.ubifs/extract_files.c:144:47: error: 'XATTR_LIST_MAX' undeclared (first use in this function)
| 144 | if (ino_node->xnms + ino_node->xcnt > XATTR_LIST_MAX) {
| | ^~~~~~~~~~~~~~
| ../git/ubifs-utils/fsck.ubifs/extract_files.c:144:47: note: each undeclared identifier is reported only once for each function it appears in
| make: *** [Makefile:4374: ubifs-utils/fsck.ubifs/fsck_ubifs-extract_files.o] Error 1
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
ubifs-utils/fsck.ubifs/extract_files.c | 2 ++
1 file changed, 2 insertions(+)
--- a/ubifs-utils/fsck.ubifs/extract_files.c
+++ b/ubifs-utils/fsck.ubifs/extract_files.c
@@ -10,6 +10,8 @@
#include <getopt.h>
#include <sys/stat.h>
+#include <linux/limits.h>
+
#include "linux_err.h"
#include "bitops.h"
#include "kmem.h"

View File

@ -1,11 +0,0 @@
--- a/jffsX-utils/mkfs.jffs2.c
+++ b/jffsX-utils/mkfs.jffs2.c
@@ -428,7 +428,7 @@ static int interpret_table_entry(struct
if (sscanf (line, "%" SCANF_PREFIX "s %c %lo %lu %lu %lu %lu %lu %lu %lu",
SCANF_STRING(name), &type, &mode, &uid, &gid, &major, &minor,
- &start, &increment, &count) < 0)
+ &start, &increment, &count) < 10)
{
return 1;
}

View File

@ -48,12 +48,54 @@
/* The version of UBI images supported by this implementation */
#define UBI_VERSION 1
--- a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.h
+++ b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.h
@@ -32,7 +32,17 @@
#include <endian.h>
#include <byteswap.h>
#include <linux/types.h>
--- a/ubifs-utils/common/compiler_attributes.h
+++ b/ubifs-utils/common/compiler_attributes.h
@@ -1,6 +1,8 @@
#ifndef __COMPILER_ATTRIBUTES_H__
#define __COMPILER_ATTRIBUTES_H__
+#include <execinfo.h>
+
#if __has_attribute(__fallthrough__)
#define fallthrough __attribute__((__fallthrough__))
#else
@@ -11,6 +13,7 @@
#define __unused __attribute__((__unused__))
#define __const __attribute__((__const__))
#define __must_check __attribute__((__warn_unused_result__))
+#define __always_inline inline __attribute__((__always_inline__))
#ifndef __force
#define __force
#endif
--- a/ubifs-utils/common/linux_types.h
+++ b/ubifs-utils/common/linux_types.h
@@ -14,7 +14,11 @@ typedef __u16 u16;
typedef __u32 u32;
typedef __u64 u64;
+#ifdef __linux__
typedef __s64 time64_t;
+#else
+typedef int64_t time64_t;
+#endif
struct qstr {
const char *name;
@@ -89,4 +93,8 @@ static inline int int_log2(unsigned int
#undef PAGE_SHIFT
#define PAGE_SHIFT (int_log2(PAGE_SIZE))
+#ifndef EUCLEAN
+#define EUCLEAN 117 /* Structure needs cleaning */
+#endif
+
#endif
--- a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
+++ b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
@@ -29,7 +29,17 @@
#include <dirent.h>
#include <crc32.h>
#include <uuid.h>
+#ifdef __linux__
#include <linux/fs.h>
+# if defined(__x86_64__) && defined(__ILP32__)
@ -65,12 +107,10 @@
+# endif
+# define llseek lseek
+#endif
#include <getopt.h>
#include <sys/types.h>
--- a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
+++ b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
@@ -1568,6 +1568,7 @@ static int add_inode(struct stat *st, in
#include <sys/stat.h>
#include <sys/ioctl.h>
@@ -1459,6 +1469,7 @@ static int add_inode(struct stat *st, in
if (c->default_compr != UBIFS_COMPR_NONE)
use_flags |= UBIFS_COMPR_FL;
@ -78,33 +118,33 @@
if (flags & FS_COMPR_FL)
use_flags |= UBIFS_COMPR_FL;
if (flags & FS_SYNC_FL)
@@ -1580,6 +1581,7 @@ static int add_inode(struct stat *st, in
@@ -1471,6 +1482,7 @@ static int add_inode(struct stat *st, in
use_flags |= UBIFS_DIRSYNC_FL;
if (fctx)
use_flags |= UBIFS_CRYPT_FL;
+#endif
memset(ino, 0, UBIFS_INO_NODE_SZ);
ino_key_init(&key, inum);
@@ -1665,7 +1667,9 @@ static int add_dir_inode(const char *pat
ino_key_init(c, &key, inum);
@@ -1556,7 +1568,9 @@ static int add_dir_inode(const char *pat
fd = dirfd(dir);
if (fd == -1)
return sys_err_msg("dirfd failed");
return sys_errmsg("dirfd failed");
+#ifndef NO_NATIVE_SUPPORT
if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == -1)
+#endif
flags = 0;
}
@@ -1878,6 +1882,7 @@ static int add_file(const char *path_nam
@@ -1772,6 +1786,7 @@ static int add_file(const char *path_nam
dn->ch.node_type = UBIFS_DATA_NODE;
key_write(&key, &dn->key);
key_write(c, &key, &dn->key);
out_len = NODE_BUFFER_SIZE - UBIFS_DATA_NODE_SZ;
+#ifndef NO_NATIVE_SUPPORT
if (c->default_compr == UBIFS_COMPR_NONE &&
!c->encrypted && (flags & FS_COMPR_FL))
#ifdef WITH_LZO
@@ -1888,6 +1893,7 @@ static int add_file(const char *path_nam
@@ -1782,6 +1797,7 @@ static int add_file(const char *path_nam
use_compr = UBIFS_COMPR_NONE;
#endif
else
@ -112,39 +152,16 @@
use_compr = c->default_compr;
compr_type = compress_data(buf, bytes_read, &dn->data,
&out_len, use_compr);
@@ -1947,7 +1953,9 @@ static int add_non_dir(const char *path_
@@ -1841,7 +1857,9 @@ static int add_non_dir(const char *path_
if (fd == -1)
return sys_err_msg("failed to open file '%s'",
return sys_errmsg("failed to open file '%s'",
path_name);
+#ifndef NO_NATIVE_SUPPORT
if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == -1)
+#endif
flags = 0;
if (close(fd) == -1)
return sys_err_msg("failed to close file '%s'",
--- a/ubifs-utils/mkfs.ubifs/devtable.c
+++ b/ubifs-utils/mkfs.ubifs/devtable.c
@@ -135,6 +135,7 @@ static int interpret_table_entry(const c
unsigned int mode = 0755, uid = 0, gid = 0, major = 0, minor = 0;
unsigned int start = 0, increment = 0, count = 0;
+ buf[1023] = 0;
if (sscanf(line, "%1023s %c %o %u %u %u %u %u %u %u",
buf, &type, &mode, &uid, &gid, &major, &minor,
&start, &increment, &count) < 0)
@@ -145,10 +146,10 @@ static int interpret_table_entry(const c
buf, type, mode, uid, gid, major, minor, start,
increment, count);
- len = strnlen(buf, 1024);
+ len = strlen(buf);
if (len == 0)
return err_msg("empty path");
- if (len == 1024)
+ if (len == 1023)
return err_msg("too long path");
if (buf[0] != '/')
return sys_errmsg("failed to close file '%s'",
--- a/include/common.h
+++ b/include/common.h
@@ -26,7 +26,6 @@
@ -155,9 +172,9 @@
#include <inttypes.h>
#include <unistd.h>
#include <sys/sysmacros.h>
--- a/include/mtd/ubifs-media.h
+++ b/include/mtd/ubifs-media.h
@@ -33,7 +33,15 @@
--- a/ubifs-utils/libubifs/ubifs-media.h
+++ b/ubifs-utils/libubifs/ubifs-media.h
@@ -33,7 +33,11 @@
#ifndef __UBIFS_MEDIA_H__
#define __UBIFS_MEDIA_H__
@ -165,10 +182,6 @@
#include <asm/byteorder.h>
+#else
+#include <stdint.h>
+typedef uint8_t __u8;
+typedef uint16_t __be16;
+typedef uint32_t __be32;
+typedef uint64_t __be64;
+#endif
/* UBIFS node magic number (must not have the padding byte first or last) */

View File

@ -5055,7 +5055,7 @@
AC_ARG_WITH([selinux],
[AS_HELP_STRING([--with-selinux],
[Support for selinux extended attributes])],
@@ -269,6 +273,7 @@ fi
@@ -283,6 +287,7 @@ fi
AM_CONDITIONAL([WITH_LZO], [test "x$with_lzo" = "xyes"])
AM_CONDITIONAL([WITH_ZLIB], [test "x$with_zlib" = "xyes"])
AM_CONDITIONAL([WITH_ZSTD], [test "x$with_zstd" = "xyes"])
@ -5063,7 +5063,7 @@
AM_CONDITIONAL([WITH_XATTR], [test "x$with_xattr" = "xyes"])
AM_CONDITIONAL([WITH_SELINUX], [test "x$with_selinux" = "xyes"])
AM_CONDITIONAL([WITH_CRYPTO], [test "x$with_crypto" = "xyes"])
@@ -313,6 +318,7 @@ AC_MSG_RESULT([
@@ -339,6 +344,7 @@ AC_MSG_RESULT([
lzo support: ${with_lzo}
zlib support: ${with_zlib}
zstd support: ${with_zstd}

View File

@ -7,11 +7,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=util-linux
PKG_VERSION:=2.41.1
PKG_VERSION:=2.41.2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.41
PKG_HASH:=be9ad9a276f4305ab7dd2f5225c8be1ff54352f565ff4dede9628c1aaa7dec57
PKG_HASH:=6062a1d89b571a61932e6fc0211f36060c4183568b81ee866cf363bce9f6583e
PKG_CPE_ID:=cpe:/a:kernel:util-linux
include $(INCLUDE_DIR)/host-build.mk