Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2025-12-11 15:06:31 +08:00
commit 589e0d8d4f
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
16 changed files with 206 additions and 91 deletions

View File

@ -201,7 +201,7 @@ else
DOWNLOAD_DIRS = package/download
endif
download: .config FORCE $(if $(wildcard $(STAGING_DIR_HOST)/bin/flock),,tools/flock/compile)
download: .config FORCE $(if $(wildcard $(STAGING_DIR_HOST)/bin/flock),,tools/flock/compile) $(if $(wildcard $(STAGING_DIR_HOST)/bin/zstd),,tools/zstd/compile)
@+$(foreach dir,$(DOWNLOAD_DIRS),$(SUBMAKE) $(dir);)
clean dirclean: .config

View File

@ -0,0 +1,64 @@
From b63f79524e6f30e58692bc9ee57c6e6e0dd10de4 Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
Date: Wed, 10 Dec 2025 22:37:03 +0100
Subject: [PATCH] backports: move __counted_by to compiler_types.h header
Port f06e108a3dc5 ("Compiler Attributes: disable __counted_by for clang
< 19.1.3") changes to align with new kernel version that moved the
__counted_by to a new header file.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
.../linux/compiler_attributes.h | 15 ------------
.../backport-include/linux/compiler_types.h | 23 +++++++++++++++++++
2 files changed, 23 insertions(+), 15 deletions(-)
create mode 100644 backport-include/linux/compiler_types.h
--- a/backport-include/linux/compiler_attributes.h
+++ b/backport-include/linux/compiler_attributes.h
@@ -31,19 +31,4 @@
#endif
#endif /* fallthrough */
-#ifndef __counted_by
-/*
- * Optional: only supported since gcc >= 14
- * Optional: only supported since clang >= 17
- *
- * gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108896
- * clang: https://reviews.llvm.org/D148381
- */
-#if __has_attribute(__element_count__)
-# define __counted_by(member) __attribute__((__element_count__(#member)))
-#else
-# define __counted_by(member)
-#endif
-#endif
-
#endif /* _BACKPORTS_LINUX_COMPILER_ATTRIBUTES_H */
--- /dev/null
+++ b/backport-include/linux/compiler_types.h
@@ -0,0 +1,23 @@
+#ifndef _BACKPORTS_LINUX_COMPILER_TYPES_H
+#define _BACKPORTS_LINUX_COMPILER_TYPES_H 1
+
+#if LINUX_VERSION_IS_GEQ(6,12,1)
+#include_next <linux/compiler_types.h>
+#endif
+
+#ifndef __counted_by
+/*
+ * Optional: only supported since gcc >= 14
+ * Optional: only supported since clang >= 17
+ *
+ * gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108896
+ * clang: https://reviews.llvm.org/D148381
+ */
+#if __has_attribute(__element_count__)
+# define __counted_by(member) __attribute__((__element_count__(#member)))
+#else
+# define __counted_by(member)
+#endif
+#endif
+
+#endif /* _BACKPORTS_LINUX_COMPILER_TYPES_H */

View File

@ -6,12 +6,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libcap
PKG_VERSION:=2.69
PKG_VERSION:=2.77
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/libs/security/linux-privs/libcap2
PKG_HASH:=f311f8f3dad84699d0566d1d6f7ec943a9298b28f714cae3c931dfd57492d7eb
PKG_HASH:=897bc18b44afc26c70e78cead3dbb31e154acc24bee085a5a09079a88dbf6f52
PKG_MAINTAINER:=Paul Wassi <p.wassi@gmx.at>
PKG_LICENSE:=GPL-2.0-only

View File

@ -0,0 +1,27 @@
From 542d7d86ecd2129dd5fe7e5b31ba307304f5b319 Mon Sep 17 00:00:00 2001
From: "Andrew G. Morgan" <morgan@kernel.org>
Date: Mon, 10 Nov 2025 18:26:34 -0800
Subject: [PATCH] Revert "libcap: Add build ldflags to _makenames rule"
This reverts commit c3ddf45d9afaab85d3b7db0dc7bfd1aafb8fde50.
The details of what this broke are here:
https://bugzilla.kernel.org/show_bug.cgi?id=220691#c2
Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
---
libcap/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/libcap/Makefile
+++ b/libcap/Makefile
@@ -80,7 +80,7 @@ $(PSXTITLE).pc: $(PSXTITLE).pc.in
$< >$@
_makenames: _makenames.c cap_names.list.h
- $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@ $(BUILD_LDFLAGS)
+ $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@
cap_names.h: _makenames
./_makenames > cap_names.h

View File

@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=libnftnl
PKG_CPE_ID:=cpe:/a:netfilter:libnftnl
PKG_VERSION:=1.3.0
PKG_VERSION:=1.3.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files
PKG_HASH:=0f4be47a8bb8b77a350ee58cbd4b5fae6260ad486a527706ab15cfe1dd55a3c4
PKG_HASH:=607da28dba66fbdeccf8ef1395dded9077e8d19f2995f9a4d45a9c2f0bcffba8
PKG_MAINTAINER:=Steven Barth <steven@midlink.org>
PKG_LICENSE:=GPL-2.0-or-later

View File

@ -31,7 +31,7 @@ Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
NFTNL_EXPR_REDIR_FLAGS,
--- a/include/linux/netfilter/nf_tables.h
+++ b/include/linux/netfilter/nf_tables.h
@@ -1508,6 +1508,22 @@ enum nft_masq_attributes {
@@ -1510,6 +1510,22 @@ enum nft_masq_attributes {
#define NFTA_MASQ_MAX (__NFTA_MASQ_MAX - 1)
/**

View File

@ -6,12 +6,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libnl
PKG_VERSION:=3.11.0
PKG_VERSION:=3.12.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/thom311/libnl/releases/download/libnl$(subst .,_,$(PKG_VERSION))
PKG_HASH:=2a56e1edefa3e68a7c00879496736fdbf62fc94ed3232c0baba127ecfa76874d
PKG_HASH:=fc51ca7196f1a3f5fdf6ffd3864b50f4f9c02333be28be4eeca057e103c0dd18
PKG_LICENSE:=LGPL-2.1
PKG_LICENSE_FILES:=COPYING

View File

@ -12,9 +12,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcpd.git
PKG_MIRROR_HASH:=7d2a69c9f514c01c4e520034554fe7da9a9fe065b9bccb9f0c7063f657c5b9fb
PKG_SOURCE_DATE:=2025-12-04
PKG_SOURCE_VERSION:=79252ed0c0c26659a95729da0f2accaa0ddb458d
PKG_MIRROR_HASH:=cce1d4f3c88f4eec0cf8b19429f12e6fc2f47dca9b4d643a31569c1209f8fabc
PKG_SOURCE_DATE:=2025-12-10
PKG_SOURCE_VERSION:=ca00527e5fc3d8d2b8c1a60fbeb6a25e2bf68674
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
PKG_LICENSE:=GPL-2.0

View File

@ -1,13 +1,64 @@
#!/bin/sh
. /usr/share/libubox/jshn.sh
pio_file_check() {
local file valid
file=$1
valid=0
json_init
json_load_file $file 2> /dev/null
if json_is_a slaac array; then
local keys len
json_select slaac
json_get_keys keys
len=$(echo $keys | wc -w)
if [ $len -gt 0 ]; then
valid=1
fi
fi
echo $valid
}
pio_folder_migrate() {
local piodir piofolder
piofolder=$1
piodir=$2
[ -d $piofolder ] || return
[ -d $piodir ] || mkdir -p $piodir
for file in $piofolder/*; do
[ -e "$file" ] || continue
if [ $(pio_file_check $file) -eq 1 ]; then
mv $file $piodir/odhcpd.pio.$(basename $file)
fi
done
}
if [ -n "$(uci -q get dhcp.odhcpd)" ]; then
local commit
local hostsfile
local commit hostsfile piodir piofolder
commit=0
if [ -z "$(uci -q get dhcp.odhcpd.piofolder)" ]; then
uci set dhcp.odhcpd.piofolder=/tmp/odhcpd-piofolder
piodir=$(uci -q get dhcp.odhcpd.piodir)
if [ -z "$piodir" ]; then
piodir=/tmp/odhcpd-piodir
uci set dhcp.odhcpd.piodir=$piodir
commit=1
fi
piofolder=$(uci -q get dhcp.odhcpd.piofolder)
if [ -n "$piofolder" ]; then
pio_folder_migrate $piofolder $piodir
uci delete dhcp.odhcpd.piofolder
commit=1
fi
@ -78,7 +129,7 @@ set dhcp.odhcpd.maindhcp=$ODHCPDONLY
set dhcp.odhcpd.leasefile=/tmp/odhcpd.leases
set dhcp.odhcpd.leasetrigger=/usr/sbin/odhcpd-update
set dhcp.odhcpd.loglevel=4
set dhcp.odhcpd.piofolder=/tmp/odhcpd-piofolder
set dhcp.odhcpd.piodir=/tmp/odhcpd-piodir
set dhcp.odhcpd.hostsdir=/tmp/hosts
set dhcp.lan.dhcpv4=$V4MODE
set dhcp.lan.dhcpv6=disabled

View File

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

View File

@ -1,27 +0,0 @@
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

@ -7,7 +7,7 @@
-SUBDIRS=lib ip tc bridge misc netem genl man
+SUBDIRS=lib ip tc bridge misc genl
ifeq ($(HAVE_MNL),y)
-SUBDIRS += tipc devlink rdma dcb vdpa
-SUBDIRS += tipc devlink rdma dcb vdpa netshaper
+SUBDIRS += devlink rdma
endif

View File

@ -6,12 +6,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=nftables
PKG_VERSION:=1.1.5
PKG_VERSION:=1.1.6
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files
PKG_HASH:=1daf10f322e14fd90a017538aaf2c034d7cc1eb1cc418ded47445d714ea168d4
PKG_HASH:=372931bda8556b310636a2f9020adc710f9bab66f47efe0ce90bff800ac2530c
PKG_MAINTAINER:=
PKG_LICENSE:=GPL-2.0

View File

@ -7,9 +7,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=https://github.com/immortalwrt/keyring.git
PKG_SOURCE_DATE:=2024-11-11
PKG_SOURCE_VERSION:=f034bf5e9e6a28ad8fcfd82245d7812f561f79ef
PKG_MIRROR_HASH:=4d92c04801e6bf63bc9e76c377bf2a24ffd7e7493d886fc29ae408cf5e849be5
PKG_SOURCE_DATE:=2025-12-11
PKG_SOURCE_VERSION:=14e1f88b521f6466dfcc06b055646cfa25e8e02f
PKG_MIRROR_HASH:=1928719f41b4aa2709829618e54a1dbd1322cdccf6bc56213354bf9c50017995
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
PKG_LICENSE:=GPL-2.0

View File

@ -97,21 +97,21 @@ def image_dump(tn, dumpfile):
buf = tn.read_until("Returned 0",2)
i = buf.find("Platform:")
if i < 0:
platform="jungo"
else:
line=buf[i+9:]
i=line.find('\n')
platform=line[:i].split()[-1]
platform="jungo"
else:
line=buf[i+9:]
i=line.find('\n')
platform=line[:i].split()[-1]
tn.write("rg_conf_print /dev/%s/mac\n" % device);
buf = tn.read_until("Returned 0",3)
i = buf.find("mac(")
if i > 0:
i += 4
else:
print("No MAC address found! (use -f option)")
sys.exit(1)
i = buf.find("mac(")
if i > 0:
i += 4
else:
print("No MAC address found! (use -f option)")
sys.exit(1)
dumpfile = "%s-%s.bin" % (platform, buf[i:i+17].replace(':',''))
else:
tn.write("\n")
@ -121,31 +121,31 @@ def image_dump(tn, dumpfile):
t=flashsize/dumplen
for addr in range(t):
if verbose:
sys.stdout.write('\r%d%%'%(100*addr/t))
sys.stdout.flush()
if verbose:
sys.stdout.write('\r%d%%'%(100*addr/t))
sys.stdout.flush()
tn.write("flash_dump -r 0x%x -l %d -4\n" % (addr*dumplen, dumplen))
tn.read_until("\n")
tn.read_until("\n")
count = addr*dumplen
count = addr*dumplen
while 1:
buf = tn.read_until("\n")
if buf.strip() == "Returned 0":
break
s = buf.split()
if s and s[0][-1] == ':':
a=int(s[0][:-1],16)
if a != count:
print("Format error: %x != %x"%(a,count))
sys.exit(2)
count += 16
f.write(binascii.a2b_hex(string.join(s[1:],'')))
tn.read_until(">",1)
a=int(s[0][:-1],16)
if a != count:
print("Format error: %x != %x"%(a,count))
sys.exit(2)
count += 16
f.write(binascii.a2b_hex(string.join(s[1:],'')))
tn.read_until(">",1)
f.close()
if verbose:
print("")
print("")
def telnet_option(sock,cmd,option):
#print "Option: %d %d" % (ord(cmd), ord(option))
@ -175,27 +175,27 @@ except getopt.GetoptError:
for o, a in opts:
if o in ("-h", "--help"):
usage()
sys.exit(1)
usage()
sys.exit(1)
elif o in ("-V", "--version"):
print("%s: 0.11" % sys.argv[0])
sys.exit(1)
print("%s: 0.11" % sys.argv[0])
sys.exit(1)
elif o in ("-d", "--no-dump"):
do_dump = 1
do_dump = 1
elif o in ("-f", "--file"):
dumpfile = a
dumpfile = a
elif o in ("-u", "--user"):
user = a
user = a
elif o in ("-p", "--pass"):
password = a
password = a
elif o == "--port":
PORT = int(a)
PORT = int(a)
elif o in ("-q", "--quiet"):
verbose = 0
verbose = 0
elif o in ("-r", "--reboot"):
reboot = 1
reboot = 1
elif o in ("-v", "--verbose"):
verbose = 1
verbose = 1
# make sure we have enough arguments
if len(args) > 0:
@ -260,12 +260,12 @@ if imagefile or url:
start_server(server)
if verbose:
print("Unlocking flash...")
print("Unlocking flash...")
tn.write("unlock 0 0x%x\n" % flashsize)
buf = tn.read_until("Returned 0",5)
if verbose:
print("Writing new image...")
print("Writing new image...")
print(cmd, end=' ')
tn.write(cmd)
buf = tn.read_until("Returned 0",10)
@ -273,7 +273,7 @@ if imagefile or url:
# wait till the transfer completed
buf = tn.read_until("Download completed successfully",20)
if buf:
print("Flash update complete!")
print("Flash update complete!")
if reboot:
tn.write("reboot\n")
print("Rebooting...")

View File

@ -52,7 +52,7 @@ CONFIG_ARCH_MMAP_RND_BITS_MIN=12
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_STACKWALK=y
CONFIG_ARCH_STRICT_ALIGN=y
# CONFIG_ARCH_STRICT_ALIGN is not set
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANTS_NO_INSTR=y
CONFIG_ARCH_WANTS_THP_SWAP=y