From b993a00b82b1bdd682199e44eb81a70dee78e5c9 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 17 Jul 2023 14:32:21 +0200 Subject: [PATCH 01/10] base-files: fix duplicate wifi radio sections when using phy renaming The duplicate sections are caused by a race condition at boot, when board.json is not available. In that case, the final phy name cannot be resolved, and extra sections referring to the path are created. Fix this by making sure that wifi config is not being run before board.json is created. Signed-off-by: Felix Fietkau --- package/base-files/files/etc/init.d/boot | 3 +++ package/base-files/files/sbin/wifi | 1 + 2 files changed, 4 insertions(+) diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot index 749d9e9711..d17754d087 100755 --- a/package/base-files/files/etc/init.d/boot +++ b/package/base-files/files/etc/init.d/boot @@ -39,6 +39,7 @@ boot() { grep -q pstore /proc/filesystems && /bin/mount -o noatime -t pstore pstore /sys/fs/pstore [ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe + touch /tmp/.config_pending /sbin/kmodloader [ ! -f /etc/config/wireless ] && { @@ -47,6 +48,8 @@ boot() { } /bin/config_generate + rm -f /tmp/.config_pending + /sbin/wifi config uci_apply_defaults sync diff --git a/package/base-files/files/sbin/wifi b/package/base-files/files/sbin/wifi index a3d3206ee7..5231063a2b 100755 --- a/package/base-files/files/sbin/wifi +++ b/package/base-files/files/sbin/wifi @@ -175,6 +175,7 @@ wifi_detect_notice() { } wifi_config() { + [ -e /tmp/.config_pending ] && return [ ! -f /etc/config/wireless ] && touch /etc/config/wireless for driver in $DRIVERS; do ( From be7f9ad4ddb6a4cd22b128f8e8d424f445e299a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Tue, 18 Jul 2023 11:26:37 +0200 Subject: [PATCH 02/10] ramips: fix Ubiquiti EdgeRouter X's MAC address for gmac1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes: [ 0.586649] OF: /ethernet@1e100000/mac@1: #nvmem-cell-cells = 1 found 0 Fixes: 28b6224104cc ("ramips: use fixed layout cell "mac-base" for Ubiquiti EdgeRouter X") Signed-off-by: Rafał Miłecki --- target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts index 2b5993db44..4665f04f02 100644 --- a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts +++ b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts @@ -10,7 +10,7 @@ label = "eth0"; phy-handle = <ðphy0>; - nvmem-cells = <&macaddr_factory_22>; + nvmem-cells = <&macaddr_factory_22 0>; nvmem-cell-names = "mac-address"; }; From e57a752217113d066cdea2073f35e8c7c1fafaa6 Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Wed, 12 Jul 2023 23:38:51 +0200 Subject: [PATCH 03/10] libnftnl: update to 1.2.6 Release Notes: https://lists.netfilter.org/pipermail/netfilter-announce/2023/000250.html Signed-off-by: Nick Hainke --- package/libs/libnftnl/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/libs/libnftnl/Makefile b/package/libs/libnftnl/Makefile index 05437d020b..b512d4d58f 100644 --- a/package/libs/libnftnl/Makefile +++ b/package/libs/libnftnl/Makefile @@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libnftnl PKG_CPE_ID:=cpe:/a:netfilter:libnftnl -PKG_VERSION:=1.2.5 -PKG_RELEASE:=2 +PKG_VERSION:=1.2.6 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files -PKG_HASH:=966de0a8120c8a53db859889749368bfb2cba0c4f0b4c1a30d264eccc45f1226 +PKG_HASH:=ceeaea2cd92147da19f13a35a7f1a4bc2767ff897e838e4b479cf54b59c777f4 PKG_MAINTAINER:=Steven Barth PKG_LICENSE:=GPL-2.0-or-later From 58c498247b3d06c0ff1967d2f48ba84084a6cf25 Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Fri, 14 Jul 2023 15:26:06 +0200 Subject: [PATCH 04/10] nftables: update to 1.0.8 ChangeLog: https://www.netfilter.org/projects/nftables/files/changes-nftables-1.0.8.txt Signed-off-by: Nick Hainke --- package/network/utils/nftables/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/network/utils/nftables/Makefile b/package/network/utils/nftables/Makefile index 55a6a4bcf6..3078f5605f 100644 --- a/package/network/utils/nftables/Makefile +++ b/package/network/utils/nftables/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nftables -PKG_VERSION:=1.0.7 +PKG_VERSION:=1.0.8 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files -PKG_HASH:=c12ac941fff9adaedf17367d5ce213789b98a0d314277bc22b3d71e10891f412 +PKG_HASH:=9373740de41a82dbc98818e0a46a073faeb8a8d0689fa4fa1a74399c32bf3d50 PKG_MAINTAINER:= PKG_LICENSE:=GPL-2.0 From 1d5e7b85ccc58f3d010a54e82ccea81fc102262b Mon Sep 17 00:00:00 2001 From: Tony Ambardar Date: Sun, 16 Jul 2023 18:22:59 -0700 Subject: [PATCH 05/10] libbpf: Update to v1.2.2 Update to the latest upstream release to include recent bugfixes: Link: https://github.com/libbpf/libbpf/compare/v1.2.0...v1.2.2 Signed-off-by: Tony Ambardar --- package/libs/libbpf/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/libs/libbpf/Makefile b/package/libs/libbpf/Makefile index ee7666f734..316a566274 100644 --- a/package/libs/libbpf/Makefile +++ b/package/libs/libbpf/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libbpf -PKG_VERSION:=1.2.0 +PKG_VERSION:=1.2.2 PKG_RELEASE:=1 PKG_SOURCE_URL:=https://github.com/libbpf/libbpf +PKG_MIRROR_HASH:=d20f5a226e5729c87c367f3fba61c44d5e13176ef12637d0e0b30629fa3ab0d6 PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=fbd60dbff51c870f5e80a17c4f2fd639eb80af90 -PKG_MIRROR_HASH:=80a80dfba71576e017b596fb28068e2a92de629e426f063e4b37314c8d576336 +PKG_SOURCE_VERSION:=1728e3e4bef0e138ea95ffe62163eb9a6ac6fa32 PKG_ABI_VERSION:=$(firstword $(subst .,$(space),$(PKG_VERSION))) PKG_MAINTAINER:=Tony Ambardar From 9e86a96af5ecea6e73fa463d6cfa4408e2b49d35 Mon Sep 17 00:00:00 2001 From: Felix Baumann Date: Tue, 4 Jul 2023 01:35:43 +0200 Subject: [PATCH 06/10] ath79: move ubnt-xm 64M RAM boards back to generic return ubnt_rocket-m and ubnt_powerbridge-m back to ath79-generic They have enough RAM-ressources to not be considered as tiny. This reverts the commit f4415f7635164ec07ddc22f56df93555804b5767 partially Signed-off-by: Felix Baumann --- .../generic/base-files/etc/board.d/01_leds | 4 +++- .../generic/base-files/etc/board.d/02_network | 4 ++++ .../etc/hotplug.d/firmware/10-ath9k-eeprom | 4 ++++ target/linux/ath79/image/generic-ubnt.mk | 18 ++++++++++++++++++ target/linux/ath79/image/tiny-ubnt.mk | 18 ------------------ .../ath79/tiny/base-files/etc/board.d/01_leds | 4 +--- .../tiny/base-files/etc/board.d/02_network | 8 ++------ .../etc/hotplug.d/firmware/10-ath9k-eeprom | 4 +--- 8 files changed, 33 insertions(+), 31 deletions(-) diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds index 00bcad2bc5..4ee347c141 100644 --- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds @@ -497,7 +497,9 @@ ubnt,bullet-m-xw|\ ubnt,nanostation-loco-m-xw|\ ubnt,nanostation-m-xw|\ ubnt,powerbeam-m2-xw|\ -ubnt,powerbeam-m5-xw) +ubnt,powerbeam-m5-xw|\ +ubnt,powerbridge-m|\ +ubnt,rocket-m) ucidef_set_rssimon "wlan0" "200000" "1" ucidef_set_led_rssi "rssilow" "RSSILOW" "red:link1" "wlan0" "1" "100" ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "orange:link2" "wlan0" "26" "100" diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network index ddcb69f68c..1b19d90a05 100644 --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network @@ -111,7 +111,9 @@ ath79_setup_interfaces() ubnt,powerbeam-5ac-gen2|\ ubnt,powerbeam-m2-xw|\ ubnt,powerbeam-m5-xw|\ + ubnt,powerbridge-m|\ ubnt,rocket-5ac-lite|\ + ubnt,rocket-m|\ ubnt,unifiac-lite|\ ubnt,unifiac-lr|\ ubnt,unifiac-mesh|\ @@ -804,6 +806,8 @@ ath79_setup_macs() wan_mac=$(mtd_get_mac_text mac 0x18) label_mac=$wan_mac ;; + ubnt,powerbridge-m|\ + ubnt,rocket-m|\ ubnt,unifi) label_mac=$(cat /sys/class/ieee80211/phy0/macaddress) ;; diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index 3b089885b3..e5f4870e6f 100644 --- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -113,6 +113,10 @@ case "$FIRMWARE" in tplink,tl-wr842n-v1) caldata_extract "art" 0x1000 0x3e0 ;; + ubnt,powerbridge-m|\ + ubnt,rocket-m) + caldata_extract "art" 0x1000 0x1000 + ;; wd,mynet-n600|\ wd,mynet-n750) caldata_extract "art" 0x5000 0x440 diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk index 0f70649d03..fa4daa3aaa 100644 --- a/target/linux/ath79/image/generic-ubnt.mk +++ b/target/linux/ath79/image/generic-ubnt.mk @@ -158,6 +158,15 @@ define Device/ubnt_powerbeam-m5-xw endef TARGET_DEVICES += ubnt_powerbeam-m5-xw +define Device/ubnt_powerbridge-m + $(Device/ubnt-xm) + SOC := ar7241 + DEVICE_MODEL := PowerBridge M + DEVICE_PACKAGES += rssileds + SUPPORTED_DEVICES += bullet-m +endef +TARGET_DEVICES += ubnt_powerbridge-m + define Device/ubnt_rocket-5ac-lite $(Device/ubnt-xc) SOC := qca9558 @@ -167,6 +176,15 @@ define Device/ubnt_rocket-5ac-lite endef TARGET_DEVICES += ubnt_rocket-5ac-lite +define Device/ubnt_rocket-m + $(Device/ubnt-xm) + SOC := ar7241 + DEVICE_MODEL := Rocket M + DEVICE_PACKAGES += rssileds + SUPPORTED_DEVICES += rocket-m +endef +TARGET_DEVICES += ubnt_rocket-m + define Device/ubnt_routerstation_common DEVICE_PACKAGES := -kmod-ath9k -wpad-basic-mbedtls -uboot-envtools kmod-usb-ohci \ kmod-usb2 fconfig diff --git a/target/linux/ath79/image/tiny-ubnt.mk b/target/linux/ath79/image/tiny-ubnt.mk index 0733371441..77940ed875 100644 --- a/target/linux/ath79/image/tiny-ubnt.mk +++ b/target/linux/ath79/image/tiny-ubnt.mk @@ -70,21 +70,3 @@ define Device/ubnt_nanostation-loco-m DEFAULT := n endef TARGET_DEVICES += ubnt_nanostation-loco-m - -define Device/ubnt_powerbridge-m - $(Device/ubnt-xm) - SOC := ar7241 - DEVICE_MODEL := PowerBridge M - DEVICE_PACKAGES += rssileds - SUPPORTED_DEVICES += bullet-m -endef -TARGET_DEVICES += ubnt_powerbridge-m - -define Device/ubnt_rocket-m - $(Device/ubnt-xm) - SOC := ar7241 - DEVICE_MODEL := Rocket M - DEVICE_PACKAGES += rssileds - SUPPORTED_DEVICES += rocket-m -endef -TARGET_DEVICES += ubnt_rocket-m diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds index 92c4499580..07e48ec49f 100644 --- a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds @@ -116,9 +116,7 @@ ubnt,bullet-m-ar7241|\ ubnt,nanobridge-m|\ ubnt,nanostation-loco-m|\ ubnt,nanostation-m|\ -ubnt,picostation-m|\ -ubnt,powerbridge-m|\ -ubnt,rocket-m) +ubnt,picostation-m) ucidef_set_rssimon "wlan0" "200000" "1" ucidef_set_led_rssi "rssilow" "RSSILOW" "red:link1" "wlan0" "1" "100" ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "orange:link2" "wlan0" "26" "100" diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/02_network b/target/linux/ath79/tiny/base-files/etc/board.d/02_network index 4f6e2918a4..836d119867 100644 --- a/target/linux/ath79/tiny/base-files/etc/board.d/02_network +++ b/target/linux/ath79/tiny/base-files/etc/board.d/02_network @@ -54,9 +54,7 @@ ath79_setup_interfaces() ubnt,bullet-m-ar7241|\ ubnt,nanobridge-m|\ ubnt,picostation-m|\ - ubnt,nanostation-loco-m|\ - ubnt,powerbridge-m|\ - ubnt,rocket-m) + ubnt,nanostation-loco-m) ucidef_set_interface_lan "eth0" ;; engenius,enh202-v1) @@ -135,9 +133,7 @@ ath79_setup_macs() ubnt,nanobridge-m|\ ubnt,nanostation-loco-m|\ ubnt,nanostation-m|\ - ubnt,picostation-m|\ - ubnt,powerbridge-m|\ - ubnt,rocket-m) + ubnt,picostation-m) label_mac=$(cat /sys/class/ieee80211/phy0/macaddress) ;; tplink,tl-wr941-v2|\ diff --git a/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index 792c503ab7..d424b9fe2c 100644 --- a/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -43,9 +43,7 @@ case "$FIRMWARE" in ubnt,nanobridge-m|\ ubnt,nanostation-loco-m|\ ubnt,nanostation-m|\ - ubnt,picostation-m|\ - ubnt,powerbridge-m|\ - ubnt,rocket-m) + ubnt,picostation-m) caldata_extract "art" 0x1000 0x1000 ;; pqi,air-pen) From fabd8915698d9fb21aa80100a51e097505b61225 Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Wed, 19 Jul 2023 08:33:32 +0200 Subject: [PATCH 07/10] nettle: update to 3.9.1 Announcement: https://lists.gnu.org/archive/html/info-gnu/2023-06/msg00000.html Signed-off-by: Nick Hainke --- package/libs/nettle/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/libs/nettle/Makefile b/package/libs/nettle/Makefile index 36410920b9..e8dcb8ba91 100644 --- a/package/libs/nettle/Makefile +++ b/package/libs/nettle/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nettle -PKG_VERSION:=3.9 +PKG_VERSION:=3.9.1 PKG_RELEASE:=1 PKG_BUILD_FLAGS:=no-mips16 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/nettle -PKG_HASH:=0ee7adf5a7201610bb7fe0acbb7c9b3be83be44904dd35ebbcd965cd896bfeaa +PKG_HASH:=ccfeff981b0ca71bbd6fbcb054f407c60ffb644389a5be80d6716d5b550c6ce3 PKG_LICENSE:=GPL-2.0-or-later PKG_LICENSE_FILES:=COPYING From 2ef79b536b82c099ec46e0fbe89b4ffc87343118 Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Wed, 19 Jul 2023 09:08:06 +0200 Subject: [PATCH 08/10] ethtool: update to 6.4 ChangeLog: 125b080 Release version 6.4. 5660918 update UAPI header copies f493e63 netlink: fix duplex setting b3e341c cmis: report LOL / LOS / Tx Fault 045d8db sff-8636: report LOL / LOS / Tx Fault a6505f3 drop checks for macros provided in UAPI header copies 86c0c41 do not check for strtol() function dd8e3ae actually check for C11 compiler 43e4d30 add local copies of macros from autoconf-archive faa4700 drop check for big endian types 31b7b5e Require a compiler with support for C11 features 946d18b update UAPI header copies eebf01f ethtool: Add support for configuring tx-push-buf-len 2782ea8 update UAPI header copies Signed-off-by: Nick Hainke --- package/network/utils/ethtool/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/network/utils/ethtool/Makefile b/package/network/utils/ethtool/Makefile index 10fecd4a9c..024fdf1e63 100644 --- a/package/network/utils/ethtool/Makefile +++ b/package/network/utils/ethtool/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ethtool -PKG_VERSION:=6.3 +PKG_VERSION:=6.4 PKG_RELEASE:=1 PKG_MAINTAINER:=Felix Fietkau PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/software/network/ethtool -PKG_HASH:=d9425f0a3df138734001fccc4175fe178c025f938460ac25c4ebc39960168822 +PKG_HASH:=5eaa083e8108e1dd3876b2c803a1942a2763942715b7f6eb916e189adbb44972 PKG_LICENSE:=GPL-2.0 PKG_LICENSE_FILES:=COPYING From cd82fc2235d4a11fc33e5b590d8f3bc6a7b13b78 Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Wed, 19 Jul 2023 09:22:48 +0200 Subject: [PATCH 09/10] iproute2: update 6.4 Release Notes: https://lore.kernel.org/lkml/20230626093137.2f302acc@hermes.local/t/ Signed-off-by: Nick Hainke --- package/network/utils/iproute2/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile index 101ca67324..194edcb35a 100644 --- a/package/network/utils/iproute2/Makefile +++ b/package/network/utils/iproute2/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iproute2 -PKG_VERSION:=6.3.0 +PKG_VERSION:=6.4.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2 -PKG_HASH:=dfb2a98db96e7a653cffc6693335a1a466e29a34b6ac528be48f35e1d2766732 +PKG_HASH:=4c51b8decbc7e4da159ffb066f590cfb93dbf9af7ff86b1647ce42b7c179a272 PKG_BUILD_PARALLEL:=1 PKG_BUILD_DEPENDS:=iptables PKG_LICENSE:=GPL-2.0 From 08607da37c849f6923745eedee93708d2a5286dd Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Wed, 19 Jul 2023 15:32:26 +0200 Subject: [PATCH 10/10] strace: update to 6.4 Release Notes: https://github.com/strace/strace/releases/tag/v6.4 Signed-off-by: Nick Hainke --- package/devel/strace/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/devel/strace/Makefile b/package/devel/strace/Makefile index 9400608cdd..e572cc0315 100644 --- a/package/devel/strace/Makefile +++ b/package/devel/strace/Makefile @@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=strace -PKG_VERSION:=6.3 +PKG_VERSION:=6.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://strace.io/files/$(PKG_VERSION) -PKG_HASH:=e17878e301506c1cc301611118ad14efee7f8bcef63b27ace5d290acce7bb731 +PKG_HASH:=27987dbac57fdfd260c6db4dc8328df35c95c6867c8a3d4371d59cdcf4eb9238 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=LGPL-2.1-or-later