Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
7fb31f2164
@ -40,8 +40,10 @@ IMG_PREFIX_VERCODE:=$(if $(CONFIG_VERSION_CODE_FILENAMES),$(call sanitize,$(VERS
|
|||||||
IMG_PREFIX:=$(VERSION_DIST_SANITIZED)-$(IMG_PREFIX_VERNUM)$(IMG_PREFIX_VERCODE)$(IMG_PREFIX_EXTRA)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
|
IMG_PREFIX:=$(VERSION_DIST_SANITIZED)-$(IMG_PREFIX_VERNUM)$(IMG_PREFIX_VERCODE)$(IMG_PREFIX_EXTRA)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
|
||||||
IMG_ROOTFS:=$(IMG_PREFIX)-rootfs
|
IMG_ROOTFS:=$(IMG_PREFIX)-rootfs
|
||||||
IMG_COMBINED:=$(IMG_PREFIX)-combined
|
IMG_COMBINED:=$(IMG_PREFIX)-combined
|
||||||
|
ifeq ($(DUMP),)
|
||||||
IMG_PART_SIGNATURE:=$(shell echo $(SOURCE_DATE_EPOCH)$(LINUX_VERMAGIC) | $(MKHASH) md5 | cut -b1-8)
|
IMG_PART_SIGNATURE:=$(shell echo $(SOURCE_DATE_EPOCH)$(LINUX_VERMAGIC) | $(MKHASH) md5 | cut -b1-8)
|
||||||
IMG_PART_DISKGUID:=$(shell echo $(SOURCE_DATE_EPOCH)$(LINUX_VERMAGIC) | $(MKHASH) md5 | sed -E 's/(.{8})(.{4})(.{4})(.{4})(.{10})../\1-\2-\3-\4-\500/')
|
IMG_PART_DISKGUID:=$(shell echo $(SOURCE_DATE_EPOCH)$(LINUX_VERMAGIC) | $(MKHASH) md5 | sed -E 's/(.{8})(.{4})(.{4})(.{4})(.{10})../\1-\2-\3-\4-\500/')
|
||||||
|
endif
|
||||||
|
|
||||||
MKFS_DEVTABLE_OPT := -D $(INCLUDE_DIR)/device_table.txt
|
MKFS_DEVTABLE_OPT := -D $(INCLUDE_DIR)/device_table.txt
|
||||||
|
|
||||||
@ -167,7 +169,9 @@ define Image/pad-to
|
|||||||
mv $(1).new $(1)
|
mv $(1).new $(1)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
ifeq ($(DUMP),)
|
||||||
ROOTFS_PARTSIZE=$(shell echo $$(($(CONFIG_TARGET_ROOTFS_PARTSIZE)*1024*1024)))
|
ROOTFS_PARTSIZE=$(shell echo $$(($(CONFIG_TARGET_ROOTFS_PARTSIZE)*1024*1024)))
|
||||||
|
endif
|
||||||
|
|
||||||
define Image/pad-root-squashfs
|
define Image/pad-root-squashfs
|
||||||
$(call Image/pad-to,$(KDIR)/root.squashfs,$(if $(1),$(1),$(ROOTFS_PARTSIZE)))
|
$(call Image/pad-to,$(KDIR)/root.squashfs,$(if $(1),$(1),$(ROOTFS_PARTSIZE)))
|
||||||
|
|||||||
@ -50,7 +50,8 @@ define PackageDir
|
|||||||
$$(call progress,Collecting $(SCAN_NAME) info: $(SCAN_DIR)/$(2)) \
|
$$(call progress,Collecting $(SCAN_NAME) info: $(SCAN_DIR)/$(2)) \
|
||||||
echo Source-Makefile: $(SCAN_DIR)/$(2)/Makefile; \
|
echo Source-Makefile: $(SCAN_DIR)/$(2)/Makefile; \
|
||||||
$(if $(3),echo Override: $(3),true); \
|
$(if $(3),echo Override: $(3),true); \
|
||||||
$(NO_TRACE_MAKE) --no-print-dir -r DUMP=1 FEED="$(call feedname,$(2))" -C $(SCAN_DIR)/$(2) $(SCAN_MAKEOPTS) 2>/dev/null || { \
|
$(if $(findstring c,$(OPENWRT_VERBOSE)),$(MAKE),$(NO_TRACE_MAKE) --no-print-dir) -r DUMP=1 FEED="$(call feedname,$(2))" -C $(SCAN_DIR)/$(2) $(SCAN_MAKEOPTS) \
|
||||||
|
$(if $(findstring c,$(OPENWRT_VERBOSE)),,2>/dev/null) || { \
|
||||||
mkdir -p "$(TOPDIR)/logs/$(SCAN_DIR)/$(2)"; \
|
mkdir -p "$(TOPDIR)/logs/$(SCAN_DIR)/$(2)"; \
|
||||||
$(NO_TRACE_MAKE) --no-print-dir -r DUMP=1 FEED="$(call feedname,$(2))" -C $(SCAN_DIR)/$(2) $(SCAN_MAKEOPTS) > $(TOPDIR)/logs/$(SCAN_DIR)/$(2)/dump.txt 2>&1; \
|
$(NO_TRACE_MAKE) --no-print-dir -r DUMP=1 FEED="$(call feedname,$(2))" -C $(SCAN_DIR)/$(2) $(SCAN_MAKEOPTS) > $(TOPDIR)/logs/$(SCAN_DIR)/$(2)/dump.txt 2>&1; \
|
||||||
$$(call progress,ERROR: please fix $(SCAN_DIR)/$(2)/Makefile - see logs/$(SCAN_DIR)/$(2)/dump.txt for details\n) \
|
$$(call progress,ERROR: please fix $(SCAN_DIR)/$(2)/Makefile - see logs/$(SCAN_DIR)/$(2)/dump.txt for details\n) \
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=netifd
|
PKG_NAME:=netifd
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1.1
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
|
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
|
||||||
|
|||||||
@ -0,0 +1,32 @@
|
|||||||
|
From 8587c074f1eb2064c42adb0a6aa5073f695ab89d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jo-Philipp Wich <jo@mein.io>
|
||||||
|
Date: Tue, 14 Nov 2023 14:01:44 +0100
|
||||||
|
Subject: [PATCH] interface-ip: fix IPv4 route target masking
|
||||||
|
|
||||||
|
A previous commit supposed to mask out excess host bits in route targets
|
||||||
|
failed to correctly calculate the mask value, causing it to produce
|
||||||
|
improper results for certain mask lengths.
|
||||||
|
|
||||||
|
Fixes: #17
|
||||||
|
Fixes: 76eb342 ("interface-ip: mask out host bits in IPv4 route targets")
|
||||||
|
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
||||||
|
---
|
||||||
|
interface-ip.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/interface-ip.c b/interface-ip.c
|
||||||
|
index d2fe385..28e7106 100644
|
||||||
|
--- a/interface-ip.c
|
||||||
|
+++ b/interface-ip.c
|
||||||
|
@@ -448,7 +448,7 @@ interface_ip_add_route(struct interface *iface, struct blob_attr *attr, bool v6)
|
||||||
|
|
||||||
|
/* Mask out IPv4 host bits to avoid "Invalid prefix for given prefix length" */
|
||||||
|
if (af == AF_INET && route->mask < 32)
|
||||||
|
- route->addr.in.s_addr &= ((1u << route->mask) - 1);
|
||||||
|
+ clear_if_addr(&route->addr, route->mask);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((cur = tb[ROUTE_GATEWAY]) != NULL) {
|
||||||
|
--
|
||||||
|
2.39.1
|
||||||
|
|
||||||
@ -4,7 +4,7 @@ use strict;
|
|||||||
use warnings;
|
use warnings;
|
||||||
use Cwd;
|
use Cwd;
|
||||||
|
|
||||||
my (%targets, %architectures, %kernels);
|
my (%targets, %architectures, %kernels, %devices);
|
||||||
|
|
||||||
$ENV{'TOPDIR'} = Cwd::getcwd();
|
$ENV{'TOPDIR'} = Cwd::getcwd();
|
||||||
|
|
||||||
@ -56,6 +56,68 @@ sub parse_targetinfo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub parse_devices {
|
||||||
|
my ($target_dir, $subtarget) = @_;
|
||||||
|
|
||||||
|
if (open M, "make -C '$target_dir' --no-print-directory DUMP=1 TARGET_BUILD=1 SUBTARGET='$subtarget' V=s |") {
|
||||||
|
my ($device_profile, $device_name, @device_alt_names, $device_is_alt);
|
||||||
|
while (defined(my $line = readline M)) {
|
||||||
|
chomp $line;
|
||||||
|
|
||||||
|
if ($line =~ /^Target-Profile-Name: (.+)$/) {
|
||||||
|
$device_name = $1;
|
||||||
|
}
|
||||||
|
elsif ($line =~ /^Target-Profile: DEVICE_(.+)$/) {
|
||||||
|
$device_profile = $1;
|
||||||
|
}
|
||||||
|
# Logic behind this.
|
||||||
|
# DUMP duplicate info for each alternative device name and
|
||||||
|
# the alternative device name are printed first before the
|
||||||
|
# primary device name
|
||||||
|
# Alternative device titles always have the full list of
|
||||||
|
# all the alternative device name.
|
||||||
|
# The device name pattern for an alternative device name is
|
||||||
|
# Target-Profile-Name: ALT_NAME (PRIMARY_NAME)
|
||||||
|
# We compare the detected device name and check if it does
|
||||||
|
# match the alternative device name pattern with one of
|
||||||
|
# the alternative device name in Alternative device titles:
|
||||||
|
# If an alternative device name is detected,
|
||||||
|
# alternative device is skipped.
|
||||||
|
elsif ($line =~ /^Alternative device titles:$/) {
|
||||||
|
while (defined($line = readline M)) {
|
||||||
|
if ($line =~ /^- (.+)$/) {
|
||||||
|
if ($device_name =~ /^\Q$1\E \((.+)\)$/) {
|
||||||
|
$device_is_alt = 1;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
push @device_alt_names, $1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($line =~ /^@\@$/) {
|
||||||
|
if ($device_name && $device_profile && ! $device_is_alt) {
|
||||||
|
push @{$devices{$device_profile}}, $device_name;
|
||||||
|
|
||||||
|
if (scalar @device_alt_names) {
|
||||||
|
foreach my $device_alt_name (sort values @device_alt_names) {
|
||||||
|
push @{$devices{$device_profile}}, $device_alt_name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
undef $device_name;
|
||||||
|
undef $device_profile;
|
||||||
|
undef $device_is_alt;
|
||||||
|
@device_alt_names = ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close M;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub get_targetinfo {
|
sub get_targetinfo {
|
||||||
foreach my $target_makefile (glob "target/linux/*/Makefile") {
|
foreach my $target_makefile (glob "target/linux/*/Makefile") {
|
||||||
my ($target_dir) = $target_makefile =~ m!^(.+)/Makefile$!;
|
my ($target_dir) = $target_makefile =~ m!^(.+)/Makefile$!;
|
||||||
@ -86,6 +148,15 @@ sub get_targetinfo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub get_devices {
|
||||||
|
my ($target_subtarget) = @_;
|
||||||
|
my ($target, $subtarget) = split /\//, $target_subtarget;
|
||||||
|
|
||||||
|
my ($target_dir) = "target/linux/" . $target;
|
||||||
|
|
||||||
|
parse_devices($target_dir, $subtarget)
|
||||||
|
}
|
||||||
|
|
||||||
if (@ARGV == 1 && $ARGV[0] eq 'targets') {
|
if (@ARGV == 1 && $ARGV[0] eq 'targets') {
|
||||||
get_targetinfo();
|
get_targetinfo();
|
||||||
foreach my $target_name (sort keys %targets) {
|
foreach my $target_name (sort keys %targets) {
|
||||||
@ -104,8 +175,15 @@ elsif (@ARGV == 1 && $ARGV[0] eq 'kernels') {
|
|||||||
printf "%s %s\n", $target_name, join ' ', @{$kernels{$target_name}};
|
printf "%s %s\n", $target_name, join ' ', @{$kernels{$target_name}};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
elsif (@ARGV == 2 && $ARGV[0] eq 'devices') {
|
||||||
|
get_devices($ARGV[1]);
|
||||||
|
foreach my $device (sort keys %devices) {
|
||||||
|
printf "%s \"%s\"\n", $device, join '" "', @{$devices{$device}};
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
print "Usage: $0 targets\n";
|
print "Usage: $0 targets\n";
|
||||||
print "Usage: $0 architectures\n";
|
print "Usage: $0 architectures\n";
|
||||||
print "Usage: $0 kernels\n";
|
print "Usage: $0 kernels\n";
|
||||||
|
print "Usage: $0 devices <target/subtarget>\n";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,8 +8,11 @@ include $(INCLUDE_DIR)/image.mk
|
|||||||
LS_SD_KERNELPART_SIZE = 40
|
LS_SD_KERNELPART_SIZE = 40
|
||||||
LS_SD_KERNELPART_OFFSET = 16
|
LS_SD_KERNELPART_OFFSET = 16
|
||||||
LS_SD_ROOTFSPART_OFFSET = 64
|
LS_SD_ROOTFSPART_OFFSET = 64
|
||||||
|
|
||||||
|
ifeq ($(DUMP),)
|
||||||
LS_SD_IMAGE_SIZE = $(shell echo $$((($(LS_SD_ROOTFSPART_OFFSET) + \
|
LS_SD_IMAGE_SIZE = $(shell echo $$((($(LS_SD_ROOTFSPART_OFFSET) + \
|
||||||
$(CONFIG_TARGET_ROOTFS_PARTSIZE)))))
|
$(CONFIG_TARGET_ROOTFS_PARTSIZE)))))
|
||||||
|
endif
|
||||||
|
|
||||||
# The limitation of flash sysupgrade.bin is 1MB dtb + 16MB kernel + 32MB rootfs
|
# The limitation of flash sysupgrade.bin is 1MB dtb + 16MB kernel + 32MB rootfs
|
||||||
LS_SYSUPGRADE_IMAGE_SIZE = 49m
|
LS_SYSUPGRADE_IMAGE_SIZE = 49m
|
||||||
|
|||||||
@ -198,7 +198,9 @@ define Device/bananapi_bpi-r3
|
|||||||
pad-to 64M | append-image squashfs-sysupgrade.itb | check-size |\
|
pad-to 64M | append-image squashfs-sysupgrade.itb | check-size |\
|
||||||
) \
|
) \
|
||||||
gzip
|
gzip
|
||||||
|
ifeq ($(DUMP),)
|
||||||
IMAGE_SIZE := $$(shell expr 64 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
|
IMAGE_SIZE := $$(shell expr 64 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
|
||||||
|
endif
|
||||||
KERNEL := kernel-bin | gzip
|
KERNEL := kernel-bin | gzip
|
||||||
KERNEL_INITRAMFS := kernel-bin | lzma | \
|
KERNEL_INITRAMFS := kernel-bin | lzma | \
|
||||||
fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
|
fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
|
||||||
|
|||||||
@ -94,7 +94,9 @@ define Device/bananapi_bpi-r64
|
|||||||
pad-to 46080k | append-image squashfs-sysupgrade.itb | check-size |\
|
pad-to 46080k | append-image squashfs-sysupgrade.itb | check-size |\
|
||||||
) \
|
) \
|
||||||
gzip
|
gzip
|
||||||
|
ifeq ($(DUMP),)
|
||||||
IMAGE_SIZE := $$(shell expr 45 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
|
IMAGE_SIZE := $$(shell expr 45 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
|
||||||
|
endif
|
||||||
KERNEL := kernel-bin | gzip
|
KERNEL := kernel-bin | gzip
|
||||||
KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb with-initrd | pad-to 128k
|
KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb with-initrd | pad-to 128k
|
||||||
IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb external-static-with-rootfs | append-metadata
|
IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb external-static-with-rootfs | append-metadata
|
||||||
|
|||||||
@ -96,7 +96,9 @@ define Device/bananapi_bpi-r2
|
|||||||
KERNEL := kernel-bin | gzip
|
KERNEL := kernel-bin | gzip
|
||||||
KERNEL_INITRAMFS_SUFFIX := -recovery.itb
|
KERNEL_INITRAMFS_SUFFIX := -recovery.itb
|
||||||
KERNEL_INITRAMFS := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb with-initrd
|
KERNEL_INITRAMFS := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb with-initrd
|
||||||
|
ifeq ($(DUMP),)
|
||||||
IMAGE_SIZE := $$(shell expr 48 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
|
IMAGE_SIZE := $$(shell expr 48 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
|
||||||
|
endif
|
||||||
IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb external-static-with-rootfs | append-metadata
|
IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb external-static-with-rootfs | append-metadata
|
||||||
ARTIFACT/preloader.bin := mt7623-mbr emmc |\
|
ARTIFACT/preloader.bin := mt7623-mbr emmc |\
|
||||||
pad-to 2k | append-preloader $$(UBOOT_TARGET)
|
pad-to 2k | append-preloader $$(UBOOT_TARGET)
|
||||||
@ -130,7 +132,9 @@ define Device/unielec_u7623-02
|
|||||||
UBOOT_TARGET := mt7623a_unielec_u7623
|
UBOOT_TARGET := mt7623a_unielec_u7623
|
||||||
UBOOT_IMAGE := u-boot-mtk.bin
|
UBOOT_IMAGE := u-boot-mtk.bin
|
||||||
UBOOT_PATH := $(STAGING_DIR_IMAGE)/$$(UBOOT_TARGET)-$$(UBOOT_IMAGE)
|
UBOOT_PATH := $(STAGING_DIR_IMAGE)/$$(UBOOT_TARGET)-$$(UBOOT_IMAGE)
|
||||||
|
ifeq ($(DUMP),)
|
||||||
IMAGE_SIZE := $$(shell expr 48 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
|
IMAGE_SIZE := $$(shell expr 48 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
|
||||||
|
endif
|
||||||
IMAGES := sysupgrade.itb
|
IMAGES := sysupgrade.itb
|
||||||
KERNEL := kernel-bin | gzip
|
KERNEL := kernel-bin | gzip
|
||||||
KERNEL_INITRAMFS_SUFFIX := -recovery.itb
|
KERNEL_INITRAMFS_SUFFIX := -recovery.itb
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user