diff --git a/.config b/.config index f9abb71e7e2bf3..902f13b515483d 100644 --- a/.config +++ b/.config @@ -70,7 +70,7 @@ CONFIG_HAS_DEVICES=y CONFIG_TARGET_BOARD="x86" CONFIG_TARGET_SUBTARGET="64" CONFIG_TARGET_ARCH_PACKAGES="x86_64" -CONFIG_DEFAULT_TARGET_OPTIMIZATION="-Os -pipe" +CONFIG_DEFAULT_TARGET_OPTIMIZATION="-O2 -pipe -march=sandybridge -mtune=sandybridge" CONFIG_CPU_TYPE=" " CONFIG_LINUX_6_6=y CONFIG_DEFAULT_base-files=y @@ -464,7 +464,7 @@ CONFIG_BUILD_LOG_DIR="" # CONFIG_SRC_TREE_OVERRIDE is not set CONFIG_EXTRA_OPTIMIZATION="-fno-caller-saves -fno-plt" # CONFIG_TARGET_OPTIONS is not set -CONFIG_TARGET_OPTIMIZATION="-Os -pipe" +CONFIG_TARGET_OPTIMIZATION="-O2 -pipe -march=sandybridge -mtune=sandybridge" # CONFIG_BPF_TOOLCHAIN_NONE is not set # CONFIG_BPF_TOOLCHAIN_HOST is not set CONFIG_BPF_TOOLCHAIN_BUILD_LLVM=y @@ -484,7 +484,7 @@ CONFIG_USE_MUSL=y CONFIG_SSP_SUPPORT=y CONFIG_BINUTILS_VERSION_2_40=y CONFIG_BINUTILS_VERSION="2.40" -CONFIG_GCC_VERSION="12.3.0" +CONFIG_GCC_VERSION="13.2.0" CONFIG_LIBC="musl" CONFIG_TARGET_SUFFIX="musl" # CONFIG_IB is not set @@ -531,12 +531,12 @@ CONFIG_FEED_telephony=y # # Base system # -# CONFIG_PACKAGE_attendedsysupgrade-common is not set -# CONFIG_PACKAGE_auc is not set +CONFIG_PACKAGE_attendedsysupgrade-common=m +CONFIG_PACKAGE_auc=m CONFIG_PACKAGE_base-files=y CONFIG_PACKAGE_block-mount=m CONFIG_PACKAGE_blockd=m -# CONFIG_PACKAGE_bridge is not set +CONFIG_PACKAGE_bridge=m # CONFIG_PACKAGE_bridger is not set CONFIG_PACKAGE_busybox=y # CONFIG_BUSYBOX_CUSTOM is not set @@ -1620,6 +1620,8 @@ CONFIG_BUSYBOX_DEFAULT_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 # CONFIG_BUSYBOX_DEFAULT_FEATURE_IPC_SYSLOG is not set CONFIG_BUSYBOX_DEFAULT_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 # CONFIG_BUSYBOX_DEFAULT_FEATURE_KMSG_SYSLOG is not set +# CONFIG_BUSYBOX_CONFIG_IP is not set +# CONFIG_BUSYBOX_CONFIG_FEATURE_IP_LINK is not set # CONFIG_PACKAGE_busybox-selinux is not set CONFIG_PACKAGE_ca-bundle=y CONFIG_PACKAGE_ca-certificates=m @@ -1666,7 +1668,7 @@ CONFIG_PACKAGE_libstdcpp=m CONFIG_PACKAGE_logd=y CONFIG_PACKAGE_mtd=y CONFIG_PACKAGE_netifd=y -# CONFIG_PACKAGE_nft-qos is not set +CONFIG_PACKAGE_nft-qos=m CONFIG_PACKAGE_openwrt-keyring=y CONFIG_PACKAGE_opkg=y CONFIG_PACKAGE_procd=y @@ -1680,20 +1682,20 @@ CONFIG_PACKAGE_procd=y CONFIG_PACKAGE_procd-seccomp=y # CONFIG_PACKAGE_procd-selinux is not set CONFIG_PACKAGE_procd-ujail=y -# CONFIG_PACKAGE_qos-scripts is not set +CONFIG_PACKAGE_qos-scripts=m CONFIG_PACKAGE_qosify=m # CONFIG_PACKAGE_refpolicy is not set -# CONFIG_PACKAGE_resolveip is not set +CONFIG_PACKAGE_resolveip=m CONFIG_PACKAGE_rpcd=y CONFIG_PACKAGE_rpcd-mod-file=y CONFIG_PACKAGE_rpcd-mod-iwinfo=y -# CONFIG_PACKAGE_rpcd-mod-rpcsys is not set +CONFIG_PACKAGE_rpcd-mod-rpcsys=m CONFIG_PACKAGE_rpcd-mod-ucode=y # CONFIG_PACKAGE_selinux-policy is not set CONFIG_PACKAGE_snapshot-tool=m -# CONFIG_PACKAGE_sqm-scripts is not set -# CONFIG_PACKAGE_sqm-scripts-extra is not set -# CONFIG_PACKAGE_swconfig is not set +CONFIG_PACKAGE_sqm-scripts=m +CONFIG_PACKAGE_sqm-scripts-extra=m +CONFIG_PACKAGE_swconfig=m CONFIG_PACKAGE_ubox=y CONFIG_PACKAGE_ubus=y CONFIG_PACKAGE_ubusd=y @@ -1708,7 +1710,7 @@ CONFIG_PACKAGE_urngd=y CONFIG_PACKAGE_usign=y # CONFIG_PACKAGE_uxc is not set CONFIG_PACKAGE_wifi-scripts=m -# CONFIG_PACKAGE_wireless-tools is not set +CONFIG_PACKAGE_wireless-tools=m # CONFIG_PACKAGE_zram-swap is not set # CONFIG_PACKAGE_zyxel-bootconfig is not set # end of Base system @@ -1720,16 +1722,16 @@ CONFIG_PACKAGE_wifi-scripts=m # # Zabbix # -# CONFIG_PACKAGE_zabbix-agentd is not set -# CONFIG_PACKAGE_zabbix-agentd-gnutls is not set -# CONFIG_PACKAGE_zabbix-agentd-openssl is not set -# CONFIG_PACKAGE_zabbix-extra-mac80211 is not set -# CONFIG_PACKAGE_zabbix-extra-network is not set -# CONFIG_PACKAGE_zabbix-extra-wifi is not set -# CONFIG_PACKAGE_zabbix-get is not set -# CONFIG_PACKAGE_zabbix-get-gnutls is not set -# CONFIG_PACKAGE_zabbix-get-openssl is not set -# CONFIG_PACKAGE_zabbix-proxy is not set +CONFIG_PACKAGE_zabbix-agentd=m +CONFIG_PACKAGE_zabbix-agentd-gnutls=m +CONFIG_PACKAGE_zabbix-agentd-openssl=m +CONFIG_PACKAGE_zabbix-extra-mac80211=m +CONFIG_PACKAGE_zabbix-extra-network=m +CONFIG_PACKAGE_zabbix-extra-wifi=m +CONFIG_PACKAGE_zabbix-get=m +CONFIG_PACKAGE_zabbix-get-gnutls=m +CONFIG_PACKAGE_zabbix-get-openssl=m +CONFIG_PACKAGE_zabbix-proxy=m # # Database Software @@ -1737,43 +1739,57 @@ CONFIG_PACKAGE_wifi-scripts=m # CONFIG_ZABBIX_MYSQL is not set CONFIG_ZABBIX_POSTGRESQL=y # CONFIG_ZABBIX_SQLITE is not set -# CONFIG_PACKAGE_zabbix-proxy-gnutls is not set -# CONFIG_PACKAGE_zabbix-proxy-openssl is not set -# CONFIG_PACKAGE_zabbix-sender is not set -# CONFIG_PACKAGE_zabbix-sender-gnutls is not set -# CONFIG_PACKAGE_zabbix-sender-openssl is not set -# CONFIG_PACKAGE_zabbix-server is not set -# CONFIG_PACKAGE_zabbix-server-frontend is not set -# CONFIG_PACKAGE_zabbix-server-gnutls is not set -# CONFIG_PACKAGE_zabbix-server-openssl is not set +CONFIG_PACKAGE_zabbix-proxy-gnutls=m +CONFIG_PACKAGE_zabbix-proxy-openssl=m +CONFIG_PACKAGE_zabbix-sender=m +CONFIG_PACKAGE_zabbix-sender-gnutls=m +CONFIG_PACKAGE_zabbix-sender-openssl=m +CONFIG_PACKAGE_zabbix-server=m +CONFIG_PACKAGE_zabbix-server-frontend=m +CONFIG_PACKAGE_zabbix-server-gnutls=m +CONFIG_PACKAGE_zabbix-server-openssl=m # end of Zabbix # # openwisp # -# CONFIG_PACKAGE_netjson-monitoring is not set -# CONFIG_PACKAGE_openwisp-config is not set -# CONFIG_PACKAGE_openwisp-monitoring is not set +CONFIG_PACKAGE_netjson-monitoring=m +CONFIG_PACKAGE_openwisp-config=m +CONFIG_PACKAGE_openwisp-monitoring=m # end of openwisp -# CONFIG_PACKAGE_atop is not set -# CONFIG_PACKAGE_backuppc is not set -# CONFIG_PACKAGE_bottom is not set -# CONFIG_PACKAGE_btop is not set -# CONFIG_PACKAGE_debian-archive-keyring is not set -# CONFIG_PACKAGE_debootstrap is not set -# CONFIG_PACKAGE_gkrellmd is not set -# CONFIG_PACKAGE_htop is not set -# CONFIG_PACKAGE_ipmitool is not set -# CONFIG_PACKAGE_monit is not set -# CONFIG_PACKAGE_monit-nossl is not set -# CONFIG_PACKAGE_muninlite is not set -# CONFIG_PACKAGE_netatop is not set -# CONFIG_PACKAGE_netdata is not set -# CONFIG_PACKAGE_nload is not set -# CONFIG_PACKAGE_nyx is not set -# CONFIG_PACKAGE_rsyslog is not set -# CONFIG_PACKAGE_schroot is not set +CONFIG_PACKAGE_atop=m +CONFIG_PACKAGE_backuppc=m +CONFIG_PACKAGE_bottom=m +CONFIG_PACKAGE_btop=m +CONFIG_PACKAGE_debian-archive-keyring=m +CONFIG_PACKAGE_debootstrap=m +CONFIG_PACKAGE_gkrellmd=m +CONFIG_PACKAGE_htop=m +CONFIG_HTOP_LMSENSORS=y +CONFIG_PACKAGE_ipmitool=m +CONFIG_PACKAGE_monit=m +CONFIG_PACKAGE_monit-nossl=m +CONFIG_PACKAGE_muninlite=m +CONFIG_PACKAGE_netatop=m +CONFIG_PACKAGE_netdata=m +CONFIG_PACKAGE_nload=m +CONFIG_PACKAGE_nyx=m +CONFIG_PACKAGE_nyx-src=m +CONFIG_PACKAGE_rsyslog=m +# CONFIG_RSYSLOG_gssapi_krb5 is not set +# CONFIG_RSYSLOG_mysql is not set +# CONFIG_RSYSLOG_pgsql is not set +# CONFIG_RSYSLOG_libdbi is not set +# CONFIG_RSYSLOG_elasticsearch is not set +# CONFIG_RSYSLOG_omhttp is not set +# CONFIG_RSYSLOG_openssl is not set +# CONFIG_RSYSLOG_gnutls is not set +# CONFIG_RSYSLOG_mail is not set +# CONFIG_RSYSLOG_mmjsonparse is not set +# CONFIG_RSYSLOG_mmdblookup is not set +# CONFIG_RSYSLOG_imfile is not set +CONFIG_PACKAGE_schroot=m # # Configuration @@ -1784,17 +1800,18 @@ CONFIG_ZABBIX_POSTGRESQL=y # CONFIG_SCHROOT_UUID is not set # end of Configuration -# CONFIG_PACKAGE_sudo is not set -# CONFIG_PACKAGE_syslog-ng is not set +CONFIG_PACKAGE_sudo=m +CONFIG_PACKAGE_syslog-ng=m +# CONFIG_SYSLOGNG_LOGROTATE is not set # end of Administration # # Boot Loaders # -# CONFIG_PACKAGE_gnu-efi-programs is not set +CONFIG_PACKAGE_gnu-efi-programs=m CONFIG_PACKAGE_grub2=y CONFIG_PACKAGE_grub2-efi=y -# CONFIG_PACKAGE_gummiboot is not set +CONFIG_PACKAGE_gummiboot=m # end of Boot Loaders # @@ -1809,33 +1826,42 @@ CONFIG_PACKAGE_grub2-efi=y # CONFIG_PACKAGE_zlib-dev is not set # end of Libraries -# CONFIG_PACKAGE_ar is not set -# CONFIG_PACKAGE_autoconf is not set -# CONFIG_PACKAGE_automake is not set -# CONFIG_PACKAGE_binutils is not set -# CONFIG_PACKAGE_bison is not set -# CONFIG_PACKAGE_delve is not set -# CONFIG_PACKAGE_diffutils is not set -# CONFIG_PACKAGE_flex is not set -# CONFIG_PACKAGE_gcc is not set +CONFIG_PACKAGE_ar=m +CONFIG_PACKAGE_autoconf=m +CONFIG_PACKAGE_automake=m +CONFIG_PACKAGE_binutils=m +CONFIG_PACKAGE_bison=m +CONFIG_PACKAGE_delve=m +CONFIG_PACKAGE_diffutils=m +CONFIG_PACKAGE_flex=m +CONFIG_PACKAGE_gcc=m + +# +# Libraries +# +# CONFIG_INCLUDE_STATIC_LIBC is not set +# CONFIG_INCLUDE_STATIC_LIBPTHREAD is not set +# CONFIG_INCLUDE_STATIC_LIBSTDC is not set +# end of Libraries + # CONFIG_PACKAGE_gdb is not set # CONFIG_PACKAGE_gdbserver is not set -# CONFIG_PACKAGE_gitlab-runner is not set +CONFIG_PACKAGE_gitlab-runner=m # CONFIG_PACKAGE_gperf is not set CONFIG_PACKAGE_ledhwbmon=m CONFIG_PACKAGE_ledumon=m -# CONFIG_PACKAGE_libtool-bin is not set -# CONFIG_PACKAGE_lpc21isp is not set -# CONFIG_PACKAGE_lttng-tools is not set -# CONFIG_PACKAGE_m4 is not set -# CONFIG_PACKAGE_make is not set +CONFIG_PACKAGE_libtool-bin=m +CONFIG_PACKAGE_lpc21isp=m +CONFIG_PACKAGE_lttng-tools=m +CONFIG_PACKAGE_m4=m +CONFIG_PACKAGE_make=m # CONFIG_PACKAGE_mt76-test is not set -# CONFIG_PACKAGE_nasm is not set +CONFIG_PACKAGE_nasm=m CONFIG_PACKAGE_objdump=m -# CONFIG_PACKAGE_patch is not set +CONFIG_PACKAGE_patch=m # CONFIG_PACKAGE_perf is not set -# CONFIG_PACKAGE_pkg-config is not set -# CONFIG_PACKAGE_pkgconf is not set +CONFIG_PACKAGE_pkg-config=m +CONFIG_PACKAGE_pkgconf=m CONFIG_PACKAGE_tmon=m # CONFIG_PACKAGE_trace-cmd is not set # CONFIG_PACKAGE_trace-cmd-extra is not set @@ -1845,13 +1871,99 @@ CONFIG_PACKAGE_tmon=m # # Extra packages # -# CONFIG_PACKAGE_jose is not set +CONFIG_PACKAGE_jose=m CONFIG_PACKAGE_libiwinfo-data=y -# CONFIG_PACKAGE_libjose is not set -# CONFIG_PACKAGE_nginx is not set -# CONFIG_PACKAGE_nginx-mod-luci-ssl is not set -# CONFIG_PACKAGE_nginx-util is not set -# CONFIG_PACKAGE_tang is not set +CONFIG_PACKAGE_libjose=m +CONFIG_PACKAGE_nginx=m +CONFIG_PACKAGE_nginx-mod-luci-ssl=m +CONFIG_PACKAGE_nginx-util=m +CONFIG_PACKAGE_sane-abaton=m +CONFIG_PACKAGE_sane-agfafocus=m +CONFIG_PACKAGE_sane-apple=m +CONFIG_PACKAGE_sane-artec=m +CONFIG_PACKAGE_sane-artec_eplus48u=m +CONFIG_PACKAGE_sane-as6e=m +CONFIG_PACKAGE_sane-avision=m +CONFIG_PACKAGE_sane-bh=m +CONFIG_PACKAGE_sane-canon=m +CONFIG_PACKAGE_sane-canon630u=m +CONFIG_PACKAGE_sane-canon_dr=m +CONFIG_PACKAGE_sane-canon_lide70=m +CONFIG_PACKAGE_sane-cardscan=m +CONFIG_PACKAGE_sane-coolscan=m +CONFIG_PACKAGE_sane-coolscan2=m +CONFIG_PACKAGE_sane-coolscan3=m +CONFIG_PACKAGE_sane-dc210=m +CONFIG_PACKAGE_sane-dc240=m +CONFIG_PACKAGE_sane-dc25=m +CONFIG_PACKAGE_sane-dell1600n_net=m +CONFIG_PACKAGE_sane-dmc=m +CONFIG_PACKAGE_sane-epjitsu=m +CONFIG_PACKAGE_sane-epson=m +CONFIG_PACKAGE_sane-epson2=m +CONFIG_PACKAGE_sane-epsonds=m +CONFIG_PACKAGE_sane-fujitsu=m +CONFIG_PACKAGE_sane-genesys=m +CONFIG_PACKAGE_sane-gphoto2=m +CONFIG_PACKAGE_sane-gt68xx=m +CONFIG_PACKAGE_sane-hp=m +CONFIG_PACKAGE_sane-hp3500=m +CONFIG_PACKAGE_sane-hp3900=m +CONFIG_PACKAGE_sane-hp4200=m +CONFIG_PACKAGE_sane-hp5400=m +CONFIG_PACKAGE_sane-hp5590=m +CONFIG_PACKAGE_sane-hpljm1005=m +CONFIG_PACKAGE_sane-hs2p=m +CONFIG_PACKAGE_sane-ibm=m +CONFIG_PACKAGE_sane-kodak=m +CONFIG_PACKAGE_sane-kodakaio=m +CONFIG_PACKAGE_sane-kvs1025=m +CONFIG_PACKAGE_sane-kvs20xx=m +CONFIG_PACKAGE_sane-kvs40xx=m +CONFIG_PACKAGE_sane-leo=m +CONFIG_PACKAGE_sane-lexmark=m +CONFIG_PACKAGE_sane-ma1509=m +CONFIG_PACKAGE_sane-magicolor=m +CONFIG_PACKAGE_sane-matsushita=m +CONFIG_PACKAGE_sane-microtek=m +CONFIG_PACKAGE_sane-microtek2=m +CONFIG_PACKAGE_sane-mustek=m +CONFIG_PACKAGE_sane-mustek_usb=m +CONFIG_PACKAGE_sane-mustek_usb2=m +CONFIG_PACKAGE_sane-nec=m +CONFIG_PACKAGE_sane-net=m +CONFIG_PACKAGE_sane-niash=m +CONFIG_PACKAGE_sane-p5=m +CONFIG_PACKAGE_sane-pie=m +CONFIG_PACKAGE_sane-pieusb=m +CONFIG_PACKAGE_sane-pixma=m +CONFIG_PACKAGE_sane-plustek=m +CONFIG_PACKAGE_sane-plustek_pp=m +CONFIG_PACKAGE_sane-qcam=m +CONFIG_PACKAGE_sane-ricoh=m +CONFIG_PACKAGE_sane-ricoh2=m +CONFIG_PACKAGE_sane-rts8891=m +CONFIG_PACKAGE_sane-s9036=m +CONFIG_PACKAGE_sane-sceptre=m +CONFIG_PACKAGE_sane-sharp=m +CONFIG_PACKAGE_sane-sm3600=m +CONFIG_PACKAGE_sane-sm3840=m +CONFIG_PACKAGE_sane-snapscan=m +CONFIG_PACKAGE_sane-sp15c=m +CONFIG_PACKAGE_sane-st400=m +CONFIG_PACKAGE_sane-stv680=m +CONFIG_PACKAGE_sane-tamarack=m +CONFIG_PACKAGE_sane-teco1=m +CONFIG_PACKAGE_sane-teco2=m +CONFIG_PACKAGE_sane-teco3=m +CONFIG_PACKAGE_sane-test=m +CONFIG_PACKAGE_sane-u12=m +CONFIG_PACKAGE_sane-umax=m +CONFIG_PACKAGE_sane-umax1220u=m +CONFIG_PACKAGE_sane-umax_pp=m +CONFIG_PACKAGE_sane-v4l=m +CONFIG_PACKAGE_sane-xerox_mfp=m +CONFIG_PACKAGE_tang=m # end of Extra packages # @@ -1968,6 +2080,7 @@ CONFIG_PACKAGE_intel-microcode=m # CONFIG_PACKAGE_iwl4965-firmware is not set CONFIG_PACKAGE_iwlwifi-firmware-ax101=m # CONFIG_PACKAGE_iwlwifi-firmware-ax200 is not set +CONFIG_PACKAGE_iwlwifi-firmware-ax201=m # CONFIG_PACKAGE_iwlwifi-firmware-ax210 is not set CONFIG_PACKAGE_iwlwifi-firmware-be200=m # CONFIG_PACKAGE_iwlwifi-firmware-iwl100 is not set @@ -1994,7 +2107,7 @@ CONFIG_PACKAGE_iwlwifi-firmware-be200=m # CONFIG_PACKAGE_libertas-sdio-firmware is not set # CONFIG_PACKAGE_libertas-spi-firmware is not set # CONFIG_PACKAGE_libertas-usb-firmware is not set -# CONFIG_PACKAGE_midisport-firmware is not set +CONFIG_PACKAGE_midisport-firmware=m CONFIG_PACKAGE_mlxsw_spectrum-firmware=m CONFIG_PACKAGE_mt7601u-firmware=m # CONFIG_PACKAGE_mt7622bt-firmware is not set @@ -2018,6 +2131,7 @@ CONFIG_PACKAGE_rt2800-usb-firmware=m # CONFIG_PACKAGE_rt61-pci-firmware is not set # CONFIG_PACKAGE_rt73-usb-firmware is not set # CONFIG_PACKAGE_rtl8188eu-firmware is not set +CONFIG_PACKAGE_rtl8188fu-firmware=m CONFIG_PACKAGE_rtl8192ce-firmware=m CONFIG_PACKAGE_rtl8192cu-firmware=m CONFIG_PACKAGE_rtl8192de-firmware=m @@ -2052,28 +2166,28 @@ CONFIG_PACKAGE_wl18xx-firmware=m # # DejaVu # -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuMathTeXGyre is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-Bold is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-BoldOblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-ExtraLight is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-Oblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-Bold is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-BoldOblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-Oblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-Bold is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-BoldOblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-Oblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-Bold is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-BoldItalic is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-Italic is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-Bold is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-BoldItalic is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-Italic is not set +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuMathTeXGyre=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-Bold=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-BoldOblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-ExtraLight=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-Oblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-Bold=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-BoldOblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-Oblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-Bold=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-BoldOblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-Oblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-Bold=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-BoldItalic=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-Italic=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-Bold=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-BoldItalic=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-Italic=m # end of DejaVu # end of Fonts @@ -2301,6 +2415,7 @@ CONFIG_PACKAGE_kmod-hwmon-pwmfan=m CONFIG_PACKAGE_kmod-hwmon-sch5627=m CONFIG_PACKAGE_kmod-hwmon-sht21=m CONFIG_PACKAGE_kmod-hwmon-sht3x=m +CONFIG_PACKAGE_kmod-hwmon-tc654=m CONFIG_PACKAGE_kmod-hwmon-tmp102=m CONFIG_PACKAGE_kmod-hwmon-tmp103=m CONFIG_PACKAGE_kmod-hwmon-tmp421=m @@ -2634,6 +2749,7 @@ CONFIG_PACKAGE_kmod-mlxsw-i2c=m CONFIG_PACKAGE_kmod-mlxsw-minimal=m CONFIG_PACKAGE_kmod-mlxsw-pci=m CONFIG_PACKAGE_kmod-mlxsw-spectrum=m +CONFIG_PACKAGE_kmod-mtk-t7xx=m CONFIG_PACKAGE_kmod-natsemi=m CONFIG_PACKAGE_kmod-ne2k-pci=m CONFIG_PACKAGE_kmod-net-selftests=m @@ -2949,6 +3065,8 @@ CONFIG_PACKAGE_kmod-usb-atm=m CONFIG_PACKAGE_kmod-usb-atm-cxacru=m CONFIG_PACKAGE_kmod-usb-atm-speedtouch=m CONFIG_PACKAGE_kmod-usb-atm-ueagle=m +CONFIG_PACKAGE_kmod-usb-cdns=m +CONFIG_PACKAGE_kmod-usb-cdns3=m CONFIG_PACKAGE_kmod-usb-cm109=m CONFIG_PACKAGE_kmod-usb-core=y CONFIG_PACKAGE_kmod-usb-dwc2=y @@ -3058,7 +3176,7 @@ CONFIG_PACKAGE_kmod-fb-sys-ram=y CONFIG_PACKAGE_kmod-fb-tft=y CONFIG_PACKAGE_kmod-fb-tft-ili9486=m CONFIG_PACKAGE_kmod-video-core=y -CONFIG_PACKAGE_kmod-v4l2loopback=y +CONFIG_PACKAGE_kmod-v4l2loopback=m CONFIG_PACKAGE_kmod-video-dma=m CONFIG_PACKAGE_kmod-video-gspca-core=m CONFIG_PACKAGE_kmod-video-gspca-conex=m @@ -3320,29 +3438,29 @@ CONFIG_PACKAGE_kmod-cdrom=m # # Erlang # -# CONFIG_PACKAGE_erlang is not set -# CONFIG_PACKAGE_erlang-asn1 is not set -# CONFIG_PACKAGE_erlang-compiler is not set -# CONFIG_PACKAGE_erlang-crypto is not set -# CONFIG_PACKAGE_erlang-erl-interface is not set -# CONFIG_PACKAGE_erlang-inets is not set -# CONFIG_PACKAGE_erlang-mnesia is not set -# CONFIG_PACKAGE_erlang-os_mon is not set -# CONFIG_PACKAGE_erlang-public-key is not set -# CONFIG_PACKAGE_erlang-reltool is not set -# CONFIG_PACKAGE_erlang-runtime-tools is not set -# CONFIG_PACKAGE_erlang-snmp is not set -# CONFIG_PACKAGE_erlang-ssh is not set -# CONFIG_PACKAGE_erlang-ssl is not set -# CONFIG_PACKAGE_erlang-syntax-tools is not set -# CONFIG_PACKAGE_erlang-tools is not set -# CONFIG_PACKAGE_erlang-xmerl is not set +CONFIG_PACKAGE_erlang=m +CONFIG_PACKAGE_erlang-asn1=m +CONFIG_PACKAGE_erlang-compiler=m +CONFIG_PACKAGE_erlang-crypto=m +CONFIG_PACKAGE_erlang-erl-interface=m +CONFIG_PACKAGE_erlang-inets=m +CONFIG_PACKAGE_erlang-mnesia=m +CONFIG_PACKAGE_erlang-os_mon=m +CONFIG_PACKAGE_erlang-public-key=m +CONFIG_PACKAGE_erlang-reltool=m +CONFIG_PACKAGE_erlang-runtime-tools=m +CONFIG_PACKAGE_erlang-snmp=m +CONFIG_PACKAGE_erlang-ssh=m +CONFIG_PACKAGE_erlang-ssl=m +CONFIG_PACKAGE_erlang-syntax-tools=m +CONFIG_PACKAGE_erlang-tools=m +CONFIG_PACKAGE_erlang-xmerl=m # end of Erlang # # Go # -# CONFIG_PACKAGE_golang is not set +CONFIG_PACKAGE_golang=m # # Configuration @@ -3353,248 +3471,590 @@ CONFIG_GOLANG_BUILD_CACHE_DIR="" # CONFIG_GOLANG_SPECTRE is not set # end of Configuration -# CONFIG_PACKAGE_golang-doc is not set -# CONFIG_PACKAGE_golang-github-jedisct1-dnscrypt-proxy2-dev is not set -# CONFIG_PACKAGE_golang-github-nextdns-nextdns-dev is not set -# CONFIG_PACKAGE_golang-gitlab-yawning-obfs4-dev is not set -# CONFIG_PACKAGE_golang-src is not set +CONFIG_PACKAGE_golang-doc=m +CONFIG_PACKAGE_golang-github-jedisct1-dnscrypt-proxy2-dev=m +CONFIG_PACKAGE_golang-github-nextdns-nextdns-dev=m +CONFIG_PACKAGE_golang-gitlab-yawning-obfs4-dev=m +CONFIG_PACKAGE_golang-src=m # end of Go # # Lua # -# CONFIG_PACKAGE_cqueues is not set -# CONFIG_PACKAGE_dkjson is not set -# CONFIG_PACKAGE_json4lua is not set -# CONFIG_PACKAGE_ldbus is not set -# CONFIG_PACKAGE_libiwinfo-lua is not set -# CONFIG_PACKAGE_linotify is not set -# CONFIG_PACKAGE_lpeg is not set -# CONFIG_PACKAGE_lsqlite3 is not set -# CONFIG_PACKAGE_lsqlite3-lua5.3 is not set +CONFIG_PACKAGE_cqueues=m +CONFIG_PACKAGE_dkjson=m +CONFIG_PACKAGE_json4lua=m +CONFIG_PACKAGE_ldbus=m +CONFIG_PACKAGE_libiwinfo-lua=m +CONFIG_PACKAGE_linotify=m +CONFIG_PACKAGE_lpeg=m +CONFIG_PACKAGE_lsqlite3=m +CONFIG_PACKAGE_lsqlite3-lua5.3=m CONFIG_PACKAGE_lua=m -# CONFIG_PACKAGE_lua-argparse is not set -# CONFIG_PACKAGE_lua-bencode is not set +CONFIG_PACKAGE_lua-argparse=m +CONFIG_PACKAGE_lua-bencode=m CONFIG_PACKAGE_lua-bit32=m -# CONFIG_PACKAGE_lua-cjson is not set -# CONFIG_PACKAGE_lua-copas is not set -# CONFIG_PACKAGE_lua-coxpcall is not set -# CONFIG_PACKAGE_lua-cs-bouncer is not set -# CONFIG_PACKAGE_lua-curl-v3 is not set -# CONFIG_PACKAGE_lua-eco is not set -# CONFIG_PACKAGE_lua-eco-base64 is not set -# CONFIG_PACKAGE_lua-eco-dns is not set -# CONFIG_PACKAGE_lua-eco-http is not set -# CONFIG_PACKAGE_lua-eco-ip is not set -# CONFIG_PACKAGE_lua-eco-log is not set -# CONFIG_PACKAGE_lua-eco-md5 is not set -# CONFIG_PACKAGE_lua-eco-mqtt is not set -# CONFIG_PACKAGE_lua-eco-netlink is not set -# CONFIG_PACKAGE_lua-eco-nl80211 is not set -# CONFIG_PACKAGE_lua-eco-sha1 is not set -# CONFIG_PACKAGE_lua-eco-socket is not set -# CONFIG_PACKAGE_lua-eco-ssh is not set -# CONFIG_PACKAGE_lua-eco-ssl is not set +CONFIG_PACKAGE_lua-cjson=m +CONFIG_PACKAGE_lua-copas=m +CONFIG_PACKAGE_lua-coxpcall=m +CONFIG_PACKAGE_lua-cs-bouncer=m +CONFIG_PACKAGE_lua-curl-v3=m +CONFIG_PACKAGE_lua-eco=m +CONFIG_PACKAGE_lua-eco-base64=m +CONFIG_PACKAGE_lua-eco-dns=m +CONFIG_PACKAGE_lua-eco-http=m +CONFIG_PACKAGE_lua-eco-ip=m +CONFIG_PACKAGE_lua-eco-log=m +CONFIG_PACKAGE_lua-eco-md5=m +CONFIG_PACKAGE_lua-eco-mqtt=m +CONFIG_PACKAGE_lua-eco-netlink=m +CONFIG_PACKAGE_lua-eco-nl80211=m +CONFIG_PACKAGE_lua-eco-sha1=m +CONFIG_PACKAGE_lua-eco-socket=m +CONFIG_PACKAGE_lua-eco-ssh=m +CONFIG_PACKAGE_lua-eco-ssl=m # CONFIG_LUA_ECO_OPENSSL is not set # CONFIG_LUA_ECO_WOLFSSL is not set CONFIG_LUA_ECO_MBEDTLS=y -# CONFIG_PACKAGE_lua-eco-termios is not set -# CONFIG_PACKAGE_lua-eco-ubus is not set -# CONFIG_PACKAGE_lua-eco-websocket is not set -# CONFIG_PACKAGE_lua-ev is not set +CONFIG_PACKAGE_lua-eco-termios=m +CONFIG_PACKAGE_lua-eco-ubus=m +CONFIG_PACKAGE_lua-eco-websocket=m +CONFIG_PACKAGE_lua-ev=m CONFIG_PACKAGE_lua-examples=m -# CONFIG_PACKAGE_lua-libmodbus is not set -# CONFIG_PACKAGE_lua-lzlib is not set -# CONFIG_PACKAGE_lua-md5 is not set -# CONFIG_PACKAGE_lua-mobdebug is not set -# CONFIG_PACKAGE_lua-mosquitto is not set -# CONFIG_PACKAGE_lua-openssl is not set -# CONFIG_PACKAGE_lua-penlight is not set -# CONFIG_PACKAGE_lua-rings is not set -# CONFIG_PACKAGE_lua-rs232 is not set -# CONFIG_PACKAGE_lua-sha2 is not set +CONFIG_PACKAGE_lua-libmodbus=m +CONFIG_PACKAGE_lua-lzlib=m +CONFIG_PACKAGE_lua-md5=m +CONFIG_PACKAGE_lua-mobdebug=m +CONFIG_PACKAGE_lua-mosquitto=m +CONFIG_PACKAGE_lua-openssl=m +CONFIG_PACKAGE_lua-penlight=m +CONFIG_PACKAGE_lua-rings=m +CONFIG_PACKAGE_lua-rs232=m +CONFIG_PACKAGE_lua-sha2=m CONFIG_PACKAGE_lua-struct=m -# CONFIG_PACKAGE_lua-wsapi-base is not set -# CONFIG_PACKAGE_lua-wsapi-xavante is not set -# CONFIG_PACKAGE_lua-xavante is not set -# CONFIG_PACKAGE_lua5.3 is not set -# CONFIG_PACKAGE_luabitop is not set -# CONFIG_PACKAGE_luac is not set +CONFIG_PACKAGE_lua-wsapi-base=m +CONFIG_PACKAGE_lua-wsapi-xavante=m +CONFIG_PACKAGE_lua-xavante=m +CONFIG_PACKAGE_lua5.3=m +CONFIG_PACKAGE_luabitop=m +CONFIG_PACKAGE_luac=m # CONFIG_PACKAGE_luac5.3 is not set -# CONFIG_PACKAGE_luaexpat is not set -# CONFIG_PACKAGE_luafilesystem is not set -# CONFIG_PACKAGE_luajit is not set +CONFIG_PACKAGE_luaexpat=m +CONFIG_PACKAGE_luafilesystem=m +CONFIG_PACKAGE_luajit=m CONFIG_HAS_LUAJIT_ARCH=y -# CONFIG_PACKAGE_luajit2 is not set -# CONFIG_PACKAGE_lualanes is not set -# CONFIG_PACKAGE_luaossl is not set +CONFIG_PACKAGE_luajit2=m +CONFIG_PACKAGE_lualanes=m +CONFIG_PACKAGE_luaossl=m CONFIG_PACKAGE_luaposix=m -# CONFIG_PACKAGE_luarocks is not set -# CONFIG_PACKAGE_luasec is not set -# CONFIG_PACKAGE_luasoap is not set -# CONFIG_PACKAGE_luasocket is not set -# CONFIG_PACKAGE_luasocket5.3 is not set -# CONFIG_PACKAGE_luasql-mysql is not set -# CONFIG_PACKAGE_luasql-pgsql is not set -# CONFIG_PACKAGE_luasql-sqlite3 is not set -# CONFIG_PACKAGE_luasrcdiet is not set -# CONFIG_PACKAGE_luv is not set -# CONFIG_PACKAGE_lyaml is not set -# CONFIG_PACKAGE_lzmq is not set -# CONFIG_PACKAGE_uuid is not set +CONFIG_PACKAGE_luarocks=m +CONFIG_PACKAGE_luasec=m +CONFIG_PACKAGE_luasoap=m +CONFIG_PACKAGE_luasocket=m +CONFIG_PACKAGE_luasocket5.3=m +CONFIG_PACKAGE_luasql-mysql=m +CONFIG_PACKAGE_luasql-pgsql=m +CONFIG_PACKAGE_luasql-sqlite3=m +CONFIG_PACKAGE_luasrcdiet=m +CONFIG_PACKAGE_luv=m + +# +# Configuration +# +# CONFIG_LUV_USE_LUAJIT_ENGINE is not set +# end of Configuration + +CONFIG_PACKAGE_lyaml=m +CONFIG_PACKAGE_lzmq=m +CONFIG_PACKAGE_uuid=m # end of Lua # # Node.js # -# CONFIG_PACKAGE_node is not set -# CONFIG_PACKAGE_node-arduino-firmata is not set -# CONFIG_PACKAGE_node-cylon is not set -# CONFIG_PACKAGE_node-cylon-firmata is not set -# CONFIG_PACKAGE_node-cylon-gpio is not set -# CONFIG_PACKAGE_node-cylon-i2c is not set -# CONFIG_PACKAGE_node-hid is not set -# CONFIG_PACKAGE_node-homebridge is not set -# CONFIG_PACKAGE_node-javascript-obfuscator is not set -# CONFIG_PACKAGE_node-npm is not set -# CONFIG_PACKAGE_node-serialport is not set -# CONFIG_PACKAGE_node-serialport-bindings is not set +CONFIG_PACKAGE_node=m +# CONFIG_NODEJS_ICU_NONE is not set +CONFIG_NODEJS_ICU_SMALL=y +# CONFIG_NODEJS_ICU_SYSTEM is not set +CONFIG_PACKAGE_node-arduino-firmata=m +CONFIG_PACKAGE_node-cylon=m +CONFIG_PACKAGE_node-cylon-firmata=m +CONFIG_PACKAGE_node-cylon-gpio=m +CONFIG_PACKAGE_node-cylon-i2c=m +CONFIG_PACKAGE_node-hid=m +CONFIG_PACKAGE_node-homebridge=m +CONFIG_PACKAGE_node-javascript-obfuscator=m +CONFIG_PACKAGE_node-npm=m +CONFIG_PACKAGE_node-serialport=m +CONFIG_PACKAGE_node-serialport-bindings=m # end of Node.js # # PHP8 # -# CONFIG_PACKAGE_php8 is not set +CONFIG_PACKAGE_php8=m +CONFIG_PHP8_LIBXML=y +CONFIG_PHP8_SYSTEMTZDATA=y +CONFIG_PACKAGE_php8-cgi=m +CONFIG_PACKAGE_php8-cli=m +CONFIG_PACKAGE_php8-fastcgi=m +CONFIG_PACKAGE_php8-fpm=m +CONFIG_PACKAGE_php8-mod-bcmath=m +CONFIG_PACKAGE_php8-mod-calendar=m +CONFIG_PACKAGE_php8-mod-ctype=m +CONFIG_PACKAGE_php8-mod-curl=m +CONFIG_PACKAGE_php8-mod-dom=m +CONFIG_PACKAGE_php8-mod-exif=m +CONFIG_PACKAGE_php8-mod-fileinfo=m +CONFIG_PACKAGE_php8-mod-filter=m +CONFIG_PACKAGE_php8-mod-ftp=m +CONFIG_PACKAGE_php8-mod-gd=m +CONFIG_PACKAGE_php8-mod-gettext=m +CONFIG_PACKAGE_php8-mod-gmp=m +CONFIG_PACKAGE_php8-mod-iconv=m +CONFIG_PACKAGE_php8-mod-imap=m +CONFIG_PACKAGE_php8-mod-intl=m +# CONFIG_PHP8_FULLICUDATA is not set +CONFIG_PACKAGE_php8-mod-ldap=m +CONFIG_PACKAGE_php8-mod-mbstring=m +CONFIG_PACKAGE_php8-mod-mysqli=m +CONFIG_PACKAGE_php8-mod-mysqlnd=m +CONFIG_PACKAGE_php8-mod-opcache=m +CONFIG_PACKAGE_php8-mod-openssl=m +CONFIG_PACKAGE_php8-mod-pcntl=m +CONFIG_PACKAGE_php8-mod-pdo=m +CONFIG_PACKAGE_php8-mod-pdo-mysql=m +CONFIG_PACKAGE_php8-mod-pdo-pgsql=m +CONFIG_PACKAGE_php8-mod-pdo-sqlite=m +CONFIG_PACKAGE_php8-mod-pgsql=m +CONFIG_PACKAGE_php8-mod-phar=m +CONFIG_PACKAGE_php8-mod-session=m +CONFIG_PACKAGE_php8-mod-shmop=m +CONFIG_PACKAGE_php8-mod-simplexml=m +CONFIG_PACKAGE_php8-mod-snmp=m +CONFIG_PACKAGE_php8-mod-soap=m +CONFIG_PACKAGE_php8-mod-sockets=m +CONFIG_PACKAGE_php8-mod-sodium=m +CONFIG_PACKAGE_php8-mod-sqlite3=m +CONFIG_PACKAGE_php8-mod-sysvmsg=m +CONFIG_PACKAGE_php8-mod-sysvsem=m +CONFIG_PACKAGE_php8-mod-sysvshm=m +CONFIG_PACKAGE_php8-mod-tokenizer=m +CONFIG_PACKAGE_php8-mod-xml=m +CONFIG_PACKAGE_php8-mod-xmlreader=m +CONFIG_PACKAGE_php8-mod-xmlwriter=m +CONFIG_PACKAGE_php8-mod-zip=m +CONFIG_PACKAGE_php8-pecl-dio=m +CONFIG_PACKAGE_php8-pecl-http=m +CONFIG_PACKAGE_php8-pecl-imagick=m +CONFIG_PACKAGE_php8-pecl-krb5=m +CONFIG_PACKAGE_php8-pecl-mcrypt=m +CONFIG_PACKAGE_php8-pecl-raphf=m +CONFIG_PACKAGE_php8-pecl-redis=m +CONFIG_PACKAGE_php8-pecl-xdebug=m # end of PHP8 # # Perl # -# CONFIG_PACKAGE_perl is not set +CONFIG_PACKAGE_perl=m + +# +# Configuration +# +CONFIG_PERL_THREADS=y +# CONFIG_PERL_TESTS is not set +CONFIG_PERL_NOCOMMENT=y +# end of Configuration + +CONFIG_PACKAGE_perl-ack=m +CONFIG_PACKAGE_perl-authen-sasl=m +CONFIG_PACKAGE_perl-authen-sasl-xs=m +CONFIG_PACKAGE_perl-cgi=m +CONFIG_PACKAGE_perl-compress-bzip2=m +CONFIG_PACKAGE_perl-dbi=m +CONFIG_PACKAGE_perl-device-serialport=m +CONFIG_PACKAGE_perl-device-usb=m +CONFIG_PACKAGE_perl-encode-locale=m +CONFIG_PACKAGE_perl-file-listing=m +CONFIG_PACKAGE_perl-file-next=m +CONFIG_PACKAGE_perl-file-rsyncp=m +CONFIG_PACKAGE_perl-file-sharedir-install=m +CONFIG_PACKAGE_perl-html-form=m +CONFIG_PACKAGE_perl-html-parser=m +CONFIG_PACKAGE_perl-html-tagset=m +CONFIG_PACKAGE_perl-html-tree=m +CONFIG_PACKAGE_perl-http-cookies=m +CONFIG_PACKAGE_perl-http-daemon=m +CONFIG_PACKAGE_perl-http-date=m +CONFIG_PACKAGE_perl-http-message=m +CONFIG_PACKAGE_perl-http-negotiate=m +CONFIG_PACKAGE_perl-http-server-simple=m +CONFIG_PACKAGE_perl-inline=m +CONFIG_PACKAGE_perl-inline-c=m +CONFIG_PACKAGE_perl-io-html=m +CONFIG_PACKAGE_perl-lockfile-simple=m +CONFIG_PACKAGE_perl-lwp-mediatypes=m +CONFIG_PACKAGE_perl-net-cidr-lite=m +CONFIG_PACKAGE_perl-net-dns=m +CONFIG_PACKAGE_perl-net-http=m +CONFIG_PACKAGE_perl-net-telnet=m +CONFIG_PACKAGE_perl-netaddr-ip=m +CONFIG_PACKAGE_perl-parse-recdescent=m +CONFIG_PACKAGE_perl-parse-yapp=m +CONFIG_PACKAGE_perl-sub-uplevel=m +CONFIG_PACKAGE_perl-test-harness=m +CONFIG_PACKAGE_perl-test-warn=m +CONFIG_PACKAGE_perl-text-csv_xs=m +CONFIG_PACKAGE_perl-time-moment=m +CONFIG_PACKAGE_perl-try-tiny=m +CONFIG_PACKAGE_perl-uri=m +CONFIG_PACKAGE_perl-www=m +CONFIG_PACKAGE_perl-www-curl=m +CONFIG_PACKAGE_perl-www-mechanize=m +CONFIG_PACKAGE_perl-www-robotrules=m +CONFIG_PACKAGE_perl-xml-parser=m +CONFIG_PACKAGE_perlbase-anydbm-file=m +CONFIG_PACKAGE_perlbase-app=m +CONFIG_PACKAGE_perlbase-archive=m +CONFIG_PACKAGE_perlbase-attribute=m +CONFIG_PACKAGE_perlbase-attributes=m +CONFIG_PACKAGE_perlbase-autodie=m +CONFIG_PACKAGE_perlbase-autoloader=m +CONFIG_PACKAGE_perlbase-autosplit=m +CONFIG_PACKAGE_perlbase-autouse=m +CONFIG_PACKAGE_perlbase-b=m +CONFIG_PACKAGE_perlbase-base=m +CONFIG_PACKAGE_perlbase-benchmark=m +CONFIG_PACKAGE_perlbase-bigint=m +CONFIG_PACKAGE_perlbase-bignum=m +CONFIG_PACKAGE_perlbase-blib=m +CONFIG_PACKAGE_perlbase-bytes=m +CONFIG_PACKAGE_perlbase-charnames=m +CONFIG_PACKAGE_perlbase-class=m +CONFIG_PACKAGE_perlbase-compress=m +CONFIG_PACKAGE_perlbase-config=m +CONFIG_PACKAGE_perlbase-cpan=m +CONFIG_PACKAGE_perlbase-cwd=m +CONFIG_PACKAGE_perlbase-data=m +CONFIG_PACKAGE_perlbase-db=m +CONFIG_PACKAGE_perlbase-db-file=m +CONFIG_PACKAGE_perlbase-dbm-filter=m +CONFIG_PACKAGE_perlbase-devel=m +CONFIG_PACKAGE_perlbase-diagnostics=m +CONFIG_PACKAGE_perlbase-digest=m +CONFIG_PACKAGE_perlbase-dirhandle=m +CONFIG_PACKAGE_perlbase-dumpvalue=m +CONFIG_PACKAGE_perlbase-dumpvar=m +CONFIG_PACKAGE_perlbase-dynaloader=m +CONFIG_PACKAGE_perlbase-encode=m +CONFIG_PACKAGE_perlbase-encoding=m +CONFIG_PACKAGE_perlbase-english=m +CONFIG_PACKAGE_perlbase-env=m +CONFIG_PACKAGE_perlbase-errno=m +CONFIG_PACKAGE_perlbase-essential=m +CONFIG_PACKAGE_perlbase-experimental=m +CONFIG_PACKAGE_perlbase-extutils=m +CONFIG_PACKAGE_perlbase-fatal=m +CONFIG_PACKAGE_perlbase-fcntl=m +CONFIG_PACKAGE_perlbase-feature=m +CONFIG_PACKAGE_perlbase-fields=m +CONFIG_PACKAGE_perlbase-file=m +CONFIG_PACKAGE_perlbase-filecache=m +CONFIG_PACKAGE_perlbase-filehandle=m +CONFIG_PACKAGE_perlbase-filetest=m +CONFIG_PACKAGE_perlbase-filter=m +CONFIG_PACKAGE_perlbase-findbin=m +CONFIG_PACKAGE_perlbase-gdbm-file=m +CONFIG_PACKAGE_perlbase-getopt=m +CONFIG_PACKAGE_perlbase-hash=m +CONFIG_PACKAGE_perlbase-http-tiny=m +CONFIG_PACKAGE_perlbase-i18n=m +CONFIG_PACKAGE_perlbase-if=m +CONFIG_PACKAGE_perlbase-integer=m +CONFIG_PACKAGE_perlbase-io=m +CONFIG_PACKAGE_perlbase-ipc=m +CONFIG_PACKAGE_perlbase-json-pp=m +CONFIG_PACKAGE_perlbase-less=m +CONFIG_PACKAGE_perlbase-list=m +CONFIG_PACKAGE_perlbase-locale=m +CONFIG_PACKAGE_perlbase-math=m +CONFIG_PACKAGE_perlbase-memoize=m +CONFIG_PACKAGE_perlbase-meta-notation=m +CONFIG_PACKAGE_perlbase-mime=m +CONFIG_PACKAGE_perlbase-module=m +CONFIG_PACKAGE_perlbase-mro=m +CONFIG_PACKAGE_perlbase-net=m +CONFIG_PACKAGE_perlbase-next=m +CONFIG_PACKAGE_perlbase-o=m +CONFIG_PACKAGE_perlbase-opcode=m +CONFIG_PACKAGE_perlbase-open=m +CONFIG_PACKAGE_perlbase-ops=m +CONFIG_PACKAGE_perlbase-ostype=m +CONFIG_PACKAGE_perlbase-params=m +CONFIG_PACKAGE_perlbase-perl5db=m +CONFIG_PACKAGE_perlbase-perlio=m +CONFIG_PACKAGE_perlbase-pod=m +CONFIG_PACKAGE_perlbase-posix=m +CONFIG_PACKAGE_perlbase-re=m +CONFIG_PACKAGE_perlbase-safe=m +CONFIG_PACKAGE_perlbase-scalar=m +CONFIG_PACKAGE_perlbase-sdbm-file=m +CONFIG_PACKAGE_perlbase-search=m +CONFIG_PACKAGE_perlbase-selectsaver=m +CONFIG_PACKAGE_perlbase-selfloader=m +CONFIG_PACKAGE_perlbase-sigtrap=m +CONFIG_PACKAGE_perlbase-socket=m +CONFIG_PACKAGE_perlbase-sort=m +CONFIG_PACKAGE_perlbase-storable=m +CONFIG_PACKAGE_perlbase-symbol=m +CONFIG_PACKAGE_perlbase-sys=m +CONFIG_PACKAGE_perlbase-tap=m +CONFIG_PACKAGE_perlbase-term=m +CONFIG_PACKAGE_perlbase-test=m +CONFIG_PACKAGE_perlbase-text=m +CONFIG_PACKAGE_perlbase-thread=m +CONFIG_PACKAGE_perlbase-threads=m +CONFIG_PACKAGE_perlbase-tie=m +CONFIG_PACKAGE_perlbase-time=m +CONFIG_PACKAGE_perlbase-unicode=m +CONFIG_PACKAGE_perlbase-unicore=m +CONFIG_PACKAGE_perlbase-universal=m +CONFIG_PACKAGE_perlbase-user=m +CONFIG_PACKAGE_perlbase-utf8=m +CONFIG_PACKAGE_perlbase-version=m +CONFIG_PACKAGE_perlbase-xsloader=m # end of Perl # # Python # -# CONFIG_PACKAGE_libpython3 is not set -# CONFIG_PACKAGE_micropython-lib is not set -# CONFIG_PACKAGE_micropython-lib-src is not set -# CONFIG_PACKAGE_micropython-lib-unix is not set -# CONFIG_PACKAGE_micropython-lib-unix-src is not set -# CONFIG_PACKAGE_micropython-mbedtls is not set -# CONFIG_PACKAGE_micropython-nossl is not set -# CONFIG_PACKAGE_pipx is not set -# CONFIG_PACKAGE_python3 is not set -# CONFIG_PACKAGE_python3-aio-mqtt-mod is not set -# CONFIG_PACKAGE_python3-aiohttp is not set -# CONFIG_PACKAGE_python3-aiohttp-cors is not set -# CONFIG_PACKAGE_python3-aiosignal is not set -# CONFIG_PACKAGE_python3-apipkg is not set -# CONFIG_PACKAGE_python3-apparmor is not set -# CONFIG_PACKAGE_python3-appdirs is not set -# CONFIG_PACKAGE_python3-argcomplete is not set -# CONFIG_PACKAGE_python3-asgiref is not set -# CONFIG_PACKAGE_python3-astral is not set -# CONFIG_PACKAGE_python3-async-generator is not set -# CONFIG_PACKAGE_python3-async-timeout is not set -# CONFIG_PACKAGE_python3-asyncio is not set -# CONFIG_PACKAGE_python3-atomicwrites is not set -# CONFIG_PACKAGE_python3-attrs is not set -# CONFIG_PACKAGE_python3-augeas is not set -# CONFIG_PACKAGE_python3-automat is not set -# CONFIG_PACKAGE_python3-awesomeversion is not set -# CONFIG_PACKAGE_python3-awscli is not set -# CONFIG_PACKAGE_python3-babel is not set -# CONFIG_PACKAGE_python3-base is not set -# CONFIG_PACKAGE_python3-bcrypt is not set -# CONFIG_PACKAGE_python3-bidict is not set -# CONFIG_PACKAGE_python3-ble2mqtt is not set -# CONFIG_PACKAGE_python3-bleak is not set -# CONFIG_PACKAGE_python3-boto3 is not set -# CONFIG_PACKAGE_python3-botocore is not set -# CONFIG_PACKAGE_python3-bottle is not set -# CONFIG_PACKAGE_python3-cached-property is not set -# CONFIG_PACKAGE_python3-cachelib is not set -# CONFIG_PACKAGE_python3-cachetools is not set -# CONFIG_PACKAGE_python3-certifi is not set -# CONFIG_PACKAGE_python3-cffi is not set -# CONFIG_PACKAGE_python3-cgi is not set -# CONFIG_PACKAGE_python3-cgitb is not set -# CONFIG_PACKAGE_python3-chardet is not set -# CONFIG_PACKAGE_python3-charset-normalizer is not set -# CONFIG_PACKAGE_python3-ciso8601 is not set -# CONFIG_PACKAGE_python3-click is not set -# CONFIG_PACKAGE_python3-click-log is not set -# CONFIG_PACKAGE_python3-codecs is not set -# CONFIG_PACKAGE_python3-colorama is not set -# CONFIG_PACKAGE_python3-constantly is not set -# CONFIG_PACKAGE_python3-contextlib2 is not set -# CONFIG_PACKAGE_python3-crcmod is not set -# CONFIG_PACKAGE_python3-cryptodome is not set -# CONFIG_PACKAGE_python3-cryptodomex is not set -# CONFIG_PACKAGE_python3-cryptography is not set -# CONFIG_PACKAGE_python3-ctypes is not set -# CONFIG_PACKAGE_python3-curl is not set -# CONFIG_PACKAGE_python3-dateutil is not set -# CONFIG_PACKAGE_python3-dbm is not set -# CONFIG_PACKAGE_python3-dbus-fast is not set -# CONFIG_PACKAGE_python3-decimal is not set -# CONFIG_PACKAGE_python3-decorator is not set -# CONFIG_PACKAGE_python3-defusedxml is not set -# CONFIG_PACKAGE_python3-dev is not set -# CONFIG_PACKAGE_python3-distro is not set -# CONFIG_PACKAGE_python3-distutils is not set -# CONFIG_PACKAGE_python3-django is not set -# CONFIG_PACKAGE_python3-django-cors-headers is not set -# CONFIG_PACKAGE_python3-django-restframework is not set -# CONFIG_PACKAGE_python3-dns is not set -# CONFIG_PACKAGE_python3-docker is not set -# CONFIG_PACKAGE_python3-dockerpty is not set -# CONFIG_PACKAGE_python3-docopt is not set -# CONFIG_PACKAGE_python3-docutils is not set -# CONFIG_PACKAGE_python3-dotenv is not set -# CONFIG_PACKAGE_python3-drf-nested-routers is not set -# CONFIG_PACKAGE_python3-email is not set -# CONFIG_PACKAGE_python3-engineio is not set -# CONFIG_PACKAGE_python3-et_xmlfile is not set -# CONFIG_PACKAGE_python3-evdev is not set -# CONFIG_PACKAGE_python3-eventlet is not set -# CONFIG_PACKAGE_python3-execnet is not set -# CONFIG_PACKAGE_python3-flask is not set -# CONFIG_PACKAGE_python3-flask-babel is not set -# CONFIG_PACKAGE_python3-flask-httpauth is not set -# CONFIG_PACKAGE_python3-flask-login is not set -# CONFIG_PACKAGE_python3-flask-seasurf is not set -# CONFIG_PACKAGE_python3-flask-session is not set -# CONFIG_PACKAGE_python3-flask-socketio is not set -# CONFIG_PACKAGE_python3-flup is not set -# CONFIG_PACKAGE_python3-fnv-hash-fast is not set -# CONFIG_PACKAGE_python3-fnvhash is not set -# CONFIG_PACKAGE_python3-frozenlist is not set -# CONFIG_PACKAGE_python3-gensio is not set -# CONFIG_PACKAGE_python3-gevent is not set -# CONFIG_PACKAGE_python3-gmpy2 is not set -# CONFIG_PACKAGE_python3-gnupg is not set -# CONFIG_PACKAGE_python3-gpiod is not set -# CONFIG_PACKAGE_python3-greenlet is not set -# CONFIG_PACKAGE_python3-hyperlink is not set -# CONFIG_PACKAGE_python3-idna is not set -# CONFIG_PACKAGE_python3-ifaddr is not set -# CONFIG_PACKAGE_python3-incremental is not set -# CONFIG_PACKAGE_python3-influxdb is not set -# CONFIG_PACKAGE_python3-iniconfig is not set -# CONFIG_PACKAGE_python3-intelhex is not set -# CONFIG_PACKAGE_python3-iperf3 is not set -# CONFIG_PACKAGE_python3-itsdangerous is not set -# CONFIG_PACKAGE_python3-jdcal is not set -# CONFIG_PACKAGE_python3-jinja2 is not set -# CONFIG_PACKAGE_python3-jmespath is not set -# CONFIG_PACKAGE_python3-jsonpath-ng is not set -# CONFIG_PACKAGE_python3-jsonschema is not set -# CONFIG_PACKAGE_python3-jsonschema-specifications is not set -# CONFIG_PACKAGE_python3-lib2to3 is not set -# CONFIG_PACKAGE_python3-libmodbus is not set -# CONFIG_PACKAGE_python3-light is not set +CONFIG_PACKAGE_libpython3=m +CONFIG_PACKAGE_micropython-lib=m +CONFIG_PACKAGE_micropython-lib-src=m +CONFIG_PACKAGE_micropython-lib-unix=m +CONFIG_PACKAGE_micropython-lib-unix-src=m +CONFIG_PACKAGE_micropython-mbedtls=m +CONFIG_PACKAGE_micropython-nossl=m +CONFIG_PACKAGE_pipx=m +CONFIG_PACKAGE_pipx-src=m +CONFIG_PACKAGE_python3=m +CONFIG_PACKAGE_python3-aio-mqtt-mod=m +CONFIG_PACKAGE_python3-aio-mqtt-mod-src=m +CONFIG_PACKAGE_python3-aiohttp=m +CONFIG_PACKAGE_python3-aiohttp-cors=m +CONFIG_PACKAGE_python3-aiohttp-cors-src=m +CONFIG_PACKAGE_python3-aiohttp-src=m +CONFIG_PACKAGE_python3-aiosignal=m +CONFIG_PACKAGE_python3-aiosignal-src=m +CONFIG_PACKAGE_python3-apipkg=m +CONFIG_PACKAGE_python3-apipkg-src=m +CONFIG_PACKAGE_python3-apparmor=m +CONFIG_PACKAGE_python3-appdirs=m +CONFIG_PACKAGE_python3-appdirs-src=m +CONFIG_PACKAGE_python3-argcomplete=m +CONFIG_PACKAGE_python3-argcomplete-src=m +CONFIG_PACKAGE_python3-asgiref=m +CONFIG_PACKAGE_python3-asgiref-src=m +CONFIG_PACKAGE_python3-astral=m +CONFIG_PACKAGE_python3-astral-src=m +CONFIG_PACKAGE_python3-async-generator=m +CONFIG_PACKAGE_python3-async-generator-src=m +CONFIG_PACKAGE_python3-async-timeout=m +CONFIG_PACKAGE_python3-async-timeout-src=m +CONFIG_PACKAGE_python3-asyncio=m +CONFIG_PACKAGE_python3-asyncio-src=m +CONFIG_PACKAGE_python3-atomicwrites=m +CONFIG_PACKAGE_python3-atomicwrites-src=m +CONFIG_PACKAGE_python3-attrs=m +CONFIG_PACKAGE_python3-attrs-src=m +CONFIG_PACKAGE_python3-augeas=m +CONFIG_PACKAGE_python3-augeas-src=m +CONFIG_PACKAGE_python3-automat=m +CONFIG_PACKAGE_python3-automat-src=m +CONFIG_PACKAGE_python3-awesomeversion=m +CONFIG_PACKAGE_python3-awesomeversion-src=m +CONFIG_PACKAGE_python3-awscli=m +CONFIG_PACKAGE_python3-awscli-src=m +CONFIG_PACKAGE_python3-babel=m +CONFIG_PACKAGE_python3-babel-src=m +CONFIG_PACKAGE_python3-base=m +CONFIG_PACKAGE_python3-base-src=m +CONFIG_PACKAGE_python3-bcrypt=m +CONFIG_PACKAGE_python3-bcrypt-src=m +CONFIG_PACKAGE_python3-bidict=m +CONFIG_PACKAGE_python3-bidict-src=m +CONFIG_PACKAGE_python3-ble2mqtt=m +CONFIG_PACKAGE_python3-ble2mqtt-src=m +CONFIG_PACKAGE_python3-bleak=m +CONFIG_PACKAGE_python3-bleak-src=m +CONFIG_PACKAGE_python3-boto3=m +CONFIG_PACKAGE_python3-boto3-src=m +CONFIG_PACKAGE_python3-botocore=m +CONFIG_PACKAGE_python3-botocore-src=m +CONFIG_PACKAGE_python3-bottle=m +CONFIG_PACKAGE_python3-bottle-src=m +CONFIG_PACKAGE_python3-cached-property=m +CONFIG_PACKAGE_python3-cached-property-src=m +CONFIG_PACKAGE_python3-cachelib=m +CONFIG_PACKAGE_python3-cachelib-src=m +CONFIG_PACKAGE_python3-cachetools=m +CONFIG_PACKAGE_python3-cachetools-src=m +CONFIG_PACKAGE_python3-certifi=m +CONFIG_PACKAGE_python3-certifi-src=m +CONFIG_PACKAGE_python3-cffi=m +CONFIG_PACKAGE_python3-cffi-src=m +CONFIG_PACKAGE_python3-cgi=m +CONFIG_PACKAGE_python3-cgi-src=m +CONFIG_PACKAGE_python3-cgitb=m +CONFIG_PACKAGE_python3-cgitb-src=m +CONFIG_PACKAGE_python3-chardet=m +CONFIG_PACKAGE_python3-chardet-src=m +CONFIG_PACKAGE_python3-charset-normalizer=m +CONFIG_PACKAGE_python3-charset-normalizer-src=m +CONFIG_PACKAGE_python3-ciso8601=m +CONFIG_PACKAGE_python3-ciso8601-src=m +CONFIG_PACKAGE_python3-click=m +CONFIG_PACKAGE_python3-click-log=m +CONFIG_PACKAGE_python3-click-log-src=m +CONFIG_PACKAGE_python3-click-src=m +CONFIG_PACKAGE_python3-codecs=m +CONFIG_PACKAGE_python3-codecs-src=m +CONFIG_PACKAGE_python3-colorama=m +CONFIG_PACKAGE_python3-colorama-src=m +CONFIG_PACKAGE_python3-constantly=m +CONFIG_PACKAGE_python3-constantly-src=m +CONFIG_PACKAGE_python3-contextlib2=m +CONFIG_PACKAGE_python3-contextlib2-src=m +CONFIG_PACKAGE_python3-crcmod=m +CONFIG_PACKAGE_python3-crcmod-src=m +CONFIG_PACKAGE_python3-cryptodome=m +CONFIG_PACKAGE_python3-cryptodome-src=m +CONFIG_PACKAGE_python3-cryptodomex=m +CONFIG_PACKAGE_python3-cryptodomex-src=m +CONFIG_PACKAGE_python3-cryptography=m +CONFIG_PACKAGE_python3-cryptography-src=m +CONFIG_PACKAGE_python3-ctypes=m +CONFIG_PACKAGE_python3-ctypes-src=m +CONFIG_PACKAGE_python3-curl=m +CONFIG_PACKAGE_python3-curl-src=m +CONFIG_PACKAGE_python3-dateutil=m +CONFIG_PACKAGE_python3-dateutil-src=m +CONFIG_PACKAGE_python3-dbm=m +CONFIG_PACKAGE_python3-dbm-src=m +CONFIG_PACKAGE_python3-dbus-fast=m +CONFIG_PACKAGE_python3-dbus-fast-src=m +CONFIG_PACKAGE_python3-decimal=m +CONFIG_PACKAGE_python3-decimal-src=m +CONFIG_PACKAGE_python3-decorator=m +CONFIG_PACKAGE_python3-decorator-src=m +CONFIG_PACKAGE_python3-defusedxml=m +CONFIG_PACKAGE_python3-defusedxml-src=m +CONFIG_PACKAGE_python3-dev=m +CONFIG_PACKAGE_python3-dev-src=m +CONFIG_PACKAGE_python3-distro=m +CONFIG_PACKAGE_python3-distro-src=m +CONFIG_PACKAGE_python3-distutils=m +CONFIG_PACKAGE_python3-distutils-src=m +CONFIG_PACKAGE_python3-django=m +CONFIG_PACKAGE_python3-django-cors-headers=m +CONFIG_PACKAGE_python3-django-cors-headers-src=m +CONFIG_PACKAGE_python3-django-restframework=m +CONFIG_PACKAGE_python3-django-restframework-src=m +CONFIG_PACKAGE_python3-django-src=m +CONFIG_PACKAGE_python3-dns=m +CONFIG_PACKAGE_python3-dns-src=m +CONFIG_PACKAGE_python3-docker=m +CONFIG_PACKAGE_python3-docker-src=m +CONFIG_PACKAGE_python3-dockerpty=m +CONFIG_PACKAGE_python3-dockerpty-src=m +CONFIG_PACKAGE_python3-docopt=m +CONFIG_PACKAGE_python3-docopt-src=m +CONFIG_PACKAGE_python3-docutils=m +CONFIG_PACKAGE_python3-docutils-src=m +CONFIG_PACKAGE_python3-dotenv=m +CONFIG_PACKAGE_python3-dotenv-src=m +CONFIG_PACKAGE_python3-drf-nested-routers=m +CONFIG_PACKAGE_python3-drf-nested-routers-src=m +CONFIG_PACKAGE_python3-email=m +CONFIG_PACKAGE_python3-email-src=m +CONFIG_PACKAGE_python3-engineio=m +CONFIG_PACKAGE_python3-engineio-src=m +CONFIG_PACKAGE_python3-et_xmlfile=m +CONFIG_PACKAGE_python3-et_xmlfile-src=m +CONFIG_PACKAGE_python3-evdev=m +CONFIG_PACKAGE_python3-evdev-src=m +CONFIG_PACKAGE_python3-eventlet=m +CONFIG_PACKAGE_python3-eventlet-src=m +CONFIG_PACKAGE_python3-execnet=m +CONFIG_PACKAGE_python3-execnet-src=m +CONFIG_PACKAGE_python3-flask=m +CONFIG_PACKAGE_python3-flask-babel=m +CONFIG_PACKAGE_python3-flask-babel-src=m +CONFIG_PACKAGE_python3-flask-httpauth=m +CONFIG_PACKAGE_python3-flask-httpauth-src=m +CONFIG_PACKAGE_python3-flask-login=m +CONFIG_PACKAGE_python3-flask-login-src=m +CONFIG_PACKAGE_python3-flask-seasurf=m +CONFIG_PACKAGE_python3-flask-seasurf-src=m +CONFIG_PACKAGE_python3-flask-session=m +CONFIG_PACKAGE_python3-flask-session-src=m +CONFIG_PACKAGE_python3-flask-socketio=m +CONFIG_PACKAGE_python3-flask-socketio-src=m +CONFIG_PACKAGE_python3-flask-src=m +CONFIG_PACKAGE_python3-flup=m +CONFIG_PACKAGE_python3-flup-src=m +CONFIG_PACKAGE_python3-fnv-hash-fast=m +CONFIG_PACKAGE_python3-fnv-hash-fast-src=m +CONFIG_PACKAGE_python3-fnvhash=m +CONFIG_PACKAGE_python3-fnvhash-src=m +CONFIG_PACKAGE_python3-frozenlist=m +CONFIG_PACKAGE_python3-frozenlist-src=m +CONFIG_PACKAGE_python3-gensio=m +CONFIG_PACKAGE_python3-gevent=m +CONFIG_PACKAGE_python3-gevent-src=m +CONFIG_PACKAGE_python3-gmpy2=m +CONFIG_PACKAGE_python3-gmpy2-src=m +CONFIG_PACKAGE_python3-gnupg=m +CONFIG_PACKAGE_python3-gnupg-src=m +CONFIG_PACKAGE_python3-gpiod=m +CONFIG_PACKAGE_python3-greenlet=m +CONFIG_PACKAGE_python3-greenlet-src=m +CONFIG_PACKAGE_python3-hyperlink=m +CONFIG_PACKAGE_python3-hyperlink-src=m +CONFIG_PACKAGE_python3-idna=m +CONFIG_PACKAGE_python3-idna-src=m +CONFIG_PACKAGE_python3-ifaddr=m +CONFIG_PACKAGE_python3-ifaddr-src=m +CONFIG_PACKAGE_python3-incremental=m +CONFIG_PACKAGE_python3-incremental-src=m +CONFIG_PACKAGE_python3-influxdb=m +CONFIG_PACKAGE_python3-influxdb-src=m +CONFIG_PACKAGE_python3-iniconfig=m +CONFIG_PACKAGE_python3-iniconfig-src=m +CONFIG_PACKAGE_python3-intelhex=m +CONFIG_PACKAGE_python3-intelhex-src=m +CONFIG_PACKAGE_python3-iperf3=m +CONFIG_PACKAGE_python3-iperf3-src=m +CONFIG_PACKAGE_python3-itsdangerous=m +CONFIG_PACKAGE_python3-itsdangerous-src=m +CONFIG_PACKAGE_python3-jdcal=m +CONFIG_PACKAGE_python3-jdcal-src=m +CONFIG_PACKAGE_python3-jinja2=m +CONFIG_PACKAGE_python3-jinja2-src=m +CONFIG_PACKAGE_python3-jmespath=m +CONFIG_PACKAGE_python3-jmespath-src=m +CONFIG_PACKAGE_python3-jsonpath-ng=m +CONFIG_PACKAGE_python3-jsonpath-ng-src=m +CONFIG_PACKAGE_python3-jsonschema=m +CONFIG_PACKAGE_python3-jsonschema-specifications=m +CONFIG_PACKAGE_python3-jsonschema-specifications-src=m +CONFIG_PACKAGE_python3-jsonschema-src=m +CONFIG_PACKAGE_python3-lib2to3=m +CONFIG_PACKAGE_python3-lib2to3-src=m +CONFIG_PACKAGE_python3-libmodbus=m +CONFIG_PACKAGE_python3-libmodbus-src=m +CONFIG_PACKAGE_python3-light=m # # Configuration @@ -3602,23 +4062,40 @@ CONFIG_PACKAGE_luaposix=m # CONFIG_PYTHON3_HOST_PIP_CACHE_WORLD_READABLE is not set # end of Configuration -# CONFIG_PACKAGE_python3-logging is not set -# CONFIG_PACKAGE_python3-lru-dict is not set -# CONFIG_PACKAGE_python3-lxml is not set -# CONFIG_PACKAGE_python3-lzma is not set -# CONFIG_PACKAGE_python3-markdown is not set -# CONFIG_PACKAGE_python3-markupsafe is not set -# CONFIG_PACKAGE_python3-maxminddb is not set -# CONFIG_PACKAGE_python3-more-itertools is not set -# CONFIG_PACKAGE_python3-msgpack is not set -# CONFIG_PACKAGE_python3-multidict is not set -# CONFIG_PACKAGE_python3-multiprocessing is not set -# CONFIG_PACKAGE_python3-ncurses is not set -# CONFIG_PACKAGE_python3-netdisco is not set -# CONFIG_PACKAGE_python3-netifaces is not set -# CONFIG_PACKAGE_python3-networkx is not set -# CONFIG_PACKAGE_python3-newt is not set -# CONFIG_PACKAGE_python3-numpy is not set +CONFIG_PACKAGE_python3-light-src=m +CONFIG_PACKAGE_python3-logging=m +CONFIG_PACKAGE_python3-logging-src=m +CONFIG_PACKAGE_python3-lru-dict=m +CONFIG_PACKAGE_python3-lru-dict-src=m +CONFIG_PACKAGE_python3-lxml=m +CONFIG_PACKAGE_python3-lxml-src=m +CONFIG_PACKAGE_python3-lzma=m +CONFIG_PACKAGE_python3-lzma-src=m +CONFIG_PACKAGE_python3-markdown=m +CONFIG_PACKAGE_python3-markdown-src=m +CONFIG_PACKAGE_python3-markupsafe=m +CONFIG_PACKAGE_python3-markupsafe-src=m +CONFIG_PACKAGE_python3-maxminddb=m +CONFIG_PACKAGE_python3-maxminddb-src=m +CONFIG_PACKAGE_python3-more-itertools=m +CONFIG_PACKAGE_python3-more-itertools-src=m +CONFIG_PACKAGE_python3-msgpack=m +CONFIG_PACKAGE_python3-msgpack-src=m +CONFIG_PACKAGE_python3-multidict=m +CONFIG_PACKAGE_python3-multidict-src=m +CONFIG_PACKAGE_python3-multiprocessing=m +CONFIG_PACKAGE_python3-multiprocessing-src=m +CONFIG_PACKAGE_python3-ncurses=m +CONFIG_PACKAGE_python3-ncurses-src=m +CONFIG_PACKAGE_python3-netdisco=m +CONFIG_PACKAGE_python3-netdisco-src=m +CONFIG_PACKAGE_python3-netifaces=m +CONFIG_PACKAGE_python3-netifaces-src=m +CONFIG_PACKAGE_python3-networkx=m +CONFIG_PACKAGE_python3-networkx-src=m +CONFIG_PACKAGE_python3-newt=m +CONFIG_PACKAGE_python3-newt-src=m +CONFIG_PACKAGE_python3-numpy=m # # Configuration @@ -3626,121 +4103,337 @@ CONFIG_PACKAGE_luaposix=m # CONFIG_NUMPY_OPENBLAS_SUPPORT is not set # end of Configuration -# CONFIG_PACKAGE_python3-openpyxl is not set -# CONFIG_PACKAGE_python3-openssl is not set -# CONFIG_PACKAGE_python3-orjson is not set -# CONFIG_PACKAGE_python3-outcome is not set -# CONFIG_PACKAGE_python3-packages is not set -# CONFIG_PACKAGE_python3-packaging is not set -# CONFIG_PACKAGE_python3-paho-mqtt is not set -# CONFIG_PACKAGE_python3-paramiko is not set -# CONFIG_PACKAGE_python3-parsley is not set -# CONFIG_PACKAGE_python3-passlib is not set -# CONFIG_PACKAGE_python3-pillow is not set -# CONFIG_PACKAGE_python3-pip is not set -# CONFIG_PACKAGE_python3-pkg-resources is not set -# CONFIG_PACKAGE_python3-platformdirs is not set -# CONFIG_PACKAGE_python3-pluggy is not set -# CONFIG_PACKAGE_python3-ply is not set -# CONFIG_PACKAGE_python3-psutil is not set -# CONFIG_PACKAGE_python3-psycopg2 is not set -# CONFIG_PACKAGE_python3-py is not set -# CONFIG_PACKAGE_python3-pyasn1 is not set -# CONFIG_PACKAGE_python3-pyasn1-modules is not set -# CONFIG_PACKAGE_python3-pycares is not set -# CONFIG_PACKAGE_python3-pycparser is not set -# CONFIG_PACKAGE_python3-pycrate is not set -# CONFIG_PACKAGE_python3-pydoc is not set -# CONFIG_PACKAGE_python3-pyfuse3 is not set -# CONFIG_PACKAGE_python3-pyinotify is not set -# CONFIG_PACKAGE_python3-pymysql is not set -# CONFIG_PACKAGE_python3-pymysql-sha-pwd is not set -# CONFIG_PACKAGE_python3-pynacl is not set -# CONFIG_PACKAGE_python3-pyodbc is not set -# CONFIG_PACKAGE_python3-pyopenssl is not set -# CONFIG_PACKAGE_python3-pyotp is not set -# CONFIG_PACKAGE_python3-pyparsing is not set -# CONFIG_PACKAGE_python3-pyproject-metadata is not set -# CONFIG_PACKAGE_python3-pyroute2 is not set -# CONFIG_PACKAGE_python3-pyrsistent is not set -# CONFIG_PACKAGE_python3-pyserial is not set -# CONFIG_PACKAGE_python3-pysocks is not set -# CONFIG_PACKAGE_python3-pytest is not set -# CONFIG_PACKAGE_python3-pytest-forked is not set -# CONFIG_PACKAGE_python3-pytest-xdist is not set -# CONFIG_PACKAGE_python3-pytz is not set -# CONFIG_PACKAGE_python3-readline is not set -# CONFIG_PACKAGE_python3-referencing is not set -# CONFIG_PACKAGE_python3-requests is not set -# CONFIG_PACKAGE_python3-rpds-py is not set -# CONFIG_PACKAGE_python3-rsa is not set -# CONFIG_PACKAGE_python3-ruamel-yaml is not set -# CONFIG_PACKAGE_python3-s3transfer is not set -# CONFIG_PACKAGE_python3-schedule is not set -# CONFIG_PACKAGE_python3-schema is not set -# CONFIG_PACKAGE_python3-selinux is not set -# CONFIG_PACKAGE_python3-semanage is not set -# CONFIG_PACKAGE_python3-sentry-sdk is not set -# CONFIG_PACKAGE_python3-seobject is not set -# CONFIG_PACKAGE_python3-sepolgen is not set -# CONFIG_PACKAGE_python3-sepolicy is not set -# CONFIG_PACKAGE_python3-service-identity is not set -# CONFIG_PACKAGE_python3-setools is not set -# CONFIG_PACKAGE_python3-setuptools is not set -# CONFIG_PACKAGE_python3-six is not set -# CONFIG_PACKAGE_python3-slugify is not set -# CONFIG_PACKAGE_python3-smbus is not set -# CONFIG_PACKAGE_python3-sniffio is not set -# CONFIG_PACKAGE_python3-socketio is not set -# CONFIG_PACKAGE_python3-sortedcontainers is not set -# CONFIG_PACKAGE_python3-speedtest-cli is not set -# CONFIG_PACKAGE_python3-sqlalchemy is not set -# CONFIG_PACKAGE_python3-sqlite3 is not set -# CONFIG_PACKAGE_python3-sqlparse is not set -# CONFIG_PACKAGE_python3-stem is not set -# CONFIG_PACKAGE_python3-text-unidecode is not set -# CONFIG_PACKAGE_python3-texttable is not set -# CONFIG_PACKAGE_python3-toml is not set -# CONFIG_PACKAGE_python3-tornado is not set -# CONFIG_PACKAGE_python3-trio is not set -# CONFIG_PACKAGE_python3-twisted is not set -# CONFIG_PACKAGE_python3-typing-extensions is not set -# CONFIG_PACKAGE_python3-ubus is not set -# CONFIG_PACKAGE_python3-uci is not set -# CONFIG_PACKAGE_python3-unidecode is not set -# CONFIG_PACKAGE_python3-unittest is not set -# CONFIG_PACKAGE_python3-urllib is not set -# CONFIG_PACKAGE_python3-urllib3 is not set -# CONFIG_PACKAGE_python3-userpath is not set -# CONFIG_PACKAGE_python3-uuid is not set -# CONFIG_PACKAGE_python3-venv is not set -# CONFIG_PACKAGE_python3-vobject is not set -# CONFIG_PACKAGE_python3-voluptuous is not set -# CONFIG_PACKAGE_python3-voluptuous-serialize is not set -# CONFIG_PACKAGE_python3-wcwidth is not set -# CONFIG_PACKAGE_python3-websocket-client is not set -# CONFIG_PACKAGE_python3-websockets is not set -# CONFIG_PACKAGE_python3-werkzeug is not set -# CONFIG_PACKAGE_python3-xml is not set -# CONFIG_PACKAGE_python3-xmltodict is not set -# CONFIG_PACKAGE_python3-yaml is not set -# CONFIG_PACKAGE_python3-yarl is not set -# CONFIG_PACKAGE_python3-zeroconf is not set -# CONFIG_PACKAGE_python3-zipp is not set -# CONFIG_PACKAGE_python3-zope-event is not set -# CONFIG_PACKAGE_python3-zope-interface is not set +CONFIG_PACKAGE_python3-numpy-src=m +CONFIG_PACKAGE_python3-openpyxl=m +CONFIG_PACKAGE_python3-openpyxl-src=m +CONFIG_PACKAGE_python3-openssl=m +CONFIG_PACKAGE_python3-openssl-src=m +CONFIG_PACKAGE_python3-orjson=m +CONFIG_PACKAGE_python3-orjson-src=m +CONFIG_PACKAGE_python3-outcome=m +CONFIG_PACKAGE_python3-outcome-src=m +CONFIG_PACKAGE_python3-packages=m +CONFIG_PACKAGE_python3-packages-list-host="" +CONFIG_PACKAGE_python3-packages-list="" +CONFIG_PACKAGE_python3-packages-list-cleanup="" +CONFIG_PACKAGE_python3-packages-envs="" +CONFIG_PACKAGE_python3-packages-extra-deps="" +CONFIG_PACKAGE_python3-packages-index-url="" +CONFIG_PACKAGE_python3-packages-pip-opts="" +CONFIG_PACKAGE_python3-packaging=m +CONFIG_PACKAGE_python3-packaging-src=m +CONFIG_PACKAGE_python3-paho-mqtt=m +CONFIG_PACKAGE_python3-paho-mqtt-src=m +CONFIG_PACKAGE_python3-paramiko=m +CONFIG_PACKAGE_python3-paramiko-src=m +CONFIG_PACKAGE_python3-parsley=m +CONFIG_PACKAGE_python3-parsley-src=m +CONFIG_PACKAGE_python3-passlib=m +CONFIG_PACKAGE_python3-passlib-src=m +CONFIG_PACKAGE_python3-pillow=m +CONFIG_PACKAGE_python3-pillow-src=m +CONFIG_PACKAGE_python3-pip=m +CONFIG_PACKAGE_python3-pip-src=m +CONFIG_PACKAGE_python3-pkg-resources=m +CONFIG_PACKAGE_python3-pkg-resources-src=m +CONFIG_PACKAGE_python3-platformdirs=m +CONFIG_PACKAGE_python3-platformdirs-src=m +CONFIG_PACKAGE_python3-pluggy=m +CONFIG_PACKAGE_python3-pluggy-src=m +CONFIG_PACKAGE_python3-ply=m +CONFIG_PACKAGE_python3-ply-src=m +CONFIG_PACKAGE_python3-psutil=m +CONFIG_PACKAGE_python3-psutil-src=m +CONFIG_PACKAGE_python3-psycopg2=m +CONFIG_PACKAGE_python3-psycopg2-src=m +CONFIG_PACKAGE_python3-py=m +CONFIG_PACKAGE_python3-py-src=m +CONFIG_PACKAGE_python3-pyasn1=m +CONFIG_PACKAGE_python3-pyasn1-modules=m +CONFIG_PACKAGE_python3-pyasn1-modules-src=m +CONFIG_PACKAGE_python3-pyasn1-src=m +CONFIG_PACKAGE_python3-pycares=m +CONFIG_PACKAGE_python3-pycares-src=m +CONFIG_PACKAGE_python3-pycparser=m +CONFIG_PACKAGE_python3-pycparser-src=m +CONFIG_PACKAGE_python3-pycrate=m +CONFIG_PACKAGE_python3-pycrate-src=m +CONFIG_PACKAGE_python3-pydoc=m +CONFIG_PACKAGE_python3-pydoc-src=m +CONFIG_PACKAGE_python3-pyfuse3=m +CONFIG_PACKAGE_python3-pyfuse3-src=m +CONFIG_PACKAGE_python3-pyinotify=m +CONFIG_PACKAGE_python3-pyinotify-src=m +CONFIG_PACKAGE_python3-pymysql=m +CONFIG_PACKAGE_python3-pymysql-sha-pwd=m +CONFIG_PACKAGE_python3-pymysql-src=m +CONFIG_PACKAGE_python3-pynacl=m +CONFIG_PACKAGE_python3-pynacl-src=m +CONFIG_PACKAGE_python3-pyodbc=m +CONFIG_PACKAGE_python3-pyopenssl=m +CONFIG_PACKAGE_python3-pyopenssl-src=m +CONFIG_PACKAGE_python3-pyotp=m +CONFIG_PACKAGE_python3-pyotp-src=m +CONFIG_PACKAGE_python3-pyparsing=m +CONFIG_PACKAGE_python3-pyparsing-src=m +CONFIG_PACKAGE_python3-pyproject-metadata=m +CONFIG_PACKAGE_python3-pyproject-metadata-src=m +CONFIG_PACKAGE_python3-pyroute2=m +CONFIG_PACKAGE_python3-pyroute2-src=m +CONFIG_PACKAGE_python3-pyrsistent=m +CONFIG_PACKAGE_python3-pyrsistent-src=m +CONFIG_PACKAGE_python3-pyserial=m +CONFIG_PACKAGE_python3-pyserial-src=m +CONFIG_PACKAGE_python3-pysocks=m +CONFIG_PACKAGE_python3-pysocks-src=m +CONFIG_PACKAGE_python3-pytest=m +CONFIG_PACKAGE_python3-pytest-forked=m +CONFIG_PACKAGE_python3-pytest-forked-src=m +CONFIG_PACKAGE_python3-pytest-src=m +CONFIG_PACKAGE_python3-pytest-xdist=m +CONFIG_PACKAGE_python3-pytest-xdist-src=m +CONFIG_PACKAGE_python3-pytz=m +CONFIG_PACKAGE_python3-pytz-src=m +CONFIG_PACKAGE_python3-readline=m +CONFIG_PACKAGE_python3-readline-src=m +CONFIG_PACKAGE_python3-referencing=m +CONFIG_PACKAGE_python3-referencing-src=m +CONFIG_PACKAGE_python3-requests=m +CONFIG_PACKAGE_python3-requests-src=m +CONFIG_PACKAGE_python3-rpds-py=m +CONFIG_PACKAGE_python3-rpds-py-src=m +CONFIG_PACKAGE_python3-rsa=m +CONFIG_PACKAGE_python3-rsa-src=m +CONFIG_PACKAGE_python3-ruamel-yaml=m +CONFIG_PACKAGE_python3-ruamel-yaml-src=m +CONFIG_PACKAGE_python3-s3transfer=m +CONFIG_PACKAGE_python3-s3transfer-src=m +CONFIG_PACKAGE_python3-schedule=m +CONFIG_PACKAGE_python3-schedule-src=m +CONFIG_PACKAGE_python3-schema=m +CONFIG_PACKAGE_python3-schema-src=m +CONFIG_PACKAGE_python3-selinux=m +CONFIG_PACKAGE_python3-selinux-src=m +CONFIG_PACKAGE_python3-semanage=m +CONFIG_PACKAGE_python3-semanage-src=m +CONFIG_PACKAGE_python3-sentry-sdk=m +CONFIG_PACKAGE_python3-sentry-sdk-src=m +CONFIG_PACKAGE_python3-seobject=m +CONFIG_PACKAGE_python3-seobject-src=m +CONFIG_PACKAGE_python3-sepolgen=m +CONFIG_PACKAGE_python3-sepolgen-src=m +CONFIG_PACKAGE_python3-sepolicy=m +CONFIG_PACKAGE_python3-sepolicy-src=m +CONFIG_PACKAGE_python3-service-identity=m +CONFIG_PACKAGE_python3-service-identity-src=m +CONFIG_PACKAGE_python3-setools=m +CONFIG_PACKAGE_python3-setools-src=m +CONFIG_PACKAGE_python3-setuptools=m +CONFIG_PACKAGE_python3-setuptools-src=m +CONFIG_PACKAGE_python3-six=m +CONFIG_PACKAGE_python3-six-src=m +CONFIG_PACKAGE_python3-slugify=m +CONFIG_PACKAGE_python3-slugify-src=m +CONFIG_PACKAGE_python3-smbus=m +CONFIG_PACKAGE_python3-sniffio=m +CONFIG_PACKAGE_python3-sniffio-src=m +CONFIG_PACKAGE_python3-socketio=m +CONFIG_PACKAGE_python3-socketio-src=m +CONFIG_PACKAGE_python3-sortedcontainers=m +CONFIG_PACKAGE_python3-sortedcontainers-src=m +CONFIG_PACKAGE_python3-speedtest-cli=m +CONFIG_PACKAGE_python3-speedtest-cli-src=m +CONFIG_PACKAGE_python3-sqlalchemy=m +CONFIG_PACKAGE_python3-sqlalchemy-src=m +CONFIG_PACKAGE_python3-sqlite3=m +CONFIG_PACKAGE_python3-sqlite3-src=m +CONFIG_PACKAGE_python3-sqlparse=m +CONFIG_PACKAGE_python3-sqlparse-src=m +CONFIG_PACKAGE_python3-stem=m +CONFIG_PACKAGE_python3-stem-src=m +CONFIG_PACKAGE_python3-text-unidecode=m +CONFIG_PACKAGE_python3-text-unidecode-src=m +CONFIG_PACKAGE_python3-texttable=m +CONFIG_PACKAGE_python3-texttable-src=m +CONFIG_PACKAGE_python3-toml=m +CONFIG_PACKAGE_python3-toml-src=m +CONFIG_PACKAGE_python3-tornado=m +CONFIG_PACKAGE_python3-tornado-src=m +CONFIG_PACKAGE_python3-trio=m +CONFIG_PACKAGE_python3-trio-src=m +CONFIG_PACKAGE_python3-twisted=m +CONFIG_PACKAGE_python3-twisted-src=m +CONFIG_PACKAGE_python3-typing-extensions=m +CONFIG_PACKAGE_python3-typing-extensions-src=m +CONFIG_PACKAGE_python3-ubus=m +CONFIG_PACKAGE_python3-ubus-src=m +CONFIG_PACKAGE_python3-uci=m +CONFIG_PACKAGE_python3-uci-src=m +CONFIG_PACKAGE_python3-unidecode=m +CONFIG_PACKAGE_python3-unidecode-src=m +CONFIG_PACKAGE_python3-unittest=m +CONFIG_PACKAGE_python3-unittest-src=m +CONFIG_PACKAGE_python3-urllib=m +CONFIG_PACKAGE_python3-urllib-src=m +CONFIG_PACKAGE_python3-urllib3=m +CONFIG_PACKAGE_python3-urllib3-src=m +CONFIG_PACKAGE_python3-userpath=m +CONFIG_PACKAGE_python3-userpath-src=m +CONFIG_PACKAGE_python3-uuid=m +CONFIG_PACKAGE_python3-uuid-src=m +CONFIG_PACKAGE_python3-venv=m +CONFIG_PACKAGE_python3-venv-src=m +CONFIG_PACKAGE_python3-vobject=m +CONFIG_PACKAGE_python3-vobject-src=m +CONFIG_PACKAGE_python3-voluptuous=m +CONFIG_PACKAGE_python3-voluptuous-serialize=m +CONFIG_PACKAGE_python3-voluptuous-serialize-src=m +CONFIG_PACKAGE_python3-voluptuous-src=m +CONFIG_PACKAGE_python3-wcwidth=m +CONFIG_PACKAGE_python3-wcwidth-src=m +CONFIG_PACKAGE_python3-websocket-client=m +CONFIG_PACKAGE_python3-websocket-client-src=m +CONFIG_PACKAGE_python3-websockets=m +CONFIG_PACKAGE_python3-websockets-src=m +CONFIG_PACKAGE_python3-werkzeug=m +CONFIG_PACKAGE_python3-werkzeug-src=m +CONFIG_PACKAGE_python3-xml=m +CONFIG_PACKAGE_python3-xml-src=m +CONFIG_PACKAGE_python3-xmltodict=m +CONFIG_PACKAGE_python3-xmltodict-src=m +CONFIG_PACKAGE_python3-yaml=m +CONFIG_PACKAGE_python3-yaml-src=m +CONFIG_PACKAGE_python3-yarl=m +CONFIG_PACKAGE_python3-yarl-src=m +CONFIG_PACKAGE_python3-zeroconf=m +CONFIG_PACKAGE_python3-zeroconf-src=m +CONFIG_PACKAGE_python3-zipp=m +CONFIG_PACKAGE_python3-zipp-src=m +CONFIG_PACKAGE_python3-zope-event=m +CONFIG_PACKAGE_python3-zope-event-src=m +CONFIG_PACKAGE_python3-zope-interface=m +CONFIG_PACKAGE_python3-zope-interface-src=m # end of Python # # Ruby # -# CONFIG_PACKAGE_ruby is not set +CONFIG_PACKAGE_ruby=m + +# +# Standard Library +# +CONFIG_PACKAGE_ruby-stdlib=m +CONFIG_PACKAGE_ruby-abbrev=m +CONFIG_PACKAGE_ruby-base64=m +CONFIG_PACKAGE_ruby-benchmark=m +CONFIG_PACKAGE_ruby-bigdecimal=m +CONFIG_PACKAGE_ruby-bundler=m +CONFIG_PACKAGE_ruby-cgi=m +CONFIG_PACKAGE_ruby-continuation=m +CONFIG_PACKAGE_ruby-coverage=m +CONFIG_PACKAGE_ruby-csv=m +CONFIG_PACKAGE_ruby-date=m +CONFIG_PACKAGE_ruby-debug=m +CONFIG_PACKAGE_ruby-delegate=m +CONFIG_PACKAGE_ruby-dev=m +CONFIG_PACKAGE_ruby-did-you-mean=m +CONFIG_PACKAGE_ruby-digest=m +# CONFIG_RUBY_DIGEST_USE_OPENSSL is not set +CONFIG_PACKAGE_ruby-drb=m +CONFIG_PACKAGE_ruby-enc=m +CONFIG_PACKAGE_ruby-enc-extra=m +CONFIG_PACKAGE_ruby-english=m +CONFIG_PACKAGE_ruby-erb=m +CONFIG_PACKAGE_ruby-error_highlight=m +CONFIG_PACKAGE_ruby-etc=m +CONFIG_PACKAGE_ruby-expect=m +CONFIG_PACKAGE_ruby-fcntl=m +CONFIG_PACKAGE_ruby-fiddle=m +CONFIG_PACKAGE_ruby-fileutils=m +CONFIG_PACKAGE_ruby-find=m +CONFIG_PACKAGE_ruby-forwardable=m +CONFIG_PACKAGE_ruby-gems=m +CONFIG_PACKAGE_ruby-getoptlong=m +CONFIG_PACKAGE_ruby-io-console=m +CONFIG_PACKAGE_ruby-io-nonblock=m +CONFIG_PACKAGE_ruby-io-wait=m +CONFIG_PACKAGE_ruby-ipaddr=m +CONFIG_PACKAGE_ruby-irb=m +CONFIG_PACKAGE_ruby-json=m +CONFIG_PACKAGE_ruby-logger=m +CONFIG_PACKAGE_ruby-matrix=m +CONFIG_PACKAGE_ruby-minitest=m +CONFIG_PACKAGE_ruby-mjit=m +CONFIG_PACKAGE_ruby-mkmf=m +CONFIG_PACKAGE_ruby-monitor=m +CONFIG_PACKAGE_ruby-mutex_m=m +CONFIG_PACKAGE_ruby-net-ftp=m +CONFIG_PACKAGE_ruby-net-http=m +CONFIG_PACKAGE_ruby-net-imap=m +CONFIG_PACKAGE_ruby-net-pop=m +CONFIG_PACKAGE_ruby-net-protocol=m +CONFIG_PACKAGE_ruby-net-smtp=m +CONFIG_PACKAGE_ruby-nkf=m +CONFIG_PACKAGE_ruby-objspace=m +CONFIG_PACKAGE_ruby-observer=m +CONFIG_PACKAGE_ruby-open-uri=m +CONFIG_PACKAGE_ruby-open3=m +CONFIG_PACKAGE_ruby-openssl=m +CONFIG_PACKAGE_ruby-optparse=m +CONFIG_PACKAGE_ruby-ostruct=m +CONFIG_PACKAGE_ruby-pathname=m +CONFIG_PACKAGE_ruby-powerassert=m +CONFIG_PACKAGE_ruby-pp=m +CONFIG_PACKAGE_ruby-prettyprint=m +CONFIG_PACKAGE_ruby-prime=m +CONFIG_PACKAGE_ruby-pstore=m +CONFIG_PACKAGE_ruby-psych=m +CONFIG_PACKAGE_ruby-pty=m +CONFIG_PACKAGE_ruby-racc=m +CONFIG_PACKAGE_ruby-rake=m +CONFIG_PACKAGE_ruby-random_formatter=m +CONFIG_PACKAGE_ruby-rbconfig=m +CONFIG_PACKAGE_ruby-rbs=m +CONFIG_PACKAGE_ruby-rdoc=m +CONFIG_PACKAGE_ruby-readline=m +CONFIG_PACKAGE_ruby-readline-ext=m +CONFIG_PACKAGE_ruby-reline=m +CONFIG_PACKAGE_ruby-resolv=m +CONFIG_PACKAGE_ruby-resolv-replace=m +CONFIG_PACKAGE_ruby-rexml=m +CONFIG_PACKAGE_ruby-rinda=m +CONFIG_PACKAGE_ruby-ripper=m +CONFIG_PACKAGE_ruby-rss=m +CONFIG_PACKAGE_ruby-ruby2_keywords=m +CONFIG_PACKAGE_ruby-securerandom=m +CONFIG_PACKAGE_ruby-set=m +CONFIG_PACKAGE_ruby-shellwords=m +CONFIG_PACKAGE_ruby-singleton=m +CONFIG_PACKAGE_ruby-socket=m +CONFIG_PACKAGE_ruby-stringio=m +CONFIG_PACKAGE_ruby-strscan=m +CONFIG_PACKAGE_ruby-syntax_suggest=m +CONFIG_PACKAGE_ruby-syslog=m +CONFIG_PACKAGE_ruby-tempfile=m +CONFIG_PACKAGE_ruby-testunit=m +CONFIG_PACKAGE_ruby-time=m +CONFIG_PACKAGE_ruby-timeout=m +CONFIG_PACKAGE_ruby-tmpdir=m +CONFIG_PACKAGE_ruby-tsort=m +CONFIG_PACKAGE_ruby-typeprof=m +CONFIG_PACKAGE_ruby-un=m +CONFIG_PACKAGE_ruby-unicodenormalize=m +CONFIG_PACKAGE_ruby-uri=m +CONFIG_PACKAGE_ruby-weakref=m +CONFIG_PACKAGE_ruby-yaml=m +CONFIG_PACKAGE_ruby-zlib=m # end of Ruby # # Rust # -# CONFIG_PACKAGE_rust is not set +CONFIG_PACKAGE_rust=m # # Configuration options (for developers) @@ -3753,7 +4446,7 @@ CONFIG_RUST_SCCACHE_DIR="" # # Tcl # -# CONFIG_PACKAGE_tcl is not set +CONFIG_PACKAGE_tcl=m # end of Tcl # @@ -3762,20 +4455,20 @@ CONFIG_RUST_SCCACHE_DIR="" CONFIG_PACKAGE_ucode=y # CONFIG_PACKAGE_ucode-mod-debug is not set CONFIG_PACKAGE_ucode-mod-fs=y -# CONFIG_PACKAGE_ucode-mod-log is not set +CONFIG_PACKAGE_ucode-mod-log=m CONFIG_PACKAGE_ucode-mod-math=y CONFIG_PACKAGE_ucode-mod-nl80211=m # CONFIG_PACKAGE_ucode-mod-resolv is not set -# CONFIG_PACKAGE_ucode-mod-rtnl is not set +CONFIG_PACKAGE_ucode-mod-rtnl=m # CONFIG_PACKAGE_ucode-mod-struct is not set CONFIG_PACKAGE_ucode-mod-ubus=y CONFIG_PACKAGE_ucode-mod-uci=y -# CONFIG_PACKAGE_ucode-mod-uloop is not set +CONFIG_PACKAGE_ucode-mod-uloop=m # end of ucode -# CONFIG_PACKAGE_chicken-scheme-full is not set -# CONFIG_PACKAGE_chicken-scheme-interpreter is not set -# CONFIG_PACKAGE_slsh is not set +CONFIG_PACKAGE_chicken-scheme-full=m +CONFIG_PACKAGE_chicken-scheme-interpreter=m +CONFIG_PACKAGE_slsh=m # end of Languages # @@ -3786,52 +4479,97 @@ CONFIG_PACKAGE_ucode-mod-uci=y # Compression # CONFIG_PACKAGE_libbz2=m -# CONFIG_PACKAGE_liblz4 is not set -# CONFIG_PACKAGE_liblzma is not set -# CONFIG_PACKAGE_libunrar is not set -# CONFIG_PACKAGE_libzip-gnutls is not set -# CONFIG_PACKAGE_libzip-mbedtls is not set -# CONFIG_PACKAGE_libzip-nossl is not set -# CONFIG_PACKAGE_libzip-openssl is not set -# CONFIG_PACKAGE_libzstd is not set +CONFIG_PACKAGE_liblz4=m +# CONFIG_LZ4_OPTIMIZE_SPEED is not set +CONFIG_PACKAGE_liblzma=m +CONFIG_PACKAGE_libunrar=m +CONFIG_PACKAGE_libzip-gnutls=m +CONFIG_PACKAGE_libzip-mbedtls=m +CONFIG_PACKAGE_libzip-nossl=m +CONFIG_PACKAGE_libzip-openssl=m +CONFIG_PACKAGE_libzstd=m +CONFIG_ZSTD_OPTIMIZE_O3=y # end of Compression # # Database # -# CONFIG_PACKAGE_libmariadb is not set -# CONFIG_PACKAGE_libodbc is not set -# CONFIG_PACKAGE_libodbccr is not set -# CONFIG_PACKAGE_libodbcinst is not set -# CONFIG_PACKAGE_libpq is not set -# CONFIG_PACKAGE_libpqxx is not set -# CONFIG_PACKAGE_libsqlite3 is not set -# CONFIG_PACKAGE_pgsqlodbc is not set -# CONFIG_PACKAGE_psqlodbca is not set -# CONFIG_PACKAGE_psqlodbcw is not set -# CONFIG_PACKAGE_redis-cli is not set -# CONFIG_PACKAGE_redis-server is not set -# CONFIG_PACKAGE_redis-utils is not set -# CONFIG_PACKAGE_tdb is not set -# CONFIG_PACKAGE_unixodbc is not set +CONFIG_PACKAGE_libmariadb=m +CONFIG_PACKAGE_libmariadb-plugin-auth-gssapi-client=m +CONFIG_PACKAGE_libmariadb-plugin-remote-io=m +CONFIG_PACKAGE_libodbc=m +CONFIG_PACKAGE_libodbccr=m +CONFIG_PACKAGE_libodbcinst=m +CONFIG_PACKAGE_libpq=m +CONFIG_PACKAGE_libpqxx=m + +# +# Options +# +CONFIG_LIBPQXX_STATIC=y +# CONFIG_LIBPQXX_SHARED is not set +# CONFIG_LIBPQXX_INSTALL_TEST is not set +# end of Options + +CONFIG_PACKAGE_libsqlite3=m + +# +# Configuration +# +# CONFIG_SQLITE3_BATCH_ATOMIC_WRITE is not set +CONFIG_SQLITE3_COLUMN_METADATA=y +CONFIG_SQLITE3_DYNAMIC_EXTENSIONS=y +CONFIG_SQLITE3_FTS3=y +CONFIG_SQLITE3_FTS4=y +CONFIG_SQLITE3_FTS5=y +CONFIG_SQLITE3_RTREE=y +# CONFIG_SQLITE3_SESSION is not set +# end of Configuration + +CONFIG_PACKAGE_pgsqlodbc=m +CONFIG_PACKAGE_psqlodbca=m +CONFIG_PACKAGE_psqlodbcw=m +CONFIG_PACKAGE_redis-cli=m +CONFIG_PACKAGE_redis-server=m +CONFIG_PACKAGE_redis-utils=m +CONFIG_PACKAGE_tdb=m +CONFIG_PACKAGE_unixodbc=m # end of Database # # Filesystem # -# CONFIG_PACKAGE_libacl is not set +CONFIG_PACKAGE_libacl=m CONFIG_PACKAGE_libattr=m -# CONFIG_PACKAGE_libfuse is not set -# CONFIG_PACKAGE_libfuse3 is not set -# CONFIG_PACKAGE_libow is not set -# CONFIG_PACKAGE_libow-capi is not set -# CONFIG_PACKAGE_libsysfs is not set +CONFIG_PACKAGE_libfuse=m +CONFIG_PACKAGE_libfuse3=m +CONFIG_PACKAGE_libow=m + +# +# Customize libow +# + +# +# Bus master and adapter support +# +CONFIG_LIBOW_MASTER_USB=y +CONFIG_LIBOW_MASTER_I2C=y +# CONFIG_LIBOW_MASTER_W1 is not set +# end of Bus master and adapter support + +CONFIG_LIBOW_ZEROCONF=y +CONFIG_LIBOW_DEBUG=y +# CONFIG_LIBOW_OWTRAFFIC is not set +# end of Customize libow + +CONFIG_PACKAGE_libow-capi=m +CONFIG_PACKAGE_libsysfs=m # end of Filesystem # # Firewall # -# CONFIG_PACKAGE_libfko is not set +CONFIG_PACKAGE_libfko=m CONFIG_PACKAGE_libip4tc=m CONFIG_PACKAGE_libip6tc=m CONFIG_PACKAGE_libiptext=m @@ -3844,476 +4582,528 @@ CONFIG_PACKAGE_libxtables=m # # IoT # -# CONFIG_PACKAGE_libmraa is not set -# CONFIG_PACKAGE_libmraa-python3 is not set -# CONFIG_PACKAGE_libupm is not set -# CONFIG_PACKAGE_libupm-a110x is not set -# CONFIG_PACKAGE_libupm-a110x-python3 is not set -# CONFIG_PACKAGE_libupm-abp is not set -# CONFIG_PACKAGE_libupm-abp-python3 is not set -# CONFIG_PACKAGE_libupm-ad8232 is not set -# CONFIG_PACKAGE_libupm-ad8232-python3 is not set -# CONFIG_PACKAGE_libupm-adafruitms1438 is not set -# CONFIG_PACKAGE_libupm-adafruitms1438-python3 is not set -# CONFIG_PACKAGE_libupm-adafruitss is not set -# CONFIG_PACKAGE_libupm-adafruitss-python3 is not set -# CONFIG_PACKAGE_libupm-adc121c021 is not set -# CONFIG_PACKAGE_libupm-adc121c021-python3 is not set -# CONFIG_PACKAGE_libupm-adis16448 is not set -# CONFIG_PACKAGE_libupm-adis16448-python3 is not set -# CONFIG_PACKAGE_libupm-ads1x15 is not set -# CONFIG_PACKAGE_libupm-ads1x15-python3 is not set -# CONFIG_PACKAGE_libupm-adxl335 is not set -# CONFIG_PACKAGE_libupm-adxl335-python3 is not set -# CONFIG_PACKAGE_libupm-adxl345 is not set -# CONFIG_PACKAGE_libupm-adxl345-python3 is not set -# CONFIG_PACKAGE_libupm-adxrs610 is not set -# CONFIG_PACKAGE_libupm-adxrs610-python3 is not set -# CONFIG_PACKAGE_libupm-am2315 is not set -# CONFIG_PACKAGE_libupm-am2315-python3 is not set -# CONFIG_PACKAGE_libupm-apa102 is not set -# CONFIG_PACKAGE_libupm-apa102-python3 is not set -# CONFIG_PACKAGE_libupm-apds9002 is not set -# CONFIG_PACKAGE_libupm-apds9002-python3 is not set -# CONFIG_PACKAGE_libupm-apds9930 is not set -# CONFIG_PACKAGE_libupm-apds9930-python3 is not set -# CONFIG_PACKAGE_libupm-at42qt1070 is not set -# CONFIG_PACKAGE_libupm-at42qt1070-python3 is not set -# CONFIG_PACKAGE_libupm-bh1749 is not set -# CONFIG_PACKAGE_libupm-bh1749-python3 is not set -# CONFIG_PACKAGE_libupm-bh1750 is not set -# CONFIG_PACKAGE_libupm-bh1750-python3 is not set -# CONFIG_PACKAGE_libupm-bh1792 is not set -# CONFIG_PACKAGE_libupm-bh1792-python3 is not set -# CONFIG_PACKAGE_libupm-biss0001 is not set -# CONFIG_PACKAGE_libupm-biss0001-python3 is not set -# CONFIG_PACKAGE_libupm-bma220 is not set -# CONFIG_PACKAGE_libupm-bma220-python3 is not set -# CONFIG_PACKAGE_libupm-bma250e is not set -# CONFIG_PACKAGE_libupm-bma250e-python3 is not set -# CONFIG_PACKAGE_libupm-bmg160 is not set -# CONFIG_PACKAGE_libupm-bmg160-python3 is not set -# CONFIG_PACKAGE_libupm-bmi160 is not set -# CONFIG_PACKAGE_libupm-bmi160-python3 is not set -# CONFIG_PACKAGE_libupm-bmm150 is not set -# CONFIG_PACKAGE_libupm-bmm150-python3 is not set -# CONFIG_PACKAGE_libupm-bmp280 is not set -# CONFIG_PACKAGE_libupm-bmp280-python3 is not set -# CONFIG_PACKAGE_libupm-bmpx8x is not set -# CONFIG_PACKAGE_libupm-bmpx8x-python3 is not set -# CONFIG_PACKAGE_libupm-bmx055 is not set -# CONFIG_PACKAGE_libupm-bmx055-python3 is not set -# CONFIG_PACKAGE_libupm-bno055 is not set -# CONFIG_PACKAGE_libupm-bno055-python3 is not set -# CONFIG_PACKAGE_libupm-button is not set -# CONFIG_PACKAGE_libupm-button-python3 is not set -# CONFIG_PACKAGE_libupm-buzzer is not set -# CONFIG_PACKAGE_libupm-buzzer-python3 is not set -# CONFIG_PACKAGE_libupm-cjq4435 is not set -# CONFIG_PACKAGE_libupm-cjq4435-python3 is not set -# CONFIG_PACKAGE_libupm-collision is not set -# CONFIG_PACKAGE_libupm-collision-python3 is not set -# CONFIG_PACKAGE_libupm-curieimu is not set -# CONFIG_PACKAGE_libupm-curieimu-python3 is not set -# CONFIG_PACKAGE_libupm-cwlsxxa is not set -# CONFIG_PACKAGE_libupm-cwlsxxa-python3 is not set -# CONFIG_PACKAGE_libupm-dfrec is not set -# CONFIG_PACKAGE_libupm-dfrec-python3 is not set -# CONFIG_PACKAGE_libupm-dfrorp is not set -# CONFIG_PACKAGE_libupm-dfrorp-python3 is not set -# CONFIG_PACKAGE_libupm-dfrph is not set -# CONFIG_PACKAGE_libupm-dfrph-python3 is not set -# CONFIG_PACKAGE_libupm-ds1307 is not set -# CONFIG_PACKAGE_libupm-ds1307-python3 is not set -# CONFIG_PACKAGE_libupm-ds1808lc is not set -# CONFIG_PACKAGE_libupm-ds1808lc-python3 is not set -# CONFIG_PACKAGE_libupm-ds18b20 is not set -# CONFIG_PACKAGE_libupm-ds18b20-python3 is not set -# CONFIG_PACKAGE_libupm-ds2413 is not set -# CONFIG_PACKAGE_libupm-ds2413-python3 is not set -# CONFIG_PACKAGE_libupm-ecezo is not set -# CONFIG_PACKAGE_libupm-ecezo-python3 is not set -# CONFIG_PACKAGE_libupm-ecs1030 is not set -# CONFIG_PACKAGE_libupm-ecs1030-python3 is not set -# CONFIG_PACKAGE_libupm-ehr is not set -# CONFIG_PACKAGE_libupm-ehr-python3 is not set -# CONFIG_PACKAGE_libupm-eldriver is not set -# CONFIG_PACKAGE_libupm-eldriver-python3 is not set -# CONFIG_PACKAGE_libupm-electromagnet is not set -# CONFIG_PACKAGE_libupm-electromagnet-python3 is not set -# CONFIG_PACKAGE_libupm-emg is not set -# CONFIG_PACKAGE_libupm-emg-python3 is not set -# CONFIG_PACKAGE_libupm-enc03r is not set -# CONFIG_PACKAGE_libupm-enc03r-python3 is not set -# CONFIG_PACKAGE_libupm-flex is not set -# CONFIG_PACKAGE_libupm-flex-python3 is not set -# CONFIG_PACKAGE_libupm-gas is not set -# CONFIG_PACKAGE_libupm-gas-python3 is not set -# CONFIG_PACKAGE_libupm-gp2y0a is not set -# CONFIG_PACKAGE_libupm-gp2y0a-python3 is not set -# CONFIG_PACKAGE_libupm-gprs is not set -# CONFIG_PACKAGE_libupm-gprs-python3 is not set -# CONFIG_PACKAGE_libupm-gsr is not set -# CONFIG_PACKAGE_libupm-gsr-python3 is not set -# CONFIG_PACKAGE_libupm-guvas12d is not set -# CONFIG_PACKAGE_libupm-guvas12d-python3 is not set -# CONFIG_PACKAGE_libupm-h3lis331dl is not set -# CONFIG_PACKAGE_libupm-h3lis331dl-python3 is not set -# CONFIG_PACKAGE_libupm-h803x is not set -# CONFIG_PACKAGE_libupm-h803x-python3 is not set -# CONFIG_PACKAGE_libupm-hcsr04 is not set -# CONFIG_PACKAGE_libupm-hcsr04-python3 is not set -# CONFIG_PACKAGE_libupm-hdc1000 is not set -# CONFIG_PACKAGE_libupm-hdc1000-python3 is not set -# CONFIG_PACKAGE_libupm-hdxxvxta is not set -# CONFIG_PACKAGE_libupm-hdxxvxta-python3 is not set -# CONFIG_PACKAGE_libupm-hka5 is not set -# CONFIG_PACKAGE_libupm-hka5-python3 is not set -# CONFIG_PACKAGE_libupm-hlg150h is not set -# CONFIG_PACKAGE_libupm-hlg150h-python3 is not set -# CONFIG_PACKAGE_libupm-hm11 is not set -# CONFIG_PACKAGE_libupm-hm11-python3 is not set -# CONFIG_PACKAGE_libupm-hmc5883l is not set -# CONFIG_PACKAGE_libupm-hmc5883l-python3 is not set -# CONFIG_PACKAGE_libupm-hmtrp is not set -# CONFIG_PACKAGE_libupm-hmtrp-python3 is not set -# CONFIG_PACKAGE_libupm-hp20x is not set -# CONFIG_PACKAGE_libupm-hp20x-python3 is not set -# CONFIG_PACKAGE_libupm-ht9170 is not set -# CONFIG_PACKAGE_libupm-ht9170-python3 is not set -# CONFIG_PACKAGE_libupm-htu21d is not set -# CONFIG_PACKAGE_libupm-htu21d-python3 is not set -# CONFIG_PACKAGE_libupm-hwxpxx is not set -# CONFIG_PACKAGE_libupm-hwxpxx-python3 is not set -# CONFIG_PACKAGE_libupm-hx711 is not set -# CONFIG_PACKAGE_libupm-hx711-python3 is not set -# CONFIG_PACKAGE_libupm-ili9341 is not set -# CONFIG_PACKAGE_libupm-ili9341-python3 is not set -# CONFIG_PACKAGE_libupm-ims is not set -# CONFIG_PACKAGE_libupm-ims-python3 is not set -# CONFIG_PACKAGE_libupm-ina132 is not set -# CONFIG_PACKAGE_libupm-ina132-python3 is not set -# CONFIG_PACKAGE_libupm-interfaces is not set -# CONFIG_PACKAGE_libupm-interfaces-python3 is not set -# CONFIG_PACKAGE_libupm-isd1820 is not set -# CONFIG_PACKAGE_libupm-isd1820-python3 is not set -# CONFIG_PACKAGE_libupm-itg3200 is not set -# CONFIG_PACKAGE_libupm-itg3200-python3 is not set -# CONFIG_PACKAGE_libupm-jhd1313m1 is not set -# CONFIG_PACKAGE_libupm-jhd1313m1-python3 is not set -# CONFIG_PACKAGE_libupm-joystick12 is not set -# CONFIG_PACKAGE_libupm-joystick12-python3 is not set -# CONFIG_PACKAGE_libupm-kx122 is not set -# CONFIG_PACKAGE_libupm-kx122-python3 is not set -# CONFIG_PACKAGE_libupm-kxcjk1013 is not set -# CONFIG_PACKAGE_libupm-kxcjk1013-python3 is not set -# CONFIG_PACKAGE_libupm-kxtj3 is not set -# CONFIG_PACKAGE_libupm-kxtj3-python3 is not set -# CONFIG_PACKAGE_libupm-l298 is not set -# CONFIG_PACKAGE_libupm-l298-python3 is not set -# CONFIG_PACKAGE_libupm-l3gd20 is not set -# CONFIG_PACKAGE_libupm-l3gd20-python3 is not set -# CONFIG_PACKAGE_libupm-lcd is not set -# CONFIG_PACKAGE_libupm-lcd-python3 is not set -# CONFIG_PACKAGE_libupm-lcdks is not set -# CONFIG_PACKAGE_libupm-lcdks-python3 is not set -# CONFIG_PACKAGE_libupm-lcm1602 is not set -# CONFIG_PACKAGE_libupm-lcm1602-python3 is not set -# CONFIG_PACKAGE_libupm-ldt0028 is not set -# CONFIG_PACKAGE_libupm-ldt0028-python3 is not set -# CONFIG_PACKAGE_libupm-led is not set -# CONFIG_PACKAGE_libupm-led-python3 is not set -# CONFIG_PACKAGE_libupm-lidarlitev3 is not set -# CONFIG_PACKAGE_libupm-lidarlitev3-python3 is not set -# CONFIG_PACKAGE_libupm-light is not set -# CONFIG_PACKAGE_libupm-light-python3 is not set -# CONFIG_PACKAGE_libupm-linefinder is not set -# CONFIG_PACKAGE_libupm-linefinder-python3 is not set -# CONFIG_PACKAGE_libupm-lis2ds12 is not set -# CONFIG_PACKAGE_libupm-lis2ds12-python3 is not set -# CONFIG_PACKAGE_libupm-lis3dh is not set -# CONFIG_PACKAGE_libupm-lis3dh-python3 is not set -# CONFIG_PACKAGE_libupm-lm35 is not set -# CONFIG_PACKAGE_libupm-lm35-python3 is not set -# CONFIG_PACKAGE_libupm-lol is not set -# CONFIG_PACKAGE_libupm-lol-python3 is not set -# CONFIG_PACKAGE_libupm-loudness is not set -# CONFIG_PACKAGE_libupm-loudness-python3 is not set -# CONFIG_PACKAGE_libupm-lp8860 is not set -# CONFIG_PACKAGE_libupm-lp8860-python3 is not set -# CONFIG_PACKAGE_libupm-lpd8806 is not set -# CONFIG_PACKAGE_libupm-lpd8806-python3 is not set -# CONFIG_PACKAGE_libupm-lsm303agr is not set -# CONFIG_PACKAGE_libupm-lsm303agr-python3 is not set -# CONFIG_PACKAGE_libupm-lsm303d is not set -# CONFIG_PACKAGE_libupm-lsm303d-python3 is not set -# CONFIG_PACKAGE_libupm-lsm303dlh is not set -# CONFIG_PACKAGE_libupm-lsm303dlh-python3 is not set -# CONFIG_PACKAGE_libupm-lsm6ds3h is not set -# CONFIG_PACKAGE_libupm-lsm6ds3h-python3 is not set -# CONFIG_PACKAGE_libupm-lsm6dsl is not set -# CONFIG_PACKAGE_libupm-lsm6dsl-python3 is not set -# CONFIG_PACKAGE_libupm-lsm9ds0 is not set -# CONFIG_PACKAGE_libupm-lsm9ds0-python3 is not set -# CONFIG_PACKAGE_libupm-m24lr64e is not set -# CONFIG_PACKAGE_libupm-m24lr64e-python3 is not set -# CONFIG_PACKAGE_libupm-mag3110 is not set -# CONFIG_PACKAGE_libupm-mag3110-python3 is not set -# CONFIG_PACKAGE_libupm-max30100 is not set -# CONFIG_PACKAGE_libupm-max30100-python3 is not set -# CONFIG_PACKAGE_libupm-max31723 is not set -# CONFIG_PACKAGE_libupm-max31723-python3 is not set -# CONFIG_PACKAGE_libupm-max31855 is not set -# CONFIG_PACKAGE_libupm-max31855-python3 is not set -# CONFIG_PACKAGE_libupm-max44000 is not set -# CONFIG_PACKAGE_libupm-max44000-python3 is not set -# CONFIG_PACKAGE_libupm-max44009 is not set -# CONFIG_PACKAGE_libupm-max44009-python3 is not set -# CONFIG_PACKAGE_libupm-max5487 is not set -# CONFIG_PACKAGE_libupm-max5487-python3 is not set -# CONFIG_PACKAGE_libupm-maxds3231m is not set -# CONFIG_PACKAGE_libupm-maxds3231m-python3 is not set -# CONFIG_PACKAGE_libupm-maxsonarez is not set -# CONFIG_PACKAGE_libupm-maxsonarez-python3 is not set -# CONFIG_PACKAGE_libupm-mb704x is not set -# CONFIG_PACKAGE_libupm-mb704x-python3 is not set -# CONFIG_PACKAGE_libupm-mcp2515 is not set -# CONFIG_PACKAGE_libupm-mcp2515-python3 is not set -# CONFIG_PACKAGE_libupm-mcp9808 is not set -# CONFIG_PACKAGE_libupm-mcp9808-python3 is not set -# CONFIG_PACKAGE_libupm-md is not set -# CONFIG_PACKAGE_libupm-md-python3 is not set -# CONFIG_PACKAGE_libupm-mg811 is not set -# CONFIG_PACKAGE_libupm-mg811-python3 is not set -# CONFIG_PACKAGE_libupm-mhz16 is not set -# CONFIG_PACKAGE_libupm-mhz16-python3 is not set -# CONFIG_PACKAGE_libupm-mic is not set -# CONFIG_PACKAGE_libupm-mic-python3 is not set -# CONFIG_PACKAGE_libupm-micsv89 is not set -# CONFIG_PACKAGE_libupm-micsv89-python3 is not set -# CONFIG_PACKAGE_libupm-mlx90614 is not set -# CONFIG_PACKAGE_libupm-mlx90614-python3 is not set -# CONFIG_PACKAGE_libupm-mma7361 is not set -# CONFIG_PACKAGE_libupm-mma7361-python3 is not set -# CONFIG_PACKAGE_libupm-mma7455 is not set -# CONFIG_PACKAGE_libupm-mma7455-python3 is not set -# CONFIG_PACKAGE_libupm-mma7660 is not set -# CONFIG_PACKAGE_libupm-mma7660-python3 is not set -# CONFIG_PACKAGE_libupm-mma8x5x is not set -# CONFIG_PACKAGE_libupm-mma8x5x-python3 is not set -# CONFIG_PACKAGE_libupm-mmc35240 is not set -# CONFIG_PACKAGE_libupm-mmc35240-python3 is not set -# CONFIG_PACKAGE_libupm-moisture is not set -# CONFIG_PACKAGE_libupm-moisture-python3 is not set -# CONFIG_PACKAGE_libupm-mpl3115a2 is not set -# CONFIG_PACKAGE_libupm-mpl3115a2-python3 is not set -# CONFIG_PACKAGE_libupm-mpr121 is not set -# CONFIG_PACKAGE_libupm-mpr121-python3 is not set -# CONFIG_PACKAGE_libupm-mpu9150 is not set -# CONFIG_PACKAGE_libupm-mpu9150-python3 is not set -# CONFIG_PACKAGE_libupm-mq303a is not set -# CONFIG_PACKAGE_libupm-mq303a-python3 is not set -# CONFIG_PACKAGE_libupm-ms5611 is not set -# CONFIG_PACKAGE_libupm-ms5611-python3 is not set -# CONFIG_PACKAGE_libupm-ms5803 is not set -# CONFIG_PACKAGE_libupm-ms5803-python3 is not set -# CONFIG_PACKAGE_libupm-my9221 is not set -# CONFIG_PACKAGE_libupm-my9221-python3 is not set -# CONFIG_PACKAGE_libupm-nlgpio16 is not set -# CONFIG_PACKAGE_libupm-nlgpio16-python3 is not set -# CONFIG_PACKAGE_libupm-nmea_gps is not set -# CONFIG_PACKAGE_libupm-nmea_gps-python3 is not set -# CONFIG_PACKAGE_libupm-nrf24l01 is not set -# CONFIG_PACKAGE_libupm-nrf24l01-python3 is not set -# CONFIG_PACKAGE_libupm-nrf8001 is not set -# CONFIG_PACKAGE_libupm-nrf8001-python3 is not set -# CONFIG_PACKAGE_libupm-nunchuck is not set -# CONFIG_PACKAGE_libupm-nunchuck-python3 is not set -# CONFIG_PACKAGE_libupm-o2 is not set -# CONFIG_PACKAGE_libupm-o2-python3 is not set -# CONFIG_PACKAGE_libupm-otp538u is not set -# CONFIG_PACKAGE_libupm-otp538u-python3 is not set -# CONFIG_PACKAGE_libupm-ozw is not set -# CONFIG_PACKAGE_libupm-ozw-python3 is not set -# CONFIG_PACKAGE_libupm-p9813 is not set -# CONFIG_PACKAGE_libupm-p9813-python3 is not set -# CONFIG_PACKAGE_libupm-pca9685 is not set -# CONFIG_PACKAGE_libupm-pca9685-python3 is not set -# CONFIG_PACKAGE_libupm-pn532 is not set -# CONFIG_PACKAGE_libupm-pn532-python3 is not set -# CONFIG_PACKAGE_libupm-ppd42ns is not set -# CONFIG_PACKAGE_libupm-ppd42ns-python3 is not set -# CONFIG_PACKAGE_libupm-pulsensor is not set -# CONFIG_PACKAGE_libupm-pulsensor-python3 is not set -# CONFIG_PACKAGE_libupm-relay is not set -# CONFIG_PACKAGE_libupm-relay-python3 is not set -# CONFIG_PACKAGE_libupm-rf22 is not set -# CONFIG_PACKAGE_libupm-rf22-python3 is not set -# CONFIG_PACKAGE_libupm-rfr359f is not set -# CONFIG_PACKAGE_libupm-rfr359f-python3 is not set -# CONFIG_PACKAGE_libupm-rgbringcoder is not set -# CONFIG_PACKAGE_libupm-rgbringcoder-python3 is not set -# CONFIG_PACKAGE_libupm-rhusb is not set -# CONFIG_PACKAGE_libupm-rhusb-python3 is not set -# CONFIG_PACKAGE_libupm-rn2903 is not set -# CONFIG_PACKAGE_libupm-rn2903-python3 is not set -# CONFIG_PACKAGE_libupm-rotary is not set -# CONFIG_PACKAGE_libupm-rotary-python3 is not set -# CONFIG_PACKAGE_libupm-rotaryencoder is not set -# CONFIG_PACKAGE_libupm-rotaryencoder-python3 is not set -# CONFIG_PACKAGE_libupm-rpr220 is not set -# CONFIG_PACKAGE_libupm-rpr220-python3 is not set -# CONFIG_PACKAGE_libupm-rsc is not set -# CONFIG_PACKAGE_libupm-rsc-python3 is not set -# CONFIG_PACKAGE_libupm-scam is not set -# CONFIG_PACKAGE_libupm-scam-python3 is not set -# CONFIG_PACKAGE_libupm-sensortemplate is not set -# CONFIG_PACKAGE_libupm-sensortemplate-python3 is not set -# CONFIG_PACKAGE_libupm-servo is not set -# CONFIG_PACKAGE_libupm-servo-python3 is not set -# CONFIG_PACKAGE_libupm-sht1x is not set -# CONFIG_PACKAGE_libupm-sht1x-python3 is not set -# CONFIG_PACKAGE_libupm-si1132 is not set -# CONFIG_PACKAGE_libupm-si1132-python3 is not set -# CONFIG_PACKAGE_libupm-si114x is not set -# CONFIG_PACKAGE_libupm-si114x-python3 is not set -# CONFIG_PACKAGE_libupm-si7005 is not set -# CONFIG_PACKAGE_libupm-si7005-python3 is not set -# CONFIG_PACKAGE_libupm-slide is not set -# CONFIG_PACKAGE_libupm-slide-python3 is not set -# CONFIG_PACKAGE_libupm-sm130 is not set -# CONFIG_PACKAGE_libupm-sm130-python3 is not set -# CONFIG_PACKAGE_libupm-smartdrive is not set -# CONFIG_PACKAGE_libupm-smartdrive-python3 is not set -# CONFIG_PACKAGE_libupm-speaker is not set -# CONFIG_PACKAGE_libupm-speaker-python3 is not set -# CONFIG_PACKAGE_libupm-ssd1351 is not set -# CONFIG_PACKAGE_libupm-ssd1351-python3 is not set -# CONFIG_PACKAGE_libupm-st7735 is not set -# CONFIG_PACKAGE_libupm-st7735-python3 is not set -# CONFIG_PACKAGE_libupm-stepmotor is not set -# CONFIG_PACKAGE_libupm-stepmotor-python3 is not set -# CONFIG_PACKAGE_libupm-sx1276 is not set -# CONFIG_PACKAGE_libupm-sx1276-python3 is not set -# CONFIG_PACKAGE_libupm-sx6119 is not set -# CONFIG_PACKAGE_libupm-sx6119-python3 is not set -# CONFIG_PACKAGE_libupm-t3311 is not set -# CONFIG_PACKAGE_libupm-t3311-python3 is not set -# CONFIG_PACKAGE_libupm-t6713 is not set -# CONFIG_PACKAGE_libupm-t6713-python3 is not set -# CONFIG_PACKAGE_libupm-ta12200 is not set -# CONFIG_PACKAGE_libupm-ta12200-python3 is not set -# CONFIG_PACKAGE_libupm-tca9548a is not set -# CONFIG_PACKAGE_libupm-tca9548a-python3 is not set -# CONFIG_PACKAGE_libupm-tcs3414cs is not set -# CONFIG_PACKAGE_libupm-tcs3414cs-python3 is not set -# CONFIG_PACKAGE_libupm-tcs37727 is not set -# CONFIG_PACKAGE_libupm-tcs37727-python3 is not set -# CONFIG_PACKAGE_libupm-teams is not set -# CONFIG_PACKAGE_libupm-teams-python3 is not set -# CONFIG_PACKAGE_libupm-temperature is not set -# CONFIG_PACKAGE_libupm-temperature-python3 is not set -# CONFIG_PACKAGE_libupm-tex00 is not set -# CONFIG_PACKAGE_libupm-tex00-python3 is not set -# CONFIG_PACKAGE_libupm-th02 is not set -# CONFIG_PACKAGE_libupm-th02-python3 is not set -# CONFIG_PACKAGE_libupm-tm1637 is not set -# CONFIG_PACKAGE_libupm-tm1637-python3 is not set -# CONFIG_PACKAGE_libupm-tmp006 is not set -# CONFIG_PACKAGE_libupm-tmp006-python3 is not set -# CONFIG_PACKAGE_libupm-tsl2561 is not set -# CONFIG_PACKAGE_libupm-tsl2561-python3 is not set -# CONFIG_PACKAGE_libupm-ttp223 is not set -# CONFIG_PACKAGE_libupm-ttp223-python3 is not set -# CONFIG_PACKAGE_libupm-uartat is not set -# CONFIG_PACKAGE_libupm-uartat-python3 is not set -# CONFIG_PACKAGE_libupm-uln200xa is not set -# CONFIG_PACKAGE_libupm-uln200xa-python3 is not set -# CONFIG_PACKAGE_libupm-ultrasonic is not set -# CONFIG_PACKAGE_libupm-ultrasonic-python3 is not set -# CONFIG_PACKAGE_libupm-urm37 is not set -# CONFIG_PACKAGE_libupm-urm37-python3 is not set -# CONFIG_PACKAGE_libupm-utilities is not set -# CONFIG_PACKAGE_libupm-utilities-python3 is not set -# CONFIG_PACKAGE_libupm-vcap is not set -# CONFIG_PACKAGE_libupm-vcap-python3 is not set -# CONFIG_PACKAGE_libupm-vdiv is not set -# CONFIG_PACKAGE_libupm-vdiv-python3 is not set -# CONFIG_PACKAGE_libupm-veml6070 is not set -# CONFIG_PACKAGE_libupm-veml6070-python3 is not set -# CONFIG_PACKAGE_libupm-water is not set -# CONFIG_PACKAGE_libupm-water-python3 is not set -# CONFIG_PACKAGE_libupm-waterlevel is not set -# CONFIG_PACKAGE_libupm-waterlevel-python3 is not set -# CONFIG_PACKAGE_libupm-wfs is not set -# CONFIG_PACKAGE_libupm-wfs-python3 is not set -# CONFIG_PACKAGE_libupm-wheelencoder is not set -# CONFIG_PACKAGE_libupm-wheelencoder-python3 is not set -# CONFIG_PACKAGE_libupm-wt5001 is not set -# CONFIG_PACKAGE_libupm-wt5001-python3 is not set -# CONFIG_PACKAGE_libupm-xbee is not set -# CONFIG_PACKAGE_libupm-xbee-python3 is not set -# CONFIG_PACKAGE_libupm-yg1006 is not set -# CONFIG_PACKAGE_libupm-yg1006-python3 is not set -# CONFIG_PACKAGE_libupm-zfm20 is not set -# CONFIG_PACKAGE_libupm-zfm20-python3 is not set -# CONFIG_PACKAGE_sx1302_hal-tests is not set -# CONFIG_PACKAGE_sx1302_hal-utils is not set +CONFIG_PACKAGE_libmraa=m +CONFIG_PACKAGE_libmraa-python3=m +CONFIG_PACKAGE_libupm=m +CONFIG_PACKAGE_libupm-a110x=m +CONFIG_PACKAGE_libupm-a110x-python3=m +CONFIG_PACKAGE_libupm-abp=m +CONFIG_PACKAGE_libupm-abp-python3=m +CONFIG_PACKAGE_libupm-ad8232=m +CONFIG_PACKAGE_libupm-ad8232-python3=m +CONFIG_PACKAGE_libupm-adafruitms1438=m +CONFIG_PACKAGE_libupm-adafruitms1438-python3=m +CONFIG_PACKAGE_libupm-adafruitss=m +CONFIG_PACKAGE_libupm-adafruitss-python3=m +CONFIG_PACKAGE_libupm-adc121c021=m +CONFIG_PACKAGE_libupm-adc121c021-python3=m +CONFIG_PACKAGE_libupm-adis16448=m +CONFIG_PACKAGE_libupm-adis16448-python3=m +CONFIG_PACKAGE_libupm-ads1x15=m +CONFIG_PACKAGE_libupm-ads1x15-python3=m +CONFIG_PACKAGE_libupm-adxl335=m +CONFIG_PACKAGE_libupm-adxl335-python3=m +CONFIG_PACKAGE_libupm-adxl345=m +CONFIG_PACKAGE_libupm-adxl345-python3=m +CONFIG_PACKAGE_libupm-adxrs610=m +CONFIG_PACKAGE_libupm-adxrs610-python3=m +CONFIG_PACKAGE_libupm-am2315=m +CONFIG_PACKAGE_libupm-am2315-python3=m +CONFIG_PACKAGE_libupm-apa102=m +CONFIG_PACKAGE_libupm-apa102-python3=m +CONFIG_PACKAGE_libupm-apds9002=m +CONFIG_PACKAGE_libupm-apds9002-python3=m +CONFIG_PACKAGE_libupm-apds9930=m +CONFIG_PACKAGE_libupm-apds9930-python3=m +CONFIG_PACKAGE_libupm-at42qt1070=m +CONFIG_PACKAGE_libupm-at42qt1070-python3=m +CONFIG_PACKAGE_libupm-bh1749=m +CONFIG_PACKAGE_libupm-bh1749-python3=m +CONFIG_PACKAGE_libupm-bh1750=m +CONFIG_PACKAGE_libupm-bh1750-python3=m +CONFIG_PACKAGE_libupm-bh1792=m +CONFIG_PACKAGE_libupm-bh1792-python3=m +CONFIG_PACKAGE_libupm-biss0001=m +CONFIG_PACKAGE_libupm-biss0001-python3=m +CONFIG_PACKAGE_libupm-bma220=m +CONFIG_PACKAGE_libupm-bma220-python3=m +CONFIG_PACKAGE_libupm-bma250e=m +CONFIG_PACKAGE_libupm-bma250e-python3=m +CONFIG_PACKAGE_libupm-bmg160=m +CONFIG_PACKAGE_libupm-bmg160-python3=m +CONFIG_PACKAGE_libupm-bmi160=m +CONFIG_PACKAGE_libupm-bmi160-python3=m +CONFIG_PACKAGE_libupm-bmm150=m +CONFIG_PACKAGE_libupm-bmm150-python3=m +CONFIG_PACKAGE_libupm-bmp280=m +CONFIG_PACKAGE_libupm-bmp280-python3=m +CONFIG_PACKAGE_libupm-bmpx8x=m +CONFIG_PACKAGE_libupm-bmpx8x-python3=m +CONFIG_PACKAGE_libupm-bmx055=m +CONFIG_PACKAGE_libupm-bmx055-python3=m +CONFIG_PACKAGE_libupm-bno055=m +CONFIG_PACKAGE_libupm-bno055-python3=m +CONFIG_PACKAGE_libupm-button=m +CONFIG_PACKAGE_libupm-button-python3=m +CONFIG_PACKAGE_libupm-buzzer=m +CONFIG_PACKAGE_libupm-buzzer-python3=m +CONFIG_PACKAGE_libupm-cjq4435=m +CONFIG_PACKAGE_libupm-cjq4435-python3=m +CONFIG_PACKAGE_libupm-collision=m +CONFIG_PACKAGE_libupm-collision-python3=m +CONFIG_PACKAGE_libupm-curieimu=m +CONFIG_PACKAGE_libupm-curieimu-python3=m +CONFIG_PACKAGE_libupm-cwlsxxa=m +CONFIG_PACKAGE_libupm-cwlsxxa-python3=m +CONFIG_PACKAGE_libupm-dfrec=m +CONFIG_PACKAGE_libupm-dfrec-python3=m +CONFIG_PACKAGE_libupm-dfrorp=m +CONFIG_PACKAGE_libupm-dfrorp-python3=m +CONFIG_PACKAGE_libupm-dfrph=m +CONFIG_PACKAGE_libupm-dfrph-python3=m +CONFIG_PACKAGE_libupm-ds1307=m +CONFIG_PACKAGE_libupm-ds1307-python3=m +CONFIG_PACKAGE_libupm-ds1808lc=m +CONFIG_PACKAGE_libupm-ds1808lc-python3=m +CONFIG_PACKAGE_libupm-ds18b20=m +CONFIG_PACKAGE_libupm-ds18b20-python3=m +CONFIG_PACKAGE_libupm-ds2413=m +CONFIG_PACKAGE_libupm-ds2413-python3=m +CONFIG_PACKAGE_libupm-ecezo=m +CONFIG_PACKAGE_libupm-ecezo-python3=m +CONFIG_PACKAGE_libupm-ecs1030=m +CONFIG_PACKAGE_libupm-ecs1030-python3=m +CONFIG_PACKAGE_libupm-ehr=m +CONFIG_PACKAGE_libupm-ehr-python3=m +CONFIG_PACKAGE_libupm-eldriver=m +CONFIG_PACKAGE_libupm-eldriver-python3=m +CONFIG_PACKAGE_libupm-electromagnet=m +CONFIG_PACKAGE_libupm-electromagnet-python3=m +CONFIG_PACKAGE_libupm-emg=m +CONFIG_PACKAGE_libupm-emg-python3=m +CONFIG_PACKAGE_libupm-enc03r=m +CONFIG_PACKAGE_libupm-enc03r-python3=m +CONFIG_PACKAGE_libupm-flex=m +CONFIG_PACKAGE_libupm-flex-python3=m +CONFIG_PACKAGE_libupm-gas=m +CONFIG_PACKAGE_libupm-gas-python3=m +CONFIG_PACKAGE_libupm-gp2y0a=m +CONFIG_PACKAGE_libupm-gp2y0a-python3=m +CONFIG_PACKAGE_libupm-gprs=m +CONFIG_PACKAGE_libupm-gprs-python3=m +CONFIG_PACKAGE_libupm-gsr=m +CONFIG_PACKAGE_libupm-gsr-python3=m +CONFIG_PACKAGE_libupm-guvas12d=m +CONFIG_PACKAGE_libupm-guvas12d-python3=m +CONFIG_PACKAGE_libupm-h3lis331dl=m +CONFIG_PACKAGE_libupm-h3lis331dl-python3=m +CONFIG_PACKAGE_libupm-h803x=m +CONFIG_PACKAGE_libupm-h803x-python3=m +CONFIG_PACKAGE_libupm-hcsr04=m +CONFIG_PACKAGE_libupm-hcsr04-python3=m +CONFIG_PACKAGE_libupm-hdc1000=m +CONFIG_PACKAGE_libupm-hdc1000-python3=m +CONFIG_PACKAGE_libupm-hdxxvxta=m +CONFIG_PACKAGE_libupm-hdxxvxta-python3=m +CONFIG_PACKAGE_libupm-hka5=m +CONFIG_PACKAGE_libupm-hka5-python3=m +CONFIG_PACKAGE_libupm-hlg150h=m +CONFIG_PACKAGE_libupm-hlg150h-python3=m +CONFIG_PACKAGE_libupm-hm11=m +CONFIG_PACKAGE_libupm-hm11-python3=m +CONFIG_PACKAGE_libupm-hmc5883l=m +CONFIG_PACKAGE_libupm-hmc5883l-python3=m +CONFIG_PACKAGE_libupm-hmtrp=m +CONFIG_PACKAGE_libupm-hmtrp-python3=m +CONFIG_PACKAGE_libupm-hp20x=m +CONFIG_PACKAGE_libupm-hp20x-python3=m +CONFIG_PACKAGE_libupm-ht9170=m +CONFIG_PACKAGE_libupm-ht9170-python3=m +CONFIG_PACKAGE_libupm-htu21d=m +CONFIG_PACKAGE_libupm-htu21d-python3=m +CONFIG_PACKAGE_libupm-hwxpxx=m +CONFIG_PACKAGE_libupm-hwxpxx-python3=m +CONFIG_PACKAGE_libupm-hx711=m +CONFIG_PACKAGE_libupm-hx711-python3=m +CONFIG_PACKAGE_libupm-ili9341=m +CONFIG_PACKAGE_libupm-ili9341-python3=m +CONFIG_PACKAGE_libupm-ims=m +CONFIG_PACKAGE_libupm-ims-python3=m +CONFIG_PACKAGE_libupm-ina132=m +CONFIG_PACKAGE_libupm-ina132-python3=m +CONFIG_PACKAGE_libupm-interfaces=m +CONFIG_PACKAGE_libupm-interfaces-python3=m +CONFIG_PACKAGE_libupm-isd1820=m +CONFIG_PACKAGE_libupm-isd1820-python3=m +CONFIG_PACKAGE_libupm-itg3200=m +CONFIG_PACKAGE_libupm-itg3200-python3=m +CONFIG_PACKAGE_libupm-jhd1313m1=m +CONFIG_PACKAGE_libupm-jhd1313m1-python3=m +CONFIG_PACKAGE_libupm-joystick12=m +CONFIG_PACKAGE_libupm-joystick12-python3=m +CONFIG_PACKAGE_libupm-kx122=m +CONFIG_PACKAGE_libupm-kx122-python3=m +CONFIG_PACKAGE_libupm-kxcjk1013=m +CONFIG_PACKAGE_libupm-kxcjk1013-python3=m +CONFIG_PACKAGE_libupm-kxtj3=m +CONFIG_PACKAGE_libupm-kxtj3-python3=m +CONFIG_PACKAGE_libupm-l298=m +CONFIG_PACKAGE_libupm-l298-python3=m +CONFIG_PACKAGE_libupm-l3gd20=m +CONFIG_PACKAGE_libupm-l3gd20-python3=m +CONFIG_PACKAGE_libupm-lcd=m +CONFIG_PACKAGE_libupm-lcd-python3=m +CONFIG_PACKAGE_libupm-lcdks=m +CONFIG_PACKAGE_libupm-lcdks-python3=m +CONFIG_PACKAGE_libupm-lcm1602=m +CONFIG_PACKAGE_libupm-lcm1602-python3=m +CONFIG_PACKAGE_libupm-ldt0028=m +CONFIG_PACKAGE_libupm-ldt0028-python3=m +CONFIG_PACKAGE_libupm-led=m +CONFIG_PACKAGE_libupm-led-python3=m +CONFIG_PACKAGE_libupm-lidarlitev3=m +CONFIG_PACKAGE_libupm-lidarlitev3-python3=m +CONFIG_PACKAGE_libupm-light=m +CONFIG_PACKAGE_libupm-light-python3=m +CONFIG_PACKAGE_libupm-linefinder=m +CONFIG_PACKAGE_libupm-linefinder-python3=m +CONFIG_PACKAGE_libupm-lis2ds12=m +CONFIG_PACKAGE_libupm-lis2ds12-python3=m +CONFIG_PACKAGE_libupm-lis3dh=m +CONFIG_PACKAGE_libupm-lis3dh-python3=m +CONFIG_PACKAGE_libupm-lm35=m +CONFIG_PACKAGE_libupm-lm35-python3=m +CONFIG_PACKAGE_libupm-lol=m +CONFIG_PACKAGE_libupm-lol-python3=m +CONFIG_PACKAGE_libupm-loudness=m +CONFIG_PACKAGE_libupm-loudness-python3=m +CONFIG_PACKAGE_libupm-lp8860=m +CONFIG_PACKAGE_libupm-lp8860-python3=m +CONFIG_PACKAGE_libupm-lpd8806=m +CONFIG_PACKAGE_libupm-lpd8806-python3=m +CONFIG_PACKAGE_libupm-lsm303agr=m +CONFIG_PACKAGE_libupm-lsm303agr-python3=m +CONFIG_PACKAGE_libupm-lsm303d=m +CONFIG_PACKAGE_libupm-lsm303d-python3=m +CONFIG_PACKAGE_libupm-lsm303dlh=m +CONFIG_PACKAGE_libupm-lsm303dlh-python3=m +CONFIG_PACKAGE_libupm-lsm6ds3h=m +CONFIG_PACKAGE_libupm-lsm6ds3h-python3=m +CONFIG_PACKAGE_libupm-lsm6dsl=m +CONFIG_PACKAGE_libupm-lsm6dsl-python3=m +CONFIG_PACKAGE_libupm-lsm9ds0=m +CONFIG_PACKAGE_libupm-lsm9ds0-python3=m +CONFIG_PACKAGE_libupm-m24lr64e=m +CONFIG_PACKAGE_libupm-m24lr64e-python3=m +CONFIG_PACKAGE_libupm-mag3110=m +CONFIG_PACKAGE_libupm-mag3110-python3=m +CONFIG_PACKAGE_libupm-max30100=m +CONFIG_PACKAGE_libupm-max30100-python3=m +CONFIG_PACKAGE_libupm-max31723=m +CONFIG_PACKAGE_libupm-max31723-python3=m +CONFIG_PACKAGE_libupm-max31855=m +CONFIG_PACKAGE_libupm-max31855-python3=m +CONFIG_PACKAGE_libupm-max44000=m +CONFIG_PACKAGE_libupm-max44000-python3=m +CONFIG_PACKAGE_libupm-max44009=m +CONFIG_PACKAGE_libupm-max44009-python3=m +CONFIG_PACKAGE_libupm-max5487=m +CONFIG_PACKAGE_libupm-max5487-python3=m +CONFIG_PACKAGE_libupm-maxds3231m=m +CONFIG_PACKAGE_libupm-maxds3231m-python3=m +CONFIG_PACKAGE_libupm-maxsonarez=m +CONFIG_PACKAGE_libupm-maxsonarez-python3=m +CONFIG_PACKAGE_libupm-mb704x=m +CONFIG_PACKAGE_libupm-mb704x-python3=m +CONFIG_PACKAGE_libupm-mcp2515=m +CONFIG_PACKAGE_libupm-mcp2515-python3=m +CONFIG_PACKAGE_libupm-mcp9808=m +CONFIG_PACKAGE_libupm-mcp9808-python3=m +CONFIG_PACKAGE_libupm-md=m +CONFIG_PACKAGE_libupm-md-python3=m +CONFIG_PACKAGE_libupm-mg811=m +CONFIG_PACKAGE_libupm-mg811-python3=m +CONFIG_PACKAGE_libupm-mhz16=m +CONFIG_PACKAGE_libupm-mhz16-python3=m +CONFIG_PACKAGE_libupm-mic=m +CONFIG_PACKAGE_libupm-mic-python3=m +CONFIG_PACKAGE_libupm-micsv89=m +CONFIG_PACKAGE_libupm-micsv89-python3=m +CONFIG_PACKAGE_libupm-mlx90614=m +CONFIG_PACKAGE_libupm-mlx90614-python3=m +CONFIG_PACKAGE_libupm-mma7361=m +CONFIG_PACKAGE_libupm-mma7361-python3=m +CONFIG_PACKAGE_libupm-mma7455=m +CONFIG_PACKAGE_libupm-mma7455-python3=m +CONFIG_PACKAGE_libupm-mma7660=m +CONFIG_PACKAGE_libupm-mma7660-python3=m +CONFIG_PACKAGE_libupm-mma8x5x=m +CONFIG_PACKAGE_libupm-mma8x5x-python3=m +CONFIG_PACKAGE_libupm-mmc35240=m +CONFIG_PACKAGE_libupm-mmc35240-python3=m +CONFIG_PACKAGE_libupm-moisture=m +CONFIG_PACKAGE_libupm-moisture-python3=m +CONFIG_PACKAGE_libupm-mpl3115a2=m +CONFIG_PACKAGE_libupm-mpl3115a2-python3=m +CONFIG_PACKAGE_libupm-mpr121=m +CONFIG_PACKAGE_libupm-mpr121-python3=m +CONFIG_PACKAGE_libupm-mpu9150=m +CONFIG_PACKAGE_libupm-mpu9150-python3=m +CONFIG_PACKAGE_libupm-mq303a=m +CONFIG_PACKAGE_libupm-mq303a-python3=m +CONFIG_PACKAGE_libupm-ms5611=m +CONFIG_PACKAGE_libupm-ms5611-python3=m +CONFIG_PACKAGE_libupm-ms5803=m +CONFIG_PACKAGE_libupm-ms5803-python3=m +CONFIG_PACKAGE_libupm-my9221=m +CONFIG_PACKAGE_libupm-my9221-python3=m +CONFIG_PACKAGE_libupm-nlgpio16=m +CONFIG_PACKAGE_libupm-nlgpio16-python3=m +CONFIG_PACKAGE_libupm-nmea_gps=m +CONFIG_PACKAGE_libupm-nmea_gps-python3=m +CONFIG_PACKAGE_libupm-nrf24l01=m +CONFIG_PACKAGE_libupm-nrf24l01-python3=m +CONFIG_PACKAGE_libupm-nrf8001=m +CONFIG_PACKAGE_libupm-nrf8001-python3=m +CONFIG_PACKAGE_libupm-nunchuck=m +CONFIG_PACKAGE_libupm-nunchuck-python3=m +CONFIG_PACKAGE_libupm-o2=m +CONFIG_PACKAGE_libupm-o2-python3=m +CONFIG_PACKAGE_libupm-otp538u=m +CONFIG_PACKAGE_libupm-otp538u-python3=m +CONFIG_PACKAGE_libupm-ozw=m +CONFIG_PACKAGE_libupm-ozw-python3=m +CONFIG_PACKAGE_libupm-p9813=m +CONFIG_PACKAGE_libupm-p9813-python3=m +CONFIG_PACKAGE_libupm-pca9685=m +CONFIG_PACKAGE_libupm-pca9685-python3=m +CONFIG_PACKAGE_libupm-pn532=m +CONFIG_PACKAGE_libupm-pn532-python3=m +CONFIG_PACKAGE_libupm-ppd42ns=m +CONFIG_PACKAGE_libupm-ppd42ns-python3=m +CONFIG_PACKAGE_libupm-pulsensor=m +CONFIG_PACKAGE_libupm-pulsensor-python3=m +CONFIG_PACKAGE_libupm-relay=m +CONFIG_PACKAGE_libupm-relay-python3=m +CONFIG_PACKAGE_libupm-rf22=m +CONFIG_PACKAGE_libupm-rf22-python3=m +CONFIG_PACKAGE_libupm-rfr359f=m +CONFIG_PACKAGE_libupm-rfr359f-python3=m +CONFIG_PACKAGE_libupm-rgbringcoder=m +CONFIG_PACKAGE_libupm-rgbringcoder-python3=m +CONFIG_PACKAGE_libupm-rhusb=m +CONFIG_PACKAGE_libupm-rhusb-python3=m +CONFIG_PACKAGE_libupm-rn2903=m +CONFIG_PACKAGE_libupm-rn2903-python3=m +CONFIG_PACKAGE_libupm-rotary=m +CONFIG_PACKAGE_libupm-rotary-python3=m +CONFIG_PACKAGE_libupm-rotaryencoder=m +CONFIG_PACKAGE_libupm-rotaryencoder-python3=m +CONFIG_PACKAGE_libupm-rpr220=m +CONFIG_PACKAGE_libupm-rpr220-python3=m +CONFIG_PACKAGE_libupm-rsc=m +CONFIG_PACKAGE_libupm-rsc-python3=m +CONFIG_PACKAGE_libupm-scam=m +CONFIG_PACKAGE_libupm-scam-python3=m +CONFIG_PACKAGE_libupm-sensortemplate=m +CONFIG_PACKAGE_libupm-sensortemplate-python3=m +CONFIG_PACKAGE_libupm-servo=m +CONFIG_PACKAGE_libupm-servo-python3=m +CONFIG_PACKAGE_libupm-sht1x=m +CONFIG_PACKAGE_libupm-sht1x-python3=m +CONFIG_PACKAGE_libupm-si1132=m +CONFIG_PACKAGE_libupm-si1132-python3=m +CONFIG_PACKAGE_libupm-si114x=m +CONFIG_PACKAGE_libupm-si114x-python3=m +CONFIG_PACKAGE_libupm-si7005=m +CONFIG_PACKAGE_libupm-si7005-python3=m +CONFIG_PACKAGE_libupm-slide=m +CONFIG_PACKAGE_libupm-slide-python3=m +CONFIG_PACKAGE_libupm-sm130=m +CONFIG_PACKAGE_libupm-sm130-python3=m +CONFIG_PACKAGE_libupm-smartdrive=m +CONFIG_PACKAGE_libupm-smartdrive-python3=m +CONFIG_PACKAGE_libupm-speaker=m +CONFIG_PACKAGE_libupm-speaker-python3=m +CONFIG_PACKAGE_libupm-ssd1351=m +CONFIG_PACKAGE_libupm-ssd1351-python3=m +CONFIG_PACKAGE_libupm-st7735=m +CONFIG_PACKAGE_libupm-st7735-python3=m +CONFIG_PACKAGE_libupm-stepmotor=m +CONFIG_PACKAGE_libupm-stepmotor-python3=m +CONFIG_PACKAGE_libupm-sx1276=m +CONFIG_PACKAGE_libupm-sx1276-python3=m +CONFIG_PACKAGE_libupm-sx6119=m +CONFIG_PACKAGE_libupm-sx6119-python3=m +CONFIG_PACKAGE_libupm-t3311=m +CONFIG_PACKAGE_libupm-t3311-python3=m +CONFIG_PACKAGE_libupm-t6713=m +CONFIG_PACKAGE_libupm-t6713-python3=m +CONFIG_PACKAGE_libupm-ta12200=m +CONFIG_PACKAGE_libupm-ta12200-python3=m +CONFIG_PACKAGE_libupm-tca9548a=m +CONFIG_PACKAGE_libupm-tca9548a-python3=m +CONFIG_PACKAGE_libupm-tcs3414cs=m +CONFIG_PACKAGE_libupm-tcs3414cs-python3=m +CONFIG_PACKAGE_libupm-tcs37727=m +CONFIG_PACKAGE_libupm-tcs37727-python3=m +CONFIG_PACKAGE_libupm-teams=m +CONFIG_PACKAGE_libupm-teams-python3=m +CONFIG_PACKAGE_libupm-temperature=m +CONFIG_PACKAGE_libupm-temperature-python3=m +CONFIG_PACKAGE_libupm-tex00=m +CONFIG_PACKAGE_libupm-tex00-python3=m +CONFIG_PACKAGE_libupm-th02=m +CONFIG_PACKAGE_libupm-th02-python3=m +CONFIG_PACKAGE_libupm-tm1637=m +CONFIG_PACKAGE_libupm-tm1637-python3=m +CONFIG_PACKAGE_libupm-tmp006=m +CONFIG_PACKAGE_libupm-tmp006-python3=m +CONFIG_PACKAGE_libupm-tsl2561=m +CONFIG_PACKAGE_libupm-tsl2561-python3=m +CONFIG_PACKAGE_libupm-ttp223=m +CONFIG_PACKAGE_libupm-ttp223-python3=m +CONFIG_PACKAGE_libupm-uartat=m +CONFIG_PACKAGE_libupm-uartat-python3=m +CONFIG_PACKAGE_libupm-uln200xa=m +CONFIG_PACKAGE_libupm-uln200xa-python3=m +CONFIG_PACKAGE_libupm-ultrasonic=m +CONFIG_PACKAGE_libupm-ultrasonic-python3=m +CONFIG_PACKAGE_libupm-urm37=m +CONFIG_PACKAGE_libupm-urm37-python3=m +CONFIG_PACKAGE_libupm-utilities=m +CONFIG_PACKAGE_libupm-utilities-python3=m +CONFIG_PACKAGE_libupm-vcap=m +CONFIG_PACKAGE_libupm-vcap-python3=m +CONFIG_PACKAGE_libupm-vdiv=m +CONFIG_PACKAGE_libupm-vdiv-python3=m +CONFIG_PACKAGE_libupm-veml6070=m +CONFIG_PACKAGE_libupm-veml6070-python3=m +CONFIG_PACKAGE_libupm-water=m +CONFIG_PACKAGE_libupm-water-python3=m +CONFIG_PACKAGE_libupm-waterlevel=m +CONFIG_PACKAGE_libupm-waterlevel-python3=m +CONFIG_PACKAGE_libupm-wfs=m +CONFIG_PACKAGE_libupm-wfs-python3=m +CONFIG_PACKAGE_libupm-wheelencoder=m +CONFIG_PACKAGE_libupm-wheelencoder-python3=m +CONFIG_PACKAGE_libupm-wt5001=m +CONFIG_PACKAGE_libupm-wt5001-python3=m +CONFIG_PACKAGE_libupm-xbee=m +CONFIG_PACKAGE_libupm-xbee-python3=m +CONFIG_PACKAGE_libupm-yg1006=m +CONFIG_PACKAGE_libupm-yg1006-python3=m +CONFIG_PACKAGE_libupm-zfm20=m +CONFIG_PACKAGE_libupm-zfm20-python3=m +CONFIG_PACKAGE_sx1302_hal-tests=m +CONFIG_PACKAGE_sx1302_hal-utils=m # end of IoT # # Languages # -# CONFIG_PACKAGE_libyaml is not set +CONFIG_PACKAGE_libyaml=m # end of Languages # # LibElektra # -# CONFIG_PACKAGE_libelektra-core is not set -# CONFIG_PACKAGE_libelektra-cpp is not set -# CONFIG_PACKAGE_libelektra-crypto is not set -# CONFIG_PACKAGE_libelektra-curlget is not set -# CONFIG_PACKAGE_libelektra-dbus is not set -# CONFIG_PACKAGE_libelektra-ev is not set -# CONFIG_PACKAGE_libelektra-extra is not set -# CONFIG_PACKAGE_libelektra-lua is not set -# CONFIG_PACKAGE_libelektra-plugins is not set -# CONFIG_PACKAGE_libelektra-python3 is not set -# CONFIG_PACKAGE_libelektra-resolvers is not set -# CONFIG_PACKAGE_libelektra-uv is not set -# CONFIG_PACKAGE_libelektra-xerces is not set -# CONFIG_PACKAGE_libelektra-xml is not set -# CONFIG_PACKAGE_libelektra-yajl is not set -# CONFIG_PACKAGE_libelektra-yamlcpp is not set -# CONFIG_PACKAGE_libelektra-zmq is not set +CONFIG_PACKAGE_libelektra-core=m +CONFIG_PACKAGE_libelektra-cpp=m +CONFIG_PACKAGE_libelektra-crypto=m +CONFIG_PACKAGE_libelektra-curlget=m +CONFIG_PACKAGE_libelektra-dbus=m +CONFIG_PACKAGE_libelektra-ev=m +CONFIG_PACKAGE_libelektra-extra=m +CONFIG_PACKAGE_libelektra-lua=m +CONFIG_PACKAGE_libelektra-plugins=m +CONFIG_PACKAGE_libelektra-python3=m +CONFIG_PACKAGE_libelektra-resolvers=m +CONFIG_PACKAGE_libelektra-uv=m +CONFIG_PACKAGE_libelektra-xerces=m +CONFIG_PACKAGE_libelektra-xml=m +CONFIG_PACKAGE_libelektra-yajl=m +CONFIG_PACKAGE_libelektra-yamlcpp=m +CONFIG_PACKAGE_libelektra-zmq=m # end of LibElektra # # Networking # -# CONFIG_PACKAGE_libdcwproto is not set -# CONFIG_PACKAGE_libdcwsocket is not set -# CONFIG_PACKAGE_libsctp is not set +CONFIG_PACKAGE_libdcwproto=m +CONFIG_PACKAGE_libdcwsocket=m +CONFIG_PACKAGE_libsctp=m CONFIG_PACKAGE_libslirp=m -# CONFIG_PACKAGE_libuhttpd-mbedtls is not set -# CONFIG_PACKAGE_libuhttpd-nossl is not set -# CONFIG_PACKAGE_libuhttpd-openssl is not set -# CONFIG_PACKAGE_libuhttpd-wolfssl is not set -# CONFIG_PACKAGE_libulfius-gnutls is not set -# CONFIG_PACKAGE_libulfius-nossl is not set -# CONFIG_PACKAGE_libunbound is not set -# CONFIG_PACKAGE_libuwsc-mbedtls is not set -# CONFIG_PACKAGE_libuwsc-nossl is not set -# CONFIG_PACKAGE_libuwsc-openssl is not set -# CONFIG_PACKAGE_libuwsc-wolfssl is not set +CONFIG_PACKAGE_libuhttpd-mbedtls=m +CONFIG_PACKAGE_libuhttpd-nossl=m +CONFIG_PACKAGE_libuhttpd-openssl=m +CONFIG_PACKAGE_libuhttpd-wolfssl=m +CONFIG_PACKAGE_libulfius-gnutls=m +CONFIG_PACKAGE_libulfius-nossl=m +CONFIG_PACKAGE_libunbound=m +# CONFIG_PACKAGE_libunbound_dnscrypt is not set +CONFIG_PACKAGE_libunbound_ipset=y +CONFIG_PACKAGE_libunbound_libevent=y +CONFIG_PACKAGE_libunbound_libpthread=y +# CONFIG_PACKAGE_libunbound_nghttp2 is not set +# CONFIG_PACKAGE_libunbound_pythonmodule is not set +# CONFIG_PACKAGE_libunbound_subnet is not set +# CONFIG_PACKAGE_libunbound_dnstap is not set +CONFIG_PACKAGE_libuwsc-mbedtls=m + +# +# Configuration +# +# CONFIG_LIBUWSC_mbedtls_LUA_BINDING is not set +# end of Configuration + +CONFIG_PACKAGE_libuwsc-nossl=m + +# +# Configuration +# +# CONFIG_LIBUWSC_nossl_LUA_BINDING is not set +# end of Configuration + +CONFIG_PACKAGE_libuwsc-openssl=m + +# +# Configuration +# +# CONFIG_LIBUWSC_openssl_LUA_BINDING is not set +# end of Configuration + +CONFIG_PACKAGE_libuwsc-wolfssl=m + +# +# Configuration +# +# CONFIG_LIBUWSC_wolfssl_LUA_BINDING is not set +# end of Configuration # end of Networking # # SSL # -# CONFIG_PACKAGE_libgnutls is not set -# CONFIG_PACKAGE_libgnutls-dane is not set +CONFIG_PACKAGE_libgnutls=m + +# +# Configuration +# +CONFIG_GNUTLS_DTLS_SRTP=y +CONFIG_GNUTLS_ALPN=y +CONFIG_GNUTLS_OCSP=y +# CONFIG_GNUTLS_CRYPTODEV is not set +CONFIG_GNUTLS_HEARTBEAT=y +# CONFIG_GNUTLS_SRP is not set +CONFIG_GNUTLS_PSK=y +CONFIG_GNUTLS_ANON=y +# CONFIG_GNUTLS_TPM is not set +# CONFIG_GNUTLS_PKCS11 is not set +# CONFIG_GNUTLS_EXT_LIBTASN1 is not set +# end of Configuration + +CONFIG_PACKAGE_libgnutls-dane=m CONFIG_PACKAGE_libmbedtls=y # @@ -4372,6 +5162,8 @@ CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y # CONFIG_MBEDTLS_PLATFORM_C is not set # CONFIG_MBEDTLS_SELF_TEST is not set # CONFIG_MBEDTLS_SSL_TRUNCATED_HMAC is not set +CONFIG_MBEDTLS_THREADING_C=y +CONFIG_MBEDTLS_THREADING_PTHREAD=y # CONFIG_MBEDTLS_VERSION_C is not set # CONFIG_MBEDTLS_VERSION_FEATURES is not set @@ -4380,7 +5172,7 @@ CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y # CONFIG_MBEDTLS_ENTROPY_FORCE_SHA256=y # CONFIG_MBEDTLS_SSL_RENEGOTIATION is not set -# CONFIG_PACKAGE_libnss is not set +CONFIG_PACKAGE_libnss=m CONFIG_PACKAGE_libopenssl=m # @@ -4442,7 +5234,7 @@ CONFIG_PACKAGE_libopenssl-devcrypto=m CONFIG_PACKAGE_libopenssl-gost_engine=m CONFIG_PACKAGE_libopenssl-legacy=m CONFIG_PACKAGE_libopenssl-padlock=m -# CONFIG_PACKAGE_libwolfssl is not set +CONFIG_PACKAGE_libwolfssl=m # # wolfSSL Library Configuration @@ -4462,143 +5254,278 @@ CONFIG_WOLFSSL_HAS_ECC25519=y # CONFIG_WOLFSSL_HAS_ECC448 is not set CONFIG_WOLFSSL_HAS_OPENVPN=y CONFIG_WOLFSSL_ALT_NAMES=y +CONFIG_WOLFSSL_HAS_NO_HW=y +# CONFIG_WOLFSSL_HAS_AFALG is not set +# CONFIG_WOLFSSL_HAS_DEVCRYPTO_CBC is not set +# CONFIG_WOLFSSL_HAS_DEVCRYPTO_AES is not set +# CONFIG_WOLFSSL_HAS_DEVCRYPTO_FULL is not set # end of wolfSSL Library Configuration # CONFIG_PACKAGE_libwolfsslcpu-crypto is not set +CONFIG_PACKAGE_libwolfssl-benchmark=m # end of SSL # # Sound # -# CONFIG_PACKAGE_alsa-ucm-conf is not set -# CONFIG_PACKAGE_liblo is not set +CONFIG_PACKAGE_alsa-ucm-conf=m +CONFIG_PACKAGE_liblo=m # end of Sound # # Telephony # -# CONFIG_PACKAGE_bcg729 is not set +CONFIG_PACKAGE_bcg729=m # CONFIG_PACKAGE_dahdi-tools-libtonezone is not set -# CONFIG_PACKAGE_gsmlib is not set -# CONFIG_PACKAGE_libctb is not set +CONFIG_PACKAGE_gsmlib=m +CONFIG_PACKAGE_libctb=m # CONFIG_PACKAGE_libfreetdm is not set -# CONFIG_PACKAGE_libiksemel is not set -# CONFIG_PACKAGE_libks is not set -# CONFIG_PACKAGE_libosip2 is not set -# CONFIG_PACKAGE_libpj is not set -# CONFIG_PACKAGE_libpjlib-util is not set -# CONFIG_PACKAGE_libpjmedia is not set -# CONFIG_PACKAGE_libpjnath is not set -# CONFIG_PACKAGE_libpjsip is not set -# CONFIG_PACKAGE_libpjsip-simple is not set -# CONFIG_PACKAGE_libpjsip-ua is not set -# CONFIG_PACKAGE_libpjsua is not set -# CONFIG_PACKAGE_libpjsua2 is not set -# CONFIG_PACKAGE_libre is not set -# CONFIG_PACKAGE_librem is not set -# CONFIG_PACKAGE_libspandsp is not set -# CONFIG_PACKAGE_libspandsp3 is not set -# CONFIG_PACKAGE_libsrtp2 is not set -# CONFIG_PACKAGE_signalwire-client-c is not set -# CONFIG_PACKAGE_sofia-sip is not set +CONFIG_PACKAGE_libiksemel=m +CONFIG_PACKAGE_libks=m +CONFIG_PACKAGE_libosip2=m +CONFIG_PACKAGE_libpj=m +CONFIG_PACKAGE_libpjlib-util=m +CONFIG_PACKAGE_libpjmedia=m +CONFIG_PACKAGE_libpjnath=m +CONFIG_PACKAGE_libpjsip=m +CONFIG_PACKAGE_libpjsip-simple=m +CONFIG_PACKAGE_libpjsip-ua=m +CONFIG_PACKAGE_libpjsua=m +CONFIG_PACKAGE_libpjsua2=m +CONFIG_PACKAGE_libre=m +CONFIG_PACKAGE_librem=m +CONFIG_PACKAGE_libspandsp=m +CONFIG_PACKAGE_libspandsp3=m +CONFIG_PACKAGE_libsrtp2=m +CONFIG_PACKAGE_signalwire-client-c=m +CONFIG_PACKAGE_sofia-sip=m # end of Telephony # # libimobiledevice # -# CONFIG_PACKAGE_libimobiledevice is not set -# CONFIG_PACKAGE_libirecovery is not set -# CONFIG_PACKAGE_libplist is not set -# CONFIG_PACKAGE_libusbmuxd is not set +CONFIG_PACKAGE_libimobiledevice=m +CONFIG_PACKAGE_libirecovery=m +CONFIG_PACKAGE_libplist=m +CONFIG_PACKAGE_libusbmuxd=m # end of libimobiledevice -# CONFIG_PACKAGE_acsccid is not set -# CONFIG_PACKAGE_alsa-lib is not set +CONFIG_PACKAGE_acsccid=m +CONFIG_PACKAGE_alsa-lib=m # CONFIG_PACKAGE_argp-standalone is not set -# CONFIG_PACKAGE_bind-libs is not set -# CONFIG_PACKAGE_bluez-libs is not set -# CONFIG_PACKAGE_boost is not set +CONFIG_PACKAGE_bind-libs=m +CONFIG_PACKAGE_bluez-libs=m +CONFIG_PACKAGE_boost=m # CONFIG_boost-context-exclude is not set # CONFIG_boost-coroutine-exclude is not set # CONFIG_boost-fiber-exclude is not set -# CONFIG_PACKAGE_boringssl is not set + +# +# Select Boost Options +# + +# +# Boost compilation options. +# +# CONFIG_boost-compile-visibility-global is not set +# CONFIG_boost-compile-visibility-protected is not set +CONFIG_boost-compile-visibility-hidden=y +# CONFIG_boost-shared-libs is not set +# CONFIG_boost-static-libs is not set +CONFIG_boost-static-and-shared-libs=y +CONFIG_boost-runtime-shared=y +CONFIG_boost-variant-release=y +# CONFIG_boost-variant-debug is not set +# CONFIG_boost-variant-profile is not set +# CONFIG_boost-use-name-tags is not set +# end of Select Boost Options + +# +# Select Boost libraries +# + +# +# Libraries +# +CONFIG_boost-libs-all=y +CONFIG_boost-test-pkg=y +CONFIG_boost-graph-parallel=y +CONFIG_PACKAGE_boost-atomic=m +CONFIG_PACKAGE_boost-chrono=m +CONFIG_PACKAGE_boost-cobalt=m +CONFIG_PACKAGE_boost-container=m +CONFIG_PACKAGE_boost-context=m +CONFIG_PACKAGE_boost-contract=m +CONFIG_PACKAGE_boost-coroutine=m +CONFIG_PACKAGE_boost-date_time=m +CONFIG_PACKAGE_boost-fiber=m +CONFIG_PACKAGE_boost-filesystem=m +CONFIG_PACKAGE_boost-graph=m +CONFIG_PACKAGE_boost-iostreams=m +CONFIG_PACKAGE_boost-json=m +CONFIG_PACKAGE_boost-locale=m +CONFIG_PACKAGE_boost-log=m +CONFIG_PACKAGE_boost-math=m +CONFIG_PACKAGE_boost-nowide=m +CONFIG_PACKAGE_boost-program_options=m +CONFIG_PACKAGE_boost-python3=m +CONFIG_PACKAGE_boost-random=m +CONFIG_PACKAGE_boost-regex=m +CONFIG_PACKAGE_boost-serialization=m +CONFIG_PACKAGE_boost-wserialization=m +CONFIG_PACKAGE_boost-stacktrace=m +CONFIG_PACKAGE_boost-system=m +CONFIG_PACKAGE_boost-thread=m +CONFIG_PACKAGE_boost-timer=m +CONFIG_PACKAGE_boost-type_erasure=m +CONFIG_PACKAGE_boost-url=m +CONFIG_PACKAGE_boost-wave=m +# end of Select Boost libraries + +CONFIG_PACKAGE_boost-libs=m +CONFIG_PACKAGE_boost-test=m +CONFIG_PACKAGE_boringssl=m CONFIG_PACKAGE_cJSON=m -# CONFIG_PACKAGE_ccid is not set -# CONFIG_PACKAGE_check is not set +CONFIG_PACKAGE_ccid=m +CONFIG_PACKAGE_check=m CONFIG_PACKAGE_confuse=m -# CONFIG_PACKAGE_czmq is not set -# CONFIG_PACKAGE_davici is not set -# CONFIG_PACKAGE_dtndht is not set +CONFIG_PACKAGE_czmq=m +CONFIG_PACKAGE_davici=m +CONFIG_PACKAGE_dtndht=m CONFIG_PACKAGE_efivar=m -# CONFIG_PACKAGE_getdns is not set -# CONFIG_PACKAGE_giflib is not set +CONFIG_PACKAGE_getdns=m + +# +# Configuration +# +# CONFIG_GETDNS_BUILD_LIBEVENT2 is not set +CONFIG_GETDNS_ENABLE_STUB_ONLY=y +# CONFIG_GETDNS_ENABLE_IDN_LIBIDN2 is not set +# end of Configuration + +CONFIG_PACKAGE_giflib=m CONFIG_PACKAGE_glib2=m -# CONFIG_PACKAGE_google-authenticator-libpam is not set +CONFIG_PACKAGE_gnu-efi=m +CONFIG_PACKAGE_google-authenticator-libpam=m CONFIG_PACKAGE_gperftools-headers=m CONFIG_PACKAGE_gperftools-runtime=m -# CONFIG_PACKAGE_hidapi is not set -# CONFIG_PACKAGE_hyperscan-headers is not set -# CONFIG_PACKAGE_hyperscan-runtime is not set -# CONFIG_PACKAGE_ibrcommon is not set -# CONFIG_PACKAGE_ibrdtn is not set -# CONFIG_PACKAGE_icu is not set -# CONFIG_PACKAGE_icu-data-tools is not set -# CONFIG_PACKAGE_icu-full-data is not set +CONFIG_PACKAGE_hidapi=m +CONFIG_PACKAGE_hyperscan-headers=m +CONFIG_PACKAGE_hyperscan-runtime=m +CONFIG_PACKAGE_ibrcommon=m +CONFIG_PACKAGE_ibrdtn=m +CONFIG_PACKAGE_icu=m +CONFIG_PACKAGE_icu-data-tools=m +CONFIG_PACKAGE_icu-full-data=m CONFIG_PACKAGE_jansson=y -# CONFIG_PACKAGE_json-glib is not set -# CONFIG_PACKAGE_jsoncpp is not set -# CONFIG_PACKAGE_knot-libs is not set -# CONFIG_PACKAGE_knot-libzscanner is not set -# CONFIG_PACKAGE_libaio is not set -# CONFIG_PACKAGE_libantlr3c is not set -# CONFIG_PACKAGE_libao is not set -# CONFIG_PACKAGE_libapparmor is not set -# CONFIG_PACKAGE_libapr is not set -# CONFIG_PACKAGE_libaprutil is not set -# CONFIG_PACKAGE_libarchive is not set -# CONFIG_PACKAGE_libarchive-noopenssl is not set +CONFIG_PACKAGE_json-glib=m +CONFIG_PACKAGE_jsoncpp=m +CONFIG_PACKAGE_knot-libs=m +CONFIG_PACKAGE_knot-libzscanner=m +CONFIG_PACKAGE_libaio=m +CONFIG_PACKAGE_libantlr3c=m +CONFIG_PACKAGE_libao=m +CONFIG_PACKAGE_libapparmor=m +CONFIG_PACKAGE_libapr=m +CONFIG_PACKAGE_libaprutil=m +CONFIG_PACKAGE_libaprutil-crypto-openssl=m +CONFIG_PACKAGE_libaprutil-dbd-mysql=m +CONFIG_PACKAGE_libaprutil-dbd-odbc=m +CONFIG_PACKAGE_libaprutil-dbd-pgsql=m +CONFIG_PACKAGE_libaprutil-dbd-sqlite3=m +CONFIG_PACKAGE_libaprutil-dbm-gdbm=m +CONFIG_PACKAGE_libaprutil-ldap=m +CONFIG_PACKAGE_libarchive=m +CONFIG_PACKAGE_libarchive-noopenssl=m # CONFIG_PACKAGE_libasm is not set -# CONFIG_PACKAGE_libassuan is not set -# CONFIG_PACKAGE_libatasmart is not set -# CONFIG_PACKAGE_libaudit is not set -# CONFIG_PACKAGE_libauparse is not set -# CONFIG_PACKAGE_libavahi-client is not set -# CONFIG_PACKAGE_libavahi-dbus-support is not set -# CONFIG_PACKAGE_libavahi-nodbus-support is not set -# CONFIG_PACKAGE_libbase16384 is not set +CONFIG_PACKAGE_libassuan=m +CONFIG_PACKAGE_libatasmart=m +CONFIG_PACKAGE_libaudit=m +CONFIG_PACKAGE_libauparse=m +CONFIG_PACKAGE_libavahi-client=m +CONFIG_PACKAGE_libavahi-dbus-support=m +CONFIG_PACKAGE_libavahi-nodbus-support=m +CONFIG_PACKAGE_libbase16384=m CONFIG_PACKAGE_libbfd=m CONFIG_PACKAGE_libblkid=y CONFIG_PACKAGE_libblobmsg-json=y CONFIG_PACKAGE_libbpf=m -# CONFIG_PACKAGE_libbsd is not set +CONFIG_PACKAGE_libbsd=m CONFIG_PACKAGE_libcap=m CONFIG_PACKAGE_libcap-bin=m CONFIG_PACKAGE_libcap-bin-capsh-shell="/bin/sh" -# CONFIG_PACKAGE_libcap-ng is not set +CONFIG_PACKAGE_libcap-ng=m +CONFIG_PACKAGE_libcap-ng-bin=m CONFIG_PACKAGE_libcares=m -# CONFIG_PACKAGE_libcbor is not set -# CONFIG_PACKAGE_libcgroup is not set +CONFIG_PACKAGE_libcbor=m +CONFIG_PACKAGE_libcgroup=m # CONFIG_PACKAGE_libcharset is not set -# CONFIG_PACKAGE_libcli is not set -# CONFIG_PACKAGE_libcoap is not set +CONFIG_PACKAGE_libcli=m +CONFIG_PACKAGE_libcoap=m CONFIG_PACKAGE_libcomerr=y -# CONFIG_PACKAGE_libconfig is not set +CONFIG_PACKAGE_libconfig=m CONFIG_PACKAGE_libctf=m -# CONFIG_PACKAGE_libcurl is not set -# CONFIG_PACKAGE_libcurl-gnutls is not set -# CONFIG_PACKAGE_libdaemon is not set -# CONFIG_PACKAGE_libdaq3 is not set -# CONFIG_PACKAGE_libdb47 is not set -# CONFIG_PACKAGE_libdb47xx is not set -# CONFIG_PACKAGE_libdbi is not set -# CONFIG_PACKAGE_libdbus is not set -# CONFIG_PACKAGE_libdeflate is not set -CONFIG_PACKAGE_libdevmapper=y -# CONFIG_PACKAGE_libdevmapper-selinux is not set -# CONFIG_PACKAGE_libdht is not set -# CONFIG_PACKAGE_libdmapsharing is not set -# CONFIG_PACKAGE_libdnet is not set -CONFIG_PACKAGE_libdrm=y +CONFIG_PACKAGE_libcurl=m + +# +# SSL support +# +CONFIG_LIBCURL_MBEDTLS=y +# CONFIG_LIBCURL_WOLFSSL is not set +# CONFIG_LIBCURL_OPENSSL is not set +# CONFIG_LIBCURL_GNUTLS is not set +# CONFIG_LIBCURL_NOSSL is not set + +# +# Supported protocols +# +# CONFIG_LIBCURL_DICT is not set +CONFIG_LIBCURL_FILE=y +CONFIG_LIBCURL_FTP=y +# CONFIG_LIBCURL_GOPHER is not set +CONFIG_LIBCURL_HTTP=y +CONFIG_LIBCURL_COOKIES=y +# CONFIG_LIBCURL_IMAP is not set +# CONFIG_LIBCURL_LDAP is not set +# CONFIG_LIBCURL_POP3 is not set +# CONFIG_LIBCURL_RTSP is not set +# CONFIG_LIBCURL_SSH2 is not set +CONFIG_LIBCURL_NO_SMB="!" +# CONFIG_LIBCURL_SMTP is not set +# CONFIG_LIBCURL_TELNET is not set +# CONFIG_LIBCURL_TFTP is not set +CONFIG_LIBCURL_NGHTTP2=y + +# +# Miscellaneous +# +CONFIG_LIBCURL_PROXY=y +# CONFIG_LIBCURL_CRYPTO_AUTH is not set +# CONFIG_LIBCURL_TLS_SRP is not set +# CONFIG_LIBCURL_LIBIDN2 is not set +# CONFIG_LIBCURL_THREADED_RESOLVER is not set +# CONFIG_LIBCURL_ZLIB is not set +# CONFIG_LIBCURL_ZSTD is not set +CONFIG_LIBCURL_UNIX_SOCKETS=y +# CONFIG_LIBCURL_LIBCURL_OPTION is not set +# CONFIG_LIBCURL_VERBOSE is not set +CONFIG_PACKAGE_libcurl-gnutls=m +CONFIG_PACKAGE_libdaemon=m +CONFIG_PACKAGE_libdaq3=m +CONFIG_PACKAGE_libdb47=m +CONFIG_PACKAGE_libdb47xx=m +CONFIG_PACKAGE_libdbi=m +CONFIG_PACKAGE_libdbd-mysql=m +CONFIG_PACKAGE_libdbd-pgsql=m +CONFIG_PACKAGE_libdbd-sqlite3=m +CONFIG_PACKAGE_libdbus=m +CONFIG_PACKAGE_libdeflate=m +CONFIG_PACKAGE_libdevmapper=m +CONFIG_PACKAGE_libdevmapper-selinux=m +CONFIG_PACKAGE_libdht=m +CONFIG_PACKAGE_libdmapsharing=m +CONFIG_PACKAGE_libdnet=m +CONFIG_PACKAGE_libdrm=m # # Select libdrm build options @@ -4610,168 +5537,340 @@ CONFIG_LIBDRM_RADEON=y CONFIG_PACKAGE_libdw=m CONFIG_PACKAGE_libe2p=y -# CONFIG_PACKAGE_libecdsautil is not set -# CONFIG_PACKAGE_libedit is not set +CONFIG_PACKAGE_libecdsautil=m +CONFIG_PACKAGE_libedit=m CONFIG_PACKAGE_libelf=m -# CONFIG_PACKAGE_libesmtp is not set -# CONFIG_PACKAGE_libestr is not set -# CONFIG_PACKAGE_libev is not set -# CONFIG_PACKAGE_libevdev is not set -# CONFIG_PACKAGE_libevent2 is not set -# CONFIG_PACKAGE_libevent2-core is not set -# CONFIG_PACKAGE_libevent2-extra is not set -# CONFIG_PACKAGE_libevent2-openssl is not set -# CONFIG_PACKAGE_libevent2-pthreads is not set -# CONFIG_PACKAGE_libexif is not set -# CONFIG_PACKAGE_libexpat is not set -# CONFIG_PACKAGE_libexslt is not set +CONFIG_PACKAGE_libesmtp=m +CONFIG_PACKAGE_libestr=m +CONFIG_PACKAGE_libev=m +CONFIG_PACKAGE_libevdev=m +CONFIG_PACKAGE_libevent2=m +CONFIG_PACKAGE_libevent2-core=m +CONFIG_PACKAGE_libevent2-extra=m +CONFIG_PACKAGE_libevent2-openssl=m +CONFIG_PACKAGE_libevent2-pthreads=m +CONFIG_PACKAGE_libexif=m +CONFIG_PACKAGE_libexpat=y +CONFIG_PACKAGE_libexslt=m CONFIG_PACKAGE_libext2fs=y -# CONFIG_PACKAGE_libextractor is not set +CONFIG_PACKAGE_libextractor=m +CONFIG_PACKAGE_libextractor-plugin-archive=m +CONFIG_PACKAGE_libextractor-plugin-deb=m +CONFIG_PACKAGE_libextractor-plugin-dvi=m +CONFIG_PACKAGE_libextractor-plugin-flac=m +CONFIG_PACKAGE_libextractor-plugin-gif=m +CONFIG_PACKAGE_libextractor-plugin-gstreamer=m +CONFIG_PACKAGE_libextractor-plugin-it=m +CONFIG_PACKAGE_libextractor-plugin-jpeg=m +CONFIG_PACKAGE_libextractor-plugin-man=m +CONFIG_PACKAGE_libextractor-plugin-mime=m +CONFIG_PACKAGE_libextractor-plugin-mpeg=m +CONFIG_PACKAGE_libextractor-plugin-nsf=m +CONFIG_PACKAGE_libextractor-plugin-nsfe=m +CONFIG_PACKAGE_libextractor-plugin-odf=m +CONFIG_PACKAGE_libextractor-plugin-ogg=m +CONFIG_PACKAGE_libextractor-plugin-png=m +CONFIG_PACKAGE_libextractor-plugin-ps=m +CONFIG_PACKAGE_libextractor-plugin-riff=m +CONFIG_PACKAGE_libextractor-plugin-s3m=m +CONFIG_PACKAGE_libextractor-plugin-sid=m +CONFIG_PACKAGE_libextractor-plugin-tiff=m +CONFIG_PACKAGE_libextractor-plugin-wav=m +CONFIG_PACKAGE_libextractor-plugin-xm=m +CONFIG_PACKAGE_libextractor-plugin-zip=m CONFIG_PACKAGE_libf2fs=y # CONFIG_PACKAGE_libf2fs-selinux is not set -# CONFIG_PACKAGE_libfaad2 is not set -# CONFIG_PACKAGE_libfastjson is not set -# CONFIG_PACKAGE_libfdisk is not set -# CONFIG_PACKAGE_libfdt is not set +CONFIG_PACKAGE_libfaad2=m +CONFIG_PACKAGE_libfastjson=m +CONFIG_PACKAGE_libfdisk=m +CONFIG_PACKAGE_libfdt=m CONFIG_PACKAGE_libffi=m -# CONFIG_PACKAGE_libffmpeg-audio-dec is not set +CONFIG_PACKAGE_libffmpeg-audio-dec=m CONFIG_FFMPEG_X86ASM=y -# CONFIG_PACKAGE_libffmpeg-full is not set -# CONFIG_PACKAGE_libffmpeg-mini is not set -# CONFIG_PACKAGE_libfido2 is not set -# CONFIG_PACKAGE_libflac is not set -# CONFIG_PACKAGE_libfmt is not set -# CONFIG_PACKAGE_libfreetype is not set -# CONFIG_PACKAGE_libfstrm is not set +CONFIG_PACKAGE_libffmpeg-full=m +CONFIG_PACKAGE_libffmpeg-mini=m +CONFIG_PACKAGE_libfido2=m +CONFIG_PACKAGE_libflac=m +CONFIG_PACKAGE_libfmt=m +CONFIG_PACKAGE_libfreetype=m +CONFIG_PACKAGE_libfstrm=m CONFIG_PACKAGE_libftdi=m -# CONFIG_PACKAGE_libftdi1 is not set -# CONFIG_PACKAGE_libgabe is not set -# CONFIG_PACKAGE_libgcrypt is not set -# CONFIG_PACKAGE_libgd is not set -# CONFIG_PACKAGE_libgd-full is not set -# CONFIG_PACKAGE_libgdbm is not set -# CONFIG_PACKAGE_libgee is not set -# CONFIG_PACKAGE_libgensio is not set -# CONFIG_PACKAGE_libgensiocpp is not set +CONFIG_PACKAGE_libftdi1=m +CONFIG_PACKAGE_libgabe=m +CONFIG_PACKAGE_libgcrypt=m +CONFIG_PACKAGE_libgd=m +# CONFIG_LIBGD_TIFF is not set +# CONFIG_LIBGD_FREETYPE is not set +CONFIG_PACKAGE_libgd-full=m +CONFIG_PACKAGE_libgdbm=m +CONFIG_PACKAGE_libgee=m +CONFIG_PACKAGE_libgensio=m +# CONFIG_GENSIO_SSL is not set +# CONFIG_GENSIO_WRAP is not set +# CONFIG_GENSIO_SCTP is not set +CONFIG_GENSIO_PTHREADS=y +# CONFIG_GENSIO_AVAHI is not set +# CONFIG_GENSIO_GLIB is not set +# CONFIG_GENSIO_TCL is not set +CONFIG_PACKAGE_libgensiocpp=m CONFIG_PACKAGE_libgmp=m -# CONFIG_PACKAGE_libgpg-error is not set -# CONFIG_PACKAGE_libgpgme is not set -# CONFIG_PACKAGE_libgpgmepp is not set -# CONFIG_PACKAGE_libgphoto2 is not set -# CONFIG_PACKAGE_libgpiod is not set -# CONFIG_PACKAGE_libgps is not set -# CONFIG_PACKAGE_libhamlib is not set -# CONFIG_PACKAGE_libhavege is not set -# CONFIG_PACKAGE_libhiredis is not set -# CONFIG_PACKAGE_libhttp-parser is not set -# CONFIG_PACKAGE_libhwloc is not set -# CONFIG_PACKAGE_libi2c is not set -# CONFIG_PACKAGE_libical is not set +CONFIG_PACKAGE_libgpg-error=m +CONFIG_PACKAGE_libgpgme=m +CONFIG_PACKAGE_libgpgmepp=m +CONFIG_PACKAGE_libgphoto2=m +CONFIG_PACKAGE_libgphoto2-drivers-adc65=m +CONFIG_PACKAGE_libgphoto2-drivers-agfa_cl20=m +CONFIG_PACKAGE_libgphoto2-drivers-aox=m +CONFIG_PACKAGE_libgphoto2-drivers-ax203=m +CONFIG_PACKAGE_libgphoto2-drivers-barbie=m +CONFIG_PACKAGE_libgphoto2-drivers-canon=m +CONFIG_PACKAGE_libgphoto2-drivers-casio_qv=m +CONFIG_PACKAGE_libgphoto2-drivers-clicksmart310=m +CONFIG_PACKAGE_libgphoto2-drivers-digigr8=m +CONFIG_PACKAGE_libgphoto2-drivers-digita=m +CONFIG_PACKAGE_libgphoto2-drivers-dimagev=m +CONFIG_PACKAGE_libgphoto2-drivers-dimera3500=m +CONFIG_PACKAGE_libgphoto2-drivers-directory=m +CONFIG_PACKAGE_libgphoto2-drivers-enigma13=m +CONFIG_PACKAGE_libgphoto2-drivers-fuji=m +CONFIG_PACKAGE_libgphoto2-drivers-gsmart300=m +CONFIG_PACKAGE_libgphoto2-drivers-hp215=m +CONFIG_PACKAGE_libgphoto2-drivers-iclick=m +CONFIG_PACKAGE_libgphoto2-drivers-jamcam=m +CONFIG_PACKAGE_libgphoto2-drivers-jd11=m +CONFIG_PACKAGE_libgphoto2-drivers-jl2005a=m +CONFIG_PACKAGE_libgphoto2-drivers-jl2005c=m +CONFIG_PACKAGE_libgphoto2-drivers-kodak_dc120=m +CONFIG_PACKAGE_libgphoto2-drivers-kodak_dc210=m +CONFIG_PACKAGE_libgphoto2-drivers-kodak_dc240=m +CONFIG_PACKAGE_libgphoto2-drivers-kodak_dc3200=m +CONFIG_PACKAGE_libgphoto2-drivers-kodak_ez200=m +CONFIG_PACKAGE_libgphoto2-drivers-konica=m +CONFIG_PACKAGE_libgphoto2-drivers-konica_qm150=m +CONFIG_PACKAGE_libgphoto2-drivers-largan=m +CONFIG_PACKAGE_libgphoto2-drivers-lg_gsm=m +CONFIG_PACKAGE_libgphoto2-drivers-mars=m +CONFIG_PACKAGE_libgphoto2-drivers-mustek=m +CONFIG_PACKAGE_libgphoto2-drivers-panasonic_coolshot=m +CONFIG_PACKAGE_libgphoto2-drivers-panasonic_dc1000=m +CONFIG_PACKAGE_libgphoto2-drivers-panasonic_dc1580=m +CONFIG_PACKAGE_libgphoto2-drivers-panasonic_l859=m +CONFIG_PACKAGE_libgphoto2-drivers-pccam300=m +CONFIG_PACKAGE_libgphoto2-drivers-pccam600=m +CONFIG_PACKAGE_libgphoto2-drivers-pentax=m +CONFIG_PACKAGE_libgphoto2-drivers-polaroid_pdc320=m +CONFIG_PACKAGE_libgphoto2-drivers-polaroid_pdc640=m +CONFIG_PACKAGE_libgphoto2-drivers-polaroid_pdc700=m +CONFIG_PACKAGE_libgphoto2-drivers-ptp2=m +CONFIG_PACKAGE_libgphoto2-drivers-ricoh=m +CONFIG_PACKAGE_libgphoto2-drivers-ricoh_g3=m +CONFIG_PACKAGE_libgphoto2-drivers-samsung=m +CONFIG_PACKAGE_libgphoto2-drivers-sierra=m +CONFIG_PACKAGE_libgphoto2-drivers-sipix_blink2=m +CONFIG_PACKAGE_libgphoto2-drivers-sipix_web2=m +CONFIG_PACKAGE_libgphoto2-drivers-smal=m +CONFIG_PACKAGE_libgphoto2-drivers-sonix=m +CONFIG_PACKAGE_libgphoto2-drivers-sony_dscf1=m +CONFIG_PACKAGE_libgphoto2-drivers-sony_dscf55=m +CONFIG_PACKAGE_libgphoto2-drivers-soundvision=m +CONFIG_PACKAGE_libgphoto2-drivers-spca50x=m +CONFIG_PACKAGE_libgphoto2-drivers-sq905=m +CONFIG_PACKAGE_libgphoto2-drivers-st2205=m +CONFIG_PACKAGE_libgphoto2-drivers-stv0674=m +CONFIG_PACKAGE_libgphoto2-drivers-stv0680=m +CONFIG_PACKAGE_libgphoto2-drivers-sx330z=m +CONFIG_PACKAGE_libgphoto2-drivers-topfield=m +CONFIG_PACKAGE_libgphoto2-drivers-toshiba_pdrm11=m +CONFIG_PACKAGE_libgphoto2-drivers-tp6801=m +CONFIG_PACKAGE_libgphoto2-port=m +CONFIG_PACKAGE_libgpiod=m +CONFIG_PACKAGE_libgps=m +CONFIG_PACKAGE_libhamlib=m +CONFIG_PACKAGE_libhavege=m +CONFIG_PACKAGE_libhiredis=m +CONFIG_PACKAGE_libhttp-parser=m +CONFIG_PACKAGE_libhwloc=m +CONFIG_PACKAGE_libi2c=m +CONFIG_PACKAGE_libical=m # CONFIG_PACKAGE_libiconv-full is not set -# CONFIG_PACKAGE_libid3tag is not set -# CONFIG_PACKAGE_libidn is not set -# CONFIG_PACKAGE_libidn2 is not set -# CONFIG_PACKAGE_libiio is not set -# CONFIG_PACKAGE_libinih is not set -# CONFIG_PACKAGE_libinireader is not set -# CONFIG_PACKAGE_libinotifytools is not set -# CONFIG_PACKAGE_libinput is not set -# CONFIG_PACKAGE_libintl-full is not set -# CONFIG_PACKAGE_libiperf3 is not set +CONFIG_PACKAGE_libid3tag=m +CONFIG_PACKAGE_libidn=m +CONFIG_PACKAGE_libidn2=m +CONFIG_PACKAGE_libiio=m +CONFIG_LIBIIO_LOCAL_BACKEND=y +CONFIG_LIBIIO_NETWORK_BACKEND=y +# CONFIG_LIBIIO_USB_BACKEND is not set +CONFIG_LIBIIO_XML_BACKEND=y +CONFIG_PACKAGE_libinih=m +CONFIG_PACKAGE_libinireader=m +CONFIG_PACKAGE_libinotifytools=m +CONFIG_PACKAGE_libinput=m +CONFIG_PACKAGE_libintl-full=m +CONFIG_PACKAGE_libiperf3=m # CONFIG_PACKAGE_libiw is not set CONFIG_PACKAGE_libiwinfo=y -# CONFIG_PACKAGE_libjaylink is not set -# CONFIG_PACKAGE_libjpeg-turbo is not set +CONFIG_PACKAGE_libjaylink=m +CONFIG_PACKAGE_libjpeg-turbo=m CONFIG_PACKAGE_libjson-c=y -# CONFIG_PACKAGE_libkeyutils is not set -# CONFIG_PACKAGE_libkmod is not set -# CONFIG_PACKAGE_libksba is not set -# CONFIG_PACKAGE_libldns is not set -# CONFIG_PACKAGE_libleptonica is not set -# CONFIG_PACKAGE_libloragw is not set -# CONFIG_PACKAGE_libltdl is not set +CONFIG_PACKAGE_libkeyutils=m +CONFIG_PACKAGE_libkmod=m +CONFIG_PACKAGE_libksba=m +CONFIG_PACKAGE_libldns=m +CONFIG_PACKAGE_libleptonica=m +CONFIG_PACKAGE_libloragw=m +CONFIG_SX1301_SPI_PATH="/dev/spidev0.0" +CONFIG_SX1301_SPI_SPEED="8000000" +CONFIG_PACKAGE_libltdl=m CONFIG_PACKAGE_liblua=m -# CONFIG_PACKAGE_liblua5.3 is not set -# CONFIG_PACKAGE_liblucihttp is not set -# CONFIG_PACKAGE_liblucihttp-lua is not set -# CONFIG_PACKAGE_liblucihttp-ucode is not set +CONFIG_PACKAGE_liblua5.3=m +CONFIG_PACKAGE_liblucihttp=m +CONFIG_PACKAGE_liblucihttp-lua=m +CONFIG_PACKAGE_liblucihttp-ucode=m +CONFIG_PACKAGE_liblxc=m CONFIG_PACKAGE_liblzo=m -# CONFIG_PACKAGE_libmad is not set -# CONFIG_PACKAGE_libmagic is not set -# CONFIG_PACKAGE_libmaxminddb is not set -# CONFIG_PACKAGE_libmbim is not set -# CONFIG_PACKAGE_libmcrypt is not set +CONFIG_PACKAGE_libmad=m +CONFIG_PACKAGE_libmagic=m +CONFIG_PACKAGE_libmaxminddb=m +CONFIG_PACKAGE_libmbim=m +CONFIG_PACKAGE_libmcrypt=m # CONFIG_PACKAGE_libmd is not set -# CONFIG_PACKAGE_libmicrohttpd-no-ssl is not set -# CONFIG_PACKAGE_libmicrohttpd-ssl is not set -# CONFIG_PACKAGE_libmilter-sendmail is not set -# CONFIG_PACKAGE_libminiupnpc is not set -# CONFIG_PACKAGE_libmms is not set +CONFIG_PACKAGE_libmicrohttpd-no-ssl=m +CONFIG_PACKAGE_libmicrohttpd-ssl=m +CONFIG_PACKAGE_libmilter-sendmail=m +CONFIG_PACKAGE_libminiupnpc=m +CONFIG_PACKAGE_libmms=m CONFIG_PACKAGE_libmnl=y -# CONFIG_PACKAGE_libmodbus is not set -# CONFIG_PACKAGE_libmosquitto-nossl is not set +CONFIG_PACKAGE_libmodbus=m +CONFIG_PACKAGE_libmosquitto-nossl=m CONFIG_PACKAGE_libmosquitto-ssl=m CONFIG_PACKAGE_libmosquittopp=m CONFIG_PACKAGE_libmount=m -# CONFIG_PACKAGE_libmpc is not set -# CONFIG_PACKAGE_libmpdclient is not set -# CONFIG_PACKAGE_libmpeg2 is not set +CONFIG_PACKAGE_libmpc=m +CONFIG_PACKAGE_libmpdclient=m +CONFIG_PACKAGE_libmpeg2=m CONFIG_PACKAGE_libmpfr=m -# CONFIG_PACKAGE_libmpg123 is not set -# CONFIG_PACKAGE_libmspack is not set -# CONFIG_PACKAGE_libnatpmp is not set +CONFIG_PACKAGE_libmpg123=m +CONFIG_PACKAGE_libmspack=m +CONFIG_PACKAGE_libnatpmp=m CONFIG_PACKAGE_libncurses=m -# CONFIG_PACKAGE_libndpi is not set -# CONFIG_PACKAGE_libneon is not set -# CONFIG_PACKAGE_libnet-1.2.x is not set -# CONFIG_PACKAGE_libnetconf2 is not set -# CONFIG_PACKAGE_libnetfilter-acct is not set -# CONFIG_PACKAGE_libnetfilter-conntrack is not set -# CONFIG_PACKAGE_libnetfilter-cthelper is not set -# CONFIG_PACKAGE_libnetfilter-cttimeout is not set -# CONFIG_PACKAGE_libnetfilter-log is not set -# CONFIG_PACKAGE_libnetfilter-queue is not set -# CONFIG_PACKAGE_libnetsnmp is not set -# CONFIG_PACKAGE_libnettle is not set -# CONFIG_PACKAGE_libnewt is not set -# CONFIG_PACKAGE_libnfnetlink is not set +CONFIG_PACKAGE_libndpi=m +# CONFIG_LIBNDPI_NDPIREADER is not set +# CONFIG_LIBNDPI_GCRYPT is not set +# CONFIG_LIBNDPI_PCRE is not set +# CONFIG_LIBNDPI_MAXMINDDB is not set +CONFIG_PACKAGE_libneon=m +CONFIG_PACKAGE_libnet-1.2.x=m +CONFIG_PACKAGE_libnetconf2=m +CONFIG_PACKAGE_libnetfilter-acct=m +CONFIG_PACKAGE_libnetfilter-conntrack=m +CONFIG_PACKAGE_libnetfilter-cthelper=m +CONFIG_PACKAGE_libnetfilter-cttimeout=m +CONFIG_PACKAGE_libnetfilter-log=m +CONFIG_PACKAGE_libnetfilter-queue=m +CONFIG_PACKAGE_libnetsnmp=m +CONFIG_PACKAGE_libnettle=m + +# +# Configuration +# +# CONFIG_LIBNETTLE_MINI is not set +# end of Configuration + +CONFIG_PACKAGE_libnewt=m +CONFIG_PACKAGE_libnfnetlink=m CONFIG_PACKAGE_libnftnl=y -# CONFIG_PACKAGE_libnghttp2 is not set -# CONFIG_PACKAGE_libnghttp3 is not set -# CONFIG_PACKAGE_libngtcp2 is not set -# CONFIG_PACKAGE_libnl is not set -# CONFIG_PACKAGE_libnl-cli is not set -# CONFIG_PACKAGE_libnl-core is not set -# CONFIG_PACKAGE_libnl-genl is not set -# CONFIG_PACKAGE_libnl-nf is not set -# CONFIG_PACKAGE_libnl-route is not set +CONFIG_PACKAGE_libnghttp2=m +CONFIG_PACKAGE_libnghttp3=m +CONFIG_PACKAGE_libngtcp2=m +CONFIG_PACKAGE_libnl=m +CONFIG_PACKAGE_libnl-cli=m +CONFIG_PACKAGE_libnl-core=m +CONFIG_PACKAGE_libnl-genl=m +CONFIG_PACKAGE_libnl-nf=m +CONFIG_PACKAGE_libnl-route=m CONFIG_PACKAGE_libnl-tiny=y -# CONFIG_PACKAGE_libnopoll is not set -# CONFIG_PACKAGE_libnpth is not set -# CONFIG_PACKAGE_libnpupnp is not set -# CONFIG_PACKAGE_libnvme is not set -# CONFIG_PACKAGE_liboath is not set -# CONFIG_PACKAGE_libogg is not set -# CONFIG_PACKAGE_liboil is not set +CONFIG_PACKAGE_libnopoll=m +CONFIG_PACKAGE_libnpth=m +CONFIG_PACKAGE_libnpupnp=m +CONFIG_PACKAGE_libnvme=m +CONFIG_PACKAGE_liboath=m +CONFIG_PACKAGE_libogg=m +CONFIG_PACKAGE_liboil=m CONFIG_PACKAGE_libopcodes=m -# CONFIG_PACKAGE_libopen62541 is not set -# CONFIG_PACKAGE_libopendkim is not set -# CONFIG_PACKAGE_libopenelp is not set -# CONFIG_PACKAGE_libopenobex is not set -# CONFIG_PACKAGE_libopensc is not set -# CONFIG_PACKAGE_libopenzwave is not set -# CONFIG_PACKAGE_liboping is not set -# CONFIG_PACKAGE_libopus is not set -# CONFIG_PACKAGE_libopusenc is not set -# CONFIG_PACKAGE_libopusfile is not set -# CONFIG_PACKAGE_liborcania is not set -# CONFIG_PACKAGE_libout123 is not set -# CONFIG_PACKAGE_libowipcalc is not set -# CONFIG_PACKAGE_libp11 is not set -# CONFIG_PACKAGE_libpagekite is not set -# CONFIG_PACKAGE_libpam is not set -# CONFIG_PACKAGE_libparted is not set -# CONFIG_PACKAGE_libpbc is not set +CONFIG_PACKAGE_libopen62541=m + +# +# Configuration +# +CONFIG_LIBOPEN62541_UA_ENABLE_SUBSCRIPTIONS=y +# CONFIG_LIBOPEN62541_UA_ENABLE_SUBSCRIPTIONS_EVENTS is not set +CONFIG_LIBOPEN62541_UA_ENABLE_METHODCALLS=y +CONFIG_LIBOPEN62541_UA_ENABLE_PARSING=y +CONFIG_LIBOPEN62541_UA_ENABLE_NODEMANAGEMENT=y +CONFIG_LIBOPEN62541_UA_ENABLE_IMMUTABLE_NODES=y +CONFIG_LIBOPEN62541_UA_ENABLE_DISCOVERY=y +CONFIG_LIBOPEN62541_UA_ENABLE_DISCOVERY_MULTICAST=y +CONFIG_LIBOPEN62541_UA_ENABLE_DISCOVERY_SEMAPHORE=y +CONFIG_LIBOPEN62541_NOENCRYPTION=y +# CONFIG_LIBOPEN62541_MBDEDTLS is not set +# CONFIG_LIBOPEN62541_OPENSSL is not set +CONFIG_LIBOPEN62541_NAMESPACEZERO_FULL=y +# CONFIG_LIBOPEN62541_NAMESPACEZERO_REDUCED is not set +# CONFIG_LIBOPEN62541_NAMESPACEZERO_MINIMAL is not set +CONFIG_LIBOPEN62541_UA_ENABLE_TYPEDESCRIPTION=y +CONFIG_LIBOPEN62541_UA_ENABLE_STATUSCODE_DESCRIPTIONS=y +# CONFIG_LIBOPEN62541_UA_ENABLE_HISTORIZING is not set +# CONFIG_LIBOPEN62541_UA_ENABLE_PUBSUB is not set +# end of Configuration + +CONFIG_PACKAGE_libopendkim=m +CONFIG_PACKAGE_libopenelp=m +CONFIG_PACKAGE_libopenobex=m +CONFIG_PACKAGE_libopensc=m +CONFIG_PACKAGE_libopensc-pkcs11=m +CONFIG_PACKAGE_libopensc-profile-asepcos=m +CONFIG_PACKAGE_libopensc-profile-authentic=m +CONFIG_PACKAGE_libopensc-profile-cardos=m +CONFIG_PACKAGE_libopensc-profile-cyberflex=m +CONFIG_PACKAGE_libopensc-profile-entersafe=m +CONFIG_PACKAGE_libopensc-profile-epass2003=m +CONFIG_PACKAGE_libopensc-profile-flex=m +CONFIG_PACKAGE_libopensc-profile-gids=m +CONFIG_PACKAGE_libopensc-profile-gpk=m +CONFIG_PACKAGE_libopensc-profile-ias-adele-admin1=m +CONFIG_PACKAGE_libopensc-profile-ias-adele-admin2=m +CONFIG_PACKAGE_libopensc-profile-ias-adele-common=m +CONFIG_PACKAGE_libopensc-profile-iasecc=m +CONFIG_PACKAGE_libopensc-profile-iasecc-admin-eid=m +CONFIG_PACKAGE_libopensc-profile-iasecc-generic-oberthur=m +CONFIG_PACKAGE_libopensc-profile-iasecc-generic-pki=m +CONFIG_PACKAGE_libopensc-profile-incrypto34=m +CONFIG_PACKAGE_libopensc-profile-isoApplet=m +CONFIG_PACKAGE_libopensc-profile-muscle=m +CONFIG_PACKAGE_libopensc-profile-myeid=m +CONFIG_PACKAGE_libopensc-profile-oberthur=m +CONFIG_PACKAGE_libopensc-profile-openpgp=m +CONFIG_PACKAGE_libopensc-profile-pkcs15=m +CONFIG_PACKAGE_libopensc-profile-rutoken=m +CONFIG_PACKAGE_libopensc-profile-rutoken-ecp=m +CONFIG_PACKAGE_libopensc-profile-rutoken-lite=m +CONFIG_PACKAGE_libopensc-profile-sc-hsm=m +CONFIG_PACKAGE_libopensc-profile-setcos=m +CONFIG_PACKAGE_libopensc-profile-starcos=m +CONFIG_PACKAGE_libopensc-profile-westcos=m +CONFIG_PACKAGE_libopenzwave=m +CONFIG_PACKAGE_liboping=m +CONFIG_PACKAGE_libopus=m +CONFIG_PACKAGE_libopusenc=m +CONFIG_PACKAGE_libopusfile=m +CONFIG_PACKAGE_liborcania=m +CONFIG_PACKAGE_libout123=m +CONFIG_PACKAGE_libowipcalc=m +CONFIG_PACKAGE_libp11=m +CONFIG_PACKAGE_libpagekite=m +CONFIG_PACKAGE_libpam=m +CONFIG_PACKAGE_libparted=m +CONFIG_PACKAGE_libpbc=m CONFIG_PACKAGE_libpcap=m # @@ -4781,175 +5880,242 @@ CONFIG_PACKAGE_libpcap=m # CONFIG_PCAP_HAS_NETFILTER is not set # end of Configuration -# CONFIG_PACKAGE_libpci is not set -CONFIG_PACKAGE_libpciaccess=y -# CONFIG_PACKAGE_libpcre is not set -# CONFIG_PACKAGE_libpcre16 is not set +CONFIG_PACKAGE_libpci=m +CONFIG_PACKAGE_libpciaccess=m +CONFIG_PACKAGE_libpcre=m +CONFIG_PCRE_JIT_ENABLED=y +CONFIG_PACKAGE_libpcre16=m CONFIG_PACKAGE_libpcre2=m CONFIG_PCRE2_JIT_ENABLED=y # CONFIG_PACKAGE_libpcre2-16 is not set -# CONFIG_PACKAGE_libpcre2-32 is not set -# CONFIG_PACKAGE_libpcre32 is not set -# CONFIG_PACKAGE_libpcrecpp is not set -# CONFIG_PACKAGE_libpcsclite is not set +CONFIG_PACKAGE_libpcre2-32=m +CONFIG_PACKAGE_libpcre32=m +CONFIG_PACKAGE_libpcrecpp=m +CONFIG_PACKAGE_libpcsclite=m # CONFIG_PACKAGE_libpfring is not set -# CONFIG_PACKAGE_libpkcs11-spy is not set -# CONFIG_PACKAGE_libpkgconf is not set -# CONFIG_PACKAGE_libpng is not set -# CONFIG_PACKAGE_libpopt is not set +CONFIG_PACKAGE_libpkcs11-spy=m +CONFIG_PACKAGE_libpkgconf=m +CONFIG_PACKAGE_libpng=m +CONFIG_PACKAGE_libpopt=m # CONFIG_PACKAGE_libpri is not set -# CONFIG_PACKAGE_libprotobuf-c is not set -# CONFIG_PACKAGE_libpsl is not set -# CONFIG_PACKAGE_libqmi is not set -# CONFIG_PACKAGE_libqrencode is not set -# CONFIG_PACKAGE_libqrtr-glib is not set -# CONFIG_PACKAGE_libradcli is not set -# CONFIG_PACKAGE_libradiotap is not set -# CONFIG_PACKAGE_libreadline is not set -# CONFIG_PACKAGE_libredblack is not set -# CONFIG_PACKAGE_librouteros is not set -# CONFIG_PACKAGE_libroxml is not set -# CONFIG_PACKAGE_librrd1 is not set -# CONFIG_PACKAGE_librtlsdr is not set -# CONFIG_PACKAGE_libruby is not set -# CONFIG_PACKAGE_libsamplerate is not set -# CONFIG_PACKAGE_libsane is not set -# CONFIG_PACKAGE_libsasl2 is not set -# CONFIG_PACKAGE_libsasl2-sasldb is not set -# CONFIG_PACKAGE_libsasl2-utils is not set +CONFIG_PACKAGE_libprotobuf-c=m +CONFIG_PACKAGE_libpsl=m +CONFIG_PACKAGE_libqmi=m + +# +# Configuration +# +CONFIG_LIBQMI_WITH_MBIM_QMUX=y +CONFIG_LIBQMI_WITH_QRTR_GLIB=y +CONFIG_LIBQMI_COLLECTION_BASIC=y +# CONFIG_LIBQMI_COLLECTION_FULL is not set +# end of Configuration + +CONFIG_PACKAGE_libqrencode=m +CONFIG_PACKAGE_libqrtr-glib=m +CONFIG_PACKAGE_libradcli=m +CONFIG_PACKAGE_libradiotap=m +CONFIG_PACKAGE_libreadline=m +CONFIG_PACKAGE_libredblack=m +CONFIG_PACKAGE_librouteros=m +CONFIG_PACKAGE_libroxml=m +CONFIG_PACKAGE_librrd1=m +CONFIG_PACKAGE_librtlsdr=m +CONFIG_PACKAGE_libruby=m +CONFIG_PACKAGE_libsamplerate=m +CONFIG_PACKAGE_libsane=m +CONFIG_PACKAGE_libsasl2=m +CONFIG_PACKAGE_libsasl2-sasldb=m +CONFIG_PACKAGE_libsasl2-utils=m CONFIG_PACKAGE_libseccomp=m -# CONFIG_PACKAGE_libselinux is not set -# CONFIG_PACKAGE_libsemanage is not set -# CONFIG_PACKAGE_libsensors is not set -# CONFIG_PACKAGE_libsepol is not set -# CONFIG_PACKAGE_libshout is not set -# CONFIG_PACKAGE_libshout-full is not set -# CONFIG_PACKAGE_libshout-nossl is not set -# CONFIG_PACKAGE_libsispmctl is not set -# CONFIG_PACKAGE_libslang2 is not set +CONFIG_PACKAGE_libselinux=m +CONFIG_PACKAGE_libsemanage=m +CONFIG_PACKAGE_libsensors=m +CONFIG_PACKAGE_libsepol=m +CONFIG_PACKAGE_libshout=m +CONFIG_PACKAGE_libshout-full=m +CONFIG_PACKAGE_libshout-nossl=m +CONFIG_PACKAGE_libsispmctl=m +CONFIG_PACKAGE_libslang2=m +CONFIG_PACKAGE_libslang2-mod-base64=m +CONFIG_PACKAGE_libslang2-mod-chksum=m +CONFIG_PACKAGE_libslang2-mod-csv=m +CONFIG_PACKAGE_libslang2-mod-fcntl=m +CONFIG_PACKAGE_libslang2-mod-fork=m +CONFIG_PACKAGE_libslang2-mod-histogram=m +CONFIG_PACKAGE_libslang2-mod-iconv=m +CONFIG_PACKAGE_libslang2-mod-json=m +CONFIG_PACKAGE_libslang2-mod-onig=m +CONFIG_PACKAGE_libslang2-mod-png=m +CONFIG_PACKAGE_libslang2-mod-rand=m +CONFIG_PACKAGE_libslang2-mod-select=m +CONFIG_PACKAGE_libslang2-mod-slsmg=m +CONFIG_PACKAGE_libslang2-mod-socket=m +CONFIG_PACKAGE_libslang2-mod-stats=m +CONFIG_PACKAGE_libslang2-mod-sysconf=m +CONFIG_PACKAGE_libslang2-mod-termios=m +CONFIG_PACKAGE_libslang2-mod-varray=m +CONFIG_PACKAGE_libslang2-mod-zlib=m +CONFIG_PACKAGE_libslang2-modules=m CONFIG_PACKAGE_libsmartcols=y -# CONFIG_PACKAGE_libsndfile is not set -# CONFIG_PACKAGE_libsoc is not set -# CONFIG_PACKAGE_libsocketcan is not set -# CONFIG_PACKAGE_libsocks is not set -# CONFIG_PACKAGE_libsodium is not set -# CONFIG_PACKAGE_libsoup3 is not set -# CONFIG_PACKAGE_libsoxr is not set -# CONFIG_PACKAGE_libspeedtestcpp is not set -# CONFIG_PACKAGE_libspeex is not set -# CONFIG_PACKAGE_libspeexdsp is not set -# CONFIG_PACKAGE_libspice-server is not set +CONFIG_PACKAGE_libsndfile=m +CONFIG_PACKAGE_libsoc=m +CONFIG_PACKAGE_libsocketcan=m +CONFIG_PACKAGE_libsocks=m +CONFIG_PACKAGE_libsodium=m + +# +# Configuration +# +CONFIG_LIBSODIUM_MINIMAL=y +# end of Configuration + +CONFIG_PACKAGE_libsoup3=m +CONFIG_PACKAGE_libsoxr=m +CONFIG_PACKAGE_libspeedtestcpp=m +CONFIG_PACKAGE_libspeex=m +CONFIG_PACKAGE_libspeexdsp=m +CONFIG_PACKAGE_libspice-server=m CONFIG_PACKAGE_libss=y -# CONFIG_PACKAGE_libssh is not set -# CONFIG_PACKAGE_libssh2 is not set -# CONFIG_PACKAGE_libstoken is not set -# CONFIG_PACKAGE_libstrophe is not set -# CONFIG_PACKAGE_libsyn123 is not set -# CONFIG_PACKAGE_libsysrepo is not set -# CONFIG_PACKAGE_libtalloc is not set -# CONFIG_PACKAGE_libtasn1 is not set -# CONFIG_PACKAGE_libtheora is not set -# CONFIG_PACKAGE_libtiff is not set -# CONFIG_PACKAGE_libtins is not set -# CONFIG_PACKAGE_libtirpc is not set -# CONFIG_PACKAGE_libtorrent-rasterbar is not set +CONFIG_PACKAGE_libssh=m +CONFIG_PACKAGE_libssh2=m +CONFIG_LIBSSH2_OPENSSL=y +# CONFIG_LIBSSH2_MBEDTLS is not set +CONFIG_PACKAGE_libstoken=m +CONFIG_PACKAGE_libstrophe=m +CONFIG_libstrophe-expat=y +# CONFIG_libstrophe-libxml2 is not set +CONFIG_PACKAGE_libsyn123=m +CONFIG_PACKAGE_libsysrepo=m +CONFIG_PACKAGE_libtalloc=m +CONFIG_PACKAGE_libtasn1=m +CONFIG_PACKAGE_libtheora=m +CONFIG_PACKAGE_libtiff=m +CONFIG_PACKAGE_libtins=m + +# +# Configuration +# +# CONFIG_LIBTINS_ENABLE_ACK_TRACKER is not set +CONFIG_LIBTINS_ENABLE_CXX11=y +# CONFIG_LIBTINS_ENABLE_DOT11 is not set +CONFIG_LIBTINS_ENABLE_PCAP=y +# CONFIG_LIBTINS_ENABLE_TCP_STREAM_CUSTOM_DATA is not set +# end of Configuration + +CONFIG_PACKAGE_libtirpc=m +CONFIG_PACKAGE_libtorrent-rasterbar=m # CONFIG_PACKAGE_libtraceevent is not set # CONFIG_PACKAGE_libtraceevent-extra is not set # CONFIG_PACKAGE_libtracefs is not set CONFIG_PACKAGE_libubox=y -# CONFIG_PACKAGE_libubox-lua is not set +CONFIG_PACKAGE_libubox-lua=m CONFIG_PACKAGE_libubus=y -# CONFIG_PACKAGE_libubus-lua is not set +CONFIG_PACKAGE_libubus-lua=m CONFIG_PACKAGE_libuci=y -# CONFIG_PACKAGE_libuci-lua is not set -# CONFIG_PACKAGE_libuci2 is not set +CONFIG_PACKAGE_libuci-lua=m +CONFIG_PACKAGE_libuci2=m CONFIG_PACKAGE_libuclient=y CONFIG_PACKAGE_libucode=y -# CONFIG_PACKAGE_libucontext is not set +CONFIG_PACKAGE_libucontext=m CONFIG_PACKAGE_libudebug=y -# CONFIG_PACKAGE_libudev-zero is not set -# CONFIG_PACKAGE_libudns is not set -# CONFIG_PACKAGE_libuecc is not set -# CONFIG_PACKAGE_libugpio is not set -# CONFIG_PACKAGE_libunistring is not set +CONFIG_PACKAGE_libudev-zero=m +CONFIG_PACKAGE_libudns=m +CONFIG_PACKAGE_libuecc=m +CONFIG_PACKAGE_libugpio=m +CONFIG_PACKAGE_libunistring=m CONFIG_PACKAGE_libunwind=m -# CONFIG_PACKAGE_libupnp is not set -# CONFIG_PACKAGE_libupnpp is not set -# CONFIG_PACKAGE_liburcu is not set -# CONFIG_PACKAGE_liburing is not set +CONFIG_PACKAGE_libupnp=m +CONFIG_PACKAGE_libupnp-sample=m +CONFIG_PACKAGE_libupnpp=m +CONFIG_PACKAGE_liburcu=m +CONFIG_PACKAGE_liburing=m CONFIG_PACKAGE_libusb-1.0=m CONFIG_PACKAGE_libusb-compat=m CONFIG_PACKAGE_libustream-mbedtls=y -# CONFIG_PACKAGE_libustream-openssl is not set -# CONFIG_PACKAGE_libustream-wolfssl is not set -# CONFIG_PACKAGE_libutp is not set +CONFIG_PACKAGE_libustream-openssl=m +CONFIG_PACKAGE_libustream-wolfssl=m +CONFIG_PACKAGE_libutp=m CONFIG_PACKAGE_libuuid=y -# CONFIG_PACKAGE_libuv is not set -# CONFIG_PACKAGE_libuwifi is not set -# CONFIG_PACKAGE_libv4l is not set -# CONFIG_PACKAGE_libvorbis is not set -# CONFIG_PACKAGE_libvorbisidec is not set -# CONFIG_PACKAGE_libvpx is not set -# CONFIG_PACKAGE_libwebp is not set -# CONFIG_PACKAGE_libwebsockets-full is not set -# CONFIG_PACKAGE_libwebsockets-mbedtls is not set -# CONFIG_PACKAGE_libwebsockets-openssl is not set -# CONFIG_PACKAGE_libwrap is not set +CONFIG_PACKAGE_libuv=m +CONFIG_PACKAGE_libuwifi=m +CONFIG_PACKAGE_libv4l=m +CONFIG_PACKAGE_libvorbis=m +CONFIG_PACKAGE_libvorbisidec=m +CONFIG_PACKAGE_libvpx=m +CONFIG_PACKAGE_libwebp=m +CONFIG_PACKAGE_libwebsockets-full=m +CONFIG_PACKAGE_libwebsockets-mbedtls=m +CONFIG_PACKAGE_libwebsockets-openssl=m +CONFIG_PACKAGE_libwrap=m CONFIG_PACKAGE_libxdp=m -# CONFIG_PACKAGE_libxerces-c is not set -# CONFIG_PACKAGE_libxerces-c-samples is not set -# CONFIG_PACKAGE_libxml2 is not set -# CONFIG_PACKAGE_libxslt is not set -# CONFIG_PACKAGE_libxxhash is not set -# CONFIG_PACKAGE_libyaml-cpp is not set -# CONFIG_PACKAGE_libyang is not set -# CONFIG_PACKAGE_libyubikey is not set -# CONFIG_PACKAGE_libzmq-curve is not set -# CONFIG_PACKAGE_libzmq-nc is not set +CONFIG_PACKAGE_libxerces-c=m +CONFIG_PACKAGE_libxerces-c-samples=m +CONFIG_PACKAGE_libxml2=m +CONFIG_PACKAGE_libxslt=m +CONFIG_PACKAGE_libxxhash=m +CONFIG_PACKAGE_libyaml-cpp=m +CONFIG_PACKAGE_libyang=m +CONFIG_PACKAGE_libyubikey=m +CONFIG_PACKAGE_libzmq-curve=m +# CONFIG_LIBZMQ_CURVE_WITH_OPENPGM is not set +CONFIG_PACKAGE_libzmq-nc=m +# CONFIG_LIBZMQ_NC_WITH_OPENPGM is not set # CONFIG_PACKAGE_linux-atm is not set -# CONFIG_PACKAGE_lmdb is not set -# CONFIG_PACKAGE_log4cplus is not set -# CONFIG_PACKAGE_loudmouth is not set -# CONFIG_PACKAGE_lttng-ust is not set -# CONFIG_PACKAGE_minizip is not set -# CONFIG_PACKAGE_msgpack-c is not set -# CONFIG_PACKAGE_mtdev is not set +CONFIG_PACKAGE_lmdb=m +CONFIG_PACKAGE_lmdb-test=m +CONFIG_PACKAGE_lmdb-utils=m +CONFIG_PACKAGE_log4cplus=m +CONFIG_PACKAGE_loudmouth=m +CONFIG_PACKAGE_lttng-ust=m +CONFIG_PACKAGE_minizip=m +CONFIG_PACKAGE_msgpack-c=m +CONFIG_PACKAGE_mtdev=m CONFIG_PACKAGE_musl-fts=m -# CONFIG_PACKAGE_mxml is not set -# CONFIG_PACKAGE_nspr is not set -# CONFIG_PACKAGE_oath-pam is not set -# CONFIG_PACKAGE_oniguruma is not set -# CONFIG_PACKAGE_open-isns is not set -# CONFIG_PACKAGE_openblas is not set -# CONFIG_PACKAGE_openpgm is not set -# CONFIG_PACKAGE_p11-kit is not set -# CONFIG_PACKAGE_pixman is not set -# CONFIG_PACKAGE_poco is not set -# CONFIG_PACKAGE_poco-all is not set -# CONFIG_PACKAGE_protobuf is not set -# CONFIG_PACKAGE_protobuf-lite is not set -# CONFIG_PACKAGE_pthsem is not set -# CONFIG_PACKAGE_re2 is not set -# CONFIG_PACKAGE_rpcd-mod-luci is not set -# CONFIG_PACKAGE_rpcd-mod-rad2-enc is not set -# CONFIG_PACKAGE_rpcd-mod-rrdns is not set -# CONFIG_PACKAGE_rpcd-mod-wireguard is not set -# CONFIG_PACKAGE_sbc is not set +CONFIG_PACKAGE_mxml=m +CONFIG_PACKAGE_nspr=m +CONFIG_PACKAGE_oath-pam=m +CONFIG_PACKAGE_oniguruma=m +CONFIG_PACKAGE_open-isns=m +CONFIG_PACKAGE_openblas=m + +# +# Configuration +# +CONFIG_OPENBLAS_TARGET_OVERRIDE="" +# end of Configuration + +CONFIG_PACKAGE_openpgm=m +CONFIG_PACKAGE_p11-kit=m +CONFIG_PACKAGE_pixman=m +CONFIG_PACKAGE_poco=m +CONFIG_PACKAGE_poco-all=m +CONFIG_PACKAGE_protobuf=m +CONFIG_PACKAGE_protobuf-lite=m +CONFIG_PACKAGE_pthsem=m +CONFIG_PACKAGE_re2=m +CONFIG_PACKAGE_rpcd-mod-luci=m +CONFIG_PACKAGE_rpcd-mod-lxc=m +CONFIG_PACKAGE_rpcd-mod-rad2-enc=m +CONFIG_PACKAGE_rpcd-mod-rrdns=m +CONFIG_PACKAGE_rpcd-mod-wireguard=m +CONFIG_PACKAGE_sbc=m CONFIG_PACKAGE_scmp_sys_resolver=m -# CONFIG_PACKAGE_serdisplib is not set -# CONFIG_PACKAGE_taglib is not set +CONFIG_PACKAGE_serdisplib=m +CONFIG_PACKAGE_taglib=m CONFIG_PACKAGE_terminfo=m -# CONFIG_PACKAGE_tinycdb is not set -# CONFIG_PACKAGE_totem-pl-parser is not set -# CONFIG_PACKAGE_uw-imap is not set -# CONFIG_PACKAGE_xmlrpc-c-abyss is not set -# CONFIG_PACKAGE_xmlrpc-c-client is not set -# CONFIG_PACKAGE_xmlrpc-c-internal is not set -# CONFIG_PACKAGE_xmlrpc-c-libxml2 is not set -# CONFIG_PACKAGE_xmlrpc-c-server is not set -# CONFIG_PACKAGE_xmlrpc-c-server-abyss is not set -# CONFIG_PACKAGE_yajl is not set -# CONFIG_PACKAGE_yubico-pam is not set +CONFIG_PACKAGE_tinycdb=m +CONFIG_PACKAGE_totem-pl-parser=m +CONFIG_PACKAGE_uw-imap=m +CONFIG_PACKAGE_xmlrpc-c-abyss=m +CONFIG_PACKAGE_xmlrpc-c-client=m +CONFIG_PACKAGE_xmlrpc-c-common=m +CONFIG_PACKAGE_xmlrpc-c-internal=m +CONFIG_PACKAGE_xmlrpc-c-libxml2=m +CONFIG_PACKAGE_xmlrpc-c-server=m +CONFIG_PACKAGE_xmlrpc-c-server-abyss=m +CONFIG_PACKAGE_yajl=m +CONFIG_PACKAGE_yubico-pam=m CONFIG_PACKAGE_zlib=m # @@ -4958,7 +6124,7 @@ CONFIG_PACKAGE_zlib=m # CONFIG_ZLIB_OPTIMIZE_SPEED is not set # end of Configuration -# CONFIG_PACKAGE_zlog is not set +CONFIG_PACKAGE_zlog=m # end of Libraries # @@ -4968,19 +6134,19 @@ CONFIG_PACKAGE_zlib=m # # 1. Collections # -# CONFIG_PACKAGE_luci is not set -# CONFIG_PACKAGE_luci-lib-docker is not set -# CONFIG_PACKAGE_luci-light is not set -# CONFIG_PACKAGE_luci-nginx is not set -# CONFIG_PACKAGE_luci-ssl is not set -# CONFIG_PACKAGE_luci-ssl-nginx is not set -# CONFIG_PACKAGE_luci-ssl-openssl is not set +CONFIG_PACKAGE_luci=m +CONFIG_PACKAGE_luci-lib-docker=m +CONFIG_PACKAGE_luci-light=m +CONFIG_PACKAGE_luci-nginx=m +CONFIG_PACKAGE_luci-ssl=m +CONFIG_PACKAGE_luci-ssl-nginx=m +CONFIG_PACKAGE_luci-ssl-openssl=m # end of 1. Collections # # 2. Modules # -# CONFIG_PACKAGE_luci-base is not set +CONFIG_PACKAGE_luci-base=m # CONFIG_LUCI_SRCDIET is not set CONFIG_LUCI_JSMIN=y CONFIG_LUCI_CSSTIDY=y @@ -5024,213 +6190,3395 @@ CONFIG_LUCI_CSSTIDY=y # CONFIG_LUCI_LANG_zh_Hant is not set # end of Translations -# CONFIG_PACKAGE_luci-compat is not set -# CONFIG_PACKAGE_luci-lua-runtime is not set -# CONFIG_PACKAGE_luci-mod-admin-full is not set -# CONFIG_PACKAGE_luci-mod-battstatus is not set -# CONFIG_PACKAGE_luci-mod-dashboard is not set -# CONFIG_PACKAGE_luci-mod-dsl is not set -# CONFIG_PACKAGE_luci-mod-network is not set -# CONFIG_PACKAGE_luci-mod-rpc is not set -# CONFIG_PACKAGE_luci-mod-status is not set -# CONFIG_PACKAGE_luci-mod-system is not set +CONFIG_PACKAGE_luci-compat=m +CONFIG_PACKAGE_luci-lua-runtime=m +CONFIG_PACKAGE_luci-mod-admin-full=m +CONFIG_PACKAGE_luci-mod-battstatus=m +CONFIG_PACKAGE_luci-mod-dashboard=m +CONFIG_PACKAGE_luci-mod-dsl=m +CONFIG_PACKAGE_luci-mod-network=m +CONFIG_PACKAGE_luci-mod-rpc=m +CONFIG_PACKAGE_luci-mod-status=m +CONFIG_PACKAGE_luci-mod-system=m # end of 2. Modules # # 3. Applications # -# CONFIG_PACKAGE_luci-app-acl is not set -# CONFIG_PACKAGE_luci-app-acme is not set -# CONFIG_PACKAGE_luci-app-adblock is not set -# CONFIG_PACKAGE_luci-app-adblock-fast is not set -# CONFIG_PACKAGE_luci-app-advanced-reboot is not set -# CONFIG_PACKAGE_luci-app-ahcp is not set -# CONFIG_PACKAGE_luci-app-alist is not set -# CONFIG_PACKAGE_luci-app-apinger is not set -# CONFIG_PACKAGE_luci-app-aria2 is not set -# CONFIG_PACKAGE_luci-app-attendedsysupgrade is not set -# CONFIG_PACKAGE_luci-app-babeld is not set -# CONFIG_PACKAGE_luci-app-banip is not set -# CONFIG_PACKAGE_luci-app-bcp38 is not set -# CONFIG_PACKAGE_luci-app-bmx7 is not set -# CONFIG_PACKAGE_luci-app-cjdns is not set -# CONFIG_PACKAGE_luci-app-clamav is not set -# CONFIG_PACKAGE_luci-app-cloudflared is not set -# CONFIG_PACKAGE_luci-app-commands is not set -# CONFIG_PACKAGE_luci-app-crowdsec-firewall-bouncer is not set -# CONFIG_PACKAGE_luci-app-cshark is not set -# CONFIG_PACKAGE_luci-app-dawn is not set -# CONFIG_PACKAGE_luci-app-dcwapd is not set -# CONFIG_PACKAGE_luci-app-ddns is not set -# CONFIG_PACKAGE_luci-app-diag-core is not set -# CONFIG_PACKAGE_luci-app-dnscrypt-proxy is not set -# CONFIG_PACKAGE_luci-app-dockerman is not set -# CONFIG_PACKAGE_luci-app-dump1090 is not set -# CONFIG_PACKAGE_luci-app-dynapoint is not set -# CONFIG_PACKAGE_luci-app-email is not set -# CONFIG_PACKAGE_luci-app-eoip is not set -# CONFIG_PACKAGE_luci-app-example is not set -# CONFIG_PACKAGE_luci-app-firewall is not set -# CONFIG_PACKAGE_luci-app-frpc is not set -# CONFIG_PACKAGE_luci-app-frps is not set -# CONFIG_PACKAGE_luci-app-fwknopd is not set -# CONFIG_PACKAGE_luci-app-hd-idle is not set -# CONFIG_PACKAGE_luci-app-hnet is not set -# CONFIG_PACKAGE_luci-app-https-dns-proxy is not set -# CONFIG_PACKAGE_luci-app-irqbalance is not set -# CONFIG_PACKAGE_luci-app-ksmbd is not set -# CONFIG_PACKAGE_luci-app-ledtrig-rssi is not set -# CONFIG_PACKAGE_luci-app-ledtrig-switch is not set -# CONFIG_PACKAGE_luci-app-ledtrig-usbport is not set -# CONFIG_PACKAGE_luci-app-libreswan is not set -# CONFIG_PACKAGE_luci-app-lorawan-basicstation is not set -# CONFIG_PACKAGE_luci-app-lxc is not set -# CONFIG_PACKAGE_luci-app-minidlna is not set -# CONFIG_PACKAGE_luci-app-mjpg-streamer is not set -# CONFIG_PACKAGE_luci-app-mwan3 is not set -# CONFIG_PACKAGE_luci-app-natmap is not set -# CONFIG_PACKAGE_luci-app-nextdns is not set -# CONFIG_PACKAGE_luci-app-nft-qos is not set -# CONFIG_PACKAGE_luci-app-nlbwmon is not set -# CONFIG_PACKAGE_luci-app-nut is not set -# CONFIG_PACKAGE_luci-app-ocserv is not set -# CONFIG_PACKAGE_luci-app-olsr is not set -# CONFIG_PACKAGE_luci-app-olsr-services is not set -# CONFIG_PACKAGE_luci-app-olsr-viz is not set -# CONFIG_PACKAGE_luci-app-olsrd2 is not set -# CONFIG_PACKAGE_luci-app-omcproxy is not set -# CONFIG_PACKAGE_luci-app-openthread is not set -# CONFIG_PACKAGE_luci-app-openvpn is not set -# CONFIG_PACKAGE_luci-app-openwisp is not set -# CONFIG_PACKAGE_luci-app-opkg is not set -# CONFIG_PACKAGE_luci-app-p910nd is not set -# CONFIG_PACKAGE_luci-app-pagekitec is not set -# CONFIG_PACKAGE_luci-app-pbr is not set -# CONFIG_PACKAGE_luci-app-polipo is not set -# CONFIG_PACKAGE_luci-app-privoxy is not set -# CONFIG_PACKAGE_luci-app-qos is not set -# CONFIG_PACKAGE_luci-app-radicale is not set -# CONFIG_PACKAGE_luci-app-radicale2 is not set -# CONFIG_PACKAGE_luci-app-rp-pppoe-server is not set -# CONFIG_PACKAGE_luci-app-samba4 is not set -# CONFIG_PACKAGE_luci-app-ser2net is not set -# CONFIG_PACKAGE_luci-app-shadowsocks-libev is not set -# CONFIG_PACKAGE_luci-app-siitwizard is not set -# CONFIG_PACKAGE_luci-app-smartdns is not set -# CONFIG_PACKAGE_luci-app-snmpd is not set -# CONFIG_PACKAGE_luci-app-softether is not set -# CONFIG_PACKAGE_luci-app-splash is not set -# CONFIG_PACKAGE_luci-app-sqm is not set -# CONFIG_PACKAGE_luci-app-squid is not set -# CONFIG_PACKAGE_luci-app-sshtunnel is not set -# CONFIG_PACKAGE_luci-app-statistics is not set -# CONFIG_PACKAGE_luci-app-tinyproxy is not set -# CONFIG_PACKAGE_luci-app-tor is not set -# CONFIG_PACKAGE_luci-app-transmission is not set -# CONFIG_PACKAGE_luci-app-travelmate is not set -# CONFIG_PACKAGE_luci-app-ttyd is not set -# CONFIG_PACKAGE_luci-app-udpxy is not set -# CONFIG_PACKAGE_luci-app-uhttpd is not set -# CONFIG_PACKAGE_luci-app-unbound is not set -# CONFIG_PACKAGE_luci-app-upnp is not set -# CONFIG_PACKAGE_luci-app-usteer is not set -# CONFIG_PACKAGE_luci-app-v2raya is not set -# CONFIG_PACKAGE_luci-app-vnstat is not set -# CONFIG_PACKAGE_luci-app-vnstat2 is not set -# CONFIG_PACKAGE_luci-app-watchcat is not set -# CONFIG_PACKAGE_luci-app-wifischedule is not set -# CONFIG_PACKAGE_luci-app-wol is not set -# CONFIG_PACKAGE_luci-app-xfrpc is not set -# CONFIG_PACKAGE_luci-app-xinetd is not set +CONFIG_PACKAGE_luci-app-acl=m +CONFIG_PACKAGE_luci-app-acme=m +CONFIG_PACKAGE_luci-app-adblock=m +CONFIG_PACKAGE_luci-app-adblock-fast=m +CONFIG_PACKAGE_luci-app-advanced-reboot=m +CONFIG_PACKAGE_luci-app-ahcp=m +CONFIG_PACKAGE_luci-app-alist=m +CONFIG_PACKAGE_luci-app-apinger=m +CONFIG_PACKAGE_luci-app-aria2=m +CONFIG_PACKAGE_luci-app-attendedsysupgrade=m +CONFIG_PACKAGE_luci-app-babeld=m +CONFIG_PACKAGE_luci-app-banip=m +CONFIG_PACKAGE_luci-app-bcp38=m +CONFIG_PACKAGE_luci-app-bmx7=m +CONFIG_PACKAGE_luci-app-cjdns=m +CONFIG_PACKAGE_luci-app-clamav=m +CONFIG_PACKAGE_luci-app-cloudflared=m +CONFIG_PACKAGE_luci-app-commands=m +CONFIG_PACKAGE_luci-app-crowdsec-firewall-bouncer=m +CONFIG_PACKAGE_luci-app-cshark=m +CONFIG_PACKAGE_luci-app-dawn=m +CONFIG_PACKAGE_luci-app-dcwapd=m +CONFIG_PACKAGE_luci-app-ddns=m +CONFIG_PACKAGE_luci-app-diag-core=m +CONFIG_PACKAGE_luci-app-dnscrypt-proxy=m +CONFIG_PACKAGE_luci-app-dockerman=m +CONFIG_PACKAGE_luci-app-dump1090=m +CONFIG_PACKAGE_luci-app-dynapoint=m +CONFIG_PACKAGE_luci-app-email=m +CONFIG_PACKAGE_luci-app-eoip=m +CONFIG_PACKAGE_luci-app-example=m +CONFIG_PACKAGE_luci-app-firewall=m +CONFIG_PACKAGE_luci-app-frpc=m +CONFIG_PACKAGE_luci-app-frps=m +CONFIG_PACKAGE_luci-app-fwknopd=m +CONFIG_PACKAGE_luci-app-hd-idle=m +CONFIG_PACKAGE_luci-app-hnet=m +CONFIG_PACKAGE_luci-app-https-dns-proxy=m +CONFIG_PACKAGE_luci-app-irqbalance=m +CONFIG_PACKAGE_luci-app-keepalived=m +CONFIG_PACKAGE_luci-app-ksmbd=m +CONFIG_PACKAGE_luci-app-ledtrig-rssi=m +CONFIG_PACKAGE_luci-app-ledtrig-switch=m +CONFIG_PACKAGE_luci-app-ledtrig-usbport=m +CONFIG_PACKAGE_luci-app-libreswan=m +CONFIG_PACKAGE_luci-app-lorawan-basicstation=m +CONFIG_PACKAGE_luci-app-lxc=m +CONFIG_PACKAGE_luci-app-minidlna=m +CONFIG_PACKAGE_luci-app-mjpg-streamer=m +CONFIG_PACKAGE_luci-app-mosquitto=m +CONFIG_PACKAGE_luci-app-mwan3=m +CONFIG_PACKAGE_luci-app-natmap=m +CONFIG_PACKAGE_luci-app-nextdns=m +CONFIG_PACKAGE_luci-app-nft-qos=m +CONFIG_PACKAGE_luci-app-nlbwmon=m +CONFIG_PACKAGE_luci-app-nut=m +CONFIG_PACKAGE_luci-app-ocserv=m +CONFIG_PACKAGE_luci-app-olsr=m +CONFIG_PACKAGE_luci-app-olsr-services=m +CONFIG_PACKAGE_luci-app-olsr-viz=m +CONFIG_PACKAGE_luci-app-olsrd2=m +CONFIG_PACKAGE_luci-app-omcproxy=m +CONFIG_PACKAGE_luci-app-openthread=m +CONFIG_PACKAGE_luci-app-openvpn=m +CONFIG_PACKAGE_luci-app-openwisp=m +CONFIG_PACKAGE_luci-app-opkg=m +CONFIG_PACKAGE_luci-app-p910nd=m +CONFIG_PACKAGE_luci-app-pagekitec=m +CONFIG_PACKAGE_luci-app-pbr=m +CONFIG_PACKAGE_luci-app-polipo=m +CONFIG_PACKAGE_luci-app-privoxy=m +CONFIG_PACKAGE_luci-app-qos=m +CONFIG_PACKAGE_luci-app-radicale=m +CONFIG_PACKAGE_luci-app-radicale2=m +CONFIG_PACKAGE_luci-app-rp-pppoe-server=m +CONFIG_PACKAGE_luci-app-samba4=m +CONFIG_PACKAGE_luci-app-ser2net=m +CONFIG_PACKAGE_luci-app-shadowsocks-libev=m +CONFIG_PACKAGE_luci-app-siitwizard=m +CONFIG_PACKAGE_luci-app-smartdns=m +CONFIG_PACKAGE_luci-app-snmpd=m +CONFIG_PACKAGE_luci-app-softether=m +CONFIG_PACKAGE_luci-app-splash=m +CONFIG_PACKAGE_luci-app-sqm=m +CONFIG_PACKAGE_luci-app-squid=m +CONFIG_PACKAGE_luci-app-sshtunnel=m +CONFIG_PACKAGE_luci-app-statistics=m +CONFIG_PACKAGE_luci-app-strongswan-swanctl=m +CONFIG_PACKAGE_luci-app-tinyproxy=m +CONFIG_PACKAGE_luci-app-tor=m +CONFIG_PACKAGE_luci-app-transmission=m +CONFIG_PACKAGE_luci-app-travelmate=m +CONFIG_PACKAGE_luci-app-ttyd=m +CONFIG_PACKAGE_luci-app-udpxy=m +CONFIG_PACKAGE_luci-app-uhttpd=m +CONFIG_PACKAGE_luci-app-unbound=m +CONFIG_PACKAGE_luci-app-upnp=m +CONFIG_PACKAGE_luci-app-usteer=m +CONFIG_PACKAGE_luci-app-v2raya=m +CONFIG_PACKAGE_luci-app-vnstat=m +CONFIG_PACKAGE_luci-app-vnstat2=m +CONFIG_PACKAGE_luci-app-watchcat=m +CONFIG_PACKAGE_luci-app-wifischedule=m +CONFIG_PACKAGE_luci-app-wol=m +CONFIG_PACKAGE_luci-app-xfrpc=m +CONFIG_PACKAGE_luci-app-xinetd=m # end of 3. Applications # # 4. Themes # -# CONFIG_PACKAGE_luci-theme-bootstrap is not set -# CONFIG_PACKAGE_luci-theme-material is not set -# CONFIG_PACKAGE_luci-theme-openwrt is not set -# CONFIG_PACKAGE_luci-theme-openwrt-2020 is not set +CONFIG_PACKAGE_luci-theme-bootstrap=m +CONFIG_PACKAGE_luci-theme-material=m +CONFIG_PACKAGE_luci-theme-openwrt=m +CONFIG_PACKAGE_luci-theme-openwrt-2020=m # end of 4. Themes # # 5. Protocols # -# CONFIG_PACKAGE_luci-proto-3g is not set -# CONFIG_PACKAGE_luci-proto-autoip is not set -# CONFIG_PACKAGE_luci-proto-batman-adv is not set -# CONFIG_PACKAGE_luci-proto-bonding is not set -# CONFIG_PACKAGE_luci-proto-external is not set -# CONFIG_PACKAGE_luci-proto-gre is not set -# CONFIG_PACKAGE_luci-proto-hnet is not set -# CONFIG_PACKAGE_luci-proto-ipip is not set -# CONFIG_PACKAGE_luci-proto-ipv6 is not set -# CONFIG_PACKAGE_luci-proto-mbim is not set -# CONFIG_PACKAGE_luci-proto-modemmanager is not set -# CONFIG_PACKAGE_luci-proto-ncm is not set -# CONFIG_PACKAGE_luci-proto-nebula is not set -# CONFIG_PACKAGE_luci-proto-openconnect is not set -# CONFIG_PACKAGE_luci-proto-openfortivpn is not set -# CONFIG_PACKAGE_luci-proto-ppp is not set -# CONFIG_PACKAGE_luci-proto-pppossh is not set -# CONFIG_PACKAGE_luci-proto-qmi is not set -# CONFIG_PACKAGE_luci-proto-relay is not set -# CONFIG_PACKAGE_luci-proto-sstp is not set -# CONFIG_PACKAGE_luci-proto-unet is not set -# CONFIG_PACKAGE_luci-proto-vpnc is not set -# CONFIG_PACKAGE_luci-proto-vti is not set -# CONFIG_PACKAGE_luci-proto-vxlan is not set -# CONFIG_PACKAGE_luci-proto-wireguard is not set -# CONFIG_PACKAGE_luci-proto-xfrm is not set -# CONFIG_PACKAGE_luci-proto-yggdrasil is not set +CONFIG_PACKAGE_luci-proto-3g=m +CONFIG_PACKAGE_luci-proto-autoip=m +CONFIG_PACKAGE_luci-proto-batman-adv=m +CONFIG_PACKAGE_luci-proto-bonding=m +CONFIG_PACKAGE_luci-proto-external=m +CONFIG_PACKAGE_luci-proto-gre=m +CONFIG_PACKAGE_luci-proto-hnet=m +CONFIG_PACKAGE_luci-proto-ipip=m +CONFIG_PACKAGE_luci-proto-ipv6=m +CONFIG_PACKAGE_luci-proto-mbim=m +CONFIG_PACKAGE_luci-proto-modemmanager=m +CONFIG_PACKAGE_luci-proto-ncm=m +CONFIG_PACKAGE_luci-proto-nebula=m +CONFIG_PACKAGE_luci-proto-openconnect=m +CONFIG_PACKAGE_luci-proto-openfortivpn=m +CONFIG_PACKAGE_luci-proto-ppp=m +CONFIG_PACKAGE_luci-proto-pppossh=m +CONFIG_PACKAGE_luci-proto-qmi=m +CONFIG_PACKAGE_luci-proto-relay=m +CONFIG_PACKAGE_luci-proto-sstp=m +CONFIG_PACKAGE_luci-proto-unet=m +CONFIG_PACKAGE_luci-proto-vpnc=m +CONFIG_PACKAGE_luci-proto-vti=m +CONFIG_PACKAGE_luci-proto-vxlan=m +CONFIG_PACKAGE_luci-proto-wireguard=m +CONFIG_PACKAGE_luci-proto-xfrm=m +CONFIG_PACKAGE_luci-proto-yggdrasil=m # end of 5. Protocols # # 6. Libraries # -# CONFIG_PACKAGE_luci-lib-base is not set +CONFIG_PACKAGE_luci-lib-base=m CONFIG_PACKAGE_luci-lib-chartjs=m -# CONFIG_PACKAGE_luci-lib-httpclient is not set -# CONFIG_PACKAGE_luci-lib-httpprotoutils is not set -# CONFIG_PACKAGE_luci-lib-ip is not set -# CONFIG_PACKAGE_luci-lib-ipkg is not set -# CONFIG_PACKAGE_luci-lib-iptparser is not set -# CONFIG_PACKAGE_luci-lib-json is not set -# CONFIG_PACKAGE_luci-lib-jsonc is not set -# CONFIG_PACKAGE_luci-lib-nixio is not set -# CONFIG_PACKAGE_luci-lib-px5g is not set +CONFIG_PACKAGE_luci-lib-httpclient=m +CONFIG_PACKAGE_luci-lib-httpprotoutils=m +CONFIG_PACKAGE_luci-lib-ip=m +CONFIG_PACKAGE_luci-lib-ipkg=m +CONFIG_PACKAGE_luci-lib-iptparser=m +CONFIG_PACKAGE_luci-lib-json=m +CONFIG_PACKAGE_luci-lib-jsonc=m +CONFIG_PACKAGE_luci-lib-nixio=m +CONFIG_PACKAGE_luci-lib-px5g=m # end of 6. Libraries + +CONFIG_PACKAGE_luci-i18n-acl-ar=m +CONFIG_PACKAGE_luci-i18n-acl-bg=m +CONFIG_PACKAGE_luci-i18n-acl-bn=m +CONFIG_PACKAGE_luci-i18n-acl-ca=m +CONFIG_PACKAGE_luci-i18n-acl-cs=m +CONFIG_PACKAGE_luci-i18n-acl-da=m +CONFIG_PACKAGE_luci-i18n-acl-de=m +CONFIG_PACKAGE_luci-i18n-acl-el=m +CONFIG_PACKAGE_luci-i18n-acl-es=m +CONFIG_PACKAGE_luci-i18n-acl-fi=m +CONFIG_PACKAGE_luci-i18n-acl-fr=m +CONFIG_PACKAGE_luci-i18n-acl-he=m +CONFIG_PACKAGE_luci-i18n-acl-hi=m +CONFIG_PACKAGE_luci-i18n-acl-hu=m +CONFIG_PACKAGE_luci-i18n-acl-it=m +CONFIG_PACKAGE_luci-i18n-acl-ja=m +CONFIG_PACKAGE_luci-i18n-acl-ko=m +CONFIG_PACKAGE_luci-i18n-acl-lt=m +CONFIG_PACKAGE_luci-i18n-acl-mr=m +CONFIG_PACKAGE_luci-i18n-acl-ms=m +CONFIG_PACKAGE_luci-i18n-acl-nl=m +CONFIG_PACKAGE_luci-i18n-acl-no=m +CONFIG_PACKAGE_luci-i18n-acl-pl=m +CONFIG_PACKAGE_luci-i18n-acl-pt=m +CONFIG_PACKAGE_luci-i18n-acl-pt-br=m +CONFIG_PACKAGE_luci-i18n-acl-ro=m +CONFIG_PACKAGE_luci-i18n-acl-ru=m +CONFIG_PACKAGE_luci-i18n-acl-sk=m +CONFIG_PACKAGE_luci-i18n-acl-sv=m +CONFIG_PACKAGE_luci-i18n-acl-tr=m +CONFIG_PACKAGE_luci-i18n-acl-uk=m +CONFIG_PACKAGE_luci-i18n-acl-vi=m +CONFIG_PACKAGE_luci-i18n-acl-zh-cn=m +CONFIG_PACKAGE_luci-i18n-acl-zh-tw=m +CONFIG_PACKAGE_luci-i18n-acme-ar=m +CONFIG_PACKAGE_luci-i18n-acme-bg=m +CONFIG_PACKAGE_luci-i18n-acme-bn=m +CONFIG_PACKAGE_luci-i18n-acme-ca=m +CONFIG_PACKAGE_luci-i18n-acme-cs=m +CONFIG_PACKAGE_luci-i18n-acme-da=m +CONFIG_PACKAGE_luci-i18n-acme-de=m +CONFIG_PACKAGE_luci-i18n-acme-el=m +CONFIG_PACKAGE_luci-i18n-acme-es=m +CONFIG_PACKAGE_luci-i18n-acme-fi=m +CONFIG_PACKAGE_luci-i18n-acme-fr=m +CONFIG_PACKAGE_luci-i18n-acme-he=m +CONFIG_PACKAGE_luci-i18n-acme-hi=m +CONFIG_PACKAGE_luci-i18n-acme-hu=m +CONFIG_PACKAGE_luci-i18n-acme-it=m +CONFIG_PACKAGE_luci-i18n-acme-ja=m +CONFIG_PACKAGE_luci-i18n-acme-ko=m +CONFIG_PACKAGE_luci-i18n-acme-lt=m +CONFIG_PACKAGE_luci-i18n-acme-mr=m +CONFIG_PACKAGE_luci-i18n-acme-ms=m +CONFIG_PACKAGE_luci-i18n-acme-nl=m +CONFIG_PACKAGE_luci-i18n-acme-no=m +CONFIG_PACKAGE_luci-i18n-acme-pl=m +CONFIG_PACKAGE_luci-i18n-acme-pt=m +CONFIG_PACKAGE_luci-i18n-acme-pt-br=m +CONFIG_PACKAGE_luci-i18n-acme-ro=m +CONFIG_PACKAGE_luci-i18n-acme-ru=m +CONFIG_PACKAGE_luci-i18n-acme-sk=m +CONFIG_PACKAGE_luci-i18n-acme-sv=m +CONFIG_PACKAGE_luci-i18n-acme-tr=m +CONFIG_PACKAGE_luci-i18n-acme-uk=m +CONFIG_PACKAGE_luci-i18n-acme-vi=m +CONFIG_PACKAGE_luci-i18n-acme-zh-cn=m +CONFIG_PACKAGE_luci-i18n-acme-zh-tw=m +CONFIG_PACKAGE_luci-i18n-adblock-ar=m +CONFIG_PACKAGE_luci-i18n-adblock-bg=m +CONFIG_PACKAGE_luci-i18n-adblock-bn=m +CONFIG_PACKAGE_luci-i18n-adblock-ca=m +CONFIG_PACKAGE_luci-i18n-adblock-cs=m +CONFIG_PACKAGE_luci-i18n-adblock-da=m +CONFIG_PACKAGE_luci-i18n-adblock-de=m +CONFIG_PACKAGE_luci-i18n-adblock-el=m +CONFIG_PACKAGE_luci-i18n-adblock-es=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ar=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-bg=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-bn=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ca=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-cs=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-da=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-de=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-el=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-es=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-fi=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-fr=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-he=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-hi=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-hu=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-it=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ja=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ko=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-lt=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-mr=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ms=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-nl=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-no=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-pl=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-pt=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-pt-br=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ro=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ru=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-sk=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-sv=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-tr=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-uk=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-vi=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-zh-cn=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-zh-tw=m +CONFIG_PACKAGE_luci-i18n-adblock-fi=m +CONFIG_PACKAGE_luci-i18n-adblock-fr=m +CONFIG_PACKAGE_luci-i18n-adblock-he=m +CONFIG_PACKAGE_luci-i18n-adblock-hi=m +CONFIG_PACKAGE_luci-i18n-adblock-hu=m +CONFIG_PACKAGE_luci-i18n-adblock-it=m +CONFIG_PACKAGE_luci-i18n-adblock-ja=m +CONFIG_PACKAGE_luci-i18n-adblock-ko=m +CONFIG_PACKAGE_luci-i18n-adblock-lt=m +CONFIG_PACKAGE_luci-i18n-adblock-mr=m +CONFIG_PACKAGE_luci-i18n-adblock-ms=m +CONFIG_PACKAGE_luci-i18n-adblock-nl=m +CONFIG_PACKAGE_luci-i18n-adblock-no=m +CONFIG_PACKAGE_luci-i18n-adblock-pl=m +CONFIG_PACKAGE_luci-i18n-adblock-pt=m +CONFIG_PACKAGE_luci-i18n-adblock-pt-br=m +CONFIG_PACKAGE_luci-i18n-adblock-ro=m +CONFIG_PACKAGE_luci-i18n-adblock-ru=m +CONFIG_PACKAGE_luci-i18n-adblock-sk=m +CONFIG_PACKAGE_luci-i18n-adblock-sv=m +CONFIG_PACKAGE_luci-i18n-adblock-tr=m +CONFIG_PACKAGE_luci-i18n-adblock-uk=m +CONFIG_PACKAGE_luci-i18n-adblock-vi=m +CONFIG_PACKAGE_luci-i18n-adblock-zh-cn=m +CONFIG_PACKAGE_luci-i18n-adblock-zh-tw=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ar=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-bg=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-bn=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ca=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-cs=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-da=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-de=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-el=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-es=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-fi=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-fr=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-he=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-hi=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-hu=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-it=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ja=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ko=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-lt=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-mr=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ms=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-nl=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-no=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-pl=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-pt=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-pt-br=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ro=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ru=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-sk=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-sv=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-tr=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-uk=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-vi=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-zh-cn=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ahcp-ar=m +CONFIG_PACKAGE_luci-i18n-ahcp-bg=m +CONFIG_PACKAGE_luci-i18n-ahcp-bn=m +CONFIG_PACKAGE_luci-i18n-ahcp-ca=m +CONFIG_PACKAGE_luci-i18n-ahcp-cs=m +CONFIG_PACKAGE_luci-i18n-ahcp-da=m +CONFIG_PACKAGE_luci-i18n-ahcp-de=m +CONFIG_PACKAGE_luci-i18n-ahcp-el=m +CONFIG_PACKAGE_luci-i18n-ahcp-es=m +CONFIG_PACKAGE_luci-i18n-ahcp-fi=m +CONFIG_PACKAGE_luci-i18n-ahcp-fr=m +CONFIG_PACKAGE_luci-i18n-ahcp-he=m +CONFIG_PACKAGE_luci-i18n-ahcp-hi=m +CONFIG_PACKAGE_luci-i18n-ahcp-hu=m +CONFIG_PACKAGE_luci-i18n-ahcp-it=m +CONFIG_PACKAGE_luci-i18n-ahcp-ja=m +CONFIG_PACKAGE_luci-i18n-ahcp-ko=m +CONFIG_PACKAGE_luci-i18n-ahcp-lt=m +CONFIG_PACKAGE_luci-i18n-ahcp-mr=m +CONFIG_PACKAGE_luci-i18n-ahcp-ms=m +CONFIG_PACKAGE_luci-i18n-ahcp-nl=m +CONFIG_PACKAGE_luci-i18n-ahcp-no=m +CONFIG_PACKAGE_luci-i18n-ahcp-pl=m +CONFIG_PACKAGE_luci-i18n-ahcp-pt=m +CONFIG_PACKAGE_luci-i18n-ahcp-pt-br=m +CONFIG_PACKAGE_luci-i18n-ahcp-ro=m +CONFIG_PACKAGE_luci-i18n-ahcp-ru=m +CONFIG_PACKAGE_luci-i18n-ahcp-sk=m +CONFIG_PACKAGE_luci-i18n-ahcp-sv=m +CONFIG_PACKAGE_luci-i18n-ahcp-tr=m +CONFIG_PACKAGE_luci-i18n-ahcp-uk=m +CONFIG_PACKAGE_luci-i18n-ahcp-vi=m +CONFIG_PACKAGE_luci-i18n-ahcp-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ahcp-zh-tw=m +CONFIG_PACKAGE_luci-i18n-alist-ar=m +CONFIG_PACKAGE_luci-i18n-alist-bg=m +CONFIG_PACKAGE_luci-i18n-alist-bn=m +CONFIG_PACKAGE_luci-i18n-alist-ca=m +CONFIG_PACKAGE_luci-i18n-alist-cs=m +CONFIG_PACKAGE_luci-i18n-alist-da=m +CONFIG_PACKAGE_luci-i18n-alist-de=m +CONFIG_PACKAGE_luci-i18n-alist-el=m +CONFIG_PACKAGE_luci-i18n-alist-es=m +CONFIG_PACKAGE_luci-i18n-alist-fi=m +CONFIG_PACKAGE_luci-i18n-alist-fr=m +CONFIG_PACKAGE_luci-i18n-alist-he=m +CONFIG_PACKAGE_luci-i18n-alist-hi=m +CONFIG_PACKAGE_luci-i18n-alist-hu=m +CONFIG_PACKAGE_luci-i18n-alist-it=m +CONFIG_PACKAGE_luci-i18n-alist-ja=m +CONFIG_PACKAGE_luci-i18n-alist-ko=m +CONFIG_PACKAGE_luci-i18n-alist-lt=m +CONFIG_PACKAGE_luci-i18n-alist-mr=m +CONFIG_PACKAGE_luci-i18n-alist-ms=m +CONFIG_PACKAGE_luci-i18n-alist-nl=m +CONFIG_PACKAGE_luci-i18n-alist-no=m +CONFIG_PACKAGE_luci-i18n-alist-pl=m +CONFIG_PACKAGE_luci-i18n-alist-pt=m +CONFIG_PACKAGE_luci-i18n-alist-pt-br=m +CONFIG_PACKAGE_luci-i18n-alist-ro=m +CONFIG_PACKAGE_luci-i18n-alist-ru=m +CONFIG_PACKAGE_luci-i18n-alist-sk=m +CONFIG_PACKAGE_luci-i18n-alist-sv=m +CONFIG_PACKAGE_luci-i18n-alist-tr=m +CONFIG_PACKAGE_luci-i18n-alist-uk=m +CONFIG_PACKAGE_luci-i18n-alist-vi=m +CONFIG_PACKAGE_luci-i18n-alist-zh-cn=m +CONFIG_PACKAGE_luci-i18n-alist-zh-tw=m +CONFIG_PACKAGE_luci-i18n-aria2-ar=m +CONFIG_PACKAGE_luci-i18n-aria2-bg=m +CONFIG_PACKAGE_luci-i18n-aria2-bn=m +CONFIG_PACKAGE_luci-i18n-aria2-ca=m +CONFIG_PACKAGE_luci-i18n-aria2-cs=m +CONFIG_PACKAGE_luci-i18n-aria2-da=m +CONFIG_PACKAGE_luci-i18n-aria2-de=m +CONFIG_PACKAGE_luci-i18n-aria2-el=m +CONFIG_PACKAGE_luci-i18n-aria2-es=m +CONFIG_PACKAGE_luci-i18n-aria2-fi=m +CONFIG_PACKAGE_luci-i18n-aria2-fr=m +CONFIG_PACKAGE_luci-i18n-aria2-he=m +CONFIG_PACKAGE_luci-i18n-aria2-hi=m +CONFIG_PACKAGE_luci-i18n-aria2-hu=m +CONFIG_PACKAGE_luci-i18n-aria2-it=m +CONFIG_PACKAGE_luci-i18n-aria2-ja=m +CONFIG_PACKAGE_luci-i18n-aria2-ko=m +CONFIG_PACKAGE_luci-i18n-aria2-lt=m +CONFIG_PACKAGE_luci-i18n-aria2-mr=m +CONFIG_PACKAGE_luci-i18n-aria2-ms=m +CONFIG_PACKAGE_luci-i18n-aria2-nl=m +CONFIG_PACKAGE_luci-i18n-aria2-no=m +CONFIG_PACKAGE_luci-i18n-aria2-pl=m +CONFIG_PACKAGE_luci-i18n-aria2-pt=m +CONFIG_PACKAGE_luci-i18n-aria2-pt-br=m +CONFIG_PACKAGE_luci-i18n-aria2-ro=m +CONFIG_PACKAGE_luci-i18n-aria2-ru=m +CONFIG_PACKAGE_luci-i18n-aria2-sk=m +CONFIG_PACKAGE_luci-i18n-aria2-sv=m +CONFIG_PACKAGE_luci-i18n-aria2-tr=m +CONFIG_PACKAGE_luci-i18n-aria2-uk=m +CONFIG_PACKAGE_luci-i18n-aria2-vi=m +CONFIG_PACKAGE_luci-i18n-aria2-zh-cn=m +CONFIG_PACKAGE_luci-i18n-aria2-zh-tw=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ar=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-bg=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-bn=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ca=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-cs=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-da=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-de=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-el=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-es=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-fi=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-fr=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-he=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-hi=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-hu=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-it=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ja=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ko=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-lt=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-mr=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ms=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-nl=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-no=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-pl=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-pt=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-pt-br=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ro=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ru=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-sk=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-sv=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-tr=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-uk=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-vi=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-zh-cn=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-zh-tw=m +CONFIG_PACKAGE_luci-i18n-banip-ar=m +CONFIG_PACKAGE_luci-i18n-banip-bg=m +CONFIG_PACKAGE_luci-i18n-banip-bn=m +CONFIG_PACKAGE_luci-i18n-banip-ca=m +CONFIG_PACKAGE_luci-i18n-banip-cs=m +CONFIG_PACKAGE_luci-i18n-banip-da=m +CONFIG_PACKAGE_luci-i18n-banip-de=m +CONFIG_PACKAGE_luci-i18n-banip-el=m +CONFIG_PACKAGE_luci-i18n-banip-es=m +CONFIG_PACKAGE_luci-i18n-banip-fi=m +CONFIG_PACKAGE_luci-i18n-banip-fr=m +CONFIG_PACKAGE_luci-i18n-banip-he=m +CONFIG_PACKAGE_luci-i18n-banip-hi=m +CONFIG_PACKAGE_luci-i18n-banip-hu=m +CONFIG_PACKAGE_luci-i18n-banip-it=m +CONFIG_PACKAGE_luci-i18n-banip-ja=m +CONFIG_PACKAGE_luci-i18n-banip-ko=m +CONFIG_PACKAGE_luci-i18n-banip-lt=m +CONFIG_PACKAGE_luci-i18n-banip-mr=m +CONFIG_PACKAGE_luci-i18n-banip-ms=m +CONFIG_PACKAGE_luci-i18n-banip-nl=m +CONFIG_PACKAGE_luci-i18n-banip-no=m +CONFIG_PACKAGE_luci-i18n-banip-pl=m +CONFIG_PACKAGE_luci-i18n-banip-pt=m +CONFIG_PACKAGE_luci-i18n-banip-pt-br=m +CONFIG_PACKAGE_luci-i18n-banip-ro=m +CONFIG_PACKAGE_luci-i18n-banip-ru=m +CONFIG_PACKAGE_luci-i18n-banip-sk=m +CONFIG_PACKAGE_luci-i18n-banip-sv=m +CONFIG_PACKAGE_luci-i18n-banip-tr=m +CONFIG_PACKAGE_luci-i18n-banip-uk=m +CONFIG_PACKAGE_luci-i18n-banip-vi=m +CONFIG_PACKAGE_luci-i18n-banip-zh-cn=m +CONFIG_PACKAGE_luci-i18n-banip-zh-tw=m +CONFIG_PACKAGE_luci-i18n-base-ar=m +CONFIG_PACKAGE_luci-i18n-base-bg=m +CONFIG_PACKAGE_luci-i18n-base-bn=m +CONFIG_PACKAGE_luci-i18n-base-ca=m +CONFIG_PACKAGE_luci-i18n-base-cs=m +CONFIG_PACKAGE_luci-i18n-base-da=m +CONFIG_PACKAGE_luci-i18n-base-de=m +CONFIG_PACKAGE_luci-i18n-base-el=m +CONFIG_PACKAGE_luci-i18n-base-es=m +CONFIG_PACKAGE_luci-i18n-base-fi=m +CONFIG_PACKAGE_luci-i18n-base-fr=m +CONFIG_PACKAGE_luci-i18n-base-he=m +CONFIG_PACKAGE_luci-i18n-base-hi=m +CONFIG_PACKAGE_luci-i18n-base-hu=m +CONFIG_PACKAGE_luci-i18n-base-it=m +CONFIG_PACKAGE_luci-i18n-base-ja=m +CONFIG_PACKAGE_luci-i18n-base-ko=m +CONFIG_PACKAGE_luci-i18n-base-lt=m +CONFIG_PACKAGE_luci-i18n-base-mr=m +CONFIG_PACKAGE_luci-i18n-base-ms=m +CONFIG_PACKAGE_luci-i18n-base-nl=m +CONFIG_PACKAGE_luci-i18n-base-no=m +CONFIG_PACKAGE_luci-i18n-base-pl=m +CONFIG_PACKAGE_luci-i18n-base-pt=m +CONFIG_PACKAGE_luci-i18n-base-pt-br=m +CONFIG_PACKAGE_luci-i18n-base-ro=m +CONFIG_PACKAGE_luci-i18n-base-ru=m +CONFIG_PACKAGE_luci-i18n-base-sk=m +CONFIG_PACKAGE_luci-i18n-base-sv=m +CONFIG_PACKAGE_luci-i18n-base-tr=m +CONFIG_PACKAGE_luci-i18n-base-uk=m +CONFIG_PACKAGE_luci-i18n-base-vi=m +CONFIG_PACKAGE_luci-i18n-base-zh-cn=m +CONFIG_PACKAGE_luci-i18n-base-zh-tw=m +CONFIG_PACKAGE_luci-i18n-battstatus-ar=m +CONFIG_PACKAGE_luci-i18n-battstatus-bg=m +CONFIG_PACKAGE_luci-i18n-battstatus-bn=m +CONFIG_PACKAGE_luci-i18n-battstatus-ca=m +CONFIG_PACKAGE_luci-i18n-battstatus-cs=m +CONFIG_PACKAGE_luci-i18n-battstatus-da=m +CONFIG_PACKAGE_luci-i18n-battstatus-de=m +CONFIG_PACKAGE_luci-i18n-battstatus-el=m +CONFIG_PACKAGE_luci-i18n-battstatus-es=m +CONFIG_PACKAGE_luci-i18n-battstatus-fi=m +CONFIG_PACKAGE_luci-i18n-battstatus-fr=m +CONFIG_PACKAGE_luci-i18n-battstatus-he=m +CONFIG_PACKAGE_luci-i18n-battstatus-hi=m +CONFIG_PACKAGE_luci-i18n-battstatus-hu=m +CONFIG_PACKAGE_luci-i18n-battstatus-it=m +CONFIG_PACKAGE_luci-i18n-battstatus-ja=m +CONFIG_PACKAGE_luci-i18n-battstatus-ko=m +CONFIG_PACKAGE_luci-i18n-battstatus-lt=m +CONFIG_PACKAGE_luci-i18n-battstatus-mr=m +CONFIG_PACKAGE_luci-i18n-battstatus-ms=m +CONFIG_PACKAGE_luci-i18n-battstatus-nl=m +CONFIG_PACKAGE_luci-i18n-battstatus-no=m +CONFIG_PACKAGE_luci-i18n-battstatus-pl=m +CONFIG_PACKAGE_luci-i18n-battstatus-pt=m +CONFIG_PACKAGE_luci-i18n-battstatus-pt-br=m +CONFIG_PACKAGE_luci-i18n-battstatus-ro=m +CONFIG_PACKAGE_luci-i18n-battstatus-ru=m +CONFIG_PACKAGE_luci-i18n-battstatus-sk=m +CONFIG_PACKAGE_luci-i18n-battstatus-sv=m +CONFIG_PACKAGE_luci-i18n-battstatus-tr=m +CONFIG_PACKAGE_luci-i18n-battstatus-uk=m +CONFIG_PACKAGE_luci-i18n-battstatus-vi=m +CONFIG_PACKAGE_luci-i18n-battstatus-zh-cn=m +CONFIG_PACKAGE_luci-i18n-battstatus-zh-tw=m +CONFIG_PACKAGE_luci-i18n-bcp38-ar=m +CONFIG_PACKAGE_luci-i18n-bcp38-bg=m +CONFIG_PACKAGE_luci-i18n-bcp38-bn=m +CONFIG_PACKAGE_luci-i18n-bcp38-ca=m +CONFIG_PACKAGE_luci-i18n-bcp38-cs=m +CONFIG_PACKAGE_luci-i18n-bcp38-da=m +CONFIG_PACKAGE_luci-i18n-bcp38-de=m +CONFIG_PACKAGE_luci-i18n-bcp38-el=m +CONFIG_PACKAGE_luci-i18n-bcp38-es=m +CONFIG_PACKAGE_luci-i18n-bcp38-fi=m +CONFIG_PACKAGE_luci-i18n-bcp38-fr=m +CONFIG_PACKAGE_luci-i18n-bcp38-he=m +CONFIG_PACKAGE_luci-i18n-bcp38-hi=m +CONFIG_PACKAGE_luci-i18n-bcp38-hu=m +CONFIG_PACKAGE_luci-i18n-bcp38-it=m +CONFIG_PACKAGE_luci-i18n-bcp38-ja=m +CONFIG_PACKAGE_luci-i18n-bcp38-ko=m +CONFIG_PACKAGE_luci-i18n-bcp38-lt=m +CONFIG_PACKAGE_luci-i18n-bcp38-mr=m +CONFIG_PACKAGE_luci-i18n-bcp38-ms=m +CONFIG_PACKAGE_luci-i18n-bcp38-nl=m +CONFIG_PACKAGE_luci-i18n-bcp38-no=m +CONFIG_PACKAGE_luci-i18n-bcp38-pl=m +CONFIG_PACKAGE_luci-i18n-bcp38-pt=m +CONFIG_PACKAGE_luci-i18n-bcp38-pt-br=m +CONFIG_PACKAGE_luci-i18n-bcp38-ro=m +CONFIG_PACKAGE_luci-i18n-bcp38-ru=m +CONFIG_PACKAGE_luci-i18n-bcp38-sk=m +CONFIG_PACKAGE_luci-i18n-bcp38-sv=m +CONFIG_PACKAGE_luci-i18n-bcp38-tr=m +CONFIG_PACKAGE_luci-i18n-bcp38-uk=m +CONFIG_PACKAGE_luci-i18n-bcp38-vi=m +CONFIG_PACKAGE_luci-i18n-bcp38-zh-cn=m +CONFIG_PACKAGE_luci-i18n-bcp38-zh-tw=m +CONFIG_PACKAGE_luci-i18n-bmx7-ar=m +CONFIG_PACKAGE_luci-i18n-bmx7-bg=m +CONFIG_PACKAGE_luci-i18n-bmx7-bn=m +CONFIG_PACKAGE_luci-i18n-bmx7-ca=m +CONFIG_PACKAGE_luci-i18n-bmx7-cs=m +CONFIG_PACKAGE_luci-i18n-bmx7-da=m +CONFIG_PACKAGE_luci-i18n-bmx7-de=m +CONFIG_PACKAGE_luci-i18n-bmx7-el=m +CONFIG_PACKAGE_luci-i18n-bmx7-es=m +CONFIG_PACKAGE_luci-i18n-bmx7-fi=m +CONFIG_PACKAGE_luci-i18n-bmx7-fr=m +CONFIG_PACKAGE_luci-i18n-bmx7-he=m +CONFIG_PACKAGE_luci-i18n-bmx7-hi=m +CONFIG_PACKAGE_luci-i18n-bmx7-hu=m +CONFIG_PACKAGE_luci-i18n-bmx7-it=m +CONFIG_PACKAGE_luci-i18n-bmx7-ja=m +CONFIG_PACKAGE_luci-i18n-bmx7-ko=m +CONFIG_PACKAGE_luci-i18n-bmx7-lt=m +CONFIG_PACKAGE_luci-i18n-bmx7-mr=m +CONFIG_PACKAGE_luci-i18n-bmx7-ms=m +CONFIG_PACKAGE_luci-i18n-bmx7-nl=m +CONFIG_PACKAGE_luci-i18n-bmx7-no=m +CONFIG_PACKAGE_luci-i18n-bmx7-pl=m +CONFIG_PACKAGE_luci-i18n-bmx7-pt=m +CONFIG_PACKAGE_luci-i18n-bmx7-pt-br=m +CONFIG_PACKAGE_luci-i18n-bmx7-ro=m +CONFIG_PACKAGE_luci-i18n-bmx7-ru=m +CONFIG_PACKAGE_luci-i18n-bmx7-sk=m +CONFIG_PACKAGE_luci-i18n-bmx7-sv=m +CONFIG_PACKAGE_luci-i18n-bmx7-tr=m +CONFIG_PACKAGE_luci-i18n-bmx7-uk=m +CONFIG_PACKAGE_luci-i18n-bmx7-vi=m +CONFIG_PACKAGE_luci-i18n-bmx7-zh-cn=m +CONFIG_PACKAGE_luci-i18n-bmx7-zh-tw=m +CONFIG_PACKAGE_luci-i18n-clamav-ar=m +CONFIG_PACKAGE_luci-i18n-clamav-bg=m +CONFIG_PACKAGE_luci-i18n-clamav-bn=m +CONFIG_PACKAGE_luci-i18n-clamav-ca=m +CONFIG_PACKAGE_luci-i18n-clamav-cs=m +CONFIG_PACKAGE_luci-i18n-clamav-da=m +CONFIG_PACKAGE_luci-i18n-clamav-de=m +CONFIG_PACKAGE_luci-i18n-clamav-el=m +CONFIG_PACKAGE_luci-i18n-clamav-es=m +CONFIG_PACKAGE_luci-i18n-clamav-fi=m +CONFIG_PACKAGE_luci-i18n-clamav-fr=m +CONFIG_PACKAGE_luci-i18n-clamav-he=m +CONFIG_PACKAGE_luci-i18n-clamav-hi=m +CONFIG_PACKAGE_luci-i18n-clamav-hu=m +CONFIG_PACKAGE_luci-i18n-clamav-it=m +CONFIG_PACKAGE_luci-i18n-clamav-ja=m +CONFIG_PACKAGE_luci-i18n-clamav-ko=m +CONFIG_PACKAGE_luci-i18n-clamav-lt=m +CONFIG_PACKAGE_luci-i18n-clamav-mr=m +CONFIG_PACKAGE_luci-i18n-clamav-ms=m +CONFIG_PACKAGE_luci-i18n-clamav-nl=m +CONFIG_PACKAGE_luci-i18n-clamav-no=m +CONFIG_PACKAGE_luci-i18n-clamav-pl=m +CONFIG_PACKAGE_luci-i18n-clamav-pt=m +CONFIG_PACKAGE_luci-i18n-clamav-pt-br=m +CONFIG_PACKAGE_luci-i18n-clamav-ro=m +CONFIG_PACKAGE_luci-i18n-clamav-ru=m +CONFIG_PACKAGE_luci-i18n-clamav-sk=m +CONFIG_PACKAGE_luci-i18n-clamav-sv=m +CONFIG_PACKAGE_luci-i18n-clamav-tr=m +CONFIG_PACKAGE_luci-i18n-clamav-uk=m +CONFIG_PACKAGE_luci-i18n-clamav-vi=m +CONFIG_PACKAGE_luci-i18n-clamav-zh-cn=m +CONFIG_PACKAGE_luci-i18n-clamav-zh-tw=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ar=m +CONFIG_PACKAGE_luci-i18n-cloudflared-bg=m +CONFIG_PACKAGE_luci-i18n-cloudflared-bn=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ca=m +CONFIG_PACKAGE_luci-i18n-cloudflared-cs=m +CONFIG_PACKAGE_luci-i18n-cloudflared-da=m +CONFIG_PACKAGE_luci-i18n-cloudflared-de=m +CONFIG_PACKAGE_luci-i18n-cloudflared-el=m +CONFIG_PACKAGE_luci-i18n-cloudflared-es=m +CONFIG_PACKAGE_luci-i18n-cloudflared-fi=m +CONFIG_PACKAGE_luci-i18n-cloudflared-fr=m +CONFIG_PACKAGE_luci-i18n-cloudflared-he=m +CONFIG_PACKAGE_luci-i18n-cloudflared-hi=m +CONFIG_PACKAGE_luci-i18n-cloudflared-hu=m +CONFIG_PACKAGE_luci-i18n-cloudflared-it=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ja=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ko=m +CONFIG_PACKAGE_luci-i18n-cloudflared-lt=m +CONFIG_PACKAGE_luci-i18n-cloudflared-mr=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ms=m +CONFIG_PACKAGE_luci-i18n-cloudflared-nl=m +CONFIG_PACKAGE_luci-i18n-cloudflared-no=m +CONFIG_PACKAGE_luci-i18n-cloudflared-pl=m +CONFIG_PACKAGE_luci-i18n-cloudflared-pt=m +CONFIG_PACKAGE_luci-i18n-cloudflared-pt-br=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ro=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ru=m +CONFIG_PACKAGE_luci-i18n-cloudflared-sk=m +CONFIG_PACKAGE_luci-i18n-cloudflared-sv=m +CONFIG_PACKAGE_luci-i18n-cloudflared-tr=m +CONFIG_PACKAGE_luci-i18n-cloudflared-uk=m +CONFIG_PACKAGE_luci-i18n-cloudflared-vi=m +CONFIG_PACKAGE_luci-i18n-cloudflared-zh-cn=m +CONFIG_PACKAGE_luci-i18n-cloudflared-zh-tw=m +CONFIG_PACKAGE_luci-i18n-commands-ar=m +CONFIG_PACKAGE_luci-i18n-commands-bg=m +CONFIG_PACKAGE_luci-i18n-commands-bn=m +CONFIG_PACKAGE_luci-i18n-commands-ca=m +CONFIG_PACKAGE_luci-i18n-commands-cs=m +CONFIG_PACKAGE_luci-i18n-commands-da=m +CONFIG_PACKAGE_luci-i18n-commands-de=m +CONFIG_PACKAGE_luci-i18n-commands-el=m +CONFIG_PACKAGE_luci-i18n-commands-es=m +CONFIG_PACKAGE_luci-i18n-commands-fi=m +CONFIG_PACKAGE_luci-i18n-commands-fr=m +CONFIG_PACKAGE_luci-i18n-commands-he=m +CONFIG_PACKAGE_luci-i18n-commands-hi=m +CONFIG_PACKAGE_luci-i18n-commands-hu=m +CONFIG_PACKAGE_luci-i18n-commands-it=m +CONFIG_PACKAGE_luci-i18n-commands-ja=m +CONFIG_PACKAGE_luci-i18n-commands-ko=m +CONFIG_PACKAGE_luci-i18n-commands-lt=m +CONFIG_PACKAGE_luci-i18n-commands-mr=m +CONFIG_PACKAGE_luci-i18n-commands-ms=m +CONFIG_PACKAGE_luci-i18n-commands-nl=m +CONFIG_PACKAGE_luci-i18n-commands-no=m +CONFIG_PACKAGE_luci-i18n-commands-pl=m +CONFIG_PACKAGE_luci-i18n-commands-pt=m +CONFIG_PACKAGE_luci-i18n-commands-pt-br=m +CONFIG_PACKAGE_luci-i18n-commands-ro=m +CONFIG_PACKAGE_luci-i18n-commands-ru=m +CONFIG_PACKAGE_luci-i18n-commands-sk=m +CONFIG_PACKAGE_luci-i18n-commands-sv=m +CONFIG_PACKAGE_luci-i18n-commands-tr=m +CONFIG_PACKAGE_luci-i18n-commands-uk=m +CONFIG_PACKAGE_luci-i18n-commands-vi=m +CONFIG_PACKAGE_luci-i18n-commands-zh-cn=m +CONFIG_PACKAGE_luci-i18n-commands-zh-tw=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-bn=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-da=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-lt=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-no=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-pl=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-pt-br=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-ru=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-sv=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-tr=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-zh-cn=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-zh-tw=m +CONFIG_PACKAGE_luci-i18n-cshark-ar=m +CONFIG_PACKAGE_luci-i18n-cshark-bg=m +CONFIG_PACKAGE_luci-i18n-cshark-bn=m +CONFIG_PACKAGE_luci-i18n-cshark-ca=m +CONFIG_PACKAGE_luci-i18n-cshark-cs=m +CONFIG_PACKAGE_luci-i18n-cshark-da=m +CONFIG_PACKAGE_luci-i18n-cshark-de=m +CONFIG_PACKAGE_luci-i18n-cshark-el=m +CONFIG_PACKAGE_luci-i18n-cshark-es=m +CONFIG_PACKAGE_luci-i18n-cshark-fi=m +CONFIG_PACKAGE_luci-i18n-cshark-fr=m +CONFIG_PACKAGE_luci-i18n-cshark-he=m +CONFIG_PACKAGE_luci-i18n-cshark-hi=m +CONFIG_PACKAGE_luci-i18n-cshark-hu=m +CONFIG_PACKAGE_luci-i18n-cshark-it=m +CONFIG_PACKAGE_luci-i18n-cshark-ja=m +CONFIG_PACKAGE_luci-i18n-cshark-ko=m +CONFIG_PACKAGE_luci-i18n-cshark-lt=m +CONFIG_PACKAGE_luci-i18n-cshark-mr=m +CONFIG_PACKAGE_luci-i18n-cshark-ms=m +CONFIG_PACKAGE_luci-i18n-cshark-nl=m +CONFIG_PACKAGE_luci-i18n-cshark-no=m +CONFIG_PACKAGE_luci-i18n-cshark-pl=m +CONFIG_PACKAGE_luci-i18n-cshark-pt=m +CONFIG_PACKAGE_luci-i18n-cshark-pt-br=m +CONFIG_PACKAGE_luci-i18n-cshark-ro=m +CONFIG_PACKAGE_luci-i18n-cshark-ru=m +CONFIG_PACKAGE_luci-i18n-cshark-sk=m +CONFIG_PACKAGE_luci-i18n-cshark-sv=m +CONFIG_PACKAGE_luci-i18n-cshark-tr=m +CONFIG_PACKAGE_luci-i18n-cshark-uk=m +CONFIG_PACKAGE_luci-i18n-cshark-vi=m +CONFIG_PACKAGE_luci-i18n-cshark-zh-cn=m +CONFIG_PACKAGE_luci-i18n-cshark-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dashboard-ar=m +CONFIG_PACKAGE_luci-i18n-dashboard-bg=m +CONFIG_PACKAGE_luci-i18n-dashboard-bn=m +CONFIG_PACKAGE_luci-i18n-dashboard-ca=m +CONFIG_PACKAGE_luci-i18n-dashboard-cs=m +CONFIG_PACKAGE_luci-i18n-dashboard-da=m +CONFIG_PACKAGE_luci-i18n-dashboard-de=m +CONFIG_PACKAGE_luci-i18n-dashboard-el=m +CONFIG_PACKAGE_luci-i18n-dashboard-es=m +CONFIG_PACKAGE_luci-i18n-dashboard-fi=m +CONFIG_PACKAGE_luci-i18n-dashboard-fr=m +CONFIG_PACKAGE_luci-i18n-dashboard-he=m +CONFIG_PACKAGE_luci-i18n-dashboard-hi=m +CONFIG_PACKAGE_luci-i18n-dashboard-hu=m +CONFIG_PACKAGE_luci-i18n-dashboard-it=m +CONFIG_PACKAGE_luci-i18n-dashboard-ja=m +CONFIG_PACKAGE_luci-i18n-dashboard-ko=m +CONFIG_PACKAGE_luci-i18n-dashboard-lt=m +CONFIG_PACKAGE_luci-i18n-dashboard-mr=m +CONFIG_PACKAGE_luci-i18n-dashboard-ms=m +CONFIG_PACKAGE_luci-i18n-dashboard-nl=m +CONFIG_PACKAGE_luci-i18n-dashboard-no=m +CONFIG_PACKAGE_luci-i18n-dashboard-pl=m +CONFIG_PACKAGE_luci-i18n-dashboard-pt=m +CONFIG_PACKAGE_luci-i18n-dashboard-pt-br=m +CONFIG_PACKAGE_luci-i18n-dashboard-ro=m +CONFIG_PACKAGE_luci-i18n-dashboard-ru=m +CONFIG_PACKAGE_luci-i18n-dashboard-sk=m +CONFIG_PACKAGE_luci-i18n-dashboard-sv=m +CONFIG_PACKAGE_luci-i18n-dashboard-tr=m +CONFIG_PACKAGE_luci-i18n-dashboard-uk=m +CONFIG_PACKAGE_luci-i18n-dashboard-vi=m +CONFIG_PACKAGE_luci-i18n-dashboard-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dashboard-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ar=m +CONFIG_PACKAGE_luci-i18n-dcwapd-bg=m +CONFIG_PACKAGE_luci-i18n-dcwapd-bn=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ca=m +CONFIG_PACKAGE_luci-i18n-dcwapd-cs=m +CONFIG_PACKAGE_luci-i18n-dcwapd-da=m +CONFIG_PACKAGE_luci-i18n-dcwapd-de=m +CONFIG_PACKAGE_luci-i18n-dcwapd-el=m +CONFIG_PACKAGE_luci-i18n-dcwapd-es=m +CONFIG_PACKAGE_luci-i18n-dcwapd-fi=m +CONFIG_PACKAGE_luci-i18n-dcwapd-fr=m +CONFIG_PACKAGE_luci-i18n-dcwapd-he=m +CONFIG_PACKAGE_luci-i18n-dcwapd-hi=m +CONFIG_PACKAGE_luci-i18n-dcwapd-hu=m +CONFIG_PACKAGE_luci-i18n-dcwapd-it=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ja=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ko=m +CONFIG_PACKAGE_luci-i18n-dcwapd-lt=m +CONFIG_PACKAGE_luci-i18n-dcwapd-mr=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ms=m +CONFIG_PACKAGE_luci-i18n-dcwapd-nl=m +CONFIG_PACKAGE_luci-i18n-dcwapd-no=m +CONFIG_PACKAGE_luci-i18n-dcwapd-pl=m +CONFIG_PACKAGE_luci-i18n-dcwapd-pt=m +CONFIG_PACKAGE_luci-i18n-dcwapd-pt-br=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ro=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ru=m +CONFIG_PACKAGE_luci-i18n-dcwapd-sk=m +CONFIG_PACKAGE_luci-i18n-dcwapd-sv=m +CONFIG_PACKAGE_luci-i18n-dcwapd-tr=m +CONFIG_PACKAGE_luci-i18n-dcwapd-uk=m +CONFIG_PACKAGE_luci-i18n-dcwapd-vi=m +CONFIG_PACKAGE_luci-i18n-dcwapd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dcwapd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ddns-ar=m +CONFIG_PACKAGE_luci-i18n-ddns-bg=m +CONFIG_PACKAGE_luci-i18n-ddns-bn=m +CONFIG_PACKAGE_luci-i18n-ddns-ca=m +CONFIG_PACKAGE_luci-i18n-ddns-cs=m +CONFIG_PACKAGE_luci-i18n-ddns-da=m +CONFIG_PACKAGE_luci-i18n-ddns-de=m +CONFIG_PACKAGE_luci-i18n-ddns-el=m +CONFIG_PACKAGE_luci-i18n-ddns-es=m +CONFIG_PACKAGE_luci-i18n-ddns-fi=m +CONFIG_PACKAGE_luci-i18n-ddns-fr=m +CONFIG_PACKAGE_luci-i18n-ddns-he=m +CONFIG_PACKAGE_luci-i18n-ddns-hi=m +CONFIG_PACKAGE_luci-i18n-ddns-hu=m +CONFIG_PACKAGE_luci-i18n-ddns-it=m +CONFIG_PACKAGE_luci-i18n-ddns-ja=m +CONFIG_PACKAGE_luci-i18n-ddns-ko=m +CONFIG_PACKAGE_luci-i18n-ddns-lt=m +CONFIG_PACKAGE_luci-i18n-ddns-mr=m +CONFIG_PACKAGE_luci-i18n-ddns-ms=m +CONFIG_PACKAGE_luci-i18n-ddns-nl=m +CONFIG_PACKAGE_luci-i18n-ddns-no=m +CONFIG_PACKAGE_luci-i18n-ddns-pl=m +CONFIG_PACKAGE_luci-i18n-ddns-pt=m +CONFIG_PACKAGE_luci-i18n-ddns-pt-br=m +CONFIG_PACKAGE_luci-i18n-ddns-ro=m +CONFIG_PACKAGE_luci-i18n-ddns-ru=m +CONFIG_PACKAGE_luci-i18n-ddns-sk=m +CONFIG_PACKAGE_luci-i18n-ddns-sv=m +CONFIG_PACKAGE_luci-i18n-ddns-tr=m +CONFIG_PACKAGE_luci-i18n-ddns-uk=m +CONFIG_PACKAGE_luci-i18n-ddns-vi=m +CONFIG_PACKAGE_luci-i18n-ddns-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ddns-zh-tw=m +CONFIG_PACKAGE_luci-i18n-diag-core-ar=m +CONFIG_PACKAGE_luci-i18n-diag-core-bg=m +CONFIG_PACKAGE_luci-i18n-diag-core-bn=m +CONFIG_PACKAGE_luci-i18n-diag-core-ca=m +CONFIG_PACKAGE_luci-i18n-diag-core-cs=m +CONFIG_PACKAGE_luci-i18n-diag-core-da=m +CONFIG_PACKAGE_luci-i18n-diag-core-de=m +CONFIG_PACKAGE_luci-i18n-diag-core-el=m +CONFIG_PACKAGE_luci-i18n-diag-core-es=m +CONFIG_PACKAGE_luci-i18n-diag-core-fi=m +CONFIG_PACKAGE_luci-i18n-diag-core-fr=m +CONFIG_PACKAGE_luci-i18n-diag-core-he=m +CONFIG_PACKAGE_luci-i18n-diag-core-hi=m +CONFIG_PACKAGE_luci-i18n-diag-core-hu=m +CONFIG_PACKAGE_luci-i18n-diag-core-it=m +CONFIG_PACKAGE_luci-i18n-diag-core-ja=m +CONFIG_PACKAGE_luci-i18n-diag-core-ko=m +CONFIG_PACKAGE_luci-i18n-diag-core-lt=m +CONFIG_PACKAGE_luci-i18n-diag-core-mr=m +CONFIG_PACKAGE_luci-i18n-diag-core-ms=m +CONFIG_PACKAGE_luci-i18n-diag-core-nl=m +CONFIG_PACKAGE_luci-i18n-diag-core-no=m +CONFIG_PACKAGE_luci-i18n-diag-core-pl=m +CONFIG_PACKAGE_luci-i18n-diag-core-pt=m +CONFIG_PACKAGE_luci-i18n-diag-core-pt-br=m +CONFIG_PACKAGE_luci-i18n-diag-core-ro=m +CONFIG_PACKAGE_luci-i18n-diag-core-ru=m +CONFIG_PACKAGE_luci-i18n-diag-core-sk=m +CONFIG_PACKAGE_luci-i18n-diag-core-sv=m +CONFIG_PACKAGE_luci-i18n-diag-core-tr=m +CONFIG_PACKAGE_luci-i18n-diag-core-uk=m +CONFIG_PACKAGE_luci-i18n-diag-core-vi=m +CONFIG_PACKAGE_luci-i18n-diag-core-zh-cn=m +CONFIG_PACKAGE_luci-i18n-diag-core-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ar=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-bg=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-bn=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ca=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-cs=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-da=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-de=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-el=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-es=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-fi=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-fr=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-he=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-hi=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-hu=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-it=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ja=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ko=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-lt=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-mr=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ms=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-nl=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-no=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-pl=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-pt=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ro=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ru=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-sk=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-sv=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-tr=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-uk=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-vi=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dockerman-ar=m +CONFIG_PACKAGE_luci-i18n-dockerman-bg=m +CONFIG_PACKAGE_luci-i18n-dockerman-bn=m +CONFIG_PACKAGE_luci-i18n-dockerman-ca=m +CONFIG_PACKAGE_luci-i18n-dockerman-cs=m +CONFIG_PACKAGE_luci-i18n-dockerman-da=m +CONFIG_PACKAGE_luci-i18n-dockerman-de=m +CONFIG_PACKAGE_luci-i18n-dockerman-el=m +CONFIG_PACKAGE_luci-i18n-dockerman-es=m +CONFIG_PACKAGE_luci-i18n-dockerman-fi=m +CONFIG_PACKAGE_luci-i18n-dockerman-fr=m +CONFIG_PACKAGE_luci-i18n-dockerman-he=m +CONFIG_PACKAGE_luci-i18n-dockerman-hi=m +CONFIG_PACKAGE_luci-i18n-dockerman-hu=m +CONFIG_PACKAGE_luci-i18n-dockerman-it=m +CONFIG_PACKAGE_luci-i18n-dockerman-ja=m +CONFIG_PACKAGE_luci-i18n-dockerman-ko=m +CONFIG_PACKAGE_luci-i18n-dockerman-lt=m +CONFIG_PACKAGE_luci-i18n-dockerman-mr=m +CONFIG_PACKAGE_luci-i18n-dockerman-ms=m +CONFIG_PACKAGE_luci-i18n-dockerman-nl=m +CONFIG_PACKAGE_luci-i18n-dockerman-no=m +CONFIG_PACKAGE_luci-i18n-dockerman-pl=m +CONFIG_PACKAGE_luci-i18n-dockerman-pt=m +CONFIG_PACKAGE_luci-i18n-dockerman-pt-br=m +CONFIG_PACKAGE_luci-i18n-dockerman-ro=m +CONFIG_PACKAGE_luci-i18n-dockerman-ru=m +CONFIG_PACKAGE_luci-i18n-dockerman-sk=m +CONFIG_PACKAGE_luci-i18n-dockerman-sv=m +CONFIG_PACKAGE_luci-i18n-dockerman-tr=m +CONFIG_PACKAGE_luci-i18n-dockerman-uk=m +CONFIG_PACKAGE_luci-i18n-dockerman-vi=m +CONFIG_PACKAGE_luci-i18n-dockerman-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dockerman-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dsl-ar=m +CONFIG_PACKAGE_luci-i18n-dsl-bg=m +CONFIG_PACKAGE_luci-i18n-dsl-bn=m +CONFIG_PACKAGE_luci-i18n-dsl-ca=m +CONFIG_PACKAGE_luci-i18n-dsl-cs=m +CONFIG_PACKAGE_luci-i18n-dsl-da=m +CONFIG_PACKAGE_luci-i18n-dsl-de=m +CONFIG_PACKAGE_luci-i18n-dsl-el=m +CONFIG_PACKAGE_luci-i18n-dsl-es=m +CONFIG_PACKAGE_luci-i18n-dsl-fi=m +CONFIG_PACKAGE_luci-i18n-dsl-fr=m +CONFIG_PACKAGE_luci-i18n-dsl-he=m +CONFIG_PACKAGE_luci-i18n-dsl-hi=m +CONFIG_PACKAGE_luci-i18n-dsl-hu=m +CONFIG_PACKAGE_luci-i18n-dsl-it=m +CONFIG_PACKAGE_luci-i18n-dsl-ja=m +CONFIG_PACKAGE_luci-i18n-dsl-ko=m +CONFIG_PACKAGE_luci-i18n-dsl-lt=m +CONFIG_PACKAGE_luci-i18n-dsl-mr=m +CONFIG_PACKAGE_luci-i18n-dsl-ms=m +CONFIG_PACKAGE_luci-i18n-dsl-nl=m +CONFIG_PACKAGE_luci-i18n-dsl-no=m +CONFIG_PACKAGE_luci-i18n-dsl-pl=m +CONFIG_PACKAGE_luci-i18n-dsl-pt=m +CONFIG_PACKAGE_luci-i18n-dsl-pt-br=m +CONFIG_PACKAGE_luci-i18n-dsl-ro=m +CONFIG_PACKAGE_luci-i18n-dsl-ru=m +CONFIG_PACKAGE_luci-i18n-dsl-sk=m +CONFIG_PACKAGE_luci-i18n-dsl-sv=m +CONFIG_PACKAGE_luci-i18n-dsl-tr=m +CONFIG_PACKAGE_luci-i18n-dsl-uk=m +CONFIG_PACKAGE_luci-i18n-dsl-vi=m +CONFIG_PACKAGE_luci-i18n-dsl-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dsl-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dump1090-ar=m +CONFIG_PACKAGE_luci-i18n-dump1090-bg=m +CONFIG_PACKAGE_luci-i18n-dump1090-bn=m +CONFIG_PACKAGE_luci-i18n-dump1090-ca=m +CONFIG_PACKAGE_luci-i18n-dump1090-cs=m +CONFIG_PACKAGE_luci-i18n-dump1090-da=m +CONFIG_PACKAGE_luci-i18n-dump1090-de=m +CONFIG_PACKAGE_luci-i18n-dump1090-el=m +CONFIG_PACKAGE_luci-i18n-dump1090-es=m +CONFIG_PACKAGE_luci-i18n-dump1090-fi=m +CONFIG_PACKAGE_luci-i18n-dump1090-fr=m +CONFIG_PACKAGE_luci-i18n-dump1090-he=m +CONFIG_PACKAGE_luci-i18n-dump1090-hi=m +CONFIG_PACKAGE_luci-i18n-dump1090-hu=m +CONFIG_PACKAGE_luci-i18n-dump1090-it=m +CONFIG_PACKAGE_luci-i18n-dump1090-ja=m +CONFIG_PACKAGE_luci-i18n-dump1090-ko=m +CONFIG_PACKAGE_luci-i18n-dump1090-lt=m +CONFIG_PACKAGE_luci-i18n-dump1090-mr=m +CONFIG_PACKAGE_luci-i18n-dump1090-ms=m +CONFIG_PACKAGE_luci-i18n-dump1090-nl=m +CONFIG_PACKAGE_luci-i18n-dump1090-no=m +CONFIG_PACKAGE_luci-i18n-dump1090-pl=m +CONFIG_PACKAGE_luci-i18n-dump1090-pt=m +CONFIG_PACKAGE_luci-i18n-dump1090-pt-br=m +CONFIG_PACKAGE_luci-i18n-dump1090-ro=m +CONFIG_PACKAGE_luci-i18n-dump1090-ru=m +CONFIG_PACKAGE_luci-i18n-dump1090-sk=m +CONFIG_PACKAGE_luci-i18n-dump1090-sv=m +CONFIG_PACKAGE_luci-i18n-dump1090-tr=m +CONFIG_PACKAGE_luci-i18n-dump1090-uk=m +CONFIG_PACKAGE_luci-i18n-dump1090-vi=m +CONFIG_PACKAGE_luci-i18n-dump1090-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dump1090-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ar=m +CONFIG_PACKAGE_luci-i18n-dynapoint-bg=m +CONFIG_PACKAGE_luci-i18n-dynapoint-bn=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ca=m +CONFIG_PACKAGE_luci-i18n-dynapoint-cs=m +CONFIG_PACKAGE_luci-i18n-dynapoint-da=m +CONFIG_PACKAGE_luci-i18n-dynapoint-de=m +CONFIG_PACKAGE_luci-i18n-dynapoint-el=m +CONFIG_PACKAGE_luci-i18n-dynapoint-es=m +CONFIG_PACKAGE_luci-i18n-dynapoint-fi=m +CONFIG_PACKAGE_luci-i18n-dynapoint-fr=m +CONFIG_PACKAGE_luci-i18n-dynapoint-he=m +CONFIG_PACKAGE_luci-i18n-dynapoint-hi=m +CONFIG_PACKAGE_luci-i18n-dynapoint-hu=m +CONFIG_PACKAGE_luci-i18n-dynapoint-it=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ja=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ko=m +CONFIG_PACKAGE_luci-i18n-dynapoint-lt=m +CONFIG_PACKAGE_luci-i18n-dynapoint-mr=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ms=m +CONFIG_PACKAGE_luci-i18n-dynapoint-nl=m +CONFIG_PACKAGE_luci-i18n-dynapoint-no=m +CONFIG_PACKAGE_luci-i18n-dynapoint-pl=m +CONFIG_PACKAGE_luci-i18n-dynapoint-pt=m +CONFIG_PACKAGE_luci-i18n-dynapoint-pt-br=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ro=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ru=m +CONFIG_PACKAGE_luci-i18n-dynapoint-sk=m +CONFIG_PACKAGE_luci-i18n-dynapoint-sv=m +CONFIG_PACKAGE_luci-i18n-dynapoint-tr=m +CONFIG_PACKAGE_luci-i18n-dynapoint-uk=m +CONFIG_PACKAGE_luci-i18n-dynapoint-vi=m +CONFIG_PACKAGE_luci-i18n-dynapoint-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dynapoint-zh-tw=m +CONFIG_PACKAGE_luci-i18n-email-bn=m +CONFIG_PACKAGE_luci-i18n-email-da=m +CONFIG_PACKAGE_luci-i18n-email-fr=m +CONFIG_PACKAGE_luci-i18n-email-lt=m +CONFIG_PACKAGE_luci-i18n-email-no=m +CONFIG_PACKAGE_luci-i18n-email-pl=m +CONFIG_PACKAGE_luci-i18n-email-pt-br=m +CONFIG_PACKAGE_luci-i18n-email-ru=m +CONFIG_PACKAGE_luci-i18n-email-sv=m +CONFIG_PACKAGE_luci-i18n-email-tr=m +CONFIG_PACKAGE_luci-i18n-email-uk=m +CONFIG_PACKAGE_luci-i18n-email-zh-cn=m +CONFIG_PACKAGE_luci-i18n-email-zh-tw=m +CONFIG_PACKAGE_luci-i18n-eoip-ar=m +CONFIG_PACKAGE_luci-i18n-eoip-bg=m +CONFIG_PACKAGE_luci-i18n-eoip-bn=m +CONFIG_PACKAGE_luci-i18n-eoip-ca=m +CONFIG_PACKAGE_luci-i18n-eoip-cs=m +CONFIG_PACKAGE_luci-i18n-eoip-da=m +CONFIG_PACKAGE_luci-i18n-eoip-de=m +CONFIG_PACKAGE_luci-i18n-eoip-el=m +CONFIG_PACKAGE_luci-i18n-eoip-es=m +CONFIG_PACKAGE_luci-i18n-eoip-fi=m +CONFIG_PACKAGE_luci-i18n-eoip-fr=m +CONFIG_PACKAGE_luci-i18n-eoip-he=m +CONFIG_PACKAGE_luci-i18n-eoip-hi=m +CONFIG_PACKAGE_luci-i18n-eoip-hu=m +CONFIG_PACKAGE_luci-i18n-eoip-it=m +CONFIG_PACKAGE_luci-i18n-eoip-ja=m +CONFIG_PACKAGE_luci-i18n-eoip-ko=m +CONFIG_PACKAGE_luci-i18n-eoip-lt=m +CONFIG_PACKAGE_luci-i18n-eoip-mr=m +CONFIG_PACKAGE_luci-i18n-eoip-ms=m +CONFIG_PACKAGE_luci-i18n-eoip-nl=m +CONFIG_PACKAGE_luci-i18n-eoip-no=m +CONFIG_PACKAGE_luci-i18n-eoip-pl=m +CONFIG_PACKAGE_luci-i18n-eoip-pt=m +CONFIG_PACKAGE_luci-i18n-eoip-pt-br=m +CONFIG_PACKAGE_luci-i18n-eoip-ro=m +CONFIG_PACKAGE_luci-i18n-eoip-ru=m +CONFIG_PACKAGE_luci-i18n-eoip-sk=m +CONFIG_PACKAGE_luci-i18n-eoip-sv=m +CONFIG_PACKAGE_luci-i18n-eoip-tr=m +CONFIG_PACKAGE_luci-i18n-eoip-uk=m +CONFIG_PACKAGE_luci-i18n-eoip-vi=m +CONFIG_PACKAGE_luci-i18n-eoip-zh-cn=m +CONFIG_PACKAGE_luci-i18n-eoip-zh-tw=m +CONFIG_PACKAGE_luci-i18n-example-ar=m +CONFIG_PACKAGE_luci-i18n-example-bg=m +CONFIG_PACKAGE_luci-i18n-example-bn=m +CONFIG_PACKAGE_luci-i18n-example-ca=m +CONFIG_PACKAGE_luci-i18n-example-cs=m +CONFIG_PACKAGE_luci-i18n-example-da=m +CONFIG_PACKAGE_luci-i18n-example-de=m +CONFIG_PACKAGE_luci-i18n-example-el=m +CONFIG_PACKAGE_luci-i18n-example-es=m +CONFIG_PACKAGE_luci-i18n-example-fi=m +CONFIG_PACKAGE_luci-i18n-example-fr=m +CONFIG_PACKAGE_luci-i18n-example-he=m +CONFIG_PACKAGE_luci-i18n-example-hi=m +CONFIG_PACKAGE_luci-i18n-example-hu=m +CONFIG_PACKAGE_luci-i18n-example-it=m +CONFIG_PACKAGE_luci-i18n-example-ja=m +CONFIG_PACKAGE_luci-i18n-example-ko=m +CONFIG_PACKAGE_luci-i18n-example-lt=m +CONFIG_PACKAGE_luci-i18n-example-mr=m +CONFIG_PACKAGE_luci-i18n-example-ms=m +CONFIG_PACKAGE_luci-i18n-example-nl=m +CONFIG_PACKAGE_luci-i18n-example-no=m +CONFIG_PACKAGE_luci-i18n-example-pl=m +CONFIG_PACKAGE_luci-i18n-example-pt=m +CONFIG_PACKAGE_luci-i18n-example-pt-br=m +CONFIG_PACKAGE_luci-i18n-example-ro=m +CONFIG_PACKAGE_luci-i18n-example-ru=m +CONFIG_PACKAGE_luci-i18n-example-sk=m +CONFIG_PACKAGE_luci-i18n-example-sv=m +CONFIG_PACKAGE_luci-i18n-example-tr=m +CONFIG_PACKAGE_luci-i18n-example-uk=m +CONFIG_PACKAGE_luci-i18n-example-vi=m +CONFIG_PACKAGE_luci-i18n-example-zh-cn=m +CONFIG_PACKAGE_luci-i18n-example-zh-tw=m +CONFIG_PACKAGE_luci-i18n-firewall-ar=m +CONFIG_PACKAGE_luci-i18n-firewall-bg=m +CONFIG_PACKAGE_luci-i18n-firewall-bn=m +CONFIG_PACKAGE_luci-i18n-firewall-ca=m +CONFIG_PACKAGE_luci-i18n-firewall-cs=m +CONFIG_PACKAGE_luci-i18n-firewall-da=m +CONFIG_PACKAGE_luci-i18n-firewall-de=m +CONFIG_PACKAGE_luci-i18n-firewall-el=m +CONFIG_PACKAGE_luci-i18n-firewall-es=m +CONFIG_PACKAGE_luci-i18n-firewall-fi=m +CONFIG_PACKAGE_luci-i18n-firewall-fr=m +CONFIG_PACKAGE_luci-i18n-firewall-he=m +CONFIG_PACKAGE_luci-i18n-firewall-hi=m +CONFIG_PACKAGE_luci-i18n-firewall-hu=m +CONFIG_PACKAGE_luci-i18n-firewall-it=m +CONFIG_PACKAGE_luci-i18n-firewall-ja=m +CONFIG_PACKAGE_luci-i18n-firewall-ko=m +CONFIG_PACKAGE_luci-i18n-firewall-lt=m +CONFIG_PACKAGE_luci-i18n-firewall-mr=m +CONFIG_PACKAGE_luci-i18n-firewall-ms=m +CONFIG_PACKAGE_luci-i18n-firewall-nl=m +CONFIG_PACKAGE_luci-i18n-firewall-no=m +CONFIG_PACKAGE_luci-i18n-firewall-pl=m +CONFIG_PACKAGE_luci-i18n-firewall-pt=m +CONFIG_PACKAGE_luci-i18n-firewall-pt-br=m +CONFIG_PACKAGE_luci-i18n-firewall-ro=m +CONFIG_PACKAGE_luci-i18n-firewall-ru=m +CONFIG_PACKAGE_luci-i18n-firewall-sk=m +CONFIG_PACKAGE_luci-i18n-firewall-sv=m +CONFIG_PACKAGE_luci-i18n-firewall-tr=m +CONFIG_PACKAGE_luci-i18n-firewall-uk=m +CONFIG_PACKAGE_luci-i18n-firewall-vi=m +CONFIG_PACKAGE_luci-i18n-firewall-zh-cn=m +CONFIG_PACKAGE_luci-i18n-firewall-zh-tw=m +CONFIG_PACKAGE_luci-i18n-frpc-ar=m +CONFIG_PACKAGE_luci-i18n-frpc-bg=m +CONFIG_PACKAGE_luci-i18n-frpc-bn=m +CONFIG_PACKAGE_luci-i18n-frpc-ca=m +CONFIG_PACKAGE_luci-i18n-frpc-cs=m +CONFIG_PACKAGE_luci-i18n-frpc-da=m +CONFIG_PACKAGE_luci-i18n-frpc-de=m +CONFIG_PACKAGE_luci-i18n-frpc-el=m +CONFIG_PACKAGE_luci-i18n-frpc-es=m +CONFIG_PACKAGE_luci-i18n-frpc-fi=m +CONFIG_PACKAGE_luci-i18n-frpc-fr=m +CONFIG_PACKAGE_luci-i18n-frpc-he=m +CONFIG_PACKAGE_luci-i18n-frpc-hi=m +CONFIG_PACKAGE_luci-i18n-frpc-hu=m +CONFIG_PACKAGE_luci-i18n-frpc-it=m +CONFIG_PACKAGE_luci-i18n-frpc-ja=m +CONFIG_PACKAGE_luci-i18n-frpc-ko=m +CONFIG_PACKAGE_luci-i18n-frpc-lt=m +CONFIG_PACKAGE_luci-i18n-frpc-mr=m +CONFIG_PACKAGE_luci-i18n-frpc-ms=m +CONFIG_PACKAGE_luci-i18n-frpc-nl=m +CONFIG_PACKAGE_luci-i18n-frpc-no=m +CONFIG_PACKAGE_luci-i18n-frpc-pl=m +CONFIG_PACKAGE_luci-i18n-frpc-pt=m +CONFIG_PACKAGE_luci-i18n-frpc-pt-br=m +CONFIG_PACKAGE_luci-i18n-frpc-ro=m +CONFIG_PACKAGE_luci-i18n-frpc-ru=m +CONFIG_PACKAGE_luci-i18n-frpc-sk=m +CONFIG_PACKAGE_luci-i18n-frpc-sv=m +CONFIG_PACKAGE_luci-i18n-frpc-tr=m +CONFIG_PACKAGE_luci-i18n-frpc-uk=m +CONFIG_PACKAGE_luci-i18n-frpc-vi=m +CONFIG_PACKAGE_luci-i18n-frpc-zh-cn=m +CONFIG_PACKAGE_luci-i18n-frpc-zh-tw=m +CONFIG_PACKAGE_luci-i18n-frps-ar=m +CONFIG_PACKAGE_luci-i18n-frps-bg=m +CONFIG_PACKAGE_luci-i18n-frps-bn=m +CONFIG_PACKAGE_luci-i18n-frps-ca=m +CONFIG_PACKAGE_luci-i18n-frps-cs=m +CONFIG_PACKAGE_luci-i18n-frps-da=m +CONFIG_PACKAGE_luci-i18n-frps-de=m +CONFIG_PACKAGE_luci-i18n-frps-el=m +CONFIG_PACKAGE_luci-i18n-frps-es=m +CONFIG_PACKAGE_luci-i18n-frps-fi=m +CONFIG_PACKAGE_luci-i18n-frps-fr=m +CONFIG_PACKAGE_luci-i18n-frps-he=m +CONFIG_PACKAGE_luci-i18n-frps-hi=m +CONFIG_PACKAGE_luci-i18n-frps-hu=m +CONFIG_PACKAGE_luci-i18n-frps-it=m +CONFIG_PACKAGE_luci-i18n-frps-ja=m +CONFIG_PACKAGE_luci-i18n-frps-ko=m +CONFIG_PACKAGE_luci-i18n-frps-lt=m +CONFIG_PACKAGE_luci-i18n-frps-mr=m +CONFIG_PACKAGE_luci-i18n-frps-ms=m +CONFIG_PACKAGE_luci-i18n-frps-nl=m +CONFIG_PACKAGE_luci-i18n-frps-no=m +CONFIG_PACKAGE_luci-i18n-frps-pl=m +CONFIG_PACKAGE_luci-i18n-frps-pt=m +CONFIG_PACKAGE_luci-i18n-frps-pt-br=m +CONFIG_PACKAGE_luci-i18n-frps-ro=m +CONFIG_PACKAGE_luci-i18n-frps-ru=m +CONFIG_PACKAGE_luci-i18n-frps-sk=m +CONFIG_PACKAGE_luci-i18n-frps-sv=m +CONFIG_PACKAGE_luci-i18n-frps-tr=m +CONFIG_PACKAGE_luci-i18n-frps-uk=m +CONFIG_PACKAGE_luci-i18n-frps-vi=m +CONFIG_PACKAGE_luci-i18n-frps-zh-cn=m +CONFIG_PACKAGE_luci-i18n-frps-zh-tw=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ar=m +CONFIG_PACKAGE_luci-i18n-fwknopd-bg=m +CONFIG_PACKAGE_luci-i18n-fwknopd-bn=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ca=m +CONFIG_PACKAGE_luci-i18n-fwknopd-cs=m +CONFIG_PACKAGE_luci-i18n-fwknopd-da=m +CONFIG_PACKAGE_luci-i18n-fwknopd-de=m +CONFIG_PACKAGE_luci-i18n-fwknopd-el=m +CONFIG_PACKAGE_luci-i18n-fwknopd-es=m +CONFIG_PACKAGE_luci-i18n-fwknopd-fi=m +CONFIG_PACKAGE_luci-i18n-fwknopd-fr=m +CONFIG_PACKAGE_luci-i18n-fwknopd-he=m +CONFIG_PACKAGE_luci-i18n-fwknopd-hi=m +CONFIG_PACKAGE_luci-i18n-fwknopd-hu=m +CONFIG_PACKAGE_luci-i18n-fwknopd-it=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ja=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ko=m +CONFIG_PACKAGE_luci-i18n-fwknopd-lt=m +CONFIG_PACKAGE_luci-i18n-fwknopd-mr=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ms=m +CONFIG_PACKAGE_luci-i18n-fwknopd-nl=m +CONFIG_PACKAGE_luci-i18n-fwknopd-no=m +CONFIG_PACKAGE_luci-i18n-fwknopd-pl=m +CONFIG_PACKAGE_luci-i18n-fwknopd-pt=m +CONFIG_PACKAGE_luci-i18n-fwknopd-pt-br=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ro=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ru=m +CONFIG_PACKAGE_luci-i18n-fwknopd-sk=m +CONFIG_PACKAGE_luci-i18n-fwknopd-sv=m +CONFIG_PACKAGE_luci-i18n-fwknopd-tr=m +CONFIG_PACKAGE_luci-i18n-fwknopd-uk=m +CONFIG_PACKAGE_luci-i18n-fwknopd-vi=m +CONFIG_PACKAGE_luci-i18n-fwknopd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-fwknopd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ar=m +CONFIG_PACKAGE_luci-i18n-hd-idle-bg=m +CONFIG_PACKAGE_luci-i18n-hd-idle-bn=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ca=m +CONFIG_PACKAGE_luci-i18n-hd-idle-cs=m +CONFIG_PACKAGE_luci-i18n-hd-idle-da=m +CONFIG_PACKAGE_luci-i18n-hd-idle-de=m +CONFIG_PACKAGE_luci-i18n-hd-idle-el=m +CONFIG_PACKAGE_luci-i18n-hd-idle-es=m +CONFIG_PACKAGE_luci-i18n-hd-idle-fi=m +CONFIG_PACKAGE_luci-i18n-hd-idle-fr=m +CONFIG_PACKAGE_luci-i18n-hd-idle-he=m +CONFIG_PACKAGE_luci-i18n-hd-idle-hi=m +CONFIG_PACKAGE_luci-i18n-hd-idle-hu=m +CONFIG_PACKAGE_luci-i18n-hd-idle-it=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ja=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ko=m +CONFIG_PACKAGE_luci-i18n-hd-idle-lt=m +CONFIG_PACKAGE_luci-i18n-hd-idle-mr=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ms=m +CONFIG_PACKAGE_luci-i18n-hd-idle-nl=m +CONFIG_PACKAGE_luci-i18n-hd-idle-no=m +CONFIG_PACKAGE_luci-i18n-hd-idle-pl=m +CONFIG_PACKAGE_luci-i18n-hd-idle-pt=m +CONFIG_PACKAGE_luci-i18n-hd-idle-pt-br=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ro=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ru=m +CONFIG_PACKAGE_luci-i18n-hd-idle-sk=m +CONFIG_PACKAGE_luci-i18n-hd-idle-sv=m +CONFIG_PACKAGE_luci-i18n-hd-idle-tr=m +CONFIG_PACKAGE_luci-i18n-hd-idle-uk=m +CONFIG_PACKAGE_luci-i18n-hd-idle-vi=m +CONFIG_PACKAGE_luci-i18n-hd-idle-zh-cn=m +CONFIG_PACKAGE_luci-i18n-hd-idle-zh-tw=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ar=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-bg=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-bn=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ca=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-cs=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-da=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-de=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-el=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-es=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-fi=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-fr=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-he=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-hi=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-hu=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-it=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ja=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ko=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-lt=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-mr=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ms=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-nl=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-no=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-pl=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-pt=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ro=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ru=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-sk=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-sv=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-tr=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-uk=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-vi=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ar=m +CONFIG_PACKAGE_luci-i18n-irqbalance-bg=m +CONFIG_PACKAGE_luci-i18n-irqbalance-bn=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ca=m +CONFIG_PACKAGE_luci-i18n-irqbalance-cs=m +CONFIG_PACKAGE_luci-i18n-irqbalance-da=m +CONFIG_PACKAGE_luci-i18n-irqbalance-de=m +CONFIG_PACKAGE_luci-i18n-irqbalance-el=m +CONFIG_PACKAGE_luci-i18n-irqbalance-es=m +CONFIG_PACKAGE_luci-i18n-irqbalance-fi=m +CONFIG_PACKAGE_luci-i18n-irqbalance-fr=m +CONFIG_PACKAGE_luci-i18n-irqbalance-he=m +CONFIG_PACKAGE_luci-i18n-irqbalance-hi=m +CONFIG_PACKAGE_luci-i18n-irqbalance-hu=m +CONFIG_PACKAGE_luci-i18n-irqbalance-it=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ja=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ko=m +CONFIG_PACKAGE_luci-i18n-irqbalance-lt=m +CONFIG_PACKAGE_luci-i18n-irqbalance-mr=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ms=m +CONFIG_PACKAGE_luci-i18n-irqbalance-nl=m +CONFIG_PACKAGE_luci-i18n-irqbalance-no=m +CONFIG_PACKAGE_luci-i18n-irqbalance-pl=m +CONFIG_PACKAGE_luci-i18n-irqbalance-pt=m +CONFIG_PACKAGE_luci-i18n-irqbalance-pt-br=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ro=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ru=m +CONFIG_PACKAGE_luci-i18n-irqbalance-sk=m +CONFIG_PACKAGE_luci-i18n-irqbalance-sv=m +CONFIG_PACKAGE_luci-i18n-irqbalance-tr=m +CONFIG_PACKAGE_luci-i18n-irqbalance-uk=m +CONFIG_PACKAGE_luci-i18n-irqbalance-vi=m +CONFIG_PACKAGE_luci-i18n-irqbalance-zh-cn=m +CONFIG_PACKAGE_luci-i18n-irqbalance-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ar=m +CONFIG_PACKAGE_luci-i18n-ksmbd-bg=m +CONFIG_PACKAGE_luci-i18n-ksmbd-bn=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ca=m +CONFIG_PACKAGE_luci-i18n-ksmbd-cs=m +CONFIG_PACKAGE_luci-i18n-ksmbd-da=m +CONFIG_PACKAGE_luci-i18n-ksmbd-de=m +CONFIG_PACKAGE_luci-i18n-ksmbd-el=m +CONFIG_PACKAGE_luci-i18n-ksmbd-es=m +CONFIG_PACKAGE_luci-i18n-ksmbd-fi=m +CONFIG_PACKAGE_luci-i18n-ksmbd-fr=m +CONFIG_PACKAGE_luci-i18n-ksmbd-he=m +CONFIG_PACKAGE_luci-i18n-ksmbd-hi=m +CONFIG_PACKAGE_luci-i18n-ksmbd-hu=m +CONFIG_PACKAGE_luci-i18n-ksmbd-it=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ja=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ko=m +CONFIG_PACKAGE_luci-i18n-ksmbd-lt=m +CONFIG_PACKAGE_luci-i18n-ksmbd-mr=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ms=m +CONFIG_PACKAGE_luci-i18n-ksmbd-nl=m +CONFIG_PACKAGE_luci-i18n-ksmbd-no=m +CONFIG_PACKAGE_luci-i18n-ksmbd-pl=m +CONFIG_PACKAGE_luci-i18n-ksmbd-pt=m +CONFIG_PACKAGE_luci-i18n-ksmbd-pt-br=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ro=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ru=m +CONFIG_PACKAGE_luci-i18n-ksmbd-sk=m +CONFIG_PACKAGE_luci-i18n-ksmbd-sv=m +CONFIG_PACKAGE_luci-i18n-ksmbd-tr=m +CONFIG_PACKAGE_luci-i18n-ksmbd-uk=m +CONFIG_PACKAGE_luci-i18n-ksmbd-vi=m +CONFIG_PACKAGE_luci-i18n-ksmbd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ksmbd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-lxc-ar=m +CONFIG_PACKAGE_luci-i18n-lxc-bg=m +CONFIG_PACKAGE_luci-i18n-lxc-bn=m +CONFIG_PACKAGE_luci-i18n-lxc-ca=m +CONFIG_PACKAGE_luci-i18n-lxc-cs=m +CONFIG_PACKAGE_luci-i18n-lxc-da=m +CONFIG_PACKAGE_luci-i18n-lxc-de=m +CONFIG_PACKAGE_luci-i18n-lxc-el=m +CONFIG_PACKAGE_luci-i18n-lxc-es=m +CONFIG_PACKAGE_luci-i18n-lxc-fi=m +CONFIG_PACKAGE_luci-i18n-lxc-fr=m +CONFIG_PACKAGE_luci-i18n-lxc-he=m +CONFIG_PACKAGE_luci-i18n-lxc-hi=m +CONFIG_PACKAGE_luci-i18n-lxc-hu=m +CONFIG_PACKAGE_luci-i18n-lxc-it=m +CONFIG_PACKAGE_luci-i18n-lxc-ja=m +CONFIG_PACKAGE_luci-i18n-lxc-ko=m +CONFIG_PACKAGE_luci-i18n-lxc-lt=m +CONFIG_PACKAGE_luci-i18n-lxc-mr=m +CONFIG_PACKAGE_luci-i18n-lxc-ms=m +CONFIG_PACKAGE_luci-i18n-lxc-nl=m +CONFIG_PACKAGE_luci-i18n-lxc-no=m +CONFIG_PACKAGE_luci-i18n-lxc-pl=m +CONFIG_PACKAGE_luci-i18n-lxc-pt=m +CONFIG_PACKAGE_luci-i18n-lxc-pt-br=m +CONFIG_PACKAGE_luci-i18n-lxc-ro=m +CONFIG_PACKAGE_luci-i18n-lxc-ru=m +CONFIG_PACKAGE_luci-i18n-lxc-sk=m +CONFIG_PACKAGE_luci-i18n-lxc-sv=m +CONFIG_PACKAGE_luci-i18n-lxc-tr=m +CONFIG_PACKAGE_luci-i18n-lxc-uk=m +CONFIG_PACKAGE_luci-i18n-lxc-vi=m +CONFIG_PACKAGE_luci-i18n-lxc-zh-cn=m +CONFIG_PACKAGE_luci-i18n-lxc-zh-tw=m +CONFIG_PACKAGE_luci-i18n-minidlna-ar=m +CONFIG_PACKAGE_luci-i18n-minidlna-bg=m +CONFIG_PACKAGE_luci-i18n-minidlna-bn=m +CONFIG_PACKAGE_luci-i18n-minidlna-ca=m +CONFIG_PACKAGE_luci-i18n-minidlna-cs=m +CONFIG_PACKAGE_luci-i18n-minidlna-da=m +CONFIG_PACKAGE_luci-i18n-minidlna-de=m +CONFIG_PACKAGE_luci-i18n-minidlna-el=m +CONFIG_PACKAGE_luci-i18n-minidlna-es=m +CONFIG_PACKAGE_luci-i18n-minidlna-fi=m +CONFIG_PACKAGE_luci-i18n-minidlna-fr=m +CONFIG_PACKAGE_luci-i18n-minidlna-he=m +CONFIG_PACKAGE_luci-i18n-minidlna-hi=m +CONFIG_PACKAGE_luci-i18n-minidlna-hu=m +CONFIG_PACKAGE_luci-i18n-minidlna-it=m +CONFIG_PACKAGE_luci-i18n-minidlna-ja=m +CONFIG_PACKAGE_luci-i18n-minidlna-ko=m +CONFIG_PACKAGE_luci-i18n-minidlna-lt=m +CONFIG_PACKAGE_luci-i18n-minidlna-mr=m +CONFIG_PACKAGE_luci-i18n-minidlna-ms=m +CONFIG_PACKAGE_luci-i18n-minidlna-nl=m +CONFIG_PACKAGE_luci-i18n-minidlna-no=m +CONFIG_PACKAGE_luci-i18n-minidlna-pl=m +CONFIG_PACKAGE_luci-i18n-minidlna-pt=m +CONFIG_PACKAGE_luci-i18n-minidlna-pt-br=m +CONFIG_PACKAGE_luci-i18n-minidlna-ro=m +CONFIG_PACKAGE_luci-i18n-minidlna-ru=m +CONFIG_PACKAGE_luci-i18n-minidlna-sk=m +CONFIG_PACKAGE_luci-i18n-minidlna-sv=m +CONFIG_PACKAGE_luci-i18n-minidlna-tr=m +CONFIG_PACKAGE_luci-i18n-minidlna-uk=m +CONFIG_PACKAGE_luci-i18n-minidlna-vi=m +CONFIG_PACKAGE_luci-i18n-minidlna-zh-cn=m +CONFIG_PACKAGE_luci-i18n-minidlna-zh-tw=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ar=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-bg=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-bn=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ca=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-cs=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-da=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-de=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-el=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-es=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-fi=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-fr=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-he=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-hi=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-hu=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-it=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ja=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ko=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-lt=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-mr=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ms=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-nl=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-no=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-pl=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-pt=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-pt-br=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ro=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ru=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-sk=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-sv=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-tr=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-uk=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-vi=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-zh-cn=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-zh-tw=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ar=m +CONFIG_PACKAGE_luci-i18n-mosquitto-bg=m +CONFIG_PACKAGE_luci-i18n-mosquitto-bn=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ca=m +CONFIG_PACKAGE_luci-i18n-mosquitto-cs=m +CONFIG_PACKAGE_luci-i18n-mosquitto-da=m +CONFIG_PACKAGE_luci-i18n-mosquitto-de=m +CONFIG_PACKAGE_luci-i18n-mosquitto-el=m +CONFIG_PACKAGE_luci-i18n-mosquitto-es=m +CONFIG_PACKAGE_luci-i18n-mosquitto-fi=m +CONFIG_PACKAGE_luci-i18n-mosquitto-fr=m +CONFIG_PACKAGE_luci-i18n-mosquitto-he=m +CONFIG_PACKAGE_luci-i18n-mosquitto-hi=m +CONFIG_PACKAGE_luci-i18n-mosquitto-hu=m +CONFIG_PACKAGE_luci-i18n-mosquitto-it=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ja=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ko=m +CONFIG_PACKAGE_luci-i18n-mosquitto-lt=m +CONFIG_PACKAGE_luci-i18n-mosquitto-mr=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ms=m +CONFIG_PACKAGE_luci-i18n-mosquitto-nl=m +CONFIG_PACKAGE_luci-i18n-mosquitto-no=m +CONFIG_PACKAGE_luci-i18n-mosquitto-pl=m +CONFIG_PACKAGE_luci-i18n-mosquitto-pt=m +CONFIG_PACKAGE_luci-i18n-mosquitto-pt-br=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ro=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ru=m +CONFIG_PACKAGE_luci-i18n-mosquitto-sk=m +CONFIG_PACKAGE_luci-i18n-mosquitto-sv=m +CONFIG_PACKAGE_luci-i18n-mosquitto-tr=m +CONFIG_PACKAGE_luci-i18n-mosquitto-uk=m +CONFIG_PACKAGE_luci-i18n-mosquitto-vi=m +CONFIG_PACKAGE_luci-i18n-mosquitto-zh-cn=m +CONFIG_PACKAGE_luci-i18n-mosquitto-zh-tw=m +CONFIG_PACKAGE_luci-i18n-mwan3-ar=m +CONFIG_PACKAGE_luci-i18n-mwan3-bg=m +CONFIG_PACKAGE_luci-i18n-mwan3-bn=m +CONFIG_PACKAGE_luci-i18n-mwan3-ca=m +CONFIG_PACKAGE_luci-i18n-mwan3-cs=m +CONFIG_PACKAGE_luci-i18n-mwan3-da=m +CONFIG_PACKAGE_luci-i18n-mwan3-de=m +CONFIG_PACKAGE_luci-i18n-mwan3-el=m +CONFIG_PACKAGE_luci-i18n-mwan3-es=m +CONFIG_PACKAGE_luci-i18n-mwan3-fi=m +CONFIG_PACKAGE_luci-i18n-mwan3-fr=m +CONFIG_PACKAGE_luci-i18n-mwan3-he=m +CONFIG_PACKAGE_luci-i18n-mwan3-hi=m +CONFIG_PACKAGE_luci-i18n-mwan3-hu=m +CONFIG_PACKAGE_luci-i18n-mwan3-it=m +CONFIG_PACKAGE_luci-i18n-mwan3-ja=m +CONFIG_PACKAGE_luci-i18n-mwan3-ko=m +CONFIG_PACKAGE_luci-i18n-mwan3-lt=m +CONFIG_PACKAGE_luci-i18n-mwan3-mr=m +CONFIG_PACKAGE_luci-i18n-mwan3-ms=m +CONFIG_PACKAGE_luci-i18n-mwan3-nl=m +CONFIG_PACKAGE_luci-i18n-mwan3-no=m +CONFIG_PACKAGE_luci-i18n-mwan3-pl=m +CONFIG_PACKAGE_luci-i18n-mwan3-pt=m +CONFIG_PACKAGE_luci-i18n-mwan3-pt-br=m +CONFIG_PACKAGE_luci-i18n-mwan3-ro=m +CONFIG_PACKAGE_luci-i18n-mwan3-ru=m +CONFIG_PACKAGE_luci-i18n-mwan3-sk=m +CONFIG_PACKAGE_luci-i18n-mwan3-sv=m +CONFIG_PACKAGE_luci-i18n-mwan3-tr=m +CONFIG_PACKAGE_luci-i18n-mwan3-uk=m +CONFIG_PACKAGE_luci-i18n-mwan3-vi=m +CONFIG_PACKAGE_luci-i18n-mwan3-zh-cn=m +CONFIG_PACKAGE_luci-i18n-mwan3-zh-tw=m +CONFIG_PACKAGE_luci-i18n-natmap-ar=m +CONFIG_PACKAGE_luci-i18n-natmap-bg=m +CONFIG_PACKAGE_luci-i18n-natmap-bn=m +CONFIG_PACKAGE_luci-i18n-natmap-ca=m +CONFIG_PACKAGE_luci-i18n-natmap-cs=m +CONFIG_PACKAGE_luci-i18n-natmap-da=m +CONFIG_PACKAGE_luci-i18n-natmap-de=m +CONFIG_PACKAGE_luci-i18n-natmap-el=m +CONFIG_PACKAGE_luci-i18n-natmap-es=m +CONFIG_PACKAGE_luci-i18n-natmap-fi=m +CONFIG_PACKAGE_luci-i18n-natmap-fr=m +CONFIG_PACKAGE_luci-i18n-natmap-he=m +CONFIG_PACKAGE_luci-i18n-natmap-hi=m +CONFIG_PACKAGE_luci-i18n-natmap-hu=m +CONFIG_PACKAGE_luci-i18n-natmap-it=m +CONFIG_PACKAGE_luci-i18n-natmap-ja=m +CONFIG_PACKAGE_luci-i18n-natmap-ko=m +CONFIG_PACKAGE_luci-i18n-natmap-lt=m +CONFIG_PACKAGE_luci-i18n-natmap-mr=m +CONFIG_PACKAGE_luci-i18n-natmap-ms=m +CONFIG_PACKAGE_luci-i18n-natmap-nl=m +CONFIG_PACKAGE_luci-i18n-natmap-no=m +CONFIG_PACKAGE_luci-i18n-natmap-pl=m +CONFIG_PACKAGE_luci-i18n-natmap-pt=m +CONFIG_PACKAGE_luci-i18n-natmap-pt-br=m +CONFIG_PACKAGE_luci-i18n-natmap-ro=m +CONFIG_PACKAGE_luci-i18n-natmap-ru=m +CONFIG_PACKAGE_luci-i18n-natmap-sk=m +CONFIG_PACKAGE_luci-i18n-natmap-sv=m +CONFIG_PACKAGE_luci-i18n-natmap-tr=m +CONFIG_PACKAGE_luci-i18n-natmap-uk=m +CONFIG_PACKAGE_luci-i18n-natmap-vi=m +CONFIG_PACKAGE_luci-i18n-natmap-zh-cn=m +CONFIG_PACKAGE_luci-i18n-natmap-zh-tw=m +CONFIG_PACKAGE_luci-i18n-nextdns-ar=m +CONFIG_PACKAGE_luci-i18n-nextdns-bg=m +CONFIG_PACKAGE_luci-i18n-nextdns-bn=m +CONFIG_PACKAGE_luci-i18n-nextdns-ca=m +CONFIG_PACKAGE_luci-i18n-nextdns-cs=m +CONFIG_PACKAGE_luci-i18n-nextdns-da=m +CONFIG_PACKAGE_luci-i18n-nextdns-de=m +CONFIG_PACKAGE_luci-i18n-nextdns-el=m +CONFIG_PACKAGE_luci-i18n-nextdns-es=m +CONFIG_PACKAGE_luci-i18n-nextdns-fi=m +CONFIG_PACKAGE_luci-i18n-nextdns-fr=m +CONFIG_PACKAGE_luci-i18n-nextdns-he=m +CONFIG_PACKAGE_luci-i18n-nextdns-hi=m +CONFIG_PACKAGE_luci-i18n-nextdns-hu=m +CONFIG_PACKAGE_luci-i18n-nextdns-it=m +CONFIG_PACKAGE_luci-i18n-nextdns-ja=m +CONFIG_PACKAGE_luci-i18n-nextdns-ko=m +CONFIG_PACKAGE_luci-i18n-nextdns-lt=m +CONFIG_PACKAGE_luci-i18n-nextdns-mr=m +CONFIG_PACKAGE_luci-i18n-nextdns-ms=m +CONFIG_PACKAGE_luci-i18n-nextdns-nl=m +CONFIG_PACKAGE_luci-i18n-nextdns-no=m +CONFIG_PACKAGE_luci-i18n-nextdns-pl=m +CONFIG_PACKAGE_luci-i18n-nextdns-pt=m +CONFIG_PACKAGE_luci-i18n-nextdns-pt-br=m +CONFIG_PACKAGE_luci-i18n-nextdns-ro=m +CONFIG_PACKAGE_luci-i18n-nextdns-ru=m +CONFIG_PACKAGE_luci-i18n-nextdns-sk=m +CONFIG_PACKAGE_luci-i18n-nextdns-sv=m +CONFIG_PACKAGE_luci-i18n-nextdns-tr=m +CONFIG_PACKAGE_luci-i18n-nextdns-uk=m +CONFIG_PACKAGE_luci-i18n-nextdns-vi=m +CONFIG_PACKAGE_luci-i18n-nextdns-zh-cn=m +CONFIG_PACKAGE_luci-i18n-nextdns-zh-tw=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ar=m +CONFIG_PACKAGE_luci-i18n-nft-qos-bg=m +CONFIG_PACKAGE_luci-i18n-nft-qos-bn=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ca=m +CONFIG_PACKAGE_luci-i18n-nft-qos-cs=m +CONFIG_PACKAGE_luci-i18n-nft-qos-da=m +CONFIG_PACKAGE_luci-i18n-nft-qos-de=m +CONFIG_PACKAGE_luci-i18n-nft-qos-el=m +CONFIG_PACKAGE_luci-i18n-nft-qos-es=m +CONFIG_PACKAGE_luci-i18n-nft-qos-fi=m +CONFIG_PACKAGE_luci-i18n-nft-qos-fr=m +CONFIG_PACKAGE_luci-i18n-nft-qos-he=m +CONFIG_PACKAGE_luci-i18n-nft-qos-hi=m +CONFIG_PACKAGE_luci-i18n-nft-qos-hu=m +CONFIG_PACKAGE_luci-i18n-nft-qos-it=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ja=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ko=m +CONFIG_PACKAGE_luci-i18n-nft-qos-lt=m +CONFIG_PACKAGE_luci-i18n-nft-qos-mr=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ms=m +CONFIG_PACKAGE_luci-i18n-nft-qos-nl=m +CONFIG_PACKAGE_luci-i18n-nft-qos-no=m +CONFIG_PACKAGE_luci-i18n-nft-qos-pl=m +CONFIG_PACKAGE_luci-i18n-nft-qos-pt=m +CONFIG_PACKAGE_luci-i18n-nft-qos-pt-br=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ro=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ru=m +CONFIG_PACKAGE_luci-i18n-nft-qos-sk=m +CONFIG_PACKAGE_luci-i18n-nft-qos-sv=m +CONFIG_PACKAGE_luci-i18n-nft-qos-tr=m +CONFIG_PACKAGE_luci-i18n-nft-qos-uk=m +CONFIG_PACKAGE_luci-i18n-nft-qos-vi=m +CONFIG_PACKAGE_luci-i18n-nft-qos-zh-cn=m +CONFIG_PACKAGE_luci-i18n-nft-qos-zh-tw=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ar=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-bg=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-bn=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ca=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-cs=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-da=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-de=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-el=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-es=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-fi=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-fr=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-he=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-hi=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-hu=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-it=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ja=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ko=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-lt=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-mr=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ms=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-nl=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-no=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-pl=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-pt=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-pt-br=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ro=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ru=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-sk=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-sv=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-tr=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-uk=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-vi=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-zh-cn=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-zh-tw=m +CONFIG_PACKAGE_luci-i18n-nut-ar=m +CONFIG_PACKAGE_luci-i18n-nut-bg=m +CONFIG_PACKAGE_luci-i18n-nut-bn=m +CONFIG_PACKAGE_luci-i18n-nut-ca=m +CONFIG_PACKAGE_luci-i18n-nut-cs=m +CONFIG_PACKAGE_luci-i18n-nut-da=m +CONFIG_PACKAGE_luci-i18n-nut-de=m +CONFIG_PACKAGE_luci-i18n-nut-el=m +CONFIG_PACKAGE_luci-i18n-nut-es=m +CONFIG_PACKAGE_luci-i18n-nut-fi=m +CONFIG_PACKAGE_luci-i18n-nut-fr=m +CONFIG_PACKAGE_luci-i18n-nut-he=m +CONFIG_PACKAGE_luci-i18n-nut-hi=m +CONFIG_PACKAGE_luci-i18n-nut-hu=m +CONFIG_PACKAGE_luci-i18n-nut-it=m +CONFIG_PACKAGE_luci-i18n-nut-ja=m +CONFIG_PACKAGE_luci-i18n-nut-ko=m +CONFIG_PACKAGE_luci-i18n-nut-lt=m +CONFIG_PACKAGE_luci-i18n-nut-mr=m +CONFIG_PACKAGE_luci-i18n-nut-ms=m +CONFIG_PACKAGE_luci-i18n-nut-nl=m +CONFIG_PACKAGE_luci-i18n-nut-no=m +CONFIG_PACKAGE_luci-i18n-nut-pl=m +CONFIG_PACKAGE_luci-i18n-nut-pt=m +CONFIG_PACKAGE_luci-i18n-nut-pt-br=m +CONFIG_PACKAGE_luci-i18n-nut-ro=m +CONFIG_PACKAGE_luci-i18n-nut-ru=m +CONFIG_PACKAGE_luci-i18n-nut-sk=m +CONFIG_PACKAGE_luci-i18n-nut-sv=m +CONFIG_PACKAGE_luci-i18n-nut-tr=m +CONFIG_PACKAGE_luci-i18n-nut-uk=m +CONFIG_PACKAGE_luci-i18n-nut-vi=m +CONFIG_PACKAGE_luci-i18n-nut-zh-cn=m +CONFIG_PACKAGE_luci-i18n-nut-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ocserv-ar=m +CONFIG_PACKAGE_luci-i18n-ocserv-bg=m +CONFIG_PACKAGE_luci-i18n-ocserv-bn=m +CONFIG_PACKAGE_luci-i18n-ocserv-ca=m +CONFIG_PACKAGE_luci-i18n-ocserv-cs=m +CONFIG_PACKAGE_luci-i18n-ocserv-da=m +CONFIG_PACKAGE_luci-i18n-ocserv-de=m +CONFIG_PACKAGE_luci-i18n-ocserv-el=m +CONFIG_PACKAGE_luci-i18n-ocserv-es=m +CONFIG_PACKAGE_luci-i18n-ocserv-fi=m +CONFIG_PACKAGE_luci-i18n-ocserv-fr=m +CONFIG_PACKAGE_luci-i18n-ocserv-he=m +CONFIG_PACKAGE_luci-i18n-ocserv-hi=m +CONFIG_PACKAGE_luci-i18n-ocserv-hu=m +CONFIG_PACKAGE_luci-i18n-ocserv-it=m +CONFIG_PACKAGE_luci-i18n-ocserv-ja=m +CONFIG_PACKAGE_luci-i18n-ocserv-ko=m +CONFIG_PACKAGE_luci-i18n-ocserv-lt=m +CONFIG_PACKAGE_luci-i18n-ocserv-mr=m +CONFIG_PACKAGE_luci-i18n-ocserv-ms=m +CONFIG_PACKAGE_luci-i18n-ocserv-nl=m +CONFIG_PACKAGE_luci-i18n-ocserv-no=m +CONFIG_PACKAGE_luci-i18n-ocserv-pl=m +CONFIG_PACKAGE_luci-i18n-ocserv-pt=m +CONFIG_PACKAGE_luci-i18n-ocserv-pt-br=m +CONFIG_PACKAGE_luci-i18n-ocserv-ro=m +CONFIG_PACKAGE_luci-i18n-ocserv-ru=m +CONFIG_PACKAGE_luci-i18n-ocserv-sk=m +CONFIG_PACKAGE_luci-i18n-ocserv-sv=m +CONFIG_PACKAGE_luci-i18n-ocserv-tr=m +CONFIG_PACKAGE_luci-i18n-ocserv-uk=m +CONFIG_PACKAGE_luci-i18n-ocserv-vi=m +CONFIG_PACKAGE_luci-i18n-ocserv-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ocserv-zh-tw=m +CONFIG_PACKAGE_luci-i18n-olsr-ar=m +CONFIG_PACKAGE_luci-i18n-olsr-bg=m +CONFIG_PACKAGE_luci-i18n-olsr-bn=m +CONFIG_PACKAGE_luci-i18n-olsr-ca=m +CONFIG_PACKAGE_luci-i18n-olsr-cs=m +CONFIG_PACKAGE_luci-i18n-olsr-da=m +CONFIG_PACKAGE_luci-i18n-olsr-de=m +CONFIG_PACKAGE_luci-i18n-olsr-el=m +CONFIG_PACKAGE_luci-i18n-olsr-es=m +CONFIG_PACKAGE_luci-i18n-olsr-fi=m +CONFIG_PACKAGE_luci-i18n-olsr-fr=m +CONFIG_PACKAGE_luci-i18n-olsr-he=m +CONFIG_PACKAGE_luci-i18n-olsr-hi=m +CONFIG_PACKAGE_luci-i18n-olsr-hu=m +CONFIG_PACKAGE_luci-i18n-olsr-it=m +CONFIG_PACKAGE_luci-i18n-olsr-ja=m +CONFIG_PACKAGE_luci-i18n-olsr-ko=m +CONFIG_PACKAGE_luci-i18n-olsr-lt=m +CONFIG_PACKAGE_luci-i18n-olsr-mr=m +CONFIG_PACKAGE_luci-i18n-olsr-ms=m +CONFIG_PACKAGE_luci-i18n-olsr-nl=m +CONFIG_PACKAGE_luci-i18n-olsr-no=m +CONFIG_PACKAGE_luci-i18n-olsr-pl=m +CONFIG_PACKAGE_luci-i18n-olsr-pt=m +CONFIG_PACKAGE_luci-i18n-olsr-pt-br=m +CONFIG_PACKAGE_luci-i18n-olsr-ro=m +CONFIG_PACKAGE_luci-i18n-olsr-ru=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ar=m +CONFIG_PACKAGE_luci-i18n-olsr-services-bg=m +CONFIG_PACKAGE_luci-i18n-olsr-services-bn=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ca=m +CONFIG_PACKAGE_luci-i18n-olsr-services-cs=m +CONFIG_PACKAGE_luci-i18n-olsr-services-da=m +CONFIG_PACKAGE_luci-i18n-olsr-services-de=m +CONFIG_PACKAGE_luci-i18n-olsr-services-el=m +CONFIG_PACKAGE_luci-i18n-olsr-services-es=m +CONFIG_PACKAGE_luci-i18n-olsr-services-fi=m +CONFIG_PACKAGE_luci-i18n-olsr-services-fr=m +CONFIG_PACKAGE_luci-i18n-olsr-services-he=m +CONFIG_PACKAGE_luci-i18n-olsr-services-hi=m +CONFIG_PACKAGE_luci-i18n-olsr-services-hu=m +CONFIG_PACKAGE_luci-i18n-olsr-services-it=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ja=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ko=m +CONFIG_PACKAGE_luci-i18n-olsr-services-lt=m +CONFIG_PACKAGE_luci-i18n-olsr-services-mr=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ms=m +CONFIG_PACKAGE_luci-i18n-olsr-services-nl=m +CONFIG_PACKAGE_luci-i18n-olsr-services-no=m +CONFIG_PACKAGE_luci-i18n-olsr-services-pl=m +CONFIG_PACKAGE_luci-i18n-olsr-services-pt=m +CONFIG_PACKAGE_luci-i18n-olsr-services-pt-br=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ro=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ru=m +CONFIG_PACKAGE_luci-i18n-olsr-services-sk=m +CONFIG_PACKAGE_luci-i18n-olsr-services-sv=m +CONFIG_PACKAGE_luci-i18n-olsr-services-tr=m +CONFIG_PACKAGE_luci-i18n-olsr-services-uk=m +CONFIG_PACKAGE_luci-i18n-olsr-services-vi=m +CONFIG_PACKAGE_luci-i18n-olsr-services-zh-cn=m +CONFIG_PACKAGE_luci-i18n-olsr-services-zh-tw=m +CONFIG_PACKAGE_luci-i18n-olsr-sk=m +CONFIG_PACKAGE_luci-i18n-olsr-sv=m +CONFIG_PACKAGE_luci-i18n-olsr-tr=m +CONFIG_PACKAGE_luci-i18n-olsr-uk=m +CONFIG_PACKAGE_luci-i18n-olsr-vi=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ar=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-bg=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-bn=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ca=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-cs=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-da=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-de=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-el=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-es=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-fi=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-fr=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-he=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-hi=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-hu=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-it=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ja=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ko=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-lt=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-mr=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ms=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-nl=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-no=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-pl=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-pt=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-pt-br=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ro=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ru=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-sk=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-sv=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-tr=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-uk=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-vi=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-zh-cn=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-zh-tw=m +CONFIG_PACKAGE_luci-i18n-olsr-zh-cn=m +CONFIG_PACKAGE_luci-i18n-olsr-zh-tw=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ar=m +CONFIG_PACKAGE_luci-i18n-omcproxy-bg=m +CONFIG_PACKAGE_luci-i18n-omcproxy-bn=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ca=m +CONFIG_PACKAGE_luci-i18n-omcproxy-cs=m +CONFIG_PACKAGE_luci-i18n-omcproxy-da=m +CONFIG_PACKAGE_luci-i18n-omcproxy-de=m +CONFIG_PACKAGE_luci-i18n-omcproxy-el=m +CONFIG_PACKAGE_luci-i18n-omcproxy-es=m +CONFIG_PACKAGE_luci-i18n-omcproxy-fi=m +CONFIG_PACKAGE_luci-i18n-omcproxy-fr=m +CONFIG_PACKAGE_luci-i18n-omcproxy-he=m +CONFIG_PACKAGE_luci-i18n-omcproxy-hi=m +CONFIG_PACKAGE_luci-i18n-omcproxy-hu=m +CONFIG_PACKAGE_luci-i18n-omcproxy-it=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ja=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ko=m +CONFIG_PACKAGE_luci-i18n-omcproxy-lt=m +CONFIG_PACKAGE_luci-i18n-omcproxy-mr=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ms=m +CONFIG_PACKAGE_luci-i18n-omcproxy-nl=m +CONFIG_PACKAGE_luci-i18n-omcproxy-no=m +CONFIG_PACKAGE_luci-i18n-omcproxy-pl=m +CONFIG_PACKAGE_luci-i18n-omcproxy-pt=m +CONFIG_PACKAGE_luci-i18n-omcproxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ro=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ru=m +CONFIG_PACKAGE_luci-i18n-omcproxy-sk=m +CONFIG_PACKAGE_luci-i18n-omcproxy-sv=m +CONFIG_PACKAGE_luci-i18n-omcproxy-tr=m +CONFIG_PACKAGE_luci-i18n-omcproxy-uk=m +CONFIG_PACKAGE_luci-i18n-omcproxy-vi=m +CONFIG_PACKAGE_luci-i18n-omcproxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-omcproxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-openvpn-ar=m +CONFIG_PACKAGE_luci-i18n-openvpn-bg=m +CONFIG_PACKAGE_luci-i18n-openvpn-bn=m +CONFIG_PACKAGE_luci-i18n-openvpn-ca=m +CONFIG_PACKAGE_luci-i18n-openvpn-cs=m +CONFIG_PACKAGE_luci-i18n-openvpn-da=m +CONFIG_PACKAGE_luci-i18n-openvpn-de=m +CONFIG_PACKAGE_luci-i18n-openvpn-el=m +CONFIG_PACKAGE_luci-i18n-openvpn-es=m +CONFIG_PACKAGE_luci-i18n-openvpn-fi=m +CONFIG_PACKAGE_luci-i18n-openvpn-fr=m +CONFIG_PACKAGE_luci-i18n-openvpn-he=m +CONFIG_PACKAGE_luci-i18n-openvpn-hi=m +CONFIG_PACKAGE_luci-i18n-openvpn-hu=m +CONFIG_PACKAGE_luci-i18n-openvpn-it=m +CONFIG_PACKAGE_luci-i18n-openvpn-ja=m +CONFIG_PACKAGE_luci-i18n-openvpn-ko=m +CONFIG_PACKAGE_luci-i18n-openvpn-lt=m +CONFIG_PACKAGE_luci-i18n-openvpn-mr=m +CONFIG_PACKAGE_luci-i18n-openvpn-ms=m +CONFIG_PACKAGE_luci-i18n-openvpn-nl=m +CONFIG_PACKAGE_luci-i18n-openvpn-no=m +CONFIG_PACKAGE_luci-i18n-openvpn-pl=m +CONFIG_PACKAGE_luci-i18n-openvpn-pt=m +CONFIG_PACKAGE_luci-i18n-openvpn-pt-br=m +CONFIG_PACKAGE_luci-i18n-openvpn-ro=m +CONFIG_PACKAGE_luci-i18n-openvpn-ru=m +CONFIG_PACKAGE_luci-i18n-openvpn-sk=m +CONFIG_PACKAGE_luci-i18n-openvpn-sv=m +CONFIG_PACKAGE_luci-i18n-openvpn-tr=m +CONFIG_PACKAGE_luci-i18n-openvpn-uk=m +CONFIG_PACKAGE_luci-i18n-openvpn-vi=m +CONFIG_PACKAGE_luci-i18n-openvpn-zh-cn=m +CONFIG_PACKAGE_luci-i18n-openvpn-zh-tw=m +CONFIG_PACKAGE_luci-i18n-openwisp-ar=m +CONFIG_PACKAGE_luci-i18n-openwisp-bg=m +CONFIG_PACKAGE_luci-i18n-openwisp-bn=m +CONFIG_PACKAGE_luci-i18n-openwisp-ca=m +CONFIG_PACKAGE_luci-i18n-openwisp-cs=m +CONFIG_PACKAGE_luci-i18n-openwisp-da=m +CONFIG_PACKAGE_luci-i18n-openwisp-de=m +CONFIG_PACKAGE_luci-i18n-openwisp-el=m +CONFIG_PACKAGE_luci-i18n-openwisp-es=m +CONFIG_PACKAGE_luci-i18n-openwisp-fi=m +CONFIG_PACKAGE_luci-i18n-openwisp-fr=m +CONFIG_PACKAGE_luci-i18n-openwisp-he=m +CONFIG_PACKAGE_luci-i18n-openwisp-hi=m +CONFIG_PACKAGE_luci-i18n-openwisp-hu=m +CONFIG_PACKAGE_luci-i18n-openwisp-it=m +CONFIG_PACKAGE_luci-i18n-openwisp-ja=m +CONFIG_PACKAGE_luci-i18n-openwisp-ko=m +CONFIG_PACKAGE_luci-i18n-openwisp-lt=m +CONFIG_PACKAGE_luci-i18n-openwisp-mr=m +CONFIG_PACKAGE_luci-i18n-openwisp-ms=m +CONFIG_PACKAGE_luci-i18n-openwisp-nl=m +CONFIG_PACKAGE_luci-i18n-openwisp-no=m +CONFIG_PACKAGE_luci-i18n-openwisp-pl=m +CONFIG_PACKAGE_luci-i18n-openwisp-pt=m +CONFIG_PACKAGE_luci-i18n-openwisp-pt-br=m +CONFIG_PACKAGE_luci-i18n-openwisp-ro=m +CONFIG_PACKAGE_luci-i18n-openwisp-ru=m +CONFIG_PACKAGE_luci-i18n-openwisp-sk=m +CONFIG_PACKAGE_luci-i18n-openwisp-sv=m +CONFIG_PACKAGE_luci-i18n-openwisp-tr=m +CONFIG_PACKAGE_luci-i18n-openwisp-uk=m +CONFIG_PACKAGE_luci-i18n-openwisp-vi=m +CONFIG_PACKAGE_luci-i18n-openwisp-zh-cn=m +CONFIG_PACKAGE_luci-i18n-openwisp-zh-tw=m +CONFIG_PACKAGE_luci-i18n-opkg-ar=m +CONFIG_PACKAGE_luci-i18n-opkg-bg=m +CONFIG_PACKAGE_luci-i18n-opkg-bn=m +CONFIG_PACKAGE_luci-i18n-opkg-ca=m +CONFIG_PACKAGE_luci-i18n-opkg-cs=m +CONFIG_PACKAGE_luci-i18n-opkg-da=m +CONFIG_PACKAGE_luci-i18n-opkg-de=m +CONFIG_PACKAGE_luci-i18n-opkg-el=m +CONFIG_PACKAGE_luci-i18n-opkg-es=m +CONFIG_PACKAGE_luci-i18n-opkg-fi=m +CONFIG_PACKAGE_luci-i18n-opkg-fr=m +CONFIG_PACKAGE_luci-i18n-opkg-he=m +CONFIG_PACKAGE_luci-i18n-opkg-hi=m +CONFIG_PACKAGE_luci-i18n-opkg-hu=m +CONFIG_PACKAGE_luci-i18n-opkg-it=m +CONFIG_PACKAGE_luci-i18n-opkg-ja=m +CONFIG_PACKAGE_luci-i18n-opkg-ko=m +CONFIG_PACKAGE_luci-i18n-opkg-lt=m +CONFIG_PACKAGE_luci-i18n-opkg-mr=m +CONFIG_PACKAGE_luci-i18n-opkg-ms=m +CONFIG_PACKAGE_luci-i18n-opkg-nl=m +CONFIG_PACKAGE_luci-i18n-opkg-no=m +CONFIG_PACKAGE_luci-i18n-opkg-pl=m +CONFIG_PACKAGE_luci-i18n-opkg-pt=m +CONFIG_PACKAGE_luci-i18n-opkg-pt-br=m +CONFIG_PACKAGE_luci-i18n-opkg-ro=m +CONFIG_PACKAGE_luci-i18n-opkg-ru=m +CONFIG_PACKAGE_luci-i18n-opkg-sk=m +CONFIG_PACKAGE_luci-i18n-opkg-sv=m +CONFIG_PACKAGE_luci-i18n-opkg-tr=m +CONFIG_PACKAGE_luci-i18n-opkg-uk=m +CONFIG_PACKAGE_luci-i18n-opkg-vi=m +CONFIG_PACKAGE_luci-i18n-opkg-zh-cn=m +CONFIG_PACKAGE_luci-i18n-opkg-zh-tw=m +CONFIG_PACKAGE_luci-i18n-p910nd-ar=m +CONFIG_PACKAGE_luci-i18n-p910nd-bg=m +CONFIG_PACKAGE_luci-i18n-p910nd-bn=m +CONFIG_PACKAGE_luci-i18n-p910nd-ca=m +CONFIG_PACKAGE_luci-i18n-p910nd-cs=m +CONFIG_PACKAGE_luci-i18n-p910nd-da=m +CONFIG_PACKAGE_luci-i18n-p910nd-de=m +CONFIG_PACKAGE_luci-i18n-p910nd-el=m +CONFIG_PACKAGE_luci-i18n-p910nd-es=m +CONFIG_PACKAGE_luci-i18n-p910nd-fi=m +CONFIG_PACKAGE_luci-i18n-p910nd-fr=m +CONFIG_PACKAGE_luci-i18n-p910nd-he=m +CONFIG_PACKAGE_luci-i18n-p910nd-hi=m +CONFIG_PACKAGE_luci-i18n-p910nd-hu=m +CONFIG_PACKAGE_luci-i18n-p910nd-it=m +CONFIG_PACKAGE_luci-i18n-p910nd-ja=m +CONFIG_PACKAGE_luci-i18n-p910nd-ko=m +CONFIG_PACKAGE_luci-i18n-p910nd-lt=m +CONFIG_PACKAGE_luci-i18n-p910nd-mr=m +CONFIG_PACKAGE_luci-i18n-p910nd-ms=m +CONFIG_PACKAGE_luci-i18n-p910nd-nl=m +CONFIG_PACKAGE_luci-i18n-p910nd-no=m +CONFIG_PACKAGE_luci-i18n-p910nd-pl=m +CONFIG_PACKAGE_luci-i18n-p910nd-pt=m +CONFIG_PACKAGE_luci-i18n-p910nd-pt-br=m +CONFIG_PACKAGE_luci-i18n-p910nd-ro=m +CONFIG_PACKAGE_luci-i18n-p910nd-ru=m +CONFIG_PACKAGE_luci-i18n-p910nd-sk=m +CONFIG_PACKAGE_luci-i18n-p910nd-sv=m +CONFIG_PACKAGE_luci-i18n-p910nd-tr=m +CONFIG_PACKAGE_luci-i18n-p910nd-uk=m +CONFIG_PACKAGE_luci-i18n-p910nd-vi=m +CONFIG_PACKAGE_luci-i18n-p910nd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-p910nd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ar=m +CONFIG_PACKAGE_luci-i18n-pagekitec-bg=m +CONFIG_PACKAGE_luci-i18n-pagekitec-bn=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ca=m +CONFIG_PACKAGE_luci-i18n-pagekitec-cs=m +CONFIG_PACKAGE_luci-i18n-pagekitec-da=m +CONFIG_PACKAGE_luci-i18n-pagekitec-de=m +CONFIG_PACKAGE_luci-i18n-pagekitec-el=m +CONFIG_PACKAGE_luci-i18n-pagekitec-es=m +CONFIG_PACKAGE_luci-i18n-pagekitec-fi=m +CONFIG_PACKAGE_luci-i18n-pagekitec-fr=m +CONFIG_PACKAGE_luci-i18n-pagekitec-he=m +CONFIG_PACKAGE_luci-i18n-pagekitec-hi=m +CONFIG_PACKAGE_luci-i18n-pagekitec-hu=m +CONFIG_PACKAGE_luci-i18n-pagekitec-it=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ja=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ko=m +CONFIG_PACKAGE_luci-i18n-pagekitec-lt=m +CONFIG_PACKAGE_luci-i18n-pagekitec-mr=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ms=m +CONFIG_PACKAGE_luci-i18n-pagekitec-nl=m +CONFIG_PACKAGE_luci-i18n-pagekitec-no=m +CONFIG_PACKAGE_luci-i18n-pagekitec-pl=m +CONFIG_PACKAGE_luci-i18n-pagekitec-pt=m +CONFIG_PACKAGE_luci-i18n-pagekitec-pt-br=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ro=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ru=m +CONFIG_PACKAGE_luci-i18n-pagekitec-sk=m +CONFIG_PACKAGE_luci-i18n-pagekitec-sv=m +CONFIG_PACKAGE_luci-i18n-pagekitec-tr=m +CONFIG_PACKAGE_luci-i18n-pagekitec-uk=m +CONFIG_PACKAGE_luci-i18n-pagekitec-vi=m +CONFIG_PACKAGE_luci-i18n-pagekitec-zh-cn=m +CONFIG_PACKAGE_luci-i18n-pagekitec-zh-tw=m +CONFIG_PACKAGE_luci-i18n-pbr-ar=m +CONFIG_PACKAGE_luci-i18n-pbr-bg=m +CONFIG_PACKAGE_luci-i18n-pbr-bn=m +CONFIG_PACKAGE_luci-i18n-pbr-ca=m +CONFIG_PACKAGE_luci-i18n-pbr-cs=m +CONFIG_PACKAGE_luci-i18n-pbr-da=m +CONFIG_PACKAGE_luci-i18n-pbr-de=m +CONFIG_PACKAGE_luci-i18n-pbr-el=m +CONFIG_PACKAGE_luci-i18n-pbr-es=m +CONFIG_PACKAGE_luci-i18n-pbr-fi=m +CONFIG_PACKAGE_luci-i18n-pbr-fr=m +CONFIG_PACKAGE_luci-i18n-pbr-he=m +CONFIG_PACKAGE_luci-i18n-pbr-hi=m +CONFIG_PACKAGE_luci-i18n-pbr-hu=m +CONFIG_PACKAGE_luci-i18n-pbr-it=m +CONFIG_PACKAGE_luci-i18n-pbr-ja=m +CONFIG_PACKAGE_luci-i18n-pbr-ko=m +CONFIG_PACKAGE_luci-i18n-pbr-lt=m +CONFIG_PACKAGE_luci-i18n-pbr-mr=m +CONFIG_PACKAGE_luci-i18n-pbr-ms=m +CONFIG_PACKAGE_luci-i18n-pbr-nl=m +CONFIG_PACKAGE_luci-i18n-pbr-no=m +CONFIG_PACKAGE_luci-i18n-pbr-pl=m +CONFIG_PACKAGE_luci-i18n-pbr-pt=m +CONFIG_PACKAGE_luci-i18n-pbr-pt-br=m +CONFIG_PACKAGE_luci-i18n-pbr-ro=m +CONFIG_PACKAGE_luci-i18n-pbr-ru=m +CONFIG_PACKAGE_luci-i18n-pbr-sk=m +CONFIG_PACKAGE_luci-i18n-pbr-sv=m +CONFIG_PACKAGE_luci-i18n-pbr-tr=m +CONFIG_PACKAGE_luci-i18n-pbr-uk=m +CONFIG_PACKAGE_luci-i18n-pbr-vi=m +CONFIG_PACKAGE_luci-i18n-pbr-zh-cn=m +CONFIG_PACKAGE_luci-i18n-pbr-zh-tw=m +CONFIG_PACKAGE_luci-i18n-polipo-ar=m +CONFIG_PACKAGE_luci-i18n-polipo-bg=m +CONFIG_PACKAGE_luci-i18n-polipo-bn=m +CONFIG_PACKAGE_luci-i18n-polipo-ca=m +CONFIG_PACKAGE_luci-i18n-polipo-cs=m +CONFIG_PACKAGE_luci-i18n-polipo-da=m +CONFIG_PACKAGE_luci-i18n-polipo-de=m +CONFIG_PACKAGE_luci-i18n-polipo-el=m +CONFIG_PACKAGE_luci-i18n-polipo-es=m +CONFIG_PACKAGE_luci-i18n-polipo-fi=m +CONFIG_PACKAGE_luci-i18n-polipo-fr=m +CONFIG_PACKAGE_luci-i18n-polipo-he=m +CONFIG_PACKAGE_luci-i18n-polipo-hi=m +CONFIG_PACKAGE_luci-i18n-polipo-hu=m +CONFIG_PACKAGE_luci-i18n-polipo-it=m +CONFIG_PACKAGE_luci-i18n-polipo-ja=m +CONFIG_PACKAGE_luci-i18n-polipo-ko=m +CONFIG_PACKAGE_luci-i18n-polipo-lt=m +CONFIG_PACKAGE_luci-i18n-polipo-mr=m +CONFIG_PACKAGE_luci-i18n-polipo-ms=m +CONFIG_PACKAGE_luci-i18n-polipo-nl=m +CONFIG_PACKAGE_luci-i18n-polipo-no=m +CONFIG_PACKAGE_luci-i18n-polipo-pl=m +CONFIG_PACKAGE_luci-i18n-polipo-pt=m +CONFIG_PACKAGE_luci-i18n-polipo-pt-br=m +CONFIG_PACKAGE_luci-i18n-polipo-ro=m +CONFIG_PACKAGE_luci-i18n-polipo-ru=m +CONFIG_PACKAGE_luci-i18n-polipo-sk=m +CONFIG_PACKAGE_luci-i18n-polipo-sv=m +CONFIG_PACKAGE_luci-i18n-polipo-tr=m +CONFIG_PACKAGE_luci-i18n-polipo-uk=m +CONFIG_PACKAGE_luci-i18n-polipo-vi=m +CONFIG_PACKAGE_luci-i18n-polipo-zh-cn=m +CONFIG_PACKAGE_luci-i18n-polipo-zh-tw=m +CONFIG_PACKAGE_luci-i18n-privoxy-ar=m +CONFIG_PACKAGE_luci-i18n-privoxy-bg=m +CONFIG_PACKAGE_luci-i18n-privoxy-bn=m +CONFIG_PACKAGE_luci-i18n-privoxy-ca=m +CONFIG_PACKAGE_luci-i18n-privoxy-cs=m +CONFIG_PACKAGE_luci-i18n-privoxy-da=m +CONFIG_PACKAGE_luci-i18n-privoxy-de=m +CONFIG_PACKAGE_luci-i18n-privoxy-el=m +CONFIG_PACKAGE_luci-i18n-privoxy-es=m +CONFIG_PACKAGE_luci-i18n-privoxy-fi=m +CONFIG_PACKAGE_luci-i18n-privoxy-fr=m +CONFIG_PACKAGE_luci-i18n-privoxy-he=m +CONFIG_PACKAGE_luci-i18n-privoxy-hi=m +CONFIG_PACKAGE_luci-i18n-privoxy-hu=m +CONFIG_PACKAGE_luci-i18n-privoxy-it=m +CONFIG_PACKAGE_luci-i18n-privoxy-ja=m +CONFIG_PACKAGE_luci-i18n-privoxy-ko=m +CONFIG_PACKAGE_luci-i18n-privoxy-lt=m +CONFIG_PACKAGE_luci-i18n-privoxy-mr=m +CONFIG_PACKAGE_luci-i18n-privoxy-ms=m +CONFIG_PACKAGE_luci-i18n-privoxy-nl=m +CONFIG_PACKAGE_luci-i18n-privoxy-no=m +CONFIG_PACKAGE_luci-i18n-privoxy-pl=m +CONFIG_PACKAGE_luci-i18n-privoxy-pt=m +CONFIG_PACKAGE_luci-i18n-privoxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-privoxy-ro=m +CONFIG_PACKAGE_luci-i18n-privoxy-ru=m +CONFIG_PACKAGE_luci-i18n-privoxy-sk=m +CONFIG_PACKAGE_luci-i18n-privoxy-sv=m +CONFIG_PACKAGE_luci-i18n-privoxy-tr=m +CONFIG_PACKAGE_luci-i18n-privoxy-uk=m +CONFIG_PACKAGE_luci-i18n-privoxy-vi=m +CONFIG_PACKAGE_luci-i18n-privoxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-privoxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-qos-ar=m +CONFIG_PACKAGE_luci-i18n-qos-bg=m +CONFIG_PACKAGE_luci-i18n-qos-bn=m +CONFIG_PACKAGE_luci-i18n-qos-ca=m +CONFIG_PACKAGE_luci-i18n-qos-cs=m +CONFIG_PACKAGE_luci-i18n-qos-da=m +CONFIG_PACKAGE_luci-i18n-qos-de=m +CONFIG_PACKAGE_luci-i18n-qos-el=m +CONFIG_PACKAGE_luci-i18n-qos-es=m +CONFIG_PACKAGE_luci-i18n-qos-fi=m +CONFIG_PACKAGE_luci-i18n-qos-fr=m +CONFIG_PACKAGE_luci-i18n-qos-he=m +CONFIG_PACKAGE_luci-i18n-qos-hi=m +CONFIG_PACKAGE_luci-i18n-qos-hu=m +CONFIG_PACKAGE_luci-i18n-qos-it=m +CONFIG_PACKAGE_luci-i18n-qos-ja=m +CONFIG_PACKAGE_luci-i18n-qos-ko=m +CONFIG_PACKAGE_luci-i18n-qos-lt=m +CONFIG_PACKAGE_luci-i18n-qos-mr=m +CONFIG_PACKAGE_luci-i18n-qos-ms=m +CONFIG_PACKAGE_luci-i18n-qos-nl=m +CONFIG_PACKAGE_luci-i18n-qos-no=m +CONFIG_PACKAGE_luci-i18n-qos-pl=m +CONFIG_PACKAGE_luci-i18n-qos-pt=m +CONFIG_PACKAGE_luci-i18n-qos-pt-br=m +CONFIG_PACKAGE_luci-i18n-qos-ro=m +CONFIG_PACKAGE_luci-i18n-qos-ru=m +CONFIG_PACKAGE_luci-i18n-qos-sk=m +CONFIG_PACKAGE_luci-i18n-qos-sv=m +CONFIG_PACKAGE_luci-i18n-qos-tr=m +CONFIG_PACKAGE_luci-i18n-qos-uk=m +CONFIG_PACKAGE_luci-i18n-qos-vi=m +CONFIG_PACKAGE_luci-i18n-qos-zh-cn=m +CONFIG_PACKAGE_luci-i18n-qos-zh-tw=m +CONFIG_PACKAGE_luci-i18n-radicale-ar=m +CONFIG_PACKAGE_luci-i18n-radicale-bg=m +CONFIG_PACKAGE_luci-i18n-radicale-bn=m +CONFIG_PACKAGE_luci-i18n-radicale-ca=m +CONFIG_PACKAGE_luci-i18n-radicale-cs=m +CONFIG_PACKAGE_luci-i18n-radicale-da=m +CONFIG_PACKAGE_luci-i18n-radicale-de=m +CONFIG_PACKAGE_luci-i18n-radicale-el=m +CONFIG_PACKAGE_luci-i18n-radicale-es=m +CONFIG_PACKAGE_luci-i18n-radicale-fi=m +CONFIG_PACKAGE_luci-i18n-radicale-fr=m +CONFIG_PACKAGE_luci-i18n-radicale-he=m +CONFIG_PACKAGE_luci-i18n-radicale-hi=m +CONFIG_PACKAGE_luci-i18n-radicale-hu=m +CONFIG_PACKAGE_luci-i18n-radicale-it=m +CONFIG_PACKAGE_luci-i18n-radicale-ja=m +CONFIG_PACKAGE_luci-i18n-radicale-ko=m +CONFIG_PACKAGE_luci-i18n-radicale-lt=m +CONFIG_PACKAGE_luci-i18n-radicale-mr=m +CONFIG_PACKAGE_luci-i18n-radicale-ms=m +CONFIG_PACKAGE_luci-i18n-radicale-nl=m +CONFIG_PACKAGE_luci-i18n-radicale-no=m +CONFIG_PACKAGE_luci-i18n-radicale-pl=m +CONFIG_PACKAGE_luci-i18n-radicale-pt=m +CONFIG_PACKAGE_luci-i18n-radicale-pt-br=m +CONFIG_PACKAGE_luci-i18n-radicale-ro=m +CONFIG_PACKAGE_luci-i18n-radicale-ru=m +CONFIG_PACKAGE_luci-i18n-radicale-sk=m +CONFIG_PACKAGE_luci-i18n-radicale-sv=m +CONFIG_PACKAGE_luci-i18n-radicale-tr=m +CONFIG_PACKAGE_luci-i18n-radicale-uk=m +CONFIG_PACKAGE_luci-i18n-radicale-vi=m +CONFIG_PACKAGE_luci-i18n-radicale-zh-cn=m +CONFIG_PACKAGE_luci-i18n-radicale-zh-tw=m +CONFIG_PACKAGE_luci-i18n-radicale2-ar=m +CONFIG_PACKAGE_luci-i18n-radicale2-bg=m +CONFIG_PACKAGE_luci-i18n-radicale2-bn=m +CONFIG_PACKAGE_luci-i18n-radicale2-ca=m +CONFIG_PACKAGE_luci-i18n-radicale2-cs=m +CONFIG_PACKAGE_luci-i18n-radicale2-da=m +CONFIG_PACKAGE_luci-i18n-radicale2-de=m +CONFIG_PACKAGE_luci-i18n-radicale2-el=m +CONFIG_PACKAGE_luci-i18n-radicale2-es=m +CONFIG_PACKAGE_luci-i18n-radicale2-fi=m +CONFIG_PACKAGE_luci-i18n-radicale2-fr=m +CONFIG_PACKAGE_luci-i18n-radicale2-he=m +CONFIG_PACKAGE_luci-i18n-radicale2-hi=m +CONFIG_PACKAGE_luci-i18n-radicale2-hu=m +CONFIG_PACKAGE_luci-i18n-radicale2-it=m +CONFIG_PACKAGE_luci-i18n-radicale2-ja=m +CONFIG_PACKAGE_luci-i18n-radicale2-ko=m +CONFIG_PACKAGE_luci-i18n-radicale2-lt=m +CONFIG_PACKAGE_luci-i18n-radicale2-mr=m +CONFIG_PACKAGE_luci-i18n-radicale2-ms=m +CONFIG_PACKAGE_luci-i18n-radicale2-nl=m +CONFIG_PACKAGE_luci-i18n-radicale2-no=m +CONFIG_PACKAGE_luci-i18n-radicale2-pl=m +CONFIG_PACKAGE_luci-i18n-radicale2-pt=m +CONFIG_PACKAGE_luci-i18n-radicale2-pt-br=m +CONFIG_PACKAGE_luci-i18n-radicale2-ro=m +CONFIG_PACKAGE_luci-i18n-radicale2-ru=m +CONFIG_PACKAGE_luci-i18n-radicale2-sk=m +CONFIG_PACKAGE_luci-i18n-radicale2-sv=m +CONFIG_PACKAGE_luci-i18n-radicale2-tr=m +CONFIG_PACKAGE_luci-i18n-radicale2-uk=m +CONFIG_PACKAGE_luci-i18n-radicale2-vi=m +CONFIG_PACKAGE_luci-i18n-radicale2-zh-cn=m +CONFIG_PACKAGE_luci-i18n-radicale2-zh-tw=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ar=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-bg=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-bn=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ca=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-cs=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-da=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-de=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-el=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-es=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-fi=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-fr=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-he=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-hi=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-hu=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-it=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ja=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ko=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-lt=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-mr=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ms=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-nl=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-no=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-pl=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-pt=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-pt-br=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ro=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ru=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-sk=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-sv=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-tr=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-uk=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-vi=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-zh-cn=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-zh-tw=m +CONFIG_PACKAGE_luci-i18n-samba4-ar=m +CONFIG_PACKAGE_luci-i18n-samba4-bg=m +CONFIG_PACKAGE_luci-i18n-samba4-bn=m +CONFIG_PACKAGE_luci-i18n-samba4-ca=m +CONFIG_PACKAGE_luci-i18n-samba4-cs=m +CONFIG_PACKAGE_luci-i18n-samba4-da=m +CONFIG_PACKAGE_luci-i18n-samba4-de=m +CONFIG_PACKAGE_luci-i18n-samba4-el=m +CONFIG_PACKAGE_luci-i18n-samba4-es=m +CONFIG_PACKAGE_luci-i18n-samba4-fi=m +CONFIG_PACKAGE_luci-i18n-samba4-fr=m +CONFIG_PACKAGE_luci-i18n-samba4-he=m +CONFIG_PACKAGE_luci-i18n-samba4-hi=m +CONFIG_PACKAGE_luci-i18n-samba4-hu=m +CONFIG_PACKAGE_luci-i18n-samba4-it=m +CONFIG_PACKAGE_luci-i18n-samba4-ja=m +CONFIG_PACKAGE_luci-i18n-samba4-ko=m +CONFIG_PACKAGE_luci-i18n-samba4-lt=m +CONFIG_PACKAGE_luci-i18n-samba4-mr=m +CONFIG_PACKAGE_luci-i18n-samba4-ms=m +CONFIG_PACKAGE_luci-i18n-samba4-nl=m +CONFIG_PACKAGE_luci-i18n-samba4-no=m +CONFIG_PACKAGE_luci-i18n-samba4-pl=m +CONFIG_PACKAGE_luci-i18n-samba4-pt=m +CONFIG_PACKAGE_luci-i18n-samba4-pt-br=m +CONFIG_PACKAGE_luci-i18n-samba4-ro=m +CONFIG_PACKAGE_luci-i18n-samba4-ru=m +CONFIG_PACKAGE_luci-i18n-samba4-sk=m +CONFIG_PACKAGE_luci-i18n-samba4-sv=m +CONFIG_PACKAGE_luci-i18n-samba4-tr=m +CONFIG_PACKAGE_luci-i18n-samba4-uk=m +CONFIG_PACKAGE_luci-i18n-samba4-vi=m +CONFIG_PACKAGE_luci-i18n-samba4-zh-cn=m +CONFIG_PACKAGE_luci-i18n-samba4-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ser2net-ar=m +CONFIG_PACKAGE_luci-i18n-ser2net-bg=m +CONFIG_PACKAGE_luci-i18n-ser2net-bn=m +CONFIG_PACKAGE_luci-i18n-ser2net-ca=m +CONFIG_PACKAGE_luci-i18n-ser2net-cs=m +CONFIG_PACKAGE_luci-i18n-ser2net-da=m +CONFIG_PACKAGE_luci-i18n-ser2net-de=m +CONFIG_PACKAGE_luci-i18n-ser2net-el=m +CONFIG_PACKAGE_luci-i18n-ser2net-es=m +CONFIG_PACKAGE_luci-i18n-ser2net-fi=m +CONFIG_PACKAGE_luci-i18n-ser2net-fr=m +CONFIG_PACKAGE_luci-i18n-ser2net-he=m +CONFIG_PACKAGE_luci-i18n-ser2net-hi=m +CONFIG_PACKAGE_luci-i18n-ser2net-hu=m +CONFIG_PACKAGE_luci-i18n-ser2net-it=m +CONFIG_PACKAGE_luci-i18n-ser2net-ja=m +CONFIG_PACKAGE_luci-i18n-ser2net-ko=m +CONFIG_PACKAGE_luci-i18n-ser2net-lt=m +CONFIG_PACKAGE_luci-i18n-ser2net-mr=m +CONFIG_PACKAGE_luci-i18n-ser2net-ms=m +CONFIG_PACKAGE_luci-i18n-ser2net-nl=m +CONFIG_PACKAGE_luci-i18n-ser2net-no=m +CONFIG_PACKAGE_luci-i18n-ser2net-pl=m +CONFIG_PACKAGE_luci-i18n-ser2net-pt=m +CONFIG_PACKAGE_luci-i18n-ser2net-pt-br=m +CONFIG_PACKAGE_luci-i18n-ser2net-ro=m +CONFIG_PACKAGE_luci-i18n-ser2net-ru=m +CONFIG_PACKAGE_luci-i18n-ser2net-sk=m +CONFIG_PACKAGE_luci-i18n-ser2net-sv=m +CONFIG_PACKAGE_luci-i18n-ser2net-tr=m +CONFIG_PACKAGE_luci-i18n-ser2net-uk=m +CONFIG_PACKAGE_luci-i18n-ser2net-vi=m +CONFIG_PACKAGE_luci-i18n-ser2net-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ser2net-zh-tw=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ar=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-bg=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-bn=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ca=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-cs=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-da=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-de=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-el=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-es=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-fi=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-fr=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-he=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-hi=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-hu=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-it=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ja=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ko=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-lt=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-mr=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ms=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-nl=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-no=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-pl=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-pt=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-pt-br=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ro=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ru=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-sk=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-sv=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-tr=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-uk=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-vi=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-zh-cn=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-zh-tw=m +CONFIG_PACKAGE_luci-i18n-smartdns-ar=m +CONFIG_PACKAGE_luci-i18n-smartdns-bg=m +CONFIG_PACKAGE_luci-i18n-smartdns-bn=m +CONFIG_PACKAGE_luci-i18n-smartdns-ca=m +CONFIG_PACKAGE_luci-i18n-smartdns-cs=m +CONFIG_PACKAGE_luci-i18n-smartdns-da=m +CONFIG_PACKAGE_luci-i18n-smartdns-de=m +CONFIG_PACKAGE_luci-i18n-smartdns-el=m +CONFIG_PACKAGE_luci-i18n-smartdns-es=m +CONFIG_PACKAGE_luci-i18n-smartdns-fi=m +CONFIG_PACKAGE_luci-i18n-smartdns-fr=m +CONFIG_PACKAGE_luci-i18n-smartdns-he=m +CONFIG_PACKAGE_luci-i18n-smartdns-hi=m +CONFIG_PACKAGE_luci-i18n-smartdns-hu=m +CONFIG_PACKAGE_luci-i18n-smartdns-it=m +CONFIG_PACKAGE_luci-i18n-smartdns-ja=m +CONFIG_PACKAGE_luci-i18n-smartdns-ko=m +CONFIG_PACKAGE_luci-i18n-smartdns-lt=m +CONFIG_PACKAGE_luci-i18n-smartdns-mr=m +CONFIG_PACKAGE_luci-i18n-smartdns-ms=m +CONFIG_PACKAGE_luci-i18n-smartdns-nl=m +CONFIG_PACKAGE_luci-i18n-smartdns-no=m +CONFIG_PACKAGE_luci-i18n-smartdns-pl=m +CONFIG_PACKAGE_luci-i18n-smartdns-pt=m +CONFIG_PACKAGE_luci-i18n-smartdns-pt-br=m +CONFIG_PACKAGE_luci-i18n-smartdns-ro=m +CONFIG_PACKAGE_luci-i18n-smartdns-ru=m +CONFIG_PACKAGE_luci-i18n-smartdns-sk=m +CONFIG_PACKAGE_luci-i18n-smartdns-sv=m +CONFIG_PACKAGE_luci-i18n-smartdns-tr=m +CONFIG_PACKAGE_luci-i18n-smartdns-uk=m +CONFIG_PACKAGE_luci-i18n-smartdns-vi=m +CONFIG_PACKAGE_luci-i18n-smartdns-zh-cn=m +CONFIG_PACKAGE_luci-i18n-smartdns-zh-tw=m +CONFIG_PACKAGE_luci-i18n-snmpd-ar=m +CONFIG_PACKAGE_luci-i18n-snmpd-bg=m +CONFIG_PACKAGE_luci-i18n-snmpd-bn=m +CONFIG_PACKAGE_luci-i18n-snmpd-ca=m +CONFIG_PACKAGE_luci-i18n-snmpd-cs=m +CONFIG_PACKAGE_luci-i18n-snmpd-da=m +CONFIG_PACKAGE_luci-i18n-snmpd-de=m +CONFIG_PACKAGE_luci-i18n-snmpd-el=m +CONFIG_PACKAGE_luci-i18n-snmpd-es=m +CONFIG_PACKAGE_luci-i18n-snmpd-fi=m +CONFIG_PACKAGE_luci-i18n-snmpd-fr=m +CONFIG_PACKAGE_luci-i18n-snmpd-he=m +CONFIG_PACKAGE_luci-i18n-snmpd-hi=m +CONFIG_PACKAGE_luci-i18n-snmpd-hu=m +CONFIG_PACKAGE_luci-i18n-snmpd-it=m +CONFIG_PACKAGE_luci-i18n-snmpd-ja=m +CONFIG_PACKAGE_luci-i18n-snmpd-ko=m +CONFIG_PACKAGE_luci-i18n-snmpd-lt=m +CONFIG_PACKAGE_luci-i18n-snmpd-mr=m +CONFIG_PACKAGE_luci-i18n-snmpd-ms=m +CONFIG_PACKAGE_luci-i18n-snmpd-nl=m +CONFIG_PACKAGE_luci-i18n-snmpd-no=m +CONFIG_PACKAGE_luci-i18n-snmpd-pl=m +CONFIG_PACKAGE_luci-i18n-snmpd-pt=m +CONFIG_PACKAGE_luci-i18n-snmpd-pt-br=m +CONFIG_PACKAGE_luci-i18n-snmpd-ro=m +CONFIG_PACKAGE_luci-i18n-snmpd-ru=m +CONFIG_PACKAGE_luci-i18n-snmpd-sk=m +CONFIG_PACKAGE_luci-i18n-snmpd-sv=m +CONFIG_PACKAGE_luci-i18n-snmpd-tr=m +CONFIG_PACKAGE_luci-i18n-snmpd-uk=m +CONFIG_PACKAGE_luci-i18n-snmpd-vi=m +CONFIG_PACKAGE_luci-i18n-snmpd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-snmpd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-splash-ar=m +CONFIG_PACKAGE_luci-i18n-splash-bg=m +CONFIG_PACKAGE_luci-i18n-splash-bn=m +CONFIG_PACKAGE_luci-i18n-splash-ca=m +CONFIG_PACKAGE_luci-i18n-splash-cs=m +CONFIG_PACKAGE_luci-i18n-splash-da=m +CONFIG_PACKAGE_luci-i18n-splash-de=m +CONFIG_PACKAGE_luci-i18n-splash-el=m +CONFIG_PACKAGE_luci-i18n-splash-es=m +CONFIG_PACKAGE_luci-i18n-splash-fi=m +CONFIG_PACKAGE_luci-i18n-splash-fr=m +CONFIG_PACKAGE_luci-i18n-splash-he=m +CONFIG_PACKAGE_luci-i18n-splash-hi=m +CONFIG_PACKAGE_luci-i18n-splash-hu=m +CONFIG_PACKAGE_luci-i18n-splash-it=m +CONFIG_PACKAGE_luci-i18n-splash-ja=m +CONFIG_PACKAGE_luci-i18n-splash-ko=m +CONFIG_PACKAGE_luci-i18n-splash-lt=m +CONFIG_PACKAGE_luci-i18n-splash-mr=m +CONFIG_PACKAGE_luci-i18n-splash-ms=m +CONFIG_PACKAGE_luci-i18n-splash-nl=m +CONFIG_PACKAGE_luci-i18n-splash-no=m +CONFIG_PACKAGE_luci-i18n-splash-pl=m +CONFIG_PACKAGE_luci-i18n-splash-pt=m +CONFIG_PACKAGE_luci-i18n-splash-pt-br=m +CONFIG_PACKAGE_luci-i18n-splash-ro=m +CONFIG_PACKAGE_luci-i18n-splash-ru=m +CONFIG_PACKAGE_luci-i18n-splash-sk=m +CONFIG_PACKAGE_luci-i18n-splash-sv=m +CONFIG_PACKAGE_luci-i18n-splash-tr=m +CONFIG_PACKAGE_luci-i18n-splash-uk=m +CONFIG_PACKAGE_luci-i18n-splash-vi=m +CONFIG_PACKAGE_luci-i18n-splash-zh-cn=m +CONFIG_PACKAGE_luci-i18n-splash-zh-tw=m +CONFIG_PACKAGE_luci-i18n-sqm-ar=m +CONFIG_PACKAGE_luci-i18n-sqm-bg=m +CONFIG_PACKAGE_luci-i18n-sqm-bn=m +CONFIG_PACKAGE_luci-i18n-sqm-ca=m +CONFIG_PACKAGE_luci-i18n-sqm-cs=m +CONFIG_PACKAGE_luci-i18n-sqm-da=m +CONFIG_PACKAGE_luci-i18n-sqm-de=m +CONFIG_PACKAGE_luci-i18n-sqm-el=m +CONFIG_PACKAGE_luci-i18n-sqm-es=m +CONFIG_PACKAGE_luci-i18n-sqm-fi=m +CONFIG_PACKAGE_luci-i18n-sqm-fr=m +CONFIG_PACKAGE_luci-i18n-sqm-he=m +CONFIG_PACKAGE_luci-i18n-sqm-hi=m +CONFIG_PACKAGE_luci-i18n-sqm-hu=m +CONFIG_PACKAGE_luci-i18n-sqm-it=m +CONFIG_PACKAGE_luci-i18n-sqm-ja=m +CONFIG_PACKAGE_luci-i18n-sqm-ko=m +CONFIG_PACKAGE_luci-i18n-sqm-lt=m +CONFIG_PACKAGE_luci-i18n-sqm-mr=m +CONFIG_PACKAGE_luci-i18n-sqm-ms=m +CONFIG_PACKAGE_luci-i18n-sqm-nl=m +CONFIG_PACKAGE_luci-i18n-sqm-no=m +CONFIG_PACKAGE_luci-i18n-sqm-pl=m +CONFIG_PACKAGE_luci-i18n-sqm-pt=m +CONFIG_PACKAGE_luci-i18n-sqm-pt-br=m +CONFIG_PACKAGE_luci-i18n-sqm-ro=m +CONFIG_PACKAGE_luci-i18n-sqm-ru=m +CONFIG_PACKAGE_luci-i18n-sqm-sk=m +CONFIG_PACKAGE_luci-i18n-sqm-sv=m +CONFIG_PACKAGE_luci-i18n-sqm-tr=m +CONFIG_PACKAGE_luci-i18n-sqm-uk=m +CONFIG_PACKAGE_luci-i18n-sqm-vi=m +CONFIG_PACKAGE_luci-i18n-sqm-zh-cn=m +CONFIG_PACKAGE_luci-i18n-sqm-zh-tw=m +CONFIG_PACKAGE_luci-i18n-squid-ar=m +CONFIG_PACKAGE_luci-i18n-squid-bg=m +CONFIG_PACKAGE_luci-i18n-squid-bn=m +CONFIG_PACKAGE_luci-i18n-squid-ca=m +CONFIG_PACKAGE_luci-i18n-squid-cs=m +CONFIG_PACKAGE_luci-i18n-squid-da=m +CONFIG_PACKAGE_luci-i18n-squid-de=m +CONFIG_PACKAGE_luci-i18n-squid-el=m +CONFIG_PACKAGE_luci-i18n-squid-es=m +CONFIG_PACKAGE_luci-i18n-squid-fi=m +CONFIG_PACKAGE_luci-i18n-squid-fr=m +CONFIG_PACKAGE_luci-i18n-squid-he=m +CONFIG_PACKAGE_luci-i18n-squid-hi=m +CONFIG_PACKAGE_luci-i18n-squid-hu=m +CONFIG_PACKAGE_luci-i18n-squid-it=m +CONFIG_PACKAGE_luci-i18n-squid-ja=m +CONFIG_PACKAGE_luci-i18n-squid-ko=m +CONFIG_PACKAGE_luci-i18n-squid-lt=m +CONFIG_PACKAGE_luci-i18n-squid-mr=m +CONFIG_PACKAGE_luci-i18n-squid-ms=m +CONFIG_PACKAGE_luci-i18n-squid-nl=m +CONFIG_PACKAGE_luci-i18n-squid-no=m +CONFIG_PACKAGE_luci-i18n-squid-pl=m +CONFIG_PACKAGE_luci-i18n-squid-pt=m +CONFIG_PACKAGE_luci-i18n-squid-pt-br=m +CONFIG_PACKAGE_luci-i18n-squid-ro=m +CONFIG_PACKAGE_luci-i18n-squid-ru=m +CONFIG_PACKAGE_luci-i18n-squid-sk=m +CONFIG_PACKAGE_luci-i18n-squid-sv=m +CONFIG_PACKAGE_luci-i18n-squid-tr=m +CONFIG_PACKAGE_luci-i18n-squid-uk=m +CONFIG_PACKAGE_luci-i18n-squid-vi=m +CONFIG_PACKAGE_luci-i18n-squid-zh-cn=m +CONFIG_PACKAGE_luci-i18n-squid-zh-tw=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ar=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-bg=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-bn=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ca=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-cs=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-da=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-de=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-el=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-es=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-fi=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-fr=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-he=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-hi=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-hu=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-it=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ja=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ko=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-lt=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-mr=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ms=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-nl=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-no=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-pl=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-pt=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-pt-br=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ro=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ru=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-sk=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-sv=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-tr=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-uk=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-vi=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-zh-cn=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-zh-tw=m +CONFIG_PACKAGE_luci-i18n-statistics-ar=m +CONFIG_PACKAGE_luci-i18n-statistics-bg=m +CONFIG_PACKAGE_luci-i18n-statistics-bn=m +CONFIG_PACKAGE_luci-i18n-statistics-ca=m +CONFIG_PACKAGE_luci-i18n-statistics-cs=m +CONFIG_PACKAGE_luci-i18n-statistics-da=m +CONFIG_PACKAGE_luci-i18n-statistics-de=m +CONFIG_PACKAGE_luci-i18n-statistics-el=m +CONFIG_PACKAGE_luci-i18n-statistics-es=m +CONFIG_PACKAGE_luci-i18n-statistics-fi=m +CONFIG_PACKAGE_luci-i18n-statistics-fr=m +CONFIG_PACKAGE_luci-i18n-statistics-he=m +CONFIG_PACKAGE_luci-i18n-statistics-hi=m +CONFIG_PACKAGE_luci-i18n-statistics-hu=m +CONFIG_PACKAGE_luci-i18n-statistics-it=m +CONFIG_PACKAGE_luci-i18n-statistics-ja=m +CONFIG_PACKAGE_luci-i18n-statistics-ko=m +CONFIG_PACKAGE_luci-i18n-statistics-lt=m +CONFIG_PACKAGE_luci-i18n-statistics-mr=m +CONFIG_PACKAGE_luci-i18n-statistics-ms=m +CONFIG_PACKAGE_luci-i18n-statistics-nl=m +CONFIG_PACKAGE_luci-i18n-statistics-no=m +CONFIG_PACKAGE_luci-i18n-statistics-pl=m +CONFIG_PACKAGE_luci-i18n-statistics-pt=m +CONFIG_PACKAGE_luci-i18n-statistics-pt-br=m +CONFIG_PACKAGE_luci-i18n-statistics-ro=m +CONFIG_PACKAGE_luci-i18n-statistics-ru=m +CONFIG_PACKAGE_luci-i18n-statistics-sk=m +CONFIG_PACKAGE_luci-i18n-statistics-sv=m +CONFIG_PACKAGE_luci-i18n-statistics-tr=m +CONFIG_PACKAGE_luci-i18n-statistics-uk=m +CONFIG_PACKAGE_luci-i18n-statistics-vi=m +CONFIG_PACKAGE_luci-i18n-statistics-zh-cn=m +CONFIG_PACKAGE_luci-i18n-statistics-zh-tw=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ar=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-bg=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-bn=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ca=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-cs=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-da=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-de=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-el=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-es=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-fi=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-fr=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-he=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-hi=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-hu=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-it=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ja=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ko=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-lt=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-mr=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ms=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-nl=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-no=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-pl=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-pt=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ro=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ru=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-sk=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-sv=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-tr=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-uk=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-vi=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-tor-ar=m +CONFIG_PACKAGE_luci-i18n-tor-bg=m +CONFIG_PACKAGE_luci-i18n-tor-bn=m +CONFIG_PACKAGE_luci-i18n-tor-ca=m +CONFIG_PACKAGE_luci-i18n-tor-cs=m +CONFIG_PACKAGE_luci-i18n-tor-da=m +CONFIG_PACKAGE_luci-i18n-tor-de=m +CONFIG_PACKAGE_luci-i18n-tor-el=m +CONFIG_PACKAGE_luci-i18n-tor-es=m +CONFIG_PACKAGE_luci-i18n-tor-fi=m +CONFIG_PACKAGE_luci-i18n-tor-fr=m +CONFIG_PACKAGE_luci-i18n-tor-he=m +CONFIG_PACKAGE_luci-i18n-tor-hi=m +CONFIG_PACKAGE_luci-i18n-tor-hu=m +CONFIG_PACKAGE_luci-i18n-tor-it=m +CONFIG_PACKAGE_luci-i18n-tor-ja=m +CONFIG_PACKAGE_luci-i18n-tor-ko=m +CONFIG_PACKAGE_luci-i18n-tor-lt=m +CONFIG_PACKAGE_luci-i18n-tor-mr=m +CONFIG_PACKAGE_luci-i18n-tor-ms=m +CONFIG_PACKAGE_luci-i18n-tor-nl=m +CONFIG_PACKAGE_luci-i18n-tor-no=m +CONFIG_PACKAGE_luci-i18n-tor-pl=m +CONFIG_PACKAGE_luci-i18n-tor-pt=m +CONFIG_PACKAGE_luci-i18n-tor-pt-br=m +CONFIG_PACKAGE_luci-i18n-tor-ro=m +CONFIG_PACKAGE_luci-i18n-tor-ru=m +CONFIG_PACKAGE_luci-i18n-tor-sk=m +CONFIG_PACKAGE_luci-i18n-tor-sv=m +CONFIG_PACKAGE_luci-i18n-tor-tr=m +CONFIG_PACKAGE_luci-i18n-tor-uk=m +CONFIG_PACKAGE_luci-i18n-tor-vi=m +CONFIG_PACKAGE_luci-i18n-tor-zh-cn=m +CONFIG_PACKAGE_luci-i18n-tor-zh-tw=m +CONFIG_PACKAGE_luci-i18n-transmission-ar=m +CONFIG_PACKAGE_luci-i18n-transmission-bg=m +CONFIG_PACKAGE_luci-i18n-transmission-bn=m +CONFIG_PACKAGE_luci-i18n-transmission-ca=m +CONFIG_PACKAGE_luci-i18n-transmission-cs=m +CONFIG_PACKAGE_luci-i18n-transmission-da=m +CONFIG_PACKAGE_luci-i18n-transmission-de=m +CONFIG_PACKAGE_luci-i18n-transmission-el=m +CONFIG_PACKAGE_luci-i18n-transmission-es=m +CONFIG_PACKAGE_luci-i18n-transmission-fi=m +CONFIG_PACKAGE_luci-i18n-transmission-fr=m +CONFIG_PACKAGE_luci-i18n-transmission-he=m +CONFIG_PACKAGE_luci-i18n-transmission-hi=m +CONFIG_PACKAGE_luci-i18n-transmission-hu=m +CONFIG_PACKAGE_luci-i18n-transmission-it=m +CONFIG_PACKAGE_luci-i18n-transmission-ja=m +CONFIG_PACKAGE_luci-i18n-transmission-ko=m +CONFIG_PACKAGE_luci-i18n-transmission-lt=m +CONFIG_PACKAGE_luci-i18n-transmission-mr=m +CONFIG_PACKAGE_luci-i18n-transmission-ms=m +CONFIG_PACKAGE_luci-i18n-transmission-nl=m +CONFIG_PACKAGE_luci-i18n-transmission-no=m +CONFIG_PACKAGE_luci-i18n-transmission-pl=m +CONFIG_PACKAGE_luci-i18n-transmission-pt=m +CONFIG_PACKAGE_luci-i18n-transmission-pt-br=m +CONFIG_PACKAGE_luci-i18n-transmission-ro=m +CONFIG_PACKAGE_luci-i18n-transmission-ru=m +CONFIG_PACKAGE_luci-i18n-transmission-sk=m +CONFIG_PACKAGE_luci-i18n-transmission-sv=m +CONFIG_PACKAGE_luci-i18n-transmission-tr=m +CONFIG_PACKAGE_luci-i18n-transmission-uk=m +CONFIG_PACKAGE_luci-i18n-transmission-vi=m +CONFIG_PACKAGE_luci-i18n-transmission-zh-cn=m +CONFIG_PACKAGE_luci-i18n-transmission-zh-tw=m +CONFIG_PACKAGE_luci-i18n-travelmate-ar=m +CONFIG_PACKAGE_luci-i18n-travelmate-bg=m +CONFIG_PACKAGE_luci-i18n-travelmate-bn=m +CONFIG_PACKAGE_luci-i18n-travelmate-ca=m +CONFIG_PACKAGE_luci-i18n-travelmate-cs=m +CONFIG_PACKAGE_luci-i18n-travelmate-da=m +CONFIG_PACKAGE_luci-i18n-travelmate-de=m +CONFIG_PACKAGE_luci-i18n-travelmate-el=m +CONFIG_PACKAGE_luci-i18n-travelmate-es=m +CONFIG_PACKAGE_luci-i18n-travelmate-fi=m +CONFIG_PACKAGE_luci-i18n-travelmate-fr=m +CONFIG_PACKAGE_luci-i18n-travelmate-he=m +CONFIG_PACKAGE_luci-i18n-travelmate-hi=m +CONFIG_PACKAGE_luci-i18n-travelmate-hu=m +CONFIG_PACKAGE_luci-i18n-travelmate-it=m +CONFIG_PACKAGE_luci-i18n-travelmate-ja=m +CONFIG_PACKAGE_luci-i18n-travelmate-ko=m +CONFIG_PACKAGE_luci-i18n-travelmate-lt=m +CONFIG_PACKAGE_luci-i18n-travelmate-mr=m +CONFIG_PACKAGE_luci-i18n-travelmate-ms=m +CONFIG_PACKAGE_luci-i18n-travelmate-nl=m +CONFIG_PACKAGE_luci-i18n-travelmate-no=m +CONFIG_PACKAGE_luci-i18n-travelmate-pl=m +CONFIG_PACKAGE_luci-i18n-travelmate-pt=m +CONFIG_PACKAGE_luci-i18n-travelmate-pt-br=m +CONFIG_PACKAGE_luci-i18n-travelmate-ro=m +CONFIG_PACKAGE_luci-i18n-travelmate-ru=m +CONFIG_PACKAGE_luci-i18n-travelmate-sk=m +CONFIG_PACKAGE_luci-i18n-travelmate-sv=m +CONFIG_PACKAGE_luci-i18n-travelmate-tr=m +CONFIG_PACKAGE_luci-i18n-travelmate-uk=m +CONFIG_PACKAGE_luci-i18n-travelmate-vi=m +CONFIG_PACKAGE_luci-i18n-travelmate-zh-cn=m +CONFIG_PACKAGE_luci-i18n-travelmate-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ttyd-ar=m +CONFIG_PACKAGE_luci-i18n-ttyd-bg=m +CONFIG_PACKAGE_luci-i18n-ttyd-bn=m +CONFIG_PACKAGE_luci-i18n-ttyd-ca=m +CONFIG_PACKAGE_luci-i18n-ttyd-cs=m +CONFIG_PACKAGE_luci-i18n-ttyd-da=m +CONFIG_PACKAGE_luci-i18n-ttyd-de=m +CONFIG_PACKAGE_luci-i18n-ttyd-el=m +CONFIG_PACKAGE_luci-i18n-ttyd-es=m +CONFIG_PACKAGE_luci-i18n-ttyd-fi=m +CONFIG_PACKAGE_luci-i18n-ttyd-fr=m +CONFIG_PACKAGE_luci-i18n-ttyd-he=m +CONFIG_PACKAGE_luci-i18n-ttyd-hi=m +CONFIG_PACKAGE_luci-i18n-ttyd-hu=m +CONFIG_PACKAGE_luci-i18n-ttyd-it=m +CONFIG_PACKAGE_luci-i18n-ttyd-ja=m +CONFIG_PACKAGE_luci-i18n-ttyd-ko=m +CONFIG_PACKAGE_luci-i18n-ttyd-lt=m +CONFIG_PACKAGE_luci-i18n-ttyd-mr=m +CONFIG_PACKAGE_luci-i18n-ttyd-ms=m +CONFIG_PACKAGE_luci-i18n-ttyd-nl=m +CONFIG_PACKAGE_luci-i18n-ttyd-no=m +CONFIG_PACKAGE_luci-i18n-ttyd-pl=m +CONFIG_PACKAGE_luci-i18n-ttyd-pt=m +CONFIG_PACKAGE_luci-i18n-ttyd-pt-br=m +CONFIG_PACKAGE_luci-i18n-ttyd-ro=m +CONFIG_PACKAGE_luci-i18n-ttyd-ru=m +CONFIG_PACKAGE_luci-i18n-ttyd-sk=m +CONFIG_PACKAGE_luci-i18n-ttyd-sv=m +CONFIG_PACKAGE_luci-i18n-ttyd-tr=m +CONFIG_PACKAGE_luci-i18n-ttyd-uk=m +CONFIG_PACKAGE_luci-i18n-ttyd-vi=m +CONFIG_PACKAGE_luci-i18n-ttyd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ttyd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-udpxy-ar=m +CONFIG_PACKAGE_luci-i18n-udpxy-bg=m +CONFIG_PACKAGE_luci-i18n-udpxy-bn=m +CONFIG_PACKAGE_luci-i18n-udpxy-ca=m +CONFIG_PACKAGE_luci-i18n-udpxy-cs=m +CONFIG_PACKAGE_luci-i18n-udpxy-da=m +CONFIG_PACKAGE_luci-i18n-udpxy-de=m +CONFIG_PACKAGE_luci-i18n-udpxy-el=m +CONFIG_PACKAGE_luci-i18n-udpxy-es=m +CONFIG_PACKAGE_luci-i18n-udpxy-fi=m +CONFIG_PACKAGE_luci-i18n-udpxy-fr=m +CONFIG_PACKAGE_luci-i18n-udpxy-he=m +CONFIG_PACKAGE_luci-i18n-udpxy-hi=m +CONFIG_PACKAGE_luci-i18n-udpxy-hu=m +CONFIG_PACKAGE_luci-i18n-udpxy-it=m +CONFIG_PACKAGE_luci-i18n-udpxy-ja=m +CONFIG_PACKAGE_luci-i18n-udpxy-ko=m +CONFIG_PACKAGE_luci-i18n-udpxy-lt=m +CONFIG_PACKAGE_luci-i18n-udpxy-mr=m +CONFIG_PACKAGE_luci-i18n-udpxy-ms=m +CONFIG_PACKAGE_luci-i18n-udpxy-nl=m +CONFIG_PACKAGE_luci-i18n-udpxy-no=m +CONFIG_PACKAGE_luci-i18n-udpxy-pl=m +CONFIG_PACKAGE_luci-i18n-udpxy-pt=m +CONFIG_PACKAGE_luci-i18n-udpxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-udpxy-ro=m +CONFIG_PACKAGE_luci-i18n-udpxy-ru=m +CONFIG_PACKAGE_luci-i18n-udpxy-sk=m +CONFIG_PACKAGE_luci-i18n-udpxy-sv=m +CONFIG_PACKAGE_luci-i18n-udpxy-tr=m +CONFIG_PACKAGE_luci-i18n-udpxy-uk=m +CONFIG_PACKAGE_luci-i18n-udpxy-vi=m +CONFIG_PACKAGE_luci-i18n-udpxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-udpxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ar=m +CONFIG_PACKAGE_luci-i18n-uhttpd-bg=m +CONFIG_PACKAGE_luci-i18n-uhttpd-bn=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ca=m +CONFIG_PACKAGE_luci-i18n-uhttpd-cs=m +CONFIG_PACKAGE_luci-i18n-uhttpd-da=m +CONFIG_PACKAGE_luci-i18n-uhttpd-de=m +CONFIG_PACKAGE_luci-i18n-uhttpd-el=m +CONFIG_PACKAGE_luci-i18n-uhttpd-es=m +CONFIG_PACKAGE_luci-i18n-uhttpd-fi=m +CONFIG_PACKAGE_luci-i18n-uhttpd-fr=m +CONFIG_PACKAGE_luci-i18n-uhttpd-he=m +CONFIG_PACKAGE_luci-i18n-uhttpd-hi=m +CONFIG_PACKAGE_luci-i18n-uhttpd-hu=m +CONFIG_PACKAGE_luci-i18n-uhttpd-it=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ja=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ko=m +CONFIG_PACKAGE_luci-i18n-uhttpd-lt=m +CONFIG_PACKAGE_luci-i18n-uhttpd-mr=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ms=m +CONFIG_PACKAGE_luci-i18n-uhttpd-nl=m +CONFIG_PACKAGE_luci-i18n-uhttpd-no=m +CONFIG_PACKAGE_luci-i18n-uhttpd-pl=m +CONFIG_PACKAGE_luci-i18n-uhttpd-pt=m +CONFIG_PACKAGE_luci-i18n-uhttpd-pt-br=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ro=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ru=m +CONFIG_PACKAGE_luci-i18n-uhttpd-sk=m +CONFIG_PACKAGE_luci-i18n-uhttpd-sv=m +CONFIG_PACKAGE_luci-i18n-uhttpd-tr=m +CONFIG_PACKAGE_luci-i18n-uhttpd-uk=m +CONFIG_PACKAGE_luci-i18n-uhttpd-vi=m +CONFIG_PACKAGE_luci-i18n-uhttpd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-uhttpd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-unbound-ar=m +CONFIG_PACKAGE_luci-i18n-unbound-bg=m +CONFIG_PACKAGE_luci-i18n-unbound-bn=m +CONFIG_PACKAGE_luci-i18n-unbound-ca=m +CONFIG_PACKAGE_luci-i18n-unbound-cs=m +CONFIG_PACKAGE_luci-i18n-unbound-da=m +CONFIG_PACKAGE_luci-i18n-unbound-de=m +CONFIG_PACKAGE_luci-i18n-unbound-el=m +CONFIG_PACKAGE_luci-i18n-unbound-es=m +CONFIG_PACKAGE_luci-i18n-unbound-fi=m +CONFIG_PACKAGE_luci-i18n-unbound-fr=m +CONFIG_PACKAGE_luci-i18n-unbound-he=m +CONFIG_PACKAGE_luci-i18n-unbound-hi=m +CONFIG_PACKAGE_luci-i18n-unbound-hu=m +CONFIG_PACKAGE_luci-i18n-unbound-it=m +CONFIG_PACKAGE_luci-i18n-unbound-ja=m +CONFIG_PACKAGE_luci-i18n-unbound-ko=m +CONFIG_PACKAGE_luci-i18n-unbound-lt=m +CONFIG_PACKAGE_luci-i18n-unbound-mr=m +CONFIG_PACKAGE_luci-i18n-unbound-ms=m +CONFIG_PACKAGE_luci-i18n-unbound-nl=m +CONFIG_PACKAGE_luci-i18n-unbound-no=m +CONFIG_PACKAGE_luci-i18n-unbound-pl=m +CONFIG_PACKAGE_luci-i18n-unbound-pt=m +CONFIG_PACKAGE_luci-i18n-unbound-pt-br=m +CONFIG_PACKAGE_luci-i18n-unbound-ro=m +CONFIG_PACKAGE_luci-i18n-unbound-ru=m +CONFIG_PACKAGE_luci-i18n-unbound-sk=m +CONFIG_PACKAGE_luci-i18n-unbound-sv=m +CONFIG_PACKAGE_luci-i18n-unbound-tr=m +CONFIG_PACKAGE_luci-i18n-unbound-uk=m +CONFIG_PACKAGE_luci-i18n-unbound-vi=m +CONFIG_PACKAGE_luci-i18n-unbound-zh-cn=m +CONFIG_PACKAGE_luci-i18n-unbound-zh-tw=m +CONFIG_PACKAGE_luci-i18n-upnp-ar=m +CONFIG_PACKAGE_luci-i18n-upnp-bg=m +CONFIG_PACKAGE_luci-i18n-upnp-bn=m +CONFIG_PACKAGE_luci-i18n-upnp-ca=m +CONFIG_PACKAGE_luci-i18n-upnp-cs=m +CONFIG_PACKAGE_luci-i18n-upnp-da=m +CONFIG_PACKAGE_luci-i18n-upnp-de=m +CONFIG_PACKAGE_luci-i18n-upnp-el=m +CONFIG_PACKAGE_luci-i18n-upnp-es=m +CONFIG_PACKAGE_luci-i18n-upnp-fi=m +CONFIG_PACKAGE_luci-i18n-upnp-fr=m +CONFIG_PACKAGE_luci-i18n-upnp-he=m +CONFIG_PACKAGE_luci-i18n-upnp-hi=m +CONFIG_PACKAGE_luci-i18n-upnp-hu=m +CONFIG_PACKAGE_luci-i18n-upnp-it=m +CONFIG_PACKAGE_luci-i18n-upnp-ja=m +CONFIG_PACKAGE_luci-i18n-upnp-ko=m +CONFIG_PACKAGE_luci-i18n-upnp-lt=m +CONFIG_PACKAGE_luci-i18n-upnp-mr=m +CONFIG_PACKAGE_luci-i18n-upnp-ms=m +CONFIG_PACKAGE_luci-i18n-upnp-nl=m +CONFIG_PACKAGE_luci-i18n-upnp-no=m +CONFIG_PACKAGE_luci-i18n-upnp-pl=m +CONFIG_PACKAGE_luci-i18n-upnp-pt=m +CONFIG_PACKAGE_luci-i18n-upnp-pt-br=m +CONFIG_PACKAGE_luci-i18n-upnp-ro=m +CONFIG_PACKAGE_luci-i18n-upnp-ru=m +CONFIG_PACKAGE_luci-i18n-upnp-sk=m +CONFIG_PACKAGE_luci-i18n-upnp-sv=m +CONFIG_PACKAGE_luci-i18n-upnp-tr=m +CONFIG_PACKAGE_luci-i18n-upnp-uk=m +CONFIG_PACKAGE_luci-i18n-upnp-vi=m +CONFIG_PACKAGE_luci-i18n-upnp-zh-cn=m +CONFIG_PACKAGE_luci-i18n-upnp-zh-tw=m +CONFIG_PACKAGE_luci-i18n-usteer-bn=m +CONFIG_PACKAGE_luci-i18n-usteer-da=m +CONFIG_PACKAGE_luci-i18n-usteer-es=m +CONFIG_PACKAGE_luci-i18n-usteer-lt=m +CONFIG_PACKAGE_luci-i18n-usteer-no=m +CONFIG_PACKAGE_luci-i18n-usteer-pl=m +CONFIG_PACKAGE_luci-i18n-usteer-pt-br=m +CONFIG_PACKAGE_luci-i18n-usteer-ru=m +CONFIG_PACKAGE_luci-i18n-usteer-tr=m +CONFIG_PACKAGE_luci-i18n-usteer-zh-cn=m +CONFIG_PACKAGE_luci-i18n-usteer-zh-tw=m +CONFIG_PACKAGE_luci-i18n-v2raya-ar=m +CONFIG_PACKAGE_luci-i18n-v2raya-bg=m +CONFIG_PACKAGE_luci-i18n-v2raya-bn=m +CONFIG_PACKAGE_luci-i18n-v2raya-ca=m +CONFIG_PACKAGE_luci-i18n-v2raya-cs=m +CONFIG_PACKAGE_luci-i18n-v2raya-da=m +CONFIG_PACKAGE_luci-i18n-v2raya-de=m +CONFIG_PACKAGE_luci-i18n-v2raya-el=m +CONFIG_PACKAGE_luci-i18n-v2raya-es=m +CONFIG_PACKAGE_luci-i18n-v2raya-fi=m +CONFIG_PACKAGE_luci-i18n-v2raya-fr=m +CONFIG_PACKAGE_luci-i18n-v2raya-he=m +CONFIG_PACKAGE_luci-i18n-v2raya-hi=m +CONFIG_PACKAGE_luci-i18n-v2raya-hu=m +CONFIG_PACKAGE_luci-i18n-v2raya-it=m +CONFIG_PACKAGE_luci-i18n-v2raya-ja=m +CONFIG_PACKAGE_luci-i18n-v2raya-ko=m +CONFIG_PACKAGE_luci-i18n-v2raya-lt=m +CONFIG_PACKAGE_luci-i18n-v2raya-mr=m +CONFIG_PACKAGE_luci-i18n-v2raya-ms=m +CONFIG_PACKAGE_luci-i18n-v2raya-nl=m +CONFIG_PACKAGE_luci-i18n-v2raya-no=m +CONFIG_PACKAGE_luci-i18n-v2raya-pl=m +CONFIG_PACKAGE_luci-i18n-v2raya-pt=m +CONFIG_PACKAGE_luci-i18n-v2raya-pt-br=m +CONFIG_PACKAGE_luci-i18n-v2raya-ro=m +CONFIG_PACKAGE_luci-i18n-v2raya-ru=m +CONFIG_PACKAGE_luci-i18n-v2raya-sk=m +CONFIG_PACKAGE_luci-i18n-v2raya-sv=m +CONFIG_PACKAGE_luci-i18n-v2raya-tr=m +CONFIG_PACKAGE_luci-i18n-v2raya-uk=m +CONFIG_PACKAGE_luci-i18n-v2raya-vi=m +CONFIG_PACKAGE_luci-i18n-v2raya-zh-cn=m +CONFIG_PACKAGE_luci-i18n-v2raya-zh-tw=m +CONFIG_PACKAGE_luci-i18n-vnstat-ar=m +CONFIG_PACKAGE_luci-i18n-vnstat-bg=m +CONFIG_PACKAGE_luci-i18n-vnstat-bn=m +CONFIG_PACKAGE_luci-i18n-vnstat-ca=m +CONFIG_PACKAGE_luci-i18n-vnstat-cs=m +CONFIG_PACKAGE_luci-i18n-vnstat-da=m +CONFIG_PACKAGE_luci-i18n-vnstat-de=m +CONFIG_PACKAGE_luci-i18n-vnstat-el=m +CONFIG_PACKAGE_luci-i18n-vnstat-es=m +CONFIG_PACKAGE_luci-i18n-vnstat-fi=m +CONFIG_PACKAGE_luci-i18n-vnstat-fr=m +CONFIG_PACKAGE_luci-i18n-vnstat-he=m +CONFIG_PACKAGE_luci-i18n-vnstat-hi=m +CONFIG_PACKAGE_luci-i18n-vnstat-hu=m +CONFIG_PACKAGE_luci-i18n-vnstat-it=m +CONFIG_PACKAGE_luci-i18n-vnstat-ja=m +CONFIG_PACKAGE_luci-i18n-vnstat-ko=m +CONFIG_PACKAGE_luci-i18n-vnstat-lt=m +CONFIG_PACKAGE_luci-i18n-vnstat-mr=m +CONFIG_PACKAGE_luci-i18n-vnstat-ms=m +CONFIG_PACKAGE_luci-i18n-vnstat-nl=m +CONFIG_PACKAGE_luci-i18n-vnstat-no=m +CONFIG_PACKAGE_luci-i18n-vnstat-pl=m +CONFIG_PACKAGE_luci-i18n-vnstat-pt=m +CONFIG_PACKAGE_luci-i18n-vnstat-pt-br=m +CONFIG_PACKAGE_luci-i18n-vnstat-ro=m +CONFIG_PACKAGE_luci-i18n-vnstat-ru=m +CONFIG_PACKAGE_luci-i18n-vnstat-sk=m +CONFIG_PACKAGE_luci-i18n-vnstat-sv=m +CONFIG_PACKAGE_luci-i18n-vnstat-tr=m +CONFIG_PACKAGE_luci-i18n-vnstat-uk=m +CONFIG_PACKAGE_luci-i18n-vnstat-vi=m +CONFIG_PACKAGE_luci-i18n-vnstat-zh-cn=m +CONFIG_PACKAGE_luci-i18n-vnstat-zh-tw=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ar=m +CONFIG_PACKAGE_luci-i18n-vnstat2-bg=m +CONFIG_PACKAGE_luci-i18n-vnstat2-bn=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ca=m +CONFIG_PACKAGE_luci-i18n-vnstat2-cs=m +CONFIG_PACKAGE_luci-i18n-vnstat2-da=m +CONFIG_PACKAGE_luci-i18n-vnstat2-de=m +CONFIG_PACKAGE_luci-i18n-vnstat2-el=m +CONFIG_PACKAGE_luci-i18n-vnstat2-es=m +CONFIG_PACKAGE_luci-i18n-vnstat2-fi=m +CONFIG_PACKAGE_luci-i18n-vnstat2-fr=m +CONFIG_PACKAGE_luci-i18n-vnstat2-he=m +CONFIG_PACKAGE_luci-i18n-vnstat2-hi=m +CONFIG_PACKAGE_luci-i18n-vnstat2-hu=m +CONFIG_PACKAGE_luci-i18n-vnstat2-it=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ja=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ko=m +CONFIG_PACKAGE_luci-i18n-vnstat2-lt=m +CONFIG_PACKAGE_luci-i18n-vnstat2-mr=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ms=m +CONFIG_PACKAGE_luci-i18n-vnstat2-nl=m +CONFIG_PACKAGE_luci-i18n-vnstat2-no=m +CONFIG_PACKAGE_luci-i18n-vnstat2-pl=m +CONFIG_PACKAGE_luci-i18n-vnstat2-pt=m +CONFIG_PACKAGE_luci-i18n-vnstat2-pt-br=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ro=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ru=m +CONFIG_PACKAGE_luci-i18n-vnstat2-sk=m +CONFIG_PACKAGE_luci-i18n-vnstat2-sv=m +CONFIG_PACKAGE_luci-i18n-vnstat2-tr=m +CONFIG_PACKAGE_luci-i18n-vnstat2-uk=m +CONFIG_PACKAGE_luci-i18n-vnstat2-vi=m +CONFIG_PACKAGE_luci-i18n-vnstat2-zh-cn=m +CONFIG_PACKAGE_luci-i18n-vnstat2-zh-tw=m +CONFIG_PACKAGE_luci-i18n-watchcat-ar=m +CONFIG_PACKAGE_luci-i18n-watchcat-bg=m +CONFIG_PACKAGE_luci-i18n-watchcat-bn=m +CONFIG_PACKAGE_luci-i18n-watchcat-ca=m +CONFIG_PACKAGE_luci-i18n-watchcat-cs=m +CONFIG_PACKAGE_luci-i18n-watchcat-da=m +CONFIG_PACKAGE_luci-i18n-watchcat-de=m +CONFIG_PACKAGE_luci-i18n-watchcat-el=m +CONFIG_PACKAGE_luci-i18n-watchcat-es=m +CONFIG_PACKAGE_luci-i18n-watchcat-fi=m +CONFIG_PACKAGE_luci-i18n-watchcat-fr=m +CONFIG_PACKAGE_luci-i18n-watchcat-he=m +CONFIG_PACKAGE_luci-i18n-watchcat-hi=m +CONFIG_PACKAGE_luci-i18n-watchcat-hu=m +CONFIG_PACKAGE_luci-i18n-watchcat-it=m +CONFIG_PACKAGE_luci-i18n-watchcat-ja=m +CONFIG_PACKAGE_luci-i18n-watchcat-ko=m +CONFIG_PACKAGE_luci-i18n-watchcat-lt=m +CONFIG_PACKAGE_luci-i18n-watchcat-mr=m +CONFIG_PACKAGE_luci-i18n-watchcat-ms=m +CONFIG_PACKAGE_luci-i18n-watchcat-nl=m +CONFIG_PACKAGE_luci-i18n-watchcat-no=m +CONFIG_PACKAGE_luci-i18n-watchcat-pl=m +CONFIG_PACKAGE_luci-i18n-watchcat-pt=m +CONFIG_PACKAGE_luci-i18n-watchcat-pt-br=m +CONFIG_PACKAGE_luci-i18n-watchcat-ro=m +CONFIG_PACKAGE_luci-i18n-watchcat-ru=m +CONFIG_PACKAGE_luci-i18n-watchcat-sk=m +CONFIG_PACKAGE_luci-i18n-watchcat-sv=m +CONFIG_PACKAGE_luci-i18n-watchcat-tr=m +CONFIG_PACKAGE_luci-i18n-watchcat-uk=m +CONFIG_PACKAGE_luci-i18n-watchcat-vi=m +CONFIG_PACKAGE_luci-i18n-watchcat-zh-cn=m +CONFIG_PACKAGE_luci-i18n-watchcat-zh-tw=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ar=m +CONFIG_PACKAGE_luci-i18n-wifischedule-bg=m +CONFIG_PACKAGE_luci-i18n-wifischedule-bn=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ca=m +CONFIG_PACKAGE_luci-i18n-wifischedule-cs=m +CONFIG_PACKAGE_luci-i18n-wifischedule-da=m +CONFIG_PACKAGE_luci-i18n-wifischedule-de=m +CONFIG_PACKAGE_luci-i18n-wifischedule-el=m +CONFIG_PACKAGE_luci-i18n-wifischedule-es=m +CONFIG_PACKAGE_luci-i18n-wifischedule-fi=m +CONFIG_PACKAGE_luci-i18n-wifischedule-fr=m +CONFIG_PACKAGE_luci-i18n-wifischedule-he=m +CONFIG_PACKAGE_luci-i18n-wifischedule-hi=m +CONFIG_PACKAGE_luci-i18n-wifischedule-hu=m +CONFIG_PACKAGE_luci-i18n-wifischedule-it=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ja=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ko=m +CONFIG_PACKAGE_luci-i18n-wifischedule-lt=m +CONFIG_PACKAGE_luci-i18n-wifischedule-mr=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ms=m +CONFIG_PACKAGE_luci-i18n-wifischedule-nl=m +CONFIG_PACKAGE_luci-i18n-wifischedule-no=m +CONFIG_PACKAGE_luci-i18n-wifischedule-pl=m +CONFIG_PACKAGE_luci-i18n-wifischedule-pt=m +CONFIG_PACKAGE_luci-i18n-wifischedule-pt-br=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ro=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ru=m +CONFIG_PACKAGE_luci-i18n-wifischedule-sk=m +CONFIG_PACKAGE_luci-i18n-wifischedule-sv=m +CONFIG_PACKAGE_luci-i18n-wifischedule-tr=m +CONFIG_PACKAGE_luci-i18n-wifischedule-uk=m +CONFIG_PACKAGE_luci-i18n-wifischedule-vi=m +CONFIG_PACKAGE_luci-i18n-wifischedule-zh-cn=m +CONFIG_PACKAGE_luci-i18n-wifischedule-zh-tw=m +CONFIG_PACKAGE_luci-i18n-wol-ar=m +CONFIG_PACKAGE_luci-i18n-wol-bg=m +CONFIG_PACKAGE_luci-i18n-wol-bn=m +CONFIG_PACKAGE_luci-i18n-wol-ca=m +CONFIG_PACKAGE_luci-i18n-wol-cs=m +CONFIG_PACKAGE_luci-i18n-wol-da=m +CONFIG_PACKAGE_luci-i18n-wol-de=m +CONFIG_PACKAGE_luci-i18n-wol-el=m +CONFIG_PACKAGE_luci-i18n-wol-es=m +CONFIG_PACKAGE_luci-i18n-wol-fi=m +CONFIG_PACKAGE_luci-i18n-wol-fr=m +CONFIG_PACKAGE_luci-i18n-wol-he=m +CONFIG_PACKAGE_luci-i18n-wol-hi=m +CONFIG_PACKAGE_luci-i18n-wol-hu=m +CONFIG_PACKAGE_luci-i18n-wol-it=m +CONFIG_PACKAGE_luci-i18n-wol-ja=m +CONFIG_PACKAGE_luci-i18n-wol-ko=m +CONFIG_PACKAGE_luci-i18n-wol-lt=m +CONFIG_PACKAGE_luci-i18n-wol-mr=m +CONFIG_PACKAGE_luci-i18n-wol-ms=m +CONFIG_PACKAGE_luci-i18n-wol-nl=m +CONFIG_PACKAGE_luci-i18n-wol-no=m +CONFIG_PACKAGE_luci-i18n-wol-pl=m +CONFIG_PACKAGE_luci-i18n-wol-pt=m +CONFIG_PACKAGE_luci-i18n-wol-pt-br=m +CONFIG_PACKAGE_luci-i18n-wol-ro=m +CONFIG_PACKAGE_luci-i18n-wol-ru=m +CONFIG_PACKAGE_luci-i18n-wol-sk=m +CONFIG_PACKAGE_luci-i18n-wol-sv=m +CONFIG_PACKAGE_luci-i18n-wol-tr=m +CONFIG_PACKAGE_luci-i18n-wol-uk=m +CONFIG_PACKAGE_luci-i18n-wol-vi=m +CONFIG_PACKAGE_luci-i18n-wol-zh-cn=m +CONFIG_PACKAGE_luci-i18n-wol-zh-tw=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ar=m +CONFIG_PACKAGE_luci-i18n-xfrpc-bg=m +CONFIG_PACKAGE_luci-i18n-xfrpc-bn=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ca=m +CONFIG_PACKAGE_luci-i18n-xfrpc-cs=m +CONFIG_PACKAGE_luci-i18n-xfrpc-da=m +CONFIG_PACKAGE_luci-i18n-xfrpc-de=m +CONFIG_PACKAGE_luci-i18n-xfrpc-el=m +CONFIG_PACKAGE_luci-i18n-xfrpc-es=m +CONFIG_PACKAGE_luci-i18n-xfrpc-fi=m +CONFIG_PACKAGE_luci-i18n-xfrpc-fr=m +CONFIG_PACKAGE_luci-i18n-xfrpc-he=m +CONFIG_PACKAGE_luci-i18n-xfrpc-hi=m +CONFIG_PACKAGE_luci-i18n-xfrpc-hu=m +CONFIG_PACKAGE_luci-i18n-xfrpc-it=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ja=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ko=m +CONFIG_PACKAGE_luci-i18n-xfrpc-lt=m +CONFIG_PACKAGE_luci-i18n-xfrpc-mr=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ms=m +CONFIG_PACKAGE_luci-i18n-xfrpc-nl=m +CONFIG_PACKAGE_luci-i18n-xfrpc-no=m +CONFIG_PACKAGE_luci-i18n-xfrpc-pl=m +CONFIG_PACKAGE_luci-i18n-xfrpc-pt=m +CONFIG_PACKAGE_luci-i18n-xfrpc-pt-br=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ro=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ru=m +CONFIG_PACKAGE_luci-i18n-xfrpc-sk=m +CONFIG_PACKAGE_luci-i18n-xfrpc-sv=m +CONFIG_PACKAGE_luci-i18n-xfrpc-tr=m +CONFIG_PACKAGE_luci-i18n-xfrpc-uk=m +CONFIG_PACKAGE_luci-i18n-xfrpc-vi=m +CONFIG_PACKAGE_luci-i18n-xfrpc-zh-cn=m +CONFIG_PACKAGE_luci-i18n-xfrpc-zh-tw=m +CONFIG_PACKAGE_luci-i18n-xinetd-ar=m +CONFIG_PACKAGE_luci-i18n-xinetd-bg=m +CONFIG_PACKAGE_luci-i18n-xinetd-bn=m +CONFIG_PACKAGE_luci-i18n-xinetd-ca=m +CONFIG_PACKAGE_luci-i18n-xinetd-cs=m +CONFIG_PACKAGE_luci-i18n-xinetd-da=m +CONFIG_PACKAGE_luci-i18n-xinetd-de=m +CONFIG_PACKAGE_luci-i18n-xinetd-el=m +CONFIG_PACKAGE_luci-i18n-xinetd-es=m +CONFIG_PACKAGE_luci-i18n-xinetd-fi=m +CONFIG_PACKAGE_luci-i18n-xinetd-fr=m +CONFIG_PACKAGE_luci-i18n-xinetd-he=m +CONFIG_PACKAGE_luci-i18n-xinetd-hi=m +CONFIG_PACKAGE_luci-i18n-xinetd-hu=m +CONFIG_PACKAGE_luci-i18n-xinetd-it=m +CONFIG_PACKAGE_luci-i18n-xinetd-ja=m +CONFIG_PACKAGE_luci-i18n-xinetd-ko=m +CONFIG_PACKAGE_luci-i18n-xinetd-lt=m +CONFIG_PACKAGE_luci-i18n-xinetd-mr=m +CONFIG_PACKAGE_luci-i18n-xinetd-ms=m +CONFIG_PACKAGE_luci-i18n-xinetd-nl=m +CONFIG_PACKAGE_luci-i18n-xinetd-no=m +CONFIG_PACKAGE_luci-i18n-xinetd-pl=m +CONFIG_PACKAGE_luci-i18n-xinetd-pt=m +CONFIG_PACKAGE_luci-i18n-xinetd-pt-br=m +CONFIG_PACKAGE_luci-i18n-xinetd-ro=m +CONFIG_PACKAGE_luci-i18n-xinetd-ru=m +CONFIG_PACKAGE_luci-i18n-xinetd-sk=m +CONFIG_PACKAGE_luci-i18n-xinetd-sv=m +CONFIG_PACKAGE_luci-i18n-xinetd-tr=m +CONFIG_PACKAGE_luci-i18n-xinetd-uk=m +CONFIG_PACKAGE_luci-i18n-xinetd-vi=m +CONFIG_PACKAGE_luci-i18n-xinetd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-xinetd-zh-tw=m # end of LuCI # # Mail # -# CONFIG_PACKAGE_alpine is not set -# CONFIG_PACKAGE_bogofilter is not set -# CONFIG_PACKAGE_dovecot is not set -# CONFIG_PACKAGE_dovecot-pigeonhole is not set -# CONFIG_PACKAGE_dovecot-utils is not set -# CONFIG_PACKAGE_emailrelay is not set -# CONFIG_PACKAGE_exim is not set -# CONFIG_PACKAGE_exim-gnutls is not set -# CONFIG_PACKAGE_exim-ldap is not set -# CONFIG_PACKAGE_exim-openssl is not set -# CONFIG_PACKAGE_fdm is not set -# CONFIG_PACKAGE_greyfix is not set -# CONFIG_PACKAGE_mailsend is not set -# CONFIG_PACKAGE_mailsend-nossl is not set -# CONFIG_PACKAGE_mblaze is not set -# CONFIG_PACKAGE_msmtp is not set -# CONFIG_PACKAGE_msmtp-mta is not set -# CONFIG_PACKAGE_msmtp-nossl is not set -# CONFIG_PACKAGE_msmtp-queue is not set -# CONFIG_PACKAGE_mutt is not set -# CONFIG_PACKAGE_nail is not set -# CONFIG_PACKAGE_opendkim is not set -# CONFIG_PACKAGE_opendkim-tools is not set -# CONFIG_PACKAGE_postfix is not set -# CONFIG_PACKAGE_spamc is not set -# CONFIG_PACKAGE_spamc-ssl is not set +CONFIG_PACKAGE_alpine=m +CONFIG_PACKAGE_bogofilter=m +CONFIG_PACKAGE_dovecot=m + +# +# Select dovecot build options +# +# CONFIG_DOVECOT_GSSAPI is not set +# CONFIG_DOVECOT_LDAP is not set +# CONFIG_DOVECOT_MYSQL is not set +# CONFIG_DOVECOT_PGSQL is not set +# CONFIG_DOVECOT_SQLITE is not set +# CONFIG_DOVECOT_ICU is not set +# end of Select dovecot build options + +CONFIG_PACKAGE_dovecot-pigeonhole=m +CONFIG_PACKAGE_dovecot-utils=m +CONFIG_PACKAGE_emailrelay=m +# CONFIG_EMAILRELAY_SUPPORT_VERBOSE_DBG is not set +CONFIG_EMAILRELAY_SSL=y +CONFIG_PACKAGE_exim=m +CONFIG_PACKAGE_exim-gnutls=m +# CONFIG_EXIM_GNUTLS_DANE is not set +CONFIG_PACKAGE_exim-ldap=m +CONFIG_PACKAGE_exim-openssl=m +CONFIG_PACKAGE_exim-lookup-cdb=m +CONFIG_PACKAGE_exim-lookup-dbmdb=m +CONFIG_PACKAGE_exim-lookup-dnsdb=m +CONFIG_PACKAGE_exim-lookup-json=m +CONFIG_PACKAGE_exim-lookup-mysql=m +CONFIG_PACKAGE_exim-lookup-passwd=m +CONFIG_PACKAGE_exim-lookup-pgsql=m +CONFIG_PACKAGE_exim-lookup-redis=m +CONFIG_PACKAGE_exim-lookup-sqlite=m +CONFIG_PACKAGE_fdm=m + +# +# Configuration +# +CONFIG_FDM_WITH_PCRE=y +# end of Configuration + +CONFIG_PACKAGE_greyfix=m +CONFIG_PACKAGE_mailsend=m +CONFIG_PACKAGE_mailsend-nossl=m +CONFIG_PACKAGE_mblaze=m +CONFIG_PACKAGE_msmtp=m +CONFIG_PACKAGE_msmtp-mta=m +CONFIG_PACKAGE_msmtp-nossl=m +CONFIG_PACKAGE_msmtp-queue=m +CONFIG_PACKAGE_mutt=m +CONFIG_MUTT_POP=y +CONFIG_MUTT_IMAP=y +# CONFIG_MUTT_SMTP is not set +# CONFIG_MUTT_HCACHE is not set +# CONFIG_MUTT_SASL is not set +# CONFIG_MUTT_GNUTLS is not set +CONFIG_MUTT_OPENSSL=y +CONFIG_PACKAGE_nail=m +CONFIG_PACKAGE_opendkim=m +CONFIG_PACKAGE_opendkim-tools=m +CONFIG_PACKAGE_postfix=m +CONFIG_POSTFIX_TLS=y +CONFIG_POSTFIX_SASL=y +CONFIG_POSTFIX_LDAP=y +# CONFIG_POSTFIX_DB is not set +CONFIG_POSTFIX_CDB=y +CONFIG_POSTFIX_SQLITE=y +# CONFIG_POSTFIX_MYSQL is not set +# CONFIG_POSTFIX_PGSQL is not set +CONFIG_POSTFIX_PCRE=y +# CONFIG_POSTFIX_EAI is not set +CONFIG_PACKAGE_spamassassin=m +CONFIG_PACKAGE_spamc=m +CONFIG_PACKAGE_spamc-ssl=m # end of Mail # @@ -5240,37 +9588,409 @@ CONFIG_PACKAGE_luci-lib-chartjs=m # # Streaming # -# CONFIG_PACKAGE_oggfwd is not set +CONFIG_PACKAGE_oggfwd=m # end of Streaming -# CONFIG_PACKAGE_ffmpeg is not set -# CONFIG_PACKAGE_ffprobe is not set -# CONFIG_PACKAGE_fswebcam is not set -# CONFIG_PACKAGE_gphoto2 is not set -# CONFIG_PACKAGE_graphicsmagick is not set -# CONFIG_PACKAGE_grilo is not set -# CONFIG_PACKAGE_grilo-plugins is not set -# CONFIG_PACKAGE_gst1-libav is not set -# CONFIG_PACKAGE_gstreamer1-libs is not set -# CONFIG_PACKAGE_gstreamer1-plugins-bad is not set -# CONFIG_PACKAGE_gstreamer1-plugins-base is not set -# CONFIG_PACKAGE_gstreamer1-plugins-good is not set -# CONFIG_PACKAGE_gstreamer1-plugins-ugly is not set -# CONFIG_PACKAGE_gstreamer1-utils is not set -# CONFIG_PACKAGE_icecast is not set -# CONFIG_PACKAGE_imagemagick is not set -# CONFIG_PACKAGE_lcdgrilo is not set -# CONFIG_PACKAGE_minidlna is not set +CONFIG_PACKAGE_ffmpeg=m +CONFIG_PACKAGE_ffprobe=m +CONFIG_PACKAGE_fswebcam=m +CONFIG_PACKAGE_gphoto2=m +CONFIG_PACKAGE_graphicsmagick=m +CONFIG_PACKAGE_grilo=m +CONFIG_PACKAGE_grilo-plugins=m +CONFIG_PACKAGE_grilo-plugins-chromaprint=m +CONFIG_PACKAGE_grilo-plugins-dleyna=m +CONFIG_PACKAGE_grilo-plugins-dmap=m +CONFIG_PACKAGE_grilo-plugins-gravatar=m +CONFIG_PACKAGE_grilo-plugins-magnatune=m +CONFIG_PACKAGE_grilo-plugins-metadata-store=m +CONFIG_PACKAGE_grilo-plugins-raitv=m +CONFIG_PACKAGE_grilo-plugins-shoutcast=m +CONFIG_PACKAGE_grilo-plugins-tmdb=m +CONFIG_PACKAGE_gst1-libav=m + +# +# Select GStreamer libav configuration options +# +CONFIG_GST1_LIBAV_IPV6=y +# CONFIG_GST1_LIBAV_PATENTED is not set +CONFIG_GET_LIBAV_COMMON_AV_SUPPORT=y + +# +# Encoders --- +# +# CONFIG_GST1_LIBAV_ENCODER_ac3 is not set +# CONFIG_GST1_LIBAV_ENCODER_jpegls is not set +# CONFIG_GST1_LIBAV_ENCODER_mpeg1video is not set +# CONFIG_GST1_LIBAV_ENCODER_mpeg2video is not set +# CONFIG_GST1_LIBAV_ENCODER_pcm_s16be is not set +# CONFIG_GST1_LIBAV_ENCODER_pcm_s16le is not set +# CONFIG_GST1_LIBAV_ENCODER_png is not set +# CONFIG_GST1_LIBAV_ENCODER_vorbis is not set +# CONFIG_GST1_LIBAV_ENCODER_zlib is not set + +# +# Decoders --- +# +CONFIG_GST1_LIBAV_DECODER_ac3=y +# CONFIG_GST1_LIBAV_DECODER_gif is not set +CONFIG_GST1_LIBAV_DECODER_jpegls=y +# CONFIG_GST1_LIBAV_DECODER_mp2 is not set +CONFIG_GST1_LIBAV_DECODER_mp3=y +CONFIG_GST1_LIBAV_DECODER_mpegvideo=y +CONFIG_GST1_LIBAV_DECODER_mpeg1video=y +CONFIG_GST1_LIBAV_DECODER_mpeg2video=y +CONFIG_GST1_LIBAV_DECODER_pcm_s16be=y +CONFIG_GST1_LIBAV_DECODER_pcm_s16le=y +CONFIG_GST1_LIBAV_DECODER_png=y +CONFIG_GST1_LIBAV_DECODER_vorbis=y +CONFIG_GST1_LIBAV_DECODER_zlib=y + +# +# Muxers --- +# +# CONFIG_GST1_LIBAV_MUXER_ac3 is not set +# CONFIG_GST1_LIBAV_MUXER_ffm is not set +# CONFIG_GST1_LIBAV_MUXER_mp3 is not set +# CONFIG_GST1_LIBAV_MUXER_mp4 is not set +# CONFIG_GST1_LIBAV_MUXER_mpeg1video is not set +# CONFIG_GST1_LIBAV_MUXER_mpeg2video is not set +# CONFIG_GST1_LIBAV_MUXER_mpegts is not set +# CONFIG_GST1_LIBAV_MUXER_ogg is not set +# CONFIG_GST1_LIBAV_MUXER_oss is not set +# CONFIG_GST1_LIBAV_MUXER_rtp is not set + +# +# Demuxers --- +# +CONFIG_GST1_LIBAV_DEMUXER_ac3=y +# CONFIG_GST1_LIBAV_DEMUXER_ffm is not set +CONFIG_GST1_LIBAV_DEMUXER_mp3=y +CONFIG_GST1_LIBAV_DEMUXER_mpegvideo=y +# CONFIG_GST1_LIBAV_DEMUXER_mpegps is not set +# CONFIG_GST1_LIBAV_DEMUXER_mpegts is not set +CONFIG_GST1_LIBAV_DEMUXER_ogg=y +# CONFIG_GST1_LIBAV_DEMUXER_rm is not set +# CONFIG_GST1_LIBAV_DEMUXER_rtsp is not set +# CONFIG_GST1_LIBAV_DEMUXER_sdp is not set + +# +# Parsers --- +# +CONFIG_GST1_LIBAV_PARSER_ac3=y +CONFIG_GST1_LIBAV_PARSER_mpegaudio=y +CONFIG_GST1_LIBAV_PARSER_mpegvideo=y +CONFIG_GST1_LIBAV_PARSER_mpeg4video=y + +# +# Protocols --- +# +# CONFIG_GST1_LIBAV_PROTOCOL_file is not set +# CONFIG_GST1_LIBAV_PROTOCOL_http is not set +# CONFIG_GST1_LIBAV_PROTOCOL_pipe is not set +# CONFIG_GST1_LIBAV_PROTOCOL_rtp is not set +# CONFIG_GST1_LIBAV_PROTOCOL_tcp is not set +# CONFIG_GST1_LIBAV_PROTOCOL_udp is not set +# end of Select GStreamer libav configuration options + +CONFIG_PACKAGE_gst1-mod-adder=m +CONFIG_PACKAGE_gst1-mod-adpcmdec=m +CONFIG_PACKAGE_gst1-mod-adpcmenc=m +CONFIG_PACKAGE_gst1-mod-aiff=m +CONFIG_PACKAGE_gst1-mod-alaw=m +CONFIG_PACKAGE_gst1-mod-alpha=m +CONFIG_PACKAGE_gst1-mod-alsa=m +CONFIG_PACKAGE_gst1-mod-apetag=m +CONFIG_PACKAGE_gst1-mod-app=m +CONFIG_PACKAGE_gst1-mod-asf=m +CONFIG_PACKAGE_gst1-mod-asfmux=m +CONFIG_PACKAGE_gst1-mod-audiobuffersplit=m +CONFIG_PACKAGE_gst1-mod-audioconvert=m +CONFIG_PACKAGE_gst1-mod-audiofx=m +CONFIG_PACKAGE_gst1-mod-audiofxbad=m +CONFIG_PACKAGE_gst1-mod-audiolatency=m +CONFIG_PACKAGE_gst1-mod-audiomixer=m +CONFIG_PACKAGE_gst1-mod-audiomixmatrix=m +CONFIG_PACKAGE_gst1-mod-audioparsers=m +CONFIG_PACKAGE_gst1-mod-audiorate=m +CONFIG_PACKAGE_gst1-mod-audioresample=m +CONFIG_PACKAGE_gst1-mod-audiotestsrc=m +CONFIG_PACKAGE_gst1-mod-audiovisualizers=m +CONFIG_PACKAGE_gst1-mod-auparse=m +CONFIG_PACKAGE_gst1-mod-autoconvert=m +CONFIG_PACKAGE_gst1-mod-autodetect=m +CONFIG_PACKAGE_gst1-mod-avi=m +CONFIG_PACKAGE_gst1-mod-bayer=m +CONFIG_PACKAGE_gst1-mod-bluez=m +CONFIG_PACKAGE_gst1-mod-camerabin=m +CONFIG_PACKAGE_gst1-mod-coloreffects=m +CONFIG_PACKAGE_gst1-mod-compositor=m +CONFIG_PACKAGE_gst1-mod-cutter=m +CONFIG_PACKAGE_gst1-mod-debug=m +CONFIG_PACKAGE_gst1-mod-debugutilsbad=m +CONFIG_PACKAGE_gst1-mod-dtls=m +CONFIG_PACKAGE_gst1-mod-dtmf=m +CONFIG_PACKAGE_gst1-mod-dvbsubenc=m +CONFIG_PACKAGE_gst1-mod-dvbsuboverlay=m +CONFIG_PACKAGE_gst1-mod-dvdspu=m +CONFIG_PACKAGE_gst1-mod-effectv=m +CONFIG_PACKAGE_gst1-mod-encoding=m +CONFIG_PACKAGE_gst1-mod-equalizer=m +CONFIG_PACKAGE_gst1-mod-faad=m +CONFIG_PACKAGE_gst1-mod-faceoverlay=m +CONFIG_PACKAGE_gst1-mod-fbdevsink=m +CONFIG_PACKAGE_gst1-mod-festival=m +CONFIG_PACKAGE_gst1-mod-fieldanalysis=m +CONFIG_PACKAGE_gst1-mod-flac=m +CONFIG_PACKAGE_gst1-mod-flv=m +CONFIG_PACKAGE_gst1-mod-flxdec=m +CONFIG_PACKAGE_gst1-mod-freeverb=m +CONFIG_PACKAGE_gst1-mod-frei0r=m +CONFIG_PACKAGE_gst1-mod-gaudieffects=m +CONFIG_PACKAGE_gst1-mod-gdp=m +CONFIG_PACKAGE_gst1-mod-geometrictransform=m +CONFIG_PACKAGE_gst1-mod-gio=m +CONFIG_PACKAGE_gst1-mod-goom=m +CONFIG_PACKAGE_gst1-mod-goom2k1=m +CONFIG_PACKAGE_gst1-mod-hls=m +CONFIG_PACKAGE_gst1-mod-icydemux=m +CONFIG_PACKAGE_gst1-mod-id3demux=m +CONFIG_PACKAGE_gst1-mod-id3tag=m +CONFIG_PACKAGE_gst1-mod-imagefreeze=m +CONFIG_PACKAGE_gst1-mod-inter=m +CONFIG_PACKAGE_gst1-mod-interlace=m +CONFIG_PACKAGE_gst1-mod-interleave=m +CONFIG_PACKAGE_gst1-mod-isomp4=m +CONFIG_PACKAGE_gst1-mod-ivfparse=m +CONFIG_PACKAGE_gst1-mod-ivorbisdec=m +CONFIG_PACKAGE_gst1-mod-ivtc=m +CONFIG_PACKAGE_gst1-mod-jp2kdecimator=m +CONFIG_PACKAGE_gst1-mod-jpeg=m +CONFIG_PACKAGE_gst1-mod-jpegformat=m +CONFIG_PACKAGE_gst1-mod-lame=m +CONFIG_PACKAGE_gst1-mod-legacyrawparse=m +CONFIG_PACKAGE_gst1-mod-level=m +CONFIG_PACKAGE_gst1-mod-matroska=m +CONFIG_PACKAGE_gst1-mod-midi=m +CONFIG_PACKAGE_gst1-mod-monoscope=m +CONFIG_PACKAGE_gst1-mod-mpeg2dec=m +CONFIG_PACKAGE_gst1-mod-mpegpsdemux=m +CONFIG_PACKAGE_gst1-mod-mpegpsmux=m +CONFIG_PACKAGE_gst1-mod-mpegtsdemux=m +CONFIG_PACKAGE_gst1-mod-mpegtsmux=m +CONFIG_PACKAGE_gst1-mod-mpg123=m +CONFIG_PACKAGE_gst1-mod-mulaw=m +CONFIG_PACKAGE_gst1-mod-multifile=m +CONFIG_PACKAGE_gst1-mod-multipart=m +CONFIG_PACKAGE_gst1-mod-mxf=m +CONFIG_PACKAGE_gst1-mod-navigationtest=m +CONFIG_PACKAGE_gst1-mod-netsim=m +CONFIG_PACKAGE_gst1-mod-ogg=m +CONFIG_PACKAGE_gst1-mod-opus=m +CONFIG_PACKAGE_gst1-mod-opusparse=m +CONFIG_PACKAGE_gst1-mod-oss4=m +CONFIG_PACKAGE_gst1-mod-ossaudio=m +CONFIG_PACKAGE_gst1-mod-overlaycomposition=m +CONFIG_PACKAGE_gst1-mod-pbtypes=m +CONFIG_PACKAGE_gst1-mod-pcapparse=m +CONFIG_PACKAGE_gst1-mod-playback=m +CONFIG_PACKAGE_gst1-mod-png=m +CONFIG_PACKAGE_gst1-mod-pnm=m +CONFIG_PACKAGE_gst1-mod-proxy=m +CONFIG_PACKAGE_gst1-mod-rawparse=m +CONFIG_PACKAGE_gst1-mod-removesilence=m +CONFIG_PACKAGE_gst1-mod-replaygain=m +CONFIG_PACKAGE_gst1-mod-rfbsrc=m +CONFIG_PACKAGE_gst1-mod-rtp=m +CONFIG_PACKAGE_gst1-mod-rtpmanager=m +CONFIG_PACKAGE_gst1-mod-rtponvif=m +CONFIG_PACKAGE_gst1-mod-rtsp=m +CONFIG_PACKAGE_gst1-mod-sbc=m +CONFIG_PACKAGE_gst1-mod-sdpelem=m +CONFIG_PACKAGE_gst1-mod-segmentclip=m +CONFIG_PACKAGE_gst1-mod-shapewipe=m +CONFIG_PACKAGE_gst1-mod-shm=m +CONFIG_PACKAGE_gst1-mod-shout2=m +CONFIG_PACKAGE_gst1-mod-siren=m +CONFIG_PACKAGE_gst1-mod-smooth=m +CONFIG_PACKAGE_gst1-mod-smpte=m +CONFIG_PACKAGE_gst1-mod-sndfile=m +CONFIG_PACKAGE_gst1-mod-soup=m +CONFIG_PACKAGE_gst1-mod-spectrum=m +CONFIG_PACKAGE_gst1-mod-speed=m +CONFIG_PACKAGE_gst1-mod-speex=m +CONFIG_PACKAGE_gst1-mod-subenc=m +CONFIG_PACKAGE_gst1-mod-subparse=m +CONFIG_PACKAGE_gst1-mod-switchbin=m +CONFIG_PACKAGE_gst1-mod-taglib=m +CONFIG_PACKAGE_gst1-mod-tcp=m +CONFIG_PACKAGE_gst1-mod-theora=m +CONFIG_PACKAGE_gst1-mod-timecode=m +CONFIG_PACKAGE_gst1-mod-typefindfunctions=m +CONFIG_PACKAGE_gst1-mod-udp=m +CONFIG_PACKAGE_gst1-mod-video4linux2=m +CONFIG_PACKAGE_gst1-mod-videobox=m +CONFIG_PACKAGE_gst1-mod-videoconvertscale=m +CONFIG_PACKAGE_gst1-mod-videocrop=m +CONFIG_PACKAGE_gst1-mod-videofilter=m +CONFIG_PACKAGE_gst1-mod-videofiltersbad=m +CONFIG_PACKAGE_gst1-mod-videoframe_audiolevel=m +CONFIG_PACKAGE_gst1-mod-videomixer=m +CONFIG_PACKAGE_gst1-mod-videorate=m +CONFIG_PACKAGE_gst1-mod-videosignal=m +CONFIG_PACKAGE_gst1-mod-videotestsrc=m +CONFIG_PACKAGE_gst1-mod-vmnc=m +CONFIG_PACKAGE_gst1-mod-volume=m +CONFIG_PACKAGE_gst1-mod-vorbis=m +CONFIG_PACKAGE_gst1-mod-vpx=m +CONFIG_PACKAGE_gst1-mod-wavenc=m +CONFIG_PACKAGE_gst1-mod-wavparse=m +CONFIG_PACKAGE_gst1-mod-webp=m +CONFIG_PACKAGE_gst1-mod-y4mdec=m +CONFIG_PACKAGE_gst1-plugins-bad=m +CONFIG_PACKAGE_gst1-plugins-base=m +CONFIG_PACKAGE_gst1-plugins-good=m +CONFIG_PACKAGE_gst1-plugins-ugly=m +CONFIG_PACKAGE_gstreamer1=m +CONFIG_PACKAGE_gstreamer1-libs=m + +# +# Select GStreamer libraries +# +# CONFIG_gstreamer1-all is not set + +# +# Libraries +# +CONFIG_PACKAGE_libgstreamer1=m +CONFIG_PACKAGE_libgst1check=m +CONFIG_PACKAGE_libgst1controller=m +CONFIG_PACKAGE_libgst1net=m +# end of Select GStreamer libraries + +CONFIG_PACKAGE_gstreamer1-plugins-bad=m + +# +# Select GStreamer bad modules and libraries +# +# CONFIG_gst1-plugins-bad-all is not set + +# +# Modules +# + +# +# Libraries +# +CONFIG_PACKAGE_libgst1adaptivedemux=m +CONFIG_PACKAGE_libgst1photography=m +CONFIG_PACKAGE_libgst1basecamerabinsrc=m +CONFIG_PACKAGE_libgst1uridownloader=m +CONFIG_PACKAGE_libgst1codecparsers=m +CONFIG_PACKAGE_libgst1mpegts=m +# end of Select GStreamer bad modules and libraries + +CONFIG_PACKAGE_gstreamer1-plugins-base=m + +# +# Select GStreamer base modules and libraries +# +# CONFIG_gst1-plugins-base-all is not set + +# +# Modules +# + +# +# Libraries +# +CONFIG_PACKAGE_libgst1allocators=m +CONFIG_PACKAGE_libgst1app=m +CONFIG_PACKAGE_libgst1audio=m +CONFIG_PACKAGE_libgst1fft=m +CONFIG_PACKAGE_libgst1pbutils=m +CONFIG_PACKAGE_libgst1riff=m +CONFIG_PACKAGE_libgst1rtp=m +CONFIG_PACKAGE_libgst1rtsp=m +CONFIG_PACKAGE_libgst1sdp=m +CONFIG_PACKAGE_libgst1tag=m +CONFIG_PACKAGE_libgst1video=m +# end of Select GStreamer base modules and libraries + +CONFIG_PACKAGE_gstreamer1-plugins-good=m + +# +# Select GStreamer good modules +# +# CONFIG_gst1-plugins-good-all is not set + +# +# Modules +# +# end of Select GStreamer good modules + +CONFIG_PACKAGE_gstreamer1-plugins-ugly=m + +# +# Select GStreamer ugly modules +# +# CONFIG_gst1-plugins-ugly-all is not set + +# +# Modules +# +# end of Select GStreamer ugly modules + +CONFIG_PACKAGE_gstreamer1-utils=m +CONFIG_PACKAGE_icecast=m +CONFIG_PACKAGE_imagemagick=m +CONFIG_PACKAGE_lcdgrilo=m +CONFIG_PACKAGE_minidlna=m # CONFIG_PACKAGE_minisatip is not set -# CONFIG_PACKAGE_mjpg-streamer is not set -# CONFIG_PACKAGE_motion is not set -# CONFIG_PACKAGE_tvheadend is not set -# CONFIG_PACKAGE_v4l2camera is not set -# CONFIG_PACKAGE_v4l2rtspserver is not set -# CONFIG_PACKAGE_v4l2tools is not set -# CONFIG_PACKAGE_vips is not set -# CONFIG_PACKAGE_xupnpd is not set -# CONFIG_PACKAGE_yt-dlp is not set +CONFIG_PACKAGE_mjpg-streamer=m +# CONFIG_MJPG_STREAMER_V4L2 is not set +CONFIG_PACKAGE_mjpg-streamer-input-file=m +CONFIG_PACKAGE_mjpg-streamer-input-http=m +CONFIG_PACKAGE_mjpg-streamer-input-uvc=m +CONFIG_PACKAGE_mjpg-streamer-output-file=m +CONFIG_PACKAGE_mjpg-streamer-output-http=m +CONFIG_PACKAGE_mjpg-streamer-output-rtsp=m +CONFIG_PACKAGE_mjpg-streamer-output-zmq=m +CONFIG_PACKAGE_mjpg-streamer-www=m +CONFIG_PACKAGE_mjpg-streamer-www-simple=m +CONFIG_PACKAGE_motion=m +CONFIG_PACKAGE_tvheadend=m + +# +# Generic options +# +# CONFIG_TVHEADEND_OPTIMIZE_SPEED is not set +# CONFIG_TVHEADEND_TRACE is not set +# CONFIG_TVHEADEND_AVAHI_SUPPORT is not set +CONFIG_TVHEADEND_REGEX_POSIX=y +# CONFIG_TVHEADEND_REGEX_PCRE2 is not set +# CONFIG_TVHEADEND_IMAGECACHE is not set + +# +# Input & output support +# +CONFIG_TVHEADEND_LINUXDVB_SUPPORT=y +CONFIG_TVHEADEND_DVBSCAN_SUPPORT=y +CONFIG_TVHEADEND_IPTV=y +CONFIG_TVHEADEND_SATIP_CLIENT=y +CONFIG_TVHEADEND_SATIP_SERVER=y +CONFIG_TVHEADEND_HDHOMERUN_CLIENT=y + +# +# DVB descrambling and some codecs are only available with BUILD_PATENTED. +# +CONFIG_PACKAGE_v4l2camera=m +CONFIG_PACKAGE_v4l2rtspserver=m +CONFIG_PACKAGE_v4l2tools=m +CONFIG_PACKAGE_vips=m +CONFIG_PACKAGE_xupnpd=m +CONFIG_PACKAGE_yt-dlp=m +CONFIG_PACKAGE_yt-dlp-src=m # end of Multimedia # @@ -5280,88 +10000,127 @@ CONFIG_PACKAGE_luci-lib-chartjs=m # # BitTorrent # -# CONFIG_PACKAGE_mktorrent is not set -# CONFIG_PACKAGE_opentracker is not set -# CONFIG_PACKAGE_opentracker6 is not set -# CONFIG_PACKAGE_rtorrent is not set -# CONFIG_PACKAGE_rtorrent-rpc is not set -# CONFIG_PACKAGE_transmission-cli is not set -# CONFIG_PACKAGE_transmission-daemon is not set -# CONFIG_PACKAGE_transmission-remote is not set -# CONFIG_PACKAGE_transmission-web is not set -# CONFIG_PACKAGE_transmission-web-control is not set +CONFIG_PACKAGE_mktorrent=m +CONFIG_PACKAGE_opentracker=m +CONFIG_PACKAGE_opentracker6=m +CONFIG_PACKAGE_rtorrent=m +CONFIG_PACKAGE_rtorrent-rpc=m +CONFIG_PACKAGE_transmission-cli=m +CONFIG_PACKAGE_transmission-daemon=m +CONFIG_PACKAGE_transmission-remote=m +CONFIG_PACKAGE_transmission-web=m +CONFIG_PACKAGE_transmission-web-control=m # end of BitTorrent # # Captive Portals # -# CONFIG_PACKAGE_apfree-wifidog is not set -# CONFIG_PACKAGE_coova-chilli is not set -# CONFIG_PACKAGE_mesh11sd is not set -# CONFIG_PACKAGE_nodogsplash is not set -# CONFIG_PACKAGE_opennds is not set -# CONFIG_PACKAGE_uspot is not set -# CONFIG_PACKAGE_uspot-www is not set -# CONFIG_PACKAGE_wifidog is not set -# CONFIG_PACKAGE_wifidog-tls is not set +CONFIG_PACKAGE_apfree-wifidog=m +CONFIG_PACKAGE_coova-chilli=m +# CONFIG_COOVACHILLI_PROXY is not set +# CONFIG_COOVACHILLI_REDIR is not set +# CONFIG_COOVACHILLI_MINIPORTAL is not set +# CONFIG_COOVACHILLI_USERAGENT is not set +# CONFIG_COOVACHILLI_UAMDOMAINFILE is not set +# CONFIG_COOVACHILLI_LARGELIMITS is not set +# CONFIG_COOVACHILLI_JSONINTERFACE is not set +CONFIG_COOVACHILLI_NOSSL=y +# CONFIG_COOVACHILLI_WOLFSSL is not set +# CONFIG_COOVACHILLI_OPENSSL is not set +CONFIG_PACKAGE_mesh11sd=m +CONFIG_PACKAGE_nodogsplash=m +CONFIG_PACKAGE_opennds=m +CONFIG_PACKAGE_uspot=m +CONFIG_PACKAGE_uspot-www=m +CONFIG_PACKAGE_wifidog=m +CONFIG_PACKAGE_wifidog-tls=m # end of Captive Portals # # Cloud Manager # -# CONFIG_PACKAGE_cloudreve is not set -# CONFIG_PACKAGE_rclone-ng is not set -# CONFIG_PACKAGE_rclone-webui-react is not set +CONFIG_PACKAGE_cloudreve=m +CONFIG_PACKAGE_rclone-ng=m +CONFIG_PACKAGE_rclone-webui-react=m # end of Cloud Manager # # Dial-in/up # -# CONFIG_PACKAGE_rp-pppoe-common is not set +CONFIG_PACKAGE_rp-pppoe-common=m # CONFIG_PACKAGE_rp-pppoe-relay is not set -# CONFIG_PACKAGE_rp-pppoe-server is not set +CONFIG_PACKAGE_rp-pppoe-server=m # end of Dial-in/up # # Download Manager # -# CONFIG_PACKAGE_ariang is not set -# CONFIG_PACKAGE_ariang-nginx is not set -# CONFIG_PACKAGE_leech is not set -# CONFIG_PACKAGE_webui-aria2 is not set +CONFIG_PACKAGE_ariang=m +CONFIG_PACKAGE_ariang-nginx=m +CONFIG_PACKAGE_leech=m +CONFIG_PACKAGE_webui-aria2=m # end of Download Manager # # File Transfer # -# CONFIG_PACKAGE_aria2 is not set -# CONFIG_PACKAGE_atftp is not set -# CONFIG_PACKAGE_atftpd is not set -# CONFIG_PACKAGE_croc is not set -# CONFIG_PACKAGE_curl is not set -# CONFIG_PACKAGE_lftp is not set -# CONFIG_PACKAGE_rclone is not set -# CONFIG_PACKAGE_rclone-config is not set -# CONFIG_PACKAGE_rsync is not set -# CONFIG_PACKAGE_rsyncd is not set -# CONFIG_PACKAGE_vsftpd is not set -# CONFIG_PACKAGE_vsftpd-tls is not set -# CONFIG_PACKAGE_wget-nossl is not set -# CONFIG_PACKAGE_wget-ssl is not set +CONFIG_PACKAGE_aria2=m + +# +# Aria2 Configuration +# +CONFIG_ARIA2_OPENSSL=y +# CONFIG_ARIA2_GNUTLS is not set +# CONFIG_ARIA2_NOSSL is not set +# CONFIG_ARIA2_LIBXML2 is not set +# CONFIG_ARIA2_EXPAT is not set +CONFIG_ARIA2_NOXML=y +CONFIG_ARIA2_BITTORRENT=y +# CONFIG_ARIA2_SFTP is not set +# CONFIG_ARIA2_ASYNC_DNS is not set +# CONFIG_ARIA2_COOKIE is not set +CONFIG_ARIA2_WEBSOCKET=y +# end of Aria2 Configuration + +CONFIG_PACKAGE_atftp=m +CONFIG_PACKAGE_atftpd=m +CONFIG_PACKAGE_croc=m +CONFIG_PACKAGE_curl=m +CONFIG_PACKAGE_lftp=m +CONFIG_PACKAGE_rclone=m +CONFIG_PACKAGE_rclone-config=m +CONFIG_PACKAGE_rrsync=m +CONFIG_PACKAGE_rsync=m +CONFIG_RSYNC_xattr=y +CONFIG_RSYNC_acl=y +# CONFIG_RSYNC_zstd is not set +CONFIG_PACKAGE_rsyncd=m +CONFIG_PACKAGE_vsftpd=m +CONFIG_PACKAGE_vsftpd-tls=m +CONFIG_PACKAGE_wget-nossl=m +CONFIG_PACKAGE_wget-ssl=m # end of File Transfer # # Filesystem # -# CONFIG_PACKAGE_davfs2 is not set -# CONFIG_PACKAGE_ksmbd-avahi-service is not set -# CONFIG_PACKAGE_ksmbd-hotplug is not set -# CONFIG_PACKAGE_ksmbd-server is not set -# CONFIG_PACKAGE_nfs-kernel-server is not set -# CONFIG_PACKAGE_owftpd is not set -# CONFIG_PACKAGE_owhttpd is not set -# CONFIG_PACKAGE_owserver is not set -# CONFIG_PACKAGE_sshfs is not set +CONFIG_PACKAGE_davfs2=m +CONFIG_PACKAGE_ksmbd-avahi-service=m +CONFIG_PACKAGE_ksmbd-hotplug=m +CONFIG_PACKAGE_ksmbd-server=m +CONFIG_PACKAGE_nfs-kernel-server=m + +# +# Select nfs-kernel-server configuration options +# +CONFIG_NFS_KERNEL_SERVER_V4=y +# end of Select nfs-kernel-server configuration options + +CONFIG_PACKAGE_nfs-kernel-server-utils=m +CONFIG_PACKAGE_owftpd=m +CONFIG_PACKAGE_owhttpd=m +CONFIG_PACKAGE_owserver=m +CONFIG_PACKAGE_sshfs=m # end of Filesystem # @@ -5369,64 +10128,72 @@ CONFIG_PACKAGE_luci-lib-chartjs=m # # CONFIG_PACKAGE_arptables-legacy is not set CONFIG_PACKAGE_arptables-nft=m -# CONFIG_PACKAGE_conntrack is not set -# CONFIG_PACKAGE_conntrackd is not set +CONFIG_PACKAGE_conntrack=m +CONFIG_PACKAGE_conntrackd=m # CONFIG_PACKAGE_ebtables-legacy is not set CONFIG_PACKAGE_ebtables-nft=m -# CONFIG_PACKAGE_fwknop is not set -# CONFIG_PACKAGE_fwknopd is not set +CONFIG_PACKAGE_fwknop=m +CONFIG_PACKAGE_fwknopd=m + +# +# Configuration +# +# CONFIG_FWKNOPD_GPG is not set +# CONFIG_FWKNOPD_NFQ_CAPTURE is not set +# end of Configuration + CONFIG_PACKAGE_ip6tables-extra=m CONFIG_PACKAGE_ip6tables-mod-nat=m CONFIG_PACKAGE_ip6tables-nft=m CONFIG_PACKAGE_ip6tables-zz-legacy=m -# CONFIG_PACKAGE_iptables-mod-account is not set -# CONFIG_PACKAGE_iptables-mod-asn is not set -# CONFIG_PACKAGE_iptables-mod-chaos is not set +CONFIG_PACKAGE_iptables-mod-account=m +CONFIG_PACKAGE_iptables-mod-asn=m +CONFIG_PACKAGE_iptables-mod-chaos=m CONFIG_PACKAGE_iptables-mod-checksum=m CONFIG_PACKAGE_iptables-mod-cluster=m CONFIG_PACKAGE_iptables-mod-clusterip=m -# CONFIG_PACKAGE_iptables-mod-condition is not set +CONFIG_PACKAGE_iptables-mod-condition=m CONFIG_PACKAGE_iptables-mod-conntrack-extra=m -# CONFIG_PACKAGE_iptables-mod-delude is not set -# CONFIG_PACKAGE_iptables-mod-dhcpmac is not set -# CONFIG_PACKAGE_iptables-mod-dnetmap is not set +CONFIG_PACKAGE_iptables-mod-delude=m +CONFIG_PACKAGE_iptables-mod-dhcpmac=m +CONFIG_PACKAGE_iptables-mod-dnetmap=m CONFIG_PACKAGE_iptables-mod-extra=m CONFIG_PACKAGE_iptables-mod-filter=m -# CONFIG_PACKAGE_iptables-mod-fuzzy is not set -# CONFIG_PACKAGE_iptables-mod-geoip is not set +CONFIG_PACKAGE_iptables-mod-fuzzy=m +CONFIG_PACKAGE_iptables-mod-geoip=m CONFIG_PACKAGE_iptables-mod-hashlimit=m -# CONFIG_PACKAGE_iptables-mod-iface is not set -# CONFIG_PACKAGE_iptables-mod-ipmark is not set +CONFIG_PACKAGE_iptables-mod-iface=m +CONFIG_PACKAGE_iptables-mod-ipmark=m CONFIG_PACKAGE_iptables-mod-ipopt=m -# CONFIG_PACKAGE_iptables-mod-ipp2p is not set +CONFIG_PACKAGE_iptables-mod-ipp2p=m CONFIG_PACKAGE_iptables-mod-iprange=m CONFIG_PACKAGE_iptables-mod-ipsec=m -# CONFIG_PACKAGE_iptables-mod-ipv4options is not set +CONFIG_PACKAGE_iptables-mod-ipv4options=m CONFIG_PACKAGE_iptables-mod-led=m -# CONFIG_PACKAGE_iptables-mod-length2 is not set -# CONFIG_PACKAGE_iptables-mod-logmark is not set -# CONFIG_PACKAGE_iptables-mod-lscan is not set -# CONFIG_PACKAGE_iptables-mod-lua is not set +CONFIG_PACKAGE_iptables-mod-length2=m +CONFIG_PACKAGE_iptables-mod-logmark=m +CONFIG_PACKAGE_iptables-mod-lscan=m +CONFIG_PACKAGE_iptables-mod-lua=m CONFIG_PACKAGE_iptables-mod-nat-extra=m CONFIG_PACKAGE_iptables-mod-nflog=m CONFIG_PACKAGE_iptables-mod-nfqueue=m CONFIG_PACKAGE_iptables-mod-physdev=m -# CONFIG_PACKAGE_iptables-mod-proto is not set -# CONFIG_PACKAGE_iptables-mod-psd is not set -# CONFIG_PACKAGE_iptables-mod-quota2 is not set +CONFIG_PACKAGE_iptables-mod-proto=m +CONFIG_PACKAGE_iptables-mod-psd=m +CONFIG_PACKAGE_iptables-mod-quota2=m CONFIG_PACKAGE_iptables-mod-rpfilter=m -# CONFIG_PACKAGE_iptables-mod-rtpengine is not set +CONFIG_PACKAGE_iptables-mod-rtpengine=m CONFIG_PACKAGE_iptables-mod-socket=m CONFIG_PACKAGE_iptables-nft=m CONFIG_PACKAGE_iptables-zz-legacy=m -# CONFIG_PACKAGE_iptables-mod-sysrq is not set -# CONFIG_PACKAGE_iptables-mod-tarpit is not set +CONFIG_PACKAGE_iptables-mod-sysrq=m +CONFIG_PACKAGE_iptables-mod-tarpit=m CONFIG_PACKAGE_iptables-mod-tee=m CONFIG_PACKAGE_iptables-mod-tproxy=m CONFIG_PACKAGE_iptables-mod-trace=m CONFIG_PACKAGE_iptables-mod-u32=m -# CONFIG_PACKAGE_iptaccount is not set -# CONFIG_PACKAGE_iptasn is not set +CONFIG_PACKAGE_iptaccount=m +CONFIG_PACKAGE_iptasn=m # # Select iptasn options @@ -5434,7 +10201,7 @@ CONFIG_PACKAGE_iptables-mod-u32=m # CONFIG_IPTASN_PRESERVE is not set # end of Select iptasn options -# CONFIG_PACKAGE_iptgeoip is not set +CONFIG_PACKAGE_iptgeoip=m # # Select iptgeoip options @@ -5442,19 +10209,19 @@ CONFIG_PACKAGE_iptables-mod-u32=m # CONFIG_IPTGEOIP_PRESERVE is not set # end of Select iptgeoip options -# CONFIG_PACKAGE_miniupnpc is not set -# CONFIG_PACKAGE_miniupnpd-iptables is not set -# CONFIG_PACKAGE_miniupnpd-nftables is not set -# CONFIG_PACKAGE_natpmpc is not set +CONFIG_PACKAGE_miniupnpc=m +CONFIG_PACKAGE_miniupnpd-iptables=m +CONFIG_PACKAGE_miniupnpd-nftables=m +CONFIG_PACKAGE_natpmpc=m CONFIG_PACKAGE_nftables-json=y # CONFIG_PACKAGE_nftables-nojson is not set -# CONFIG_PACKAGE_openappid is not set -# CONFIG_PACKAGE_shorewall is not set -# CONFIG_PACKAGE_shorewall-core is not set -# CONFIG_PACKAGE_shorewall-lite is not set -# CONFIG_PACKAGE_shorewall6 is not set -# CONFIG_PACKAGE_shorewall6-lite is not set -# CONFIG_PACKAGE_snort3 is not set +CONFIG_PACKAGE_openappid=m +CONFIG_PACKAGE_shorewall=m +CONFIG_PACKAGE_shorewall-core=m +CONFIG_PACKAGE_shorewall-lite=m +CONFIG_PACKAGE_shorewall6=m +CONFIG_PACKAGE_shorewall6-lite=m +CONFIG_PACKAGE_snort3=m CONFIG_PACKAGE_xtables-legacy=m CONFIG_PACKAGE_xtables-nft=m # end of Firewall @@ -5462,82 +10229,228 @@ CONFIG_PACKAGE_xtables-nft=m # # Firewall Tunnel # -# CONFIG_PACKAGE_iodine is not set -# CONFIG_PACKAGE_iodined is not set +CONFIG_PACKAGE_iodine=m +CONFIG_PACKAGE_iodined=m # end of Firewall Tunnel # # FreeRADIUS (version 3) # -# CONFIG_PACKAGE_freeradius3 is not set -# CONFIG_PACKAGE_freeradius3-common is not set -# CONFIG_PACKAGE_freeradius3-utils is not set +CONFIG_PACKAGE_freeradius3=m +# CONFIG_FREERADIUS3_NOSSL is not set +CONFIG_FREERADIUS3_OPENSSL=y +CONFIG_PACKAGE_freeradius3-common=m +CONFIG_PACKAGE_freeradius3-default=m +CONFIG_PACKAGE_freeradius3-democerts=m +CONFIG_PACKAGE_freeradius3-mod-always=m +CONFIG_PACKAGE_freeradius3-mod-attr-filter=m +CONFIG_PACKAGE_freeradius3-mod-chap=m +CONFIG_PACKAGE_freeradius3-mod-counter=m +CONFIG_PACKAGE_freeradius3-mod-date=m +CONFIG_PACKAGE_freeradius3-mod-detail=m +CONFIG_PACKAGE_freeradius3-mod-digest=m +CONFIG_PACKAGE_freeradius3-mod-dynamic-clients=m +CONFIG_PACKAGE_freeradius3-mod-eap=m +CONFIG_PACKAGE_freeradius3-mod-eap-fast=m +CONFIG_PACKAGE_freeradius3-mod-eap-gtc=m +CONFIG_PACKAGE_freeradius3-mod-eap-md5=m +CONFIG_PACKAGE_freeradius3-mod-eap-mschapv2=m +CONFIG_PACKAGE_freeradius3-mod-eap-peap=m +CONFIG_PACKAGE_freeradius3-mod-eap-pwd=m +CONFIG_PACKAGE_freeradius3-mod-eap-tls=m +CONFIG_PACKAGE_freeradius3-mod-eap-ttls=m +CONFIG_PACKAGE_freeradius3-mod-exec=m +CONFIG_PACKAGE_freeradius3-mod-expiration=m +CONFIG_PACKAGE_freeradius3-mod-expr=m +CONFIG_PACKAGE_freeradius3-mod-files=m +CONFIG_PACKAGE_freeradius3-mod-ippool=m +CONFIG_PACKAGE_freeradius3-mod-krb5=m +CONFIG_PACKAGE_freeradius3-mod-ldap=m +CONFIG_PACKAGE_freeradius3-mod-linelog=m +CONFIG_PACKAGE_freeradius3-mod-logintime=m +CONFIG_PACKAGE_freeradius3-mod-mschap=m +CONFIG_PACKAGE_freeradius3-mod-pam=m +CONFIG_PACKAGE_freeradius3-mod-pap=m +CONFIG_PACKAGE_freeradius3-mod-passwd=m +CONFIG_PACKAGE_freeradius3-mod-preprocess=m +CONFIG_PACKAGE_freeradius3-mod-python3=m +CONFIG_PACKAGE_freeradius3-mod-radutmp=m +CONFIG_PACKAGE_freeradius3-mod-realm=m +CONFIG_PACKAGE_freeradius3-mod-redis=m +CONFIG_PACKAGE_freeradius3-mod-rediswho=m +CONFIG_PACKAGE_freeradius3-mod-replicate=m +CONFIG_PACKAGE_freeradius3-mod-rest=m +CONFIG_PACKAGE_freeradius3-mod-soh=m +CONFIG_PACKAGE_freeradius3-mod-sometimes=m +CONFIG_PACKAGE_freeradius3-mod-sql=m +CONFIG_PACKAGE_freeradius3-mod-sql-map=m +CONFIG_PACKAGE_freeradius3-mod-sql-mysql=m +CONFIG_PACKAGE_freeradius3-mod-sql-null=m +CONFIG_PACKAGE_freeradius3-mod-sql-postgresql=m +CONFIG_PACKAGE_freeradius3-mod-sql-sqlite=m +CONFIG_PACKAGE_freeradius3-mod-sqlcounter=m +CONFIG_PACKAGE_freeradius3-mod-sqlippool=m +CONFIG_PACKAGE_freeradius3-mod-unix=m +CONFIG_PACKAGE_freeradius3-mod-unpack=m +CONFIG_PACKAGE_freeradius3-mod-utf8=m +CONFIG_PACKAGE_freeradius3-mod-wimax=m +CONFIG_PACKAGE_freeradius3-mod-yubikey=m +CONFIG_PACKAGE_freeradius3-utils=m # end of FreeRADIUS (version 3) # # IP Addresses and Names # -# CONFIG_PACKAGE_aggregate is not set -# CONFIG_PACKAGE_announce is not set -# CONFIG_PACKAGE_avahi-autoipd is not set -# CONFIG_PACKAGE_avahi-daemon-service-http is not set -# CONFIG_PACKAGE_avahi-daemon-service-ssh is not set -# CONFIG_PACKAGE_avahi-dbus-daemon is not set -# CONFIG_PACKAGE_avahi-dnsconfd is not set -# CONFIG_PACKAGE_avahi-nodbus-daemon is not set -# CONFIG_PACKAGE_avahi-utils is not set -# CONFIG_PACKAGE_bind-check is not set -# CONFIG_PACKAGE_bind-client is not set -# CONFIG_PACKAGE_bind-ddns-confgen is not set -# CONFIG_PACKAGE_bind-dig is not set -# CONFIG_PACKAGE_bind-dnssec is not set -# CONFIG_PACKAGE_bind-host is not set -# CONFIG_PACKAGE_bind-nslookup is not set -# CONFIG_PACKAGE_bind-rndc is not set -# CONFIG_PACKAGE_bind-server is not set -# CONFIG_PACKAGE_bind-tools is not set -# CONFIG_PACKAGE_ddns-scripts is not set -# CONFIG_PACKAGE_ddns-scripts-services is not set -# CONFIG_PACKAGE_dhcp-forwarder is not set -# CONFIG_PACKAGE_dhtd is not set -# CONFIG_PACKAGE_dns-over-https is not set -# CONFIG_PACKAGE_dnscrypt-proxy is not set -# CONFIG_PACKAGE_dnscrypt-proxy-resolvers is not set -# CONFIG_PACKAGE_dnsdist is not set -# CONFIG_PACKAGE_dnsdist-full is not set -# CONFIG_PACKAGE_dnslookup is not set -# CONFIG_PACKAGE_dnsproxy is not set -# CONFIG_PACKAGE_drill is not set -# CONFIG_PACKAGE_hostip is not set -# CONFIG_PACKAGE_idn is not set -# CONFIG_PACKAGE_idn2 is not set -# CONFIG_PACKAGE_inadyn is not set -# CONFIG_PACKAGE_isc-dhcp-client-ipv4 is not set -# CONFIG_PACKAGE_isc-dhcp-client-ipv6 is not set -# CONFIG_PACKAGE_isc-dhcp-omshell-ipv4 is not set -# CONFIG_PACKAGE_isc-dhcp-omshell-ipv6 is not set -# CONFIG_PACKAGE_isc-dhcp-relay-ipv4 is not set -# CONFIG_PACKAGE_isc-dhcp-relay-ipv6 is not set -# CONFIG_PACKAGE_isc-dhcp-server-ipv4 is not set -# CONFIG_PACKAGE_isc-dhcp-server-ipv6 is not set -# CONFIG_PACKAGE_kadnode is not set -# CONFIG_PACKAGE_kea-admin is not set -# CONFIG_PACKAGE_kea-ctrl is not set -# CONFIG_PACKAGE_kea-dhcp-ddns is not set -# CONFIG_PACKAGE_kea-dhcp4 is not set -# CONFIG_PACKAGE_kea-dhcp6 is not set -# CONFIG_PACKAGE_kea-hook-ha is not set -# CONFIG_PACKAGE_kea-hook-lease-cmds is not set -# CONFIG_PACKAGE_kea-lfc is not set -# CONFIG_PACKAGE_kea-libs is not set -# CONFIG_PACKAGE_kea-perfdhcp is not set -# CONFIG_PACKAGE_kea-shell is not set -# CONFIG_PACKAGE_knot is not set -# CONFIG_PACKAGE_knot-dig is not set -# CONFIG_PACKAGE_knot-host is not set -# CONFIG_PACKAGE_knot-keymgr is not set -# CONFIG_PACKAGE_knot-nsupdate is not set -# CONFIG_PACKAGE_knot-resolver is not set +CONFIG_PACKAGE_aggregate=m +CONFIG_PACKAGE_announce=m +CONFIG_PACKAGE_avahi-autoipd=m +CONFIG_PACKAGE_avahi-daemon-service-http=m +CONFIG_PACKAGE_avahi-daemon-service-ssh=m +CONFIG_PACKAGE_avahi-dbus-daemon=m +CONFIG_PACKAGE_avahi-dnsconfd=m +CONFIG_PACKAGE_avahi-nodbus-daemon=m +CONFIG_PACKAGE_avahi-utils=m +CONFIG_PACKAGE_bind-check=m +CONFIG_PACKAGE_bind-client=m +CONFIG_PACKAGE_bind-ddns-confgen=m +CONFIG_PACKAGE_bind-dig=m +CONFIG_PACKAGE_bind-dnssec=m +CONFIG_PACKAGE_bind-host=m +CONFIG_PACKAGE_bind-nslookup=m +CONFIG_PACKAGE_bind-rndc=m +CONFIG_PACKAGE_bind-server=m +# CONFIG_BIND_LIBJSON is not set +# CONFIG_BIND_LIBXML2 is not set +CONFIG_BIND_ENABLE_DOH=y +# CONFIG_BIND_ENABLE_GSSAPI is not set +CONFIG_PACKAGE_bind-server-filter-aaaa=m +CONFIG_PACKAGE_bind-tools=m +CONFIG_PACKAGE_ddns-scripts=m +CONFIG_PACKAGE_ddns-scripts-cloudflare=m +CONFIG_PACKAGE_ddns-scripts-cnkuai=m +CONFIG_PACKAGE_ddns-scripts-digitalocean=m +CONFIG_PACKAGE_ddns-scripts-dnspod=m +CONFIG_PACKAGE_ddns-scripts-freedns=m +CONFIG_PACKAGE_ddns-scripts-gandi=m +CONFIG_PACKAGE_ddns-scripts-gcp=m +CONFIG_PACKAGE_ddns-scripts-godaddy=m +CONFIG_PACKAGE_ddns-scripts-luadns=m +CONFIG_PACKAGE_ddns-scripts-noip=m +CONFIG_PACKAGE_ddns-scripts-ns1=m +CONFIG_PACKAGE_ddns-scripts-nsupdate=m +CONFIG_PACKAGE_ddns-scripts-one=m +CONFIG_PACKAGE_ddns-scripts-pdns=m +CONFIG_PACKAGE_ddns-scripts-route53=m +CONFIG_PACKAGE_ddns-scripts-services=m +CONFIG_PACKAGE_ddns-scripts-transip=m +CONFIG_PACKAGE_ddns-scripts-utils=m +CONFIG_PACKAGE_dhcp-forwarder=m +CONFIG_PACKAGE_dhtd=m +CONFIG_PACKAGE_dns-over-https=m +CONFIG_PACKAGE_dnscrypt-proxy=m + +# +# Configuration +# +# CONFIG_DNSCRYPT_ENABLE_PLUGINS is not set +# end of Configuration + +CONFIG_PACKAGE_dnscrypt-proxy-resolvers=m +CONFIG_PACKAGE_dnsdist=m + +# +# Configuration +# + +# +# SSL Support +# +# CONFIG_DNSDIST_GNUTLS is not set +CONFIG_DNSDIST_OPENSSL=y +# CONFIG_DNSDIST_NOSSL is not set + +# +# DNS over HTTPS/TLS Support +# +CONFIG_DNSDIST_DNS_OVER_HTTPS=y +CONFIG_DNSDIST_DNS_OVER_TLS=y +# CONFIG_DNSDIST_CARBON is not set +# CONFIG_DNSDIST_LMDB is not set +# CONFIG_DNSDIST_COMPLETION is not set +# CONFIG_DNSDIST_DEBUG_SYMBOLS is not set +# CONFIG_DNSDIST_DELAY_PIPE is not set +# CONFIG_DNSDIST_DYNBLOCKS is not set +# CONFIG_DNSDIST_DNSTAP is not set +# CONFIG_DNSDIST_EBPF is not set +# CONFIG_DNSDIST_ECS_ACTIONS is not set +# CONFIG_DNSDIST_HASHED is not set +# CONFIG_DNSDIST_IPCIPHER is not set +# CONFIG_DNSDIST_LIBEDIT is not set +# CONFIG_DNSDIST_LUA_ADVANCED is not set +CONFIG_DNSDIST_MAC=y +# CONFIG_DNSDIST_NET_SNMP is not set +# CONFIG_DNSDIST_OCSP_STAPLING is not set +# CONFIG_DNSDIST_PIE is not set +# CONFIG_DNSDIST_PROTOBUF is not set +# CONFIG_DNSDIST_PROMETHEUS is not set +# CONFIG_DNSDIST_RE2 is not set +# CONFIG_DNSDIST_RULES_ALTER is not set +# CONFIG_DNSDIST_SECPOLL is not set +# CONFIG_DNSDIST_SODIUM is not set +# CONFIG_DNSDIST_TOP_N is not set +# CONFIG_DNSDIST_WEB is not set +# end of Configuration + +CONFIG_PACKAGE_dnsdist-full=m +CONFIG_PACKAGE_dnslookup=m +CONFIG_PACKAGE_dnsproxy=m +CONFIG_PACKAGE_drill=m +CONFIG_PACKAGE_hostip=m +CONFIG_PACKAGE_idn=m +CONFIG_PACKAGE_idn2=m +CONFIG_PACKAGE_inadyn=m +CONFIG_PACKAGE_isc-dhcp-client-ipv4=m +CONFIG_PACKAGE_isc-dhcp-client-ipv6=m +CONFIG_PACKAGE_isc-dhcp-dyndns=m +CONFIG_PACKAGE_isc-dhcp-omshell-ipv4=m +CONFIG_PACKAGE_isc-dhcp-omshell-ipv6=m +CONFIG_PACKAGE_isc-dhcp-relay-ipv4=m +CONFIG_PACKAGE_isc-dhcp-relay-ipv6=m +CONFIG_PACKAGE_isc-dhcp-server-ipv4=m +CONFIG_PACKAGE_isc-dhcp-server-ipv6=m +CONFIG_PACKAGE_kadnode=m + +# +# Configuration +# +CONFIG_KADNODE_ENABLE_LPD=y +CONFIG_KADNODE_ENABLE_CMD=y +CONFIG_KADNODE_ENABLE_DNS=y +CONFIG_KADNODE_ENABLE_TLS=y +CONFIG_KADNODE_ENABLE_BOB=y +# CONFIG_KADNODE_ENABLE_UPNP is not set +# CONFIG_KADNODE_ENABLE_NATPMP is not set +# CONFIG_KADNODE_ENABLE_DEBUG is not set +# end of Configuration + +CONFIG_PACKAGE_kea-admin=m +CONFIG_PACKAGE_kea-ctrl=m +CONFIG_PACKAGE_kea-dhcp-ddns=m +CONFIG_PACKAGE_kea-dhcp4=m +CONFIG_PACKAGE_kea-dhcp6=m +CONFIG_PACKAGE_kea-hook-ha=m +CONFIG_PACKAGE_kea-hook-lease-cmds=m +CONFIG_PACKAGE_kea-lfc=m +CONFIG_PACKAGE_kea-libs=m +CONFIG_PACKAGE_kea-perfdhcp=m +CONFIG_PACKAGE_kea-shell=m +CONFIG_PACKAGE_kea-uci=m +CONFIG_PACKAGE_knot=m +CONFIG_PACKAGE_knot-dig=m +CONFIG_PACKAGE_knot-host=m +CONFIG_PACKAGE_knot-keymgr=m +CONFIG_PACKAGE_knot-nsupdate=m +CONFIG_PACKAGE_knot-resolver=m # # Configuration @@ -5545,49 +10458,129 @@ CONFIG_PACKAGE_xtables-nft=m # CONFIG_PACKAGE_knot-resolver_dnstap is not set # end of Configuration -# CONFIG_PACKAGE_knot-tests is not set -# CONFIG_PACKAGE_knot-zonecheck is not set -# CONFIG_PACKAGE_ldns-examples is not set -# CONFIG_PACKAGE_mdns-utils is not set -# CONFIG_PACKAGE_mdnsd is not set -# CONFIG_PACKAGE_mdnsresponder is not set -# CONFIG_PACKAGE_nsd is not set -# CONFIG_PACKAGE_nsd-control is not set -# CONFIG_PACKAGE_nsd-control-setup is not set -# CONFIG_PACKAGE_nsd-nossl is not set -# CONFIG_PACKAGE_ohybridproxy is not set -# CONFIG_PACKAGE_overture is not set -# CONFIG_PACKAGE_pdns is not set -# CONFIG_PACKAGE_pdns-ixfrdist is not set -# CONFIG_PACKAGE_pdns-recursor is not set -# CONFIG_PACKAGE_pdns-tools is not set -# CONFIG_PACKAGE_stubby is not set -# CONFIG_PACKAGE_tor-hs is not set -# CONFIG_PACKAGE_torsocks is not set -# CONFIG_PACKAGE_unbound-anchor is not set -# CONFIG_PACKAGE_unbound-checkconf is not set -# CONFIG_PACKAGE_unbound-control is not set -# CONFIG_PACKAGE_unbound-control-setup is not set -# CONFIG_PACKAGE_unbound-daemon is not set -# CONFIG_PACKAGE_unbound-host is not set -# CONFIG_PACKAGE_v2ray-geoip is not set -# CONFIG_PACKAGE_v2ray-geosite is not set -# CONFIG_PACKAGE_v2ray-geosite-ir is not set -# CONFIG_PACKAGE_wsdd2 is not set -# CONFIG_PACKAGE_zonestitcher is not set +CONFIG_PACKAGE_knot-tests=m +CONFIG_PACKAGE_knot-zonecheck=m +CONFIG_PACKAGE_ldns-examples=m +CONFIG_PACKAGE_mdns-utils=m +CONFIG_PACKAGE_mdnsd=m +CONFIG_PACKAGE_mdnsresponder=m +CONFIG_PACKAGE_nsd=m +CONFIG_PACKAGE_nsd-control=m +CONFIG_PACKAGE_nsd-control-setup=m +CONFIG_PACKAGE_nsd-nossl=m +CONFIG_PACKAGE_ohybridproxy=m +CONFIG_PACKAGE_overture=m +CONFIG_PACKAGE_pdns=m + +# +# Select PowerDNS backends +# + +# +# PowerDNS backends +# +CONFIG_PACKAGE_pdns-backend-geoip=m +CONFIG_PACKAGE_pdns-backend-mysql=m +CONFIG_PACKAGE_pdns-backend-odbc=m +CONFIG_PACKAGE_pdns-backend-pgsql=m +CONFIG_PACKAGE_pdns-backend-sqlite3=m +CONFIG_PACKAGE_pdns-backend-ldap=m +CONFIG_PACKAGE_pdns-backend-lua2=m +CONFIG_PACKAGE_pdns-backend-pipe=m +CONFIG_PACKAGE_pdns-backend-remote=m +# end of Select PowerDNS backends + +CONFIG_PACKAGE_pdns-ixfrdist=m +CONFIG_PACKAGE_pdns-recursor=m +CONFIG_PACKAGE_pdns-tools=m +CONFIG_PACKAGE_stubby=m +CONFIG_PACKAGE_tor-hs=m +CONFIG_PACKAGE_torsocks=m +CONFIG_PACKAGE_unbound-anchor=m +CONFIG_PACKAGE_unbound-checkconf=m +CONFIG_PACKAGE_unbound-control=m +CONFIG_PACKAGE_unbound-control-setup=m +CONFIG_PACKAGE_unbound-daemon=m +CONFIG_PACKAGE_unbound-host=m +CONFIG_PACKAGE_v2ray-geoip=m +CONFIG_PACKAGE_v2ray-geosite=m +CONFIG_PACKAGE_v2ray-geosite-ir=m +CONFIG_PACKAGE_wsdd2=m +CONFIG_PACKAGE_zonestitcher=m # end of IP Addresses and Names # # Instant Messaging # -# CONFIG_PACKAGE_bitlbee is not set -# CONFIG_PACKAGE_irssi is not set -# CONFIG_PACKAGE_ngircd is not set -# CONFIG_PACKAGE_ngircd-nossl is not set -# CONFIG_PACKAGE_prosody is not set -# CONFIG_PACKAGE_umurmur-mbedtls is not set -# CONFIG_PACKAGE_umurmur-openssl is not set -# CONFIG_PACKAGE_znc is not set +CONFIG_PACKAGE_bitlbee=m +CONFIG_PACKAGE_irssi=m +CONFIG_PACKAGE_ngircd=m +CONFIG_PACKAGE_ngircd-nossl=m +CONFIG_PACKAGE_prosody=m +CONFIG_PACKAGE_umurmur-mbedtls=m +CONFIG_PACKAGE_umurmur-openssl=m +CONFIG_PACKAGE_znc=m + +# +# Configuration +# +# CONFIG_ZNC_ICU is not set +# end of Configuration + +CONFIG_PACKAGE_znc-mod-adminlog=m +CONFIG_PACKAGE_znc-mod-alias=m +CONFIG_PACKAGE_znc-mod-autoattach=m +CONFIG_PACKAGE_znc-mod-autocycle=m +CONFIG_PACKAGE_znc-mod-autoop=m +CONFIG_PACKAGE_znc-mod-autoreply=m +CONFIG_PACKAGE_znc-mod-autovoice=m +CONFIG_PACKAGE_znc-mod-awaynick=m +CONFIG_PACKAGE_znc-mod-awaystore=m +CONFIG_PACKAGE_znc-mod-block-motd=m +CONFIG_PACKAGE_znc-mod-blockuser=m +CONFIG_PACKAGE_znc-mod-bouncedcc=m +CONFIG_PACKAGE_znc-mod-buffextras=m +CONFIG_PACKAGE_znc-mod-cert=m +CONFIG_PACKAGE_znc-mod-certauth=m +CONFIG_PACKAGE_znc-mod-chansaver=m +CONFIG_PACKAGE_znc-mod-clearbufferonmsg=m +CONFIG_PACKAGE_znc-mod-clientnotify=m +CONFIG_PACKAGE_znc-mod-controlpanel=m +CONFIG_PACKAGE_znc-mod-crypt=m +CONFIG_PACKAGE_znc-mod-ctcpflood=m +CONFIG_PACKAGE_znc-mod-dcc=m +CONFIG_PACKAGE_znc-mod-disconkick=m +CONFIG_PACKAGE_znc-mod-fail2ban=m +CONFIG_PACKAGE_znc-mod-flooddetach=m +CONFIG_PACKAGE_znc-mod-identfile=m +CONFIG_PACKAGE_znc-mod-imapauth=m +CONFIG_PACKAGE_znc-mod-keepnick=m +CONFIG_PACKAGE_znc-mod-kickrejoin=m +CONFIG_PACKAGE_znc-mod-lastseen=m +CONFIG_PACKAGE_znc-mod-listsockets=m +CONFIG_PACKAGE_znc-mod-log=m +CONFIG_PACKAGE_znc-mod-missingmotd=m +CONFIG_PACKAGE_znc-mod-modules_online=m +CONFIG_PACKAGE_znc-mod-nickserv=m +CONFIG_PACKAGE_znc-mod-notes=m +CONFIG_PACKAGE_znc-mod-notify-connect=m +CONFIG_PACKAGE_znc-mod-perform=m +CONFIG_PACKAGE_znc-mod-playback=m +CONFIG_PACKAGE_znc-mod-push=m +CONFIG_PACKAGE_znc-mod-raw=m +CONFIG_PACKAGE_znc-mod-route-replies=m +CONFIG_PACKAGE_znc-mod-sasl=m +CONFIG_PACKAGE_znc-mod-savebuff=m +CONFIG_PACKAGE_znc-mod-schat=m +CONFIG_PACKAGE_znc-mod-send-raw=m +CONFIG_PACKAGE_znc-mod-shell=m +CONFIG_PACKAGE_znc-mod-simple-away=m +CONFIG_PACKAGE_znc-mod-stickychan=m +CONFIG_PACKAGE_znc-mod-watch=m +CONFIG_PACKAGE_znc-mod-webadmin=m +CONFIG_PACKAGE_znc-webskin-dark-clouds=m +CONFIG_PACKAGE_znc-webskin-forest=m +CONFIG_PACKAGE_znc-webskin-ice=m # end of Instant Messaging # @@ -5624,130 +10617,228 @@ CONFIG_PACKAGE_xtables-nft=m # # LoRaWAN # -# CONFIG_PACKAGE_basicstation is not set -# CONFIG_PACKAGE_libloragw-tests is not set -# CONFIG_PACKAGE_libloragw-utils is not set +CONFIG_PACKAGE_basicstation=m +CONFIG_PACKAGE_libloragw-tests=m +CONFIG_PACKAGE_libloragw-utils=m # end of LoRaWAN # # NMAP Suite # -# CONFIG_PACKAGE_ncat is not set -# CONFIG_PACKAGE_ncat-full is not set -# CONFIG_PACKAGE_ncat-ssl is not set -# CONFIG_PACKAGE_ndiff is not set -# CONFIG_PACKAGE_nmap is not set -# CONFIG_PACKAGE_nmap-full is not set -# CONFIG_PACKAGE_nmap-ssl is not set -# CONFIG_PACKAGE_nping is not set -# CONFIG_PACKAGE_nping-ssl is not set +CONFIG_PACKAGE_ncat=m +CONFIG_PACKAGE_ncat-full=m +CONFIG_PACKAGE_ncat-ssl=m +CONFIG_PACKAGE_ndiff=m +CONFIG_PACKAGE_ndiff-src=m +CONFIG_PACKAGE_nmap=m +CONFIG_PACKAGE_nmap-full=m +CONFIG_PACKAGE_nmap-ssl=m +CONFIG_PACKAGE_nping=m +CONFIG_PACKAGE_nping-ssl=m # end of NMAP Suite # # NTRIP # -# CONFIG_PACKAGE_ntripcaster is not set -# CONFIG_PACKAGE_ntripclient is not set -# CONFIG_PACKAGE_ntripserver is not set +CONFIG_PACKAGE_ntripcaster=m +CONFIG_PACKAGE_ntripclient=m +CONFIG_PACKAGE_ntripserver=m # end of NTRIP # # OLSR.org network framework # -# CONFIG_PACKAGE_oonf-dlep-proxy is not set -# CONFIG_PACKAGE_oonf-dlep-radio is not set -# CONFIG_PACKAGE_oonf-init-scripts is not set -# CONFIG_PACKAGE_oonf-olsrd2 is not set +CONFIG_PACKAGE_oonf-dlep-proxy=m +CONFIG_PACKAGE_oonf-dlep-radio=m +CONFIG_PACKAGE_oonf-init-scripts=m +CONFIG_PACKAGE_oonf-olsrd2=m + +# +# Optional Plugins +# +# CONFIG_OONF_NHDP_AUTOLL4 is not set +CONFIG_OONF_OLSRV2_LAN_IMPORT=y +CONFIG_OONF_OLSRV2_ROUTE_MODIFIER=y +# CONFIG_OONF_GENERIC_DLEP_ROUTER is not set +CONFIG_OONF_GENERIC_REMOTECONTROL=y +# CONFIG_OONF_GENERIC_HTTP is not set +CONFIG_OONF_OLSRV2_MPR=y +CONFIG_OONF_OLSRV2_LAN=y +# CONFIG_OONF_OLSRV2_OLD_LAN is not set +# end of Optional Plugins # end of OLSR.org network framework # # Open vSwitch # -# CONFIG_PACKAGE_openvswitch is not set -# CONFIG_PACKAGE_openvswitch-ovn-host is not set -# CONFIG_PACKAGE_openvswitch-ovn-north is not set -# CONFIG_PACKAGE_openvswitch-python3 is not set -# CONFIG_PACKAGE_ovsd is not set +CONFIG_PACKAGE_openvswitch=m + +# +# Configuration +# +CONFIG_OPENVSWITCH_WITH_LIBUNBOUND=y +# end of Configuration + +CONFIG_PACKAGE_openvswitch-common=m +CONFIG_PACKAGE_openvswitch-libofproto=m +CONFIG_PACKAGE_openvswitch-libopenvswitch=m +CONFIG_PACKAGE_openvswitch-libovn=m +CONFIG_PACKAGE_openvswitch-libovsdb=m +CONFIG_PACKAGE_openvswitch-ovn-common=m +CONFIG_PACKAGE_openvswitch-ovn-host=m +CONFIG_PACKAGE_openvswitch-ovn-north=m +CONFIG_PACKAGE_openvswitch-ovsdb=m +CONFIG_PACKAGE_openvswitch-python3=m +CONFIG_PACKAGE_openvswitch-vswitchd=m +CONFIG_PACKAGE_ovsd=m # end of Open vSwitch # # OpenLDAP # -# CONFIG_PACKAGE_libopenldap is not set -# CONFIG_PACKAGE_openldap-server is not set -# CONFIG_PACKAGE_openldap-utils is not set +CONFIG_PACKAGE_libopenldap=m +CONFIG_PACKAGE_openldap-server=m +CONFIG_PACKAGE_openldap-utils=m # end of OpenLDAP # # Printing # -# CONFIG_PACKAGE_p910nd is not set +CONFIG_PACKAGE_p910nd=m # end of Printing # # Routing and Redirection # -# CONFIG_PACKAGE_babel-pinger is not set -# CONFIG_PACKAGE_babeld is not set -# CONFIG_PACKAGE_batmand is not set -# CONFIG_PACKAGE_bcp38 is not set -# CONFIG_PACKAGE_bfdd is not set -# CONFIG_PACKAGE_bird2 is not set -# CONFIG_PACKAGE_bird2c is not set -# CONFIG_PACKAGE_bird2cl is not set -# CONFIG_PACKAGE_bmx7 is not set -# CONFIG_PACKAGE_cjdns is not set -# CONFIG_PACKAGE_cjdns-tests is not set -# CONFIG_PACKAGE_dcstad is not set -# CONFIG_PACKAGE_dcwapd is not set +CONFIG_PACKAGE_babel-pinger=m +CONFIG_PACKAGE_babeld=m +CONFIG_PACKAGE_batmand=m +CONFIG_PACKAGE_bcp38=m +CONFIG_PACKAGE_bfdd=m +CONFIG_PACKAGE_bird2=m +CONFIG_PACKAGE_bird2c=m +CONFIG_PACKAGE_bird2cl=m +CONFIG_PACKAGE_bmx7=m +CONFIG_PACKAGE_bmx7-iwinfo=m +CONFIG_PACKAGE_bmx7-json=m +CONFIG_PACKAGE_bmx7-sms=m +CONFIG_PACKAGE_bmx7-table=m +CONFIG_PACKAGE_bmx7-topology=m +CONFIG_PACKAGE_bmx7-tun=m +CONFIG_PACKAGE_bmx7-uci-config=m +CONFIG_PACKAGE_cjdns=m +CONFIG_PACKAGE_cjdns-tests=m +CONFIG_PACKAGE_dcstad=m +CONFIG_PACKAGE_dcwapd=m # CONFIG_PACKAGE_devlink is not set -# CONFIG_PACKAGE_frr is not set +CONFIG_PACKAGE_frr=m +CONFIG_PACKAGE_frr-libfrr=m + +# +# SSL support +# +# CONFIG_FRR_OPENSSL is not set +CONFIG_FRR_INTERNAL=y + +# +# SNMP support +# +# CONFIG_FRR_SNMP is not set +CONFIG_FRR_NO_SNMP=y + +# +# Packages +# +CONFIG_PACKAGE_frr-babeld=m +CONFIG_PACKAGE_frr-bfdd=m +CONFIG_PACKAGE_frr-bgpd=m +CONFIG_PACKAGE_frr-eigrpd=m +CONFIG_PACKAGE_frr-fabricd=m +CONFIG_PACKAGE_frr-isisd=m +CONFIG_PACKAGE_frr-ldpd=m +CONFIG_PACKAGE_frr-nhrpd=m +CONFIG_PACKAGE_frr-ospf6d=m +CONFIG_PACKAGE_frr-ospfd=m +CONFIG_PACKAGE_frr-pathd=m +CONFIG_PACKAGE_frr-pbrd=m +CONFIG_PACKAGE_frr-pimd=m +CONFIG_PACKAGE_frr-pythontools=m +CONFIG_PACKAGE_frr-ripd=m +CONFIG_PACKAGE_frr-ripngd=m +CONFIG_PACKAGE_frr-staticd=m +CONFIG_PACKAGE_frr-vrrpd=m +CONFIG_PACKAGE_frr-vtysh=m +CONFIG_PACKAGE_frr-watchfrr=m +CONFIG_PACKAGE_frr-zebra=m # CONFIG_PACKAGE_genl is not set -# CONFIG_PACKAGE_igmpproxy is not set +CONFIG_PACKAGE_igmpproxy=m # CONFIG_PACKAGE_ip-bridge is not set -# CONFIG_PACKAGE_ip-full is not set +CONFIG_PACKAGE_ip-full=m # CONFIG_PACKAGE_ip-tiny is not set # CONFIG_PACKAGE_lldpd is not set -# CONFIG_PACKAGE_mcproxy is not set -# CONFIG_PACKAGE_mrmctl is not set -# CONFIG_PACKAGE_mwan3 is not set +CONFIG_PACKAGE_mcproxy=m +CONFIG_PACKAGE_mrmctl=m +CONFIG_PACKAGE_mwan3=m # CONFIG_PACKAGE_nstat is not set -# CONFIG_PACKAGE_olsrd is not set -# CONFIG_PACKAGE_pbr is not set -# CONFIG_PACKAGE_pbr-iptables is not set -# CONFIG_PACKAGE_prince is not set +CONFIG_PACKAGE_olsrd=m +CONFIG_PACKAGE_olsrd-mod-arprefresh=m +CONFIG_PACKAGE_olsrd-mod-bmf=m +CONFIG_PACKAGE_olsrd-mod-dot-draw=m +CONFIG_PACKAGE_olsrd-mod-dyn-gw=m +CONFIG_PACKAGE_olsrd-mod-dyn-gw-plain=m +CONFIG_PACKAGE_olsrd-mod-filtergw=m +CONFIG_PACKAGE_olsrd-mod-httpinfo=m +CONFIG_PACKAGE_olsrd-mod-jsoninfo=m +CONFIG_PACKAGE_olsrd-mod-mdns=m +CONFIG_PACKAGE_olsrd-mod-nameservice=m +CONFIG_PACKAGE_olsrd-mod-netjson=m +CONFIG_PACKAGE_olsrd-mod-p2pd=m +CONFIG_PACKAGE_olsrd-mod-pgraph=m +CONFIG_PACKAGE_olsrd-mod-pud=m +CONFIG_PACKAGE_olsrd-mod-quagga=m +CONFIG_PACKAGE_olsrd-mod-secure=m +CONFIG_PACKAGE_olsrd-mod-sgwdynspeed=m +CONFIG_PACKAGE_olsrd-mod-txtinfo=m +CONFIG_PACKAGE_olsrd-mod-watchdog=m +CONFIG_PACKAGE_olsrd-utils=m +CONFIG_PACKAGE_pbr=m +CONFIG_PACKAGE_pbr-iptables=m +CONFIG_PACKAGE_prince=m # CONFIG_PACKAGE_rdma is not set -# CONFIG_PACKAGE_relayd is not set -# CONFIG_PACKAGE_smcroute is not set -# CONFIG_PACKAGE_ss is not set -# CONFIG_PACKAGE_sslh is not set +CONFIG_PACKAGE_relayd=m +CONFIG_PACKAGE_smcroute=m +CONFIG_PACKAGE_ss=m +CONFIG_PACKAGE_sslh=m +# CONFIG_SSLH_SELECT is not set # CONFIG_PACKAGE_tc-bpf is not set # CONFIG_PACKAGE_tc-full is not set # CONFIG_PACKAGE_tc-mod-iptables is not set CONFIG_PACKAGE_tc-tiny=m -# CONFIG_PACKAGE_tcpproxy is not set -# CONFIG_PACKAGE_udp-broadcast-relay-redux is not set -# CONFIG_PACKAGE_vis is not set -# CONFIG_PACKAGE_yggdrasil is not set +CONFIG_PACKAGE_tcpproxy=m +CONFIG_PACKAGE_udp-broadcast-relay-redux=m +CONFIG_PACKAGE_vis=m +CONFIG_PACKAGE_yggdrasil=m # end of Routing and Redirection # # SSH # -# CONFIG_PACKAGE_autossh is not set -# CONFIG_PACKAGE_mosh-client is not set -# CONFIG_PACKAGE_mosh-server is not set -# CONFIG_PACKAGE_openssh-client is not set -# CONFIG_PACKAGE_openssh-client-utils is not set -# CONFIG_PACKAGE_openssh-keygen is not set -# CONFIG_PACKAGE_openssh-moduli is not set -# CONFIG_PACKAGE_openssh-server is not set -# CONFIG_PACKAGE_openssh-server-pam is not set -# CONFIG_PACKAGE_openssh-sftp-avahi-service is not set -# CONFIG_PACKAGE_openssh-sftp-client is not set -# CONFIG_PACKAGE_openssh-sftp-server is not set -# CONFIG_PACKAGE_sshtunnel is not set -# CONFIG_PACKAGE_tmate is not set +CONFIG_PACKAGE_autossh=m +CONFIG_PACKAGE_mosh-client=m +CONFIG_PACKAGE_mosh-full=m +CONFIG_PACKAGE_mosh-server=m +CONFIG_PACKAGE_openssh-client=m +CONFIG_PACKAGE_openssh-client-utils=m +CONFIG_PACKAGE_openssh-keygen=m +CONFIG_PACKAGE_openssh-moduli=m +CONFIG_PACKAGE_openssh-server=m +CONFIG_OPENSSH_LIBFIDO2=y +CONFIG_PACKAGE_openssh-server-pam=m +CONFIG_PACKAGE_openssh-sftp-avahi-service=m +CONFIG_PACKAGE_openssh-sftp-client=m +CONFIG_PACKAGE_openssh-sftp-server=m +CONFIG_PACKAGE_sshtunnel=m +CONFIG_PACKAGE_tmate=m # end of SSH # @@ -5813,32 +10904,327 @@ CONFIG_PACKAGE_tc-tiny=m # # Tcpreplay # -# CONFIG_PACKAGE_tcpbridge is not set -# CONFIG_PACKAGE_tcpcapinfo is not set -# CONFIG_PACKAGE_tcpliveplay is not set -# CONFIG_PACKAGE_tcpprep is not set -# CONFIG_PACKAGE_tcpreplay is not set -# CONFIG_PACKAGE_tcpreplay-all is not set -# CONFIG_PACKAGE_tcpreplay-edit is not set -# CONFIG_PACKAGE_tcprewrite is not set +CONFIG_PACKAGE_tcpbridge=m +CONFIG_PACKAGE_tcpcapinfo=m +CONFIG_PACKAGE_tcpliveplay=m +CONFIG_PACKAGE_tcpprep=m +CONFIG_PACKAGE_tcpreplay=m +CONFIG_PACKAGE_tcpreplay-all=m +CONFIG_PACKAGE_tcpreplay-edit=m +CONFIG_PACKAGE_tcprewrite=m # end of Tcpreplay # # Telephony # # CONFIG_PACKAGE_asterisk is not set -# CONFIG_PACKAGE_baresip is not set -# CONFIG_PACKAGE_coturn is not set +CONFIG_PACKAGE_baresip=m +CONFIG_PACKAGE_baresip-mod-aac=m +CONFIG_PACKAGE_baresip-mod-alsa=m +CONFIG_PACKAGE_baresip-mod-amr=m +CONFIG_PACKAGE_baresip-mod-aubridge=m +CONFIG_PACKAGE_baresip-mod-aufile=m +CONFIG_PACKAGE_baresip-mod-ausine=m +CONFIG_PACKAGE_baresip-mod-avcodec=m +CONFIG_PACKAGE_baresip-mod-avformat=m +CONFIG_PACKAGE_baresip-mod-b2bua=m +CONFIG_PACKAGE_baresip-mod-cons=m +CONFIG_PACKAGE_baresip-mod-ctrl-dbus=m +CONFIG_PACKAGE_baresip-mod-ctrl-tcp=m +CONFIG_PACKAGE_baresip-mod-debug-cmd=m +CONFIG_PACKAGE_baresip-mod-dtls-srtp=m +CONFIG_PACKAGE_baresip-mod-ebuacip=m +CONFIG_PACKAGE_baresip-mod-echo=m +CONFIG_PACKAGE_baresip-mod-evdev=m +CONFIG_PACKAGE_baresip-mod-fakevideo=m +CONFIG_PACKAGE_baresip-mod-g711=m +CONFIG_PACKAGE_baresip-mod-g722=m +CONFIG_PACKAGE_baresip-mod-g726=m +CONFIG_PACKAGE_baresip-mod-gst=m +CONFIG_PACKAGE_baresip-mod-gst-video=m +CONFIG_PACKAGE_baresip-mod-httpd=m +CONFIG_PACKAGE_baresip-mod-httpreq=m +CONFIG_PACKAGE_baresip-mod-l16=m +CONFIG_PACKAGE_baresip-mod-mixausrc=m +CONFIG_PACKAGE_baresip-mod-mqtt=m +CONFIG_PACKAGE_baresip-mod-multicast=m +CONFIG_PACKAGE_baresip-mod-mwi=m +CONFIG_PACKAGE_baresip-mod-natpmp=m +CONFIG_PACKAGE_baresip-mod-opus=m +CONFIG_PACKAGE_baresip-mod-opus-multistream=m +CONFIG_PACKAGE_baresip-mod-oss=m +CONFIG_PACKAGE_baresip-mod-plc=m +CONFIG_PACKAGE_baresip-mod-portaudio=m +CONFIG_PACKAGE_baresip-mod-presence=m +CONFIG_PACKAGE_baresip-mod-pulse=m +CONFIG_PACKAGE_baresip-mod-rtcpsummary=m +CONFIG_PACKAGE_baresip-mod-selfview=m +CONFIG_PACKAGE_baresip-mod-serreg=m +CONFIG_PACKAGE_baresip-mod-snapshot=m +CONFIG_PACKAGE_baresip-mod-sndfile=m +CONFIG_PACKAGE_baresip-mod-speex-pp=m +CONFIG_PACKAGE_baresip-mod-srtp=m +CONFIG_PACKAGE_baresip-mod-stdio=m +CONFIG_PACKAGE_baresip-mod-syslog=m +CONFIG_PACKAGE_baresip-mod-uuid=m +CONFIG_PACKAGE_baresip-mod-v4l2=m +CONFIG_PACKAGE_baresip-mod-v4l2-codec=m +CONFIG_PACKAGE_baresip-mod-vidbridge=m +CONFIG_PACKAGE_baresip-mod-vidinfo=m +CONFIG_PACKAGE_baresip-mod-vidloop=m +CONFIG_PACKAGE_baresip-mod-vp8=m +CONFIG_PACKAGE_baresip-mod-vp9=m +CONFIG_PACKAGE_baresip-mod-vumeter=m +CONFIG_PACKAGE_coturn=m + +# +# coturn configuration +# +CONFIG_COTURN_ENABLE_SQLITE=y +# CONFIG_COTURN_ENABLE_MYSQL is not set +# CONFIG_COTURN_ENABLE_POSTGRESQL is not set +# CONFIG_COTURN_ENABLE_REDIS is not set +# end of coturn configuration + # CONFIG_PACKAGE_freeswitch is not set -# CONFIG_PACKAGE_kamailio is not set -# CONFIG_PACKAGE_miax is not set -# CONFIG_PACKAGE_pcapsipdump is not set -# CONFIG_PACKAGE_rtpengine is not set -# CONFIG_PACKAGE_rtpengine-no-transcode is not set -# CONFIG_PACKAGE_rtpengine-recording is not set -# CONFIG_PACKAGE_rtpproxy is not set -# CONFIG_PACKAGE_sipp is not set -# CONFIG_PACKAGE_siproxd is not set +CONFIG_PACKAGE_kamailio=m +CONFIG_PACKAGE_kamailio-lib-libkamailio-ims=m +CONFIG_PACKAGE_kamailio-lib-libtrie=m +CONFIG_PACKAGE_kamailio-mod-acc=m +CONFIG_PACKAGE_kamailio-mod-acc-diameter=m +CONFIG_PACKAGE_kamailio-mod-acc-json=m +CONFIG_PACKAGE_kamailio-mod-alias-db=m +CONFIG_PACKAGE_kamailio-mod-app-jsdt=m +CONFIG_PACKAGE_kamailio-mod-app-lua=m +CONFIG_PACKAGE_kamailio-mod-app-lua-sr=m +CONFIG_PACKAGE_kamailio-mod-app-python3=m +CONFIG_PACKAGE_kamailio-mod-app-ruby=m +CONFIG_PACKAGE_kamailio-mod-app-sqlang=m +CONFIG_PACKAGE_kamailio-mod-async=m +CONFIG_PACKAGE_kamailio-mod-auth=m +CONFIG_PACKAGE_kamailio-mod-auth-db=m +CONFIG_PACKAGE_kamailio-mod-auth-diameter=m +CONFIG_PACKAGE_kamailio-mod-auth-ephemeral=m +CONFIG_PACKAGE_kamailio-mod-auth-identity=m +CONFIG_PACKAGE_kamailio-mod-auth-xkeys=m +CONFIG_PACKAGE_kamailio-mod-avp=m +CONFIG_PACKAGE_kamailio-mod-avpops=m +CONFIG_PACKAGE_kamailio-mod-benchmark=m +CONFIG_PACKAGE_kamailio-mod-blst=m +CONFIG_PACKAGE_kamailio-mod-call-control=m +CONFIG_PACKAGE_kamailio-mod-call-obj=m +CONFIG_PACKAGE_kamailio-mod-carrierroute=m +CONFIG_PACKAGE_kamailio-mod-cdp=m +CONFIG_PACKAGE_kamailio-mod-cdp-avp=m +CONFIG_PACKAGE_kamailio-mod-cfg-db=m +CONFIG_PACKAGE_kamailio-mod-cfg-rpc=m +CONFIG_PACKAGE_kamailio-mod-cfgt=m +CONFIG_PACKAGE_kamailio-mod-cfgutils=m +CONFIG_PACKAGE_kamailio-mod-cnxcc=m +CONFIG_PACKAGE_kamailio-mod-corex=m +CONFIG_PACKAGE_kamailio-mod-counters=m +CONFIG_PACKAGE_kamailio-mod-cplc=m +CONFIG_PACKAGE_kamailio-mod-crypto=m +CONFIG_PACKAGE_kamailio-mod-ctl=m +CONFIG_PACKAGE_kamailio-mod-db-berkeley=m +CONFIG_PACKAGE_kamailio-mod-db-cluster=m +CONFIG_PACKAGE_kamailio-mod-db-flatstore=m +CONFIG_PACKAGE_kamailio-mod-db-mysql=m +CONFIG_PACKAGE_kamailio-mod-db-postgres=m +CONFIG_PACKAGE_kamailio-mod-db-redis=m +CONFIG_PACKAGE_kamailio-mod-db-sqlite=m +CONFIG_PACKAGE_kamailio-mod-db-text=m +CONFIG_PACKAGE_kamailio-mod-db-unixodbc=m +CONFIG_PACKAGE_kamailio-mod-db2-ldap=m +CONFIG_PACKAGE_kamailio-mod-db2-ops=m +CONFIG_PACKAGE_kamailio-mod-debugger=m +CONFIG_PACKAGE_kamailio-mod-dialog=m +CONFIG_PACKAGE_kamailio-mod-dialplan=m +CONFIG_PACKAGE_kamailio-mod-dispatcher=m +CONFIG_PACKAGE_kamailio-mod-diversion=m +CONFIG_PACKAGE_kamailio-mod-dlgs=m +CONFIG_PACKAGE_kamailio-mod-dmq=m +CONFIG_PACKAGE_kamailio-mod-dmq-usrloc=m +CONFIG_PACKAGE_kamailio-mod-domain=m +CONFIG_PACKAGE_kamailio-mod-domainpolicy=m +CONFIG_PACKAGE_kamailio-mod-drouting=m +CONFIG_PACKAGE_kamailio-mod-enum=m +CONFIG_PACKAGE_kamailio-mod-evapi=m +CONFIG_PACKAGE_kamailio-mod-evrexec=m +CONFIG_PACKAGE_kamailio-mod-exec=m +CONFIG_PACKAGE_kamailio-mod-group=m +CONFIG_PACKAGE_kamailio-mod-gzcompress=m +CONFIG_PACKAGE_kamailio-mod-h350=m +CONFIG_PACKAGE_kamailio-mod-htable=m +CONFIG_PACKAGE_kamailio-mod-http-client=m +CONFIG_PACKAGE_kamailio-mod-imc=m +CONFIG_PACKAGE_kamailio-mod-ims-auth=m +CONFIG_PACKAGE_kamailio-mod-ims-charging=m +CONFIG_PACKAGE_kamailio-mod-ims-dialog=m +CONFIG_PACKAGE_kamailio-mod-ims-diameter-server=m +CONFIG_PACKAGE_kamailio-mod-ims-icscf=m +CONFIG_PACKAGE_kamailio-mod-ims-ipsec-pcscf=m +CONFIG_PACKAGE_kamailio-mod-ims-isc=m +CONFIG_PACKAGE_kamailio-mod-ims-ocs=m +CONFIG_PACKAGE_kamailio-mod-ims-qos=m +CONFIG_PACKAGE_kamailio-mod-ims-registrar-pcscf=m +CONFIG_PACKAGE_kamailio-mod-ims-registrar-scscf=m +CONFIG_PACKAGE_kamailio-mod-ims-usrloc-pcscf=m +CONFIG_PACKAGE_kamailio-mod-ims-usrloc-scscf=m +CONFIG_PACKAGE_kamailio-mod-ipops=m +CONFIG_PACKAGE_kamailio-mod-jansson=m +CONFIG_PACKAGE_kamailio-mod-janssonrpcc=m +CONFIG_PACKAGE_kamailio-mod-json=m +CONFIG_PACKAGE_kamailio-mod-jsonrpcs=m +CONFIG_PACKAGE_kamailio-mod-keepalive=m +CONFIG_PACKAGE_kamailio-mod-kemix=m +CONFIG_PACKAGE_kamailio-mod-kex=m +CONFIG_PACKAGE_kamailio-mod-lcr=m +CONFIG_PACKAGE_kamailio-mod-ldap=m +CONFIG_PACKAGE_kamailio-mod-log-custom=m +CONFIG_PACKAGE_kamailio-mod-lost=m +CONFIG_PACKAGE_kamailio-mod-lrkproxy=m +CONFIG_PACKAGE_kamailio-mod-mangler=m +CONFIG_PACKAGE_kamailio-mod-matrix=m +CONFIG_PACKAGE_kamailio-mod-maxfwd=m +CONFIG_PACKAGE_kamailio-mod-mediaproxy=m +CONFIG_PACKAGE_kamailio-mod-misctest=m +CONFIG_PACKAGE_kamailio-mod-mohqueue=m +CONFIG_PACKAGE_kamailio-mod-mqueue=m +CONFIG_PACKAGE_kamailio-mod-msilo=m +CONFIG_PACKAGE_kamailio-mod-msrp=m +CONFIG_PACKAGE_kamailio-mod-mtree=m +CONFIG_PACKAGE_kamailio-mod-nat-traversal=m +CONFIG_PACKAGE_kamailio-mod-nathelper=m +CONFIG_PACKAGE_kamailio-mod-ndb-redis=m +CONFIG_PACKAGE_kamailio-mod-nosip=m +CONFIG_PACKAGE_kamailio-mod-outbound=m +CONFIG_PACKAGE_kamailio-mod-p-usrloc=m +CONFIG_PACKAGE_kamailio-mod-path=m +CONFIG_PACKAGE_kamailio-mod-pdb=m +CONFIG_PACKAGE_kamailio-mod-pdt=m +CONFIG_PACKAGE_kamailio-mod-permissions=m +CONFIG_PACKAGE_kamailio-mod-pike=m +CONFIG_PACKAGE_kamailio-mod-pipelimit=m +CONFIG_PACKAGE_kamailio-mod-posops=m +CONFIG_PACKAGE_kamailio-mod-prefix-route=m +CONFIG_PACKAGE_kamailio-mod-presence=m +CONFIG_PACKAGE_kamailio-mod-presence-conference=m +CONFIG_PACKAGE_kamailio-mod-presence-dialoginfo=m +CONFIG_PACKAGE_kamailio-mod-presence-mwi=m +CONFIG_PACKAGE_kamailio-mod-presence-profile=m +CONFIG_PACKAGE_kamailio-mod-presence-reginfo=m +CONFIG_PACKAGE_kamailio-mod-presence-xml=m +CONFIG_PACKAGE_kamailio-mod-pua=m +CONFIG_PACKAGE_kamailio-mod-pua-bla=m +CONFIG_PACKAGE_kamailio-mod-pua-dialoginfo=m +CONFIG_PACKAGE_kamailio-mod-pua-json=m +CONFIG_PACKAGE_kamailio-mod-pua-reginfo=m +CONFIG_PACKAGE_kamailio-mod-pua-rpc=m +CONFIG_PACKAGE_kamailio-mod-pua-usrloc=m +CONFIG_PACKAGE_kamailio-mod-pua-xmpp=m +CONFIG_PACKAGE_kamailio-mod-pv=m +CONFIG_PACKAGE_kamailio-mod-pv-headers=m +CONFIG_PACKAGE_kamailio-mod-qos=m +CONFIG_PACKAGE_kamailio-mod-ratelimit=m +CONFIG_PACKAGE_kamailio-mod-regex=m +CONFIG_PACKAGE_kamailio-mod-registrar=m +CONFIG_PACKAGE_kamailio-mod-rls=m +CONFIG_PACKAGE_kamailio-mod-rr=m +CONFIG_PACKAGE_kamailio-mod-rtimer=m +CONFIG_PACKAGE_kamailio-mod-rtjson=m +CONFIG_PACKAGE_kamailio-mod-rtpengine=m +CONFIG_PACKAGE_kamailio-mod-rtpproxy=m +CONFIG_PACKAGE_kamailio-mod-sanity=m +CONFIG_PACKAGE_kamailio-mod-sca=m +CONFIG_PACKAGE_kamailio-mod-sctp=m +CONFIG_PACKAGE_kamailio-mod-sdpops=m +CONFIG_PACKAGE_kamailio-mod-seas=m +CONFIG_PACKAGE_kamailio-mod-secfilter=m +CONFIG_PACKAGE_kamailio-mod-sipcapture=m +CONFIG_PACKAGE_kamailio-mod-sipdump=m +CONFIG_PACKAGE_kamailio-mod-siprepo=m +CONFIG_PACKAGE_kamailio-mod-sipt=m +CONFIG_PACKAGE_kamailio-mod-siptrace=m +CONFIG_PACKAGE_kamailio-mod-siputils=m +CONFIG_PACKAGE_kamailio-mod-sl=m +CONFIG_PACKAGE_kamailio-mod-slack=m +CONFIG_PACKAGE_kamailio-mod-sms=m +CONFIG_PACKAGE_kamailio-mod-smsops=m +CONFIG_PACKAGE_kamailio-mod-snmpstats=m +CONFIG_PACKAGE_kamailio-mod-speeddial=m +CONFIG_PACKAGE_kamailio-mod-sqlops=m +CONFIG_PACKAGE_kamailio-mod-ss7ops=m +CONFIG_PACKAGE_kamailio-mod-sst=m +CONFIG_PACKAGE_kamailio-mod-statistics=m +CONFIG_PACKAGE_kamailio-mod-statsc=m +CONFIG_PACKAGE_kamailio-mod-statsd=m +CONFIG_PACKAGE_kamailio-mod-stun=m +CONFIG_PACKAGE_kamailio-mod-tcpops=m +CONFIG_PACKAGE_kamailio-mod-textops=m +CONFIG_PACKAGE_kamailio-mod-textopsx=m +CONFIG_PACKAGE_kamailio-mod-timer=m +CONFIG_PACKAGE_kamailio-mod-tls=m +CONFIG_PACKAGE_kamailio-mod-tm=m +CONFIG_PACKAGE_kamailio-mod-tmrec=m +CONFIG_PACKAGE_kamailio-mod-tmx=m +CONFIG_PACKAGE_kamailio-mod-topoh=m +CONFIG_PACKAGE_kamailio-mod-topos=m +CONFIG_PACKAGE_kamailio-mod-topos-redis=m +CONFIG_PACKAGE_kamailio-mod-tsilo=m +CONFIG_PACKAGE_kamailio-mod-uac=m +CONFIG_PACKAGE_kamailio-mod-uac-redirect=m +CONFIG_PACKAGE_kamailio-mod-uid-auth-db=m +CONFIG_PACKAGE_kamailio-mod-uid-avp-db=m +CONFIG_PACKAGE_kamailio-mod-uid-domain=m +CONFIG_PACKAGE_kamailio-mod-uid-gflags=m +CONFIG_PACKAGE_kamailio-mod-uid-uri-db=m +CONFIG_PACKAGE_kamailio-mod-uri-db=m +CONFIG_PACKAGE_kamailio-mod-userblocklist=m +CONFIG_PACKAGE_kamailio-mod-usrloc=m +CONFIG_PACKAGE_kamailio-mod-utils=m +CONFIG_PACKAGE_kamailio-mod-uuid=m +CONFIG_PACKAGE_kamailio-mod-websocket=m +CONFIG_PACKAGE_kamailio-mod-xcap-client=m +CONFIG_PACKAGE_kamailio-mod-xcap-server=m +CONFIG_PACKAGE_kamailio-mod-xhttp=m +CONFIG_PACKAGE_kamailio-mod-xhttp-pi=m +CONFIG_PACKAGE_kamailio-mod-xhttp-prom=m +CONFIG_PACKAGE_kamailio-mod-xhttp-rpc=m +CONFIG_PACKAGE_kamailio-mod-xlog=m +CONFIG_PACKAGE_kamailio-mod-xmlops=m +CONFIG_PACKAGE_kamailio-mod-xmlrpc=m +CONFIG_PACKAGE_kamailio-mod-xmpp=m +CONFIG_PACKAGE_kamailio-mod-xprint=m +CONFIG_PACKAGE_kamailio-util-kambdb-recover=m +CONFIG_PACKAGE_miax=m +CONFIG_PACKAGE_pcapsipdump=m +CONFIG_PACKAGE_rtpengine=m +CONFIG_PACKAGE_rtpengine-no-transcode=m +CONFIG_PACKAGE_rtpengine-recording=m +CONFIG_PACKAGE_rtpproxy=m +CONFIG_PACKAGE_rtpproxy-mod-acct-csv=m +CONFIG_PACKAGE_rtpproxy-mod-acct-rtcp-hep=m +CONFIG_PACKAGE_rtpproxy-util-extractaudio=m +CONFIG_PACKAGE_rtpproxy-util-makeann=m +CONFIG_PACKAGE_sipp=m +CONFIG_PACKAGE_siproxd=m +CONFIG_SIPROXD_MAX_CLIENTS=32 +CONFIG_PACKAGE_siproxd-mod-blacklist=m +CONFIG_PACKAGE_siproxd-mod-codecfilter=m +CONFIG_PACKAGE_siproxd-mod-defaulttarget=m +CONFIG_PACKAGE_siproxd-mod-demo=m +CONFIG_PACKAGE_siproxd-mod-fix-DTAG=m +CONFIG_PACKAGE_siproxd-mod-fix-bogus-via=m +CONFIG_PACKAGE_siproxd-mod-fix-fbox-anoncall=m +CONFIG_PACKAGE_siproxd-mod-logcall=m +CONFIG_PACKAGE_siproxd-mod-prefix=m +CONFIG_PACKAGE_siproxd-mod-regex=m +CONFIG_PACKAGE_siproxd-mod-shortdial=m +CONFIG_PACKAGE_siproxd-mod-siptrunk=m +CONFIG_PACKAGE_siproxd-mod-stats=m +CONFIG_PACKAGE_siproxd-mod-stripheader=m +CONFIG_PACKAGE_siproxd-mod-stun=m # CONFIG_PACKAGE_yate is not set # end of Telephony @@ -5850,64 +11236,261 @@ CONFIG_PACKAGE_tc-tiny=m # # Time Synchronization # -# CONFIG_PACKAGE_chrony is not set -# CONFIG_PACKAGE_chrony-nts is not set -# CONFIG_PACKAGE_htpdate is not set -# CONFIG_PACKAGE_linuxptp is not set -# CONFIG_PACKAGE_ntp-keygen is not set -# CONFIG_PACKAGE_ntp-utils is not set -# CONFIG_PACKAGE_ntpclient is not set -# CONFIG_PACKAGE_ntpd is not set -# CONFIG_PACKAGE_ntpdate is not set +CONFIG_PACKAGE_chrony=m +CONFIG_PACKAGE_chrony-nts=m +CONFIG_PACKAGE_htpdate=m +CONFIG_PACKAGE_linuxptp=m +CONFIG_PACKAGE_ntp-keygen=m +CONFIG_PACKAGE_ntp-utils=m +CONFIG_PACKAGE_ntpclient=m +CONFIG_PACKAGE_ntpd=m +CONFIG_PACKAGE_ntpdate=m # end of Time Synchronization # # VPN # -# CONFIG_PACKAGE_chaosvpn is not set -# CONFIG_PACKAGE_eoip is not set -# CONFIG_PACKAGE_fastd is not set -# CONFIG_PACKAGE_libreswan is not set -# CONFIG_PACKAGE_libreswan-nftables is not set -# CONFIG_PACKAGE_netbird is not set -# CONFIG_PACKAGE_ocserv is not set -# CONFIG_PACKAGE_openconnect is not set -# CONFIG_PACKAGE_openfortivpn is not set -# CONFIG_PACKAGE_openvpn-easy-rsa is not set -# CONFIG_PACKAGE_openvpn-mbedtls is not set -# CONFIG_PACKAGE_openvpn-openssl is not set -# CONFIG_PACKAGE_openvpn-wolfssl is not set -# CONFIG_PACKAGE_pptpd is not set -# CONFIG_PACKAGE_softethervpn-base is not set -# CONFIG_PACKAGE_softethervpn-bridge is not set -# CONFIG_PACKAGE_softethervpn-client is not set -# CONFIG_PACKAGE_softethervpn-server is not set -# CONFIG_PACKAGE_softethervpn5-bridge is not set -# CONFIG_PACKAGE_softethervpn5-client is not set -# CONFIG_PACKAGE_softethervpn5-server is not set -# CONFIG_PACKAGE_sstp-client is not set -# CONFIG_PACKAGE_strongswan is not set -# CONFIG_PACKAGE_tailscale is not set -# CONFIG_PACKAGE_tinc is not set -# CONFIG_PACKAGE_uanytun is not set -# CONFIG_PACKAGE_uanytun-nettle is not set -# CONFIG_PACKAGE_uanytun-nocrypt is not set -# CONFIG_PACKAGE_uanytun-sslcrypt is not set -# CONFIG_PACKAGE_vpnc is not set -# CONFIG_PACKAGE_vpnc-scripts is not set -# CONFIG_PACKAGE_wireguard-tools is not set -# CONFIG_PACKAGE_xl2tpd is not set -# CONFIG_PACKAGE_zerotier is not set +CONFIG_PACKAGE_chaosvpn=m +CONFIG_PACKAGE_eoip=m +CONFIG_PACKAGE_fastd=m + +# +# Configuration +# +# CONFIG_FASTD_ENABLE_METHOD_CIPHER_TEST is not set +# CONFIG_FASTD_ENABLE_METHOD_COMPOSED_GMAC is not set +CONFIG_FASTD_ENABLE_METHOD_COMPOSED_UMAC=y +# CONFIG_FASTD_ENABLE_METHOD_GENERIC_GMAC is not set +# CONFIG_FASTD_ENABLE_METHOD_GENERIC_POLY1305 is not set +CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC=y +CONFIG_FASTD_ENABLE_METHOD_NULL=y +CONFIG_FASTD_ENABLE_METHOD_NULL_L2TP=y +CONFIG_FASTD_ENABLE_CIPHER_NULL=y +# CONFIG_FASTD_ENABLE_CIPHER_SALSA20 is not set +CONFIG_FASTD_ENABLE_CIPHER_SALSA2012=y +CONFIG_FASTD_ENABLE_MAC_UHASH=y +# CONFIG_FASTD_WITH_CAPABILITIES is not set +# CONFIG_FASTD_WITH_CMDLINE_USER is not set +# CONFIG_FASTD_WITH_CMDLINE_LOGGING is not set +# CONFIG_FASTD_WITH_CMDLINE_OPERATION is not set +# CONFIG_FASTD_WITH_CMDLINE_COMMANDS is not set +# CONFIG_FASTD_WITH_DYNAMIC_PEERS is not set +CONFIG_FASTD_WITH_STATUS_SOCKET=y +CONFIG_FASTD_WITH_OFFLOAD_L2TP=y +# end of Configuration + +CONFIG_PACKAGE_libreswan=m +CONFIG_PACKAGE_libreswan-nftables=m +CONFIG_PACKAGE_netbird=m +CONFIG_PACKAGE_ocserv=m + +# +# Configuration +# +# CONFIG_OCSERV_PAM is not set +# CONFIG_OCSERV_SECCOMP is not set +# CONFIG_OCSERV_RADIUS is not set +# CONFIG_OCSERV_LIBOATH is not set +CONFIG_OCSERV_PROTOBUF=y +CONFIG_OCSERV_HTTP_PARSER=y +# end of Configuration + +CONFIG_PACKAGE_openconnect=m + +# +# Configuration +# +CONFIG_OPENCONNECT_GNUTLS=y +# CONFIG_OPENCONNECT_OPENSSL is not set +# CONFIG_OPENCONNECT_STOKEN is not set +# end of Configuration + +CONFIG_PACKAGE_openfortivpn=m +CONFIG_PACKAGE_openvpn-easy-rsa=m +CONFIG_PACKAGE_openvpn-mbedtls=m +# CONFIG_OPENVPN_mbedtls_ENABLE_LZO is not set +CONFIG_OPENVPN_mbedtls_ENABLE_LZ4=y +# CONFIG_OPENVPN_mbedtls_ENABLE_MANAGEMENT is not set +CONFIG_OPENVPN_mbedtls_ENABLE_FRAGMENT=y +CONFIG_OPENVPN_mbedtls_ENABLE_PORT_SHARE=y +# CONFIG_OPENVPN_mbedtls_ENABLE_IPROUTE2 is not set +# CONFIG_OPENVPN_mbedtls_ENABLE_DCO is not set +CONFIG_OPENVPN_mbedtls_ENABLE_SMALL=y +CONFIG_PACKAGE_openvpn-openssl=m +CONFIG_OPENVPN_openssl_ENABLE_LZO=y +CONFIG_OPENVPN_openssl_ENABLE_LZ4=y +# CONFIG_OPENVPN_openssl_ENABLE_X509_ALT_USERNAME is not set +# CONFIG_OPENVPN_openssl_ENABLE_MANAGEMENT is not set +CONFIG_OPENVPN_openssl_ENABLE_FRAGMENT=y +CONFIG_OPENVPN_openssl_ENABLE_PORT_SHARE=y +# CONFIG_OPENVPN_openssl_ENABLE_IPROUTE2 is not set +# CONFIG_OPENVPN_openssl_ENABLE_DCO is not set +CONFIG_OPENVPN_openssl_ENABLE_SMALL=y +CONFIG_PACKAGE_openvpn-wolfssl=m +CONFIG_OPENVPN_wolfssl=y +# CONFIG_OPENVPN_wolfssl_ENABLE_LZO is not set +CONFIG_OPENVPN_wolfssl_ENABLE_LZ4=y +# CONFIG_OPENVPN_wolfssl_ENABLE_X509_ALT_USERNAME is not set +# CONFIG_OPENVPN_wolfssl_ENABLE_MANAGEMENT is not set +CONFIG_OPENVPN_wolfssl_ENABLE_FRAGMENT=y +CONFIG_OPENVPN_wolfssl_ENABLE_PORT_SHARE=y +# CONFIG_OPENVPN_wolfssl_ENABLE_IPROUTE2 is not set +# CONFIG_OPENVPN_wolfssl_ENABLE_DCO is not set +CONFIG_OPENVPN_wolfssl_ENABLE_SMALL=y +CONFIG_PACKAGE_pptpd=m +CONFIG_PACKAGE_softethervpn-base=m +CONFIG_PACKAGE_softethervpn-bridge=m +CONFIG_PACKAGE_softethervpn-client=m +CONFIG_PACKAGE_softethervpn-server=m +CONFIG_PACKAGE_softethervpn5-bridge=m +CONFIG_PACKAGE_softethervpn5-client=m +CONFIG_PACKAGE_softethervpn5-libs=m +CONFIG_PACKAGE_softethervpn5-server=m +CONFIG_PACKAGE_sstp-client=m +CONFIG_PACKAGE_strongswan=m + +# +# Configuration +# +CONFIG_STRONGSWAN_ROUTING_TABLE="220" +CONFIG_STRONGSWAN_ROUTING_TABLE_PRIO="220" + +# +# Packages +# +CONFIG_PACKAGE_strongswan-charon=m +CONFIG_PACKAGE_strongswan-charon-cmd=m +CONFIG_PACKAGE_strongswan-default=m +CONFIG_PACKAGE_strongswan-full=m +CONFIG_PACKAGE_strongswan-gencerts=m +CONFIG_PACKAGE_strongswan-ipsec=m +CONFIG_PACKAGE_strongswan-isakmp=m +CONFIG_PACKAGE_strongswan-libnttfft=m +CONFIG_PACKAGE_strongswan-libtls=m +CONFIG_PACKAGE_strongswan-minimal=m +CONFIG_PACKAGE_strongswan-mod-addrblock=m +CONFIG_PACKAGE_strongswan-mod-aes=m +CONFIG_PACKAGE_strongswan-mod-af-alg=m +CONFIG_PACKAGE_strongswan-mod-agent=m +CONFIG_PACKAGE_strongswan-mod-attr=m +CONFIG_PACKAGE_strongswan-mod-attr-sql=m +CONFIG_PACKAGE_strongswan-mod-bliss=m +CONFIG_PACKAGE_strongswan-mod-blowfish=m +CONFIG_PACKAGE_strongswan-mod-ccm=m +CONFIG_PACKAGE_strongswan-mod-chapoly=m +CONFIG_PACKAGE_strongswan-mod-cmac=m +CONFIG_PACKAGE_strongswan-mod-connmark=m +CONFIG_PACKAGE_strongswan-mod-constraints=m +CONFIG_PACKAGE_strongswan-mod-coupling=m +CONFIG_PACKAGE_strongswan-mod-ctr=m +CONFIG_PACKAGE_strongswan-mod-curl=m +CONFIG_PACKAGE_strongswan-mod-curve25519=m +CONFIG_PACKAGE_strongswan-mod-des=m +CONFIG_PACKAGE_strongswan-mod-dhcp=m +CONFIG_PACKAGE_strongswan-mod-dnskey=m +CONFIG_PACKAGE_strongswan-mod-drbg=m +CONFIG_PACKAGE_strongswan-mod-duplicheck=m +CONFIG_PACKAGE_strongswan-mod-eap-dynamic=m +CONFIG_PACKAGE_strongswan-mod-eap-identity=m +CONFIG_PACKAGE_strongswan-mod-eap-md5=m +CONFIG_PACKAGE_strongswan-mod-eap-mschapv2=m +CONFIG_PACKAGE_strongswan-mod-eap-radius=m +CONFIG_PACKAGE_strongswan-mod-eap-tls=m +CONFIG_PACKAGE_strongswan-mod-farp=m +CONFIG_PACKAGE_strongswan-mod-fips-prf=m +CONFIG_PACKAGE_strongswan-mod-forecast=m +CONFIG_PACKAGE_strongswan-mod-gcm=m +CONFIG_PACKAGE_strongswan-mod-gcrypt=m +CONFIG_PACKAGE_strongswan-mod-gmp=m +CONFIG_PACKAGE_strongswan-mod-gmpdh=m +CONFIG_PACKAGE_strongswan-mod-ha=m +CONFIG_PACKAGE_strongswan-mod-hmac=m +CONFIG_PACKAGE_strongswan-mod-kdf=m +CONFIG_PACKAGE_strongswan-mod-kernel-libipsec=m +CONFIG_PACKAGE_strongswan-mod-kernel-netlink=m +CONFIG_PACKAGE_strongswan-mod-ldap=m +CONFIG_PACKAGE_strongswan-mod-led=m +CONFIG_PACKAGE_strongswan-mod-load-tester=m +CONFIG_PACKAGE_strongswan-mod-md4=m +CONFIG_PACKAGE_strongswan-mod-md5=m +CONFIG_PACKAGE_strongswan-mod-mgf1=m +CONFIG_PACKAGE_strongswan-mod-mysql=m +CONFIG_PACKAGE_strongswan-mod-newhope=m +CONFIG_PACKAGE_strongswan-mod-ntru=m +CONFIG_PACKAGE_strongswan-mod-openssl=m +CONFIG_PACKAGE_strongswan-mod-pem=m +CONFIG_PACKAGE_strongswan-mod-pgp=m +CONFIG_PACKAGE_strongswan-mod-pkcs1=m +CONFIG_PACKAGE_strongswan-mod-pkcs11=m +CONFIG_PACKAGE_strongswan-mod-pkcs12=m +CONFIG_PACKAGE_strongswan-mod-pkcs7=m +CONFIG_PACKAGE_strongswan-mod-pkcs8=m +CONFIG_PACKAGE_strongswan-mod-pubkey=m +CONFIG_PACKAGE_strongswan-mod-random=m +CONFIG_PACKAGE_strongswan-mod-rc2=m +CONFIG_PACKAGE_strongswan-mod-resolve=m +CONFIG_PACKAGE_strongswan-mod-revocation=m +CONFIG_PACKAGE_strongswan-mod-sha1=m +CONFIG_PACKAGE_strongswan-mod-sha2=m +CONFIG_PACKAGE_strongswan-mod-sha3=m +CONFIG_PACKAGE_strongswan-mod-smp=m +CONFIG_PACKAGE_strongswan-mod-socket-default=m +CONFIG_PACKAGE_strongswan-mod-socket-dynamic=m +CONFIG_PACKAGE_strongswan-mod-sql=m +CONFIG_PACKAGE_strongswan-mod-sqlite=m +CONFIG_PACKAGE_strongswan-mod-sshkey=m +CONFIG_PACKAGE_strongswan-mod-stroke=m +CONFIG_PACKAGE_strongswan-mod-test-vectors=m +CONFIG_PACKAGE_strongswan-mod-uci=m +CONFIG_PACKAGE_strongswan-mod-unity=m +CONFIG_PACKAGE_strongswan-mod-updown=m +CONFIG_PACKAGE_strongswan-mod-vici=m +CONFIG_PACKAGE_strongswan-mod-whitelist=m +CONFIG_PACKAGE_strongswan-mod-wolfssl=m +CONFIG_PACKAGE_strongswan-mod-x509=m +CONFIG_PACKAGE_strongswan-mod-xauth-eap=m +CONFIG_PACKAGE_strongswan-mod-xauth-generic=m +CONFIG_PACKAGE_strongswan-mod-xcbc=m +CONFIG_PACKAGE_strongswan-pki=m +CONFIG_PACKAGE_strongswan-swanctl=m +CONFIG_PACKAGE_tailscale=m +CONFIG_PACKAGE_tinc=m +CONFIG_PACKAGE_uanytun=m +CONFIG_PACKAGE_uanytun-nettle=m +CONFIG_PACKAGE_uanytun-nocrypt=m +CONFIG_PACKAGE_uanytun-sslcrypt=m +CONFIG_PACKAGE_vpnc=m + +# +# Configuration +# +CONFIG_VPNC_GNUTLS=y +# CONFIG_VPNC_OPENSSL is not set +# end of Configuration + +CONFIG_PACKAGE_vpnc-scripts=m +CONFIG_PACKAGE_wireguard-tools=m +CONFIG_PACKAGE_xl2tpd=m +CONFIG_PACKAGE_zerotier=m + +# +# Configuration +# +# CONFIG_ZEROTIER_ENABLE_DEBUG is not set +# CONFIG_ZEROTIER_ENABLE_SELFTEST is not set +# end of Configuration # end of VPN # # Version Control Systems # -# CONFIG_PACKAGE_git is not set -# CONFIG_PACKAGE_git-http is not set -# CONFIG_PACKAGE_subversion-client is not set -# CONFIG_PACKAGE_subversion-libs is not set -# CONFIG_PACKAGE_subversion-server is not set +CONFIG_PACKAGE_git=m +CONFIG_PACKAGE_git-gitweb=m +CONFIG_PACKAGE_git-http=m +CONFIG_PACKAGE_gitolite=m +CONFIG_PACKAGE_subversion-client=m +CONFIG_PACKAGE_subversion-libs=m +CONFIG_PACKAGE_subversion-server=m # end of Version Control Systems # @@ -5924,80 +11507,269 @@ CONFIG_PACKAGE_uqmi=m # # Web Servers/Proxies # -# CONFIG_PACKAGE_apache is not set -# CONFIG_PACKAGE_cgi-io is not set -# CONFIG_PACKAGE_clamav is not set -# CONFIG_PACKAGE_cloudflared is not set -# CONFIG_PACKAGE_etebase is not set -# CONFIG_PACKAGE_freshclam is not set -# CONFIG_PACKAGE_frpc is not set -# CONFIG_PACKAGE_frps is not set -# CONFIG_PACKAGE_gateway-go is not set -# CONFIG_PACKAGE_gatling is not set -# CONFIG_PACKAGE_haproxy is not set -# CONFIG_PACKAGE_haproxy-nossl is not set -# CONFIG_PACKAGE_kcptun-client is not set -# CONFIG_PACKAGE_kcptun-config is not set -# CONFIG_PACKAGE_kcptun-server is not set -# CONFIG_PACKAGE_librespeed-go is not set -# CONFIG_PACKAGE_lighttpd is not set -# CONFIG_PACKAGE_microsocks is not set -# CONFIG_PACKAGE_nginx-full is not set -# CONFIG_PACKAGE_nginx-mod-brotli is not set -# CONFIG_PACKAGE_nginx-mod-dav-ext is not set -# CONFIG_PACKAGE_nginx-mod-geoip2 is not set -# CONFIG_PACKAGE_nginx-mod-headers-more is not set -# CONFIG_PACKAGE_nginx-mod-lua is not set -# CONFIG_PACKAGE_nginx-mod-lua-resty-core is not set -# CONFIG_PACKAGE_nginx-mod-lua-resty-lrucache is not set -# CONFIG_PACKAGE_nginx-mod-luci is not set -# CONFIG_PACKAGE_nginx-mod-naxsi is not set -# CONFIG_PACKAGE_nginx-mod-rtmp is not set -# CONFIG_PACKAGE_nginx-mod-stream is not set -# CONFIG_PACKAGE_nginx-mod-ts is not set -# CONFIG_PACKAGE_nginx-mod-ubus is not set -# CONFIG_PACKAGE_nginx-ssl is not set -# CONFIG_PACKAGE_nginx-ssl-util is not set -# CONFIG_PACKAGE_nginx-ssl-util-nopcre is not set -# CONFIG_PACKAGE_polipo is not set -# CONFIG_PACKAGE_privoxy is not set -# CONFIG_PACKAGE_radicale is not set -# CONFIG_PACKAGE_radicale2 is not set -# CONFIG_PACKAGE_radicale2-examples is not set -# CONFIG_PACKAGE_shadowsocks-libev-config is not set -# CONFIG_PACKAGE_shadowsocks-libev-ss-local is not set -# CONFIG_PACKAGE_shadowsocks-libev-ss-redir is not set -# CONFIG_PACKAGE_shadowsocks-libev-ss-rules is not set -# CONFIG_PACKAGE_shadowsocks-libev-ss-server is not set -# CONFIG_PACKAGE_shadowsocks-libev-ss-tunnel is not set -# CONFIG_PACKAGE_sockd is not set -# CONFIG_PACKAGE_socksify is not set -# CONFIG_PACKAGE_spawn-fcgi is not set -# CONFIG_PACKAGE_squid is not set -# CONFIG_PACKAGE_tinyproxy is not set -# CONFIG_PACKAGE_trojan-go is not set +CONFIG_PACKAGE_apache=m +CONFIG_PACKAGE_apache-ab=m +CONFIG_PACKAGE_apache-error=m +CONFIG_PACKAGE_apache-icons=m +CONFIG_PACKAGE_apache-mod-deflate=m +CONFIG_PACKAGE_apache-mod-http2=m +CONFIG_PACKAGE_apache-mod-ldap=m +CONFIG_PACKAGE_apache-mod-lua=m +CONFIG_PACKAGE_apache-mod-md=m +CONFIG_PACKAGE_apache-mod-php8=m +CONFIG_PACKAGE_apache-mod-proxy=m +CONFIG_PACKAGE_apache-mod-proxy-html=m +CONFIG_PACKAGE_apache-mod-session-crypto=m +CONFIG_PACKAGE_apache-mod-ssl=m +CONFIG_PACKAGE_apache-mod-suexec=m +CONFIG_PACKAGE_apache-mod-webdav=m +CONFIG_PACKAGE_apache-suexec=m +CONFIG_PACKAGE_apache-utils=m +CONFIG_PACKAGE_cgi-io=m +CONFIG_PACKAGE_clamav=m +CONFIG_PACKAGE_cloudflared=m +CONFIG_PACKAGE_etebase=m +CONFIG_PACKAGE_etebase-src=m +CONFIG_PACKAGE_freshclam=m +CONFIG_PACKAGE_frpc=m +CONFIG_PACKAGE_frps=m +CONFIG_PACKAGE_gateway-go=m +CONFIG_PACKAGE_gatling=m +CONFIG_PACKAGE_haproxy=m +CONFIG_PACKAGE_halog=m +CONFIG_PACKAGE_haproxy-nossl=m +CONFIG_PACKAGE_kcptun-client=m +CONFIG_PACKAGE_kcptun-config=m +CONFIG_PACKAGE_kcptun-server=m +CONFIG_PACKAGE_librespeed-go=m +CONFIG_PACKAGE_lighttpd=m +CONFIG_LIGHTTPD_SSL=y +CONFIG_LIGHTTPD_SSL_DEPENDS=y +CONFIG_LIGHTTPD_PCRE2=y +# CONFIG_LIGHTTPD_CRYPTOLIB_NONE is not set +# CONFIG_LIGHTTPD_CRYPTOLIB_NETTLE is not set +CONFIG_LIGHTTPD_CRYPTOLIB_MBEDTLS=y +# CONFIG_LIGHTTPD_CRYPTOLIB_WOLFSSL is not set +# CONFIG_LIGHTTPD_LOGROTATE is not set +CONFIG_PACKAGE_lighttpd-mod-access=m +CONFIG_PACKAGE_lighttpd-mod-accesslog=m +CONFIG_PACKAGE_lighttpd-mod-ajp13=m +CONFIG_PACKAGE_lighttpd-mod-alias=m +CONFIG_PACKAGE_lighttpd-mod-auth=m +CONFIG_PACKAGE_lighttpd-mod-authn_dbi=m +CONFIG_PACKAGE_lighttpd-mod-authn_file=m +CONFIG_PACKAGE_lighttpd-mod-authn_gssapi=m +CONFIG_PACKAGE_lighttpd-mod-authn_ldap=m +CONFIG_PACKAGE_lighttpd-mod-authn_pam=m +CONFIG_PACKAGE_lighttpd-mod-authn_sasl=m +CONFIG_PACKAGE_lighttpd-mod-cgi=m +CONFIG_PACKAGE_lighttpd-mod-deflate=m +CONFIG_PACKAGE_lighttpd-mod-evhost=m +CONFIG_PACKAGE_lighttpd-mod-expire=m +CONFIG_PACKAGE_lighttpd-mod-extforward=m +CONFIG_PACKAGE_lighttpd-mod-fastcgi=m +CONFIG_PACKAGE_lighttpd-mod-gnutls=m +CONFIG_PACKAGE_lighttpd-mod-magnet=m +CONFIG_PACKAGE_lighttpd-mod-maxminddb=m +CONFIG_PACKAGE_lighttpd-mod-mbedtls=m +CONFIG_PACKAGE_lighttpd-mod-nss=m +CONFIG_PACKAGE_lighttpd-mod-openssl=m +CONFIG_PACKAGE_lighttpd-mod-proxy=m +CONFIG_PACKAGE_lighttpd-mod-redirect=m +CONFIG_PACKAGE_lighttpd-mod-rewrite=m +CONFIG_PACKAGE_lighttpd-mod-rrdtool=m +CONFIG_PACKAGE_lighttpd-mod-scgi=m +CONFIG_PACKAGE_lighttpd-mod-setenv=m +CONFIG_PACKAGE_lighttpd-mod-simple_vhost=m +CONFIG_PACKAGE_lighttpd-mod-sockproxy=m +CONFIG_PACKAGE_lighttpd-mod-ssi=m +CONFIG_PACKAGE_lighttpd-mod-status=m +CONFIG_PACKAGE_lighttpd-mod-userdir=m +CONFIG_PACKAGE_lighttpd-mod-vhostdb=m +CONFIG_PACKAGE_lighttpd-mod-vhostdb_dbi=m +CONFIG_PACKAGE_lighttpd-mod-vhostdb_ldap=m +CONFIG_PACKAGE_lighttpd-mod-vhostdb_mysql=m +CONFIG_PACKAGE_lighttpd-mod-vhostdb_pgsql=m +CONFIG_PACKAGE_lighttpd-mod-webdav=m +CONFIG_PACKAGE_lighttpd-mod-webdav_min=m +CONFIG_PACKAGE_lighttpd-mod-wolfssl=m +CONFIG_PACKAGE_lighttpd-mod-wstunnel=m +CONFIG_PACKAGE_microsocks=m +CONFIG_PACKAGE_nginx-full=m +CONFIG_PACKAGE_nginx-mod-brotli=m +CONFIG_PACKAGE_nginx-mod-dav-ext=m +CONFIG_PACKAGE_nginx-mod-geoip2=m +CONFIG_PACKAGE_nginx-mod-headers-more=m +CONFIG_PACKAGE_nginx-mod-lua=m +CONFIG_PACKAGE_nginx-mod-lua-resty-core=m +CONFIG_PACKAGE_nginx-mod-lua-resty-lrucache=m +CONFIG_PACKAGE_nginx-mod-luci=m +CONFIG_PACKAGE_nginx-mod-naxsi=m +CONFIG_PACKAGE_nginx-mod-rtmp=m +CONFIG_PACKAGE_nginx-mod-stream=m +CONFIG_PACKAGE_nginx-mod-ts=m +CONFIG_PACKAGE_nginx-mod-ubus=m +CONFIG_PACKAGE_nginx-ssl=m + +# +# Configuration +# +CONFIG_NGINX_DAV=y +# CONFIG_NGINX_FLV is not set +# CONFIG_NGINX_STUB_STATUS is not set +CONFIG_NGINX_HTTP_CHARSET=y +CONFIG_NGINX_HTTP_GZIP=y +CONFIG_NGINX_HTTP_GZIP_STATIC=y +CONFIG_NGINX_HTTP_SSI=y +CONFIG_NGINX_HTTP_USERID=y +CONFIG_NGINX_HTTP_ACCESS=y +CONFIG_NGINX_HTTP_AUTH_BASIC=y +# CONFIG_NGINX_HTTP_AUTH_REQUEST is not set +CONFIG_NGINX_HTTP_AUTOINDEX=y +CONFIG_NGINX_HTTP_GEO=y +CONFIG_NGINX_HTTP_MAP=y +CONFIG_NGINX_HTTP_SPLIT_CLIENTS=y +CONFIG_NGINX_HTTP_REFERER=y +CONFIG_NGINX_HTTP_REWRITE=y +CONFIG_NGINX_HTTP_PROXY=y +CONFIG_NGINX_HTTP_FASTCGI=y +CONFIG_NGINX_HTTP_UWSGI=y +CONFIG_NGINX_HTTP_SCGI=y +CONFIG_NGINX_HTTP_MEMCACHED=y +CONFIG_NGINX_HTTP_LIMIT_CONN=y +CONFIG_NGINX_HTTP_LIMIT_REQ=y +CONFIG_NGINX_HTTP_EMPTY_GIF=y +CONFIG_NGINX_HTTP_BROWSER=y +CONFIG_NGINX_HTTP_UPSTREAM_HASH=y +CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH=y +CONFIG_NGINX_HTTP_UPSTREAM_LEAST_CONN=y +CONFIG_NGINX_HTTP_UPSTREAM_KEEPALIVE=y +CONFIG_NGINX_HTTP_CACHE=y +CONFIG_NGINX_HTTP_V2=y +# CONFIG_NGINX_HTTP_QUIC is not set +CONFIG_NGINX_PCRE=y +# CONFIG_NGINX_HTTP_REAL_IP is not set +# CONFIG_NGINX_HTTP_SECURE_LINK is not set +# CONFIG_NGINX_HTTP_SUB is not set +# CONFIG_NGINX_STREAM_REAL_IP is not set +# end of Configuration + +CONFIG_PACKAGE_nginx-ssl-util=m +CONFIG_PACKAGE_nginx-ssl-util-nopcre=m +CONFIG_PACKAGE_polipo=m +CONFIG_PACKAGE_privoxy=m + +# +# Shared libraries settings +# +# CONFIG_PRIVOXY_disable-pthread is not set +# CONFIG_PRIVOXY_disable-dynamic-pcre is not set +# CONFIG_PRIVOXY_disable-zlib is not set + +# +# Config options. Overwrites/ignore configuration file settings +# +# CONFIG_PRIVOXY_disable-toggle is not set +# CONFIG_PRIVOXY_disable-force is not set +# CONFIG_PRIVOXY_disable-fast-redirects is not set +# CONFIG_PRIVOXY_disable-stats is not set +# CONFIG_PRIVOXY_enable-ie-images is not set +# CONFIG_PRIVOXY_disable-image-blocking is not set +# CONFIG_PRIVOXY_disable-acl-support is not set +# CONFIG_PRIVOXY_disable-trust-files is not set +# CONFIG_PRIVOXY_disable-editor is not set +# CONFIG_PRIVOXY_enable-no-gifs is not set +# CONFIG_PRIVOXY_enable-graceful-termination is not set +# CONFIG_PRIVOXY_enable-extended-host-patterns is not set +# CONFIG_PRIVOXY_enable-external-filters is not set +# CONFIG_PRIVOXY_enable-accept-filter is not set +# CONFIG_PRIVOXY_enable-strptime-sanity-checks is not set +# CONFIG_PRIVOXY_enable-compression is not set +CONFIG_PACKAGE_radicale=m +CONFIG_PACKAGE_radicale-src=m +CONFIG_PACKAGE_radicale2=m +CONFIG_PACKAGE_radicale2-examples=m +CONFIG_PACKAGE_radicale2-src=m +CONFIG_PACKAGE_shadowsocks-libev-config=m +CONFIG_PACKAGE_shadowsocks-libev-ss-local=m +CONFIG_PACKAGE_shadowsocks-libev-ss-redir=m +CONFIG_PACKAGE_shadowsocks-libev-ss-rules=m +CONFIG_PACKAGE_shadowsocks-libev-ss-server=m +CONFIG_PACKAGE_shadowsocks-libev-ss-tunnel=m +CONFIG_PACKAGE_sockd=m +CONFIG_PACKAGE_socksify=m +CONFIG_PACKAGE_spawn-fcgi=m +CONFIG_PACKAGE_squid=m + +# +# Optional features +# +CONFIG_SQUID_enable-ipv6=y +# CONFIG_SQUID_enable-snmp is not set +# CONFIG_SQUID_enable-icmp is not set +# CONFIG_SQUID_enable-icap-client is not set +CONFIG_SQUID_enable-ssl-crtd=y +# CONFIG_SQUID_auth-basic is not set +# CONFIG_SQUID_auth-digest is not set +# CONFIG_SQUID_auth-negotiate is not set +# CONFIG_SQUID_auth-ntlm is not set + +# +# Optional packages +# +CONFIG_SQUID_use-openssl=y +# CONFIG_SQUID_use-gnutls is not set +# CONFIG_SQUID_with-libcap is not set +# CONFIG_SQUID_with-nettle is not set +# CONFIG_SQUID_with-expat is not set +# CONFIG_SQUID_with-libxml2 is not set + +# +# Additional tools +# +CONFIG_PACKAGE_squid-mod-cachemgr=m +CONFIG_PACKAGE_tinyproxy=m +CONFIG_PACKAGE_trojan-go=m CONFIG_PACKAGE_uhttpd=y -# CONFIG_PACKAGE_uhttpd-mod-lua is not set +CONFIG_PACKAGE_uhttpd-mod-lua=m CONFIG_PACKAGE_uhttpd-mod-ubus=y -# CONFIG_PACKAGE_uhttpd-mod-ucode is not set -# CONFIG_PACKAGE_uwsgi is not set -# CONFIG_PACKAGE_v2raya is not set -# CONFIG_PACKAGE_xfrpc is not set +CONFIG_PACKAGE_uhttpd-mod-ucode=m +CONFIG_PACKAGE_uwsgi=m +CONFIG_PACKAGE_uwsgi-cgi-plugin=m +CONFIG_PACKAGE_uwsgi-logfile-plugin=m +CONFIG_PACKAGE_uwsgi-luci-support=m +CONFIG_PACKAGE_uwsgi-python3-plugin=m +CONFIG_PACKAGE_uwsgi-syslog-plugin=m +CONFIG_PACKAGE_v2raya=m +CONFIG_PACKAGE_xfrpc=m # end of Web Servers/Proxies # # Wireless # -# CONFIG_PACKAGE_aircrack-ng is not set -# CONFIG_PACKAGE_airmon-ng is not set -# CONFIG_PACKAGE_dynapoint is not set -# CONFIG_PACKAGE_hcxdumptool is not set -# CONFIG_PACKAGE_hcxtools is not set -# CONFIG_PACKAGE_horst is not set -# CONFIG_PACKAGE_pixiewps is not set -# CONFIG_PACKAGE_reaver is not set -# CONFIG_PACKAGE_wavemon is not set -# CONFIG_PACKAGE_wifischedule is not set +CONFIG_PACKAGE_aircrack-ng=m + +# +# SSL support +# +CONFIG_AIRCRACK_NG_OPENSSL=y +# CONFIG_AIRCRACK_NG_GCRYPT is not set +# CONFIG_AIRCRACK_NG_OPTIMIZE_SPEED is not set + +# +# Miscellaneous +# +# CONFIG_AIRCRACK_NG_HWLOC is not set +# CONFIG_AIRCRACK_NG_SQLITE3 is not set +CONFIG_PACKAGE_airmon-ng=m +CONFIG_PACKAGE_dynapoint=m +CONFIG_PACKAGE_hcxdumptool=m +CONFIG_PACKAGE_hcxtools=m +CONFIG_PACKAGE_horst=m +CONFIG_PACKAGE_pixiewps=m +CONFIG_PACKAGE_reaver=m +CONFIG_PACKAGE_wavemon=m +CONFIG_PACKAGE_wifischedule=m # end of Wireless # @@ -6017,10 +11789,12 @@ CONFIG_PACKAGE_hostapd-common=m # CONFIG_PACKAGE_hostapd-mini is not set # CONFIG_PACKAGE_hostapd-openssl is not set # CONFIG_PACKAGE_hostapd-wolfssl is not set -# CONFIG_PACKAGE_hs20-client is not set -# CONFIG_PACKAGE_hs20-common is not set -# CONFIG_PACKAGE_hs20-server is not set +CONFIG_PACKAGE_hs20-client=m +CONFIG_PACKAGE_hs20-common=m +CONFIG_PACKAGE_hs20-server=m # CONFIG_PACKAGE_wpa-supplicant is not set +# CONFIG_WPA_RFKILL_SUPPORT is not set +CONFIG_WPA_MSG_MIN_PRIORITY=3 # CONFIG_WPA_WOLFSSL is not set CONFIG_DRIVER_11AC_SUPPORT=y CONFIG_DRIVER_11AX_SUPPORT=y @@ -6052,181 +11826,367 @@ CONFIG_WPA_MBO_SUPPORT=y # # arp-scan # -# CONFIG_PACKAGE_arp-scan is not set -# CONFIG_PACKAGE_arp-scan-database is not set +CONFIG_PACKAGE_arp-scan=m +CONFIG_PACKAGE_arp-scan-database=m # end of arp-scan # CONFIG_PACKAGE_464xlat is not set # CONFIG_PACKAGE_6in4 is not set # CONFIG_PACKAGE_6rd is not set # CONFIG_PACKAGE_6to4 is not set -# CONFIG_PACKAGE_UDPspeeder is not set -# CONFIG_PACKAGE_aardvark-dns is not set -# CONFIG_PACKAGE_acme is not set -# CONFIG_PACKAGE_acme-acmesh is not set -# CONFIG_PACKAGE_acme-acmesh-dnsapi is not set -# CONFIG_PACKAGE_acme-common is not set -# CONFIG_PACKAGE_adblock is not set -# CONFIG_PACKAGE_adblock-fast is not set -# CONFIG_PACKAGE_addrwatch is not set -# CONFIG_PACKAGE_addrwatch-mysql is not set -# CONFIG_PACKAGE_addrwatch-stdout is not set -# CONFIG_PACKAGE_addrwatch-syslog is not set -# CONFIG_PACKAGE_adguardhome is not set -# CONFIG_PACKAGE_ahcpd is not set -# CONFIG_PACKAGE_alfred is not set -# CONFIG_PACKAGE_alist is not set -# CONFIG_PACKAGE_apcupsd is not set -# CONFIG_PACKAGE_apcupsd-cgi is not set -# CONFIG_PACKAGE_apinger is not set -# CONFIG_PACKAGE_apinger-rrd is not set -# CONFIG_PACKAGE_atlas-probe is not set -# CONFIG_PACKAGE_atlas-sw-probe is not set -# CONFIG_PACKAGE_atlas-sw-probe-rpc is not set -# CONFIG_PACKAGE_banip is not set +CONFIG_PACKAGE_UDPspeeder=m +CONFIG_PACKAGE_aardvark-dns=m +CONFIG_PACKAGE_acme=m +CONFIG_PACKAGE_acme-acmesh=m +CONFIG_PACKAGE_acme-acmesh-dnsapi=m +CONFIG_PACKAGE_acme-common=m +CONFIG_PACKAGE_adblock=m +CONFIG_PACKAGE_adblock-fast=m +CONFIG_PACKAGE_addrwatch=m +CONFIG_PACKAGE_addrwatch-mysql=m +CONFIG_PACKAGE_addrwatch-stdout=m +CONFIG_PACKAGE_addrwatch-syslog=m +CONFIG_PACKAGE_adguardhome=m +CONFIG_PACKAGE_ahcpd=m +CONFIG_PACKAGE_alfred=m +CONFIG_PACKAGE_ALFRED_VIS=y +# CONFIG_PACKAGE_ALFRED_BATHOSTS is not set +# CONFIG_PACKAGE_ALFRED_GPSD is not set +CONFIG_PACKAGE_alist=m +CONFIG_PACKAGE_apcupsd=m +CONFIG_PACKAGE_apcupsd-cgi=m +CONFIG_PACKAGE_apinger=m +CONFIG_PACKAGE_apinger-rrd=m +CONFIG_PACKAGE_atlas-probe=m +CONFIG_PACKAGE_atlas-sw-probe=m +CONFIG_PACKAGE_atlas-sw-probe-rpc=m +CONFIG_PACKAGE_banip=m CONFIG_PACKAGE_batctl-default=m -# CONFIG_PACKAGE_batctl-full is not set -# CONFIG_PACKAGE_batctl-tiny is not set +CONFIG_PACKAGE_batctl-full=m +CONFIG_PACKAGE_batctl-tiny=m # CONFIG_PACKAGE_beanstalkd is not set -# CONFIG_PACKAGE_bmon is not set -# CONFIG_PACKAGE_boinc is not set -# CONFIG_PACKAGE_boinc-wrapper is not set -# CONFIG_PACKAGE_bpfcountd is not set +CONFIG_PACKAGE_bmon=m +CONFIG_PACKAGE_boinc=m +CONFIG_PACKAGE_boinc-wrapper=m +CONFIG_PACKAGE_bpfcountd=m # CONFIG_PACKAGE_bpftool-full is not set # CONFIG_PACKAGE_bpftool-minimal is not set -# CONFIG_PACKAGE_bwm-ng is not set -# CONFIG_PACKAGE_bwping is not set +CONFIG_PACKAGE_bwm-ng=m + +# +# Configuration +# +# CONFIG_BWMNG_CONFIGFILE is not set +# CONFIG_BWMNG_HTML is not set +# CONFIG_BWMNG_CSV is not set +CONFIG_BWMNG_EXTENDEDSTATS=y +# CONFIG_BWMNG_LIBNCURSES is not set +CONFIG_BWMNG_TIME=y +# CONFIG_BWMNG_GETOPT_LONG is not set +# end of Configuration + +CONFIG_PACKAGE_bwping=m CONFIG_PACKAGE_chat=m -# CONFIG_PACKAGE_cifsmount is not set -# CONFIG_PACKAGE_cni-route-override is not set -# CONFIG_PACKAGE_coap-server is not set -# CONFIG_PACKAGE_conserver is not set -# CONFIG_PACKAGE_crowdsec is not set -# CONFIG_PACKAGE_crowdsec-firewall-bouncer is not set -# CONFIG_PACKAGE_cshark is not set -# CONFIG_PACKAGE_daemonlogger is not set -# CONFIG_PACKAGE_darkstat is not set -# CONFIG_PACKAGE_dawn is not set -# CONFIG_PACKAGE_dhcpcd is not set -# CONFIG_PACKAGE_dmapd is not set -# CONFIG_PACKAGE_dnscrypt-proxy2 is not set -# CONFIG_PACKAGE_dnstap is not set -# CONFIG_PACKAGE_dnstop is not set +CONFIG_PACKAGE_cifsmount=m +CONFIG_PACKAGE_cni-route-override=m +CONFIG_PACKAGE_coap-server=m +CONFIG_PACKAGE_conserver=m +CONFIG_PACKAGE_crowdsec=m +CONFIG_PACKAGE_crowdsec-firewall-bouncer=m +CONFIG_PACKAGE_cshark=m +CONFIG_PACKAGE_daemonlogger=m +CONFIG_PACKAGE_darkstat=m +CONFIG_PACKAGE_dawn=m +CONFIG_PACKAGE_dhcpcd=m +CONFIG_PACKAGE_dmapd=m +CONFIG_PACKAGE_dnscrypt-proxy2=m +CONFIG_PACKAGE_dnstap=m +CONFIG_PACKAGE_dnstop=m # CONFIG_PACKAGE_ds-lite is not set -# CONFIG_PACKAGE_esniper is not set -# CONFIG_PACKAGE_esp2net is not set -# CONFIG_PACKAGE_etherwake is not set -# CONFIG_PACKAGE_etherwake-nfqueue is not set -# CONFIG_PACKAGE_ethtool is not set +CONFIG_PACKAGE_esniper=m +CONFIG_PACKAGE_esp2net=m +CONFIG_PACKAGE_etherwake=m +CONFIG_PACKAGE_etherwake-nfqueue=m +CONFIG_PACKAGE_ethtool=m # CONFIG_PACKAGE_ethtool-full is not set -# CONFIG_PACKAGE_evilginx2 is not set -# CONFIG_PACKAGE_external-protocol is not set -# CONFIG_PACKAGE_fail2ban is not set -# CONFIG_PACKAGE_fakeidentd is not set -# CONFIG_PACKAGE_fakepop is not set -# CONFIG_PACKAGE_family-dns is not set -# CONFIG_PACKAGE_foolsm is not set -# CONFIG_PACKAGE_fping is not set -# CONFIG_PACKAGE_generate-ipv6-address is not set -# CONFIG_PACKAGE_gensio-bin is not set -# CONFIG_PACKAGE_geoipupdate is not set -# CONFIG_PACKAGE_geth is not set -# CONFIG_PACKAGE_gg is not set -# CONFIG_PACKAGE_git-lfs is not set -# CONFIG_PACKAGE_gnunet is not set -# CONFIG_PACKAGE_gre is not set -# CONFIG_PACKAGE_gsocket is not set -# CONFIG_PACKAGE_hnet-full is not set -# CONFIG_PACKAGE_hnet-full-l2tp is not set -# CONFIG_PACKAGE_hnet-full-secure is not set -# CONFIG_PACKAGE_hnetd-nossl is not set -# CONFIG_PACKAGE_hnetd-openssl is not set -# CONFIG_PACKAGE_hping3 is not set -# CONFIG_PACKAGE_httping is not set -# CONFIG_PACKAGE_httping-nossl is not set -# CONFIG_PACKAGE_https-dns-proxy is not set -# CONFIG_PACKAGE_httptunnel is not set -# CONFIG_PACKAGE_i2pd is not set -# CONFIG_PACKAGE_ibrdtn-tools is not set -# CONFIG_PACKAGE_ibrdtnd is not set -# CONFIG_PACKAGE_ifstat is not set -# CONFIG_PACKAGE_iftop is not set -# CONFIG_PACKAGE_iiod is not set -# CONFIG_PACKAGE_iperf is not set -# CONFIG_PACKAGE_iperf3 is not set -# CONFIG_PACKAGE_iperf3-ssl is not set -# CONFIG_PACKAGE_ipip is not set -# CONFIG_PACKAGE_ipset is not set +CONFIG_PACKAGE_evilginx2=m +CONFIG_PACKAGE_external-protocol=m +CONFIG_PACKAGE_fail2ban=m +CONFIG_PACKAGE_fail2ban-src=m +CONFIG_PACKAGE_fakeidentd=m +CONFIG_PACKAGE_fakepop=m +CONFIG_PACKAGE_family-dns=m +CONFIG_PACKAGE_flent=m +CONFIG_PACKAGE_flent-src=m +CONFIG_PACKAGE_foolsm=m +CONFIG_PACKAGE_fping=m +CONFIG_PACKAGE_generate-ipv6-address=m +CONFIG_PACKAGE_gensio-bin=m +# CONFIG_GENSIO_SSHD is not set +CONFIG_PACKAGE_geoipupdate=m +CONFIG_PACKAGE_geth=m +CONFIG_PACKAGE_gg=m +CONFIG_PACKAGE_git-lfs=m +CONFIG_PACKAGE_gnunet=m +CONFIG_PACKAGE_gnunet-abd=m +CONFIG_PACKAGE_gnunet-auction=m +CONFIG_PACKAGE_gnunet-communicator-tcp=m +CONFIG_PACKAGE_gnunet-communicator-udp=m +CONFIG_PACKAGE_gnunet-conversation=m +CONFIG_PACKAGE_gnunet-curl=m +CONFIG_PACKAGE_gnunet-datastore=m +CONFIG_PACKAGE_gnunet-dht-cli=m +CONFIG_PACKAGE_gnunet-dhtcache-heap=m +CONFIG_PACKAGE_gnunet-dhtcache-pgsql=m +CONFIG_PACKAGE_gnunet-dhtcache-sqlite=m +CONFIG_PACKAGE_gnunet-fs=m +CONFIG_PACKAGE_gnunet-fs-heap=m +CONFIG_PACKAGE_gnunet-fs-mysql=m +CONFIG_PACKAGE_gnunet-fs-pgsql=m +CONFIG_PACKAGE_gnunet-fs-sqlite=m +CONFIG_PACKAGE_gnunet-fuse=m +CONFIG_PACKAGE_gnunet-gns=m +CONFIG_PACKAGE_gnunet-gns-pgsql=m +CONFIG_PACKAGE_gnunet-gns-proxy=m +CONFIG_PACKAGE_gnunet-gns-sqlite=m +CONFIG_PACKAGE_gnunet-hostlist=m +CONFIG_PACKAGE_gnunet-messenger=m +CONFIG_PACKAGE_gnunet-mysql=m +CONFIG_PACKAGE_gnunet-namestore-fcfsd=m +CONFIG_PACKAGE_gnunet-peerstore-flat=m +CONFIG_PACKAGE_gnunet-peerstore-sqlite=m +CONFIG_PACKAGE_gnunet-pgsql=m +CONFIG_PACKAGE_gnunet-reclaim=m +CONFIG_PACKAGE_gnunet-rest=m +CONFIG_PACKAGE_gnunet-rps=m +CONFIG_PACKAGE_gnunet-sqlite=m +CONFIG_PACKAGE_gnunet-transport-bluetooth=m +CONFIG_PACKAGE_gnunet-transport-http_client=m +CONFIG_PACKAGE_gnunet-transport-http_server=m +CONFIG_PACKAGE_gnunet-transport-tcp=m +CONFIG_PACKAGE_gnunet-transport-udp=m +CONFIG_PACKAGE_gnunet-transport-wlan=m +CONFIG_PACKAGE_gnunet-utils=m +CONFIG_PACKAGE_gnunet-vpn=m +CONFIG_PACKAGE_gre=m +CONFIG_PACKAGE_gsocket=m +CONFIG_PACKAGE_hnet-full=m +CONFIG_PACKAGE_hnet-full-l2tp=m +CONFIG_PACKAGE_hnet-full-secure=m +CONFIG_PACKAGE_hnetd-nossl=m +CONFIG_PACKAGE_hnetd-openssl=m +CONFIG_PACKAGE_hping3=m +CONFIG_PACKAGE_httping=m +CONFIG_PACKAGE_httping-nossl=m +CONFIG_PACKAGE_https-dns-proxy=m +CONFIG_PACKAGE_httptunnel=m +CONFIG_PACKAGE_i2pd=m +CONFIG_PACKAGE_ibrdtn-tools=m +CONFIG_PACKAGE_ibrdtnd=m +CONFIG_PACKAGE_ifstat=m +CONFIG_IFSTAT_SNMP=y +CONFIG_PACKAGE_iftop=m +CONFIG_PACKAGE_iiod=m +CONFIG_PACKAGE_iperf=m +# CONFIG_IPERF_ENABLE_MULTICAST is not set +CONFIG_PACKAGE_iperf3=m +CONFIG_PACKAGE_iperf3-ssl=m +CONFIG_PACKAGE_ipip=m +CONFIG_PACKAGE_ipset=m # CONFIG_PACKAGE_ipset-dns is not set -# CONFIG_PACKAGE_iptraf-ng is not set -# CONFIG_PACKAGE_iputils-arping is not set -# CONFIG_PACKAGE_iputils-clockdiff is not set -# CONFIG_PACKAGE_iputils-ping is not set -# CONFIG_PACKAGE_iputils-tracepath is not set -# CONFIG_PACKAGE_ipvsadm is not set -# CONFIG_PACKAGE_irtt is not set +CONFIG_PACKAGE_iptraf-ng=m +CONFIG_PACKAGE_iputils-arping=m +CONFIG_PACKAGE_iputils-clockdiff=m +CONFIG_PACKAGE_iputils-ping=m +# CONFIG_PING_LEGACY_SYMLINKS is not set +CONFIG_PACKAGE_iputils-tracepath=m +# CONFIG_TRACEPATH_LEGACY_SYMLINKS is not set +CONFIG_PACKAGE_ipvsadm=m +CONFIG_PACKAGE_irtt=m CONFIG_PACKAGE_iw=m # CONFIG_PACKAGE_iw-full is not set -# CONFIG_PACKAGE_jool-tools-netfilter is not set -# CONFIG_PACKAGE_keepalived is not set -# CONFIG_PACKAGE_knxd is not set -# CONFIG_PACKAGE_kplex is not set -# CONFIG_PACKAGE_krb5-client is not set -# CONFIG_PACKAGE_krb5-libs is not set -# CONFIG_PACKAGE_krb5-server is not set -# CONFIG_PACKAGE_krb5-server-extras is not set -# CONFIG_PACKAGE_libipset is not set -# CONFIG_PACKAGE_libndp is not set -# CONFIG_PACKAGE_linknx is not set -# CONFIG_PACKAGE_lynx is not set -# CONFIG_PACKAGE_mac-telnet-client is not set -# CONFIG_PACKAGE_mac-telnet-discover is not set -# CONFIG_PACKAGE_mac-telnet-ping is not set -# CONFIG_PACKAGE_mac-telnet-server is not set +CONFIG_PACKAGE_jool-tools-netfilter=m +CONFIG_PACKAGE_keepalived=m + +# +# Configuration +# +# CONFIG_KEEPALIVED_BFD is not set +CONFIG_KEEPALIVED_SHA1=y +CONFIG_KEEPALIVED_LVS=y +CONFIG_KEEPALIVED_LVS_SYNCD=y +CONFIG_KEEPALIVED_LVS_64BIT_STATS=y +CONFIG_KEEPALIVED_FWMARK=y +# CONFIG_KEEPALIVED_SNMP_CHECKER is not set +CONFIG_KEEPALIVED_VRRP=y +CONFIG_KEEPALIVED_IPTABLES=y +CONFIG_KEEPALIVED_IP6TABLES=y +CONFIG_KEEPALIVED_NFTABLES=y +# CONFIG_KEEPALIVED_SNMP_VRRP is not set +# CONFIG_KEEPALIVED_SNMP_RFC2 is not set +# CONFIG_KEEPALIVED_SNMP_RFC3 is not set +# CONFIG_KEEPALIVED_DBUS is not set +CONFIG_KEEPALIVED_VRRP_AUTH=y +CONFIG_KEEPALIVED_CHECKSUM_COMPAT=y +CONFIG_KEEPALIVED_ROUTES=y +CONFIG_KEEPALIVED_LINKBEAT=y +# end of Configuration + +CONFIG_PACKAGE_keepalived-sync=m +CONFIG_PACKAGE_knxd=m +CONFIG_PACKAGE_kplex=m +CONFIG_PACKAGE_krb5-client=m +CONFIG_PACKAGE_krb5-libs=m +CONFIG_PACKAGE_krb5-server=m +CONFIG_PACKAGE_krb5-server-extras=m +CONFIG_PACKAGE_libipset=m +CONFIG_PACKAGE_libndp=m +CONFIG_PACKAGE_linknx=m +CONFIG_PACKAGE_lynx=m +CONFIG_PACKAGE_mac-telnet-client=m +CONFIG_PACKAGE_mac-telnet-discover=m +CONFIG_PACKAGE_mac-telnet-ping=m +CONFIG_PACKAGE_mac-telnet-server=m +CONFIG_MACTELNET_PLAIN_SUPPORT=y # CONFIG_PACKAGE_map is not set -# CONFIG_PACKAGE_mausezahn is not set -# CONFIG_PACKAGE_mbusd is not set -# CONFIG_PACKAGE_mdns-repeater is not set -# CONFIG_PACKAGE_memcached is not set -# CONFIG_PACKAGE_mii-tool is not set -# CONFIG_PACKAGE_mikrotik-btest is not set -# CONFIG_PACKAGE_mini_snmpd is not set -# CONFIG_PACKAGE_minimalist-pcproxy is not set -# CONFIG_PACKAGE_miredo is not set -# CONFIG_PACKAGE_modemmanager is not set -# CONFIG_PACKAGE_mosquitto-client-nossl is not set -# CONFIG_PACKAGE_mosquitto-client-ssl is not set -# CONFIG_PACKAGE_mosquitto-nossl is not set -# CONFIG_PACKAGE_mosquitto-ssl is not set -# CONFIG_PACKAGE_mtr-json is not set -# CONFIG_PACKAGE_mtr-nojson is not set -# CONFIG_PACKAGE_natmap is not set -# CONFIG_PACKAGE_nbd is not set -# CONFIG_PACKAGE_nbd-server is not set -# CONFIG_PACKAGE_ncp is not set -# CONFIG_PACKAGE_ndppd is not set -# CONFIG_PACKAGE_ndptool is not set -# CONFIG_PACKAGE_nebula is not set -# CONFIG_PACKAGE_nebula-cert is not set -# CONFIG_PACKAGE_net-mtools is not set -# CONFIG_PACKAGE_net-tools-route is not set -# CONFIG_PACKAGE_netavark is not set -# CONFIG_PACKAGE_netcat is not set -# CONFIG_PACKAGE_netdiscover is not set -# CONFIG_PACKAGE_netifyd is not set -# CONFIG_PACKAGE_netperf is not set -# CONFIG_PACKAGE_netsniff-ng is not set -# CONFIG_PACKAGE_netstinky is not set -# CONFIG_PACKAGE_nextdns is not set -# CONFIG_PACKAGE_nfdump is not set -# CONFIG_PACKAGE_nlbwmon is not set -# CONFIG_PACKAGE_noping is not set -# CONFIG_PACKAGE_nqptp is not set -# CONFIG_PACKAGE_nut is not set -# CONFIG_PACKAGE_obfs4proxy is not set +CONFIG_PACKAGE_mausezahn=m +CONFIG_PACKAGE_mbusd=m +CONFIG_PACKAGE_mdns-repeater=m +CONFIG_PACKAGE_memcached=m +CONFIG_PACKAGE_mii-tool=m +CONFIG_PACKAGE_mikrotik-btest=m +CONFIG_PACKAGE_mini_snmpd=m +CONFIG_PACKAGE_minimalist-pcproxy=m +CONFIG_PACKAGE_miredo=m +CONFIG_PACKAGE_modemmanager=m + +# +# Configuration +# +CONFIG_MODEMMANAGER_WITH_MBIM=y +CONFIG_MODEMMANAGER_WITH_QMI=y +CONFIG_MODEMMANAGER_WITH_QRTR=y +# CONFIG_MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS is not set +# end of Configuration + +CONFIG_PACKAGE_mosquitto-client-nossl=m +CONFIG_PACKAGE_mosquitto-client-ssl=m +CONFIG_PACKAGE_mosquitto-nossl=m +CONFIG_PACKAGE_mosquitto-ssl=m +CONFIG_MOSQUITTO_LWS=y +CONFIG_MOSQUITTO_CTRL=y +CONFIG_MOSQUITTO_DYNAMIC_SECURITY=y +CONFIG_MOSQUITTO_PASSWD=y +CONFIG_PACKAGE_mtr-json=m +CONFIG_PACKAGE_mtr-nojson=m +CONFIG_PACKAGE_natmap=m +CONFIG_PACKAGE_nbd=m +CONFIG_PACKAGE_nbd-server=m +CONFIG_PACKAGE_ncp=m +CONFIG_PACKAGE_ndppd=m +CONFIG_PACKAGE_ndptool=m +CONFIG_PACKAGE_nebula=m +CONFIG_PACKAGE_nebula-cert=m +CONFIG_PACKAGE_nebula-proto=m +CONFIG_PACKAGE_nebula-service=m +CONFIG_PACKAGE_net-mtools=m +CONFIG_PACKAGE_net-tools-route=m +CONFIG_PACKAGE_netavark=m +CONFIG_PACKAGE_netcat=m +CONFIG_PACKAGE_netdiscover=m +CONFIG_PACKAGE_netifyd=m + +# +# Configuration +# +CONFIG_NETIFYD_BUILD_SHARED_LIBRARY=y +CONFIG_NETIFYD_WITH_LOCAL_LIBGCRYPT=y +# end of Configuration + +CONFIG_PACKAGE_netperf=m +CONFIG_PACKAGE_netsniff-ng=m +CONFIG_PACKAGE_netstinky=m +CONFIG_PACKAGE_nextdns=m +CONFIG_PACKAGE_nfdump=m +CONFIG_PACKAGE_nlbwmon=m +CONFIG_PACKAGE_noping=m +CONFIG_PACKAGE_nqptp=m +CONFIG_PACKAGE_nut=m +# CONFIG_NUT_SSL is not set +CONFIG_NUT_DRIVER_USB=y +# CONFIG_NUT_DRIVER_SNMP is not set +CONFIG_NUT_DRIVER_SERIAL=y +CONFIG_NUT_DRIVER_NEON=y +CONFIG_PACKAGE_nut-avahi-service=m +CONFIG_PACKAGE_nut-common=m +CONFIG_PACKAGE_nut-driver-al175=m +CONFIG_PACKAGE_nut-driver-apcsmart=m +CONFIG_PACKAGE_nut-driver-apcsmart-old=m +CONFIG_PACKAGE_nut-driver-apcupsd-ups=m +CONFIG_PACKAGE_nut-driver-bcmxcp=m +CONFIG_PACKAGE_nut-driver-bcmxcp_usb=m +CONFIG_PACKAGE_nut-driver-belkin=m +CONFIG_PACKAGE_nut-driver-belkinunv=m +CONFIG_PACKAGE_nut-driver-bestfcom=m +CONFIG_PACKAGE_nut-driver-bestfortress=m +CONFIG_PACKAGE_nut-driver-bestuferrups=m +CONFIG_PACKAGE_nut-driver-bestups=m +CONFIG_PACKAGE_nut-driver-blazer_ser=m +CONFIG_PACKAGE_nut-driver-blazer_usb=m +CONFIG_PACKAGE_nut-driver-clone=m +CONFIG_PACKAGE_nut-driver-dummy-ups=m +CONFIG_PACKAGE_nut-driver-etapro=m +CONFIG_PACKAGE_nut-driver-everups=m +CONFIG_PACKAGE_nut-driver-gamatronic=m +CONFIG_PACKAGE_nut-driver-genericups=m +CONFIG_PACKAGE_nut-driver-isbmex=m +CONFIG_PACKAGE_nut-driver-ivtscd=m +CONFIG_PACKAGE_nut-driver-liebert=m +CONFIG_PACKAGE_nut-driver-liebert-esp2=m +CONFIG_PACKAGE_nut-driver-masterguard=m +CONFIG_PACKAGE_nut-driver-metasys=m +CONFIG_PACKAGE_nut-driver-mge-shut=m +CONFIG_PACKAGE_nut-driver-mge-utalk=m +CONFIG_PACKAGE_nut-driver-microdowell=m +CONFIG_PACKAGE_nut-driver-netxml-ups=m +CONFIG_PACKAGE_nut-driver-nutdrv_atcl_usb=m +CONFIG_PACKAGE_nut-driver-nutdrv_qx=m +CONFIG_PACKAGE_nut-driver-oneac=m +CONFIG_PACKAGE_nut-driver-optiups=m +CONFIG_PACKAGE_nut-driver-powercom=m +CONFIG_PACKAGE_nut-driver-powerpanel=m +CONFIG_PACKAGE_nut-driver-rhino=m +CONFIG_PACKAGE_nut-driver-richcomm_usb=m +CONFIG_PACKAGE_nut-driver-riello_ser=m +CONFIG_PACKAGE_nut-driver-riello_usb=m +CONFIG_PACKAGE_nut-driver-safenet=m +CONFIG_PACKAGE_nut-driver-solis=m +CONFIG_PACKAGE_nut-driver-tripplite=m +CONFIG_PACKAGE_nut-driver-tripplite_usb=m +CONFIG_PACKAGE_nut-driver-tripplitesu=m +CONFIG_PACKAGE_nut-driver-upscode2=m +CONFIG_PACKAGE_nut-driver-usbhid-ups=m +CONFIG_PACKAGE_nut-driver-victronups=m +CONFIG_PACKAGE_nut-server=m +CONFIG_PACKAGE_nut-upsc=m +CONFIG_PACKAGE_nut-upscmd=m +CONFIG_PACKAGE_nut-upslog=m +CONFIG_PACKAGE_nut-upsmon=m +CONFIG_PACKAGE_nut-upsmon-sendmail-notify=m +CONFIG_PACKAGE_nut-upsrw=m +CONFIG_PACKAGE_nut-upssched=m +CONFIG_PACKAGE_nut-web-cgi=m +CONFIG_PACKAGE_obfs4proxy=m CONFIG_PACKAGE_odhcp6c=y CONFIG_PACKAGE_odhcp6c_ext_cer_id=0 -# CONFIG_PACKAGE_odhcpd is not set +CONFIG_PACKAGE_odhcpd=m + +# +# Configuration +# +CONFIG_PACKAGE_odhcpd_full_ext_cer_id=0 +# end of Configuration + CONFIG_PACKAGE_odhcpd-ipv6only=y # @@ -6235,173 +12195,253 @@ CONFIG_PACKAGE_odhcpd-ipv6only=y CONFIG_PACKAGE_odhcpd_ipv6only_ext_cer_id=0 # end of Configuration -# CONFIG_PACKAGE_ola is not set -# CONFIG_PACKAGE_omcproxy is not set -# CONFIG_PACKAGE_onionshare-cli is not set -# CONFIG_PACKAGE_oor is not set -# CONFIG_PACKAGE_open-iscsi is not set -# CONFIG_PACKAGE_openelp is not set -# CONFIG_PACKAGE_openthread-br is not set -# CONFIG_PACKAGE_oping is not set -# CONFIG_PACKAGE_ostiary is not set -# CONFIG_PACKAGE_pagekitec is not set -# CONFIG_PACKAGE_pcapplusplus is not set -# CONFIG_PACKAGE_pen is not set -# CONFIG_PACKAGE_phantap is not set -# CONFIG_PACKAGE_pimbd is not set -# CONFIG_PACKAGE_pingcheck is not set -# CONFIG_PACKAGE_port-mirroring is not set +CONFIG_PACKAGE_ola=m +CONFIG_PACKAGE_omcproxy=m +CONFIG_PACKAGE_onionshare-cli=m +CONFIG_PACKAGE_onionshare-cli-src=m +CONFIG_PACKAGE_oor=m +CONFIG_PACKAGE_open-iscsi=m +CONFIG_PACKAGE_openelp=m +CONFIG_PACKAGE_openthread-br=m +CONFIG_PACKAGE_oping=m +CONFIG_PACKAGE_ostiary=m +CONFIG_PACKAGE_pagekitec=m +CONFIG_PACKAGE_pcapplusplus=m +CONFIG_PACKAGE_pen=m +CONFIG_PACKAGE_phantap=m +CONFIG_PACKAGE_pimbd=m +CONFIG_PACKAGE_pingcheck=m +CONFIG_PACKAGE_port-mirroring=m CONFIG_PACKAGE_ppp=y # CONFIG_PACKAGE_ppp-mod-passwordfd is not set # CONFIG_PACKAGE_ppp-mod-pppoa is not set CONFIG_PACKAGE_ppp-mod-pppoe=y -# CONFIG_PACKAGE_ppp-mod-pppol2tp is not set +CONFIG_PACKAGE_ppp-mod-pppol2tp=m # CONFIG_PACKAGE_ppp-mod-pptp is not set # CONFIG_PACKAGE_ppp-mod-radius is not set # CONFIG_PACKAGE_ppp-multilink is not set # CONFIG_PACKAGE_pppdump is not set # CONFIG_PACKAGE_pppoe-discovery is not set -# CONFIG_PACKAGE_pppossh is not set +CONFIG_PACKAGE_pppossh=m # CONFIG_PACKAGE_pppstats is not set -# CONFIG_PACKAGE_proto-bonding is not set -# CONFIG_PACKAGE_proxychains-ng is not set -# CONFIG_PACKAGE_ptunnel-ng is not set -# CONFIG_PACKAGE_qcsuper is not set -# CONFIG_PACKAGE_radsecproxy is not set -# CONFIG_PACKAGE_ratched is not set -# CONFIG_PACKAGE_ratechecker is not set -# CONFIG_PACKAGE_redsocks is not set -# CONFIG_PACKAGE_remserial is not set -# CONFIG_PACKAGE_respondd is not set -# CONFIG_PACKAGE_restic-rest-server is not set +CONFIG_PACKAGE_proto-bonding=m +CONFIG_PACKAGE_proxychains-ng=m +CONFIG_PACKAGE_ptunnel-ng=m +CONFIG_PACKAGE_qcsuper=m +CONFIG_PACKAGE_radsecproxy=m +CONFIG_PACKAGE_ratched=m +CONFIG_PACKAGE_ratechecker=m +CONFIG_PACKAGE_redsocks=m +CONFIG_PACKAGE_remserial=m +CONFIG_PACKAGE_respondd=m +CONFIG_PACKAGE_restic-rest-server=m # CONFIG_PACKAGE_rpcapd is not set -# CONFIG_PACKAGE_rpcbind is not set -# CONFIG_PACKAGE_rssileds is not set -# CONFIG_PACKAGE_safe-search is not set -# CONFIG_PACKAGE_samba4-admin is not set -# CONFIG_PACKAGE_samba4-client is not set -# CONFIG_PACKAGE_samba4-libs is not set -# CONFIG_PACKAGE_samba4-server is not set -# CONFIG_PACKAGE_samba4-utils is not set -# CONFIG_PACKAGE_samplicator is not set -# CONFIG_PACKAGE_scapy is not set -# CONFIG_PACKAGE_sctp-tools is not set -# CONFIG_PACKAGE_ser2net is not set -# CONFIG_PACKAGE_sing-box is not set +CONFIG_PACKAGE_rpcbind=m +CONFIG_RPCBIND_LIBWRAP=y +CONFIG_RPCBIND_RMTCALLS=y +CONFIG_PACKAGE_rssileds=m +CONFIG_PACKAGE_safe-search=m +CONFIG_PACKAGE_samba4-admin=m +CONFIG_PACKAGE_samba4-client=m +CONFIG_PACKAGE_samba4-libs=m +CONFIG_PACKAGE_samba4-server=m +CONFIG_SAMBA4_SERVER_WSDD2=y +CONFIG_SAMBA4_SERVER_NETBIOS=y +CONFIG_SAMBA4_SERVER_AVAHI=y +# CONFIG_SAMBA4_SERVER_QUOTAS is not set +CONFIG_SAMBA4_SERVER_VFS=y +# CONFIG_SAMBA4_SERVER_VFSX is not set +# CONFIG_SAMBA4_SERVER_AD_DC is not set +CONFIG_PACKAGE_samba4-utils=m +CONFIG_PACKAGE_samplicator=m +CONFIG_PACKAGE_scapy=m +CONFIG_PACKAGE_scapy-src=m +CONFIG_PACKAGE_sctp-tools=m +CONFIG_PACKAGE_ser2net=m +CONFIG_PACKAGE_sing-box=m + +# +# Select build options +# +# CONFIG_SINGBOX_WITH_ACME is not set +CONFIG_SINGBOX_WITH_CLASH_API=y +# CONFIG_SINGBOX_WITH_DHCP is not set +CONFIG_SINGBOX_WITH_ECH=y +# CONFIG_SINGBOX_WITH_EMBEDDED_TOR is not set +# CONFIG_SINGBOX_WITH_GRPC is not set +CONFIG_SINGBOX_WITH_GVISOR=y +CONFIG_SINGBOX_WITH_QUIC=y +CONFIG_SINGBOX_WITH_REALITY_SERVER=y +CONFIG_SINGBOX_WITH_UTLS=y +# CONFIG_SINGBOX_WITH_V2RAY_API is not set +CONFIG_SINGBOX_WITH_WIREGUARD=y +# end of Select build options + CONFIG_PACKAGE_slirp4netns=m -# CONFIG_PACKAGE_smartdns is not set -# CONFIG_PACKAGE_smbinfo is not set -# CONFIG_PACKAGE_snmp-mibs is not set -# CONFIG_PACKAGE_snmp-utils is not set -# CONFIG_PACKAGE_snmpd is not set -# CONFIG_PACKAGE_snmptrapd is not set -# CONFIG_PACKAGE_snowflake-broker is not set -# CONFIG_PACKAGE_snowflake-client is not set -# CONFIG_PACKAGE_snowflake-probetest is not set -# CONFIG_PACKAGE_snowflake-proxy is not set -# CONFIG_PACKAGE_snowflake-server is not set -# CONFIG_PACKAGE_socat is not set -# CONFIG_PACKAGE_softflowd is not set +CONFIG_PACKAGE_smartdns=m +CONFIG_PACKAGE_smbinfo=m +CONFIG_PACKAGE_snmp-mibs=m +CONFIG_PACKAGE_snmp-utils=m +CONFIG_PACKAGE_snmpd=m +CONFIG_PACKAGE_snmptrapd=m +CONFIG_PACKAGE_snowflake-broker=m +CONFIG_PACKAGE_snowflake-client=m +CONFIG_PACKAGE_snowflake-probetest=m +CONFIG_PACKAGE_snowflake-proxy=m +CONFIG_PACKAGE_snowflake-server=m +CONFIG_PACKAGE_socat=m +# CONFIG_SOCAT_SSL is not set +CONFIG_PACKAGE_softflowd=m # CONFIG_PACKAGE_soloscli is not set -# CONFIG_PACKAGE_speedtest-netperf is not set -# CONFIG_PACKAGE_speedtestcpp is not set -# CONFIG_PACKAGE_spoofer is not set -# CONFIG_PACKAGE_sscep is not set -# CONFIG_PACKAGE_static-neighbor-reports is not set -# CONFIG_PACKAGE_stunnel is not set -# CONFIG_PACKAGE_switchdev-poller is not set -# CONFIG_PACKAGE_tac_plus is not set -# CONFIG_PACKAGE_tac_plus-pam is not set -# CONFIG_PACKAGE_tayga is not set +CONFIG_PACKAGE_speedtest-netperf=m +CONFIG_PACKAGE_speedtestcpp=m +CONFIG_PACKAGE_spoofer=m +CONFIG_PACKAGE_sscep=m +CONFIG_PACKAGE_static-neighbor-reports=m +CONFIG_PACKAGE_stunnel=m +CONFIG_PACKAGE_switchdev-poller=m +CONFIG_PACKAGE_tac_plus=m +CONFIG_PACKAGE_tac_plus-pam=m +CONFIG_PACKAGE_tayga=m # CONFIG_PACKAGE_tcpdump is not set # CONFIG_PACKAGE_tcpdump-mini is not set -# CONFIG_PACKAGE_telnet-bsd is not set -# CONFIG_PACKAGE_tgt is not set -# CONFIG_PACKAGE_tmate-ssh-server is not set -# CONFIG_PACKAGE_tor is not set -# CONFIG_PACKAGE_tor-basic is not set -# CONFIG_PACKAGE_trafficshaper is not set -# CONFIG_PACKAGE_travelmate is not set -# CONFIG_PACKAGE_tunneldigger is not set -# CONFIG_PACKAGE_tunneldigger-broker is not set -# CONFIG_PACKAGE_u2pnpd is not set -# CONFIG_PACKAGE_uacme is not set -# CONFIG_PACKAGE_uacme-ualpn is not set +CONFIG_PACKAGE_telnet-bsd=m +CONFIG_PACKAGE_tgt=m +CONFIG_PACKAGE_tmate-ssh-server=m +CONFIG_PACKAGE_tor=m +CONFIG_PACKAGE_tor-basic=m +CONFIG_PACKAGE_tor-gencert=m +CONFIG_PACKAGE_tor-geoip=m +CONFIG_PACKAGE_tor-resolve=m +CONFIG_PACKAGE_trafficshaper=m +CONFIG_PACKAGE_travelmate=m +CONFIG_PACKAGE_tunneldigger=m +CONFIG_PACKAGE_tunneldigger-broker=m +CONFIG_PACKAGE_tunneldigger-broker-src=m +CONFIG_PACKAGE_u2pnpd=m +CONFIG_PACKAGE_uacme=m + +# +# uacme will install mbedtls +# +CONFIG_PACKAGE_uacme-ualpn=m CONFIG_PACKAGE_uclient-fetch=y -# CONFIG_PACKAGE_udhcpsnoop is not set -# CONFIG_PACKAGE_udphp-client is not set -# CONFIG_PACKAGE_udptunnel is not set -# CONFIG_PACKAGE_udpxy is not set -# CONFIG_PACKAGE_ulogd is not set -# CONFIG_PACKAGE_umdns is not set -# CONFIG_PACKAGE_unet-cli is not set -# CONFIG_PACKAGE_unetd is not set -# CONFIG_PACKAGE_uradvd is not set -# CONFIG_PACKAGE_usbip is not set -# CONFIG_PACKAGE_uspotfilter is not set -# CONFIG_PACKAGE_usteer is not set +CONFIG_PACKAGE_udhcpsnoop=m +CONFIG_PACKAGE_udphp-client=m +CONFIG_PACKAGE_udptunnel=m +CONFIG_PACKAGE_udpxy=m +CONFIG_PACKAGE_ulogd=m +CONFIG_PACKAGE_ulogd-mod-dbi=m +CONFIG_PACKAGE_ulogd-mod-extra=m +CONFIG_PACKAGE_ulogd-mod-json=m +CONFIG_PACKAGE_ulogd-mod-mysql=m +CONFIG_PACKAGE_ulogd-mod-nfacct=m +CONFIG_PACKAGE_ulogd-mod-nfct=m +CONFIG_PACKAGE_ulogd-mod-nflog=m +CONFIG_PACKAGE_ulogd-mod-pcap=m +CONFIG_PACKAGE_ulogd-mod-pgsql=m +CONFIG_PACKAGE_ulogd-mod-sqlite=m +CONFIG_PACKAGE_ulogd-mod-syslog=m +CONFIG_PACKAGE_ulogd-mod-xml=m +CONFIG_PACKAGE_umdns=m +CONFIG_PACKAGE_unet-cli=m +CONFIG_PACKAGE_unetd=m +CONFIG_UNETD_VXLAN_SUPPORT=y +CONFIG_PACKAGE_unet-dht=m +CONFIG_PACKAGE_uradvd=m +CONFIG_PACKAGE_usbip=m +CONFIG_PACKAGE_usbip-client=m +CONFIG_PACKAGE_usbip-server=m +CONFIG_PACKAGE_uspotfilter=m +CONFIG_PACKAGE_usteer=m # CONFIG_PACKAGE_ustp is not set -# CONFIG_PACKAGE_v2ray-core is not set -# CONFIG_PACKAGE_vallumd is not set -# CONFIG_PACKAGE_vncrepeater is not set -# CONFIG_PACKAGE_vnstat is not set -# CONFIG_PACKAGE_vnstat2 is not set -# CONFIG_PACKAGE_vti is not set -# CONFIG_PACKAGE_vxlan is not set -# CONFIG_PACKAGE_wakeonlan is not set -# CONFIG_PACKAGE_wg-installer-client is not set -# CONFIG_PACKAGE_wifi-presence is not set +CONFIG_PACKAGE_v2ray-core=m +CONFIG_PACKAGE_v2ray-example=m +CONFIG_PACKAGE_v2ray-extra=m +CONFIG_PACKAGE_vallumd=m +CONFIG_PACKAGE_vncrepeater=m +CONFIG_PACKAGE_vnstat=m +CONFIG_PACKAGE_vnstat2=m +CONFIG_PACKAGE_vnstati=m +CONFIG_PACKAGE_vnstati2=m +CONFIG_PACKAGE_vti=m +CONFIG_PACKAGE_vxlan=m +CONFIG_PACKAGE_wakeonlan=m +CONFIG_PACKAGE_wg-installer-client=m +CONFIG_PACKAGE_wg-installer-server=m +CONFIG_PACKAGE_wg-installer-server-hotplug-babeld=m +CONFIG_PACKAGE_wg-installer-server-hotplug-olsrd=m +CONFIG_PACKAGE_wifi-presence=m # CONFIG_PACKAGE_wpan-tools is not set CONFIG_PACKAGE_wwan=m CONFIG_PACKAGE_xdp-filter=m CONFIG_PACKAGE_xdp-loader=m CONFIG_PACKAGE_xdpdump=m -# CONFIG_PACKAGE_xfrm is not set -# CONFIG_PACKAGE_xinetd is not set -# CONFIG_PACKAGE_xray-core is not set -# CONFIG_PACKAGE_ztdns is not set +CONFIG_PACKAGE_xfrm=m +CONFIG_PACKAGE_xinetd=m +CONFIG_PACKAGE_xray-core=m +CONFIG_PACKAGE_xray-example=m +CONFIG_PACKAGE_ztdns=m # end of Network # # Sound # -# CONFIG_PACKAGE_alsa-utils is not set -# CONFIG_PACKAGE_alsa-utils-seq is not set -# CONFIG_PACKAGE_alsa-utils-tests is not set -# CONFIG_PACKAGE_aserver is not set -# CONFIG_PACKAGE_beep is not set -# CONFIG_PACKAGE_espeak is not set -# CONFIG_PACKAGE_faad2 is not set -# CONFIG_PACKAGE_fdk-aac is not set -# CONFIG_PACKAGE_ices is not set -# CONFIG_PACKAGE_lame is not set -# CONFIG_PACKAGE_lame-lib is not set -# CONFIG_PACKAGE_liblo-utils is not set -# CONFIG_PACKAGE_madplay is not set -# CONFIG_PACKAGE_moc is not set -# CONFIG_PACKAGE_mpc is not set -# CONFIG_PACKAGE_mpd-avahi-service is not set -# CONFIG_PACKAGE_mpd-full is not set -# CONFIG_PACKAGE_mpd-mini is not set -# CONFIG_PACKAGE_mpg123 is not set -# CONFIG_PACKAGE_opus-tools is not set -# CONFIG_PACKAGE_owntone is not set -# CONFIG_PACKAGE_pianod is not set -# CONFIG_PACKAGE_pianod-client is not set -# CONFIG_PACKAGE_portaudio is not set -# CONFIG_PACKAGE_pulseaudio-daemon is not set -# CONFIG_PACKAGE_pulseaudio-daemon-avahi is not set -# CONFIG_PACKAGE_rtpmidid is not set -# CONFIG_PACKAGE_shairport-sync-mbedtls is not set -# CONFIG_PACKAGE_shairport-sync-mini is not set -# CONFIG_PACKAGE_shairport-sync-openssl is not set -# CONFIG_PACKAGE_shine is not set -# CONFIG_PACKAGE_sox is not set -# CONFIG_PACKAGE_squeezelite-dynamic is not set -# CONFIG_PACKAGE_squeezelite-full is not set -# CONFIG_PACKAGE_svox is not set -# CONFIG_PACKAGE_ttymidi-sysex is not set -# CONFIG_PACKAGE_upmpdcli is not set +CONFIG_PACKAGE_alsa-utils=m +CONFIG_PACKAGE_alsa-utils-seq=m +CONFIG_PACKAGE_alsa-utils-tests=m +CONFIG_PACKAGE_aserver=m +CONFIG_PACKAGE_beep=m +CONFIG_PACKAGE_espeak=m +CONFIG_PACKAGE_faad2=m +CONFIG_PACKAGE_fdk-aac=m + +# +# Configuration +# +# CONFIG_FDK-AAC_OPTIMIZE_SPEED is not set +# end of Configuration + +CONFIG_PACKAGE_ices=m +CONFIG_PACKAGE_lame=m +CONFIG_PACKAGE_lame-lib=m + +# +# Configuration +# +# CONFIG_LAME-LIB_OPTIMIZE_SPEED is not set +# end of Configuration + +CONFIG_PACKAGE_liblo-utils=m +CONFIG_PACKAGE_madplay=m +CONFIG_PACKAGE_moc=m +CONFIG_PACKAGE_mpc=m +CONFIG_PACKAGE_mpd-avahi-service=m +CONFIG_PACKAGE_mpd-full=m +CONFIG_PACKAGE_mpd-mini=m +CONFIG_PACKAGE_mpg123=m +CONFIG_PACKAGE_opus-tools=m +CONFIG_PACKAGE_owntone=m +CONFIG_PACKAGE_pianod=m +CONFIG_PACKAGE_pianod-client=m +CONFIG_PACKAGE_portaudio=m +CONFIG_PACKAGE_pulseaudio-daemon=m +CONFIG_PACKAGE_pulseaudio-daemon-avahi=m +CONFIG_PACKAGE_pulseaudio-profiles=m +CONFIG_PACKAGE_pulseaudio-tools=m +CONFIG_PACKAGE_rtpmidid=m +CONFIG_PACKAGE_shairport-sync-mbedtls=m +CONFIG_PACKAGE_shairport-sync-mini=m +CONFIG_PACKAGE_shairport-sync-openssl=m +CONFIG_PACKAGE_shine=m +CONFIG_PACKAGE_sox=m +CONFIG_PACKAGE_squeezelite-dynamic=m +CONFIG_PACKAGE_squeezelite-full=m +CONFIG_PACKAGE_svox=m +CONFIG_PACKAGE_ttymidi-sysex=m +CONFIG_PACKAGE_upmpdcli=m +# CONFIG_PACKAGE_UPMPDCLI_SCCTL is not set +# CONFIG_PACKAGE_UPMPDCLI_SC_WEB_INTERFACE is not set # end of Sound # @@ -6411,17 +12451,17 @@ CONFIG_PACKAGE_xdpdump=m # # AppArmor # -# CONFIG_PACKAGE_apparmor-profiles is not set -# CONFIG_PACKAGE_apparmor-utils is not set +CONFIG_PACKAGE_apparmor-profiles=m +CONFIG_PACKAGE_apparmor-utils=m # end of AppArmor # # BigClown # -# CONFIG_PACKAGE_bigclown-control-tool is not set -# CONFIG_PACKAGE_bigclown-firmware-tool is not set -# CONFIG_PACKAGE_bigclown-gateway is not set -# CONFIG_PACKAGE_bigclown-mqtt2influxdb is not set +CONFIG_PACKAGE_bigclown-control-tool=m +CONFIG_PACKAGE_bigclown-firmware-tool=m +CONFIG_PACKAGE_bigclown-gateway=m +CONFIG_PACKAGE_bigclown-mqtt2influxdb=m # end of BigClown # @@ -6436,181 +12476,241 @@ CONFIG_PACKAGE_uboot-envtools=m # # Compression # -# CONFIG_PACKAGE_bsdtar is not set -# CONFIG_PACKAGE_bsdtar-noopenssl is not set -# CONFIG_PACKAGE_bzip2 is not set -# CONFIG_PACKAGE_gzip is not set -# CONFIG_PACKAGE_lz4 is not set -# CONFIG_PACKAGE_pigz is not set -# CONFIG_PACKAGE_unrar is not set -# CONFIG_PACKAGE_unzip is not set -# CONFIG_PACKAGE_xz-utils is not set -# CONFIG_PACKAGE_zipcmp is not set -# CONFIG_PACKAGE_zipmerge is not set -# CONFIG_PACKAGE_ziptool is not set -# CONFIG_PACKAGE_zstd is not set +CONFIG_PACKAGE_bsdtar=m +CONFIG_PACKAGE_bsdtar-noopenssl=m +CONFIG_PACKAGE_bzip2=m +CONFIG_PACKAGE_gzip=m +CONFIG_PACKAGE_lz4=m +CONFIG_PACKAGE_pigz=m +CONFIG_PACKAGE_unrar=m +CONFIG_PACKAGE_unzip=m +CONFIG_PACKAGE_xz-utils=m +CONFIG_PACKAGE_lzmadec=m +CONFIG_PACKAGE_lzmainfo=m +CONFIG_PACKAGE_xz=m +CONFIG_PACKAGE_xzdec=m +CONFIG_PACKAGE_xzdiff=m +CONFIG_PACKAGE_xzgrep=m +CONFIG_PACKAGE_xzless=m +CONFIG_PACKAGE_xzmore=m +CONFIG_PACKAGE_zipcmp=m +CONFIG_PACKAGE_zipmerge=m +CONFIG_PACKAGE_ziptool=m +CONFIG_PACKAGE_zstd=m # end of Compression # # Database # -# CONFIG_PACKAGE_mariadb-client is not set -# CONFIG_PACKAGE_mariadb-server-base is not set -# CONFIG_PACKAGE_pgsql-cli is not set -# CONFIG_PACKAGE_pgsql-cli-extra is not set -# CONFIG_PACKAGE_pgsql-server is not set -# CONFIG_PACKAGE_rrdcgi1 is not set -# CONFIG_PACKAGE_rrdtool1 is not set -# CONFIG_PACKAGE_sqlite3-cli is not set -# CONFIG_PACKAGE_unixodbc-tools is not set +CONFIG_PACKAGE_mariadb-client=m +CONFIG_PACKAGE_mariadb-client-extra=m +CONFIG_PACKAGE_mariadb-server-base=m +CONFIG_PACKAGE_mariadb-server=m +CONFIG_PACKAGE_mariadb-server-extra=m +CONFIG_PACKAGE_mariadb-server-plugin-auth-ed25519=m +CONFIG_PACKAGE_mariadb-server-plugin-auth-gssapi=m +CONFIG_PACKAGE_mariadb-server-plugin-auth-pam=m +CONFIG_PACKAGE_mariadb-server-plugin-auth-pam-v1=m +CONFIG_PACKAGE_mariadb-server-plugin-disks=m +CONFIG_PACKAGE_mariadb-server-plugin-feedback=m +CONFIG_PACKAGE_mariadb-server-plugin-file-key-management=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-archive=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-blackhole=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-connect=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-federated=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-federatedx=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-sphinx=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-spider=m +CONFIG_PACKAGE_mariadb-server-plugin-handlersocket=m +CONFIG_PACKAGE_mariadb-server-plugin-locales=m +CONFIG_PACKAGE_mariadb-server-plugin-metadata-lock-info=m +CONFIG_PACKAGE_mariadb-server-plugin-query-cache-info=m +CONFIG_PACKAGE_mariadb-server-plugin-query-response-time=m +CONFIG_PACKAGE_mariadb-server-plugin-server-audit=m +CONFIG_PACKAGE_mariadb-server-plugin-simple-password-check=m +CONFIG_PACKAGE_mariadb-server-plugin-sql-errlog=m +CONFIG_PACKAGE_mariadb-server-plugin-wsrep-info=m +CONFIG_PACKAGE_pgsql-cli=m +CONFIG_PACKAGE_pgsql-cli-extra=m +CONFIG_PACKAGE_pgsql-server=m +CONFIG_PACKAGE_rrdcgi1=m +CONFIG_PACKAGE_rrdtool1=m +CONFIG_PACKAGE_sqlite3-cli=m + +# +# Configuration +# +CONFIG_SQLITE3_LIBEDIT=y +# CONFIG_SQLITE3_READLINE is not set +# CONFIG_SQLITE3_READLINE_NONE is not set +# end of Configuration + +CONFIG_PACKAGE_unixodbc-tools=m # end of Database # # Disc # -# CONFIG_PACKAGE_autopart is not set +CONFIG_PACKAGE_autopart=m # CONFIG_PACKAGE_blkdiscard is not set # CONFIG_PACKAGE_blkid is not set # CONFIG_PACKAGE_blockdev is not set # CONFIG_PACKAGE_cfdisk is not set -# CONFIG_PACKAGE_cgdisk is not set +CONFIG_PACKAGE_cgdisk=m # CONFIG_PACKAGE_eject is not set -# CONFIG_PACKAGE_fatresize is not set +CONFIG_PACKAGE_fatresize=m # CONFIG_PACKAGE_fdisk is not set # CONFIG_PACKAGE_findfs is not set -# CONFIG_PACKAGE_fio is not set -# CONFIG_PACKAGE_fixparts is not set -# CONFIG_PACKAGE_gdisk is not set -# CONFIG_PACKAGE_hd-idle is not set -# CONFIG_PACKAGE_hdparm is not set -# CONFIG_PACKAGE_lsblk is not set -# CONFIG_PACKAGE_lvm2 is not set -# CONFIG_PACKAGE_lvm2-selinux is not set +CONFIG_PACKAGE_fio=m +CONFIG_PACKAGE_fixparts=m +CONFIG_PACKAGE_gdisk=m +CONFIG_PACKAGE_hd-idle=m +CONFIG_PACKAGE_hdparm=m +CONFIG_PACKAGE_lsblk=m +CONFIG_PACKAGE_lvm2=m +CONFIG_PACKAGE_lvm2-selinux=m # CONFIG_PACKAGE_mdadm is not set -# CONFIG_PACKAGE_mtools is not set -# CONFIG_PACKAGE_nvme-cli is not set -# CONFIG_PACKAGE_parted is not set +CONFIG_PACKAGE_mtools=m +CONFIG_PACKAGE_nvme-cli=m +CONFIG_PACKAGE_parted=m + +# +# Configuration +# +CONFIG_PARTED_READLINE=y +# CONFIG_PARTED_LVM2 is not set +# end of Configuration + CONFIG_PACKAGE_partx-utils=y -# CONFIG_PACKAGE_sfdisk is not set -# CONFIG_PACKAGE_sgdisk is not set -# CONFIG_PACKAGE_uvol is not set +CONFIG_PACKAGE_sfdisk=m +CONFIG_PACKAGE_sgdisk=m +CONFIG_PACKAGE_uvol=m # CONFIG_PACKAGE_wipefs is not set # end of Disc # # Editors # -# CONFIG_PACKAGE_hexedit is not set -# CONFIG_PACKAGE_joe is not set -# CONFIG_PACKAGE_joe-extras is not set -# CONFIG_PACKAGE_jupp is not set -# CONFIG_PACKAGE_mg is not set -# CONFIG_PACKAGE_nano is not set -# CONFIG_PACKAGE_nano-full is not set -# CONFIG_PACKAGE_nano-plus is not set -# CONFIG_PACKAGE_vim is not set -# CONFIG_PACKAGE_vim-full is not set -# CONFIG_PACKAGE_vim-fuller is not set -# CONFIG_PACKAGE_vim-help is not set -# CONFIG_PACKAGE_vim-runtime is not set -# CONFIG_PACKAGE_zile is not set +CONFIG_PACKAGE_hexedit=m +CONFIG_PACKAGE_joe=m +CONFIG_PACKAGE_joe-extras=m +CONFIG_PACKAGE_jupp=m +CONFIG_PACKAGE_jupp-data=m +CONFIG_PACKAGE_mg=m +CONFIG_PACKAGE_nano=m +CONFIG_PACKAGE_nano-full=m +CONFIG_PACKAGE_nano-plus=m +CONFIG_PACKAGE_vim=m +CONFIG_PACKAGE_vim-full=m +CONFIG_PACKAGE_vim-fuller=m +CONFIG_PACKAGE_vim-help=m +CONFIG_PACKAGE_vim-runtime=m +CONFIG_PACKAGE_zile=m # end of Editors # # Encryption # -# CONFIG_PACKAGE_ccrypt is not set -# CONFIG_PACKAGE_certtool is not set -# CONFIG_PACKAGE_cryptsetup is not set -# CONFIG_PACKAGE_cryptsetup-ssh is not set -# CONFIG_PACKAGE_gnupg is not set -# CONFIG_PACKAGE_gnupg2 is not set -# CONFIG_PACKAGE_gnupg2-dirmngr is not set -# CONFIG_PACKAGE_gnutls-utils is not set -# CONFIG_PACKAGE_gpgv is not set -# CONFIG_PACKAGE_gpgv2 is not set -# CONFIG_PACKAGE_keyctl is not set -# CONFIG_PACKAGE_keyutils is not set +CONFIG_PACKAGE_ccrypt=m +CONFIG_PACKAGE_certtool=m +CONFIG_PACKAGE_cryptsetup=m +CONFIG_PACKAGE_cryptsetup-ssh=m +CONFIG_PACKAGE_gnupg=m +CONFIG_PACKAGE_gnupg-utils=m +CONFIG_PACKAGE_gnupg2=m +CONFIG_PACKAGE_gnupg2-dirmngr=m +CONFIG_PACKAGE_gnupg2-utils=m +CONFIG_PACKAGE_gnutls-utils=m +CONFIG_PACKAGE_gpgv=m +CONFIG_PACKAGE_gpgv2=m +CONFIG_PACKAGE_keyctl=m +CONFIG_PACKAGE_keyutils=m CONFIG_PACKAGE_px5g-mbedtls=y # CONFIG_PACKAGE_px5g-standalone is not set # CONFIG_PACKAGE_px5g-wolfssl is not set -# CONFIG_PACKAGE_stoken is not set +CONFIG_PACKAGE_stoken=m # end of Encryption # # Filesystem # -# CONFIG_PACKAGE_acl is not set -# CONFIG_PACKAGE_afuse is not set -# CONFIG_PACKAGE_attr is not set +CONFIG_PACKAGE_acl=m +CONFIG_PACKAGE_afuse=m +CONFIG_PACKAGE_attr=m # CONFIG_PACKAGE_badblocks is not set CONFIG_PACKAGE_btrfs-progs=m # CONFIG_BTRFS_PROGS_ZSTD is not set # CONFIG_PACKAGE_chattr is not set # CONFIG_PACKAGE_debugfs is not set -# CONFIG_PACKAGE_dosfstools is not set +CONFIG_PACKAGE_dosfstools=m # CONFIG_PACKAGE_dumpe2fs is not set # CONFIG_PACKAGE_e2freefrag is not set CONFIG_PACKAGE_e2fsprogs=y # CONFIG_PACKAGE_e4crypt is not set -# CONFIG_PACKAGE_exfat-fsck is not set -# CONFIG_PACKAGE_exfat-mkfs is not set +CONFIG_PACKAGE_exfat-fsck=m +CONFIG_PACKAGE_exfat-mkfs=m # CONFIG_PACKAGE_f2fs-tools is not set # CONFIG_PACKAGE_f2fs-tools-selinux is not set # CONFIG_PACKAGE_f2fsck is not set # CONFIG_PACKAGE_f2fsck-selinux is not set # CONFIG_PACKAGE_filefrag is not set # CONFIG_PACKAGE_fstrim is not set -# CONFIG_PACKAGE_fuse-utils is not set -# CONFIG_PACKAGE_fuse3-utils is not set -# CONFIG_PACKAGE_hfsfsck is not set +CONFIG_PACKAGE_fuse-utils=m +CONFIG_PACKAGE_fuse3-utils=m +CONFIG_PACKAGE_hfsfsck=m # CONFIG_PACKAGE_lsattr is not set CONFIG_PACKAGE_mkf2fs=y # CONFIG_PACKAGE_mkf2fs-selinux is not set -# CONFIG_PACKAGE_mkhfs is not set -# CONFIG_PACKAGE_ncdu is not set -# CONFIG_PACKAGE_nfs-utils is not set -# CONFIG_PACKAGE_nfs-utils-libs is not set -# CONFIG_PACKAGE_ntfs-3g is not set -# CONFIG_PACKAGE_ntfs-3g-low is not set -# CONFIG_PACKAGE_ntfs-3g-utils is not set -# CONFIG_PACKAGE_owfs is not set -# CONFIG_PACKAGE_owshell is not set +CONFIG_PACKAGE_mkhfs=m +CONFIG_PACKAGE_ncdu=m +CONFIG_PACKAGE_nfs-utils=m +CONFIG_PACKAGE_nfs-utils-libs=m +CONFIG_PACKAGE_ntfs-3g=m +# CONFIG_PACKAGE_NTFS-3G_USE_LIBFUSE is not set +CONFIG_PACKAGE_NTFS-3G_HAS_PROBE=y +CONFIG_PACKAGE_ntfs-3g-low=m +CONFIG_PACKAGE_ntfs-3g-utils=m +CONFIG_PACKAGE_owfs=m +CONFIG_PACKAGE_owshell=m # CONFIG_PACKAGE_resize2fs is not set -# CONFIG_PACKAGE_squashfs-tools-mksquashfs is not set -# CONFIG_PACKAGE_squashfs-tools-unsquashfs is not set +CONFIG_PACKAGE_squashfs-tools-mksquashfs=m +CONFIG_PACKAGE_squashfs-tools-unsquashfs=m +# CONFIG_SQUASHFS_TOOLS_LZO_SUPPORT is not set +# CONFIG_SQUASHFS_TOOLS_LZ4_SUPPORT is not set +CONFIG_SQUASHFS_TOOLS_XZ_SUPPORT=y +CONFIG_SQUASHFS_TOOLS_ZSTD_SUPPORT=y # CONFIG_PACKAGE_swap-utils is not set -# CONFIG_PACKAGE_sysfsutils is not set +CONFIG_PACKAGE_sysfsutils=m # CONFIG_PACKAGE_tune2fs is not set -# CONFIG_PACKAGE_xfs-admin is not set -# CONFIG_PACKAGE_xfs-fsck is not set -# CONFIG_PACKAGE_xfs-growfs is not set -# CONFIG_PACKAGE_xfs-mkfs is not set +CONFIG_PACKAGE_xfs-admin=m +CONFIG_PACKAGE_xfs-fsck=m +CONFIG_PACKAGE_xfs-growfs=m +CONFIG_PACKAGE_xfs-mkfs=m # end of Filesystem # # Image Manipulation # -# CONFIG_PACKAGE_libjpeg-turbo-utils is not set -# CONFIG_PACKAGE_tiff-utils is not set +CONFIG_PACKAGE_libjpeg-turbo-utils=m +CONFIG_PACKAGE_tiff-utils=m # end of Image Manipulation # # Microcontroller programming # -# CONFIG_PACKAGE_avrdude is not set -# CONFIG_PACKAGE_dfu-programmer is not set -# CONFIG_PACKAGE_stm32flash is not set +CONFIG_PACKAGE_avrdude=m +CONFIG_PACKAGE_dfu-programmer=m +CONFIG_PACKAGE_stm32flash=m # end of Microcontroller programming # # RTKLIB Suite # -# CONFIG_PACKAGE_convbin is not set -# CONFIG_PACKAGE_pos2kml is not set -# CONFIG_PACKAGE_rnx2rtkp is not set -# CONFIG_PACKAGE_rtkrcv is not set -# CONFIG_PACKAGE_str2str is not set +CONFIG_PACKAGE_convbin=m +CONFIG_PACKAGE_pos2kml=m +CONFIG_PACKAGE_rnx2rtkp=m +CONFIG_PACKAGE_rtkrcv=m +CONFIG_PACKAGE_str2str=m # end of RTKLIB Suite # @@ -6622,12 +12722,12 @@ CONFIG_PACKAGE_gost_engine-util=m # # Shells # -# CONFIG_PACKAGE_bash is not set -# CONFIG_PACKAGE_fish is not set -# CONFIG_PACKAGE_klish is not set -# CONFIG_PACKAGE_mksh is not set -# CONFIG_PACKAGE_tcsh is not set -# CONFIG_PACKAGE_zsh is not set +CONFIG_PACKAGE_bash=m +CONFIG_PACKAGE_fish=m +CONFIG_PACKAGE_klish=m +CONFIG_PACKAGE_mksh=m +CONFIG_PACKAGE_tcsh=m +CONFIG_PACKAGE_zsh=m # end of Shells # @@ -6635,48 +12735,56 @@ CONFIG_PACKAGE_gost_engine-util=m # # CONFIG_PACKAGE_dahdi-cfg is not set # CONFIG_PACKAGE_dahdi-monitor is not set -# CONFIG_PACKAGE_gsm-utils is not set -# CONFIG_PACKAGE_sipgrep is not set -# CONFIG_PACKAGE_sngrep is not set +CONFIG_PACKAGE_gsm-utils=m +CONFIG_PACKAGE_sipgrep=m +CONFIG_PACKAGE_sngrep=m + +# +# sngrep configuration +# +CONFIG_SNGREP_ENABLE_EEP=y +CONFIG_SNGREP_WITH_PCRE=y +CONFIG_SNGREP_WITH_ZLIB=y +# end of sngrep configuration # end of Telephony # # Terminal # # CONFIG_PACKAGE_agetty is not set -# CONFIG_PACKAGE_dvtm is not set -# CONFIG_PACKAGE_kitty-terminfo is not set -# CONFIG_PACKAGE_minicom is not set -# CONFIG_PACKAGE_picocom is not set -# CONFIG_PACKAGE_rtty-mbedtls is not set -# CONFIG_PACKAGE_rtty-nossl is not set -# CONFIG_PACKAGE_rtty-openssl is not set -# CONFIG_PACKAGE_rtty-wolfssl is not set -# CONFIG_PACKAGE_screen is not set +CONFIG_PACKAGE_dvtm=m +CONFIG_PACKAGE_kitty-terminfo=m +CONFIG_PACKAGE_minicom=m +CONFIG_PACKAGE_picocom=m +CONFIG_PACKAGE_rtty-mbedtls=m +CONFIG_PACKAGE_rtty-nossl=m +CONFIG_PACKAGE_rtty-openssl=m +CONFIG_PACKAGE_rtty-wolfssl=m +CONFIG_PACKAGE_screen=m # CONFIG_PACKAGE_script-utils is not set -# CONFIG_PACKAGE_serialconsole is not set +CONFIG_PACKAGE_serialconsole=m # CONFIG_PACKAGE_setterm is not set -# CONFIG_PACKAGE_tio is not set -# CONFIG_PACKAGE_tmux is not set -# CONFIG_PACKAGE_ttyd is not set +CONFIG_PACKAGE_tio=m +CONFIG_PACKAGE_tmux=m +CONFIG_PACKAGE_ttyd=m # CONFIG_PACKAGE_wall is not set # end of Terminal # # Time Zone info # -# CONFIG_PACKAGE_zoneinfo-africa is not set -# CONFIG_PACKAGE_zoneinfo-all is not set -# CONFIG_PACKAGE_zoneinfo-america is not set -# CONFIG_PACKAGE_zoneinfo-asia is not set -# CONFIG_PACKAGE_zoneinfo-atlantic is not set -# CONFIG_PACKAGE_zoneinfo-australia-nz is not set -# CONFIG_PACKAGE_zoneinfo-core is not set -# CONFIG_PACKAGE_zoneinfo-europe is not set -# CONFIG_PACKAGE_zoneinfo-indian is not set -# CONFIG_PACKAGE_zoneinfo-pacific is not set -# CONFIG_PACKAGE_zoneinfo-poles is not set -# CONFIG_PACKAGE_zoneinfo-simple is not set +CONFIG_PACKAGE_zoneinfo-africa=m +CONFIG_PACKAGE_zoneinfo-all=m +CONFIG_PACKAGE_zoneinfo-america=m +CONFIG_PACKAGE_zoneinfo-asia=m +CONFIG_PACKAGE_zoneinfo-atlantic=m +CONFIG_PACKAGE_zoneinfo-australia-nz=m +CONFIG_PACKAGE_zoneinfo-core=m +CONFIG_PACKAGE_zoneinfo-europe=m +CONFIG_PACKAGE_zoneinfo-indian=m +CONFIG_PACKAGE_zoneinfo-pacific=m +CONFIG_PACKAGE_zoneinfo-poles=m +CONFIG_PACKAGE_zoneinfo-simple=m # end of Time Zone info # @@ -6688,30 +12796,37 @@ CONFIG_PACKAGE_nu801=m # # Virtualization # -# CONFIG_PACKAGE_qemu-aarch64-softmmu is not set -# CONFIG_PACKAGE_qemu-arm-softmmu is not set -# CONFIG_PACKAGE_qemu-bridge-helper is not set -# CONFIG_PACKAGE_qemu-firmware-efi is not set -# CONFIG_PACKAGE_qemu-firmware-pxe is not set -# CONFIG_PACKAGE_qemu-firmware-seabios is not set -# CONFIG_PACKAGE_qemu-firmware-seavgabios is not set -# CONFIG_PACKAGE_qemu-ga is not set -# CONFIG_PACKAGE_qemu-img is not set -# CONFIG_PACKAGE_qemu-keymaps is not set -# CONFIG_PACKAGE_qemu-nbd is not set -# CONFIG_PACKAGE_qemu-x86_64-softmmu is not set -# CONFIG_PACKAGE_virtio-console-helper is not set +CONFIG_PACKAGE_qemu-aarch64-softmmu=m +CONFIG_PACKAGE_qemu-arm-softmmu=m +CONFIG_PACKAGE_qemu-bridge-helper=m +CONFIG_PACKAGE_qemu-firmware-efi=m +CONFIG_PACKAGE_qemu-firmware-pxe=m +CONFIG_PACKAGE_qemu-firmware-seabios=m +CONFIG_PACKAGE_qemu-firmware-seavgabios=m +CONFIG_PACKAGE_qemu-ga=m +CONFIG_PACKAGE_qemu-img=m +CONFIG_PACKAGE_qemu-keymaps=m +CONFIG_PACKAGE_qemu-nbd=m +CONFIG_PACKAGE_qemu-x86_64-softmmu=m +CONFIG_QEMU_UI_VNC=y +# CONFIG_QEMU_UI_VNC_JPEG is not set +# CONFIG_QEMU_UI_VNC_SASL is not set +# CONFIG_QEMU_UI_SPICE is not set +CONFIG_QEMU_DEV_USB=y +CONFIG_QEMU_SECCOMP=y +# CONFIG_QEMU_ZSTD is not set +CONFIG_PACKAGE_virtio-console-helper=m # end of Virtualization # # libimobiledevice # -# CONFIG_PACKAGE_idevicerestore is not set -# CONFIG_PACKAGE_irecovery is not set -# CONFIG_PACKAGE_libimobiledevice-utils is not set -# CONFIG_PACKAGE_libusbmuxd-utils is not set -# CONFIG_PACKAGE_plistutil is not set -# CONFIG_PACKAGE_usbmuxd is not set +CONFIG_PACKAGE_idevicerestore=m +CONFIG_PACKAGE_irecovery=m +CONFIG_PACKAGE_libimobiledevice-utils=m +CONFIG_PACKAGE_libusbmuxd-utils=m +CONFIG_PACKAGE_plistutil=m +CONFIG_PACKAGE_usbmuxd=m # end of libimobiledevice # @@ -6747,78 +12862,301 @@ CONFIG_PACKAGE_nu801=m # CONFIG_PACKAGE_libselinux-validatetrans is not set # end of libselinux tools -# CONFIG_PACKAGE_ack is not set +CONFIG_PACKAGE_ack=m # CONFIG_PACKAGE_acpica-unix is not set # CONFIG_PACKAGE_acpid is not set # CONFIG_PACKAGE_adb is not set -# CONFIG_PACKAGE_airos-dfs-reset is not set -# CONFIG_PACKAGE_ap51-flash is not set -# CONFIG_PACKAGE_apk is not set -# CONFIG_PACKAGE_arp-whisper is not set -# CONFIG_PACKAGE_at is not set -# CONFIG_PACKAGE_atheepmgr is not set -# CONFIG_PACKAGE_audit is not set -# CONFIG_PACKAGE_audit-utils is not set -# CONFIG_PACKAGE_augeas is not set -# CONFIG_PACKAGE_augeas-lenses is not set -# CONFIG_PACKAGE_augeas-lenses-tests is not set -# CONFIG_PACKAGE_banhostlist is not set -# CONFIG_PACKAGE_base16384 is not set -# CONFIG_PACKAGE_bc is not set -# CONFIG_PACKAGE_bluelog is not set -# CONFIG_PACKAGE_bluez-daemon is not set -# CONFIG_PACKAGE_bluez-tools is not set -# CONFIG_PACKAGE_bluez-utils is not set -# CONFIG_PACKAGE_bluez-utils-btmon is not set -# CONFIG_PACKAGE_bluez-utils-extra is not set -# CONFIG_PACKAGE_bluld is not set -# CONFIG_PACKAGE_bonniexx is not set -# CONFIG_PACKAGE_borgbackup is not set -# CONFIG_PACKAGE_bossa is not set -# CONFIG_PACKAGE_bottlerocket is not set +CONFIG_PACKAGE_airos-dfs-reset=m +CONFIG_PACKAGE_alpine-keys=m +CONFIG_PACKAGE_alpine-repositories=m +CONFIG_PACKAGE_ap51-flash=m +CONFIG_PACKAGE_apk=m +CONFIG_PACKAGE_arp-whisper=m +CONFIG_PACKAGE_at=m +CONFIG_PACKAGE_atheepmgr=m +# CONFIG_ATHEEPMGR_DANGEROUS_FUNCTIONS is not set +CONFIG_PACKAGE_audit=m +CONFIG_PACKAGE_audit-utils=m +CONFIG_PACKAGE_augeas=m +CONFIG_PACKAGE_augeas-lenses=m +CONFIG_PACKAGE_augeas-lenses-tests=m +CONFIG_PACKAGE_banhostlist=m +CONFIG_PACKAGE_base16384=m +CONFIG_PACKAGE_bc=m +CONFIG_PACKAGE_bluelog=m +CONFIG_PACKAGE_bluelog-live=m +CONFIG_PACKAGE_bluez-daemon=m +CONFIG_PACKAGE_bluez-tools=m +CONFIG_PACKAGE_bluez-utils=m +CONFIG_PACKAGE_bluez-utils-btmon=m +CONFIG_PACKAGE_bluez-utils-extra=m +CONFIG_PACKAGE_bluld=m +CONFIG_PACKAGE_bmx7-dnsupdate=m +CONFIG_PACKAGE_bonniexx=m +CONFIG_PACKAGE_borgbackup=m +CONFIG_PACKAGE_borgbackup-src=m +CONFIG_PACKAGE_bossa=m +CONFIG_PACKAGE_bottlerocket=m # CONFIG_PACKAGE_bsdiff is not set # CONFIG_PACKAGE_bspatch is not set -# CONFIG_PACKAGE_byobu is not set -# CONFIG_PACKAGE_byobu-utils is not set -# CONFIG_PACKAGE_cache-domains-mbedtls is not set -# CONFIG_PACKAGE_cache-domains-openssl is not set -# CONFIG_PACKAGE_cache-domains-wolfssl is not set +CONFIG_PACKAGE_byobu=m +CONFIG_PACKAGE_byobu-utils=m +CONFIG_PACKAGE_cache-domains-mbedtls=m +CONFIG_PACKAGE_cache-domains-openssl=m +CONFIG_PACKAGE_cache-domains-wolfssl=m # CONFIG_PACKAGE_cal is not set -# CONFIG_PACKAGE_canutils is not set -# CONFIG_PACKAGE_catatonit is not set -# CONFIG_PACKAGE_cgroup-tools is not set -# CONFIG_PACKAGE_cgroupfs-mount is not set +CONFIG_PACKAGE_canutils=m +CONFIG_PACKAGE_canutils-asc2log=m +CONFIG_PACKAGE_canutils-bcmserver=m +CONFIG_PACKAGE_canutils-can-calc-bit-timing=m +CONFIG_PACKAGE_canutils-canbusload=m +CONFIG_PACKAGE_canutils-candump=m +CONFIG_PACKAGE_canutils-canfdtest=m +CONFIG_PACKAGE_canutils-cangen=m +CONFIG_PACKAGE_canutils-cangw=m +CONFIG_PACKAGE_canutils-canlogserver=m +CONFIG_PACKAGE_canutils-canplayer=m +CONFIG_PACKAGE_canutils-cansend=m +CONFIG_PACKAGE_canutils-cansniffer=m +CONFIG_PACKAGE_canutils-isotpdump=m +CONFIG_PACKAGE_canutils-isotpperf=m +CONFIG_PACKAGE_canutils-isotprecv=m +CONFIG_PACKAGE_canutils-isotpsend=m +CONFIG_PACKAGE_canutils-isotpserver=m +CONFIG_PACKAGE_canutils-isotpsniffer=m +CONFIG_PACKAGE_canutils-isotptun=m +CONFIG_PACKAGE_canutils-j1939acd=m +CONFIG_PACKAGE_canutils-j1939cat=m +CONFIG_PACKAGE_canutils-j1939spy=m +CONFIG_PACKAGE_canutils-j1939sr=m +CONFIG_PACKAGE_canutils-log2asc=m +CONFIG_PACKAGE_canutils-log2long=m +CONFIG_PACKAGE_canutils-slcan_attach=m +CONFIG_PACKAGE_canutils-slcand=m +CONFIG_PACKAGE_canutils-slcanpty=m +CONFIG_PACKAGE_canutils-testj1939=m +CONFIG_PACKAGE_catatonit=m +CONFIG_PACKAGE_cgroup-tools=m +CONFIG_PACKAGE_cgroupfs-mount=m +# CONFIG_CGROUPFS_MOUNT_KERNEL_CGROUPS is not set # CONFIG_PACKAGE_checkpolicy is not set -# CONFIG_PACKAGE_checksec is not set -# CONFIG_PACKAGE_checksec_automator is not set +CONFIG_PACKAGE_checksec=m +CONFIG_PACKAGE_checksec_automator=m # CONFIG_PACKAGE_chkcon is not set -# CONFIG_PACKAGE_clocate is not set -# CONFIG_PACKAGE_cmdpad is not set -# CONFIG_PACKAGE_cni is not set -# CONFIG_PACKAGE_cni-plugins is not set -# CONFIG_PACKAGE_cni-plugins-nft is not set -# CONFIG_PACKAGE_coap-client is not set -# CONFIG_PACKAGE_collectd is not set +CONFIG_PACKAGE_cligen=m +CONFIG_PACKAGE_clixon=m +CONFIG_PACKAGE_clocate=m +CONFIG_PACKAGE_cmdpad=m +CONFIG_PACKAGE_cni=m +CONFIG_PACKAGE_cni-plugins=m +CONFIG_PACKAGE_cni-plugins-nft=m +CONFIG_PACKAGE_coap-client=m +CONFIG_PACKAGE_collectd=m +# CONFIG_PACKAGE_COLLECTD_ENCRYPTED_NETWORK is not set +# CONFIG_PACKAGE_COLLECTD_DEBUG_OUTPUT_ENABLE is not set +CONFIG_PACKAGE_collectd-mod-apache=m +CONFIG_PACKAGE_collectd-mod-apcups=m +CONFIG_PACKAGE_collectd-mod-ascent=m +CONFIG_PACKAGE_collectd-mod-bind=m +CONFIG_PACKAGE_collectd-mod-chrony=m +CONFIG_PACKAGE_collectd-mod-conntrack=m +CONFIG_PACKAGE_collectd-mod-contextswitch=m +CONFIG_PACKAGE_collectd-mod-cpu=m +CONFIG_PACKAGE_collectd-mod-cpufreq=m +CONFIG_PACKAGE_collectd-mod-csv=m +CONFIG_PACKAGE_collectd-mod-curl=m +CONFIG_PACKAGE_collectd-mod-df=m +CONFIG_PACKAGE_collectd-mod-dhcpleases=m +CONFIG_PACKAGE_collectd-mod-disk=m +CONFIG_PACKAGE_collectd-mod-dns=m +CONFIG_PACKAGE_collectd-mod-email=m +CONFIG_PACKAGE_collectd-mod-entropy=m +CONFIG_PACKAGE_collectd-mod-ethstat=m +CONFIG_PACKAGE_collectd-mod-exec=m +CONFIG_PACKAGE_collectd-mod-filecount=m +CONFIG_PACKAGE_collectd-mod-fscache=m +CONFIG_PACKAGE_collectd-mod-interface=m +CONFIG_PACKAGE_collectd-mod-ipstatistics=m +CONFIG_PACKAGE_collectd-mod-iptables=m +CONFIG_PACKAGE_collectd-mod-irq=m +CONFIG_PACKAGE_collectd-mod-iwinfo=m +CONFIG_PACKAGE_collectd-mod-load=m +CONFIG_PACKAGE_collectd-mod-logfile=m +CONFIG_PACKAGE_collectd-mod-lua=m +CONFIG_PACKAGE_collectd-mod-match-empty-counter=m +CONFIG_PACKAGE_collectd-mod-match-hashed=m +CONFIG_PACKAGE_collectd-mod-match-regex=m +CONFIG_PACKAGE_collectd-mod-match-timediff=m +CONFIG_PACKAGE_collectd-mod-match-value=m +CONFIG_PACKAGE_collectd-mod-memory=m +CONFIG_PACKAGE_collectd-mod-modbus=m +CONFIG_PACKAGE_collectd-mod-mqtt=m +CONFIG_PACKAGE_collectd-mod-mysql=m +CONFIG_PACKAGE_collectd-mod-netlink=m +CONFIG_PACKAGE_collectd-mod-network=m +CONFIG_PACKAGE_collectd-mod-nginx=m +CONFIG_PACKAGE_collectd-mod-ntpd=m +CONFIG_PACKAGE_collectd-mod-nut=m +CONFIG_PACKAGE_collectd-mod-olsrd=m +CONFIG_PACKAGE_collectd-mod-openvpn=m +CONFIG_PACKAGE_collectd-mod-ping=m +CONFIG_PACKAGE_collectd-mod-postgresql=m +CONFIG_PACKAGE_collectd-mod-powerdns=m +CONFIG_PACKAGE_collectd-mod-processes=m +CONFIG_PACKAGE_collectd-mod-protocols=m +CONFIG_PACKAGE_collectd-mod-routeros=m +CONFIG_PACKAGE_collectd-mod-rrdtool=m +CONFIG_PACKAGE_collectd-mod-sensors=m +CONFIG_PACKAGE_collectd-mod-smart=m +CONFIG_PACKAGE_collectd-mod-snmp=m +CONFIG_PACKAGE_collectd-mod-snmp6=m +CONFIG_PACKAGE_collectd-mod-sqm=m +CONFIG_PACKAGE_collectd-mod-swap=m +CONFIG_PACKAGE_collectd-mod-syslog=m +CONFIG_PACKAGE_collectd-mod-table=m +CONFIG_PACKAGE_collectd-mod-tail=m +CONFIG_PACKAGE_collectd-mod-tail-csv=m +CONFIG_PACKAGE_collectd-mod-tcpconns=m +CONFIG_PACKAGE_collectd-mod-teamspeak2=m +CONFIG_PACKAGE_collectd-mod-ted=m +CONFIG_PACKAGE_collectd-mod-thermal=m +CONFIG_PACKAGE_collectd-mod-threshold=m +CONFIG_PACKAGE_collectd-mod-unixsock=m +CONFIG_PACKAGE_collectd-mod-uptime=m +CONFIG_PACKAGE_collectd-mod-users=m +CONFIG_PACKAGE_collectd-mod-vmem=m +CONFIG_PACKAGE_collectd-mod-wireless=m +CONFIG_PACKAGE_collectd-mod-write-graphite=m +CONFIG_PACKAGE_collectd-mod-write-http=m # CONFIG_PACKAGE_colrm is not set -# CONFIG_PACKAGE_conmon is not set +CONFIG_PACKAGE_conmon=m CONFIG_PACKAGE_containerd=m -# CONFIG_PACKAGE_coremark is not set -# CONFIG_PACKAGE_coreutils is not set -# CONFIG_PACKAGE_cpusage is not set -# CONFIG_PACKAGE_crconf is not set -# CONFIG_PACKAGE_crelay is not set -# CONFIG_PACKAGE_crun is not set -# CONFIG_PACKAGE_csstidy is not set +CONFIG_PACKAGE_coremark=m +CONFIG_COREMARK_OPTIMIZE_O3=y +# CONFIG_COREMARK_ENABLE_MULTITHREADING is not set +CONFIG_PACKAGE_coreutils=m +CONFIG_PACKAGE_coreutils-b2sum=m +CONFIG_PACKAGE_coreutils-base32=m +CONFIG_PACKAGE_coreutils-base64=m +CONFIG_PACKAGE_coreutils-basename=m +CONFIG_PACKAGE_coreutils-basenc=m +CONFIG_PACKAGE_coreutils-cat=m +CONFIG_PACKAGE_coreutils-chcon=m +CONFIG_PACKAGE_coreutils-chgrp=m +CONFIG_PACKAGE_coreutils-chmod=m +CONFIG_PACKAGE_coreutils-chown=m +CONFIG_PACKAGE_coreutils-chroot=m +CONFIG_PACKAGE_coreutils-cksum=m +CONFIG_PACKAGE_coreutils-comm=m +CONFIG_PACKAGE_coreutils-cp=m +CONFIG_PACKAGE_coreutils-csplit=m +CONFIG_PACKAGE_coreutils-cut=m +CONFIG_PACKAGE_coreutils-date=m +CONFIG_PACKAGE_coreutils-dd=m +CONFIG_PACKAGE_coreutils-df=m +CONFIG_PACKAGE_coreutils-dir=m +CONFIG_PACKAGE_coreutils-dircolors=m +CONFIG_PACKAGE_coreutils-dirname=m +CONFIG_PACKAGE_coreutils-du=m +CONFIG_PACKAGE_coreutils-echo=m +CONFIG_PACKAGE_coreutils-env=m +CONFIG_PACKAGE_coreutils-expand=m +CONFIG_PACKAGE_coreutils-expr=m +CONFIG_PACKAGE_coreutils-factor=m +CONFIG_PACKAGE_coreutils-false=m +CONFIG_PACKAGE_coreutils-fmt=m +CONFIG_PACKAGE_coreutils-fold=m +CONFIG_PACKAGE_coreutils-groups=m +CONFIG_PACKAGE_coreutils-head=m +CONFIG_PACKAGE_coreutils-hostid=m +CONFIG_PACKAGE_coreutils-id=m +CONFIG_PACKAGE_coreutils-install=m +CONFIG_PACKAGE_coreutils-join=m +CONFIG_PACKAGE_coreutils-kill=m +CONFIG_PACKAGE_coreutils-link=m +CONFIG_PACKAGE_coreutils-ln=m +CONFIG_PACKAGE_coreutils-logname=m +CONFIG_PACKAGE_coreutils-ls=m +CONFIG_PACKAGE_coreutils-md5sum=m +CONFIG_PACKAGE_coreutils-mkdir=m +CONFIG_PACKAGE_coreutils-mkfifo=m +CONFIG_PACKAGE_coreutils-mknod=m +CONFIG_PACKAGE_coreutils-mktemp=m +CONFIG_PACKAGE_coreutils-mv=m +CONFIG_PACKAGE_coreutils-nice=m +CONFIG_PACKAGE_coreutils-nl=m +CONFIG_PACKAGE_coreutils-nohup=m +CONFIG_PACKAGE_coreutils-nproc=m +CONFIG_PACKAGE_coreutils-numfmt=m +CONFIG_PACKAGE_coreutils-od=m +CONFIG_PACKAGE_coreutils-paste=m +CONFIG_PACKAGE_coreutils-pathchk=m +CONFIG_PACKAGE_coreutils-pinky=m +CONFIG_PACKAGE_coreutils-pr=m +CONFIG_PACKAGE_coreutils-printenv=m +CONFIG_PACKAGE_coreutils-printf=m +CONFIG_PACKAGE_coreutils-ptx=m +CONFIG_PACKAGE_coreutils-pwd=m +CONFIG_PACKAGE_coreutils-readlink=m +CONFIG_PACKAGE_coreutils-realpath=m +CONFIG_PACKAGE_coreutils-rm=m +CONFIG_PACKAGE_coreutils-rmdir=m +CONFIG_PACKAGE_coreutils-runcon=m +CONFIG_PACKAGE_coreutils-seq=m +CONFIG_PACKAGE_coreutils-sha1sum=m +CONFIG_PACKAGE_coreutils-sha224sum=m +CONFIG_PACKAGE_coreutils-sha256sum=m +CONFIG_PACKAGE_coreutils-sha384sum=m +CONFIG_PACKAGE_coreutils-sha512sum=m +CONFIG_PACKAGE_coreutils-shred=m +CONFIG_PACKAGE_coreutils-shuf=m +CONFIG_PACKAGE_coreutils-sleep=m +CONFIG_PACKAGE_coreutils-sort=m +CONFIG_PACKAGE_coreutils-split=m +CONFIG_PACKAGE_coreutils-stat=m +CONFIG_PACKAGE_coreutils-stdbuf=m +CONFIG_PACKAGE_coreutils-stty=m +CONFIG_PACKAGE_coreutils-sum=m +CONFIG_PACKAGE_coreutils-sync=m +CONFIG_PACKAGE_coreutils-tac=m +CONFIG_PACKAGE_coreutils-tail=m +CONFIG_PACKAGE_coreutils-tee=m +CONFIG_PACKAGE_coreutils-test=m +CONFIG_PACKAGE_coreutils-timeout=m +CONFIG_PACKAGE_coreutils-touch=m +CONFIG_PACKAGE_coreutils-tr=m +CONFIG_PACKAGE_coreutils-true=m +CONFIG_PACKAGE_coreutils-truncate=m +CONFIG_PACKAGE_coreutils-tsort=m +CONFIG_PACKAGE_coreutils-tty=m +CONFIG_PACKAGE_coreutils-uname=m +CONFIG_PACKAGE_coreutils-unexpand=m +CONFIG_PACKAGE_coreutils-uniq=m +CONFIG_PACKAGE_coreutils-unlink=m +CONFIG_PACKAGE_coreutils-uptime=m +CONFIG_PACKAGE_coreutils-users=m +CONFIG_PACKAGE_coreutils-vdir=m +CONFIG_PACKAGE_coreutils-wc=m +CONFIG_PACKAGE_coreutils-who=m +CONFIG_PACKAGE_coreutils-whoami=m +CONFIG_PACKAGE_coreutils-yes=m +CONFIG_PACKAGE_cpusage=m +CONFIG_PACKAGE_crconf=m +CONFIG_PACKAGE_crelay=m +CONFIG_PACKAGE_crun=m +CONFIG_PACKAGE_csstidy=m # CONFIG_PACKAGE_ct-bugcheck is not set -# CONFIG_PACKAGE_ctop is not set -# CONFIG_PACKAGE_dbus is not set -# CONFIG_PACKAGE_dbus-utils is not set -# CONFIG_PACKAGE_device-observatory is not set -# CONFIG_PACKAGE_dfu-util is not set -# CONFIG_PACKAGE_digitemp is not set -# CONFIG_PACKAGE_digitemp-usb is not set +CONFIG_PACKAGE_ctop=m +CONFIG_PACKAGE_dbus=m +# CONFIG_DBUS_VERBOSE is not set +CONFIG_PACKAGE_dbus-utils=m +CONFIG_PACKAGE_dc=m +CONFIG_PACKAGE_device-observatory=m +CONFIG_PACKAGE_dfu-util=m +CONFIG_PACKAGE_digitemp=m +CONFIG_PACKAGE_digitemp-usb=m # CONFIG_PACKAGE_dmesg is not set -# CONFIG_PACKAGE_dmidecode is not set +CONFIG_PACKAGE_dmidecode=m CONFIG_PACKAGE_docker=m CONFIG_PACKAGE_docker-compose=m CONFIG_PACKAGE_dockerd=m @@ -6842,155 +13180,445 @@ CONFIG_PACKAGE_dockerd=m # CONFIG_DOCKER_STO_BTRFS is not set # end of Storage -# CONFIG_PACKAGE_domoticz is not set -# CONFIG_PACKAGE_dos2unix is not set +CONFIG_PACKAGE_domoticz=m +CONFIG_PACKAGE_dos2unix=m CONFIG_PACKAGE_dropbearconvert=m # CONFIG_PACKAGE_dtc is not set -# CONFIG_PACKAGE_dumb-init is not set -# CONFIG_PACKAGE_dump1090 is not set -# CONFIG_PACKAGE_dysk is not set -# CONFIG_PACKAGE_ecdsautils is not set -# CONFIG_PACKAGE_efibootmgr is not set -# CONFIG_PACKAGE_elektra-kdb is not set -# CONFIG_PACKAGE_evtest is not set -# CONFIG_PACKAGE_extract is not set +CONFIG_PACKAGE_dumb-init=m +CONFIG_PACKAGE_dump1090=m +CONFIG_PACKAGE_dysk=m +CONFIG_PACKAGE_ecdsautils=m +CONFIG_PACKAGE_efibootmgr=m +CONFIG_PACKAGE_elektra-kdb=m +CONFIG_PACKAGE_evtest=m +CONFIG_PACKAGE_extract=m # CONFIG_PACKAGE_fbtest is not set # CONFIG_PACKAGE_fdt-utils is not set -# CONFIG_PACKAGE_file is not set -# CONFIG_PACKAGE_findutils is not set -# CONFIG_PACKAGE_findutils-find is not set -# CONFIG_PACKAGE_findutils-locate is not set -# CONFIG_PACKAGE_findutils-xargs is not set -# CONFIG_PACKAGE_flashrom is not set -# CONFIG_PACKAGE_flashrom-pci is not set -# CONFIG_PACKAGE_flashrom-spi is not set -# CONFIG_PACKAGE_flashrom-usb is not set -# CONFIG_PACKAGE_flock is not set +CONFIG_PACKAGE_file=m +CONFIG_PACKAGE_findutils=m +CONFIG_PACKAGE_findutils-find=m +CONFIG_PACKAGE_findutils-locate=m +CONFIG_PACKAGE_findutils-xargs=m +CONFIG_PACKAGE_flashrom=m +CONFIG_PACKAGE_flashrom-pci=m +CONFIG_PACKAGE_flashrom-spi=m +CONFIG_PACKAGE_flashrom-usb=m +CONFIG_PACKAGE_flent-tools=m +CONFIG_PACKAGE_flock=m # CONFIG_PACKAGE_fritz-caldata is not set # CONFIG_PACKAGE_fritz-tffs is not set # CONFIG_PACKAGE_fritz-tffs-nand is not set -# CONFIG_PACKAGE_ftdi_eeprom is not set -# CONFIG_PACKAGE_fuse-overlayfs is not set -# CONFIG_PACKAGE_fx is not set -# CONFIG_PACKAGE_fxload is not set -# CONFIG_PACKAGE_gammu is not set -# CONFIG_PACKAGE_gawk is not set -# CONFIG_PACKAGE_gddrescue is not set -# CONFIG_PACKAGE_getopt is not set -# CONFIG_PACKAGE_giflib-utils is not set -# CONFIG_PACKAGE_gkermit is not set -# CONFIG_PACKAGE_gl-puli-mcu is not set -# CONFIG_PACKAGE_gnuplot is not set -# CONFIG_PACKAGE_gpioctl-sysfs is not set -# CONFIG_PACKAGE_gpiod-tools is not set -# CONFIG_PACKAGE_gpsd is not set -# CONFIG_PACKAGE_gpsd-clients is not set -# CONFIG_PACKAGE_gpsd-utils is not set -# CONFIG_PACKAGE_grep is not set -# CONFIG_PACKAGE_hamlib is not set -# CONFIG_PACKAGE_haserl is not set -# CONFIG_PACKAGE_hashdeep is not set -# CONFIG_PACKAGE_haveged is not set -# CONFIG_PACKAGE_hplip-common is not set -# CONFIG_PACKAGE_hplip-sane is not set -# CONFIG_PACKAGE_hub-ctrl is not set +CONFIG_PACKAGE_ftdi_eeprom=m +CONFIG_PACKAGE_fuse-overlayfs=m +CONFIG_PACKAGE_fx=m +CONFIG_PACKAGE_fxload=m +CONFIG_PACKAGE_gammu=m +CONFIG_PACKAGE_gawk=m +CONFIG_PACKAGE_gddrescue=m +CONFIG_PACKAGE_getopt=m +CONFIG_PACKAGE_giflib-utils=m +CONFIG_PACKAGE_gkermit=m +CONFIG_PACKAGE_gl-puli-mcu=m +CONFIG_GL_PULI_MCU_XE300=y +# CONFIG_GL_PULI_MCU_XE3000 is not set +CONFIG_PACKAGE_gnuplot=m +CONFIG_PACKAGE_gpioctl-sysfs=m +CONFIG_PACKAGE_gpiod-tools=m +CONFIG_PACKAGE_gpsd=m +CONFIG_PACKAGE_gpsd-clients=m +CONFIG_PACKAGE_gpsd-utils=m +CONFIG_PACKAGE_grep=m +CONFIG_PACKAGE_hamlib=m +CONFIG_PACKAGE_haserl=m +# CONFIG_HASERL_with_lua is not set + +# +# Lua support +# +# CONFIG_HASERL_shell_luac is not set +# CONFIG_HASERL_shell_lua is not set +CONFIG_PACKAGE_hashdeep=m +CONFIG_PACKAGE_haveged=m +CONFIG_PACKAGE_hplip-common=m +CONFIG_PACKAGE_hplip-sane=m +CONFIG_PACKAGE_hub-ctrl=m # CONFIG_PACKAGE_hwclock is not set -# CONFIG_PACKAGE_hwinfo is not set -# CONFIG_PACKAGE_hwloc-utils is not set -# CONFIG_PACKAGE_i2c-tools is not set +CONFIG_PACKAGE_hwinfo=m +CONFIG_PACKAGE_hwloc-utils=m +CONFIG_PACKAGE_i2c-tools=m # CONFIG_PACKAGE_iconv is not set -# CONFIG_PACKAGE_iio-utils is not set -# CONFIG_PACKAGE_inotifywait is not set -# CONFIG_PACKAGE_inotifywatch is not set -# CONFIG_PACKAGE_io is not set +CONFIG_PACKAGE_iio-utils=m +CONFIG_PACKAGE_inotifywait=m +CONFIG_PACKAGE_inotifywatch=m +CONFIG_PACKAGE_io=m # CONFIG_PACKAGE_ipcs is not set -# CONFIG_PACKAGE_irqbalance is not set +CONFIG_PACKAGE_irqbalance=m # CONFIG_PACKAGE_iwcap is not set CONFIG_PACKAGE_iwinfo=m -# CONFIG_PACKAGE_jq is not set +CONFIG_PACKAGE_jq=m CONFIG_PACKAGE_jshn=y # CONFIG_PACKAGE_kdump is not set # CONFIG_PACKAGE_kexec is not set # CONFIG_PACKAGE_kexec-tools is not set -# CONFIG_PACKAGE_kmod is not set -# CONFIG_PACKAGE_lcd4linux-custom is not set -# CONFIG_PACKAGE_lcd4linux-full is not set -# CONFIG_PACKAGE_lcdproc-clients is not set -# CONFIG_PACKAGE_lcdproc-drivers is not set -# CONFIG_PACKAGE_lcdproc-server is not set -# CONFIG_PACKAGE_less is not set -# CONFIG_PACKAGE_libflashrom is not set +CONFIG_PACKAGE_klish-xml-files=m +CONFIG_PACKAGE_kmod=m +CONFIG_PACKAGE_lcd4linux-custom=m + +# +# Drivers --- +# +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_ASTUSB is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_BeckmannEgle is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_BWCT is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_CrystalFontz is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Curses is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Cwlinux is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_D4D is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_DPF is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_EA232graphic is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_EFN is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_FutabaVFD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_FW8888 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_G15 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_GLCD2USB is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_IRLCD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_LCD2USB is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_LCDTerm is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_LEDMatrix is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_LPH7508 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_LW_ABP is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_M50530 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_MatrixOrbital is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_MatrixOrbitalGX is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_mdm166a is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_MilfordInstruments is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Newhaven is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Noritake is not set +CONFIG_LCD4LINUX_CUSTOM_DRIVER_NULL=y +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Pertelian is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_PHAnderson is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_PICGraphic is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_picoLCD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_picoLCDGraphic is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_PNG is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_PPM is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_SamsungSPF is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_serdisplib is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_ShuttleVFD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_SimpleLCD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_st2205 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_T6963 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_TeakLCM is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Trefon is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_USBHUB is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_USBLCD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_VNC is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_WincorNixdorf is not set + +# +# Plugins --- +# +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_apm is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_asterisk is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_button_exec is not set +CONFIG_LCD4LINUX_CUSTOM_PLUGIN_cpuinfo=y +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_dbus is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_diskstats is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_dvb is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_event is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_exec is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_fifo is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_file is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_gps is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_hddtemp is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_huawei is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_i2c_sensors is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_iconv is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_imon is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_isdn is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_kvv is not set +CONFIG_LCD4LINUX_CUSTOM_PLUGIN_loadavg=y +CONFIG_LCD4LINUX_CUSTOM_PLUGIN_meminfo=y +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_mpd is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_mpris_dbus is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_mysql is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_netdev is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_netinfo is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_pop3 is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_ppp is not set +CONFIG_LCD4LINUX_CUSTOM_PLUGIN_proc_stat=y +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_qnaplog is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_seti is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_statfs is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_uname is not set +CONFIG_LCD4LINUX_CUSTOM_PLUGIN_uptime=y +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_w1retap is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_xmms is not set +CONFIG_PACKAGE_lcd4linux-full=m +CONFIG_PACKAGE_lcdproc-clients=m +CONFIG_PACKAGE_lcdproc-drivers=m +CONFIG_PACKAGE_lcdproc-server=m +CONFIG_PACKAGE_less=m +CONFIG_PACKAGE_libflashrom=m CONFIG_PACKAGE_libjson-script=y -# CONFIG_PACKAGE_librespeed-cli is not set +CONFIG_PACKAGE_librespeed-cli=m +CONFIG_PACKAGE_libucontext-tests=m # CONFIG_PACKAGE_libxml2-utils is not set -# CONFIG_PACKAGE_lm-sensors is not set -# CONFIG_PACKAGE_lm-sensors-detect is not set +CONFIG_PACKAGE_lm-sensors=m +CONFIG_PACKAGE_lm-sensors-detect=m # CONFIG_PACKAGE_logger is not set -# CONFIG_PACKAGE_logrotate is not set -# CONFIG_PACKAGE_lolcat is not set +CONFIG_PACKAGE_logrotate=m +CONFIG_LOGROTATE_ACL=y +CONFIG_PACKAGE_lolcat=m # CONFIG_PACKAGE_look is not set # CONFIG_PACKAGE_losetup is not set -# CONFIG_PACKAGE_lrzsz is not set +CONFIG_PACKAGE_lrzsz=m # CONFIG_PACKAGE_lscpu is not set # CONFIG_PACKAGE_lslocks is not set # CONFIG_PACKAGE_lsns is not set -# CONFIG_PACKAGE_lsof is not set -# CONFIG_PACKAGE_lxc is not set -# CONFIG_PACKAGE_maccalc is not set -# CONFIG_PACKAGE_macchanger is not set -# CONFIG_PACKAGE_mandoc is not set +CONFIG_PACKAGE_lsof=m +CONFIG_PACKAGE_lxc=m + +# +# Configuration +# +# CONFIG_LXC_KERNEL_OPTIONS is not set +# CONFIG_LXC_BUSYBOX_OPTIONS is not set +CONFIG_LXC_SECCOMP=y +# CONFIG_LXC_NETWORKING is not set +# end of Configuration + +CONFIG_PACKAGE_lxc-attach=m +CONFIG_PACKAGE_lxc-auto=m +CONFIG_PACKAGE_lxc-autostart=m +CONFIG_PACKAGE_lxc-cgroup=m +CONFIG_PACKAGE_lxc-checkconfig=m +CONFIG_PACKAGE_lxc-common=m +CONFIG_PACKAGE_lxc-config=m +CONFIG_PACKAGE_lxc-configs=m +CONFIG_PACKAGE_lxc-console=m +CONFIG_PACKAGE_lxc-copy=m +CONFIG_PACKAGE_lxc-create=m +CONFIG_PACKAGE_lxc-destroy=m +CONFIG_PACKAGE_lxc-device=m +CONFIG_PACKAGE_lxc-execute=m +CONFIG_PACKAGE_lxc-freeze=m +CONFIG_PACKAGE_lxc-hooks=m +CONFIG_PACKAGE_lxc-info=m +CONFIG_PACKAGE_lxc-init=m +CONFIG_PACKAGE_lxc-ls=m +CONFIG_PACKAGE_lxc-monitor=m +CONFIG_PACKAGE_lxc-monitord=m +CONFIG_PACKAGE_lxc-snapshot=m +CONFIG_PACKAGE_lxc-start=m +CONFIG_PACKAGE_lxc-stop=m +CONFIG_PACKAGE_lxc-templates=m +CONFIG_PACKAGE_lxc-top=m +CONFIG_PACKAGE_lxc-unfreeze=m +CONFIG_PACKAGE_lxc-unprivileged=m +CONFIG_PACKAGE_lxc-unshare=m +CONFIG_PACKAGE_lxc-user-nic=m +CONFIG_PACKAGE_lxc-usernsexec=m +CONFIG_PACKAGE_lxc-wait=m +CONFIG_PACKAGE_maccalc=m +CONFIG_PACKAGE_macchanger=m +CONFIG_PACKAGE_mandoc=m # CONFIG_PACKAGE_mbedtls-util is not set -# CONFIG_PACKAGE_mbim-utils is not set -# CONFIG_PACKAGE_mbtools is not set -# CONFIG_PACKAGE_mc is not set -# CONFIG_PACKAGE_mc-skins is not set +CONFIG_PACKAGE_mbim-utils=m +CONFIG_PACKAGE_mbtools=m +CONFIG_PACKAGE_mc=m + +# +# Configuration +# +# CONFIG_MC_DIFFVIEWER is not set +CONFIG_MC_EDITOR=y +CONFIG_MC_SUBSHELL=y +# CONFIG_MC_LARGEFILE is not set +# CONFIG_MC_BACKGROUND is not set +CONFIG_MC_CHARSET=y +CONFIG_MC_VFS=y +# end of Configuration + +CONFIG_PACKAGE_mc-skins=m # CONFIG_PACKAGE_mcookie is not set -# CONFIG_PACKAGE_mdio-tools is not set -# CONFIG_PACKAGE_mhz is not set -# CONFIG_PACKAGE_micrond is not set -# CONFIG_PACKAGE_miniflux is not set -# CONFIG_PACKAGE_mmc-utils is not set -# CONFIG_PACKAGE_more is not set -# CONFIG_PACKAGE_moreutils is not set -# CONFIG_PACKAGE_mount-utils is not set -# CONFIG_PACKAGE_mpack is not set -# CONFIG_PACKAGE_mpremote is not set -# CONFIG_PACKAGE_mqttled is not set -# CONFIG_PACKAGE_mt-st is not set +CONFIG_PACKAGE_mdio-tools=m +CONFIG_PACKAGE_mhz=m +CONFIG_PACKAGE_micrond=m +CONFIG_PACKAGE_miniflux=m +CONFIG_PACKAGE_mmc-utils=m +CONFIG_PACKAGE_more=m +CONFIG_PACKAGE_moreutils=m +CONFIG_PACKAGE_mount-utils=m +CONFIG_PACKAGE_mpack=m +CONFIG_PACKAGE_mpremote=m +CONFIG_PACKAGE_mpremote-src=m +CONFIG_PACKAGE_mqttled=m +CONFIG_PACKAGE_mt-st=m CONFIG_PACKAGE_mt5311=m # CONFIG_PACKAGE_namei is not set -# CONFIG_PACKAGE_naywatch is not set -# CONFIG_PACKAGE_nerdctl is not set -# CONFIG_PACKAGE_netopeer2-cli is not set -# CONFIG_PACKAGE_netopeer2-server is not set -# CONFIG_PACKAGE_netwhere is not set -# CONFIG_PACKAGE_nnn is not set -# CONFIG_PACKAGE_nsenter is not set -# CONFIG_PACKAGE_nss-utils is not set -# CONFIG_PACKAGE_nsutils is not set -# CONFIG_PACKAGE_oath-toolkit is not set -# CONFIG_PACKAGE_oci-runtime-tool is not set -# CONFIG_PACKAGE_open-plc-utils is not set -# CONFIG_PACKAGE_open-vm-tools is not set -# CONFIG_PACKAGE_open-vm-tools-fuse is not set -# CONFIG_PACKAGE_open2300 is not set -# CONFIG_PACKAGE_opendoas is not set -# CONFIG_PACKAGE_openobex is not set -# CONFIG_PACKAGE_openobex-apps is not set -# CONFIG_PACKAGE_openocd is not set -# CONFIG_PACKAGE_opensc-utils is not set -# CONFIG_PACKAGE_openssl-util is not set -# CONFIG_PACKAGE_openzwave is not set -# CONFIG_PACKAGE_openzwave-config is not set -# CONFIG_PACKAGE_owipcalc is not set -# CONFIG_PACKAGE_passh is not set -# CONFIG_PACKAGE_pax-utils is not set -# CONFIG_PACKAGE_pciids is not set -# CONFIG_PACKAGE_pciutils is not set -# CONFIG_PACKAGE_pcmciautils is not set -# CONFIG_PACKAGE_pcsc-tools is not set -# CONFIG_PACKAGE_pcscd is not set -# CONFIG_PACKAGE_podman is not set +CONFIG_PACKAGE_naywatch=m +CONFIG_PACKAGE_nerdctl=m +CONFIG_PACKAGE_netopeer2-cli=m +CONFIG_PACKAGE_netopeer2-server=m +CONFIG_PACKAGE_netwhere=m +CONFIG_PACKAGE_nnn=m +CONFIG_PACKAGE_nsenter=m +CONFIG_PACKAGE_nss-utils=m +CONFIG_PACKAGE_nsutils=m +CONFIG_PACKAGE_oath-toolkit=m +CONFIG_PACKAGE_oci-runtime-tool=m +CONFIG_PACKAGE_oci-runtime-tests=m +CONFIG_PACKAGE_open-plc-utils=m +CONFIG_PACKAGE_open-plc-utils-CMEncrypt=m +CONFIG_PACKAGE_open-plc-utils-ampID=m +CONFIG_PACKAGE_open-plc-utils-ampboot=m +CONFIG_PACKAGE_open-plc-utils-amphost=m +CONFIG_PACKAGE_open-plc-utils-amplist=m +CONFIG_PACKAGE_open-plc-utils-amprate=m +CONFIG_PACKAGE_open-plc-utils-amprule=m +CONFIG_PACKAGE_open-plc-utils-ampstat=m +CONFIG_PACKAGE_open-plc-utils-amptest=m +CONFIG_PACKAGE_open-plc-utils-amptone=m +CONFIG_PACKAGE_open-plc-utils-amptool=m +CONFIG_PACKAGE_open-plc-utils-ampwait=m +CONFIG_PACKAGE_open-plc-utils-chknvm=m +CONFIG_PACKAGE_open-plc-utils-chknvm2=m +CONFIG_PACKAGE_open-plc-utils-chkpib=m +CONFIG_PACKAGE_open-plc-utils-chkpib2=m +CONFIG_PACKAGE_open-plc-utils-config2cfg=m +CONFIG_PACKAGE_open-plc-utils-coqos_add=m +CONFIG_PACKAGE_open-plc-utils-coqos_info=m +CONFIG_PACKAGE_open-plc-utils-coqos_man=m +CONFIG_PACKAGE_open-plc-utils-coqos_mod=m +CONFIG_PACKAGE_open-plc-utils-coqos_rel=m +CONFIG_PACKAGE_open-plc-utils-edru=m +CONFIG_PACKAGE_open-plc-utils-edsu=m +CONFIG_PACKAGE_open-plc-utils-efbu=m +CONFIG_PACKAGE_open-plc-utils-efeu=m +CONFIG_PACKAGE_open-plc-utils-efru=m +CONFIG_PACKAGE_open-plc-utils-efsu=m +CONFIG_PACKAGE_open-plc-utils-evse=m +CONFIG_PACKAGE_open-plc-utils-getpib=m +CONFIG_PACKAGE_open-plc-utils-hpav=m +CONFIG_PACKAGE_open-plc-utils-hpavkey=m +CONFIG_PACKAGE_open-plc-utils-hpavkeys=m +CONFIG_PACKAGE_open-plc-utils-int64host=m +CONFIG_PACKAGE_open-plc-utils-int6k=m +CONFIG_PACKAGE_open-plc-utils-int6kbaud=m +CONFIG_PACKAGE_open-plc-utils-int6kboot=m +CONFIG_PACKAGE_open-plc-utils-int6kdetect=m +CONFIG_PACKAGE_open-plc-utils-int6keth=m +CONFIG_PACKAGE_open-plc-utils-int6kf=m +CONFIG_PACKAGE_open-plc-utils-int6khost=m +CONFIG_PACKAGE_open-plc-utils-int6kid=m +CONFIG_PACKAGE_open-plc-utils-int6klist=m +CONFIG_PACKAGE_open-plc-utils-int6klog=m +CONFIG_PACKAGE_open-plc-utils-int6kmdio=m +CONFIG_PACKAGE_open-plc-utils-int6kmdio2=m +CONFIG_PACKAGE_open-plc-utils-int6kmod=m +CONFIG_PACKAGE_open-plc-utils-int6krate=m +CONFIG_PACKAGE_open-plc-utils-int6krule=m +CONFIG_PACKAGE_open-plc-utils-int6kstat=m +CONFIG_PACKAGE_open-plc-utils-int6ktest=m +CONFIG_PACKAGE_open-plc-utils-int6ktone=m +CONFIG_PACKAGE_open-plc-utils-int6kuart=m +CONFIG_PACKAGE_open-plc-utils-int6kwait=m +CONFIG_PACKAGE_open-plc-utils-mac2pw=m +CONFIG_PACKAGE_open-plc-utils-mac2pwd=m +CONFIG_PACKAGE_open-plc-utils-mdioblock=m +CONFIG_PACKAGE_open-plc-utils-mdioblock2=m +CONFIG_PACKAGE_open-plc-utils-mdiodump=m +CONFIG_PACKAGE_open-plc-utils-mdiogen=m +CONFIG_PACKAGE_open-plc-utils-mdustats=m +CONFIG_PACKAGE_open-plc-utils-mme=m +CONFIG_PACKAGE_open-plc-utils-modpib=m +CONFIG_PACKAGE_open-plc-utils-nics=m +CONFIG_PACKAGE_open-plc-utils-nvmmerge=m +CONFIG_PACKAGE_open-plc-utils-nvmsplit=m +CONFIG_PACKAGE_open-plc-utils-pev=m +CONFIG_PACKAGE_open-plc-utils-pib2xml=m +CONFIG_PACKAGE_open-plc-utils-pibcomp=m +CONFIG_PACKAGE_open-plc-utils-pibdump=m +CONFIG_PACKAGE_open-plc-utils-pibruin=m +CONFIG_PACKAGE_open-plc-utils-pibrump=m +CONFIG_PACKAGE_open-plc-utils-plcID=m +CONFIG_PACKAGE_open-plc-utils-plcboot=m +CONFIG_PACKAGE_open-plc-utils-plcdevs=m +CONFIG_PACKAGE_open-plc-utils-plcfwd=m +CONFIG_PACKAGE_open-plc-utils-plcget=m +CONFIG_PACKAGE_open-plc-utils-plchost=m +CONFIG_PACKAGE_open-plc-utils-plchostd=m +CONFIG_PACKAGE_open-plc-utils-plclist=m +CONFIG_PACKAGE_open-plc-utils-plclog=m +CONFIG_PACKAGE_open-plc-utils-plcmdio16=m +CONFIG_PACKAGE_open-plc-utils-plcmdio32=m +CONFIG_PACKAGE_open-plc-utils-plcotst=m +CONFIG_PACKAGE_open-plc-utils-plcrate=m +CONFIG_PACKAGE_open-plc-utils-plcrule=m +CONFIG_PACKAGE_open-plc-utils-plcset=m +CONFIG_PACKAGE_open-plc-utils-plcstat=m +CONFIG_PACKAGE_open-plc-utils-plctest=m +CONFIG_PACKAGE_open-plc-utils-plctone=m +CONFIG_PACKAGE_open-plc-utils-plctool=m +CONFIG_PACKAGE_open-plc-utils-plcwait=m +CONFIG_PACKAGE_open-plc-utils-psgraph=m +CONFIG_PACKAGE_open-plc-utils-psin=m +CONFIG_PACKAGE_open-plc-utils-pskey=m +CONFIG_PACKAGE_open-plc-utils-psnotch=m +CONFIG_PACKAGE_open-plc-utils-psout=m +CONFIG_PACKAGE_open-plc-utils-ptsctl=m +CONFIG_PACKAGE_open-plc-utils-rkey=m +CONFIG_PACKAGE_open-plc-utils-sada=m +CONFIG_PACKAGE_open-plc-utils-sdram=m +CONFIG_PACKAGE_open-plc-utils-setpib=m +CONFIG_PACKAGE_open-plc-utils-ttycat=m +CONFIG_PACKAGE_open-plc-utils-ttyrecv=m +CONFIG_PACKAGE_open-plc-utils-ttysend=m +CONFIG_PACKAGE_open-plc-utils-ttysig=m +CONFIG_PACKAGE_open-plc-utils-weeder=m +CONFIG_PACKAGE_open-plc-utils-xml2pib=m +CONFIG_PACKAGE_open-vm-tools=m +CONFIG_PACKAGE_open-vm-tools-fuse=m +CONFIG_PACKAGE_open2300=m +CONFIG_PACKAGE_opendoas=m +CONFIG_PACKAGE_openobex=m +CONFIG_PACKAGE_openobex-apps=m +CONFIG_PACKAGE_openocd=m +CONFIG_PACKAGE_opensc-utils=m +CONFIG_PACKAGE_opensc-utils-cardos-tool=m +CONFIG_PACKAGE_opensc-utils-cryptoflex-tool=m +CONFIG_PACKAGE_opensc-utils-dnie-tool=m +CONFIG_PACKAGE_opensc-utils-egk-tool=m +CONFIG_PACKAGE_opensc-utils-eidenv=m +CONFIG_PACKAGE_opensc-utils-gids-tool=m +CONFIG_PACKAGE_opensc-utils-goid-tool=m +CONFIG_PACKAGE_opensc-utils-iasecc-tool=m +CONFIG_PACKAGE_opensc-utils-netkey-tool=m +CONFIG_PACKAGE_opensc-utils-openpgp-tool=m +CONFIG_PACKAGE_opensc-utils-opensc-explorer=m +CONFIG_PACKAGE_opensc-utils-opensc-tool=m +CONFIG_PACKAGE_opensc-utils-piv-tool=m +CONFIG_PACKAGE_opensc-utils-pkcs11-register=m +CONFIG_PACKAGE_opensc-utils-pkcs11-tool=m +CONFIG_PACKAGE_opensc-utils-pkcs15-crypt=m +CONFIG_PACKAGE_opensc-utils-pkcs15-init=m +CONFIG_PACKAGE_opensc-utils-pkcs15-tool=m +CONFIG_PACKAGE_opensc-utils-sc-hsm-tool=m +CONFIG_PACKAGE_opensc-utils-westcos-tool=m +CONFIG_PACKAGE_openssl-util=m +CONFIG_PACKAGE_openzwave=m +CONFIG_PACKAGE_openzwave-config=m +CONFIG_PACKAGE_owipcalc=m +CONFIG_PACKAGE_passh=m +CONFIG_PACKAGE_pax-utils=m +# CONFIG_PAX_UTILS_SECCOMP is not set +CONFIG_PACKAGE_pciids=m +CONFIG_PACKAGE_pciutils=m +CONFIG_PACKAGE_pcmciautils=m +CONFIG_PACKAGE_pcsc-tools=m +CONFIG_PACKAGE_pcscd=m +CONFIG_PACKAGE_podman=m # # Configuration @@ -6998,82 +13626,179 @@ CONFIG_PACKAGE_mt5311=m # CONFIG_PODMAN_SELINUX_SUPPORT is not set # end of Configuration -# CONFIG_PACKAGE_poemgr is not set +CONFIG_PACKAGE_poemgr=m # CONFIG_PACKAGE_policycoreutils is not set -# CONFIG_PACKAGE_powertop is not set -# CONFIG_PACKAGE_pps-tools is not set +CONFIG_PACKAGE_powertop=m +CONFIG_PACKAGE_pps-tools=m # CONFIG_PACKAGE_prlimit is not set -# CONFIG_PACKAGE_procps-ng is not set +CONFIG_PACKAGE_procps-ng=m +CONFIG_PACKAGE_procps-ng-free=m +CONFIG_PACKAGE_procps-ng-kill=m +CONFIG_PACKAGE_procps-ng-pgrep=m +CONFIG_PACKAGE_procps-ng-pkill=m +CONFIG_PACKAGE_procps-ng-pmap=m +CONFIG_PACKAGE_procps-ng-ps=m +CONFIG_PACKAGE_procps-ng-pwdx=m +CONFIG_PACKAGE_procps-ng-skill=m +CONFIG_PACKAGE_procps-ng-slabtop=m +CONFIG_PACKAGE_procps-ng-snice=m +CONFIG_PACKAGE_procps-ng-sysctl=m +CONFIG_PACKAGE_procps-ng-tload=m +CONFIG_PACKAGE_procps-ng-top=m +CONFIG_PACKAGE_procps-ng-uptime=m +CONFIG_PACKAGE_procps-ng-vmstat=m +CONFIG_PACKAGE_procps-ng-w=m +CONFIG_PACKAGE_procps-ng-watch=m CONFIG_PACKAGE_procps-ng3=m -# CONFIG_PACKAGE_procs is not set -# CONFIG_PACKAGE_progress is not set -# CONFIG_PACKAGE_prometheus-node-exporter-lua is not set -# CONFIG_PACKAGE_prometheus-node-exporter-ucode is not set -# CONFIG_PACKAGE_prometheus-statsd-exporter is not set -# CONFIG_PACKAGE_pservice is not set -# CONFIG_PACKAGE_psmisc is not set -# CONFIG_PACKAGE_pv is not set -# CONFIG_PACKAGE_qfirehose is not set -# CONFIG_PACKAGE_qmi-utils is not set -# CONFIG_PACKAGE_qrencode is not set -# CONFIG_PACKAGE_quectel-timesync is not set -# CONFIG_PACKAGE_quota is not set +CONFIG_PACKAGE_procs=m +CONFIG_PACKAGE_progress=m +CONFIG_PACKAGE_prometheus-node-exporter-lua=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-bmx7=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-dawn=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-hostapd_ubus_stations=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-hwmon=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-nat_traffic=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-netstat=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-openwrt=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-snmp6=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-textfile=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-thermal=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-ubnt-manager=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-uci_dhcp_host=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-wifi=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-wifi_stations=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-dnsmasq=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-netstat=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-openwrt=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-snmp6=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-uci_dhcp_host=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-wifi=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-wireguard=m +CONFIG_PACKAGE_prometheus-statsd-exporter=m +CONFIG_PACKAGE_pservice=m +CONFIG_PACKAGE_psmisc=m +CONFIG_PACKAGE_pv=m +CONFIG_PACKAGE_qfirehose=m +CONFIG_PACKAGE_qmi-utils=m +CONFIG_PACKAGE_qrencode=m +CONFIG_PACKAGE_quectel-timesync=m +CONFIG_PACKAGE_quota=m # CONFIG_PACKAGE_ravpower-mcu is not set -# CONFIG_PACKAGE_readsb is not set -# CONFIG_PACKAGE_relayctl is not set +CONFIG_PACKAGE_readsb=m +CONFIG_PACKAGE_relayctl=m # CONFIG_PACKAGE_rename is not set -# CONFIG_PACKAGE_reptyr is not set -# CONFIG_PACKAGE_restic is not set +CONFIG_PACKAGE_reptyr=m +CONFIG_PACKAGE_restic=m # CONFIG_PACKAGE_rev is not set -# CONFIG_PACKAGE_ripgrep is not set -# CONFIG_PACKAGE_rng-tools is not set -# CONFIG_PACKAGE_rtl-ais is not set -# CONFIG_PACKAGE_rtl-sdr is not set -# CONFIG_PACKAGE_rtl_433 is not set -# CONFIG_PACKAGE_rtl_433-ssl is not set +CONFIG_PACKAGE_ripgrep=m +CONFIG_PACKAGE_rng-tools=m +CONFIG_PACKAGE_rtl-ais=m +CONFIG_PACKAGE_rtl-sdr=m +CONFIG_PACKAGE_rtl_433=m +CONFIG_PACKAGE_rtl_433-ssl=m CONFIG_PACKAGE_runc=m -# CONFIG_PACKAGE_sane-backends is not set -# CONFIG_PACKAGE_sane-daemon is not set -# CONFIG_PACKAGE_sane-frontends is not set +CONFIG_PACKAGE_sane-backends=m + +# +# Select SANE backends +# +CONFIG_PACKAGE_sane-backends-all=m + +# +# Backends +# +# end of Select SANE backends + +CONFIG_PACKAGE_sane-daemon=m +CONFIG_PACKAGE_sane-frontends=m # CONFIG_PACKAGE_secilc is not set -# CONFIG_PACKAGE_sed is not set -# CONFIG_PACKAGE_sedutil is not set -# CONFIG_PACKAGE_selinux-audit2allow is not set -# CONFIG_PACKAGE_selinux-chcat is not set -# CONFIG_PACKAGE_selinux-python is not set -# CONFIG_PACKAGE_selinux-semanage is not set -# CONFIG_PACKAGE_selinux-sepolgen-ifgen is not set -# CONFIG_PACKAGE_selinux-sepolicy is not set -# CONFIG_PACKAGE_semodule-expand is not set -# CONFIG_PACKAGE_semodule-link is not set -# CONFIG_PACKAGE_semodule-package is not set -# CONFIG_PACKAGE_semodule-unpackage is not set -# CONFIG_PACKAGE_serdisplib-tools is not set -# CONFIG_PACKAGE_setools-sechecker is not set -# CONFIG_PACKAGE_setools-sediff is not set -# CONFIG_PACKAGE_setools-sedta is not set -# CONFIG_PACKAGE_setools-seinfo is not set -# CONFIG_PACKAGE_setools-seinfoflow is not set -# CONFIG_PACKAGE_setools-sesearch is not set -# CONFIG_PACKAGE_setserial is not set -# CONFIG_PACKAGE_sexpect is not set -# CONFIG_PACKAGE_shadow-utils is not set -# CONFIG_PACKAGE_shared-mime-info is not set -# CONFIG_PACKAGE_sipcalc is not set -# CONFIG_PACKAGE_sispmctl is not set -# CONFIG_PACKAGE_slide-switch is not set -# CONFIG_PACKAGE_smartd is not set -# CONFIG_PACKAGE_smartd-mail is not set -# CONFIG_PACKAGE_smartmontools is not set -# CONFIG_PACKAGE_smartmontools-drivedb is not set -# CONFIG_PACKAGE_sms-tool is not set -# CONFIG_PACKAGE_smstools3 is not set -# CONFIG_PACKAGE_sockread is not set -# CONFIG_PACKAGE_spi-tools is not set +CONFIG_PACKAGE_sed=m +CONFIG_PACKAGE_sedutil=m +CONFIG_PACKAGE_selinux-audit2allow=m +CONFIG_PACKAGE_selinux-chcat=m +CONFIG_PACKAGE_selinux-python=m +CONFIG_PACKAGE_selinux-semanage=m +CONFIG_PACKAGE_selinux-sepolgen-ifgen=m +CONFIG_PACKAGE_selinux-sepolicy=m +CONFIG_PACKAGE_semodule-expand=m +CONFIG_PACKAGE_semodule-link=m +CONFIG_PACKAGE_semodule-package=m +CONFIG_PACKAGE_semodule-unpackage=m +CONFIG_PACKAGE_semodule-utils=m +CONFIG_PACKAGE_serdisplib-tools=m +CONFIG_PACKAGE_setools-sechecker=m +CONFIG_PACKAGE_setools-sediff=m +CONFIG_PACKAGE_setools-sedta=m +CONFIG_PACKAGE_setools-seinfo=m +CONFIG_PACKAGE_setools-seinfoflow=m +CONFIG_PACKAGE_setools-sesearch=m +CONFIG_PACKAGE_setools=m +CONFIG_PACKAGE_setserial=m +CONFIG_PACKAGE_sexpect=m +CONFIG_PACKAGE_shadow=m +CONFIG_PACKAGE_shadow-chage=m +CONFIG_PACKAGE_shadow-chfn=m +CONFIG_PACKAGE_shadow-chgpasswd=m +CONFIG_PACKAGE_shadow-chpasswd=m +CONFIG_PACKAGE_shadow-chsh=m +CONFIG_PACKAGE_shadow-common=m +CONFIG_PACKAGE_shadow-expiry=m +CONFIG_PACKAGE_shadow-faillog=m +CONFIG_PACKAGE_shadow-gpasswd=m +CONFIG_PACKAGE_shadow-groupadd=m +CONFIG_PACKAGE_shadow-groupdel=m +CONFIG_PACKAGE_shadow-groupmems=m +CONFIG_PACKAGE_shadow-groupmod=m +CONFIG_PACKAGE_shadow-groups=m +CONFIG_PACKAGE_shadow-grpck=m +CONFIG_PACKAGE_shadow-grpconv=m +CONFIG_PACKAGE_shadow-grpunconv=m +CONFIG_PACKAGE_shadow-lastlog=m +CONFIG_PACKAGE_shadow-login=m +CONFIG_PACKAGE_shadow-logoutd=m +CONFIG_PACKAGE_shadow-newgidmap=m +CONFIG_PACKAGE_shadow-newgrp=m +CONFIG_PACKAGE_shadow-newuidmap=m +CONFIG_PACKAGE_shadow-newusers=m +CONFIG_PACKAGE_shadow-nologin=m +CONFIG_PACKAGE_shadow-passwd=m +CONFIG_PACKAGE_shadow-pwck=m +CONFIG_PACKAGE_shadow-pwconv=m +CONFIG_PACKAGE_shadow-pwunconv=m +CONFIG_PACKAGE_shadow-su=m +CONFIG_PACKAGE_shadow-useradd=m +CONFIG_PACKAGE_shadow-userdel=m +CONFIG_PACKAGE_shadow-usermod=m +CONFIG_PACKAGE_shadow-utils=m + +# +# Select shadow utilities +# +CONFIG_shadow-all=y + +# +# Utilities +# +CONFIG_PACKAGE_shadow-vipw=m +# end of Select shadow utilities + +CONFIG_PACKAGE_shared-mime-info=m +CONFIG_PACKAGE_sipcalc=m +CONFIG_PACKAGE_sispmctl=m +CONFIG_PACKAGE_slide-switch=m +CONFIG_PACKAGE_smartd=m +CONFIG_PACKAGE_smartd-mail=m +CONFIG_PACKAGE_smartmontools=m +CONFIG_PACKAGE_smartmontools-drivedb=m +CONFIG_PACKAGE_sms-tool=m +CONFIG_PACKAGE_smstools3=m +CONFIG_PACKAGE_sockread=m +CONFIG_PACKAGE_spi-tools=m # CONFIG_PACKAGE_spidev-test is not set -# CONFIG_PACKAGE_ssdeep is not set -# CONFIG_PACKAGE_sshpass is not set -# CONFIG_PACKAGE_stdiscosrv is not set +CONFIG_PACKAGE_ssdeep=m +CONFIG_PACKAGE_sshpass=m +CONFIG_PACKAGE_stdiscosrv=m CONFIG_PACKAGE_stlink=m CONFIG_PACKAGE_stlink-st-flash=m CONFIG_PACKAGE_stlink-st-info=m @@ -7083,70 +13808,213 @@ CONFIG_PACKAGE_stlink-st-util=m CONFIG_STRACE_NONE=y # CONFIG_STRACE_LIBDW is not set # CONFIG_STRACE_LIBUNWIND is not set -# CONFIG_PACKAGE_strelaysrv is not set -# CONFIG_PACKAGE_stress is not set -# CONFIG_PACKAGE_stress-ng is not set -# CONFIG_PACKAGE_sumo is not set -# CONFIG_PACKAGE_swanmon is not set -# CONFIG_PACKAGE_syncthing is not set -# CONFIG_PACKAGE_sysrepo is not set -# CONFIG_PACKAGE_sysrepocfg is not set -# CONFIG_PACKAGE_sysrepoctl is not set -# CONFIG_PACKAGE_sysstat is not set -# CONFIG_PACKAGE_tar is not set +CONFIG_PACKAGE_strelaysrv=m +CONFIG_PACKAGE_stress=m +CONFIG_PACKAGE_stress-ng=m +CONFIG_PACKAGE_sumo=m +CONFIG_PACKAGE_swanmon=m +CONFIG_PACKAGE_syncthing=m +CONFIG_PACKAGE_sysrepo=m +CONFIG_PACKAGE_sysrepocfg=m +CONFIG_PACKAGE_sysrepoctl=m +CONFIG_PACKAGE_sysstat=m +CONFIG_PACKAGE_tar=m +CONFIG_PACKAGE_TAR_POSIX_ACL=y +CONFIG_PACKAGE_TAR_XATTR=y +CONFIG_PACKAGE_TAR_BZIP2=y +CONFIG_PACKAGE_TAR_GZIP=y +CONFIG_PACKAGE_TAR_XZ=y +CONFIG_PACKAGE_TAR_ZSTD=y # CONFIG_PACKAGE_taskset is not set -# CONFIG_PACKAGE_taskwarrior is not set -# CONFIG_PACKAGE_telegraf is not set -# CONFIG_PACKAGE_telegraf-full is not set +CONFIG_PACKAGE_taskwarrior=m +CONFIG_PACKAGE_telegraf=m +CONFIG_PACKAGE_telegraf-full=m CONFIG_PACKAGE_telldus-core=m CONFIG_PACKAGE_telldus-mqtt=m -# CONFIG_PACKAGE_temperusb is not set -# CONFIG_PACKAGE_tesseract is not set +CONFIG_PACKAGE_temperusb=m +CONFIG_PACKAGE_tesseract=m +CONFIG_PACKAGE_tesseract-data-afr=m +CONFIG_PACKAGE_tesseract-data-amh=m +CONFIG_PACKAGE_tesseract-data-ara=m +CONFIG_PACKAGE_tesseract-data-asm=m +CONFIG_PACKAGE_tesseract-data-aze=m +CONFIG_PACKAGE_tesseract-data-aze_cyrl=m +CONFIG_PACKAGE_tesseract-data-bel=m +CONFIG_PACKAGE_tesseract-data-ben=m +CONFIG_PACKAGE_tesseract-data-bod=m +CONFIG_PACKAGE_tesseract-data-bos=m +CONFIG_PACKAGE_tesseract-data-bre=m +CONFIG_PACKAGE_tesseract-data-bul=m +CONFIG_PACKAGE_tesseract-data-cat=m +CONFIG_PACKAGE_tesseract-data-ceb=m +CONFIG_PACKAGE_tesseract-data-ces=m +CONFIG_PACKAGE_tesseract-data-chi_sim=m +CONFIG_PACKAGE_tesseract-data-chi_sim_vert=m +CONFIG_PACKAGE_tesseract-data-chi_tra=m +CONFIG_PACKAGE_tesseract-data-chi_tra_vert=m +CONFIG_PACKAGE_tesseract-data-chr=m +CONFIG_PACKAGE_tesseract-data-cos=m +CONFIG_PACKAGE_tesseract-data-cym=m +CONFIG_PACKAGE_tesseract-data-dan=m +CONFIG_PACKAGE_tesseract-data-dan_frak=m +CONFIG_PACKAGE_tesseract-data-deu=m +CONFIG_PACKAGE_tesseract-data-deu_frak=m +CONFIG_PACKAGE_tesseract-data-div=m +CONFIG_PACKAGE_tesseract-data-dzo=m +CONFIG_PACKAGE_tesseract-data-ell=m +CONFIG_PACKAGE_tesseract-data-eng=m +CONFIG_PACKAGE_tesseract-data-enm=m +CONFIG_PACKAGE_tesseract-data-epo=m +CONFIG_PACKAGE_tesseract-data-equ=m +CONFIG_PACKAGE_tesseract-data-est=m +CONFIG_PACKAGE_tesseract-data-eus=m +CONFIG_PACKAGE_tesseract-data-fao=m +CONFIG_PACKAGE_tesseract-data-fas=m +CONFIG_PACKAGE_tesseract-data-fil=m +CONFIG_PACKAGE_tesseract-data-fin=m +CONFIG_PACKAGE_tesseract-data-fra=m +CONFIG_PACKAGE_tesseract-data-frk=m +CONFIG_PACKAGE_tesseract-data-frm=m +CONFIG_PACKAGE_tesseract-data-fry=m +CONFIG_PACKAGE_tesseract-data-gla=m +CONFIG_PACKAGE_tesseract-data-gle=m +CONFIG_PACKAGE_tesseract-data-glg=m +CONFIG_PACKAGE_tesseract-data-grc=m +CONFIG_PACKAGE_tesseract-data-guj=m +CONFIG_PACKAGE_tesseract-data-hat=m +CONFIG_PACKAGE_tesseract-data-heb=m +CONFIG_PACKAGE_tesseract-data-hin=m +CONFIG_PACKAGE_tesseract-data-hrv=m +CONFIG_PACKAGE_tesseract-data-hun=m +CONFIG_PACKAGE_tesseract-data-hye=m +CONFIG_PACKAGE_tesseract-data-iku=m +CONFIG_PACKAGE_tesseract-data-ind=m +CONFIG_PACKAGE_tesseract-data-isl=m +CONFIG_PACKAGE_tesseract-data-ita=m +CONFIG_PACKAGE_tesseract-data-ita_old=m +CONFIG_PACKAGE_tesseract-data-jav=m +CONFIG_PACKAGE_tesseract-data-jpn=m +CONFIG_PACKAGE_tesseract-data-jpn_vert=m +CONFIG_PACKAGE_tesseract-data-kan=m +CONFIG_PACKAGE_tesseract-data-kat=m +CONFIG_PACKAGE_tesseract-data-kat_old=m +CONFIG_PACKAGE_tesseract-data-kaz=m +CONFIG_PACKAGE_tesseract-data-khm=m +CONFIG_PACKAGE_tesseract-data-kir=m +CONFIG_PACKAGE_tesseract-data-kmr=m +CONFIG_PACKAGE_tesseract-data-kor=m +CONFIG_PACKAGE_tesseract-data-kor_vert=m +CONFIG_PACKAGE_tesseract-data-lao=m +CONFIG_PACKAGE_tesseract-data-lat=m +CONFIG_PACKAGE_tesseract-data-lav=m +CONFIG_PACKAGE_tesseract-data-lit=m +CONFIG_PACKAGE_tesseract-data-ltz=m +CONFIG_PACKAGE_tesseract-data-mal=m +CONFIG_PACKAGE_tesseract-data-mar=m +CONFIG_PACKAGE_tesseract-data-mkd=m +CONFIG_PACKAGE_tesseract-data-mlt=m +CONFIG_PACKAGE_tesseract-data-mon=m +CONFIG_PACKAGE_tesseract-data-mri=m +CONFIG_PACKAGE_tesseract-data-msa=m +CONFIG_PACKAGE_tesseract-data-mya=m +CONFIG_PACKAGE_tesseract-data-nep=m +CONFIG_PACKAGE_tesseract-data-nld=m +CONFIG_PACKAGE_tesseract-data-nor=m +CONFIG_PACKAGE_tesseract-data-oci=m +CONFIG_PACKAGE_tesseract-data-ori=m +CONFIG_PACKAGE_tesseract-data-osd=m +CONFIG_PACKAGE_tesseract-data-pan=m +CONFIG_PACKAGE_tesseract-data-pol=m +CONFIG_PACKAGE_tesseract-data-por=m +CONFIG_PACKAGE_tesseract-data-pus=m +CONFIG_PACKAGE_tesseract-data-que=m +CONFIG_PACKAGE_tesseract-data-ron=m +CONFIG_PACKAGE_tesseract-data-rus=m +CONFIG_PACKAGE_tesseract-data-san=m +CONFIG_PACKAGE_tesseract-data-sin=m +CONFIG_PACKAGE_tesseract-data-slk=m +CONFIG_PACKAGE_tesseract-data-slk_frak=m +CONFIG_PACKAGE_tesseract-data-slv=m +CONFIG_PACKAGE_tesseract-data-snd=m +CONFIG_PACKAGE_tesseract-data-spa=m +CONFIG_PACKAGE_tesseract-data-spa_old=m +CONFIG_PACKAGE_tesseract-data-sqi=m +CONFIG_PACKAGE_tesseract-data-srp=m +CONFIG_PACKAGE_tesseract-data-srp_latn=m +CONFIG_PACKAGE_tesseract-data-sun=m +CONFIG_PACKAGE_tesseract-data-swa=m +CONFIG_PACKAGE_tesseract-data-swe=m +CONFIG_PACKAGE_tesseract-data-syr=m +CONFIG_PACKAGE_tesseract-data-tam=m +CONFIG_PACKAGE_tesseract-data-tat=m +CONFIG_PACKAGE_tesseract-data-tel=m +CONFIG_PACKAGE_tesseract-data-tgk=m +CONFIG_PACKAGE_tesseract-data-tgl=m +CONFIG_PACKAGE_tesseract-data-tha=m +CONFIG_PACKAGE_tesseract-data-tir=m +CONFIG_PACKAGE_tesseract-data-ton=m +CONFIG_PACKAGE_tesseract-data-tur=m +CONFIG_PACKAGE_tesseract-data-uig=m +CONFIG_PACKAGE_tesseract-data-ukr=m +CONFIG_PACKAGE_tesseract-data-urd=m +CONFIG_PACKAGE_tesseract-data-uzb=m +CONFIG_PACKAGE_tesseract-data-uzb_cyrl=m +CONFIG_PACKAGE_tesseract-data-vie=m +CONFIG_PACKAGE_tesseract-data-yid=m +CONFIG_PACKAGE_tesseract-data-yor=m CONFIG_PACKAGE_tini=m -# CONFIG_PACKAGE_tinyionice is not set -# CONFIG_PACKAGE_tracertools is not set -# CONFIG_PACKAGE_tree is not set -# CONFIG_PACKAGE_triggerhappy is not set -# CONFIG_PACKAGE_ubnt-manager is not set +CONFIG_PACKAGE_tinyionice=m +CONFIG_PACKAGE_tracertools=m +CONFIG_PACKAGE_tree=m +CONFIG_PACKAGE_triggerhappy=m +CONFIG_PACKAGE_ubnt-manager=m # CONFIG_PACKAGE_ucode-mod-bpf is not set -# CONFIG_PACKAGE_ucode-mod-html is not set -# CONFIG_PACKAGE_ucode-mod-lua is not set +CONFIG_PACKAGE_ucode-mod-html=m +CONFIG_PACKAGE_ucode-mod-lua=m +CONFIG_PACKAGE_ucode-mod-uclient=m CONFIG_PACKAGE_ucode-mod-udebug=m CONFIG_PACKAGE_udebug-cli=m CONFIG_PACKAGE_udebugd=m -# CONFIG_PACKAGE_udns-dnsget is not set -# CONFIG_PACKAGE_udns-ex-rdns is not set -# CONFIG_PACKAGE_udns-rblcheck is not set +CONFIG_PACKAGE_udns-dnsget=m +CONFIG_PACKAGE_udns-ex-rdns=m +CONFIG_PACKAGE_udns-rblcheck=m # CONFIG_PACKAGE_ugps is not set -# CONFIG_PACKAGE_uhubctl is not set -# CONFIG_PACKAGE_uledd is not set -# CONFIG_PACKAGE_unix2dos is not set +CONFIG_PACKAGE_uhubctl=m +CONFIG_PACKAGE_uledd=m +CONFIG_PACKAGE_unix2dos=m # CONFIG_PACKAGE_unshare is not set # CONFIG_PACKAGE_usb-modeswitch is not set -# CONFIG_PACKAGE_usbids is not set -# CONFIG_PACKAGE_usbutils is not set +CONFIG_PACKAGE_usbids=m +CONFIG_PACKAGE_usbutils=m # CONFIG_PACKAGE_uuidd is not set -# CONFIG_PACKAGE_uuidgen is not set -# CONFIG_PACKAGE_uvcdynctrl is not set -# CONFIG_PACKAGE_v4l-utils is not set -# CONFIG_PACKAGE_view1090 is not set -# CONFIG_PACKAGE_viewadsb is not set -# CONFIG_PACKAGE_watchcat is not set +CONFIG_PACKAGE_uuidgen=m +CONFIG_PACKAGE_uvcdynctrl=m +CONFIG_PACKAGE_v4l-utils=m +CONFIG_PACKAGE_view1090=m +CONFIG_PACKAGE_viewadsb=m +CONFIG_PACKAGE_watchcat=m # CONFIG_PACKAGE_whereis is not set -# CONFIG_PACKAGE_which is not set -# CONFIG_PACKAGE_whiptail is not set -# CONFIG_PACKAGE_whois is not set -# CONFIG_PACKAGE_wifitoggle is not set -# CONFIG_PACKAGE_wipe is not set -# CONFIG_PACKAGE_xsltproc is not set -# CONFIG_PACKAGE_xxd is not set -# CONFIG_PACKAGE_xxhash is not set -# CONFIG_PACKAGE_yanglint is not set -# CONFIG_PACKAGE_yara is not set -# CONFIG_PACKAGE_ykclient is not set -# CONFIG_PACKAGE_ykpers is not set -# CONFIG_PACKAGE_yq is not set -# CONFIG_PACKAGE_zyxel-reset is not set +CONFIG_PACKAGE_which=m +CONFIG_PACKAGE_whiptail=m +CONFIG_PACKAGE_whois=m +CONFIG_PACKAGE_wifitoggle=m +CONFIG_PACKAGE_wipe=m +CONFIG_PACKAGE_xsltproc=m +CONFIG_PACKAGE_xxd=m +CONFIG_PACKAGE_xxhash=m +CONFIG_PACKAGE_yanglint=m +CONFIG_PACKAGE_yara=m + +# +# Optional modules +# +CONFIG_YARA_module_magic=y +# CONFIG_YARA_module_cuckoo is not set +# CONFIG_YARA_module_dotnet is not set +CONFIG_PACKAGE_ykclient=m +CONFIG_PACKAGE_ykpers=m +CONFIG_PACKAGE_yq=m +CONFIG_PACKAGE_zyxel-reset=m # end of Utilities # @@ -7156,6 +14024,6 @@ CONFIG_PACKAGE_udebugd=m # # Font-Utils # -# CONFIG_PACKAGE_fontconfig is not set +CONFIG_PACKAGE_fontconfig=m # end of Font-Utils # end of Xorg diff --git a/.config.old b/.config.old index e6d54f25e63140..0bed5ff5377ed3 100644 --- a/.config.old +++ b/.config.old @@ -70,7 +70,7 @@ CONFIG_HAS_DEVICES=y CONFIG_TARGET_BOARD="x86" CONFIG_TARGET_SUBTARGET="64" CONFIG_TARGET_ARCH_PACKAGES="x86_64" -CONFIG_DEFAULT_TARGET_OPTIMIZATION="-Os -pipe" +CONFIG_DEFAULT_TARGET_OPTIMIZATION="-O2 -pipe -march=sandybridge -mtune=sandybridge" CONFIG_CPU_TYPE=" " CONFIG_LINUX_6_6=y CONFIG_DEFAULT_base-files=y @@ -464,7 +464,7 @@ CONFIG_BUILD_LOG_DIR="" # CONFIG_SRC_TREE_OVERRIDE is not set CONFIG_EXTRA_OPTIMIZATION="-fno-caller-saves -fno-plt" # CONFIG_TARGET_OPTIONS is not set -CONFIG_TARGET_OPTIMIZATION="-Os -pipe" +CONFIG_TARGET_OPTIMIZATION="-O2 -pipe -march=sandybridge -mtune=sandybridge" # CONFIG_BPF_TOOLCHAIN_NONE is not set # CONFIG_BPF_TOOLCHAIN_HOST is not set CONFIG_BPF_TOOLCHAIN_BUILD_LLVM=y @@ -484,7 +484,7 @@ CONFIG_USE_MUSL=y CONFIG_SSP_SUPPORT=y CONFIG_BINUTILS_VERSION_2_40=y CONFIG_BINUTILS_VERSION="2.40" -CONFIG_GCC_VERSION="12.3.0" +CONFIG_GCC_VERSION="13.2.0" CONFIG_LIBC="musl" CONFIG_TARGET_SUFFIX="musl" # CONFIG_IB is not set @@ -531,12 +531,12 @@ CONFIG_FEED_telephony=y # # Base system # -# CONFIG_PACKAGE_attendedsysupgrade-common is not set -# CONFIG_PACKAGE_auc is not set +CONFIG_PACKAGE_attendedsysupgrade-common=m +CONFIG_PACKAGE_auc=m CONFIG_PACKAGE_base-files=y CONFIG_PACKAGE_block-mount=m CONFIG_PACKAGE_blockd=m -# CONFIG_PACKAGE_bridge is not set +CONFIG_PACKAGE_bridge=m # CONFIG_PACKAGE_bridger is not set CONFIG_PACKAGE_busybox=y # CONFIG_BUSYBOX_CUSTOM is not set @@ -1620,6 +1620,8 @@ CONFIG_BUSYBOX_DEFAULT_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 # CONFIG_BUSYBOX_DEFAULT_FEATURE_IPC_SYSLOG is not set CONFIG_BUSYBOX_DEFAULT_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 # CONFIG_BUSYBOX_DEFAULT_FEATURE_KMSG_SYSLOG is not set +# CONFIG_BUSYBOX_CONFIG_IP is not set +# CONFIG_BUSYBOX_CONFIG_FEATURE_IP_LINK is not set # CONFIG_PACKAGE_busybox-selinux is not set CONFIG_PACKAGE_ca-bundle=y CONFIG_PACKAGE_ca-certificates=m @@ -1666,7 +1668,7 @@ CONFIG_PACKAGE_libstdcpp=m CONFIG_PACKAGE_logd=y CONFIG_PACKAGE_mtd=y CONFIG_PACKAGE_netifd=y -# CONFIG_PACKAGE_nft-qos is not set +CONFIG_PACKAGE_nft-qos=m CONFIG_PACKAGE_openwrt-keyring=y CONFIG_PACKAGE_opkg=y CONFIG_PACKAGE_procd=y @@ -1680,20 +1682,20 @@ CONFIG_PACKAGE_procd=y CONFIG_PACKAGE_procd-seccomp=y # CONFIG_PACKAGE_procd-selinux is not set CONFIG_PACKAGE_procd-ujail=y -# CONFIG_PACKAGE_qos-scripts is not set +CONFIG_PACKAGE_qos-scripts=m CONFIG_PACKAGE_qosify=m # CONFIG_PACKAGE_refpolicy is not set -# CONFIG_PACKAGE_resolveip is not set +CONFIG_PACKAGE_resolveip=m CONFIG_PACKAGE_rpcd=y CONFIG_PACKAGE_rpcd-mod-file=y CONFIG_PACKAGE_rpcd-mod-iwinfo=y -# CONFIG_PACKAGE_rpcd-mod-rpcsys is not set +CONFIG_PACKAGE_rpcd-mod-rpcsys=m CONFIG_PACKAGE_rpcd-mod-ucode=y # CONFIG_PACKAGE_selinux-policy is not set CONFIG_PACKAGE_snapshot-tool=m -# CONFIG_PACKAGE_sqm-scripts is not set -# CONFIG_PACKAGE_sqm-scripts-extra is not set -# CONFIG_PACKAGE_swconfig is not set +CONFIG_PACKAGE_sqm-scripts=m +CONFIG_PACKAGE_sqm-scripts-extra=m +CONFIG_PACKAGE_swconfig=m CONFIG_PACKAGE_ubox=y CONFIG_PACKAGE_ubus=y CONFIG_PACKAGE_ubusd=y @@ -1708,7 +1710,7 @@ CONFIG_PACKAGE_urngd=y CONFIG_PACKAGE_usign=y # CONFIG_PACKAGE_uxc is not set CONFIG_PACKAGE_wifi-scripts=m -# CONFIG_PACKAGE_wireless-tools is not set +CONFIG_PACKAGE_wireless-tools=m # CONFIG_PACKAGE_zram-swap is not set # CONFIG_PACKAGE_zyxel-bootconfig is not set # end of Base system @@ -1720,16 +1722,16 @@ CONFIG_PACKAGE_wifi-scripts=m # # Zabbix # -# CONFIG_PACKAGE_zabbix-agentd is not set -# CONFIG_PACKAGE_zabbix-agentd-gnutls is not set -# CONFIG_PACKAGE_zabbix-agentd-openssl is not set -# CONFIG_PACKAGE_zabbix-extra-mac80211 is not set -# CONFIG_PACKAGE_zabbix-extra-network is not set -# CONFIG_PACKAGE_zabbix-extra-wifi is not set -# CONFIG_PACKAGE_zabbix-get is not set -# CONFIG_PACKAGE_zabbix-get-gnutls is not set -# CONFIG_PACKAGE_zabbix-get-openssl is not set -# CONFIG_PACKAGE_zabbix-proxy is not set +CONFIG_PACKAGE_zabbix-agentd=m +CONFIG_PACKAGE_zabbix-agentd-gnutls=m +CONFIG_PACKAGE_zabbix-agentd-openssl=m +CONFIG_PACKAGE_zabbix-extra-mac80211=m +CONFIG_PACKAGE_zabbix-extra-network=m +CONFIG_PACKAGE_zabbix-extra-wifi=m +CONFIG_PACKAGE_zabbix-get=m +CONFIG_PACKAGE_zabbix-get-gnutls=m +CONFIG_PACKAGE_zabbix-get-openssl=m +CONFIG_PACKAGE_zabbix-proxy=m # # Database Software @@ -1737,43 +1739,57 @@ CONFIG_PACKAGE_wifi-scripts=m # CONFIG_ZABBIX_MYSQL is not set CONFIG_ZABBIX_POSTGRESQL=y # CONFIG_ZABBIX_SQLITE is not set -# CONFIG_PACKAGE_zabbix-proxy-gnutls is not set -# CONFIG_PACKAGE_zabbix-proxy-openssl is not set -# CONFIG_PACKAGE_zabbix-sender is not set -# CONFIG_PACKAGE_zabbix-sender-gnutls is not set -# CONFIG_PACKAGE_zabbix-sender-openssl is not set -# CONFIG_PACKAGE_zabbix-server is not set -# CONFIG_PACKAGE_zabbix-server-frontend is not set -# CONFIG_PACKAGE_zabbix-server-gnutls is not set -# CONFIG_PACKAGE_zabbix-server-openssl is not set +CONFIG_PACKAGE_zabbix-proxy-gnutls=m +CONFIG_PACKAGE_zabbix-proxy-openssl=m +CONFIG_PACKAGE_zabbix-sender=m +CONFIG_PACKAGE_zabbix-sender-gnutls=m +CONFIG_PACKAGE_zabbix-sender-openssl=m +CONFIG_PACKAGE_zabbix-server=m +CONFIG_PACKAGE_zabbix-server-frontend=m +CONFIG_PACKAGE_zabbix-server-gnutls=m +CONFIG_PACKAGE_zabbix-server-openssl=m # end of Zabbix # # openwisp # -# CONFIG_PACKAGE_netjson-monitoring is not set -# CONFIG_PACKAGE_openwisp-config is not set -# CONFIG_PACKAGE_openwisp-monitoring is not set +CONFIG_PACKAGE_netjson-monitoring=m +CONFIG_PACKAGE_openwisp-config=m +CONFIG_PACKAGE_openwisp-monitoring=m # end of openwisp -# CONFIG_PACKAGE_atop is not set -# CONFIG_PACKAGE_backuppc is not set -# CONFIG_PACKAGE_bottom is not set -# CONFIG_PACKAGE_btop is not set -# CONFIG_PACKAGE_debian-archive-keyring is not set -# CONFIG_PACKAGE_debootstrap is not set -# CONFIG_PACKAGE_gkrellmd is not set -# CONFIG_PACKAGE_htop is not set -# CONFIG_PACKAGE_ipmitool is not set -# CONFIG_PACKAGE_monit is not set -# CONFIG_PACKAGE_monit-nossl is not set -# CONFIG_PACKAGE_muninlite is not set -# CONFIG_PACKAGE_netatop is not set -# CONFIG_PACKAGE_netdata is not set -# CONFIG_PACKAGE_nload is not set -# CONFIG_PACKAGE_nyx is not set -# CONFIG_PACKAGE_rsyslog is not set -# CONFIG_PACKAGE_schroot is not set +CONFIG_PACKAGE_atop=m +CONFIG_PACKAGE_backuppc=m +CONFIG_PACKAGE_bottom=m +CONFIG_PACKAGE_btop=m +CONFIG_PACKAGE_debian-archive-keyring=m +CONFIG_PACKAGE_debootstrap=m +CONFIG_PACKAGE_gkrellmd=m +CONFIG_PACKAGE_htop=m +CONFIG_HTOP_LMSENSORS=y +CONFIG_PACKAGE_ipmitool=m +CONFIG_PACKAGE_monit=m +CONFIG_PACKAGE_monit-nossl=m +CONFIG_PACKAGE_muninlite=m +CONFIG_PACKAGE_netatop=m +CONFIG_PACKAGE_netdata=m +CONFIG_PACKAGE_nload=m +CONFIG_PACKAGE_nyx=m +CONFIG_PACKAGE_nyx-src=m +CONFIG_PACKAGE_rsyslog=m +# CONFIG_RSYSLOG_gssapi_krb5 is not set +# CONFIG_RSYSLOG_mysql is not set +# CONFIG_RSYSLOG_pgsql is not set +# CONFIG_RSYSLOG_libdbi is not set +# CONFIG_RSYSLOG_elasticsearch is not set +# CONFIG_RSYSLOG_omhttp is not set +# CONFIG_RSYSLOG_openssl is not set +# CONFIG_RSYSLOG_gnutls is not set +# CONFIG_RSYSLOG_mail is not set +# CONFIG_RSYSLOG_mmjsonparse is not set +# CONFIG_RSYSLOG_mmdblookup is not set +# CONFIG_RSYSLOG_imfile is not set +CONFIG_PACKAGE_schroot=m # # Configuration @@ -1784,17 +1800,18 @@ CONFIG_ZABBIX_POSTGRESQL=y # CONFIG_SCHROOT_UUID is not set # end of Configuration -# CONFIG_PACKAGE_sudo is not set -# CONFIG_PACKAGE_syslog-ng is not set +CONFIG_PACKAGE_sudo=m +CONFIG_PACKAGE_syslog-ng=m +# CONFIG_SYSLOGNG_LOGROTATE is not set # end of Administration # # Boot Loaders # -# CONFIG_PACKAGE_gnu-efi-programs is not set +CONFIG_PACKAGE_gnu-efi-programs=m CONFIG_PACKAGE_grub2=y CONFIG_PACKAGE_grub2-efi=y -# CONFIG_PACKAGE_gummiboot is not set +CONFIG_PACKAGE_gummiboot=m # end of Boot Loaders # @@ -1809,33 +1826,42 @@ CONFIG_PACKAGE_grub2-efi=y # CONFIG_PACKAGE_zlib-dev is not set # end of Libraries -# CONFIG_PACKAGE_ar is not set -# CONFIG_PACKAGE_autoconf is not set -# CONFIG_PACKAGE_automake is not set -# CONFIG_PACKAGE_binutils is not set -# CONFIG_PACKAGE_bison is not set -# CONFIG_PACKAGE_delve is not set -# CONFIG_PACKAGE_diffutils is not set -# CONFIG_PACKAGE_flex is not set -# CONFIG_PACKAGE_gcc is not set +CONFIG_PACKAGE_ar=m +CONFIG_PACKAGE_autoconf=m +CONFIG_PACKAGE_automake=m +CONFIG_PACKAGE_binutils=m +CONFIG_PACKAGE_bison=m +CONFIG_PACKAGE_delve=m +CONFIG_PACKAGE_diffutils=m +CONFIG_PACKAGE_flex=m +CONFIG_PACKAGE_gcc=m + +# +# Libraries +# +# CONFIG_INCLUDE_STATIC_LIBC is not set +# CONFIG_INCLUDE_STATIC_LIBPTHREAD is not set +# CONFIG_INCLUDE_STATIC_LIBSTDC is not set +# end of Libraries + # CONFIG_PACKAGE_gdb is not set # CONFIG_PACKAGE_gdbserver is not set -# CONFIG_PACKAGE_gitlab-runner is not set +CONFIG_PACKAGE_gitlab-runner=m # CONFIG_PACKAGE_gperf is not set CONFIG_PACKAGE_ledhwbmon=m CONFIG_PACKAGE_ledumon=m -# CONFIG_PACKAGE_libtool-bin is not set -# CONFIG_PACKAGE_lpc21isp is not set -# CONFIG_PACKAGE_lttng-tools is not set -# CONFIG_PACKAGE_m4 is not set -# CONFIG_PACKAGE_make is not set +CONFIG_PACKAGE_libtool-bin=m +CONFIG_PACKAGE_lpc21isp=m +CONFIG_PACKAGE_lttng-tools=m +CONFIG_PACKAGE_m4=m +CONFIG_PACKAGE_make=m # CONFIG_PACKAGE_mt76-test is not set -# CONFIG_PACKAGE_nasm is not set +CONFIG_PACKAGE_nasm=m CONFIG_PACKAGE_objdump=m -# CONFIG_PACKAGE_patch is not set +CONFIG_PACKAGE_patch=m # CONFIG_PACKAGE_perf is not set -# CONFIG_PACKAGE_pkg-config is not set -# CONFIG_PACKAGE_pkgconf is not set +CONFIG_PACKAGE_pkg-config=m +CONFIG_PACKAGE_pkgconf=m CONFIG_PACKAGE_tmon=m # CONFIG_PACKAGE_trace-cmd is not set # CONFIG_PACKAGE_trace-cmd-extra is not set @@ -1845,13 +1871,99 @@ CONFIG_PACKAGE_tmon=m # # Extra packages # -# CONFIG_PACKAGE_jose is not set +CONFIG_PACKAGE_jose=m CONFIG_PACKAGE_libiwinfo-data=y -# CONFIG_PACKAGE_libjose is not set -# CONFIG_PACKAGE_nginx is not set -# CONFIG_PACKAGE_nginx-mod-luci-ssl is not set -# CONFIG_PACKAGE_nginx-util is not set -# CONFIG_PACKAGE_tang is not set +CONFIG_PACKAGE_libjose=m +CONFIG_PACKAGE_nginx=m +CONFIG_PACKAGE_nginx-mod-luci-ssl=m +CONFIG_PACKAGE_nginx-util=m +CONFIG_PACKAGE_sane-abaton=m +CONFIG_PACKAGE_sane-agfafocus=m +CONFIG_PACKAGE_sane-apple=m +CONFIG_PACKAGE_sane-artec=m +CONFIG_PACKAGE_sane-artec_eplus48u=m +CONFIG_PACKAGE_sane-as6e=m +CONFIG_PACKAGE_sane-avision=m +CONFIG_PACKAGE_sane-bh=m +CONFIG_PACKAGE_sane-canon=m +CONFIG_PACKAGE_sane-canon630u=m +CONFIG_PACKAGE_sane-canon_dr=m +CONFIG_PACKAGE_sane-canon_lide70=m +CONFIG_PACKAGE_sane-cardscan=m +CONFIG_PACKAGE_sane-coolscan=m +CONFIG_PACKAGE_sane-coolscan2=m +CONFIG_PACKAGE_sane-coolscan3=m +CONFIG_PACKAGE_sane-dc210=m +CONFIG_PACKAGE_sane-dc240=m +CONFIG_PACKAGE_sane-dc25=m +CONFIG_PACKAGE_sane-dell1600n_net=m +CONFIG_PACKAGE_sane-dmc=m +CONFIG_PACKAGE_sane-epjitsu=m +CONFIG_PACKAGE_sane-epson=m +CONFIG_PACKAGE_sane-epson2=m +CONFIG_PACKAGE_sane-epsonds=m +CONFIG_PACKAGE_sane-fujitsu=m +CONFIG_PACKAGE_sane-genesys=m +CONFIG_PACKAGE_sane-gphoto2=m +CONFIG_PACKAGE_sane-gt68xx=m +CONFIG_PACKAGE_sane-hp=m +CONFIG_PACKAGE_sane-hp3500=m +CONFIG_PACKAGE_sane-hp3900=m +CONFIG_PACKAGE_sane-hp4200=m +CONFIG_PACKAGE_sane-hp5400=m +CONFIG_PACKAGE_sane-hp5590=m +CONFIG_PACKAGE_sane-hpljm1005=m +CONFIG_PACKAGE_sane-hs2p=m +CONFIG_PACKAGE_sane-ibm=m +CONFIG_PACKAGE_sane-kodak=m +CONFIG_PACKAGE_sane-kodakaio=m +CONFIG_PACKAGE_sane-kvs1025=m +CONFIG_PACKAGE_sane-kvs20xx=m +CONFIG_PACKAGE_sane-kvs40xx=m +CONFIG_PACKAGE_sane-leo=m +CONFIG_PACKAGE_sane-lexmark=m +CONFIG_PACKAGE_sane-ma1509=m +CONFIG_PACKAGE_sane-magicolor=m +CONFIG_PACKAGE_sane-matsushita=m +CONFIG_PACKAGE_sane-microtek=m +CONFIG_PACKAGE_sane-microtek2=m +CONFIG_PACKAGE_sane-mustek=m +CONFIG_PACKAGE_sane-mustek_usb=m +CONFIG_PACKAGE_sane-mustek_usb2=m +CONFIG_PACKAGE_sane-nec=m +CONFIG_PACKAGE_sane-net=m +CONFIG_PACKAGE_sane-niash=m +CONFIG_PACKAGE_sane-p5=m +CONFIG_PACKAGE_sane-pie=m +CONFIG_PACKAGE_sane-pieusb=m +CONFIG_PACKAGE_sane-pixma=m +CONFIG_PACKAGE_sane-plustek=m +CONFIG_PACKAGE_sane-plustek_pp=m +CONFIG_PACKAGE_sane-qcam=m +CONFIG_PACKAGE_sane-ricoh=m +CONFIG_PACKAGE_sane-ricoh2=m +CONFIG_PACKAGE_sane-rts8891=m +CONFIG_PACKAGE_sane-s9036=m +CONFIG_PACKAGE_sane-sceptre=m +CONFIG_PACKAGE_sane-sharp=m +CONFIG_PACKAGE_sane-sm3600=m +CONFIG_PACKAGE_sane-sm3840=m +CONFIG_PACKAGE_sane-snapscan=m +CONFIG_PACKAGE_sane-sp15c=m +CONFIG_PACKAGE_sane-st400=m +CONFIG_PACKAGE_sane-stv680=m +CONFIG_PACKAGE_sane-tamarack=m +CONFIG_PACKAGE_sane-teco1=m +CONFIG_PACKAGE_sane-teco2=m +CONFIG_PACKAGE_sane-teco3=m +CONFIG_PACKAGE_sane-test=m +CONFIG_PACKAGE_sane-u12=m +CONFIG_PACKAGE_sane-umax=m +CONFIG_PACKAGE_sane-umax1220u=m +CONFIG_PACKAGE_sane-umax_pp=m +CONFIG_PACKAGE_sane-v4l=m +CONFIG_PACKAGE_sane-xerox_mfp=m +CONFIG_PACKAGE_tang=m # end of Extra packages # @@ -1968,6 +2080,7 @@ CONFIG_PACKAGE_intel-microcode=m # CONFIG_PACKAGE_iwl4965-firmware is not set CONFIG_PACKAGE_iwlwifi-firmware-ax101=m # CONFIG_PACKAGE_iwlwifi-firmware-ax200 is not set +CONFIG_PACKAGE_iwlwifi-firmware-ax201=m # CONFIG_PACKAGE_iwlwifi-firmware-ax210 is not set CONFIG_PACKAGE_iwlwifi-firmware-be200=m # CONFIG_PACKAGE_iwlwifi-firmware-iwl100 is not set @@ -1994,7 +2107,7 @@ CONFIG_PACKAGE_iwlwifi-firmware-be200=m # CONFIG_PACKAGE_libertas-sdio-firmware is not set # CONFIG_PACKAGE_libertas-spi-firmware is not set # CONFIG_PACKAGE_libertas-usb-firmware is not set -# CONFIG_PACKAGE_midisport-firmware is not set +CONFIG_PACKAGE_midisport-firmware=m CONFIG_PACKAGE_mlxsw_spectrum-firmware=m CONFIG_PACKAGE_mt7601u-firmware=m # CONFIG_PACKAGE_mt7622bt-firmware is not set @@ -2018,6 +2131,7 @@ CONFIG_PACKAGE_rt2800-usb-firmware=m # CONFIG_PACKAGE_rt61-pci-firmware is not set # CONFIG_PACKAGE_rt73-usb-firmware is not set # CONFIG_PACKAGE_rtl8188eu-firmware is not set +CONFIG_PACKAGE_rtl8188fu-firmware=m CONFIG_PACKAGE_rtl8192ce-firmware=m CONFIG_PACKAGE_rtl8192cu-firmware=m CONFIG_PACKAGE_rtl8192de-firmware=m @@ -2052,28 +2166,28 @@ CONFIG_PACKAGE_wl18xx-firmware=m # # DejaVu # -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuMathTeXGyre is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-Bold is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-BoldOblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-ExtraLight is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-Oblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-Bold is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-BoldOblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-Oblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-Bold is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-BoldOblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-Oblique is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-Bold is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-BoldItalic is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-Italic is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-Bold is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-BoldItalic is not set -# CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-Italic is not set +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuMathTeXGyre=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-Bold=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-BoldOblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-ExtraLight=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-Oblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-Bold=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-BoldOblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansCondensed-Oblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-Bold=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-BoldOblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSansMono-Oblique=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-Bold=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-BoldItalic=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerif-Italic=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-Bold=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-BoldItalic=m +CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSerifCondensed-Italic=m # end of DejaVu # end of Fonts @@ -2301,6 +2415,7 @@ CONFIG_PACKAGE_kmod-hwmon-pwmfan=m CONFIG_PACKAGE_kmod-hwmon-sch5627=m CONFIG_PACKAGE_kmod-hwmon-sht21=m CONFIG_PACKAGE_kmod-hwmon-sht3x=m +CONFIG_PACKAGE_kmod-hwmon-tc654=m CONFIG_PACKAGE_kmod-hwmon-tmp102=m CONFIG_PACKAGE_kmod-hwmon-tmp103=m CONFIG_PACKAGE_kmod-hwmon-tmp421=m @@ -2634,6 +2749,7 @@ CONFIG_PACKAGE_kmod-mlxsw-i2c=m CONFIG_PACKAGE_kmod-mlxsw-minimal=m CONFIG_PACKAGE_kmod-mlxsw-pci=m CONFIG_PACKAGE_kmod-mlxsw-spectrum=m +CONFIG_PACKAGE_kmod-mtk-t7xx=m CONFIG_PACKAGE_kmod-natsemi=m CONFIG_PACKAGE_kmod-ne2k-pci=m CONFIG_PACKAGE_kmod-net-selftests=m @@ -2949,6 +3065,8 @@ CONFIG_PACKAGE_kmod-usb-atm=m CONFIG_PACKAGE_kmod-usb-atm-cxacru=m CONFIG_PACKAGE_kmod-usb-atm-speedtouch=m CONFIG_PACKAGE_kmod-usb-atm-ueagle=m +CONFIG_PACKAGE_kmod-usb-cdns=m +CONFIG_PACKAGE_kmod-usb-cdns3=m CONFIG_PACKAGE_kmod-usb-cm109=m CONFIG_PACKAGE_kmod-usb-core=y CONFIG_PACKAGE_kmod-usb-dwc2=y @@ -3058,7 +3176,7 @@ CONFIG_PACKAGE_kmod-fb-sys-ram=y CONFIG_PACKAGE_kmod-fb-tft=y CONFIG_PACKAGE_kmod-fb-tft-ili9486=m CONFIG_PACKAGE_kmod-video-core=y -CONFIG_PACKAGE_kmod-v4l2loopback=y +CONFIG_PACKAGE_kmod-v4l2loopback=m CONFIG_PACKAGE_kmod-video-dma=m CONFIG_PACKAGE_kmod-video-gspca-core=m CONFIG_PACKAGE_kmod-video-gspca-conex=m @@ -3320,29 +3438,29 @@ CONFIG_PACKAGE_kmod-cdrom=m # # Erlang # -# CONFIG_PACKAGE_erlang is not set -# CONFIG_PACKAGE_erlang-asn1 is not set -# CONFIG_PACKAGE_erlang-compiler is not set -# CONFIG_PACKAGE_erlang-crypto is not set -# CONFIG_PACKAGE_erlang-erl-interface is not set -# CONFIG_PACKAGE_erlang-inets is not set -# CONFIG_PACKAGE_erlang-mnesia is not set -# CONFIG_PACKAGE_erlang-os_mon is not set -# CONFIG_PACKAGE_erlang-public-key is not set -# CONFIG_PACKAGE_erlang-reltool is not set -# CONFIG_PACKAGE_erlang-runtime-tools is not set -# CONFIG_PACKAGE_erlang-snmp is not set -# CONFIG_PACKAGE_erlang-ssh is not set -# CONFIG_PACKAGE_erlang-ssl is not set -# CONFIG_PACKAGE_erlang-syntax-tools is not set -# CONFIG_PACKAGE_erlang-tools is not set -# CONFIG_PACKAGE_erlang-xmerl is not set +CONFIG_PACKAGE_erlang=m +CONFIG_PACKAGE_erlang-asn1=m +CONFIG_PACKAGE_erlang-compiler=m +CONFIG_PACKAGE_erlang-crypto=m +CONFIG_PACKAGE_erlang-erl-interface=m +CONFIG_PACKAGE_erlang-inets=m +CONFIG_PACKAGE_erlang-mnesia=m +CONFIG_PACKAGE_erlang-os_mon=m +CONFIG_PACKAGE_erlang-public-key=m +CONFIG_PACKAGE_erlang-reltool=m +CONFIG_PACKAGE_erlang-runtime-tools=m +CONFIG_PACKAGE_erlang-snmp=m +CONFIG_PACKAGE_erlang-ssh=m +CONFIG_PACKAGE_erlang-ssl=m +CONFIG_PACKAGE_erlang-syntax-tools=m +CONFIG_PACKAGE_erlang-tools=m +CONFIG_PACKAGE_erlang-xmerl=m # end of Erlang # # Go # -# CONFIG_PACKAGE_golang is not set +CONFIG_PACKAGE_golang=m # # Configuration @@ -3353,248 +3471,590 @@ CONFIG_GOLANG_BUILD_CACHE_DIR="" # CONFIG_GOLANG_SPECTRE is not set # end of Configuration -# CONFIG_PACKAGE_golang-doc is not set -# CONFIG_PACKAGE_golang-github-jedisct1-dnscrypt-proxy2-dev is not set -# CONFIG_PACKAGE_golang-github-nextdns-nextdns-dev is not set -# CONFIG_PACKAGE_golang-gitlab-yawning-obfs4-dev is not set -# CONFIG_PACKAGE_golang-src is not set +CONFIG_PACKAGE_golang-doc=m +CONFIG_PACKAGE_golang-github-jedisct1-dnscrypt-proxy2-dev=m +CONFIG_PACKAGE_golang-github-nextdns-nextdns-dev=m +CONFIG_PACKAGE_golang-gitlab-yawning-obfs4-dev=m +CONFIG_PACKAGE_golang-src=m # end of Go # # Lua # -# CONFIG_PACKAGE_cqueues is not set -# CONFIG_PACKAGE_dkjson is not set -# CONFIG_PACKAGE_json4lua is not set -# CONFIG_PACKAGE_ldbus is not set -# CONFIG_PACKAGE_libiwinfo-lua is not set -# CONFIG_PACKAGE_linotify is not set -# CONFIG_PACKAGE_lpeg is not set -# CONFIG_PACKAGE_lsqlite3 is not set -# CONFIG_PACKAGE_lsqlite3-lua5.3 is not set +CONFIG_PACKAGE_cqueues=m +CONFIG_PACKAGE_dkjson=m +CONFIG_PACKAGE_json4lua=m +CONFIG_PACKAGE_ldbus=m +CONFIG_PACKAGE_libiwinfo-lua=m +CONFIG_PACKAGE_linotify=m +CONFIG_PACKAGE_lpeg=m +CONFIG_PACKAGE_lsqlite3=m +CONFIG_PACKAGE_lsqlite3-lua5.3=m CONFIG_PACKAGE_lua=m -# CONFIG_PACKAGE_lua-argparse is not set -# CONFIG_PACKAGE_lua-bencode is not set +CONFIG_PACKAGE_lua-argparse=m +CONFIG_PACKAGE_lua-bencode=m CONFIG_PACKAGE_lua-bit32=m -# CONFIG_PACKAGE_lua-cjson is not set -# CONFIG_PACKAGE_lua-copas is not set -# CONFIG_PACKAGE_lua-coxpcall is not set -# CONFIG_PACKAGE_lua-cs-bouncer is not set -# CONFIG_PACKAGE_lua-curl-v3 is not set -# CONFIG_PACKAGE_lua-eco is not set -# CONFIG_PACKAGE_lua-eco-base64 is not set -# CONFIG_PACKAGE_lua-eco-dns is not set -# CONFIG_PACKAGE_lua-eco-http is not set -# CONFIG_PACKAGE_lua-eco-ip is not set -# CONFIG_PACKAGE_lua-eco-log is not set -# CONFIG_PACKAGE_lua-eco-md5 is not set -# CONFIG_PACKAGE_lua-eco-mqtt is not set -# CONFIG_PACKAGE_lua-eco-netlink is not set -# CONFIG_PACKAGE_lua-eco-nl80211 is not set -# CONFIG_PACKAGE_lua-eco-sha1 is not set -# CONFIG_PACKAGE_lua-eco-socket is not set -# CONFIG_PACKAGE_lua-eco-ssh is not set -# CONFIG_PACKAGE_lua-eco-ssl is not set +CONFIG_PACKAGE_lua-cjson=m +CONFIG_PACKAGE_lua-copas=m +CONFIG_PACKAGE_lua-coxpcall=m +CONFIG_PACKAGE_lua-cs-bouncer=m +CONFIG_PACKAGE_lua-curl-v3=m +CONFIG_PACKAGE_lua-eco=m +CONFIG_PACKAGE_lua-eco-base64=m +CONFIG_PACKAGE_lua-eco-dns=m +CONFIG_PACKAGE_lua-eco-http=m +CONFIG_PACKAGE_lua-eco-ip=m +CONFIG_PACKAGE_lua-eco-log=m +CONFIG_PACKAGE_lua-eco-md5=m +CONFIG_PACKAGE_lua-eco-mqtt=m +CONFIG_PACKAGE_lua-eco-netlink=m +CONFIG_PACKAGE_lua-eco-nl80211=m +CONFIG_PACKAGE_lua-eco-sha1=m +CONFIG_PACKAGE_lua-eco-socket=m +CONFIG_PACKAGE_lua-eco-ssh=m +CONFIG_PACKAGE_lua-eco-ssl=m # CONFIG_LUA_ECO_OPENSSL is not set # CONFIG_LUA_ECO_WOLFSSL is not set CONFIG_LUA_ECO_MBEDTLS=y -# CONFIG_PACKAGE_lua-eco-termios is not set -# CONFIG_PACKAGE_lua-eco-ubus is not set -# CONFIG_PACKAGE_lua-eco-websocket is not set -# CONFIG_PACKAGE_lua-ev is not set +CONFIG_PACKAGE_lua-eco-termios=m +CONFIG_PACKAGE_lua-eco-ubus=m +CONFIG_PACKAGE_lua-eco-websocket=m +CONFIG_PACKAGE_lua-ev=m CONFIG_PACKAGE_lua-examples=m -# CONFIG_PACKAGE_lua-libmodbus is not set -# CONFIG_PACKAGE_lua-lzlib is not set -# CONFIG_PACKAGE_lua-md5 is not set -# CONFIG_PACKAGE_lua-mobdebug is not set -# CONFIG_PACKAGE_lua-mosquitto is not set -# CONFIG_PACKAGE_lua-openssl is not set -# CONFIG_PACKAGE_lua-penlight is not set -# CONFIG_PACKAGE_lua-rings is not set -# CONFIG_PACKAGE_lua-rs232 is not set -# CONFIG_PACKAGE_lua-sha2 is not set +CONFIG_PACKAGE_lua-libmodbus=m +CONFIG_PACKAGE_lua-lzlib=m +CONFIG_PACKAGE_lua-md5=m +CONFIG_PACKAGE_lua-mobdebug=m +CONFIG_PACKAGE_lua-mosquitto=m +CONFIG_PACKAGE_lua-openssl=m +CONFIG_PACKAGE_lua-penlight=m +CONFIG_PACKAGE_lua-rings=m +CONFIG_PACKAGE_lua-rs232=m +CONFIG_PACKAGE_lua-sha2=m CONFIG_PACKAGE_lua-struct=m -# CONFIG_PACKAGE_lua-wsapi-base is not set -# CONFIG_PACKAGE_lua-wsapi-xavante is not set -# CONFIG_PACKAGE_lua-xavante is not set -# CONFIG_PACKAGE_lua5.3 is not set -# CONFIG_PACKAGE_luabitop is not set -# CONFIG_PACKAGE_luac is not set +CONFIG_PACKAGE_lua-wsapi-base=m +CONFIG_PACKAGE_lua-wsapi-xavante=m +CONFIG_PACKAGE_lua-xavante=m +CONFIG_PACKAGE_lua5.3=m +CONFIG_PACKAGE_luabitop=m +CONFIG_PACKAGE_luac=m # CONFIG_PACKAGE_luac5.3 is not set -# CONFIG_PACKAGE_luaexpat is not set -# CONFIG_PACKAGE_luafilesystem is not set -# CONFIG_PACKAGE_luajit is not set +CONFIG_PACKAGE_luaexpat=m +CONFIG_PACKAGE_luafilesystem=m +CONFIG_PACKAGE_luajit=m CONFIG_HAS_LUAJIT_ARCH=y -# CONFIG_PACKAGE_luajit2 is not set -# CONFIG_PACKAGE_lualanes is not set -# CONFIG_PACKAGE_luaossl is not set +CONFIG_PACKAGE_luajit2=m +CONFIG_PACKAGE_lualanes=m +CONFIG_PACKAGE_luaossl=m CONFIG_PACKAGE_luaposix=m -# CONFIG_PACKAGE_luarocks is not set -# CONFIG_PACKAGE_luasec is not set -# CONFIG_PACKAGE_luasoap is not set -# CONFIG_PACKAGE_luasocket is not set -# CONFIG_PACKAGE_luasocket5.3 is not set -# CONFIG_PACKAGE_luasql-mysql is not set -# CONFIG_PACKAGE_luasql-pgsql is not set -# CONFIG_PACKAGE_luasql-sqlite3 is not set -# CONFIG_PACKAGE_luasrcdiet is not set -# CONFIG_PACKAGE_luv is not set -# CONFIG_PACKAGE_lyaml is not set -# CONFIG_PACKAGE_lzmq is not set -# CONFIG_PACKAGE_uuid is not set +CONFIG_PACKAGE_luarocks=m +CONFIG_PACKAGE_luasec=m +CONFIG_PACKAGE_luasoap=m +CONFIG_PACKAGE_luasocket=m +CONFIG_PACKAGE_luasocket5.3=m +CONFIG_PACKAGE_luasql-mysql=m +CONFIG_PACKAGE_luasql-pgsql=m +CONFIG_PACKAGE_luasql-sqlite3=m +CONFIG_PACKAGE_luasrcdiet=m +CONFIG_PACKAGE_luv=m + +# +# Configuration +# +# CONFIG_LUV_USE_LUAJIT_ENGINE is not set +# end of Configuration + +CONFIG_PACKAGE_lyaml=m +CONFIG_PACKAGE_lzmq=m +CONFIG_PACKAGE_uuid=m # end of Lua # # Node.js # -# CONFIG_PACKAGE_node is not set -# CONFIG_PACKAGE_node-arduino-firmata is not set -# CONFIG_PACKAGE_node-cylon is not set -# CONFIG_PACKAGE_node-cylon-firmata is not set -# CONFIG_PACKAGE_node-cylon-gpio is not set -# CONFIG_PACKAGE_node-cylon-i2c is not set -# CONFIG_PACKAGE_node-hid is not set -# CONFIG_PACKAGE_node-homebridge is not set -# CONFIG_PACKAGE_node-javascript-obfuscator is not set -# CONFIG_PACKAGE_node-npm is not set -# CONFIG_PACKAGE_node-serialport is not set -# CONFIG_PACKAGE_node-serialport-bindings is not set +CONFIG_PACKAGE_node=m +# CONFIG_NODEJS_ICU_NONE is not set +CONFIG_NODEJS_ICU_SMALL=y +# CONFIG_NODEJS_ICU_SYSTEM is not set +CONFIG_PACKAGE_node-arduino-firmata=m +CONFIG_PACKAGE_node-cylon=m +CONFIG_PACKAGE_node-cylon-firmata=m +CONFIG_PACKAGE_node-cylon-gpio=m +CONFIG_PACKAGE_node-cylon-i2c=m +CONFIG_PACKAGE_node-hid=m +CONFIG_PACKAGE_node-homebridge=m +CONFIG_PACKAGE_node-javascript-obfuscator=m +CONFIG_PACKAGE_node-npm=m +CONFIG_PACKAGE_node-serialport=m +CONFIG_PACKAGE_node-serialport-bindings=m # end of Node.js # # PHP8 # -# CONFIG_PACKAGE_php8 is not set +CONFIG_PACKAGE_php8=m +CONFIG_PHP8_LIBXML=y +CONFIG_PHP8_SYSTEMTZDATA=y +CONFIG_PACKAGE_php8-cgi=m +CONFIG_PACKAGE_php8-cli=m +CONFIG_PACKAGE_php8-fastcgi=m +CONFIG_PACKAGE_php8-fpm=m +CONFIG_PACKAGE_php8-mod-bcmath=m +CONFIG_PACKAGE_php8-mod-calendar=m +CONFIG_PACKAGE_php8-mod-ctype=m +CONFIG_PACKAGE_php8-mod-curl=m +CONFIG_PACKAGE_php8-mod-dom=m +CONFIG_PACKAGE_php8-mod-exif=m +CONFIG_PACKAGE_php8-mod-fileinfo=m +CONFIG_PACKAGE_php8-mod-filter=m +CONFIG_PACKAGE_php8-mod-ftp=m +CONFIG_PACKAGE_php8-mod-gd=m +CONFIG_PACKAGE_php8-mod-gettext=m +CONFIG_PACKAGE_php8-mod-gmp=m +CONFIG_PACKAGE_php8-mod-iconv=m +CONFIG_PACKAGE_php8-mod-imap=m +CONFIG_PACKAGE_php8-mod-intl=m +# CONFIG_PHP8_FULLICUDATA is not set +CONFIG_PACKAGE_php8-mod-ldap=m +CONFIG_PACKAGE_php8-mod-mbstring=m +CONFIG_PACKAGE_php8-mod-mysqli=m +CONFIG_PACKAGE_php8-mod-mysqlnd=m +CONFIG_PACKAGE_php8-mod-opcache=m +CONFIG_PACKAGE_php8-mod-openssl=m +CONFIG_PACKAGE_php8-mod-pcntl=m +CONFIG_PACKAGE_php8-mod-pdo=m +CONFIG_PACKAGE_php8-mod-pdo-mysql=m +CONFIG_PACKAGE_php8-mod-pdo-pgsql=m +CONFIG_PACKAGE_php8-mod-pdo-sqlite=m +CONFIG_PACKAGE_php8-mod-pgsql=m +CONFIG_PACKAGE_php8-mod-phar=m +CONFIG_PACKAGE_php8-mod-session=m +CONFIG_PACKAGE_php8-mod-shmop=m +CONFIG_PACKAGE_php8-mod-simplexml=m +CONFIG_PACKAGE_php8-mod-snmp=m +CONFIG_PACKAGE_php8-mod-soap=m +CONFIG_PACKAGE_php8-mod-sockets=m +CONFIG_PACKAGE_php8-mod-sodium=m +CONFIG_PACKAGE_php8-mod-sqlite3=m +CONFIG_PACKAGE_php8-mod-sysvmsg=m +CONFIG_PACKAGE_php8-mod-sysvsem=m +CONFIG_PACKAGE_php8-mod-sysvshm=m +CONFIG_PACKAGE_php8-mod-tokenizer=m +CONFIG_PACKAGE_php8-mod-xml=m +CONFIG_PACKAGE_php8-mod-xmlreader=m +CONFIG_PACKAGE_php8-mod-xmlwriter=m +CONFIG_PACKAGE_php8-mod-zip=m +CONFIG_PACKAGE_php8-pecl-dio=m +CONFIG_PACKAGE_php8-pecl-http=m +CONFIG_PACKAGE_php8-pecl-imagick=m +CONFIG_PACKAGE_php8-pecl-krb5=m +CONFIG_PACKAGE_php8-pecl-mcrypt=m +CONFIG_PACKAGE_php8-pecl-raphf=m +CONFIG_PACKAGE_php8-pecl-redis=m +CONFIG_PACKAGE_php8-pecl-xdebug=m # end of PHP8 # # Perl # -# CONFIG_PACKAGE_perl is not set +CONFIG_PACKAGE_perl=m + +# +# Configuration +# +CONFIG_PERL_THREADS=y +# CONFIG_PERL_TESTS is not set +CONFIG_PERL_NOCOMMENT=y +# end of Configuration + +CONFIG_PACKAGE_perl-ack=m +CONFIG_PACKAGE_perl-authen-sasl=m +CONFIG_PACKAGE_perl-authen-sasl-xs=m +CONFIG_PACKAGE_perl-cgi=m +CONFIG_PACKAGE_perl-compress-bzip2=m +CONFIG_PACKAGE_perl-dbi=m +CONFIG_PACKAGE_perl-device-serialport=m +CONFIG_PACKAGE_perl-device-usb=m +CONFIG_PACKAGE_perl-encode-locale=m +CONFIG_PACKAGE_perl-file-listing=m +CONFIG_PACKAGE_perl-file-next=m +CONFIG_PACKAGE_perl-file-rsyncp=m +CONFIG_PACKAGE_perl-file-sharedir-install=m +CONFIG_PACKAGE_perl-html-form=m +CONFIG_PACKAGE_perl-html-parser=m +CONFIG_PACKAGE_perl-html-tagset=m +CONFIG_PACKAGE_perl-html-tree=m +CONFIG_PACKAGE_perl-http-cookies=m +CONFIG_PACKAGE_perl-http-daemon=m +CONFIG_PACKAGE_perl-http-date=m +CONFIG_PACKAGE_perl-http-message=m +CONFIG_PACKAGE_perl-http-negotiate=m +CONFIG_PACKAGE_perl-http-server-simple=m +CONFIG_PACKAGE_perl-inline=m +CONFIG_PACKAGE_perl-inline-c=m +CONFIG_PACKAGE_perl-io-html=m +CONFIG_PACKAGE_perl-lockfile-simple=m +CONFIG_PACKAGE_perl-lwp-mediatypes=m +CONFIG_PACKAGE_perl-net-cidr-lite=m +CONFIG_PACKAGE_perl-net-dns=m +CONFIG_PACKAGE_perl-net-http=m +CONFIG_PACKAGE_perl-net-telnet=m +CONFIG_PACKAGE_perl-netaddr-ip=m +CONFIG_PACKAGE_perl-parse-recdescent=m +CONFIG_PACKAGE_perl-parse-yapp=m +CONFIG_PACKAGE_perl-sub-uplevel=m +CONFIG_PACKAGE_perl-test-harness=m +CONFIG_PACKAGE_perl-test-warn=m +CONFIG_PACKAGE_perl-text-csv_xs=m +CONFIG_PACKAGE_perl-time-moment=m +CONFIG_PACKAGE_perl-try-tiny=m +CONFIG_PACKAGE_perl-uri=m +CONFIG_PACKAGE_perl-www=m +CONFIG_PACKAGE_perl-www-curl=m +CONFIG_PACKAGE_perl-www-mechanize=m +CONFIG_PACKAGE_perl-www-robotrules=m +CONFIG_PACKAGE_perl-xml-parser=m +CONFIG_PACKAGE_perlbase-anydbm-file=m +CONFIG_PACKAGE_perlbase-app=m +CONFIG_PACKAGE_perlbase-archive=m +CONFIG_PACKAGE_perlbase-attribute=m +CONFIG_PACKAGE_perlbase-attributes=m +CONFIG_PACKAGE_perlbase-autodie=m +CONFIG_PACKAGE_perlbase-autoloader=m +CONFIG_PACKAGE_perlbase-autosplit=m +CONFIG_PACKAGE_perlbase-autouse=m +CONFIG_PACKAGE_perlbase-b=m +CONFIG_PACKAGE_perlbase-base=m +CONFIG_PACKAGE_perlbase-benchmark=m +CONFIG_PACKAGE_perlbase-bigint=m +CONFIG_PACKAGE_perlbase-bignum=m +CONFIG_PACKAGE_perlbase-blib=m +CONFIG_PACKAGE_perlbase-bytes=m +CONFIG_PACKAGE_perlbase-charnames=m +CONFIG_PACKAGE_perlbase-class=m +CONFIG_PACKAGE_perlbase-compress=m +CONFIG_PACKAGE_perlbase-config=m +CONFIG_PACKAGE_perlbase-cpan=m +CONFIG_PACKAGE_perlbase-cwd=m +CONFIG_PACKAGE_perlbase-data=m +CONFIG_PACKAGE_perlbase-db=m +CONFIG_PACKAGE_perlbase-db-file=m +CONFIG_PACKAGE_perlbase-dbm-filter=m +CONFIG_PACKAGE_perlbase-devel=m +CONFIG_PACKAGE_perlbase-diagnostics=m +CONFIG_PACKAGE_perlbase-digest=m +CONFIG_PACKAGE_perlbase-dirhandle=m +CONFIG_PACKAGE_perlbase-dumpvalue=m +CONFIG_PACKAGE_perlbase-dumpvar=m +CONFIG_PACKAGE_perlbase-dynaloader=m +CONFIG_PACKAGE_perlbase-encode=m +CONFIG_PACKAGE_perlbase-encoding=m +CONFIG_PACKAGE_perlbase-english=m +CONFIG_PACKAGE_perlbase-env=m +CONFIG_PACKAGE_perlbase-errno=m +CONFIG_PACKAGE_perlbase-essential=m +CONFIG_PACKAGE_perlbase-experimental=m +CONFIG_PACKAGE_perlbase-extutils=m +CONFIG_PACKAGE_perlbase-fatal=m +CONFIG_PACKAGE_perlbase-fcntl=m +CONFIG_PACKAGE_perlbase-feature=m +CONFIG_PACKAGE_perlbase-fields=m +CONFIG_PACKAGE_perlbase-file=m +CONFIG_PACKAGE_perlbase-filecache=m +CONFIG_PACKAGE_perlbase-filehandle=m +CONFIG_PACKAGE_perlbase-filetest=m +CONFIG_PACKAGE_perlbase-filter=m +CONFIG_PACKAGE_perlbase-findbin=m +CONFIG_PACKAGE_perlbase-gdbm-file=m +CONFIG_PACKAGE_perlbase-getopt=m +CONFIG_PACKAGE_perlbase-hash=m +CONFIG_PACKAGE_perlbase-http-tiny=m +CONFIG_PACKAGE_perlbase-i18n=m +CONFIG_PACKAGE_perlbase-if=m +CONFIG_PACKAGE_perlbase-integer=m +CONFIG_PACKAGE_perlbase-io=m +CONFIG_PACKAGE_perlbase-ipc=m +CONFIG_PACKAGE_perlbase-json-pp=m +CONFIG_PACKAGE_perlbase-less=m +CONFIG_PACKAGE_perlbase-list=m +CONFIG_PACKAGE_perlbase-locale=m +CONFIG_PACKAGE_perlbase-math=m +CONFIG_PACKAGE_perlbase-memoize=m +CONFIG_PACKAGE_perlbase-meta-notation=m +CONFIG_PACKAGE_perlbase-mime=m +CONFIG_PACKAGE_perlbase-module=m +CONFIG_PACKAGE_perlbase-mro=m +CONFIG_PACKAGE_perlbase-net=m +CONFIG_PACKAGE_perlbase-next=m +CONFIG_PACKAGE_perlbase-o=m +CONFIG_PACKAGE_perlbase-opcode=m +CONFIG_PACKAGE_perlbase-open=m +CONFIG_PACKAGE_perlbase-ops=m +CONFIG_PACKAGE_perlbase-ostype=m +CONFIG_PACKAGE_perlbase-params=m +CONFIG_PACKAGE_perlbase-perl5db=m +CONFIG_PACKAGE_perlbase-perlio=m +CONFIG_PACKAGE_perlbase-pod=m +CONFIG_PACKAGE_perlbase-posix=m +CONFIG_PACKAGE_perlbase-re=m +CONFIG_PACKAGE_perlbase-safe=m +CONFIG_PACKAGE_perlbase-scalar=m +CONFIG_PACKAGE_perlbase-sdbm-file=m +CONFIG_PACKAGE_perlbase-search=m +CONFIG_PACKAGE_perlbase-selectsaver=m +CONFIG_PACKAGE_perlbase-selfloader=m +CONFIG_PACKAGE_perlbase-sigtrap=m +CONFIG_PACKAGE_perlbase-socket=m +CONFIG_PACKAGE_perlbase-sort=m +CONFIG_PACKAGE_perlbase-storable=m +CONFIG_PACKAGE_perlbase-symbol=m +CONFIG_PACKAGE_perlbase-sys=m +CONFIG_PACKAGE_perlbase-tap=m +CONFIG_PACKAGE_perlbase-term=m +CONFIG_PACKAGE_perlbase-test=m +CONFIG_PACKAGE_perlbase-text=m +CONFIG_PACKAGE_perlbase-thread=m +CONFIG_PACKAGE_perlbase-threads=m +CONFIG_PACKAGE_perlbase-tie=m +CONFIG_PACKAGE_perlbase-time=m +CONFIG_PACKAGE_perlbase-unicode=m +CONFIG_PACKAGE_perlbase-unicore=m +CONFIG_PACKAGE_perlbase-universal=m +CONFIG_PACKAGE_perlbase-user=m +CONFIG_PACKAGE_perlbase-utf8=m +CONFIG_PACKAGE_perlbase-version=m +CONFIG_PACKAGE_perlbase-xsloader=m # end of Perl # # Python # -# CONFIG_PACKAGE_libpython3 is not set -# CONFIG_PACKAGE_micropython-lib is not set -# CONFIG_PACKAGE_micropython-lib-src is not set -# CONFIG_PACKAGE_micropython-lib-unix is not set -# CONFIG_PACKAGE_micropython-lib-unix-src is not set -# CONFIG_PACKAGE_micropython-mbedtls is not set -# CONFIG_PACKAGE_micropython-nossl is not set -# CONFIG_PACKAGE_pipx is not set -# CONFIG_PACKAGE_python3 is not set -# CONFIG_PACKAGE_python3-aio-mqtt-mod is not set -# CONFIG_PACKAGE_python3-aiohttp is not set -# CONFIG_PACKAGE_python3-aiohttp-cors is not set -# CONFIG_PACKAGE_python3-aiosignal is not set -# CONFIG_PACKAGE_python3-apipkg is not set -# CONFIG_PACKAGE_python3-apparmor is not set -# CONFIG_PACKAGE_python3-appdirs is not set -# CONFIG_PACKAGE_python3-argcomplete is not set -# CONFIG_PACKAGE_python3-asgiref is not set -# CONFIG_PACKAGE_python3-astral is not set -# CONFIG_PACKAGE_python3-async-generator is not set -# CONFIG_PACKAGE_python3-async-timeout is not set -# CONFIG_PACKAGE_python3-asyncio is not set -# CONFIG_PACKAGE_python3-atomicwrites is not set -# CONFIG_PACKAGE_python3-attrs is not set -# CONFIG_PACKAGE_python3-augeas is not set -# CONFIG_PACKAGE_python3-automat is not set -# CONFIG_PACKAGE_python3-awesomeversion is not set -# CONFIG_PACKAGE_python3-awscli is not set -# CONFIG_PACKAGE_python3-babel is not set -# CONFIG_PACKAGE_python3-base is not set -# CONFIG_PACKAGE_python3-bcrypt is not set -# CONFIG_PACKAGE_python3-bidict is not set -# CONFIG_PACKAGE_python3-ble2mqtt is not set -# CONFIG_PACKAGE_python3-bleak is not set -# CONFIG_PACKAGE_python3-boto3 is not set -# CONFIG_PACKAGE_python3-botocore is not set -# CONFIG_PACKAGE_python3-bottle is not set -# CONFIG_PACKAGE_python3-cached-property is not set -# CONFIG_PACKAGE_python3-cachelib is not set -# CONFIG_PACKAGE_python3-cachetools is not set -# CONFIG_PACKAGE_python3-certifi is not set -# CONFIG_PACKAGE_python3-cffi is not set -# CONFIG_PACKAGE_python3-cgi is not set -# CONFIG_PACKAGE_python3-cgitb is not set -# CONFIG_PACKAGE_python3-chardet is not set -# CONFIG_PACKAGE_python3-charset-normalizer is not set -# CONFIG_PACKAGE_python3-ciso8601 is not set -# CONFIG_PACKAGE_python3-click is not set -# CONFIG_PACKAGE_python3-click-log is not set -# CONFIG_PACKAGE_python3-codecs is not set -# CONFIG_PACKAGE_python3-colorama is not set -# CONFIG_PACKAGE_python3-constantly is not set -# CONFIG_PACKAGE_python3-contextlib2 is not set -# CONFIG_PACKAGE_python3-crcmod is not set -# CONFIG_PACKAGE_python3-cryptodome is not set -# CONFIG_PACKAGE_python3-cryptodomex is not set -# CONFIG_PACKAGE_python3-cryptography is not set -# CONFIG_PACKAGE_python3-ctypes is not set -# CONFIG_PACKAGE_python3-curl is not set -# CONFIG_PACKAGE_python3-dateutil is not set -# CONFIG_PACKAGE_python3-dbm is not set -# CONFIG_PACKAGE_python3-dbus-fast is not set -# CONFIG_PACKAGE_python3-decimal is not set -# CONFIG_PACKAGE_python3-decorator is not set -# CONFIG_PACKAGE_python3-defusedxml is not set -# CONFIG_PACKAGE_python3-dev is not set -# CONFIG_PACKAGE_python3-distro is not set -# CONFIG_PACKAGE_python3-distutils is not set -# CONFIG_PACKAGE_python3-django is not set -# CONFIG_PACKAGE_python3-django-cors-headers is not set -# CONFIG_PACKAGE_python3-django-restframework is not set -# CONFIG_PACKAGE_python3-dns is not set -# CONFIG_PACKAGE_python3-docker is not set -# CONFIG_PACKAGE_python3-dockerpty is not set -# CONFIG_PACKAGE_python3-docopt is not set -# CONFIG_PACKAGE_python3-docutils is not set -# CONFIG_PACKAGE_python3-dotenv is not set -# CONFIG_PACKAGE_python3-drf-nested-routers is not set -# CONFIG_PACKAGE_python3-email is not set -# CONFIG_PACKAGE_python3-engineio is not set -# CONFIG_PACKAGE_python3-et_xmlfile is not set -# CONFIG_PACKAGE_python3-evdev is not set -# CONFIG_PACKAGE_python3-eventlet is not set -# CONFIG_PACKAGE_python3-execnet is not set -# CONFIG_PACKAGE_python3-flask is not set -# CONFIG_PACKAGE_python3-flask-babel is not set -# CONFIG_PACKAGE_python3-flask-httpauth is not set -# CONFIG_PACKAGE_python3-flask-login is not set -# CONFIG_PACKAGE_python3-flask-seasurf is not set -# CONFIG_PACKAGE_python3-flask-session is not set -# CONFIG_PACKAGE_python3-flask-socketio is not set -# CONFIG_PACKAGE_python3-flup is not set -# CONFIG_PACKAGE_python3-fnv-hash-fast is not set -# CONFIG_PACKAGE_python3-fnvhash is not set -# CONFIG_PACKAGE_python3-frozenlist is not set -# CONFIG_PACKAGE_python3-gensio is not set -# CONFIG_PACKAGE_python3-gevent is not set -# CONFIG_PACKAGE_python3-gmpy2 is not set -# CONFIG_PACKAGE_python3-gnupg is not set -# CONFIG_PACKAGE_python3-gpiod is not set -# CONFIG_PACKAGE_python3-greenlet is not set -# CONFIG_PACKAGE_python3-hyperlink is not set -# CONFIG_PACKAGE_python3-idna is not set -# CONFIG_PACKAGE_python3-ifaddr is not set -# CONFIG_PACKAGE_python3-incremental is not set -# CONFIG_PACKAGE_python3-influxdb is not set -# CONFIG_PACKAGE_python3-iniconfig is not set -# CONFIG_PACKAGE_python3-intelhex is not set -# CONFIG_PACKAGE_python3-iperf3 is not set -# CONFIG_PACKAGE_python3-itsdangerous is not set -# CONFIG_PACKAGE_python3-jdcal is not set -# CONFIG_PACKAGE_python3-jinja2 is not set -# CONFIG_PACKAGE_python3-jmespath is not set -# CONFIG_PACKAGE_python3-jsonpath-ng is not set -# CONFIG_PACKAGE_python3-jsonschema is not set -# CONFIG_PACKAGE_python3-jsonschema-specifications is not set -# CONFIG_PACKAGE_python3-lib2to3 is not set -# CONFIG_PACKAGE_python3-libmodbus is not set -# CONFIG_PACKAGE_python3-light is not set +CONFIG_PACKAGE_libpython3=m +CONFIG_PACKAGE_micropython-lib=m +CONFIG_PACKAGE_micropython-lib-src=m +CONFIG_PACKAGE_micropython-lib-unix=m +CONFIG_PACKAGE_micropython-lib-unix-src=m +CONFIG_PACKAGE_micropython-mbedtls=m +CONFIG_PACKAGE_micropython-nossl=m +CONFIG_PACKAGE_pipx=m +CONFIG_PACKAGE_pipx-src=m +CONFIG_PACKAGE_python3=m +CONFIG_PACKAGE_python3-aio-mqtt-mod=m +CONFIG_PACKAGE_python3-aio-mqtt-mod-src=m +CONFIG_PACKAGE_python3-aiohttp=m +CONFIG_PACKAGE_python3-aiohttp-cors=m +CONFIG_PACKAGE_python3-aiohttp-cors-src=m +CONFIG_PACKAGE_python3-aiohttp-src=m +CONFIG_PACKAGE_python3-aiosignal=m +CONFIG_PACKAGE_python3-aiosignal-src=m +CONFIG_PACKAGE_python3-apipkg=m +CONFIG_PACKAGE_python3-apipkg-src=m +CONFIG_PACKAGE_python3-apparmor=m +CONFIG_PACKAGE_python3-appdirs=m +CONFIG_PACKAGE_python3-appdirs-src=m +CONFIG_PACKAGE_python3-argcomplete=m +CONFIG_PACKAGE_python3-argcomplete-src=m +CONFIG_PACKAGE_python3-asgiref=m +CONFIG_PACKAGE_python3-asgiref-src=m +CONFIG_PACKAGE_python3-astral=m +CONFIG_PACKAGE_python3-astral-src=m +CONFIG_PACKAGE_python3-async-generator=m +CONFIG_PACKAGE_python3-async-generator-src=m +CONFIG_PACKAGE_python3-async-timeout=m +CONFIG_PACKAGE_python3-async-timeout-src=m +CONFIG_PACKAGE_python3-asyncio=m +CONFIG_PACKAGE_python3-asyncio-src=m +CONFIG_PACKAGE_python3-atomicwrites=m +CONFIG_PACKAGE_python3-atomicwrites-src=m +CONFIG_PACKAGE_python3-attrs=m +CONFIG_PACKAGE_python3-attrs-src=m +CONFIG_PACKAGE_python3-augeas=m +CONFIG_PACKAGE_python3-augeas-src=m +CONFIG_PACKAGE_python3-automat=m +CONFIG_PACKAGE_python3-automat-src=m +CONFIG_PACKAGE_python3-awesomeversion=m +CONFIG_PACKAGE_python3-awesomeversion-src=m +CONFIG_PACKAGE_python3-awscli=m +CONFIG_PACKAGE_python3-awscli-src=m +CONFIG_PACKAGE_python3-babel=m +CONFIG_PACKAGE_python3-babel-src=m +CONFIG_PACKAGE_python3-base=m +CONFIG_PACKAGE_python3-base-src=m +CONFIG_PACKAGE_python3-bcrypt=m +CONFIG_PACKAGE_python3-bcrypt-src=m +CONFIG_PACKAGE_python3-bidict=m +CONFIG_PACKAGE_python3-bidict-src=m +CONFIG_PACKAGE_python3-ble2mqtt=m +CONFIG_PACKAGE_python3-ble2mqtt-src=m +CONFIG_PACKAGE_python3-bleak=m +CONFIG_PACKAGE_python3-bleak-src=m +CONFIG_PACKAGE_python3-boto3=m +CONFIG_PACKAGE_python3-boto3-src=m +CONFIG_PACKAGE_python3-botocore=m +CONFIG_PACKAGE_python3-botocore-src=m +CONFIG_PACKAGE_python3-bottle=m +CONFIG_PACKAGE_python3-bottle-src=m +CONFIG_PACKAGE_python3-cached-property=m +CONFIG_PACKAGE_python3-cached-property-src=m +CONFIG_PACKAGE_python3-cachelib=m +CONFIG_PACKAGE_python3-cachelib-src=m +CONFIG_PACKAGE_python3-cachetools=m +CONFIG_PACKAGE_python3-cachetools-src=m +CONFIG_PACKAGE_python3-certifi=m +CONFIG_PACKAGE_python3-certifi-src=m +CONFIG_PACKAGE_python3-cffi=m +CONFIG_PACKAGE_python3-cffi-src=m +CONFIG_PACKAGE_python3-cgi=m +CONFIG_PACKAGE_python3-cgi-src=m +CONFIG_PACKAGE_python3-cgitb=m +CONFIG_PACKAGE_python3-cgitb-src=m +CONFIG_PACKAGE_python3-chardet=m +CONFIG_PACKAGE_python3-chardet-src=m +CONFIG_PACKAGE_python3-charset-normalizer=m +CONFIG_PACKAGE_python3-charset-normalizer-src=m +CONFIG_PACKAGE_python3-ciso8601=m +CONFIG_PACKAGE_python3-ciso8601-src=m +CONFIG_PACKAGE_python3-click=m +CONFIG_PACKAGE_python3-click-log=m +CONFIG_PACKAGE_python3-click-log-src=m +CONFIG_PACKAGE_python3-click-src=m +CONFIG_PACKAGE_python3-codecs=m +CONFIG_PACKAGE_python3-codecs-src=m +CONFIG_PACKAGE_python3-colorama=m +CONFIG_PACKAGE_python3-colorama-src=m +CONFIG_PACKAGE_python3-constantly=m +CONFIG_PACKAGE_python3-constantly-src=m +CONFIG_PACKAGE_python3-contextlib2=m +CONFIG_PACKAGE_python3-contextlib2-src=m +CONFIG_PACKAGE_python3-crcmod=m +CONFIG_PACKAGE_python3-crcmod-src=m +CONFIG_PACKAGE_python3-cryptodome=m +CONFIG_PACKAGE_python3-cryptodome-src=m +CONFIG_PACKAGE_python3-cryptodomex=m +CONFIG_PACKAGE_python3-cryptodomex-src=m +CONFIG_PACKAGE_python3-cryptography=m +CONFIG_PACKAGE_python3-cryptography-src=m +CONFIG_PACKAGE_python3-ctypes=m +CONFIG_PACKAGE_python3-ctypes-src=m +CONFIG_PACKAGE_python3-curl=m +CONFIG_PACKAGE_python3-curl-src=m +CONFIG_PACKAGE_python3-dateutil=m +CONFIG_PACKAGE_python3-dateutil-src=m +CONFIG_PACKAGE_python3-dbm=m +CONFIG_PACKAGE_python3-dbm-src=m +CONFIG_PACKAGE_python3-dbus-fast=m +CONFIG_PACKAGE_python3-dbus-fast-src=m +CONFIG_PACKAGE_python3-decimal=m +CONFIG_PACKAGE_python3-decimal-src=m +CONFIG_PACKAGE_python3-decorator=m +CONFIG_PACKAGE_python3-decorator-src=m +CONFIG_PACKAGE_python3-defusedxml=m +CONFIG_PACKAGE_python3-defusedxml-src=m +CONFIG_PACKAGE_python3-dev=m +CONFIG_PACKAGE_python3-dev-src=m +CONFIG_PACKAGE_python3-distro=m +CONFIG_PACKAGE_python3-distro-src=m +CONFIG_PACKAGE_python3-distutils=m +CONFIG_PACKAGE_python3-distutils-src=m +CONFIG_PACKAGE_python3-django=m +CONFIG_PACKAGE_python3-django-cors-headers=m +CONFIG_PACKAGE_python3-django-cors-headers-src=m +CONFIG_PACKAGE_python3-django-restframework=m +CONFIG_PACKAGE_python3-django-restframework-src=m +CONFIG_PACKAGE_python3-django-src=m +CONFIG_PACKAGE_python3-dns=m +CONFIG_PACKAGE_python3-dns-src=m +CONFIG_PACKAGE_python3-docker=m +CONFIG_PACKAGE_python3-docker-src=m +CONFIG_PACKAGE_python3-dockerpty=m +CONFIG_PACKAGE_python3-dockerpty-src=m +CONFIG_PACKAGE_python3-docopt=m +CONFIG_PACKAGE_python3-docopt-src=m +CONFIG_PACKAGE_python3-docutils=m +CONFIG_PACKAGE_python3-docutils-src=m +CONFIG_PACKAGE_python3-dotenv=m +CONFIG_PACKAGE_python3-dotenv-src=m +CONFIG_PACKAGE_python3-drf-nested-routers=m +CONFIG_PACKAGE_python3-drf-nested-routers-src=m +CONFIG_PACKAGE_python3-email=m +CONFIG_PACKAGE_python3-email-src=m +CONFIG_PACKAGE_python3-engineio=m +CONFIG_PACKAGE_python3-engineio-src=m +CONFIG_PACKAGE_python3-et_xmlfile=m +CONFIG_PACKAGE_python3-et_xmlfile-src=m +CONFIG_PACKAGE_python3-evdev=m +CONFIG_PACKAGE_python3-evdev-src=m +CONFIG_PACKAGE_python3-eventlet=m +CONFIG_PACKAGE_python3-eventlet-src=m +CONFIG_PACKAGE_python3-execnet=m +CONFIG_PACKAGE_python3-execnet-src=m +CONFIG_PACKAGE_python3-flask=m +CONFIG_PACKAGE_python3-flask-babel=m +CONFIG_PACKAGE_python3-flask-babel-src=m +CONFIG_PACKAGE_python3-flask-httpauth=m +CONFIG_PACKAGE_python3-flask-httpauth-src=m +CONFIG_PACKAGE_python3-flask-login=m +CONFIG_PACKAGE_python3-flask-login-src=m +CONFIG_PACKAGE_python3-flask-seasurf=m +CONFIG_PACKAGE_python3-flask-seasurf-src=m +CONFIG_PACKAGE_python3-flask-session=m +CONFIG_PACKAGE_python3-flask-session-src=m +CONFIG_PACKAGE_python3-flask-socketio=m +CONFIG_PACKAGE_python3-flask-socketio-src=m +CONFIG_PACKAGE_python3-flask-src=m +CONFIG_PACKAGE_python3-flup=m +CONFIG_PACKAGE_python3-flup-src=m +CONFIG_PACKAGE_python3-fnv-hash-fast=m +CONFIG_PACKAGE_python3-fnv-hash-fast-src=m +CONFIG_PACKAGE_python3-fnvhash=m +CONFIG_PACKAGE_python3-fnvhash-src=m +CONFIG_PACKAGE_python3-frozenlist=m +CONFIG_PACKAGE_python3-frozenlist-src=m +CONFIG_PACKAGE_python3-gensio=m +CONFIG_PACKAGE_python3-gevent=m +CONFIG_PACKAGE_python3-gevent-src=m +CONFIG_PACKAGE_python3-gmpy2=m +CONFIG_PACKAGE_python3-gmpy2-src=m +CONFIG_PACKAGE_python3-gnupg=m +CONFIG_PACKAGE_python3-gnupg-src=m +CONFIG_PACKAGE_python3-gpiod=m +CONFIG_PACKAGE_python3-greenlet=m +CONFIG_PACKAGE_python3-greenlet-src=m +CONFIG_PACKAGE_python3-hyperlink=m +CONFIG_PACKAGE_python3-hyperlink-src=m +CONFIG_PACKAGE_python3-idna=m +CONFIG_PACKAGE_python3-idna-src=m +CONFIG_PACKAGE_python3-ifaddr=m +CONFIG_PACKAGE_python3-ifaddr-src=m +CONFIG_PACKAGE_python3-incremental=m +CONFIG_PACKAGE_python3-incremental-src=m +CONFIG_PACKAGE_python3-influxdb=m +CONFIG_PACKAGE_python3-influxdb-src=m +CONFIG_PACKAGE_python3-iniconfig=m +CONFIG_PACKAGE_python3-iniconfig-src=m +CONFIG_PACKAGE_python3-intelhex=m +CONFIG_PACKAGE_python3-intelhex-src=m +CONFIG_PACKAGE_python3-iperf3=m +CONFIG_PACKAGE_python3-iperf3-src=m +CONFIG_PACKAGE_python3-itsdangerous=m +CONFIG_PACKAGE_python3-itsdangerous-src=m +CONFIG_PACKAGE_python3-jdcal=m +CONFIG_PACKAGE_python3-jdcal-src=m +CONFIG_PACKAGE_python3-jinja2=m +CONFIG_PACKAGE_python3-jinja2-src=m +CONFIG_PACKAGE_python3-jmespath=m +CONFIG_PACKAGE_python3-jmespath-src=m +CONFIG_PACKAGE_python3-jsonpath-ng=m +CONFIG_PACKAGE_python3-jsonpath-ng-src=m +CONFIG_PACKAGE_python3-jsonschema=m +CONFIG_PACKAGE_python3-jsonschema-specifications=m +CONFIG_PACKAGE_python3-jsonschema-specifications-src=m +CONFIG_PACKAGE_python3-jsonschema-src=m +CONFIG_PACKAGE_python3-lib2to3=m +CONFIG_PACKAGE_python3-lib2to3-src=m +CONFIG_PACKAGE_python3-libmodbus=m +CONFIG_PACKAGE_python3-libmodbus-src=m +CONFIG_PACKAGE_python3-light=m # # Configuration @@ -3602,23 +4062,40 @@ CONFIG_PACKAGE_luaposix=m # CONFIG_PYTHON3_HOST_PIP_CACHE_WORLD_READABLE is not set # end of Configuration -# CONFIG_PACKAGE_python3-logging is not set -# CONFIG_PACKAGE_python3-lru-dict is not set -# CONFIG_PACKAGE_python3-lxml is not set -# CONFIG_PACKAGE_python3-lzma is not set -# CONFIG_PACKAGE_python3-markdown is not set -# CONFIG_PACKAGE_python3-markupsafe is not set -# CONFIG_PACKAGE_python3-maxminddb is not set -# CONFIG_PACKAGE_python3-more-itertools is not set -# CONFIG_PACKAGE_python3-msgpack is not set -# CONFIG_PACKAGE_python3-multidict is not set -# CONFIG_PACKAGE_python3-multiprocessing is not set -# CONFIG_PACKAGE_python3-ncurses is not set -# CONFIG_PACKAGE_python3-netdisco is not set -# CONFIG_PACKAGE_python3-netifaces is not set -# CONFIG_PACKAGE_python3-networkx is not set -# CONFIG_PACKAGE_python3-newt is not set -# CONFIG_PACKAGE_python3-numpy is not set +CONFIG_PACKAGE_python3-light-src=m +CONFIG_PACKAGE_python3-logging=m +CONFIG_PACKAGE_python3-logging-src=m +CONFIG_PACKAGE_python3-lru-dict=m +CONFIG_PACKAGE_python3-lru-dict-src=m +CONFIG_PACKAGE_python3-lxml=m +CONFIG_PACKAGE_python3-lxml-src=m +CONFIG_PACKAGE_python3-lzma=m +CONFIG_PACKAGE_python3-lzma-src=m +CONFIG_PACKAGE_python3-markdown=m +CONFIG_PACKAGE_python3-markdown-src=m +CONFIG_PACKAGE_python3-markupsafe=m +CONFIG_PACKAGE_python3-markupsafe-src=m +CONFIG_PACKAGE_python3-maxminddb=m +CONFIG_PACKAGE_python3-maxminddb-src=m +CONFIG_PACKAGE_python3-more-itertools=m +CONFIG_PACKAGE_python3-more-itertools-src=m +CONFIG_PACKAGE_python3-msgpack=m +CONFIG_PACKAGE_python3-msgpack-src=m +CONFIG_PACKAGE_python3-multidict=m +CONFIG_PACKAGE_python3-multidict-src=m +CONFIG_PACKAGE_python3-multiprocessing=m +CONFIG_PACKAGE_python3-multiprocessing-src=m +CONFIG_PACKAGE_python3-ncurses=m +CONFIG_PACKAGE_python3-ncurses-src=m +CONFIG_PACKAGE_python3-netdisco=m +CONFIG_PACKAGE_python3-netdisco-src=m +CONFIG_PACKAGE_python3-netifaces=m +CONFIG_PACKAGE_python3-netifaces-src=m +CONFIG_PACKAGE_python3-networkx=m +CONFIG_PACKAGE_python3-networkx-src=m +CONFIG_PACKAGE_python3-newt=m +CONFIG_PACKAGE_python3-newt-src=m +CONFIG_PACKAGE_python3-numpy=m # # Configuration @@ -3626,121 +4103,337 @@ CONFIG_PACKAGE_luaposix=m # CONFIG_NUMPY_OPENBLAS_SUPPORT is not set # end of Configuration -# CONFIG_PACKAGE_python3-openpyxl is not set -# CONFIG_PACKAGE_python3-openssl is not set -# CONFIG_PACKAGE_python3-orjson is not set -# CONFIG_PACKAGE_python3-outcome is not set -# CONFIG_PACKAGE_python3-packages is not set -# CONFIG_PACKAGE_python3-packaging is not set -# CONFIG_PACKAGE_python3-paho-mqtt is not set -# CONFIG_PACKAGE_python3-paramiko is not set -# CONFIG_PACKAGE_python3-parsley is not set -# CONFIG_PACKAGE_python3-passlib is not set -# CONFIG_PACKAGE_python3-pillow is not set -# CONFIG_PACKAGE_python3-pip is not set -# CONFIG_PACKAGE_python3-pkg-resources is not set -# CONFIG_PACKAGE_python3-platformdirs is not set -# CONFIG_PACKAGE_python3-pluggy is not set -# CONFIG_PACKAGE_python3-ply is not set -# CONFIG_PACKAGE_python3-psutil is not set -# CONFIG_PACKAGE_python3-psycopg2 is not set -# CONFIG_PACKAGE_python3-py is not set -# CONFIG_PACKAGE_python3-pyasn1 is not set -# CONFIG_PACKAGE_python3-pyasn1-modules is not set -# CONFIG_PACKAGE_python3-pycares is not set -# CONFIG_PACKAGE_python3-pycparser is not set -# CONFIG_PACKAGE_python3-pycrate is not set -# CONFIG_PACKAGE_python3-pydoc is not set -# CONFIG_PACKAGE_python3-pyfuse3 is not set -# CONFIG_PACKAGE_python3-pyinotify is not set -# CONFIG_PACKAGE_python3-pymysql is not set -# CONFIG_PACKAGE_python3-pymysql-sha-pwd is not set -# CONFIG_PACKAGE_python3-pynacl is not set -# CONFIG_PACKAGE_python3-pyodbc is not set -# CONFIG_PACKAGE_python3-pyopenssl is not set -# CONFIG_PACKAGE_python3-pyotp is not set -# CONFIG_PACKAGE_python3-pyparsing is not set -# CONFIG_PACKAGE_python3-pyproject-metadata is not set -# CONFIG_PACKAGE_python3-pyroute2 is not set -# CONFIG_PACKAGE_python3-pyrsistent is not set -# CONFIG_PACKAGE_python3-pyserial is not set -# CONFIG_PACKAGE_python3-pysocks is not set -# CONFIG_PACKAGE_python3-pytest is not set -# CONFIG_PACKAGE_python3-pytest-forked is not set -# CONFIG_PACKAGE_python3-pytest-xdist is not set -# CONFIG_PACKAGE_python3-pytz is not set -# CONFIG_PACKAGE_python3-readline is not set -# CONFIG_PACKAGE_python3-referencing is not set -# CONFIG_PACKAGE_python3-requests is not set -# CONFIG_PACKAGE_python3-rpds-py is not set -# CONFIG_PACKAGE_python3-rsa is not set -# CONFIG_PACKAGE_python3-ruamel-yaml is not set -# CONFIG_PACKAGE_python3-s3transfer is not set -# CONFIG_PACKAGE_python3-schedule is not set -# CONFIG_PACKAGE_python3-schema is not set -# CONFIG_PACKAGE_python3-selinux is not set -# CONFIG_PACKAGE_python3-semanage is not set -# CONFIG_PACKAGE_python3-sentry-sdk is not set -# CONFIG_PACKAGE_python3-seobject is not set -# CONFIG_PACKAGE_python3-sepolgen is not set -# CONFIG_PACKAGE_python3-sepolicy is not set -# CONFIG_PACKAGE_python3-service-identity is not set -# CONFIG_PACKAGE_python3-setools is not set -# CONFIG_PACKAGE_python3-setuptools is not set -# CONFIG_PACKAGE_python3-six is not set -# CONFIG_PACKAGE_python3-slugify is not set -# CONFIG_PACKAGE_python3-smbus is not set -# CONFIG_PACKAGE_python3-sniffio is not set -# CONFIG_PACKAGE_python3-socketio is not set -# CONFIG_PACKAGE_python3-sortedcontainers is not set -# CONFIG_PACKAGE_python3-speedtest-cli is not set -# CONFIG_PACKAGE_python3-sqlalchemy is not set -# CONFIG_PACKAGE_python3-sqlite3 is not set -# CONFIG_PACKAGE_python3-sqlparse is not set -# CONFIG_PACKAGE_python3-stem is not set -# CONFIG_PACKAGE_python3-text-unidecode is not set -# CONFIG_PACKAGE_python3-texttable is not set -# CONFIG_PACKAGE_python3-toml is not set -# CONFIG_PACKAGE_python3-tornado is not set -# CONFIG_PACKAGE_python3-trio is not set -# CONFIG_PACKAGE_python3-twisted is not set -# CONFIG_PACKAGE_python3-typing-extensions is not set -# CONFIG_PACKAGE_python3-ubus is not set -# CONFIG_PACKAGE_python3-uci is not set -# CONFIG_PACKAGE_python3-unidecode is not set -# CONFIG_PACKAGE_python3-unittest is not set -# CONFIG_PACKAGE_python3-urllib is not set -# CONFIG_PACKAGE_python3-urllib3 is not set -# CONFIG_PACKAGE_python3-userpath is not set -# CONFIG_PACKAGE_python3-uuid is not set -# CONFIG_PACKAGE_python3-venv is not set -# CONFIG_PACKAGE_python3-vobject is not set -# CONFIG_PACKAGE_python3-voluptuous is not set -# CONFIG_PACKAGE_python3-voluptuous-serialize is not set -# CONFIG_PACKAGE_python3-wcwidth is not set -# CONFIG_PACKAGE_python3-websocket-client is not set -# CONFIG_PACKAGE_python3-websockets is not set -# CONFIG_PACKAGE_python3-werkzeug is not set -# CONFIG_PACKAGE_python3-xml is not set -# CONFIG_PACKAGE_python3-xmltodict is not set -# CONFIG_PACKAGE_python3-yaml is not set -# CONFIG_PACKAGE_python3-yarl is not set -# CONFIG_PACKAGE_python3-zeroconf is not set -# CONFIG_PACKAGE_python3-zipp is not set -# CONFIG_PACKAGE_python3-zope-event is not set -# CONFIG_PACKAGE_python3-zope-interface is not set +CONFIG_PACKAGE_python3-numpy-src=m +CONFIG_PACKAGE_python3-openpyxl=m +CONFIG_PACKAGE_python3-openpyxl-src=m +CONFIG_PACKAGE_python3-openssl=m +CONFIG_PACKAGE_python3-openssl-src=m +CONFIG_PACKAGE_python3-orjson=m +CONFIG_PACKAGE_python3-orjson-src=m +CONFIG_PACKAGE_python3-outcome=m +CONFIG_PACKAGE_python3-outcome-src=m +CONFIG_PACKAGE_python3-packages=m +CONFIG_PACKAGE_python3-packages-list-host="" +CONFIG_PACKAGE_python3-packages-list="" +CONFIG_PACKAGE_python3-packages-list-cleanup="" +CONFIG_PACKAGE_python3-packages-envs="" +CONFIG_PACKAGE_python3-packages-extra-deps="" +CONFIG_PACKAGE_python3-packages-index-url="" +CONFIG_PACKAGE_python3-packages-pip-opts="" +CONFIG_PACKAGE_python3-packaging=m +CONFIG_PACKAGE_python3-packaging-src=m +CONFIG_PACKAGE_python3-paho-mqtt=m +CONFIG_PACKAGE_python3-paho-mqtt-src=m +CONFIG_PACKAGE_python3-paramiko=m +CONFIG_PACKAGE_python3-paramiko-src=m +CONFIG_PACKAGE_python3-parsley=m +CONFIG_PACKAGE_python3-parsley-src=m +CONFIG_PACKAGE_python3-passlib=m +CONFIG_PACKAGE_python3-passlib-src=m +CONFIG_PACKAGE_python3-pillow=m +CONFIG_PACKAGE_python3-pillow-src=m +CONFIG_PACKAGE_python3-pip=m +CONFIG_PACKAGE_python3-pip-src=m +CONFIG_PACKAGE_python3-pkg-resources=m +CONFIG_PACKAGE_python3-pkg-resources-src=m +CONFIG_PACKAGE_python3-platformdirs=m +CONFIG_PACKAGE_python3-platformdirs-src=m +CONFIG_PACKAGE_python3-pluggy=m +CONFIG_PACKAGE_python3-pluggy-src=m +CONFIG_PACKAGE_python3-ply=m +CONFIG_PACKAGE_python3-ply-src=m +CONFIG_PACKAGE_python3-psutil=m +CONFIG_PACKAGE_python3-psutil-src=m +CONFIG_PACKAGE_python3-psycopg2=m +CONFIG_PACKAGE_python3-psycopg2-src=m +CONFIG_PACKAGE_python3-py=m +CONFIG_PACKAGE_python3-py-src=m +CONFIG_PACKAGE_python3-pyasn1=m +CONFIG_PACKAGE_python3-pyasn1-modules=m +CONFIG_PACKAGE_python3-pyasn1-modules-src=m +CONFIG_PACKAGE_python3-pyasn1-src=m +CONFIG_PACKAGE_python3-pycares=m +CONFIG_PACKAGE_python3-pycares-src=m +CONFIG_PACKAGE_python3-pycparser=m +CONFIG_PACKAGE_python3-pycparser-src=m +CONFIG_PACKAGE_python3-pycrate=m +CONFIG_PACKAGE_python3-pycrate-src=m +CONFIG_PACKAGE_python3-pydoc=m +CONFIG_PACKAGE_python3-pydoc-src=m +CONFIG_PACKAGE_python3-pyfuse3=m +CONFIG_PACKAGE_python3-pyfuse3-src=m +CONFIG_PACKAGE_python3-pyinotify=m +CONFIG_PACKAGE_python3-pyinotify-src=m +CONFIG_PACKAGE_python3-pymysql=m +CONFIG_PACKAGE_python3-pymysql-sha-pwd=m +CONFIG_PACKAGE_python3-pymysql-src=m +CONFIG_PACKAGE_python3-pynacl=m +CONFIG_PACKAGE_python3-pynacl-src=m +CONFIG_PACKAGE_python3-pyodbc=m +CONFIG_PACKAGE_python3-pyopenssl=m +CONFIG_PACKAGE_python3-pyopenssl-src=m +CONFIG_PACKAGE_python3-pyotp=m +CONFIG_PACKAGE_python3-pyotp-src=m +CONFIG_PACKAGE_python3-pyparsing=m +CONFIG_PACKAGE_python3-pyparsing-src=m +CONFIG_PACKAGE_python3-pyproject-metadata=m +CONFIG_PACKAGE_python3-pyproject-metadata-src=m +CONFIG_PACKAGE_python3-pyroute2=m +CONFIG_PACKAGE_python3-pyroute2-src=m +CONFIG_PACKAGE_python3-pyrsistent=m +CONFIG_PACKAGE_python3-pyrsistent-src=m +CONFIG_PACKAGE_python3-pyserial=m +CONFIG_PACKAGE_python3-pyserial-src=m +CONFIG_PACKAGE_python3-pysocks=m +CONFIG_PACKAGE_python3-pysocks-src=m +CONFIG_PACKAGE_python3-pytest=m +CONFIG_PACKAGE_python3-pytest-forked=m +CONFIG_PACKAGE_python3-pytest-forked-src=m +CONFIG_PACKAGE_python3-pytest-src=m +CONFIG_PACKAGE_python3-pytest-xdist=m +CONFIG_PACKAGE_python3-pytest-xdist-src=m +CONFIG_PACKAGE_python3-pytz=m +CONFIG_PACKAGE_python3-pytz-src=m +CONFIG_PACKAGE_python3-readline=m +CONFIG_PACKAGE_python3-readline-src=m +CONFIG_PACKAGE_python3-referencing=m +CONFIG_PACKAGE_python3-referencing-src=m +CONFIG_PACKAGE_python3-requests=m +CONFIG_PACKAGE_python3-requests-src=m +CONFIG_PACKAGE_python3-rpds-py=m +CONFIG_PACKAGE_python3-rpds-py-src=m +CONFIG_PACKAGE_python3-rsa=m +CONFIG_PACKAGE_python3-rsa-src=m +CONFIG_PACKAGE_python3-ruamel-yaml=m +CONFIG_PACKAGE_python3-ruamel-yaml-src=m +CONFIG_PACKAGE_python3-s3transfer=m +CONFIG_PACKAGE_python3-s3transfer-src=m +CONFIG_PACKAGE_python3-schedule=m +CONFIG_PACKAGE_python3-schedule-src=m +CONFIG_PACKAGE_python3-schema=m +CONFIG_PACKAGE_python3-schema-src=m +CONFIG_PACKAGE_python3-selinux=m +CONFIG_PACKAGE_python3-selinux-src=m +CONFIG_PACKAGE_python3-semanage=m +CONFIG_PACKAGE_python3-semanage-src=m +CONFIG_PACKAGE_python3-sentry-sdk=m +CONFIG_PACKAGE_python3-sentry-sdk-src=m +CONFIG_PACKAGE_python3-seobject=m +CONFIG_PACKAGE_python3-seobject-src=m +CONFIG_PACKAGE_python3-sepolgen=m +CONFIG_PACKAGE_python3-sepolgen-src=m +CONFIG_PACKAGE_python3-sepolicy=m +CONFIG_PACKAGE_python3-sepolicy-src=m +CONFIG_PACKAGE_python3-service-identity=m +CONFIG_PACKAGE_python3-service-identity-src=m +CONFIG_PACKAGE_python3-setools=m +CONFIG_PACKAGE_python3-setools-src=m +CONFIG_PACKAGE_python3-setuptools=m +CONFIG_PACKAGE_python3-setuptools-src=m +CONFIG_PACKAGE_python3-six=m +CONFIG_PACKAGE_python3-six-src=m +CONFIG_PACKAGE_python3-slugify=m +CONFIG_PACKAGE_python3-slugify-src=m +CONFIG_PACKAGE_python3-smbus=m +CONFIG_PACKAGE_python3-sniffio=m +CONFIG_PACKAGE_python3-sniffio-src=m +CONFIG_PACKAGE_python3-socketio=m +CONFIG_PACKAGE_python3-socketio-src=m +CONFIG_PACKAGE_python3-sortedcontainers=m +CONFIG_PACKAGE_python3-sortedcontainers-src=m +CONFIG_PACKAGE_python3-speedtest-cli=m +CONFIG_PACKAGE_python3-speedtest-cli-src=m +CONFIG_PACKAGE_python3-sqlalchemy=m +CONFIG_PACKAGE_python3-sqlalchemy-src=m +CONFIG_PACKAGE_python3-sqlite3=m +CONFIG_PACKAGE_python3-sqlite3-src=m +CONFIG_PACKAGE_python3-sqlparse=m +CONFIG_PACKAGE_python3-sqlparse-src=m +CONFIG_PACKAGE_python3-stem=m +CONFIG_PACKAGE_python3-stem-src=m +CONFIG_PACKAGE_python3-text-unidecode=m +CONFIG_PACKAGE_python3-text-unidecode-src=m +CONFIG_PACKAGE_python3-texttable=m +CONFIG_PACKAGE_python3-texttable-src=m +CONFIG_PACKAGE_python3-toml=m +CONFIG_PACKAGE_python3-toml-src=m +CONFIG_PACKAGE_python3-tornado=m +CONFIG_PACKAGE_python3-tornado-src=m +CONFIG_PACKAGE_python3-trio=m +CONFIG_PACKAGE_python3-trio-src=m +CONFIG_PACKAGE_python3-twisted=m +CONFIG_PACKAGE_python3-twisted-src=m +CONFIG_PACKAGE_python3-typing-extensions=m +CONFIG_PACKAGE_python3-typing-extensions-src=m +CONFIG_PACKAGE_python3-ubus=m +CONFIG_PACKAGE_python3-ubus-src=m +CONFIG_PACKAGE_python3-uci=m +CONFIG_PACKAGE_python3-uci-src=m +CONFIG_PACKAGE_python3-unidecode=m +CONFIG_PACKAGE_python3-unidecode-src=m +CONFIG_PACKAGE_python3-unittest=m +CONFIG_PACKAGE_python3-unittest-src=m +CONFIG_PACKAGE_python3-urllib=m +CONFIG_PACKAGE_python3-urllib-src=m +CONFIG_PACKAGE_python3-urllib3=m +CONFIG_PACKAGE_python3-urllib3-src=m +CONFIG_PACKAGE_python3-userpath=m +CONFIG_PACKAGE_python3-userpath-src=m +CONFIG_PACKAGE_python3-uuid=m +CONFIG_PACKAGE_python3-uuid-src=m +CONFIG_PACKAGE_python3-venv=m +CONFIG_PACKAGE_python3-venv-src=m +CONFIG_PACKAGE_python3-vobject=m +CONFIG_PACKAGE_python3-vobject-src=m +CONFIG_PACKAGE_python3-voluptuous=m +CONFIG_PACKAGE_python3-voluptuous-serialize=m +CONFIG_PACKAGE_python3-voluptuous-serialize-src=m +CONFIG_PACKAGE_python3-voluptuous-src=m +CONFIG_PACKAGE_python3-wcwidth=m +CONFIG_PACKAGE_python3-wcwidth-src=m +CONFIG_PACKAGE_python3-websocket-client=m +CONFIG_PACKAGE_python3-websocket-client-src=m +CONFIG_PACKAGE_python3-websockets=m +CONFIG_PACKAGE_python3-websockets-src=m +CONFIG_PACKAGE_python3-werkzeug=m +CONFIG_PACKAGE_python3-werkzeug-src=m +CONFIG_PACKAGE_python3-xml=m +CONFIG_PACKAGE_python3-xml-src=m +CONFIG_PACKAGE_python3-xmltodict=m +CONFIG_PACKAGE_python3-xmltodict-src=m +CONFIG_PACKAGE_python3-yaml=m +CONFIG_PACKAGE_python3-yaml-src=m +CONFIG_PACKAGE_python3-yarl=m +CONFIG_PACKAGE_python3-yarl-src=m +CONFIG_PACKAGE_python3-zeroconf=m +CONFIG_PACKAGE_python3-zeroconf-src=m +CONFIG_PACKAGE_python3-zipp=m +CONFIG_PACKAGE_python3-zipp-src=m +CONFIG_PACKAGE_python3-zope-event=m +CONFIG_PACKAGE_python3-zope-event-src=m +CONFIG_PACKAGE_python3-zope-interface=m +CONFIG_PACKAGE_python3-zope-interface-src=m # end of Python # # Ruby # -# CONFIG_PACKAGE_ruby is not set +CONFIG_PACKAGE_ruby=m + +# +# Standard Library +# +CONFIG_PACKAGE_ruby-stdlib=m +CONFIG_PACKAGE_ruby-abbrev=m +CONFIG_PACKAGE_ruby-base64=m +CONFIG_PACKAGE_ruby-benchmark=m +CONFIG_PACKAGE_ruby-bigdecimal=m +CONFIG_PACKAGE_ruby-bundler=m +CONFIG_PACKAGE_ruby-cgi=m +CONFIG_PACKAGE_ruby-continuation=m +CONFIG_PACKAGE_ruby-coverage=m +CONFIG_PACKAGE_ruby-csv=m +CONFIG_PACKAGE_ruby-date=m +CONFIG_PACKAGE_ruby-debug=m +CONFIG_PACKAGE_ruby-delegate=m +CONFIG_PACKAGE_ruby-dev=m +CONFIG_PACKAGE_ruby-did-you-mean=m +CONFIG_PACKAGE_ruby-digest=m +# CONFIG_RUBY_DIGEST_USE_OPENSSL is not set +CONFIG_PACKAGE_ruby-drb=m +CONFIG_PACKAGE_ruby-enc=m +CONFIG_PACKAGE_ruby-enc-extra=m +CONFIG_PACKAGE_ruby-english=m +CONFIG_PACKAGE_ruby-erb=m +CONFIG_PACKAGE_ruby-error_highlight=m +CONFIG_PACKAGE_ruby-etc=m +CONFIG_PACKAGE_ruby-expect=m +CONFIG_PACKAGE_ruby-fcntl=m +CONFIG_PACKAGE_ruby-fiddle=m +CONFIG_PACKAGE_ruby-fileutils=m +CONFIG_PACKAGE_ruby-find=m +CONFIG_PACKAGE_ruby-forwardable=m +CONFIG_PACKAGE_ruby-gems=m +CONFIG_PACKAGE_ruby-getoptlong=m +CONFIG_PACKAGE_ruby-io-console=m +CONFIG_PACKAGE_ruby-io-nonblock=m +CONFIG_PACKAGE_ruby-io-wait=m +CONFIG_PACKAGE_ruby-ipaddr=m +CONFIG_PACKAGE_ruby-irb=m +CONFIG_PACKAGE_ruby-json=m +CONFIG_PACKAGE_ruby-logger=m +CONFIG_PACKAGE_ruby-matrix=m +CONFIG_PACKAGE_ruby-minitest=m +CONFIG_PACKAGE_ruby-mjit=m +CONFIG_PACKAGE_ruby-mkmf=m +CONFIG_PACKAGE_ruby-monitor=m +CONFIG_PACKAGE_ruby-mutex_m=m +CONFIG_PACKAGE_ruby-net-ftp=m +CONFIG_PACKAGE_ruby-net-http=m +CONFIG_PACKAGE_ruby-net-imap=m +CONFIG_PACKAGE_ruby-net-pop=m +CONFIG_PACKAGE_ruby-net-protocol=m +CONFIG_PACKAGE_ruby-net-smtp=m +CONFIG_PACKAGE_ruby-nkf=m +CONFIG_PACKAGE_ruby-objspace=m +CONFIG_PACKAGE_ruby-observer=m +CONFIG_PACKAGE_ruby-open-uri=m +CONFIG_PACKAGE_ruby-open3=m +CONFIG_PACKAGE_ruby-openssl=m +CONFIG_PACKAGE_ruby-optparse=m +CONFIG_PACKAGE_ruby-ostruct=m +CONFIG_PACKAGE_ruby-pathname=m +CONFIG_PACKAGE_ruby-powerassert=m +CONFIG_PACKAGE_ruby-pp=m +CONFIG_PACKAGE_ruby-prettyprint=m +CONFIG_PACKAGE_ruby-prime=m +CONFIG_PACKAGE_ruby-pstore=m +CONFIG_PACKAGE_ruby-psych=m +CONFIG_PACKAGE_ruby-pty=m +CONFIG_PACKAGE_ruby-racc=m +CONFIG_PACKAGE_ruby-rake=m +CONFIG_PACKAGE_ruby-random_formatter=m +CONFIG_PACKAGE_ruby-rbconfig=m +CONFIG_PACKAGE_ruby-rbs=m +CONFIG_PACKAGE_ruby-rdoc=m +CONFIG_PACKAGE_ruby-readline=m +CONFIG_PACKAGE_ruby-readline-ext=m +CONFIG_PACKAGE_ruby-reline=m +CONFIG_PACKAGE_ruby-resolv=m +CONFIG_PACKAGE_ruby-resolv-replace=m +CONFIG_PACKAGE_ruby-rexml=m +CONFIG_PACKAGE_ruby-rinda=m +CONFIG_PACKAGE_ruby-ripper=m +CONFIG_PACKAGE_ruby-rss=m +CONFIG_PACKAGE_ruby-ruby2_keywords=m +CONFIG_PACKAGE_ruby-securerandom=m +CONFIG_PACKAGE_ruby-set=m +CONFIG_PACKAGE_ruby-shellwords=m +CONFIG_PACKAGE_ruby-singleton=m +CONFIG_PACKAGE_ruby-socket=m +CONFIG_PACKAGE_ruby-stringio=m +CONFIG_PACKAGE_ruby-strscan=m +CONFIG_PACKAGE_ruby-syntax_suggest=m +CONFIG_PACKAGE_ruby-syslog=m +CONFIG_PACKAGE_ruby-tempfile=m +CONFIG_PACKAGE_ruby-testunit=m +CONFIG_PACKAGE_ruby-time=m +CONFIG_PACKAGE_ruby-timeout=m +CONFIG_PACKAGE_ruby-tmpdir=m +CONFIG_PACKAGE_ruby-tsort=m +CONFIG_PACKAGE_ruby-typeprof=m +CONFIG_PACKAGE_ruby-un=m +CONFIG_PACKAGE_ruby-unicodenormalize=m +CONFIG_PACKAGE_ruby-uri=m +CONFIG_PACKAGE_ruby-weakref=m +CONFIG_PACKAGE_ruby-yaml=m +CONFIG_PACKAGE_ruby-zlib=m # end of Ruby # # Rust # -# CONFIG_PACKAGE_rust is not set +CONFIG_PACKAGE_rust=m # # Configuration options (for developers) @@ -3753,7 +4446,7 @@ CONFIG_RUST_SCCACHE_DIR="" # # Tcl # -# CONFIG_PACKAGE_tcl is not set +CONFIG_PACKAGE_tcl=m # end of Tcl # @@ -3762,20 +4455,20 @@ CONFIG_RUST_SCCACHE_DIR="" CONFIG_PACKAGE_ucode=y # CONFIG_PACKAGE_ucode-mod-debug is not set CONFIG_PACKAGE_ucode-mod-fs=y -# CONFIG_PACKAGE_ucode-mod-log is not set +CONFIG_PACKAGE_ucode-mod-log=m CONFIG_PACKAGE_ucode-mod-math=y CONFIG_PACKAGE_ucode-mod-nl80211=m # CONFIG_PACKAGE_ucode-mod-resolv is not set -# CONFIG_PACKAGE_ucode-mod-rtnl is not set +CONFIG_PACKAGE_ucode-mod-rtnl=m # CONFIG_PACKAGE_ucode-mod-struct is not set CONFIG_PACKAGE_ucode-mod-ubus=y CONFIG_PACKAGE_ucode-mod-uci=y -# CONFIG_PACKAGE_ucode-mod-uloop is not set +CONFIG_PACKAGE_ucode-mod-uloop=m # end of ucode -# CONFIG_PACKAGE_chicken-scheme-full is not set -# CONFIG_PACKAGE_chicken-scheme-interpreter is not set -# CONFIG_PACKAGE_slsh is not set +CONFIG_PACKAGE_chicken-scheme-full=m +CONFIG_PACKAGE_chicken-scheme-interpreter=m +CONFIG_PACKAGE_slsh=m # end of Languages # @@ -3786,52 +4479,97 @@ CONFIG_PACKAGE_ucode-mod-uci=y # Compression # CONFIG_PACKAGE_libbz2=m -# CONFIG_PACKAGE_liblz4 is not set -# CONFIG_PACKAGE_liblzma is not set -# CONFIG_PACKAGE_libunrar is not set -# CONFIG_PACKAGE_libzip-gnutls is not set -# CONFIG_PACKAGE_libzip-mbedtls is not set -# CONFIG_PACKAGE_libzip-nossl is not set -# CONFIG_PACKAGE_libzip-openssl is not set -# CONFIG_PACKAGE_libzstd is not set +CONFIG_PACKAGE_liblz4=m +# CONFIG_LZ4_OPTIMIZE_SPEED is not set +CONFIG_PACKAGE_liblzma=m +CONFIG_PACKAGE_libunrar=m +CONFIG_PACKAGE_libzip-gnutls=m +CONFIG_PACKAGE_libzip-mbedtls=m +CONFIG_PACKAGE_libzip-nossl=m +CONFIG_PACKAGE_libzip-openssl=m +CONFIG_PACKAGE_libzstd=m +CONFIG_ZSTD_OPTIMIZE_O3=y # end of Compression # # Database # -# CONFIG_PACKAGE_libmariadb is not set -# CONFIG_PACKAGE_libodbc is not set -# CONFIG_PACKAGE_libodbccr is not set -# CONFIG_PACKAGE_libodbcinst is not set -# CONFIG_PACKAGE_libpq is not set -# CONFIG_PACKAGE_libpqxx is not set -# CONFIG_PACKAGE_libsqlite3 is not set -# CONFIG_PACKAGE_pgsqlodbc is not set -# CONFIG_PACKAGE_psqlodbca is not set -# CONFIG_PACKAGE_psqlodbcw is not set -# CONFIG_PACKAGE_redis-cli is not set -# CONFIG_PACKAGE_redis-server is not set -# CONFIG_PACKAGE_redis-utils is not set -# CONFIG_PACKAGE_tdb is not set -# CONFIG_PACKAGE_unixodbc is not set +CONFIG_PACKAGE_libmariadb=m +CONFIG_PACKAGE_libmariadb-plugin-auth-gssapi-client=m +CONFIG_PACKAGE_libmariadb-plugin-remote-io=m +CONFIG_PACKAGE_libodbc=m +CONFIG_PACKAGE_libodbccr=m +CONFIG_PACKAGE_libodbcinst=m +CONFIG_PACKAGE_libpq=m +CONFIG_PACKAGE_libpqxx=m + +# +# Options +# +CONFIG_LIBPQXX_STATIC=y +# CONFIG_LIBPQXX_SHARED is not set +# CONFIG_LIBPQXX_INSTALL_TEST is not set +# end of Options + +CONFIG_PACKAGE_libsqlite3=m + +# +# Configuration +# +# CONFIG_SQLITE3_BATCH_ATOMIC_WRITE is not set +CONFIG_SQLITE3_COLUMN_METADATA=y +CONFIG_SQLITE3_DYNAMIC_EXTENSIONS=y +CONFIG_SQLITE3_FTS3=y +CONFIG_SQLITE3_FTS4=y +CONFIG_SQLITE3_FTS5=y +CONFIG_SQLITE3_RTREE=y +# CONFIG_SQLITE3_SESSION is not set +# end of Configuration + +CONFIG_PACKAGE_pgsqlodbc=m +CONFIG_PACKAGE_psqlodbca=m +CONFIG_PACKAGE_psqlodbcw=m +CONFIG_PACKAGE_redis-cli=m +CONFIG_PACKAGE_redis-server=m +CONFIG_PACKAGE_redis-utils=m +CONFIG_PACKAGE_tdb=m +CONFIG_PACKAGE_unixodbc=m # end of Database # # Filesystem # -# CONFIG_PACKAGE_libacl is not set +CONFIG_PACKAGE_libacl=m CONFIG_PACKAGE_libattr=m -# CONFIG_PACKAGE_libfuse is not set -# CONFIG_PACKAGE_libfuse3 is not set -# CONFIG_PACKAGE_libow is not set -# CONFIG_PACKAGE_libow-capi is not set -# CONFIG_PACKAGE_libsysfs is not set +CONFIG_PACKAGE_libfuse=m +CONFIG_PACKAGE_libfuse3=m +CONFIG_PACKAGE_libow=m + +# +# Customize libow +# + +# +# Bus master and adapter support +# +CONFIG_LIBOW_MASTER_USB=y +CONFIG_LIBOW_MASTER_I2C=y +# CONFIG_LIBOW_MASTER_W1 is not set +# end of Bus master and adapter support + +CONFIG_LIBOW_ZEROCONF=y +CONFIG_LIBOW_DEBUG=y +# CONFIG_LIBOW_OWTRAFFIC is not set +# end of Customize libow + +CONFIG_PACKAGE_libow-capi=m +CONFIG_PACKAGE_libsysfs=m # end of Filesystem # # Firewall # -# CONFIG_PACKAGE_libfko is not set +CONFIG_PACKAGE_libfko=m CONFIG_PACKAGE_libip4tc=m CONFIG_PACKAGE_libip6tc=m CONFIG_PACKAGE_libiptext=m @@ -3844,476 +4582,528 @@ CONFIG_PACKAGE_libxtables=m # # IoT # -# CONFIG_PACKAGE_libmraa is not set -# CONFIG_PACKAGE_libmraa-python3 is not set -# CONFIG_PACKAGE_libupm is not set -# CONFIG_PACKAGE_libupm-a110x is not set -# CONFIG_PACKAGE_libupm-a110x-python3 is not set -# CONFIG_PACKAGE_libupm-abp is not set -# CONFIG_PACKAGE_libupm-abp-python3 is not set -# CONFIG_PACKAGE_libupm-ad8232 is not set -# CONFIG_PACKAGE_libupm-ad8232-python3 is not set -# CONFIG_PACKAGE_libupm-adafruitms1438 is not set -# CONFIG_PACKAGE_libupm-adafruitms1438-python3 is not set -# CONFIG_PACKAGE_libupm-adafruitss is not set -# CONFIG_PACKAGE_libupm-adafruitss-python3 is not set -# CONFIG_PACKAGE_libupm-adc121c021 is not set -# CONFIG_PACKAGE_libupm-adc121c021-python3 is not set -# CONFIG_PACKAGE_libupm-adis16448 is not set -# CONFIG_PACKAGE_libupm-adis16448-python3 is not set -# CONFIG_PACKAGE_libupm-ads1x15 is not set -# CONFIG_PACKAGE_libupm-ads1x15-python3 is not set -# CONFIG_PACKAGE_libupm-adxl335 is not set -# CONFIG_PACKAGE_libupm-adxl335-python3 is not set -# CONFIG_PACKAGE_libupm-adxl345 is not set -# CONFIG_PACKAGE_libupm-adxl345-python3 is not set -# CONFIG_PACKAGE_libupm-adxrs610 is not set -# CONFIG_PACKAGE_libupm-adxrs610-python3 is not set -# CONFIG_PACKAGE_libupm-am2315 is not set -# CONFIG_PACKAGE_libupm-am2315-python3 is not set -# CONFIG_PACKAGE_libupm-apa102 is not set -# CONFIG_PACKAGE_libupm-apa102-python3 is not set -# CONFIG_PACKAGE_libupm-apds9002 is not set -# CONFIG_PACKAGE_libupm-apds9002-python3 is not set -# CONFIG_PACKAGE_libupm-apds9930 is not set -# CONFIG_PACKAGE_libupm-apds9930-python3 is not set -# CONFIG_PACKAGE_libupm-at42qt1070 is not set -# CONFIG_PACKAGE_libupm-at42qt1070-python3 is not set -# CONFIG_PACKAGE_libupm-bh1749 is not set -# CONFIG_PACKAGE_libupm-bh1749-python3 is not set -# CONFIG_PACKAGE_libupm-bh1750 is not set -# CONFIG_PACKAGE_libupm-bh1750-python3 is not set -# CONFIG_PACKAGE_libupm-bh1792 is not set -# CONFIG_PACKAGE_libupm-bh1792-python3 is not set -# CONFIG_PACKAGE_libupm-biss0001 is not set -# CONFIG_PACKAGE_libupm-biss0001-python3 is not set -# CONFIG_PACKAGE_libupm-bma220 is not set -# CONFIG_PACKAGE_libupm-bma220-python3 is not set -# CONFIG_PACKAGE_libupm-bma250e is not set -# CONFIG_PACKAGE_libupm-bma250e-python3 is not set -# CONFIG_PACKAGE_libupm-bmg160 is not set -# CONFIG_PACKAGE_libupm-bmg160-python3 is not set -# CONFIG_PACKAGE_libupm-bmi160 is not set -# CONFIG_PACKAGE_libupm-bmi160-python3 is not set -# CONFIG_PACKAGE_libupm-bmm150 is not set -# CONFIG_PACKAGE_libupm-bmm150-python3 is not set -# CONFIG_PACKAGE_libupm-bmp280 is not set -# CONFIG_PACKAGE_libupm-bmp280-python3 is not set -# CONFIG_PACKAGE_libupm-bmpx8x is not set -# CONFIG_PACKAGE_libupm-bmpx8x-python3 is not set -# CONFIG_PACKAGE_libupm-bmx055 is not set -# CONFIG_PACKAGE_libupm-bmx055-python3 is not set -# CONFIG_PACKAGE_libupm-bno055 is not set -# CONFIG_PACKAGE_libupm-bno055-python3 is not set -# CONFIG_PACKAGE_libupm-button is not set -# CONFIG_PACKAGE_libupm-button-python3 is not set -# CONFIG_PACKAGE_libupm-buzzer is not set -# CONFIG_PACKAGE_libupm-buzzer-python3 is not set -# CONFIG_PACKAGE_libupm-cjq4435 is not set -# CONFIG_PACKAGE_libupm-cjq4435-python3 is not set -# CONFIG_PACKAGE_libupm-collision is not set -# CONFIG_PACKAGE_libupm-collision-python3 is not set -# CONFIG_PACKAGE_libupm-curieimu is not set -# CONFIG_PACKAGE_libupm-curieimu-python3 is not set -# CONFIG_PACKAGE_libupm-cwlsxxa is not set -# CONFIG_PACKAGE_libupm-cwlsxxa-python3 is not set -# CONFIG_PACKAGE_libupm-dfrec is not set -# CONFIG_PACKAGE_libupm-dfrec-python3 is not set -# CONFIG_PACKAGE_libupm-dfrorp is not set -# CONFIG_PACKAGE_libupm-dfrorp-python3 is not set -# CONFIG_PACKAGE_libupm-dfrph is not set -# CONFIG_PACKAGE_libupm-dfrph-python3 is not set -# CONFIG_PACKAGE_libupm-ds1307 is not set -# CONFIG_PACKAGE_libupm-ds1307-python3 is not set -# CONFIG_PACKAGE_libupm-ds1808lc is not set -# CONFIG_PACKAGE_libupm-ds1808lc-python3 is not set -# CONFIG_PACKAGE_libupm-ds18b20 is not set -# CONFIG_PACKAGE_libupm-ds18b20-python3 is not set -# CONFIG_PACKAGE_libupm-ds2413 is not set -# CONFIG_PACKAGE_libupm-ds2413-python3 is not set -# CONFIG_PACKAGE_libupm-ecezo is not set -# CONFIG_PACKAGE_libupm-ecezo-python3 is not set -# CONFIG_PACKAGE_libupm-ecs1030 is not set -# CONFIG_PACKAGE_libupm-ecs1030-python3 is not set -# CONFIG_PACKAGE_libupm-ehr is not set -# CONFIG_PACKAGE_libupm-ehr-python3 is not set -# CONFIG_PACKAGE_libupm-eldriver is not set -# CONFIG_PACKAGE_libupm-eldriver-python3 is not set -# CONFIG_PACKAGE_libupm-electromagnet is not set -# CONFIG_PACKAGE_libupm-electromagnet-python3 is not set -# CONFIG_PACKAGE_libupm-emg is not set -# CONFIG_PACKAGE_libupm-emg-python3 is not set -# CONFIG_PACKAGE_libupm-enc03r is not set -# CONFIG_PACKAGE_libupm-enc03r-python3 is not set -# CONFIG_PACKAGE_libupm-flex is not set -# CONFIG_PACKAGE_libupm-flex-python3 is not set -# CONFIG_PACKAGE_libupm-gas is not set -# CONFIG_PACKAGE_libupm-gas-python3 is not set -# CONFIG_PACKAGE_libupm-gp2y0a is not set -# CONFIG_PACKAGE_libupm-gp2y0a-python3 is not set -# CONFIG_PACKAGE_libupm-gprs is not set -# CONFIG_PACKAGE_libupm-gprs-python3 is not set -# CONFIG_PACKAGE_libupm-gsr is not set -# CONFIG_PACKAGE_libupm-gsr-python3 is not set -# CONFIG_PACKAGE_libupm-guvas12d is not set -# CONFIG_PACKAGE_libupm-guvas12d-python3 is not set -# CONFIG_PACKAGE_libupm-h3lis331dl is not set -# CONFIG_PACKAGE_libupm-h3lis331dl-python3 is not set -# CONFIG_PACKAGE_libupm-h803x is not set -# CONFIG_PACKAGE_libupm-h803x-python3 is not set -# CONFIG_PACKAGE_libupm-hcsr04 is not set -# CONFIG_PACKAGE_libupm-hcsr04-python3 is not set -# CONFIG_PACKAGE_libupm-hdc1000 is not set -# CONFIG_PACKAGE_libupm-hdc1000-python3 is not set -# CONFIG_PACKAGE_libupm-hdxxvxta is not set -# CONFIG_PACKAGE_libupm-hdxxvxta-python3 is not set -# CONFIG_PACKAGE_libupm-hka5 is not set -# CONFIG_PACKAGE_libupm-hka5-python3 is not set -# CONFIG_PACKAGE_libupm-hlg150h is not set -# CONFIG_PACKAGE_libupm-hlg150h-python3 is not set -# CONFIG_PACKAGE_libupm-hm11 is not set -# CONFIG_PACKAGE_libupm-hm11-python3 is not set -# CONFIG_PACKAGE_libupm-hmc5883l is not set -# CONFIG_PACKAGE_libupm-hmc5883l-python3 is not set -# CONFIG_PACKAGE_libupm-hmtrp is not set -# CONFIG_PACKAGE_libupm-hmtrp-python3 is not set -# CONFIG_PACKAGE_libupm-hp20x is not set -# CONFIG_PACKAGE_libupm-hp20x-python3 is not set -# CONFIG_PACKAGE_libupm-ht9170 is not set -# CONFIG_PACKAGE_libupm-ht9170-python3 is not set -# CONFIG_PACKAGE_libupm-htu21d is not set -# CONFIG_PACKAGE_libupm-htu21d-python3 is not set -# CONFIG_PACKAGE_libupm-hwxpxx is not set -# CONFIG_PACKAGE_libupm-hwxpxx-python3 is not set -# CONFIG_PACKAGE_libupm-hx711 is not set -# CONFIG_PACKAGE_libupm-hx711-python3 is not set -# CONFIG_PACKAGE_libupm-ili9341 is not set -# CONFIG_PACKAGE_libupm-ili9341-python3 is not set -# CONFIG_PACKAGE_libupm-ims is not set -# CONFIG_PACKAGE_libupm-ims-python3 is not set -# CONFIG_PACKAGE_libupm-ina132 is not set -# CONFIG_PACKAGE_libupm-ina132-python3 is not set -# CONFIG_PACKAGE_libupm-interfaces is not set -# CONFIG_PACKAGE_libupm-interfaces-python3 is not set -# CONFIG_PACKAGE_libupm-isd1820 is not set -# CONFIG_PACKAGE_libupm-isd1820-python3 is not set -# CONFIG_PACKAGE_libupm-itg3200 is not set -# CONFIG_PACKAGE_libupm-itg3200-python3 is not set -# CONFIG_PACKAGE_libupm-jhd1313m1 is not set -# CONFIG_PACKAGE_libupm-jhd1313m1-python3 is not set -# CONFIG_PACKAGE_libupm-joystick12 is not set -# CONFIG_PACKAGE_libupm-joystick12-python3 is not set -# CONFIG_PACKAGE_libupm-kx122 is not set -# CONFIG_PACKAGE_libupm-kx122-python3 is not set -# CONFIG_PACKAGE_libupm-kxcjk1013 is not set -# CONFIG_PACKAGE_libupm-kxcjk1013-python3 is not set -# CONFIG_PACKAGE_libupm-kxtj3 is not set -# CONFIG_PACKAGE_libupm-kxtj3-python3 is not set -# CONFIG_PACKAGE_libupm-l298 is not set -# CONFIG_PACKAGE_libupm-l298-python3 is not set -# CONFIG_PACKAGE_libupm-l3gd20 is not set -# CONFIG_PACKAGE_libupm-l3gd20-python3 is not set -# CONFIG_PACKAGE_libupm-lcd is not set -# CONFIG_PACKAGE_libupm-lcd-python3 is not set -# CONFIG_PACKAGE_libupm-lcdks is not set -# CONFIG_PACKAGE_libupm-lcdks-python3 is not set -# CONFIG_PACKAGE_libupm-lcm1602 is not set -# CONFIG_PACKAGE_libupm-lcm1602-python3 is not set -# CONFIG_PACKAGE_libupm-ldt0028 is not set -# CONFIG_PACKAGE_libupm-ldt0028-python3 is not set -# CONFIG_PACKAGE_libupm-led is not set -# CONFIG_PACKAGE_libupm-led-python3 is not set -# CONFIG_PACKAGE_libupm-lidarlitev3 is not set -# CONFIG_PACKAGE_libupm-lidarlitev3-python3 is not set -# CONFIG_PACKAGE_libupm-light is not set -# CONFIG_PACKAGE_libupm-light-python3 is not set -# CONFIG_PACKAGE_libupm-linefinder is not set -# CONFIG_PACKAGE_libupm-linefinder-python3 is not set -# CONFIG_PACKAGE_libupm-lis2ds12 is not set -# CONFIG_PACKAGE_libupm-lis2ds12-python3 is not set -# CONFIG_PACKAGE_libupm-lis3dh is not set -# CONFIG_PACKAGE_libupm-lis3dh-python3 is not set -# CONFIG_PACKAGE_libupm-lm35 is not set -# CONFIG_PACKAGE_libupm-lm35-python3 is not set -# CONFIG_PACKAGE_libupm-lol is not set -# CONFIG_PACKAGE_libupm-lol-python3 is not set -# CONFIG_PACKAGE_libupm-loudness is not set -# CONFIG_PACKAGE_libupm-loudness-python3 is not set -# CONFIG_PACKAGE_libupm-lp8860 is not set -# CONFIG_PACKAGE_libupm-lp8860-python3 is not set -# CONFIG_PACKAGE_libupm-lpd8806 is not set -# CONFIG_PACKAGE_libupm-lpd8806-python3 is not set -# CONFIG_PACKAGE_libupm-lsm303agr is not set -# CONFIG_PACKAGE_libupm-lsm303agr-python3 is not set -# CONFIG_PACKAGE_libupm-lsm303d is not set -# CONFIG_PACKAGE_libupm-lsm303d-python3 is not set -# CONFIG_PACKAGE_libupm-lsm303dlh is not set -# CONFIG_PACKAGE_libupm-lsm303dlh-python3 is not set -# CONFIG_PACKAGE_libupm-lsm6ds3h is not set -# CONFIG_PACKAGE_libupm-lsm6ds3h-python3 is not set -# CONFIG_PACKAGE_libupm-lsm6dsl is not set -# CONFIG_PACKAGE_libupm-lsm6dsl-python3 is not set -# CONFIG_PACKAGE_libupm-lsm9ds0 is not set -# CONFIG_PACKAGE_libupm-lsm9ds0-python3 is not set -# CONFIG_PACKAGE_libupm-m24lr64e is not set -# CONFIG_PACKAGE_libupm-m24lr64e-python3 is not set -# CONFIG_PACKAGE_libupm-mag3110 is not set -# CONFIG_PACKAGE_libupm-mag3110-python3 is not set -# CONFIG_PACKAGE_libupm-max30100 is not set -# CONFIG_PACKAGE_libupm-max30100-python3 is not set -# CONFIG_PACKAGE_libupm-max31723 is not set -# CONFIG_PACKAGE_libupm-max31723-python3 is not set -# CONFIG_PACKAGE_libupm-max31855 is not set -# CONFIG_PACKAGE_libupm-max31855-python3 is not set -# CONFIG_PACKAGE_libupm-max44000 is not set -# CONFIG_PACKAGE_libupm-max44000-python3 is not set -# CONFIG_PACKAGE_libupm-max44009 is not set -# CONFIG_PACKAGE_libupm-max44009-python3 is not set -# CONFIG_PACKAGE_libupm-max5487 is not set -# CONFIG_PACKAGE_libupm-max5487-python3 is not set -# CONFIG_PACKAGE_libupm-maxds3231m is not set -# CONFIG_PACKAGE_libupm-maxds3231m-python3 is not set -# CONFIG_PACKAGE_libupm-maxsonarez is not set -# CONFIG_PACKAGE_libupm-maxsonarez-python3 is not set -# CONFIG_PACKAGE_libupm-mb704x is not set -# CONFIG_PACKAGE_libupm-mb704x-python3 is not set -# CONFIG_PACKAGE_libupm-mcp2515 is not set -# CONFIG_PACKAGE_libupm-mcp2515-python3 is not set -# CONFIG_PACKAGE_libupm-mcp9808 is not set -# CONFIG_PACKAGE_libupm-mcp9808-python3 is not set -# CONFIG_PACKAGE_libupm-md is not set -# CONFIG_PACKAGE_libupm-md-python3 is not set -# CONFIG_PACKAGE_libupm-mg811 is not set -# CONFIG_PACKAGE_libupm-mg811-python3 is not set -# CONFIG_PACKAGE_libupm-mhz16 is not set -# CONFIG_PACKAGE_libupm-mhz16-python3 is not set -# CONFIG_PACKAGE_libupm-mic is not set -# CONFIG_PACKAGE_libupm-mic-python3 is not set -# CONFIG_PACKAGE_libupm-micsv89 is not set -# CONFIG_PACKAGE_libupm-micsv89-python3 is not set -# CONFIG_PACKAGE_libupm-mlx90614 is not set -# CONFIG_PACKAGE_libupm-mlx90614-python3 is not set -# CONFIG_PACKAGE_libupm-mma7361 is not set -# CONFIG_PACKAGE_libupm-mma7361-python3 is not set -# CONFIG_PACKAGE_libupm-mma7455 is not set -# CONFIG_PACKAGE_libupm-mma7455-python3 is not set -# CONFIG_PACKAGE_libupm-mma7660 is not set -# CONFIG_PACKAGE_libupm-mma7660-python3 is not set -# CONFIG_PACKAGE_libupm-mma8x5x is not set -# CONFIG_PACKAGE_libupm-mma8x5x-python3 is not set -# CONFIG_PACKAGE_libupm-mmc35240 is not set -# CONFIG_PACKAGE_libupm-mmc35240-python3 is not set -# CONFIG_PACKAGE_libupm-moisture is not set -# CONFIG_PACKAGE_libupm-moisture-python3 is not set -# CONFIG_PACKAGE_libupm-mpl3115a2 is not set -# CONFIG_PACKAGE_libupm-mpl3115a2-python3 is not set -# CONFIG_PACKAGE_libupm-mpr121 is not set -# CONFIG_PACKAGE_libupm-mpr121-python3 is not set -# CONFIG_PACKAGE_libupm-mpu9150 is not set -# CONFIG_PACKAGE_libupm-mpu9150-python3 is not set -# CONFIG_PACKAGE_libupm-mq303a is not set -# CONFIG_PACKAGE_libupm-mq303a-python3 is not set -# CONFIG_PACKAGE_libupm-ms5611 is not set -# CONFIG_PACKAGE_libupm-ms5611-python3 is not set -# CONFIG_PACKAGE_libupm-ms5803 is not set -# CONFIG_PACKAGE_libupm-ms5803-python3 is not set -# CONFIG_PACKAGE_libupm-my9221 is not set -# CONFIG_PACKAGE_libupm-my9221-python3 is not set -# CONFIG_PACKAGE_libupm-nlgpio16 is not set -# CONFIG_PACKAGE_libupm-nlgpio16-python3 is not set -# CONFIG_PACKAGE_libupm-nmea_gps is not set -# CONFIG_PACKAGE_libupm-nmea_gps-python3 is not set -# CONFIG_PACKAGE_libupm-nrf24l01 is not set -# CONFIG_PACKAGE_libupm-nrf24l01-python3 is not set -# CONFIG_PACKAGE_libupm-nrf8001 is not set -# CONFIG_PACKAGE_libupm-nrf8001-python3 is not set -# CONFIG_PACKAGE_libupm-nunchuck is not set -# CONFIG_PACKAGE_libupm-nunchuck-python3 is not set -# CONFIG_PACKAGE_libupm-o2 is not set -# CONFIG_PACKAGE_libupm-o2-python3 is not set -# CONFIG_PACKAGE_libupm-otp538u is not set -# CONFIG_PACKAGE_libupm-otp538u-python3 is not set -# CONFIG_PACKAGE_libupm-ozw is not set -# CONFIG_PACKAGE_libupm-ozw-python3 is not set -# CONFIG_PACKAGE_libupm-p9813 is not set -# CONFIG_PACKAGE_libupm-p9813-python3 is not set -# CONFIG_PACKAGE_libupm-pca9685 is not set -# CONFIG_PACKAGE_libupm-pca9685-python3 is not set -# CONFIG_PACKAGE_libupm-pn532 is not set -# CONFIG_PACKAGE_libupm-pn532-python3 is not set -# CONFIG_PACKAGE_libupm-ppd42ns is not set -# CONFIG_PACKAGE_libupm-ppd42ns-python3 is not set -# CONFIG_PACKAGE_libupm-pulsensor is not set -# CONFIG_PACKAGE_libupm-pulsensor-python3 is not set -# CONFIG_PACKAGE_libupm-relay is not set -# CONFIG_PACKAGE_libupm-relay-python3 is not set -# CONFIG_PACKAGE_libupm-rf22 is not set -# CONFIG_PACKAGE_libupm-rf22-python3 is not set -# CONFIG_PACKAGE_libupm-rfr359f is not set -# CONFIG_PACKAGE_libupm-rfr359f-python3 is not set -# CONFIG_PACKAGE_libupm-rgbringcoder is not set -# CONFIG_PACKAGE_libupm-rgbringcoder-python3 is not set -# CONFIG_PACKAGE_libupm-rhusb is not set -# CONFIG_PACKAGE_libupm-rhusb-python3 is not set -# CONFIG_PACKAGE_libupm-rn2903 is not set -# CONFIG_PACKAGE_libupm-rn2903-python3 is not set -# CONFIG_PACKAGE_libupm-rotary is not set -# CONFIG_PACKAGE_libupm-rotary-python3 is not set -# CONFIG_PACKAGE_libupm-rotaryencoder is not set -# CONFIG_PACKAGE_libupm-rotaryencoder-python3 is not set -# CONFIG_PACKAGE_libupm-rpr220 is not set -# CONFIG_PACKAGE_libupm-rpr220-python3 is not set -# CONFIG_PACKAGE_libupm-rsc is not set -# CONFIG_PACKAGE_libupm-rsc-python3 is not set -# CONFIG_PACKAGE_libupm-scam is not set -# CONFIG_PACKAGE_libupm-scam-python3 is not set -# CONFIG_PACKAGE_libupm-sensortemplate is not set -# CONFIG_PACKAGE_libupm-sensortemplate-python3 is not set -# CONFIG_PACKAGE_libupm-servo is not set -# CONFIG_PACKAGE_libupm-servo-python3 is not set -# CONFIG_PACKAGE_libupm-sht1x is not set -# CONFIG_PACKAGE_libupm-sht1x-python3 is not set -# CONFIG_PACKAGE_libupm-si1132 is not set -# CONFIG_PACKAGE_libupm-si1132-python3 is not set -# CONFIG_PACKAGE_libupm-si114x is not set -# CONFIG_PACKAGE_libupm-si114x-python3 is not set -# CONFIG_PACKAGE_libupm-si7005 is not set -# CONFIG_PACKAGE_libupm-si7005-python3 is not set -# CONFIG_PACKAGE_libupm-slide is not set -# CONFIG_PACKAGE_libupm-slide-python3 is not set -# CONFIG_PACKAGE_libupm-sm130 is not set -# CONFIG_PACKAGE_libupm-sm130-python3 is not set -# CONFIG_PACKAGE_libupm-smartdrive is not set -# CONFIG_PACKAGE_libupm-smartdrive-python3 is not set -# CONFIG_PACKAGE_libupm-speaker is not set -# CONFIG_PACKAGE_libupm-speaker-python3 is not set -# CONFIG_PACKAGE_libupm-ssd1351 is not set -# CONFIG_PACKAGE_libupm-ssd1351-python3 is not set -# CONFIG_PACKAGE_libupm-st7735 is not set -# CONFIG_PACKAGE_libupm-st7735-python3 is not set -# CONFIG_PACKAGE_libupm-stepmotor is not set -# CONFIG_PACKAGE_libupm-stepmotor-python3 is not set -# CONFIG_PACKAGE_libupm-sx1276 is not set -# CONFIG_PACKAGE_libupm-sx1276-python3 is not set -# CONFIG_PACKAGE_libupm-sx6119 is not set -# CONFIG_PACKAGE_libupm-sx6119-python3 is not set -# CONFIG_PACKAGE_libupm-t3311 is not set -# CONFIG_PACKAGE_libupm-t3311-python3 is not set -# CONFIG_PACKAGE_libupm-t6713 is not set -# CONFIG_PACKAGE_libupm-t6713-python3 is not set -# CONFIG_PACKAGE_libupm-ta12200 is not set -# CONFIG_PACKAGE_libupm-ta12200-python3 is not set -# CONFIG_PACKAGE_libupm-tca9548a is not set -# CONFIG_PACKAGE_libupm-tca9548a-python3 is not set -# CONFIG_PACKAGE_libupm-tcs3414cs is not set -# CONFIG_PACKAGE_libupm-tcs3414cs-python3 is not set -# CONFIG_PACKAGE_libupm-tcs37727 is not set -# CONFIG_PACKAGE_libupm-tcs37727-python3 is not set -# CONFIG_PACKAGE_libupm-teams is not set -# CONFIG_PACKAGE_libupm-teams-python3 is not set -# CONFIG_PACKAGE_libupm-temperature is not set -# CONFIG_PACKAGE_libupm-temperature-python3 is not set -# CONFIG_PACKAGE_libupm-tex00 is not set -# CONFIG_PACKAGE_libupm-tex00-python3 is not set -# CONFIG_PACKAGE_libupm-th02 is not set -# CONFIG_PACKAGE_libupm-th02-python3 is not set -# CONFIG_PACKAGE_libupm-tm1637 is not set -# CONFIG_PACKAGE_libupm-tm1637-python3 is not set -# CONFIG_PACKAGE_libupm-tmp006 is not set -# CONFIG_PACKAGE_libupm-tmp006-python3 is not set -# CONFIG_PACKAGE_libupm-tsl2561 is not set -# CONFIG_PACKAGE_libupm-tsl2561-python3 is not set -# CONFIG_PACKAGE_libupm-ttp223 is not set -# CONFIG_PACKAGE_libupm-ttp223-python3 is not set -# CONFIG_PACKAGE_libupm-uartat is not set -# CONFIG_PACKAGE_libupm-uartat-python3 is not set -# CONFIG_PACKAGE_libupm-uln200xa is not set -# CONFIG_PACKAGE_libupm-uln200xa-python3 is not set -# CONFIG_PACKAGE_libupm-ultrasonic is not set -# CONFIG_PACKAGE_libupm-ultrasonic-python3 is not set -# CONFIG_PACKAGE_libupm-urm37 is not set -# CONFIG_PACKAGE_libupm-urm37-python3 is not set -# CONFIG_PACKAGE_libupm-utilities is not set -# CONFIG_PACKAGE_libupm-utilities-python3 is not set -# CONFIG_PACKAGE_libupm-vcap is not set -# CONFIG_PACKAGE_libupm-vcap-python3 is not set -# CONFIG_PACKAGE_libupm-vdiv is not set -# CONFIG_PACKAGE_libupm-vdiv-python3 is not set -# CONFIG_PACKAGE_libupm-veml6070 is not set -# CONFIG_PACKAGE_libupm-veml6070-python3 is not set -# CONFIG_PACKAGE_libupm-water is not set -# CONFIG_PACKAGE_libupm-water-python3 is not set -# CONFIG_PACKAGE_libupm-waterlevel is not set -# CONFIG_PACKAGE_libupm-waterlevel-python3 is not set -# CONFIG_PACKAGE_libupm-wfs is not set -# CONFIG_PACKAGE_libupm-wfs-python3 is not set -# CONFIG_PACKAGE_libupm-wheelencoder is not set -# CONFIG_PACKAGE_libupm-wheelencoder-python3 is not set -# CONFIG_PACKAGE_libupm-wt5001 is not set -# CONFIG_PACKAGE_libupm-wt5001-python3 is not set -# CONFIG_PACKAGE_libupm-xbee is not set -# CONFIG_PACKAGE_libupm-xbee-python3 is not set -# CONFIG_PACKAGE_libupm-yg1006 is not set -# CONFIG_PACKAGE_libupm-yg1006-python3 is not set -# CONFIG_PACKAGE_libupm-zfm20 is not set -# CONFIG_PACKAGE_libupm-zfm20-python3 is not set -# CONFIG_PACKAGE_sx1302_hal-tests is not set -# CONFIG_PACKAGE_sx1302_hal-utils is not set +CONFIG_PACKAGE_libmraa=m +CONFIG_PACKAGE_libmraa-python3=m +CONFIG_PACKAGE_libupm=m +CONFIG_PACKAGE_libupm-a110x=m +CONFIG_PACKAGE_libupm-a110x-python3=m +CONFIG_PACKAGE_libupm-abp=m +CONFIG_PACKAGE_libupm-abp-python3=m +CONFIG_PACKAGE_libupm-ad8232=m +CONFIG_PACKAGE_libupm-ad8232-python3=m +CONFIG_PACKAGE_libupm-adafruitms1438=m +CONFIG_PACKAGE_libupm-adafruitms1438-python3=m +CONFIG_PACKAGE_libupm-adafruitss=m +CONFIG_PACKAGE_libupm-adafruitss-python3=m +CONFIG_PACKAGE_libupm-adc121c021=m +CONFIG_PACKAGE_libupm-adc121c021-python3=m +CONFIG_PACKAGE_libupm-adis16448=m +CONFIG_PACKAGE_libupm-adis16448-python3=m +CONFIG_PACKAGE_libupm-ads1x15=m +CONFIG_PACKAGE_libupm-ads1x15-python3=m +CONFIG_PACKAGE_libupm-adxl335=m +CONFIG_PACKAGE_libupm-adxl335-python3=m +CONFIG_PACKAGE_libupm-adxl345=m +CONFIG_PACKAGE_libupm-adxl345-python3=m +CONFIG_PACKAGE_libupm-adxrs610=m +CONFIG_PACKAGE_libupm-adxrs610-python3=m +CONFIG_PACKAGE_libupm-am2315=m +CONFIG_PACKAGE_libupm-am2315-python3=m +CONFIG_PACKAGE_libupm-apa102=m +CONFIG_PACKAGE_libupm-apa102-python3=m +CONFIG_PACKAGE_libupm-apds9002=m +CONFIG_PACKAGE_libupm-apds9002-python3=m +CONFIG_PACKAGE_libupm-apds9930=m +CONFIG_PACKAGE_libupm-apds9930-python3=m +CONFIG_PACKAGE_libupm-at42qt1070=m +CONFIG_PACKAGE_libupm-at42qt1070-python3=m +CONFIG_PACKAGE_libupm-bh1749=m +CONFIG_PACKAGE_libupm-bh1749-python3=m +CONFIG_PACKAGE_libupm-bh1750=m +CONFIG_PACKAGE_libupm-bh1750-python3=m +CONFIG_PACKAGE_libupm-bh1792=m +CONFIG_PACKAGE_libupm-bh1792-python3=m +CONFIG_PACKAGE_libupm-biss0001=m +CONFIG_PACKAGE_libupm-biss0001-python3=m +CONFIG_PACKAGE_libupm-bma220=m +CONFIG_PACKAGE_libupm-bma220-python3=m +CONFIG_PACKAGE_libupm-bma250e=m +CONFIG_PACKAGE_libupm-bma250e-python3=m +CONFIG_PACKAGE_libupm-bmg160=m +CONFIG_PACKAGE_libupm-bmg160-python3=m +CONFIG_PACKAGE_libupm-bmi160=m +CONFIG_PACKAGE_libupm-bmi160-python3=m +CONFIG_PACKAGE_libupm-bmm150=m +CONFIG_PACKAGE_libupm-bmm150-python3=m +CONFIG_PACKAGE_libupm-bmp280=m +CONFIG_PACKAGE_libupm-bmp280-python3=m +CONFIG_PACKAGE_libupm-bmpx8x=m +CONFIG_PACKAGE_libupm-bmpx8x-python3=m +CONFIG_PACKAGE_libupm-bmx055=m +CONFIG_PACKAGE_libupm-bmx055-python3=m +CONFIG_PACKAGE_libupm-bno055=m +CONFIG_PACKAGE_libupm-bno055-python3=m +CONFIG_PACKAGE_libupm-button=m +CONFIG_PACKAGE_libupm-button-python3=m +CONFIG_PACKAGE_libupm-buzzer=m +CONFIG_PACKAGE_libupm-buzzer-python3=m +CONFIG_PACKAGE_libupm-cjq4435=m +CONFIG_PACKAGE_libupm-cjq4435-python3=m +CONFIG_PACKAGE_libupm-collision=m +CONFIG_PACKAGE_libupm-collision-python3=m +CONFIG_PACKAGE_libupm-curieimu=m +CONFIG_PACKAGE_libupm-curieimu-python3=m +CONFIG_PACKAGE_libupm-cwlsxxa=m +CONFIG_PACKAGE_libupm-cwlsxxa-python3=m +CONFIG_PACKAGE_libupm-dfrec=m +CONFIG_PACKAGE_libupm-dfrec-python3=m +CONFIG_PACKAGE_libupm-dfrorp=m +CONFIG_PACKAGE_libupm-dfrorp-python3=m +CONFIG_PACKAGE_libupm-dfrph=m +CONFIG_PACKAGE_libupm-dfrph-python3=m +CONFIG_PACKAGE_libupm-ds1307=m +CONFIG_PACKAGE_libupm-ds1307-python3=m +CONFIG_PACKAGE_libupm-ds1808lc=m +CONFIG_PACKAGE_libupm-ds1808lc-python3=m +CONFIG_PACKAGE_libupm-ds18b20=m +CONFIG_PACKAGE_libupm-ds18b20-python3=m +CONFIG_PACKAGE_libupm-ds2413=m +CONFIG_PACKAGE_libupm-ds2413-python3=m +CONFIG_PACKAGE_libupm-ecezo=m +CONFIG_PACKAGE_libupm-ecezo-python3=m +CONFIG_PACKAGE_libupm-ecs1030=m +CONFIG_PACKAGE_libupm-ecs1030-python3=m +CONFIG_PACKAGE_libupm-ehr=m +CONFIG_PACKAGE_libupm-ehr-python3=m +CONFIG_PACKAGE_libupm-eldriver=m +CONFIG_PACKAGE_libupm-eldriver-python3=m +CONFIG_PACKAGE_libupm-electromagnet=m +CONFIG_PACKAGE_libupm-electromagnet-python3=m +CONFIG_PACKAGE_libupm-emg=m +CONFIG_PACKAGE_libupm-emg-python3=m +CONFIG_PACKAGE_libupm-enc03r=m +CONFIG_PACKAGE_libupm-enc03r-python3=m +CONFIG_PACKAGE_libupm-flex=m +CONFIG_PACKAGE_libupm-flex-python3=m +CONFIG_PACKAGE_libupm-gas=m +CONFIG_PACKAGE_libupm-gas-python3=m +CONFIG_PACKAGE_libupm-gp2y0a=m +CONFIG_PACKAGE_libupm-gp2y0a-python3=m +CONFIG_PACKAGE_libupm-gprs=m +CONFIG_PACKAGE_libupm-gprs-python3=m +CONFIG_PACKAGE_libupm-gsr=m +CONFIG_PACKAGE_libupm-gsr-python3=m +CONFIG_PACKAGE_libupm-guvas12d=m +CONFIG_PACKAGE_libupm-guvas12d-python3=m +CONFIG_PACKAGE_libupm-h3lis331dl=m +CONFIG_PACKAGE_libupm-h3lis331dl-python3=m +CONFIG_PACKAGE_libupm-h803x=m +CONFIG_PACKAGE_libupm-h803x-python3=m +CONFIG_PACKAGE_libupm-hcsr04=m +CONFIG_PACKAGE_libupm-hcsr04-python3=m +CONFIG_PACKAGE_libupm-hdc1000=m +CONFIG_PACKAGE_libupm-hdc1000-python3=m +CONFIG_PACKAGE_libupm-hdxxvxta=m +CONFIG_PACKAGE_libupm-hdxxvxta-python3=m +CONFIG_PACKAGE_libupm-hka5=m +CONFIG_PACKAGE_libupm-hka5-python3=m +CONFIG_PACKAGE_libupm-hlg150h=m +CONFIG_PACKAGE_libupm-hlg150h-python3=m +CONFIG_PACKAGE_libupm-hm11=m +CONFIG_PACKAGE_libupm-hm11-python3=m +CONFIG_PACKAGE_libupm-hmc5883l=m +CONFIG_PACKAGE_libupm-hmc5883l-python3=m +CONFIG_PACKAGE_libupm-hmtrp=m +CONFIG_PACKAGE_libupm-hmtrp-python3=m +CONFIG_PACKAGE_libupm-hp20x=m +CONFIG_PACKAGE_libupm-hp20x-python3=m +CONFIG_PACKAGE_libupm-ht9170=m +CONFIG_PACKAGE_libupm-ht9170-python3=m +CONFIG_PACKAGE_libupm-htu21d=m +CONFIG_PACKAGE_libupm-htu21d-python3=m +CONFIG_PACKAGE_libupm-hwxpxx=m +CONFIG_PACKAGE_libupm-hwxpxx-python3=m +CONFIG_PACKAGE_libupm-hx711=m +CONFIG_PACKAGE_libupm-hx711-python3=m +CONFIG_PACKAGE_libupm-ili9341=m +CONFIG_PACKAGE_libupm-ili9341-python3=m +CONFIG_PACKAGE_libupm-ims=m +CONFIG_PACKAGE_libupm-ims-python3=m +CONFIG_PACKAGE_libupm-ina132=m +CONFIG_PACKAGE_libupm-ina132-python3=m +CONFIG_PACKAGE_libupm-interfaces=m +CONFIG_PACKAGE_libupm-interfaces-python3=m +CONFIG_PACKAGE_libupm-isd1820=m +CONFIG_PACKAGE_libupm-isd1820-python3=m +CONFIG_PACKAGE_libupm-itg3200=m +CONFIG_PACKAGE_libupm-itg3200-python3=m +CONFIG_PACKAGE_libupm-jhd1313m1=m +CONFIG_PACKAGE_libupm-jhd1313m1-python3=m +CONFIG_PACKAGE_libupm-joystick12=m +CONFIG_PACKAGE_libupm-joystick12-python3=m +CONFIG_PACKAGE_libupm-kx122=m +CONFIG_PACKAGE_libupm-kx122-python3=m +CONFIG_PACKAGE_libupm-kxcjk1013=m +CONFIG_PACKAGE_libupm-kxcjk1013-python3=m +CONFIG_PACKAGE_libupm-kxtj3=m +CONFIG_PACKAGE_libupm-kxtj3-python3=m +CONFIG_PACKAGE_libupm-l298=m +CONFIG_PACKAGE_libupm-l298-python3=m +CONFIG_PACKAGE_libupm-l3gd20=m +CONFIG_PACKAGE_libupm-l3gd20-python3=m +CONFIG_PACKAGE_libupm-lcd=m +CONFIG_PACKAGE_libupm-lcd-python3=m +CONFIG_PACKAGE_libupm-lcdks=m +CONFIG_PACKAGE_libupm-lcdks-python3=m +CONFIG_PACKAGE_libupm-lcm1602=m +CONFIG_PACKAGE_libupm-lcm1602-python3=m +CONFIG_PACKAGE_libupm-ldt0028=m +CONFIG_PACKAGE_libupm-ldt0028-python3=m +CONFIG_PACKAGE_libupm-led=m +CONFIG_PACKAGE_libupm-led-python3=m +CONFIG_PACKAGE_libupm-lidarlitev3=m +CONFIG_PACKAGE_libupm-lidarlitev3-python3=m +CONFIG_PACKAGE_libupm-light=m +CONFIG_PACKAGE_libupm-light-python3=m +CONFIG_PACKAGE_libupm-linefinder=m +CONFIG_PACKAGE_libupm-linefinder-python3=m +CONFIG_PACKAGE_libupm-lis2ds12=m +CONFIG_PACKAGE_libupm-lis2ds12-python3=m +CONFIG_PACKAGE_libupm-lis3dh=m +CONFIG_PACKAGE_libupm-lis3dh-python3=m +CONFIG_PACKAGE_libupm-lm35=m +CONFIG_PACKAGE_libupm-lm35-python3=m +CONFIG_PACKAGE_libupm-lol=m +CONFIG_PACKAGE_libupm-lol-python3=m +CONFIG_PACKAGE_libupm-loudness=m +CONFIG_PACKAGE_libupm-loudness-python3=m +CONFIG_PACKAGE_libupm-lp8860=m +CONFIG_PACKAGE_libupm-lp8860-python3=m +CONFIG_PACKAGE_libupm-lpd8806=m +CONFIG_PACKAGE_libupm-lpd8806-python3=m +CONFIG_PACKAGE_libupm-lsm303agr=m +CONFIG_PACKAGE_libupm-lsm303agr-python3=m +CONFIG_PACKAGE_libupm-lsm303d=m +CONFIG_PACKAGE_libupm-lsm303d-python3=m +CONFIG_PACKAGE_libupm-lsm303dlh=m +CONFIG_PACKAGE_libupm-lsm303dlh-python3=m +CONFIG_PACKAGE_libupm-lsm6ds3h=m +CONFIG_PACKAGE_libupm-lsm6ds3h-python3=m +CONFIG_PACKAGE_libupm-lsm6dsl=m +CONFIG_PACKAGE_libupm-lsm6dsl-python3=m +CONFIG_PACKAGE_libupm-lsm9ds0=m +CONFIG_PACKAGE_libupm-lsm9ds0-python3=m +CONFIG_PACKAGE_libupm-m24lr64e=m +CONFIG_PACKAGE_libupm-m24lr64e-python3=m +CONFIG_PACKAGE_libupm-mag3110=m +CONFIG_PACKAGE_libupm-mag3110-python3=m +CONFIG_PACKAGE_libupm-max30100=m +CONFIG_PACKAGE_libupm-max30100-python3=m +CONFIG_PACKAGE_libupm-max31723=m +CONFIG_PACKAGE_libupm-max31723-python3=m +CONFIG_PACKAGE_libupm-max31855=m +CONFIG_PACKAGE_libupm-max31855-python3=m +CONFIG_PACKAGE_libupm-max44000=m +CONFIG_PACKAGE_libupm-max44000-python3=m +CONFIG_PACKAGE_libupm-max44009=m +CONFIG_PACKAGE_libupm-max44009-python3=m +CONFIG_PACKAGE_libupm-max5487=m +CONFIG_PACKAGE_libupm-max5487-python3=m +CONFIG_PACKAGE_libupm-maxds3231m=m +CONFIG_PACKAGE_libupm-maxds3231m-python3=m +CONFIG_PACKAGE_libupm-maxsonarez=m +CONFIG_PACKAGE_libupm-maxsonarez-python3=m +CONFIG_PACKAGE_libupm-mb704x=m +CONFIG_PACKAGE_libupm-mb704x-python3=m +CONFIG_PACKAGE_libupm-mcp2515=m +CONFIG_PACKAGE_libupm-mcp2515-python3=m +CONFIG_PACKAGE_libupm-mcp9808=m +CONFIG_PACKAGE_libupm-mcp9808-python3=m +CONFIG_PACKAGE_libupm-md=m +CONFIG_PACKAGE_libupm-md-python3=m +CONFIG_PACKAGE_libupm-mg811=m +CONFIG_PACKAGE_libupm-mg811-python3=m +CONFIG_PACKAGE_libupm-mhz16=m +CONFIG_PACKAGE_libupm-mhz16-python3=m +CONFIG_PACKAGE_libupm-mic=m +CONFIG_PACKAGE_libupm-mic-python3=m +CONFIG_PACKAGE_libupm-micsv89=m +CONFIG_PACKAGE_libupm-micsv89-python3=m +CONFIG_PACKAGE_libupm-mlx90614=m +CONFIG_PACKAGE_libupm-mlx90614-python3=m +CONFIG_PACKAGE_libupm-mma7361=m +CONFIG_PACKAGE_libupm-mma7361-python3=m +CONFIG_PACKAGE_libupm-mma7455=m +CONFIG_PACKAGE_libupm-mma7455-python3=m +CONFIG_PACKAGE_libupm-mma7660=m +CONFIG_PACKAGE_libupm-mma7660-python3=m +CONFIG_PACKAGE_libupm-mma8x5x=m +CONFIG_PACKAGE_libupm-mma8x5x-python3=m +CONFIG_PACKAGE_libupm-mmc35240=m +CONFIG_PACKAGE_libupm-mmc35240-python3=m +CONFIG_PACKAGE_libupm-moisture=m +CONFIG_PACKAGE_libupm-moisture-python3=m +CONFIG_PACKAGE_libupm-mpl3115a2=m +CONFIG_PACKAGE_libupm-mpl3115a2-python3=m +CONFIG_PACKAGE_libupm-mpr121=m +CONFIG_PACKAGE_libupm-mpr121-python3=m +CONFIG_PACKAGE_libupm-mpu9150=m +CONFIG_PACKAGE_libupm-mpu9150-python3=m +CONFIG_PACKAGE_libupm-mq303a=m +CONFIG_PACKAGE_libupm-mq303a-python3=m +CONFIG_PACKAGE_libupm-ms5611=m +CONFIG_PACKAGE_libupm-ms5611-python3=m +CONFIG_PACKAGE_libupm-ms5803=m +CONFIG_PACKAGE_libupm-ms5803-python3=m +CONFIG_PACKAGE_libupm-my9221=m +CONFIG_PACKAGE_libupm-my9221-python3=m +CONFIG_PACKAGE_libupm-nlgpio16=m +CONFIG_PACKAGE_libupm-nlgpio16-python3=m +CONFIG_PACKAGE_libupm-nmea_gps=m +CONFIG_PACKAGE_libupm-nmea_gps-python3=m +CONFIG_PACKAGE_libupm-nrf24l01=m +CONFIG_PACKAGE_libupm-nrf24l01-python3=m +CONFIG_PACKAGE_libupm-nrf8001=m +CONFIG_PACKAGE_libupm-nrf8001-python3=m +CONFIG_PACKAGE_libupm-nunchuck=m +CONFIG_PACKAGE_libupm-nunchuck-python3=m +CONFIG_PACKAGE_libupm-o2=m +CONFIG_PACKAGE_libupm-o2-python3=m +CONFIG_PACKAGE_libupm-otp538u=m +CONFIG_PACKAGE_libupm-otp538u-python3=m +CONFIG_PACKAGE_libupm-ozw=m +CONFIG_PACKAGE_libupm-ozw-python3=m +CONFIG_PACKAGE_libupm-p9813=m +CONFIG_PACKAGE_libupm-p9813-python3=m +CONFIG_PACKAGE_libupm-pca9685=m +CONFIG_PACKAGE_libupm-pca9685-python3=m +CONFIG_PACKAGE_libupm-pn532=m +CONFIG_PACKAGE_libupm-pn532-python3=m +CONFIG_PACKAGE_libupm-ppd42ns=m +CONFIG_PACKAGE_libupm-ppd42ns-python3=m +CONFIG_PACKAGE_libupm-pulsensor=m +CONFIG_PACKAGE_libupm-pulsensor-python3=m +CONFIG_PACKAGE_libupm-relay=m +CONFIG_PACKAGE_libupm-relay-python3=m +CONFIG_PACKAGE_libupm-rf22=m +CONFIG_PACKAGE_libupm-rf22-python3=m +CONFIG_PACKAGE_libupm-rfr359f=m +CONFIG_PACKAGE_libupm-rfr359f-python3=m +CONFIG_PACKAGE_libupm-rgbringcoder=m +CONFIG_PACKAGE_libupm-rgbringcoder-python3=m +CONFIG_PACKAGE_libupm-rhusb=m +CONFIG_PACKAGE_libupm-rhusb-python3=m +CONFIG_PACKAGE_libupm-rn2903=m +CONFIG_PACKAGE_libupm-rn2903-python3=m +CONFIG_PACKAGE_libupm-rotary=m +CONFIG_PACKAGE_libupm-rotary-python3=m +CONFIG_PACKAGE_libupm-rotaryencoder=m +CONFIG_PACKAGE_libupm-rotaryencoder-python3=m +CONFIG_PACKAGE_libupm-rpr220=m +CONFIG_PACKAGE_libupm-rpr220-python3=m +CONFIG_PACKAGE_libupm-rsc=m +CONFIG_PACKAGE_libupm-rsc-python3=m +CONFIG_PACKAGE_libupm-scam=m +CONFIG_PACKAGE_libupm-scam-python3=m +CONFIG_PACKAGE_libupm-sensortemplate=m +CONFIG_PACKAGE_libupm-sensortemplate-python3=m +CONFIG_PACKAGE_libupm-servo=m +CONFIG_PACKAGE_libupm-servo-python3=m +CONFIG_PACKAGE_libupm-sht1x=m +CONFIG_PACKAGE_libupm-sht1x-python3=m +CONFIG_PACKAGE_libupm-si1132=m +CONFIG_PACKAGE_libupm-si1132-python3=m +CONFIG_PACKAGE_libupm-si114x=m +CONFIG_PACKAGE_libupm-si114x-python3=m +CONFIG_PACKAGE_libupm-si7005=m +CONFIG_PACKAGE_libupm-si7005-python3=m +CONFIG_PACKAGE_libupm-slide=m +CONFIG_PACKAGE_libupm-slide-python3=m +CONFIG_PACKAGE_libupm-sm130=m +CONFIG_PACKAGE_libupm-sm130-python3=m +CONFIG_PACKAGE_libupm-smartdrive=m +CONFIG_PACKAGE_libupm-smartdrive-python3=m +CONFIG_PACKAGE_libupm-speaker=m +CONFIG_PACKAGE_libupm-speaker-python3=m +CONFIG_PACKAGE_libupm-ssd1351=m +CONFIG_PACKAGE_libupm-ssd1351-python3=m +CONFIG_PACKAGE_libupm-st7735=m +CONFIG_PACKAGE_libupm-st7735-python3=m +CONFIG_PACKAGE_libupm-stepmotor=m +CONFIG_PACKAGE_libupm-stepmotor-python3=m +CONFIG_PACKAGE_libupm-sx1276=m +CONFIG_PACKAGE_libupm-sx1276-python3=m +CONFIG_PACKAGE_libupm-sx6119=m +CONFIG_PACKAGE_libupm-sx6119-python3=m +CONFIG_PACKAGE_libupm-t3311=m +CONFIG_PACKAGE_libupm-t3311-python3=m +CONFIG_PACKAGE_libupm-t6713=m +CONFIG_PACKAGE_libupm-t6713-python3=m +CONFIG_PACKAGE_libupm-ta12200=m +CONFIG_PACKAGE_libupm-ta12200-python3=m +CONFIG_PACKAGE_libupm-tca9548a=m +CONFIG_PACKAGE_libupm-tca9548a-python3=m +CONFIG_PACKAGE_libupm-tcs3414cs=m +CONFIG_PACKAGE_libupm-tcs3414cs-python3=m +CONFIG_PACKAGE_libupm-tcs37727=m +CONFIG_PACKAGE_libupm-tcs37727-python3=m +CONFIG_PACKAGE_libupm-teams=m +CONFIG_PACKAGE_libupm-teams-python3=m +CONFIG_PACKAGE_libupm-temperature=m +CONFIG_PACKAGE_libupm-temperature-python3=m +CONFIG_PACKAGE_libupm-tex00=m +CONFIG_PACKAGE_libupm-tex00-python3=m +CONFIG_PACKAGE_libupm-th02=m +CONFIG_PACKAGE_libupm-th02-python3=m +CONFIG_PACKAGE_libupm-tm1637=m +CONFIG_PACKAGE_libupm-tm1637-python3=m +CONFIG_PACKAGE_libupm-tmp006=m +CONFIG_PACKAGE_libupm-tmp006-python3=m +CONFIG_PACKAGE_libupm-tsl2561=m +CONFIG_PACKAGE_libupm-tsl2561-python3=m +CONFIG_PACKAGE_libupm-ttp223=m +CONFIG_PACKAGE_libupm-ttp223-python3=m +CONFIG_PACKAGE_libupm-uartat=m +CONFIG_PACKAGE_libupm-uartat-python3=m +CONFIG_PACKAGE_libupm-uln200xa=m +CONFIG_PACKAGE_libupm-uln200xa-python3=m +CONFIG_PACKAGE_libupm-ultrasonic=m +CONFIG_PACKAGE_libupm-ultrasonic-python3=m +CONFIG_PACKAGE_libupm-urm37=m +CONFIG_PACKAGE_libupm-urm37-python3=m +CONFIG_PACKAGE_libupm-utilities=m +CONFIG_PACKAGE_libupm-utilities-python3=m +CONFIG_PACKAGE_libupm-vcap=m +CONFIG_PACKAGE_libupm-vcap-python3=m +CONFIG_PACKAGE_libupm-vdiv=m +CONFIG_PACKAGE_libupm-vdiv-python3=m +CONFIG_PACKAGE_libupm-veml6070=m +CONFIG_PACKAGE_libupm-veml6070-python3=m +CONFIG_PACKAGE_libupm-water=m +CONFIG_PACKAGE_libupm-water-python3=m +CONFIG_PACKAGE_libupm-waterlevel=m +CONFIG_PACKAGE_libupm-waterlevel-python3=m +CONFIG_PACKAGE_libupm-wfs=m +CONFIG_PACKAGE_libupm-wfs-python3=m +CONFIG_PACKAGE_libupm-wheelencoder=m +CONFIG_PACKAGE_libupm-wheelencoder-python3=m +CONFIG_PACKAGE_libupm-wt5001=m +CONFIG_PACKAGE_libupm-wt5001-python3=m +CONFIG_PACKAGE_libupm-xbee=m +CONFIG_PACKAGE_libupm-xbee-python3=m +CONFIG_PACKAGE_libupm-yg1006=m +CONFIG_PACKAGE_libupm-yg1006-python3=m +CONFIG_PACKAGE_libupm-zfm20=m +CONFIG_PACKAGE_libupm-zfm20-python3=m +CONFIG_PACKAGE_sx1302_hal-tests=m +CONFIG_PACKAGE_sx1302_hal-utils=m # end of IoT # # Languages # -# CONFIG_PACKAGE_libyaml is not set +CONFIG_PACKAGE_libyaml=m # end of Languages # # LibElektra # -# CONFIG_PACKAGE_libelektra-core is not set -# CONFIG_PACKAGE_libelektra-cpp is not set -# CONFIG_PACKAGE_libelektra-crypto is not set -# CONFIG_PACKAGE_libelektra-curlget is not set -# CONFIG_PACKAGE_libelektra-dbus is not set -# CONFIG_PACKAGE_libelektra-ev is not set -# CONFIG_PACKAGE_libelektra-extra is not set -# CONFIG_PACKAGE_libelektra-lua is not set -# CONFIG_PACKAGE_libelektra-plugins is not set -# CONFIG_PACKAGE_libelektra-python3 is not set -# CONFIG_PACKAGE_libelektra-resolvers is not set -# CONFIG_PACKAGE_libelektra-uv is not set -# CONFIG_PACKAGE_libelektra-xerces is not set -# CONFIG_PACKAGE_libelektra-xml is not set -# CONFIG_PACKAGE_libelektra-yajl is not set -# CONFIG_PACKAGE_libelektra-yamlcpp is not set -# CONFIG_PACKAGE_libelektra-zmq is not set +CONFIG_PACKAGE_libelektra-core=m +CONFIG_PACKAGE_libelektra-cpp=m +CONFIG_PACKAGE_libelektra-crypto=m +CONFIG_PACKAGE_libelektra-curlget=m +CONFIG_PACKAGE_libelektra-dbus=m +CONFIG_PACKAGE_libelektra-ev=m +CONFIG_PACKAGE_libelektra-extra=m +CONFIG_PACKAGE_libelektra-lua=m +CONFIG_PACKAGE_libelektra-plugins=m +CONFIG_PACKAGE_libelektra-python3=m +CONFIG_PACKAGE_libelektra-resolvers=m +CONFIG_PACKAGE_libelektra-uv=m +CONFIG_PACKAGE_libelektra-xerces=m +CONFIG_PACKAGE_libelektra-xml=m +CONFIG_PACKAGE_libelektra-yajl=m +CONFIG_PACKAGE_libelektra-yamlcpp=m +CONFIG_PACKAGE_libelektra-zmq=m # end of LibElektra # # Networking # -# CONFIG_PACKAGE_libdcwproto is not set -# CONFIG_PACKAGE_libdcwsocket is not set -# CONFIG_PACKAGE_libsctp is not set +CONFIG_PACKAGE_libdcwproto=m +CONFIG_PACKAGE_libdcwsocket=m +CONFIG_PACKAGE_libsctp=m CONFIG_PACKAGE_libslirp=m -# CONFIG_PACKAGE_libuhttpd-mbedtls is not set -# CONFIG_PACKAGE_libuhttpd-nossl is not set -# CONFIG_PACKAGE_libuhttpd-openssl is not set -# CONFIG_PACKAGE_libuhttpd-wolfssl is not set -# CONFIG_PACKAGE_libulfius-gnutls is not set -# CONFIG_PACKAGE_libulfius-nossl is not set -# CONFIG_PACKAGE_libunbound is not set -# CONFIG_PACKAGE_libuwsc-mbedtls is not set -# CONFIG_PACKAGE_libuwsc-nossl is not set -# CONFIG_PACKAGE_libuwsc-openssl is not set -# CONFIG_PACKAGE_libuwsc-wolfssl is not set +CONFIG_PACKAGE_libuhttpd-mbedtls=m +CONFIG_PACKAGE_libuhttpd-nossl=m +CONFIG_PACKAGE_libuhttpd-openssl=m +CONFIG_PACKAGE_libuhttpd-wolfssl=m +CONFIG_PACKAGE_libulfius-gnutls=m +CONFIG_PACKAGE_libulfius-nossl=m +CONFIG_PACKAGE_libunbound=m +# CONFIG_PACKAGE_libunbound_dnscrypt is not set +CONFIG_PACKAGE_libunbound_ipset=y +CONFIG_PACKAGE_libunbound_libevent=y +CONFIG_PACKAGE_libunbound_libpthread=y +# CONFIG_PACKAGE_libunbound_nghttp2 is not set +# CONFIG_PACKAGE_libunbound_pythonmodule is not set +# CONFIG_PACKAGE_libunbound_subnet is not set +# CONFIG_PACKAGE_libunbound_dnstap is not set +CONFIG_PACKAGE_libuwsc-mbedtls=m + +# +# Configuration +# +# CONFIG_LIBUWSC_mbedtls_LUA_BINDING is not set +# end of Configuration + +CONFIG_PACKAGE_libuwsc-nossl=m + +# +# Configuration +# +# CONFIG_LIBUWSC_nossl_LUA_BINDING is not set +# end of Configuration + +CONFIG_PACKAGE_libuwsc-openssl=m + +# +# Configuration +# +# CONFIG_LIBUWSC_openssl_LUA_BINDING is not set +# end of Configuration + +CONFIG_PACKAGE_libuwsc-wolfssl=m + +# +# Configuration +# +# CONFIG_LIBUWSC_wolfssl_LUA_BINDING is not set +# end of Configuration # end of Networking # # SSL # -# CONFIG_PACKAGE_libgnutls is not set -# CONFIG_PACKAGE_libgnutls-dane is not set +CONFIG_PACKAGE_libgnutls=m + +# +# Configuration +# +CONFIG_GNUTLS_DTLS_SRTP=y +CONFIG_GNUTLS_ALPN=y +CONFIG_GNUTLS_OCSP=y +# CONFIG_GNUTLS_CRYPTODEV is not set +CONFIG_GNUTLS_HEARTBEAT=y +# CONFIG_GNUTLS_SRP is not set +CONFIG_GNUTLS_PSK=y +CONFIG_GNUTLS_ANON=y +# CONFIG_GNUTLS_TPM is not set +# CONFIG_GNUTLS_PKCS11 is not set +# CONFIG_GNUTLS_EXT_LIBTASN1 is not set +# end of Configuration + +CONFIG_PACKAGE_libgnutls-dane=m CONFIG_PACKAGE_libmbedtls=y # @@ -4372,6 +5162,8 @@ CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y # CONFIG_MBEDTLS_PLATFORM_C is not set # CONFIG_MBEDTLS_SELF_TEST is not set # CONFIG_MBEDTLS_SSL_TRUNCATED_HMAC is not set +CONFIG_MBEDTLS_THREADING_C=y +CONFIG_MBEDTLS_THREADING_PTHREAD=y # CONFIG_MBEDTLS_VERSION_C is not set # CONFIG_MBEDTLS_VERSION_FEATURES is not set @@ -4380,7 +5172,7 @@ CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y # CONFIG_MBEDTLS_ENTROPY_FORCE_SHA256=y # CONFIG_MBEDTLS_SSL_RENEGOTIATION is not set -# CONFIG_PACKAGE_libnss is not set +CONFIG_PACKAGE_libnss=m CONFIG_PACKAGE_libopenssl=m # @@ -4442,7 +5234,7 @@ CONFIG_PACKAGE_libopenssl-devcrypto=m CONFIG_PACKAGE_libopenssl-gost_engine=m CONFIG_PACKAGE_libopenssl-legacy=m CONFIG_PACKAGE_libopenssl-padlock=m -# CONFIG_PACKAGE_libwolfssl is not set +CONFIG_PACKAGE_libwolfssl=m # # wolfSSL Library Configuration @@ -4462,143 +5254,278 @@ CONFIG_WOLFSSL_HAS_ECC25519=y # CONFIG_WOLFSSL_HAS_ECC448 is not set CONFIG_WOLFSSL_HAS_OPENVPN=y CONFIG_WOLFSSL_ALT_NAMES=y +CONFIG_WOLFSSL_HAS_NO_HW=y +# CONFIG_WOLFSSL_HAS_AFALG is not set +# CONFIG_WOLFSSL_HAS_DEVCRYPTO_CBC is not set +# CONFIG_WOLFSSL_HAS_DEVCRYPTO_AES is not set +# CONFIG_WOLFSSL_HAS_DEVCRYPTO_FULL is not set # end of wolfSSL Library Configuration # CONFIG_PACKAGE_libwolfsslcpu-crypto is not set +CONFIG_PACKAGE_libwolfssl-benchmark=m # end of SSL # # Sound # -# CONFIG_PACKAGE_alsa-ucm-conf is not set -# CONFIG_PACKAGE_liblo is not set +CONFIG_PACKAGE_alsa-ucm-conf=m +CONFIG_PACKAGE_liblo=m # end of Sound # # Telephony # -# CONFIG_PACKAGE_bcg729 is not set +CONFIG_PACKAGE_bcg729=m # CONFIG_PACKAGE_dahdi-tools-libtonezone is not set -# CONFIG_PACKAGE_gsmlib is not set -# CONFIG_PACKAGE_libctb is not set +CONFIG_PACKAGE_gsmlib=m +CONFIG_PACKAGE_libctb=m # CONFIG_PACKAGE_libfreetdm is not set -# CONFIG_PACKAGE_libiksemel is not set -# CONFIG_PACKAGE_libks is not set -# CONFIG_PACKAGE_libosip2 is not set -# CONFIG_PACKAGE_libpj is not set -# CONFIG_PACKAGE_libpjlib-util is not set -# CONFIG_PACKAGE_libpjmedia is not set -# CONFIG_PACKAGE_libpjnath is not set -# CONFIG_PACKAGE_libpjsip is not set -# CONFIG_PACKAGE_libpjsip-simple is not set -# CONFIG_PACKAGE_libpjsip-ua is not set -# CONFIG_PACKAGE_libpjsua is not set -# CONFIG_PACKAGE_libpjsua2 is not set -# CONFIG_PACKAGE_libre is not set -# CONFIG_PACKAGE_librem is not set -# CONFIG_PACKAGE_libspandsp is not set -# CONFIG_PACKAGE_libspandsp3 is not set -# CONFIG_PACKAGE_libsrtp2 is not set -# CONFIG_PACKAGE_signalwire-client-c is not set -# CONFIG_PACKAGE_sofia-sip is not set +CONFIG_PACKAGE_libiksemel=m +CONFIG_PACKAGE_libks=m +CONFIG_PACKAGE_libosip2=m +CONFIG_PACKAGE_libpj=m +CONFIG_PACKAGE_libpjlib-util=m +CONFIG_PACKAGE_libpjmedia=m +CONFIG_PACKAGE_libpjnath=m +CONFIG_PACKAGE_libpjsip=m +CONFIG_PACKAGE_libpjsip-simple=m +CONFIG_PACKAGE_libpjsip-ua=m +CONFIG_PACKAGE_libpjsua=m +CONFIG_PACKAGE_libpjsua2=m +CONFIG_PACKAGE_libre=m +CONFIG_PACKAGE_librem=m +CONFIG_PACKAGE_libspandsp=m +CONFIG_PACKAGE_libspandsp3=m +CONFIG_PACKAGE_libsrtp2=m +CONFIG_PACKAGE_signalwire-client-c=m +CONFIG_PACKAGE_sofia-sip=m # end of Telephony # # libimobiledevice # -# CONFIG_PACKAGE_libimobiledevice is not set -# CONFIG_PACKAGE_libirecovery is not set -# CONFIG_PACKAGE_libplist is not set -# CONFIG_PACKAGE_libusbmuxd is not set +CONFIG_PACKAGE_libimobiledevice=m +CONFIG_PACKAGE_libirecovery=m +CONFIG_PACKAGE_libplist=m +CONFIG_PACKAGE_libusbmuxd=m # end of libimobiledevice -# CONFIG_PACKAGE_acsccid is not set -# CONFIG_PACKAGE_alsa-lib is not set +CONFIG_PACKAGE_acsccid=m +CONFIG_PACKAGE_alsa-lib=m # CONFIG_PACKAGE_argp-standalone is not set -# CONFIG_PACKAGE_bind-libs is not set -# CONFIG_PACKAGE_bluez-libs is not set -# CONFIG_PACKAGE_boost is not set +CONFIG_PACKAGE_bind-libs=m +CONFIG_PACKAGE_bluez-libs=m +CONFIG_PACKAGE_boost=m # CONFIG_boost-context-exclude is not set # CONFIG_boost-coroutine-exclude is not set # CONFIG_boost-fiber-exclude is not set -# CONFIG_PACKAGE_boringssl is not set + +# +# Select Boost Options +# + +# +# Boost compilation options. +# +# CONFIG_boost-compile-visibility-global is not set +# CONFIG_boost-compile-visibility-protected is not set +CONFIG_boost-compile-visibility-hidden=y +# CONFIG_boost-shared-libs is not set +# CONFIG_boost-static-libs is not set +CONFIG_boost-static-and-shared-libs=y +CONFIG_boost-runtime-shared=y +CONFIG_boost-variant-release=y +# CONFIG_boost-variant-debug is not set +# CONFIG_boost-variant-profile is not set +# CONFIG_boost-use-name-tags is not set +# end of Select Boost Options + +# +# Select Boost libraries +# + +# +# Libraries +# +CONFIG_boost-libs-all=y +CONFIG_boost-test-pkg=y +CONFIG_boost-graph-parallel=y +CONFIG_PACKAGE_boost-atomic=m +CONFIG_PACKAGE_boost-chrono=m +CONFIG_PACKAGE_boost-cobalt=m +CONFIG_PACKAGE_boost-container=m +CONFIG_PACKAGE_boost-context=m +CONFIG_PACKAGE_boost-contract=m +CONFIG_PACKAGE_boost-coroutine=m +CONFIG_PACKAGE_boost-date_time=m +CONFIG_PACKAGE_boost-fiber=m +CONFIG_PACKAGE_boost-filesystem=m +CONFIG_PACKAGE_boost-graph=m +CONFIG_PACKAGE_boost-iostreams=m +CONFIG_PACKAGE_boost-json=m +CONFIG_PACKAGE_boost-locale=m +CONFIG_PACKAGE_boost-log=m +CONFIG_PACKAGE_boost-math=m +CONFIG_PACKAGE_boost-nowide=m +CONFIG_PACKAGE_boost-program_options=m +CONFIG_PACKAGE_boost-python3=m +CONFIG_PACKAGE_boost-random=m +CONFIG_PACKAGE_boost-regex=m +CONFIG_PACKAGE_boost-serialization=m +CONFIG_PACKAGE_boost-wserialization=m +CONFIG_PACKAGE_boost-stacktrace=m +CONFIG_PACKAGE_boost-system=m +CONFIG_PACKAGE_boost-thread=m +CONFIG_PACKAGE_boost-timer=m +CONFIG_PACKAGE_boost-type_erasure=m +CONFIG_PACKAGE_boost-url=m +CONFIG_PACKAGE_boost-wave=m +# end of Select Boost libraries + +CONFIG_PACKAGE_boost-libs=m +CONFIG_PACKAGE_boost-test=m +CONFIG_PACKAGE_boringssl=m CONFIG_PACKAGE_cJSON=m -# CONFIG_PACKAGE_ccid is not set -# CONFIG_PACKAGE_check is not set +CONFIG_PACKAGE_ccid=m +CONFIG_PACKAGE_check=m CONFIG_PACKAGE_confuse=m -# CONFIG_PACKAGE_czmq is not set -# CONFIG_PACKAGE_davici is not set -# CONFIG_PACKAGE_dtndht is not set +CONFIG_PACKAGE_czmq=m +CONFIG_PACKAGE_davici=m +CONFIG_PACKAGE_dtndht=m CONFIG_PACKAGE_efivar=m -# CONFIG_PACKAGE_getdns is not set -# CONFIG_PACKAGE_giflib is not set +CONFIG_PACKAGE_getdns=m + +# +# Configuration +# +# CONFIG_GETDNS_BUILD_LIBEVENT2 is not set +CONFIG_GETDNS_ENABLE_STUB_ONLY=y +# CONFIG_GETDNS_ENABLE_IDN_LIBIDN2 is not set +# end of Configuration + +CONFIG_PACKAGE_giflib=m CONFIG_PACKAGE_glib2=m -# CONFIG_PACKAGE_google-authenticator-libpam is not set +CONFIG_PACKAGE_gnu-efi=m +CONFIG_PACKAGE_google-authenticator-libpam=m CONFIG_PACKAGE_gperftools-headers=m CONFIG_PACKAGE_gperftools-runtime=m -# CONFIG_PACKAGE_hidapi is not set -# CONFIG_PACKAGE_hyperscan-headers is not set -# CONFIG_PACKAGE_hyperscan-runtime is not set -# CONFIG_PACKAGE_ibrcommon is not set -# CONFIG_PACKAGE_ibrdtn is not set -# CONFIG_PACKAGE_icu is not set -# CONFIG_PACKAGE_icu-data-tools is not set -# CONFIG_PACKAGE_icu-full-data is not set +CONFIG_PACKAGE_hidapi=m +CONFIG_PACKAGE_hyperscan-headers=m +CONFIG_PACKAGE_hyperscan-runtime=m +CONFIG_PACKAGE_ibrcommon=m +CONFIG_PACKAGE_ibrdtn=m +CONFIG_PACKAGE_icu=m +CONFIG_PACKAGE_icu-data-tools=m +CONFIG_PACKAGE_icu-full-data=m CONFIG_PACKAGE_jansson=y -# CONFIG_PACKAGE_json-glib is not set -# CONFIG_PACKAGE_jsoncpp is not set -# CONFIG_PACKAGE_knot-libs is not set -# CONFIG_PACKAGE_knot-libzscanner is not set -# CONFIG_PACKAGE_libaio is not set -# CONFIG_PACKAGE_libantlr3c is not set -# CONFIG_PACKAGE_libao is not set -# CONFIG_PACKAGE_libapparmor is not set -# CONFIG_PACKAGE_libapr is not set -# CONFIG_PACKAGE_libaprutil is not set -# CONFIG_PACKAGE_libarchive is not set -# CONFIG_PACKAGE_libarchive-noopenssl is not set +CONFIG_PACKAGE_json-glib=m +CONFIG_PACKAGE_jsoncpp=m +CONFIG_PACKAGE_knot-libs=m +CONFIG_PACKAGE_knot-libzscanner=m +CONFIG_PACKAGE_libaio=m +CONFIG_PACKAGE_libantlr3c=m +CONFIG_PACKAGE_libao=m +CONFIG_PACKAGE_libapparmor=m +CONFIG_PACKAGE_libapr=m +CONFIG_PACKAGE_libaprutil=m +CONFIG_PACKAGE_libaprutil-crypto-openssl=m +CONFIG_PACKAGE_libaprutil-dbd-mysql=m +CONFIG_PACKAGE_libaprutil-dbd-odbc=m +CONFIG_PACKAGE_libaprutil-dbd-pgsql=m +CONFIG_PACKAGE_libaprutil-dbd-sqlite3=m +CONFIG_PACKAGE_libaprutil-dbm-gdbm=m +CONFIG_PACKAGE_libaprutil-ldap=m +CONFIG_PACKAGE_libarchive=m +CONFIG_PACKAGE_libarchive-noopenssl=m # CONFIG_PACKAGE_libasm is not set -# CONFIG_PACKAGE_libassuan is not set -# CONFIG_PACKAGE_libatasmart is not set -# CONFIG_PACKAGE_libaudit is not set -# CONFIG_PACKAGE_libauparse is not set -# CONFIG_PACKAGE_libavahi-client is not set -# CONFIG_PACKAGE_libavahi-dbus-support is not set -# CONFIG_PACKAGE_libavahi-nodbus-support is not set -# CONFIG_PACKAGE_libbase16384 is not set +CONFIG_PACKAGE_libassuan=m +CONFIG_PACKAGE_libatasmart=m +CONFIG_PACKAGE_libaudit=m +CONFIG_PACKAGE_libauparse=m +CONFIG_PACKAGE_libavahi-client=m +CONFIG_PACKAGE_libavahi-dbus-support=m +CONFIG_PACKAGE_libavahi-nodbus-support=m +CONFIG_PACKAGE_libbase16384=m CONFIG_PACKAGE_libbfd=m CONFIG_PACKAGE_libblkid=y CONFIG_PACKAGE_libblobmsg-json=y CONFIG_PACKAGE_libbpf=m -# CONFIG_PACKAGE_libbsd is not set +CONFIG_PACKAGE_libbsd=m CONFIG_PACKAGE_libcap=m CONFIG_PACKAGE_libcap-bin=m CONFIG_PACKAGE_libcap-bin-capsh-shell="/bin/sh" -# CONFIG_PACKAGE_libcap-ng is not set +CONFIG_PACKAGE_libcap-ng=m +CONFIG_PACKAGE_libcap-ng-bin=m CONFIG_PACKAGE_libcares=m -# CONFIG_PACKAGE_libcbor is not set -# CONFIG_PACKAGE_libcgroup is not set +CONFIG_PACKAGE_libcbor=m +CONFIG_PACKAGE_libcgroup=m # CONFIG_PACKAGE_libcharset is not set -# CONFIG_PACKAGE_libcli is not set -# CONFIG_PACKAGE_libcoap is not set +CONFIG_PACKAGE_libcli=m +CONFIG_PACKAGE_libcoap=m CONFIG_PACKAGE_libcomerr=y -# CONFIG_PACKAGE_libconfig is not set +CONFIG_PACKAGE_libconfig=m CONFIG_PACKAGE_libctf=m -# CONFIG_PACKAGE_libcurl is not set -# CONFIG_PACKAGE_libcurl-gnutls is not set -# CONFIG_PACKAGE_libdaemon is not set -# CONFIG_PACKAGE_libdaq3 is not set -# CONFIG_PACKAGE_libdb47 is not set -# CONFIG_PACKAGE_libdb47xx is not set -# CONFIG_PACKAGE_libdbi is not set -# CONFIG_PACKAGE_libdbus is not set -# CONFIG_PACKAGE_libdeflate is not set -CONFIG_PACKAGE_libdevmapper=y -# CONFIG_PACKAGE_libdevmapper-selinux is not set -# CONFIG_PACKAGE_libdht is not set -# CONFIG_PACKAGE_libdmapsharing is not set -# CONFIG_PACKAGE_libdnet is not set -CONFIG_PACKAGE_libdrm=y +CONFIG_PACKAGE_libcurl=m + +# +# SSL support +# +CONFIG_LIBCURL_MBEDTLS=y +# CONFIG_LIBCURL_WOLFSSL is not set +# CONFIG_LIBCURL_OPENSSL is not set +# CONFIG_LIBCURL_GNUTLS is not set +# CONFIG_LIBCURL_NOSSL is not set + +# +# Supported protocols +# +# CONFIG_LIBCURL_DICT is not set +CONFIG_LIBCURL_FILE=y +CONFIG_LIBCURL_FTP=y +# CONFIG_LIBCURL_GOPHER is not set +CONFIG_LIBCURL_HTTP=y +CONFIG_LIBCURL_COOKIES=y +# CONFIG_LIBCURL_IMAP is not set +# CONFIG_LIBCURL_LDAP is not set +# CONFIG_LIBCURL_POP3 is not set +# CONFIG_LIBCURL_RTSP is not set +# CONFIG_LIBCURL_SSH2 is not set +CONFIG_LIBCURL_NO_SMB="!" +# CONFIG_LIBCURL_SMTP is not set +# CONFIG_LIBCURL_TELNET is not set +# CONFIG_LIBCURL_TFTP is not set +CONFIG_LIBCURL_NGHTTP2=y + +# +# Miscellaneous +# +CONFIG_LIBCURL_PROXY=y +# CONFIG_LIBCURL_CRYPTO_AUTH is not set +# CONFIG_LIBCURL_TLS_SRP is not set +# CONFIG_LIBCURL_LIBIDN2 is not set +# CONFIG_LIBCURL_THREADED_RESOLVER is not set +# CONFIG_LIBCURL_ZLIB is not set +# CONFIG_LIBCURL_ZSTD is not set +CONFIG_LIBCURL_UNIX_SOCKETS=y +# CONFIG_LIBCURL_LIBCURL_OPTION is not set +# CONFIG_LIBCURL_VERBOSE is not set +CONFIG_PACKAGE_libcurl-gnutls=m +CONFIG_PACKAGE_libdaemon=m +CONFIG_PACKAGE_libdaq3=m +CONFIG_PACKAGE_libdb47=m +CONFIG_PACKAGE_libdb47xx=m +CONFIG_PACKAGE_libdbi=m +CONFIG_PACKAGE_libdbd-mysql=m +CONFIG_PACKAGE_libdbd-pgsql=m +CONFIG_PACKAGE_libdbd-sqlite3=m +CONFIG_PACKAGE_libdbus=m +CONFIG_PACKAGE_libdeflate=m +CONFIG_PACKAGE_libdevmapper=m +CONFIG_PACKAGE_libdevmapper-selinux=m +CONFIG_PACKAGE_libdht=m +CONFIG_PACKAGE_libdmapsharing=m +CONFIG_PACKAGE_libdnet=m +CONFIG_PACKAGE_libdrm=m # # Select libdrm build options @@ -4610,168 +5537,340 @@ CONFIG_LIBDRM_RADEON=y CONFIG_PACKAGE_libdw=m CONFIG_PACKAGE_libe2p=y -# CONFIG_PACKAGE_libecdsautil is not set -# CONFIG_PACKAGE_libedit is not set +CONFIG_PACKAGE_libecdsautil=m +CONFIG_PACKAGE_libedit=m CONFIG_PACKAGE_libelf=m -# CONFIG_PACKAGE_libesmtp is not set -# CONFIG_PACKAGE_libestr is not set -# CONFIG_PACKAGE_libev is not set -# CONFIG_PACKAGE_libevdev is not set -# CONFIG_PACKAGE_libevent2 is not set -# CONFIG_PACKAGE_libevent2-core is not set -# CONFIG_PACKAGE_libevent2-extra is not set -# CONFIG_PACKAGE_libevent2-openssl is not set -# CONFIG_PACKAGE_libevent2-pthreads is not set -# CONFIG_PACKAGE_libexif is not set -# CONFIG_PACKAGE_libexpat is not set -# CONFIG_PACKAGE_libexslt is not set +CONFIG_PACKAGE_libesmtp=m +CONFIG_PACKAGE_libestr=m +CONFIG_PACKAGE_libev=m +CONFIG_PACKAGE_libevdev=m +CONFIG_PACKAGE_libevent2=m +CONFIG_PACKAGE_libevent2-core=m +CONFIG_PACKAGE_libevent2-extra=m +CONFIG_PACKAGE_libevent2-openssl=m +CONFIG_PACKAGE_libevent2-pthreads=m +CONFIG_PACKAGE_libexif=m +CONFIG_PACKAGE_libexpat=y +CONFIG_PACKAGE_libexslt=m CONFIG_PACKAGE_libext2fs=y -# CONFIG_PACKAGE_libextractor is not set +CONFIG_PACKAGE_libextractor=m +CONFIG_PACKAGE_libextractor-plugin-archive=m +CONFIG_PACKAGE_libextractor-plugin-deb=m +CONFIG_PACKAGE_libextractor-plugin-dvi=m +CONFIG_PACKAGE_libextractor-plugin-flac=m +CONFIG_PACKAGE_libextractor-plugin-gif=m +CONFIG_PACKAGE_libextractor-plugin-gstreamer=m +CONFIG_PACKAGE_libextractor-plugin-it=m +CONFIG_PACKAGE_libextractor-plugin-jpeg=m +CONFIG_PACKAGE_libextractor-plugin-man=m +CONFIG_PACKAGE_libextractor-plugin-mime=m +CONFIG_PACKAGE_libextractor-plugin-mpeg=m +CONFIG_PACKAGE_libextractor-plugin-nsf=m +CONFIG_PACKAGE_libextractor-plugin-nsfe=m +CONFIG_PACKAGE_libextractor-plugin-odf=m +CONFIG_PACKAGE_libextractor-plugin-ogg=m +CONFIG_PACKAGE_libextractor-plugin-png=m +CONFIG_PACKAGE_libextractor-plugin-ps=m +CONFIG_PACKAGE_libextractor-plugin-riff=m +CONFIG_PACKAGE_libextractor-plugin-s3m=m +CONFIG_PACKAGE_libextractor-plugin-sid=m +CONFIG_PACKAGE_libextractor-plugin-tiff=m +CONFIG_PACKAGE_libextractor-plugin-wav=m +CONFIG_PACKAGE_libextractor-plugin-xm=m +CONFIG_PACKAGE_libextractor-plugin-zip=m CONFIG_PACKAGE_libf2fs=y # CONFIG_PACKAGE_libf2fs-selinux is not set -# CONFIG_PACKAGE_libfaad2 is not set -# CONFIG_PACKAGE_libfastjson is not set -# CONFIG_PACKAGE_libfdisk is not set -# CONFIG_PACKAGE_libfdt is not set +CONFIG_PACKAGE_libfaad2=m +CONFIG_PACKAGE_libfastjson=m +CONFIG_PACKAGE_libfdisk=m +CONFIG_PACKAGE_libfdt=m CONFIG_PACKAGE_libffi=m -# CONFIG_PACKAGE_libffmpeg-audio-dec is not set +CONFIG_PACKAGE_libffmpeg-audio-dec=m CONFIG_FFMPEG_X86ASM=y -# CONFIG_PACKAGE_libffmpeg-full is not set -# CONFIG_PACKAGE_libffmpeg-mini is not set -# CONFIG_PACKAGE_libfido2 is not set -# CONFIG_PACKAGE_libflac is not set -# CONFIG_PACKAGE_libfmt is not set -# CONFIG_PACKAGE_libfreetype is not set -# CONFIG_PACKAGE_libfstrm is not set +CONFIG_PACKAGE_libffmpeg-full=m +CONFIG_PACKAGE_libffmpeg-mini=m +CONFIG_PACKAGE_libfido2=m +CONFIG_PACKAGE_libflac=m +CONFIG_PACKAGE_libfmt=m +CONFIG_PACKAGE_libfreetype=m +CONFIG_PACKAGE_libfstrm=m CONFIG_PACKAGE_libftdi=m -# CONFIG_PACKAGE_libftdi1 is not set -# CONFIG_PACKAGE_libgabe is not set -# CONFIG_PACKAGE_libgcrypt is not set -# CONFIG_PACKAGE_libgd is not set -# CONFIG_PACKAGE_libgd-full is not set -# CONFIG_PACKAGE_libgdbm is not set -# CONFIG_PACKAGE_libgee is not set -# CONFIG_PACKAGE_libgensio is not set -# CONFIG_PACKAGE_libgensiocpp is not set +CONFIG_PACKAGE_libftdi1=m +CONFIG_PACKAGE_libgabe=m +CONFIG_PACKAGE_libgcrypt=m +CONFIG_PACKAGE_libgd=m +# CONFIG_LIBGD_TIFF is not set +# CONFIG_LIBGD_FREETYPE is not set +CONFIG_PACKAGE_libgd-full=m +CONFIG_PACKAGE_libgdbm=m +CONFIG_PACKAGE_libgee=m +CONFIG_PACKAGE_libgensio=m +# CONFIG_GENSIO_SSL is not set +# CONFIG_GENSIO_WRAP is not set +# CONFIG_GENSIO_SCTP is not set +CONFIG_GENSIO_PTHREADS=y +# CONFIG_GENSIO_AVAHI is not set +# CONFIG_GENSIO_GLIB is not set +# CONFIG_GENSIO_TCL is not set +CONFIG_PACKAGE_libgensiocpp=m CONFIG_PACKAGE_libgmp=m -# CONFIG_PACKAGE_libgpg-error is not set -# CONFIG_PACKAGE_libgpgme is not set -# CONFIG_PACKAGE_libgpgmepp is not set -# CONFIG_PACKAGE_libgphoto2 is not set -# CONFIG_PACKAGE_libgpiod is not set -# CONFIG_PACKAGE_libgps is not set -# CONFIG_PACKAGE_libhamlib is not set -# CONFIG_PACKAGE_libhavege is not set -# CONFIG_PACKAGE_libhiredis is not set -# CONFIG_PACKAGE_libhttp-parser is not set -# CONFIG_PACKAGE_libhwloc is not set -# CONFIG_PACKAGE_libi2c is not set -# CONFIG_PACKAGE_libical is not set +CONFIG_PACKAGE_libgpg-error=m +CONFIG_PACKAGE_libgpgme=m +CONFIG_PACKAGE_libgpgmepp=m +CONFIG_PACKAGE_libgphoto2=m +CONFIG_PACKAGE_libgphoto2-drivers-adc65=m +CONFIG_PACKAGE_libgphoto2-drivers-agfa_cl20=m +CONFIG_PACKAGE_libgphoto2-drivers-aox=m +CONFIG_PACKAGE_libgphoto2-drivers-ax203=m +CONFIG_PACKAGE_libgphoto2-drivers-barbie=m +CONFIG_PACKAGE_libgphoto2-drivers-canon=m +CONFIG_PACKAGE_libgphoto2-drivers-casio_qv=m +CONFIG_PACKAGE_libgphoto2-drivers-clicksmart310=m +CONFIG_PACKAGE_libgphoto2-drivers-digigr8=m +CONFIG_PACKAGE_libgphoto2-drivers-digita=m +CONFIG_PACKAGE_libgphoto2-drivers-dimagev=m +CONFIG_PACKAGE_libgphoto2-drivers-dimera3500=m +CONFIG_PACKAGE_libgphoto2-drivers-directory=m +CONFIG_PACKAGE_libgphoto2-drivers-enigma13=m +CONFIG_PACKAGE_libgphoto2-drivers-fuji=m +CONFIG_PACKAGE_libgphoto2-drivers-gsmart300=m +CONFIG_PACKAGE_libgphoto2-drivers-hp215=m +CONFIG_PACKAGE_libgphoto2-drivers-iclick=m +CONFIG_PACKAGE_libgphoto2-drivers-jamcam=m +CONFIG_PACKAGE_libgphoto2-drivers-jd11=m +CONFIG_PACKAGE_libgphoto2-drivers-jl2005a=m +CONFIG_PACKAGE_libgphoto2-drivers-jl2005c=m +CONFIG_PACKAGE_libgphoto2-drivers-kodak_dc120=m +CONFIG_PACKAGE_libgphoto2-drivers-kodak_dc210=m +CONFIG_PACKAGE_libgphoto2-drivers-kodak_dc240=m +CONFIG_PACKAGE_libgphoto2-drivers-kodak_dc3200=m +CONFIG_PACKAGE_libgphoto2-drivers-kodak_ez200=m +CONFIG_PACKAGE_libgphoto2-drivers-konica=m +CONFIG_PACKAGE_libgphoto2-drivers-konica_qm150=m +CONFIG_PACKAGE_libgphoto2-drivers-largan=m +CONFIG_PACKAGE_libgphoto2-drivers-lg_gsm=m +CONFIG_PACKAGE_libgphoto2-drivers-mars=m +CONFIG_PACKAGE_libgphoto2-drivers-mustek=m +CONFIG_PACKAGE_libgphoto2-drivers-panasonic_coolshot=m +CONFIG_PACKAGE_libgphoto2-drivers-panasonic_dc1000=m +CONFIG_PACKAGE_libgphoto2-drivers-panasonic_dc1580=m +CONFIG_PACKAGE_libgphoto2-drivers-panasonic_l859=m +CONFIG_PACKAGE_libgphoto2-drivers-pccam300=m +CONFIG_PACKAGE_libgphoto2-drivers-pccam600=m +CONFIG_PACKAGE_libgphoto2-drivers-pentax=m +CONFIG_PACKAGE_libgphoto2-drivers-polaroid_pdc320=m +CONFIG_PACKAGE_libgphoto2-drivers-polaroid_pdc640=m +CONFIG_PACKAGE_libgphoto2-drivers-polaroid_pdc700=m +CONFIG_PACKAGE_libgphoto2-drivers-ptp2=m +CONFIG_PACKAGE_libgphoto2-drivers-ricoh=m +CONFIG_PACKAGE_libgphoto2-drivers-ricoh_g3=m +CONFIG_PACKAGE_libgphoto2-drivers-samsung=m +CONFIG_PACKAGE_libgphoto2-drivers-sierra=m +CONFIG_PACKAGE_libgphoto2-drivers-sipix_blink2=m +CONFIG_PACKAGE_libgphoto2-drivers-sipix_web2=m +CONFIG_PACKAGE_libgphoto2-drivers-smal=m +CONFIG_PACKAGE_libgphoto2-drivers-sonix=m +CONFIG_PACKAGE_libgphoto2-drivers-sony_dscf1=m +CONFIG_PACKAGE_libgphoto2-drivers-sony_dscf55=m +CONFIG_PACKAGE_libgphoto2-drivers-soundvision=m +CONFIG_PACKAGE_libgphoto2-drivers-spca50x=m +CONFIG_PACKAGE_libgphoto2-drivers-sq905=m +CONFIG_PACKAGE_libgphoto2-drivers-st2205=m +CONFIG_PACKAGE_libgphoto2-drivers-stv0674=m +CONFIG_PACKAGE_libgphoto2-drivers-stv0680=m +CONFIG_PACKAGE_libgphoto2-drivers-sx330z=m +CONFIG_PACKAGE_libgphoto2-drivers-topfield=m +CONFIG_PACKAGE_libgphoto2-drivers-toshiba_pdrm11=m +CONFIG_PACKAGE_libgphoto2-drivers-tp6801=m +CONFIG_PACKAGE_libgphoto2-port=m +CONFIG_PACKAGE_libgpiod=m +CONFIG_PACKAGE_libgps=m +CONFIG_PACKAGE_libhamlib=m +CONFIG_PACKAGE_libhavege=m +CONFIG_PACKAGE_libhiredis=m +CONFIG_PACKAGE_libhttp-parser=m +CONFIG_PACKAGE_libhwloc=m +CONFIG_PACKAGE_libi2c=m +CONFIG_PACKAGE_libical=m # CONFIG_PACKAGE_libiconv-full is not set -# CONFIG_PACKAGE_libid3tag is not set -# CONFIG_PACKAGE_libidn is not set -# CONFIG_PACKAGE_libidn2 is not set -# CONFIG_PACKAGE_libiio is not set -# CONFIG_PACKAGE_libinih is not set -# CONFIG_PACKAGE_libinireader is not set -# CONFIG_PACKAGE_libinotifytools is not set -# CONFIG_PACKAGE_libinput is not set -# CONFIG_PACKAGE_libintl-full is not set -# CONFIG_PACKAGE_libiperf3 is not set +CONFIG_PACKAGE_libid3tag=m +CONFIG_PACKAGE_libidn=m +CONFIG_PACKAGE_libidn2=m +CONFIG_PACKAGE_libiio=m +CONFIG_LIBIIO_LOCAL_BACKEND=y +CONFIG_LIBIIO_NETWORK_BACKEND=y +# CONFIG_LIBIIO_USB_BACKEND is not set +CONFIG_LIBIIO_XML_BACKEND=y +CONFIG_PACKAGE_libinih=m +CONFIG_PACKAGE_libinireader=m +CONFIG_PACKAGE_libinotifytools=m +CONFIG_PACKAGE_libinput=m +CONFIG_PACKAGE_libintl-full=m +CONFIG_PACKAGE_libiperf3=m # CONFIG_PACKAGE_libiw is not set CONFIG_PACKAGE_libiwinfo=y -# CONFIG_PACKAGE_libjaylink is not set -# CONFIG_PACKAGE_libjpeg-turbo is not set +CONFIG_PACKAGE_libjaylink=m +CONFIG_PACKAGE_libjpeg-turbo=m CONFIG_PACKAGE_libjson-c=y -# CONFIG_PACKAGE_libkeyutils is not set -# CONFIG_PACKAGE_libkmod is not set -# CONFIG_PACKAGE_libksba is not set -# CONFIG_PACKAGE_libldns is not set -# CONFIG_PACKAGE_libleptonica is not set -# CONFIG_PACKAGE_libloragw is not set -# CONFIG_PACKAGE_libltdl is not set +CONFIG_PACKAGE_libkeyutils=m +CONFIG_PACKAGE_libkmod=m +CONFIG_PACKAGE_libksba=m +CONFIG_PACKAGE_libldns=m +CONFIG_PACKAGE_libleptonica=m +CONFIG_PACKAGE_libloragw=m +CONFIG_SX1301_SPI_PATH="/dev/spidev0.0" +CONFIG_SX1301_SPI_SPEED="8000000" +CONFIG_PACKAGE_libltdl=m CONFIG_PACKAGE_liblua=m -# CONFIG_PACKAGE_liblua5.3 is not set -# CONFIG_PACKAGE_liblucihttp is not set -# CONFIG_PACKAGE_liblucihttp-lua is not set -# CONFIG_PACKAGE_liblucihttp-ucode is not set +CONFIG_PACKAGE_liblua5.3=m +CONFIG_PACKAGE_liblucihttp=m +CONFIG_PACKAGE_liblucihttp-lua=m +CONFIG_PACKAGE_liblucihttp-ucode=m +CONFIG_PACKAGE_liblxc=m CONFIG_PACKAGE_liblzo=m -# CONFIG_PACKAGE_libmad is not set -# CONFIG_PACKAGE_libmagic is not set -# CONFIG_PACKAGE_libmaxminddb is not set -# CONFIG_PACKAGE_libmbim is not set -# CONFIG_PACKAGE_libmcrypt is not set +CONFIG_PACKAGE_libmad=m +CONFIG_PACKAGE_libmagic=m +CONFIG_PACKAGE_libmaxminddb=m +CONFIG_PACKAGE_libmbim=m +CONFIG_PACKAGE_libmcrypt=m # CONFIG_PACKAGE_libmd is not set -# CONFIG_PACKAGE_libmicrohttpd-no-ssl is not set -# CONFIG_PACKAGE_libmicrohttpd-ssl is not set -# CONFIG_PACKAGE_libmilter-sendmail is not set -# CONFIG_PACKAGE_libminiupnpc is not set -# CONFIG_PACKAGE_libmms is not set +CONFIG_PACKAGE_libmicrohttpd-no-ssl=m +CONFIG_PACKAGE_libmicrohttpd-ssl=m +CONFIG_PACKAGE_libmilter-sendmail=m +CONFIG_PACKAGE_libminiupnpc=m +CONFIG_PACKAGE_libmms=m CONFIG_PACKAGE_libmnl=y -# CONFIG_PACKAGE_libmodbus is not set -# CONFIG_PACKAGE_libmosquitto-nossl is not set +CONFIG_PACKAGE_libmodbus=m +CONFIG_PACKAGE_libmosquitto-nossl=m CONFIG_PACKAGE_libmosquitto-ssl=m CONFIG_PACKAGE_libmosquittopp=m CONFIG_PACKAGE_libmount=m -# CONFIG_PACKAGE_libmpc is not set -# CONFIG_PACKAGE_libmpdclient is not set -# CONFIG_PACKAGE_libmpeg2 is not set +CONFIG_PACKAGE_libmpc=m +CONFIG_PACKAGE_libmpdclient=m +CONFIG_PACKAGE_libmpeg2=m CONFIG_PACKAGE_libmpfr=m -# CONFIG_PACKAGE_libmpg123 is not set -# CONFIG_PACKAGE_libmspack is not set -# CONFIG_PACKAGE_libnatpmp is not set +CONFIG_PACKAGE_libmpg123=m +CONFIG_PACKAGE_libmspack=m +CONFIG_PACKAGE_libnatpmp=m CONFIG_PACKAGE_libncurses=m -# CONFIG_PACKAGE_libndpi is not set -# CONFIG_PACKAGE_libneon is not set -# CONFIG_PACKAGE_libnet-1.2.x is not set -# CONFIG_PACKAGE_libnetconf2 is not set -# CONFIG_PACKAGE_libnetfilter-acct is not set -# CONFIG_PACKAGE_libnetfilter-conntrack is not set -# CONFIG_PACKAGE_libnetfilter-cthelper is not set -# CONFIG_PACKAGE_libnetfilter-cttimeout is not set -# CONFIG_PACKAGE_libnetfilter-log is not set -# CONFIG_PACKAGE_libnetfilter-queue is not set -# CONFIG_PACKAGE_libnetsnmp is not set -# CONFIG_PACKAGE_libnettle is not set -# CONFIG_PACKAGE_libnewt is not set -# CONFIG_PACKAGE_libnfnetlink is not set +CONFIG_PACKAGE_libndpi=m +# CONFIG_LIBNDPI_NDPIREADER is not set +# CONFIG_LIBNDPI_GCRYPT is not set +# CONFIG_LIBNDPI_PCRE is not set +# CONFIG_LIBNDPI_MAXMINDDB is not set +CONFIG_PACKAGE_libneon=m +CONFIG_PACKAGE_libnet-1.2.x=m +CONFIG_PACKAGE_libnetconf2=m +CONFIG_PACKAGE_libnetfilter-acct=m +CONFIG_PACKAGE_libnetfilter-conntrack=m +CONFIG_PACKAGE_libnetfilter-cthelper=m +CONFIG_PACKAGE_libnetfilter-cttimeout=m +CONFIG_PACKAGE_libnetfilter-log=m +CONFIG_PACKAGE_libnetfilter-queue=m +CONFIG_PACKAGE_libnetsnmp=m +CONFIG_PACKAGE_libnettle=m + +# +# Configuration +# +# CONFIG_LIBNETTLE_MINI is not set +# end of Configuration + +CONFIG_PACKAGE_libnewt=m +CONFIG_PACKAGE_libnfnetlink=m CONFIG_PACKAGE_libnftnl=y -# CONFIG_PACKAGE_libnghttp2 is not set -# CONFIG_PACKAGE_libnghttp3 is not set -# CONFIG_PACKAGE_libngtcp2 is not set -# CONFIG_PACKAGE_libnl is not set -# CONFIG_PACKAGE_libnl-cli is not set -# CONFIG_PACKAGE_libnl-core is not set -# CONFIG_PACKAGE_libnl-genl is not set -# CONFIG_PACKAGE_libnl-nf is not set -# CONFIG_PACKAGE_libnl-route is not set +CONFIG_PACKAGE_libnghttp2=m +CONFIG_PACKAGE_libnghttp3=m +CONFIG_PACKAGE_libngtcp2=m +CONFIG_PACKAGE_libnl=m +CONFIG_PACKAGE_libnl-cli=m +CONFIG_PACKAGE_libnl-core=m +CONFIG_PACKAGE_libnl-genl=m +CONFIG_PACKAGE_libnl-nf=m +CONFIG_PACKAGE_libnl-route=m CONFIG_PACKAGE_libnl-tiny=y -# CONFIG_PACKAGE_libnopoll is not set -# CONFIG_PACKAGE_libnpth is not set -# CONFIG_PACKAGE_libnpupnp is not set -# CONFIG_PACKAGE_libnvme is not set -# CONFIG_PACKAGE_liboath is not set -# CONFIG_PACKAGE_libogg is not set -# CONFIG_PACKAGE_liboil is not set +CONFIG_PACKAGE_libnopoll=m +CONFIG_PACKAGE_libnpth=m +CONFIG_PACKAGE_libnpupnp=m +CONFIG_PACKAGE_libnvme=m +CONFIG_PACKAGE_liboath=m +CONFIG_PACKAGE_libogg=m +CONFIG_PACKAGE_liboil=m CONFIG_PACKAGE_libopcodes=m -# CONFIG_PACKAGE_libopen62541 is not set -# CONFIG_PACKAGE_libopendkim is not set -# CONFIG_PACKAGE_libopenelp is not set -# CONFIG_PACKAGE_libopenobex is not set -# CONFIG_PACKAGE_libopensc is not set -# CONFIG_PACKAGE_libopenzwave is not set -# CONFIG_PACKAGE_liboping is not set -# CONFIG_PACKAGE_libopus is not set -# CONFIG_PACKAGE_libopusenc is not set -# CONFIG_PACKAGE_libopusfile is not set -# CONFIG_PACKAGE_liborcania is not set -# CONFIG_PACKAGE_libout123 is not set -# CONFIG_PACKAGE_libowipcalc is not set -# CONFIG_PACKAGE_libp11 is not set -# CONFIG_PACKAGE_libpagekite is not set -# CONFIG_PACKAGE_libpam is not set -# CONFIG_PACKAGE_libparted is not set -# CONFIG_PACKAGE_libpbc is not set +CONFIG_PACKAGE_libopen62541=m + +# +# Configuration +# +CONFIG_LIBOPEN62541_UA_ENABLE_SUBSCRIPTIONS=y +# CONFIG_LIBOPEN62541_UA_ENABLE_SUBSCRIPTIONS_EVENTS is not set +CONFIG_LIBOPEN62541_UA_ENABLE_METHODCALLS=y +CONFIG_LIBOPEN62541_UA_ENABLE_PARSING=y +CONFIG_LIBOPEN62541_UA_ENABLE_NODEMANAGEMENT=y +CONFIG_LIBOPEN62541_UA_ENABLE_IMMUTABLE_NODES=y +CONFIG_LIBOPEN62541_UA_ENABLE_DISCOVERY=y +CONFIG_LIBOPEN62541_UA_ENABLE_DISCOVERY_MULTICAST=y +CONFIG_LIBOPEN62541_UA_ENABLE_DISCOVERY_SEMAPHORE=y +CONFIG_LIBOPEN62541_NOENCRYPTION=y +# CONFIG_LIBOPEN62541_MBDEDTLS is not set +# CONFIG_LIBOPEN62541_OPENSSL is not set +CONFIG_LIBOPEN62541_NAMESPACEZERO_FULL=y +# CONFIG_LIBOPEN62541_NAMESPACEZERO_REDUCED is not set +# CONFIG_LIBOPEN62541_NAMESPACEZERO_MINIMAL is not set +CONFIG_LIBOPEN62541_UA_ENABLE_TYPEDESCRIPTION=y +CONFIG_LIBOPEN62541_UA_ENABLE_STATUSCODE_DESCRIPTIONS=y +# CONFIG_LIBOPEN62541_UA_ENABLE_HISTORIZING is not set +# CONFIG_LIBOPEN62541_UA_ENABLE_PUBSUB is not set +# end of Configuration + +CONFIG_PACKAGE_libopendkim=m +CONFIG_PACKAGE_libopenelp=m +CONFIG_PACKAGE_libopenobex=m +CONFIG_PACKAGE_libopensc=m +CONFIG_PACKAGE_libopensc-pkcs11=m +CONFIG_PACKAGE_libopensc-profile-asepcos=m +CONFIG_PACKAGE_libopensc-profile-authentic=m +CONFIG_PACKAGE_libopensc-profile-cardos=m +CONFIG_PACKAGE_libopensc-profile-cyberflex=m +CONFIG_PACKAGE_libopensc-profile-entersafe=m +CONFIG_PACKAGE_libopensc-profile-epass2003=m +CONFIG_PACKAGE_libopensc-profile-flex=m +CONFIG_PACKAGE_libopensc-profile-gids=m +CONFIG_PACKAGE_libopensc-profile-gpk=m +CONFIG_PACKAGE_libopensc-profile-ias-adele-admin1=m +CONFIG_PACKAGE_libopensc-profile-ias-adele-admin2=m +CONFIG_PACKAGE_libopensc-profile-ias-adele-common=m +CONFIG_PACKAGE_libopensc-profile-iasecc=m +CONFIG_PACKAGE_libopensc-profile-iasecc-admin-eid=m +CONFIG_PACKAGE_libopensc-profile-iasecc-generic-oberthur=m +CONFIG_PACKAGE_libopensc-profile-iasecc-generic-pki=m +CONFIG_PACKAGE_libopensc-profile-incrypto34=m +CONFIG_PACKAGE_libopensc-profile-isoApplet=m +CONFIG_PACKAGE_libopensc-profile-muscle=m +CONFIG_PACKAGE_libopensc-profile-myeid=m +CONFIG_PACKAGE_libopensc-profile-oberthur=m +CONFIG_PACKAGE_libopensc-profile-openpgp=m +CONFIG_PACKAGE_libopensc-profile-pkcs15=m +CONFIG_PACKAGE_libopensc-profile-rutoken=m +CONFIG_PACKAGE_libopensc-profile-rutoken-ecp=m +CONFIG_PACKAGE_libopensc-profile-rutoken-lite=m +CONFIG_PACKAGE_libopensc-profile-sc-hsm=m +CONFIG_PACKAGE_libopensc-profile-setcos=m +CONFIG_PACKAGE_libopensc-profile-starcos=m +CONFIG_PACKAGE_libopensc-profile-westcos=m +CONFIG_PACKAGE_libopenzwave=m +CONFIG_PACKAGE_liboping=m +CONFIG_PACKAGE_libopus=m +CONFIG_PACKAGE_libopusenc=m +CONFIG_PACKAGE_libopusfile=m +CONFIG_PACKAGE_liborcania=m +CONFIG_PACKAGE_libout123=m +CONFIG_PACKAGE_libowipcalc=m +CONFIG_PACKAGE_libp11=m +CONFIG_PACKAGE_libpagekite=m +CONFIG_PACKAGE_libpam=m +CONFIG_PACKAGE_libparted=m +CONFIG_PACKAGE_libpbc=m CONFIG_PACKAGE_libpcap=m # @@ -4781,175 +5880,242 @@ CONFIG_PACKAGE_libpcap=m # CONFIG_PCAP_HAS_NETFILTER is not set # end of Configuration -# CONFIG_PACKAGE_libpci is not set -CONFIG_PACKAGE_libpciaccess=y -# CONFIG_PACKAGE_libpcre is not set -# CONFIG_PACKAGE_libpcre16 is not set +CONFIG_PACKAGE_libpci=m +CONFIG_PACKAGE_libpciaccess=m +CONFIG_PACKAGE_libpcre=m +CONFIG_PCRE_JIT_ENABLED=y +CONFIG_PACKAGE_libpcre16=m CONFIG_PACKAGE_libpcre2=m CONFIG_PCRE2_JIT_ENABLED=y # CONFIG_PACKAGE_libpcre2-16 is not set -# CONFIG_PACKAGE_libpcre2-32 is not set -# CONFIG_PACKAGE_libpcre32 is not set -# CONFIG_PACKAGE_libpcrecpp is not set -# CONFIG_PACKAGE_libpcsclite is not set +CONFIG_PACKAGE_libpcre2-32=m +CONFIG_PACKAGE_libpcre32=m +CONFIG_PACKAGE_libpcrecpp=m +CONFIG_PACKAGE_libpcsclite=m # CONFIG_PACKAGE_libpfring is not set -# CONFIG_PACKAGE_libpkcs11-spy is not set -# CONFIG_PACKAGE_libpkgconf is not set -# CONFIG_PACKAGE_libpng is not set -# CONFIG_PACKAGE_libpopt is not set +CONFIG_PACKAGE_libpkcs11-spy=m +CONFIG_PACKAGE_libpkgconf=m +CONFIG_PACKAGE_libpng=m +CONFIG_PACKAGE_libpopt=m # CONFIG_PACKAGE_libpri is not set -# CONFIG_PACKAGE_libprotobuf-c is not set -# CONFIG_PACKAGE_libpsl is not set -# CONFIG_PACKAGE_libqmi is not set -# CONFIG_PACKAGE_libqrencode is not set -# CONFIG_PACKAGE_libqrtr-glib is not set -# CONFIG_PACKAGE_libradcli is not set -# CONFIG_PACKAGE_libradiotap is not set -# CONFIG_PACKAGE_libreadline is not set -# CONFIG_PACKAGE_libredblack is not set -# CONFIG_PACKAGE_librouteros is not set -# CONFIG_PACKAGE_libroxml is not set -# CONFIG_PACKAGE_librrd1 is not set -# CONFIG_PACKAGE_librtlsdr is not set -# CONFIG_PACKAGE_libruby is not set -# CONFIG_PACKAGE_libsamplerate is not set -# CONFIG_PACKAGE_libsane is not set -# CONFIG_PACKAGE_libsasl2 is not set -# CONFIG_PACKAGE_libsasl2-sasldb is not set -# CONFIG_PACKAGE_libsasl2-utils is not set +CONFIG_PACKAGE_libprotobuf-c=m +CONFIG_PACKAGE_libpsl=m +CONFIG_PACKAGE_libqmi=m + +# +# Configuration +# +CONFIG_LIBQMI_WITH_MBIM_QMUX=y +CONFIG_LIBQMI_WITH_QRTR_GLIB=y +CONFIG_LIBQMI_COLLECTION_BASIC=y +# CONFIG_LIBQMI_COLLECTION_FULL is not set +# end of Configuration + +CONFIG_PACKAGE_libqrencode=m +CONFIG_PACKAGE_libqrtr-glib=m +CONFIG_PACKAGE_libradcli=m +CONFIG_PACKAGE_libradiotap=m +CONFIG_PACKAGE_libreadline=m +CONFIG_PACKAGE_libredblack=m +CONFIG_PACKAGE_librouteros=m +CONFIG_PACKAGE_libroxml=m +CONFIG_PACKAGE_librrd1=m +CONFIG_PACKAGE_librtlsdr=m +CONFIG_PACKAGE_libruby=m +CONFIG_PACKAGE_libsamplerate=m +CONFIG_PACKAGE_libsane=m +CONFIG_PACKAGE_libsasl2=m +CONFIG_PACKAGE_libsasl2-sasldb=m +CONFIG_PACKAGE_libsasl2-utils=m CONFIG_PACKAGE_libseccomp=m -# CONFIG_PACKAGE_libselinux is not set -# CONFIG_PACKAGE_libsemanage is not set -# CONFIG_PACKAGE_libsensors is not set -# CONFIG_PACKAGE_libsepol is not set -# CONFIG_PACKAGE_libshout is not set -# CONFIG_PACKAGE_libshout-full is not set -# CONFIG_PACKAGE_libshout-nossl is not set -# CONFIG_PACKAGE_libsispmctl is not set -# CONFIG_PACKAGE_libslang2 is not set +CONFIG_PACKAGE_libselinux=m +CONFIG_PACKAGE_libsemanage=m +CONFIG_PACKAGE_libsensors=m +CONFIG_PACKAGE_libsepol=m +CONFIG_PACKAGE_libshout=m +CONFIG_PACKAGE_libshout-full=m +CONFIG_PACKAGE_libshout-nossl=m +CONFIG_PACKAGE_libsispmctl=m +CONFIG_PACKAGE_libslang2=m +CONFIG_PACKAGE_libslang2-mod-base64=m +CONFIG_PACKAGE_libslang2-mod-chksum=m +CONFIG_PACKAGE_libslang2-mod-csv=m +CONFIG_PACKAGE_libslang2-mod-fcntl=m +CONFIG_PACKAGE_libslang2-mod-fork=m +CONFIG_PACKAGE_libslang2-mod-histogram=m +CONFIG_PACKAGE_libslang2-mod-iconv=m +CONFIG_PACKAGE_libslang2-mod-json=m +CONFIG_PACKAGE_libslang2-mod-onig=m +CONFIG_PACKAGE_libslang2-mod-png=m +CONFIG_PACKAGE_libslang2-mod-rand=m +CONFIG_PACKAGE_libslang2-mod-select=m +CONFIG_PACKAGE_libslang2-mod-slsmg=m +CONFIG_PACKAGE_libslang2-mod-socket=m +CONFIG_PACKAGE_libslang2-mod-stats=m +CONFIG_PACKAGE_libslang2-mod-sysconf=m +CONFIG_PACKAGE_libslang2-mod-termios=m +CONFIG_PACKAGE_libslang2-mod-varray=m +CONFIG_PACKAGE_libslang2-mod-zlib=m +CONFIG_PACKAGE_libslang2-modules=m CONFIG_PACKAGE_libsmartcols=y -# CONFIG_PACKAGE_libsndfile is not set -# CONFIG_PACKAGE_libsoc is not set -# CONFIG_PACKAGE_libsocketcan is not set -# CONFIG_PACKAGE_libsocks is not set -# CONFIG_PACKAGE_libsodium is not set -# CONFIG_PACKAGE_libsoup3 is not set -# CONFIG_PACKAGE_libsoxr is not set -# CONFIG_PACKAGE_libspeedtestcpp is not set -# CONFIG_PACKAGE_libspeex is not set -# CONFIG_PACKAGE_libspeexdsp is not set -# CONFIG_PACKAGE_libspice-server is not set +CONFIG_PACKAGE_libsndfile=m +CONFIG_PACKAGE_libsoc=m +CONFIG_PACKAGE_libsocketcan=m +CONFIG_PACKAGE_libsocks=m +CONFIG_PACKAGE_libsodium=m + +# +# Configuration +# +CONFIG_LIBSODIUM_MINIMAL=y +# end of Configuration + +CONFIG_PACKAGE_libsoup3=m +CONFIG_PACKAGE_libsoxr=m +CONFIG_PACKAGE_libspeedtestcpp=m +CONFIG_PACKAGE_libspeex=m +CONFIG_PACKAGE_libspeexdsp=m +CONFIG_PACKAGE_libspice-server=m CONFIG_PACKAGE_libss=y -# CONFIG_PACKAGE_libssh is not set -# CONFIG_PACKAGE_libssh2 is not set -# CONFIG_PACKAGE_libstoken is not set -# CONFIG_PACKAGE_libstrophe is not set -# CONFIG_PACKAGE_libsyn123 is not set -# CONFIG_PACKAGE_libsysrepo is not set -# CONFIG_PACKAGE_libtalloc is not set -# CONFIG_PACKAGE_libtasn1 is not set -# CONFIG_PACKAGE_libtheora is not set -# CONFIG_PACKAGE_libtiff is not set -# CONFIG_PACKAGE_libtins is not set -# CONFIG_PACKAGE_libtirpc is not set -# CONFIG_PACKAGE_libtorrent-rasterbar is not set +CONFIG_PACKAGE_libssh=m +CONFIG_PACKAGE_libssh2=m +CONFIG_LIBSSH2_OPENSSL=y +# CONFIG_LIBSSH2_MBEDTLS is not set +CONFIG_PACKAGE_libstoken=m +CONFIG_PACKAGE_libstrophe=m +CONFIG_libstrophe-expat=y +# CONFIG_libstrophe-libxml2 is not set +CONFIG_PACKAGE_libsyn123=m +CONFIG_PACKAGE_libsysrepo=m +CONFIG_PACKAGE_libtalloc=m +CONFIG_PACKAGE_libtasn1=m +CONFIG_PACKAGE_libtheora=m +CONFIG_PACKAGE_libtiff=m +CONFIG_PACKAGE_libtins=m + +# +# Configuration +# +# CONFIG_LIBTINS_ENABLE_ACK_TRACKER is not set +CONFIG_LIBTINS_ENABLE_CXX11=y +# CONFIG_LIBTINS_ENABLE_DOT11 is not set +CONFIG_LIBTINS_ENABLE_PCAP=y +# CONFIG_LIBTINS_ENABLE_TCP_STREAM_CUSTOM_DATA is not set +# end of Configuration + +CONFIG_PACKAGE_libtirpc=m +CONFIG_PACKAGE_libtorrent-rasterbar=m # CONFIG_PACKAGE_libtraceevent is not set # CONFIG_PACKAGE_libtraceevent-extra is not set # CONFIG_PACKAGE_libtracefs is not set CONFIG_PACKAGE_libubox=y -# CONFIG_PACKAGE_libubox-lua is not set +CONFIG_PACKAGE_libubox-lua=m CONFIG_PACKAGE_libubus=y -# CONFIG_PACKAGE_libubus-lua is not set +CONFIG_PACKAGE_libubus-lua=m CONFIG_PACKAGE_libuci=y -# CONFIG_PACKAGE_libuci-lua is not set -# CONFIG_PACKAGE_libuci2 is not set +CONFIG_PACKAGE_libuci-lua=m +CONFIG_PACKAGE_libuci2=m CONFIG_PACKAGE_libuclient=y CONFIG_PACKAGE_libucode=y -# CONFIG_PACKAGE_libucontext is not set +CONFIG_PACKAGE_libucontext=m CONFIG_PACKAGE_libudebug=y -# CONFIG_PACKAGE_libudev-zero is not set -# CONFIG_PACKAGE_libudns is not set -# CONFIG_PACKAGE_libuecc is not set -# CONFIG_PACKAGE_libugpio is not set -# CONFIG_PACKAGE_libunistring is not set +CONFIG_PACKAGE_libudev-zero=m +CONFIG_PACKAGE_libudns=m +CONFIG_PACKAGE_libuecc=m +CONFIG_PACKAGE_libugpio=m +CONFIG_PACKAGE_libunistring=m CONFIG_PACKAGE_libunwind=m -# CONFIG_PACKAGE_libupnp is not set -# CONFIG_PACKAGE_libupnpp is not set -# CONFIG_PACKAGE_liburcu is not set -# CONFIG_PACKAGE_liburing is not set +CONFIG_PACKAGE_libupnp=m +CONFIG_PACKAGE_libupnp-sample=m +CONFIG_PACKAGE_libupnpp=m +CONFIG_PACKAGE_liburcu=m +CONFIG_PACKAGE_liburing=m CONFIG_PACKAGE_libusb-1.0=m CONFIG_PACKAGE_libusb-compat=m CONFIG_PACKAGE_libustream-mbedtls=y -# CONFIG_PACKAGE_libustream-openssl is not set -# CONFIG_PACKAGE_libustream-wolfssl is not set -# CONFIG_PACKAGE_libutp is not set +CONFIG_PACKAGE_libustream-openssl=m +CONFIG_PACKAGE_libustream-wolfssl=m +CONFIG_PACKAGE_libutp=m CONFIG_PACKAGE_libuuid=y -# CONFIG_PACKAGE_libuv is not set -# CONFIG_PACKAGE_libuwifi is not set -# CONFIG_PACKAGE_libv4l is not set -# CONFIG_PACKAGE_libvorbis is not set -# CONFIG_PACKAGE_libvorbisidec is not set -# CONFIG_PACKAGE_libvpx is not set -# CONFIG_PACKAGE_libwebp is not set -# CONFIG_PACKAGE_libwebsockets-full is not set -# CONFIG_PACKAGE_libwebsockets-mbedtls is not set -# CONFIG_PACKAGE_libwebsockets-openssl is not set -# CONFIG_PACKAGE_libwrap is not set +CONFIG_PACKAGE_libuv=m +CONFIG_PACKAGE_libuwifi=m +CONFIG_PACKAGE_libv4l=m +CONFIG_PACKAGE_libvorbis=m +CONFIG_PACKAGE_libvorbisidec=m +CONFIG_PACKAGE_libvpx=m +CONFIG_PACKAGE_libwebp=m +CONFIG_PACKAGE_libwebsockets-full=m +CONFIG_PACKAGE_libwebsockets-mbedtls=m +CONFIG_PACKAGE_libwebsockets-openssl=m +CONFIG_PACKAGE_libwrap=m CONFIG_PACKAGE_libxdp=m -# CONFIG_PACKAGE_libxerces-c is not set -# CONFIG_PACKAGE_libxerces-c-samples is not set -# CONFIG_PACKAGE_libxml2 is not set -# CONFIG_PACKAGE_libxslt is not set -# CONFIG_PACKAGE_libxxhash is not set -# CONFIG_PACKAGE_libyaml-cpp is not set -# CONFIG_PACKAGE_libyang is not set -# CONFIG_PACKAGE_libyubikey is not set -# CONFIG_PACKAGE_libzmq-curve is not set -# CONFIG_PACKAGE_libzmq-nc is not set +CONFIG_PACKAGE_libxerces-c=m +CONFIG_PACKAGE_libxerces-c-samples=m +CONFIG_PACKAGE_libxml2=m +CONFIG_PACKAGE_libxslt=m +CONFIG_PACKAGE_libxxhash=m +CONFIG_PACKAGE_libyaml-cpp=m +CONFIG_PACKAGE_libyang=m +CONFIG_PACKAGE_libyubikey=m +CONFIG_PACKAGE_libzmq-curve=m +# CONFIG_LIBZMQ_CURVE_WITH_OPENPGM is not set +CONFIG_PACKAGE_libzmq-nc=m +# CONFIG_LIBZMQ_NC_WITH_OPENPGM is not set # CONFIG_PACKAGE_linux-atm is not set -# CONFIG_PACKAGE_lmdb is not set -# CONFIG_PACKAGE_log4cplus is not set -# CONFIG_PACKAGE_loudmouth is not set -# CONFIG_PACKAGE_lttng-ust is not set -# CONFIG_PACKAGE_minizip is not set -# CONFIG_PACKAGE_msgpack-c is not set -# CONFIG_PACKAGE_mtdev is not set +CONFIG_PACKAGE_lmdb=m +CONFIG_PACKAGE_lmdb-test=m +CONFIG_PACKAGE_lmdb-utils=m +CONFIG_PACKAGE_log4cplus=m +CONFIG_PACKAGE_loudmouth=m +CONFIG_PACKAGE_lttng-ust=m +CONFIG_PACKAGE_minizip=m +CONFIG_PACKAGE_msgpack-c=m +CONFIG_PACKAGE_mtdev=m CONFIG_PACKAGE_musl-fts=m -# CONFIG_PACKAGE_mxml is not set -# CONFIG_PACKAGE_nspr is not set -# CONFIG_PACKAGE_oath-pam is not set -# CONFIG_PACKAGE_oniguruma is not set -# CONFIG_PACKAGE_open-isns is not set -# CONFIG_PACKAGE_openblas is not set -# CONFIG_PACKAGE_openpgm is not set -# CONFIG_PACKAGE_p11-kit is not set -# CONFIG_PACKAGE_pixman is not set -# CONFIG_PACKAGE_poco is not set -# CONFIG_PACKAGE_poco-all is not set -# CONFIG_PACKAGE_protobuf is not set -# CONFIG_PACKAGE_protobuf-lite is not set -# CONFIG_PACKAGE_pthsem is not set -# CONFIG_PACKAGE_re2 is not set -# CONFIG_PACKAGE_rpcd-mod-luci is not set -# CONFIG_PACKAGE_rpcd-mod-rad2-enc is not set -# CONFIG_PACKAGE_rpcd-mod-rrdns is not set -# CONFIG_PACKAGE_rpcd-mod-wireguard is not set -# CONFIG_PACKAGE_sbc is not set +CONFIG_PACKAGE_mxml=m +CONFIG_PACKAGE_nspr=m +CONFIG_PACKAGE_oath-pam=m +CONFIG_PACKAGE_oniguruma=m +CONFIG_PACKAGE_open-isns=m +CONFIG_PACKAGE_openblas=m + +# +# Configuration +# +CONFIG_OPENBLAS_TARGET_OVERRIDE="" +# end of Configuration + +CONFIG_PACKAGE_openpgm=m +CONFIG_PACKAGE_p11-kit=m +CONFIG_PACKAGE_pixman=m +CONFIG_PACKAGE_poco=m +CONFIG_PACKAGE_poco-all=m +CONFIG_PACKAGE_protobuf=m +CONFIG_PACKAGE_protobuf-lite=m +CONFIG_PACKAGE_pthsem=m +CONFIG_PACKAGE_re2=m +CONFIG_PACKAGE_rpcd-mod-luci=m +CONFIG_PACKAGE_rpcd-mod-lxc=m +CONFIG_PACKAGE_rpcd-mod-rad2-enc=m +CONFIG_PACKAGE_rpcd-mod-rrdns=m +CONFIG_PACKAGE_rpcd-mod-wireguard=m +CONFIG_PACKAGE_sbc=m CONFIG_PACKAGE_scmp_sys_resolver=m -# CONFIG_PACKAGE_serdisplib is not set -# CONFIG_PACKAGE_taglib is not set +CONFIG_PACKAGE_serdisplib=m +CONFIG_PACKAGE_taglib=m CONFIG_PACKAGE_terminfo=m -# CONFIG_PACKAGE_tinycdb is not set -# CONFIG_PACKAGE_totem-pl-parser is not set -# CONFIG_PACKAGE_uw-imap is not set -# CONFIG_PACKAGE_xmlrpc-c-abyss is not set -# CONFIG_PACKAGE_xmlrpc-c-client is not set -# CONFIG_PACKAGE_xmlrpc-c-internal is not set -# CONFIG_PACKAGE_xmlrpc-c-libxml2 is not set -# CONFIG_PACKAGE_xmlrpc-c-server is not set -# CONFIG_PACKAGE_xmlrpc-c-server-abyss is not set -# CONFIG_PACKAGE_yajl is not set -# CONFIG_PACKAGE_yubico-pam is not set +CONFIG_PACKAGE_tinycdb=m +CONFIG_PACKAGE_totem-pl-parser=m +CONFIG_PACKAGE_uw-imap=m +CONFIG_PACKAGE_xmlrpc-c-abyss=m +CONFIG_PACKAGE_xmlrpc-c-client=m +CONFIG_PACKAGE_xmlrpc-c-common=m +CONFIG_PACKAGE_xmlrpc-c-internal=m +CONFIG_PACKAGE_xmlrpc-c-libxml2=m +CONFIG_PACKAGE_xmlrpc-c-server=m +CONFIG_PACKAGE_xmlrpc-c-server-abyss=m +CONFIG_PACKAGE_yajl=m +CONFIG_PACKAGE_yubico-pam=m CONFIG_PACKAGE_zlib=m # @@ -4958,7 +6124,7 @@ CONFIG_PACKAGE_zlib=m # CONFIG_ZLIB_OPTIMIZE_SPEED is not set # end of Configuration -# CONFIG_PACKAGE_zlog is not set +CONFIG_PACKAGE_zlog=m # end of Libraries # @@ -4968,19 +6134,19 @@ CONFIG_PACKAGE_zlib=m # # 1. Collections # -# CONFIG_PACKAGE_luci is not set -# CONFIG_PACKAGE_luci-lib-docker is not set -# CONFIG_PACKAGE_luci-light is not set -# CONFIG_PACKAGE_luci-nginx is not set -# CONFIG_PACKAGE_luci-ssl is not set -# CONFIG_PACKAGE_luci-ssl-nginx is not set -# CONFIG_PACKAGE_luci-ssl-openssl is not set +CONFIG_PACKAGE_luci=m +CONFIG_PACKAGE_luci-lib-docker=m +CONFIG_PACKAGE_luci-light=m +CONFIG_PACKAGE_luci-nginx=m +CONFIG_PACKAGE_luci-ssl=m +CONFIG_PACKAGE_luci-ssl-nginx=m +CONFIG_PACKAGE_luci-ssl-openssl=m # end of 1. Collections # # 2. Modules # -# CONFIG_PACKAGE_luci-base is not set +CONFIG_PACKAGE_luci-base=m # CONFIG_LUCI_SRCDIET is not set CONFIG_LUCI_JSMIN=y CONFIG_LUCI_CSSTIDY=y @@ -5024,212 +6190,3395 @@ CONFIG_LUCI_CSSTIDY=y # CONFIG_LUCI_LANG_zh_Hant is not set # end of Translations -# CONFIG_PACKAGE_luci-compat is not set -# CONFIG_PACKAGE_luci-lua-runtime is not set -# CONFIG_PACKAGE_luci-mod-admin-full is not set -# CONFIG_PACKAGE_luci-mod-battstatus is not set -# CONFIG_PACKAGE_luci-mod-dashboard is not set -# CONFIG_PACKAGE_luci-mod-dsl is not set -# CONFIG_PACKAGE_luci-mod-network is not set -# CONFIG_PACKAGE_luci-mod-rpc is not set -# CONFIG_PACKAGE_luci-mod-status is not set -# CONFIG_PACKAGE_luci-mod-system is not set +CONFIG_PACKAGE_luci-compat=m +CONFIG_PACKAGE_luci-lua-runtime=m +CONFIG_PACKAGE_luci-mod-admin-full=m +CONFIG_PACKAGE_luci-mod-battstatus=m +CONFIG_PACKAGE_luci-mod-dashboard=m +CONFIG_PACKAGE_luci-mod-dsl=m +CONFIG_PACKAGE_luci-mod-network=m +CONFIG_PACKAGE_luci-mod-rpc=m +CONFIG_PACKAGE_luci-mod-status=m +CONFIG_PACKAGE_luci-mod-system=m # end of 2. Modules # # 3. Applications # -# CONFIG_PACKAGE_luci-app-acl is not set -# CONFIG_PACKAGE_luci-app-acme is not set -# CONFIG_PACKAGE_luci-app-adblock is not set -# CONFIG_PACKAGE_luci-app-adblock-fast is not set -# CONFIG_PACKAGE_luci-app-advanced-reboot is not set -# CONFIG_PACKAGE_luci-app-ahcp is not set -# CONFIG_PACKAGE_luci-app-alist is not set -# CONFIG_PACKAGE_luci-app-apinger is not set -# CONFIG_PACKAGE_luci-app-aria2 is not set -# CONFIG_PACKAGE_luci-app-attendedsysupgrade is not set -# CONFIG_PACKAGE_luci-app-babeld is not set -# CONFIG_PACKAGE_luci-app-banip is not set -# CONFIG_PACKAGE_luci-app-bcp38 is not set -# CONFIG_PACKAGE_luci-app-bmx7 is not set -# CONFIG_PACKAGE_luci-app-cjdns is not set -# CONFIG_PACKAGE_luci-app-clamav is not set -# CONFIG_PACKAGE_luci-app-cloudflared is not set -# CONFIG_PACKAGE_luci-app-commands is not set -# CONFIG_PACKAGE_luci-app-crowdsec-firewall-bouncer is not set -# CONFIG_PACKAGE_luci-app-cshark is not set -# CONFIG_PACKAGE_luci-app-dawn is not set -# CONFIG_PACKAGE_luci-app-dcwapd is not set -# CONFIG_PACKAGE_luci-app-ddns is not set -# CONFIG_PACKAGE_luci-app-diag-core is not set -# CONFIG_PACKAGE_luci-app-dnscrypt-proxy is not set -# CONFIG_PACKAGE_luci-app-dockerman is not set -# CONFIG_PACKAGE_luci-app-dump1090 is not set -# CONFIG_PACKAGE_luci-app-dynapoint is not set -# CONFIG_PACKAGE_luci-app-email is not set -# CONFIG_PACKAGE_luci-app-eoip is not set -# CONFIG_PACKAGE_luci-app-example is not set -# CONFIG_PACKAGE_luci-app-firewall is not set -# CONFIG_PACKAGE_luci-app-frpc is not set -# CONFIG_PACKAGE_luci-app-frps is not set -# CONFIG_PACKAGE_luci-app-fwknopd is not set -# CONFIG_PACKAGE_luci-app-hd-idle is not set -# CONFIG_PACKAGE_luci-app-hnet is not set -# CONFIG_PACKAGE_luci-app-https-dns-proxy is not set -# CONFIG_PACKAGE_luci-app-irqbalance is not set -# CONFIG_PACKAGE_luci-app-ksmbd is not set -# CONFIG_PACKAGE_luci-app-ledtrig-rssi is not set -# CONFIG_PACKAGE_luci-app-ledtrig-switch is not set -# CONFIG_PACKAGE_luci-app-ledtrig-usbport is not set -# CONFIG_PACKAGE_luci-app-libreswan is not set -# CONFIG_PACKAGE_luci-app-lorawan-basicstation is not set -# CONFIG_PACKAGE_luci-app-lxc is not set -# CONFIG_PACKAGE_luci-app-minidlna is not set -# CONFIG_PACKAGE_luci-app-mjpg-streamer is not set -# CONFIG_PACKAGE_luci-app-mwan3 is not set -# CONFIG_PACKAGE_luci-app-natmap is not set -# CONFIG_PACKAGE_luci-app-nextdns is not set -# CONFIG_PACKAGE_luci-app-nft-qos is not set -# CONFIG_PACKAGE_luci-app-nlbwmon is not set -# CONFIG_PACKAGE_luci-app-nut is not set -# CONFIG_PACKAGE_luci-app-ocserv is not set -# CONFIG_PACKAGE_luci-app-olsr is not set -# CONFIG_PACKAGE_luci-app-olsr-services is not set -# CONFIG_PACKAGE_luci-app-olsr-viz is not set -# CONFIG_PACKAGE_luci-app-olsrd2 is not set -# CONFIG_PACKAGE_luci-app-omcproxy is not set -# CONFIG_PACKAGE_luci-app-openthread is not set -# CONFIG_PACKAGE_luci-app-openvpn is not set -# CONFIG_PACKAGE_luci-app-openwisp is not set -# CONFIG_PACKAGE_luci-app-opkg is not set -# CONFIG_PACKAGE_luci-app-p910nd is not set -# CONFIG_PACKAGE_luci-app-pagekitec is not set -# CONFIG_PACKAGE_luci-app-pbr is not set -# CONFIG_PACKAGE_luci-app-polipo is not set -# CONFIG_PACKAGE_luci-app-privoxy is not set -# CONFIG_PACKAGE_luci-app-qos is not set -# CONFIG_PACKAGE_luci-app-radicale is not set -# CONFIG_PACKAGE_luci-app-radicale2 is not set -# CONFIG_PACKAGE_luci-app-rp-pppoe-server is not set -# CONFIG_PACKAGE_luci-app-samba4 is not set -# CONFIG_PACKAGE_luci-app-ser2net is not set -# CONFIG_PACKAGE_luci-app-shadowsocks-libev is not set -# CONFIG_PACKAGE_luci-app-siitwizard is not set -# CONFIG_PACKAGE_luci-app-smartdns is not set -# CONFIG_PACKAGE_luci-app-snmpd is not set -# CONFIG_PACKAGE_luci-app-softether is not set -# CONFIG_PACKAGE_luci-app-splash is not set -# CONFIG_PACKAGE_luci-app-sqm is not set -# CONFIG_PACKAGE_luci-app-squid is not set -# CONFIG_PACKAGE_luci-app-sshtunnel is not set -# CONFIG_PACKAGE_luci-app-statistics is not set -# CONFIG_PACKAGE_luci-app-tinyproxy is not set -# CONFIG_PACKAGE_luci-app-tor is not set -# CONFIG_PACKAGE_luci-app-transmission is not set -# CONFIG_PACKAGE_luci-app-travelmate is not set -# CONFIG_PACKAGE_luci-app-ttyd is not set -# CONFIG_PACKAGE_luci-app-udpxy is not set -# CONFIG_PACKAGE_luci-app-uhttpd is not set -# CONFIG_PACKAGE_luci-app-unbound is not set -# CONFIG_PACKAGE_luci-app-upnp is not set -# CONFIG_PACKAGE_luci-app-usteer is not set -# CONFIG_PACKAGE_luci-app-v2raya is not set -# CONFIG_PACKAGE_luci-app-vnstat is not set -# CONFIG_PACKAGE_luci-app-vnstat2 is not set -# CONFIG_PACKAGE_luci-app-watchcat is not set -# CONFIG_PACKAGE_luci-app-wifischedule is not set -# CONFIG_PACKAGE_luci-app-wol is not set -# CONFIG_PACKAGE_luci-app-xfrpc is not set -# CONFIG_PACKAGE_luci-app-xinetd is not set +CONFIG_PACKAGE_luci-app-acl=m +CONFIG_PACKAGE_luci-app-acme=m +CONFIG_PACKAGE_luci-app-adblock=m +CONFIG_PACKAGE_luci-app-adblock-fast=m +CONFIG_PACKAGE_luci-app-advanced-reboot=m +CONFIG_PACKAGE_luci-app-ahcp=m +CONFIG_PACKAGE_luci-app-alist=m +CONFIG_PACKAGE_luci-app-apinger=m +CONFIG_PACKAGE_luci-app-aria2=m +CONFIG_PACKAGE_luci-app-attendedsysupgrade=m +CONFIG_PACKAGE_luci-app-babeld=m +CONFIG_PACKAGE_luci-app-banip=m +CONFIG_PACKAGE_luci-app-bcp38=m +CONFIG_PACKAGE_luci-app-bmx7=m +CONFIG_PACKAGE_luci-app-cjdns=m +CONFIG_PACKAGE_luci-app-clamav=m +CONFIG_PACKAGE_luci-app-cloudflared=m +CONFIG_PACKAGE_luci-app-commands=m +CONFIG_PACKAGE_luci-app-crowdsec-firewall-bouncer=m +CONFIG_PACKAGE_luci-app-cshark=m +CONFIG_PACKAGE_luci-app-dawn=m +CONFIG_PACKAGE_luci-app-dcwapd=m +CONFIG_PACKAGE_luci-app-ddns=m +CONFIG_PACKAGE_luci-app-diag-core=m +CONFIG_PACKAGE_luci-app-dnscrypt-proxy=m +CONFIG_PACKAGE_luci-app-dockerman=m +CONFIG_PACKAGE_luci-app-dump1090=m +CONFIG_PACKAGE_luci-app-dynapoint=m +CONFIG_PACKAGE_luci-app-email=m +CONFIG_PACKAGE_luci-app-eoip=m +CONFIG_PACKAGE_luci-app-example=m +CONFIG_PACKAGE_luci-app-firewall=m +CONFIG_PACKAGE_luci-app-frpc=m +CONFIG_PACKAGE_luci-app-frps=m +CONFIG_PACKAGE_luci-app-fwknopd=m +CONFIG_PACKAGE_luci-app-hd-idle=m +CONFIG_PACKAGE_luci-app-hnet=m +CONFIG_PACKAGE_luci-app-https-dns-proxy=m +CONFIG_PACKAGE_luci-app-irqbalance=m +CONFIG_PACKAGE_luci-app-keepalived=m +CONFIG_PACKAGE_luci-app-ksmbd=m +CONFIG_PACKAGE_luci-app-ledtrig-rssi=m +CONFIG_PACKAGE_luci-app-ledtrig-switch=m +CONFIG_PACKAGE_luci-app-ledtrig-usbport=m +CONFIG_PACKAGE_luci-app-libreswan=m +CONFIG_PACKAGE_luci-app-lorawan-basicstation=m +CONFIG_PACKAGE_luci-app-lxc=m +CONFIG_PACKAGE_luci-app-minidlna=m +CONFIG_PACKAGE_luci-app-mjpg-streamer=m +CONFIG_PACKAGE_luci-app-mosquitto=m +CONFIG_PACKAGE_luci-app-mwan3=m +CONFIG_PACKAGE_luci-app-natmap=m +CONFIG_PACKAGE_luci-app-nextdns=m +CONFIG_PACKAGE_luci-app-nft-qos=m +CONFIG_PACKAGE_luci-app-nlbwmon=m +CONFIG_PACKAGE_luci-app-nut=m +CONFIG_PACKAGE_luci-app-ocserv=m +CONFIG_PACKAGE_luci-app-olsr=m +CONFIG_PACKAGE_luci-app-olsr-services=m +CONFIG_PACKAGE_luci-app-olsr-viz=m +CONFIG_PACKAGE_luci-app-olsrd2=m +CONFIG_PACKAGE_luci-app-omcproxy=m +CONFIG_PACKAGE_luci-app-openthread=m +CONFIG_PACKAGE_luci-app-openvpn=m +CONFIG_PACKAGE_luci-app-openwisp=m +CONFIG_PACKAGE_luci-app-opkg=m +CONFIG_PACKAGE_luci-app-p910nd=m +CONFIG_PACKAGE_luci-app-pagekitec=m +CONFIG_PACKAGE_luci-app-pbr=m +CONFIG_PACKAGE_luci-app-polipo=m +CONFIG_PACKAGE_luci-app-privoxy=m +CONFIG_PACKAGE_luci-app-qos=m +CONFIG_PACKAGE_luci-app-radicale=m +CONFIG_PACKAGE_luci-app-radicale2=m +CONFIG_PACKAGE_luci-app-rp-pppoe-server=m +CONFIG_PACKAGE_luci-app-samba4=m +CONFIG_PACKAGE_luci-app-ser2net=m +CONFIG_PACKAGE_luci-app-shadowsocks-libev=m +CONFIG_PACKAGE_luci-app-siitwizard=m +CONFIG_PACKAGE_luci-app-smartdns=m +CONFIG_PACKAGE_luci-app-snmpd=m +CONFIG_PACKAGE_luci-app-softether=m +CONFIG_PACKAGE_luci-app-splash=m +CONFIG_PACKAGE_luci-app-sqm=m +CONFIG_PACKAGE_luci-app-squid=m +CONFIG_PACKAGE_luci-app-sshtunnel=m +CONFIG_PACKAGE_luci-app-statistics=m +CONFIG_PACKAGE_luci-app-strongswan-swanctl=m +CONFIG_PACKAGE_luci-app-tinyproxy=m +CONFIG_PACKAGE_luci-app-tor=m +CONFIG_PACKAGE_luci-app-transmission=m +CONFIG_PACKAGE_luci-app-travelmate=m +CONFIG_PACKAGE_luci-app-ttyd=m +CONFIG_PACKAGE_luci-app-udpxy=m +CONFIG_PACKAGE_luci-app-uhttpd=m +CONFIG_PACKAGE_luci-app-unbound=m +CONFIG_PACKAGE_luci-app-upnp=m +CONFIG_PACKAGE_luci-app-usteer=m +CONFIG_PACKAGE_luci-app-v2raya=m +CONFIG_PACKAGE_luci-app-vnstat=m +CONFIG_PACKAGE_luci-app-vnstat2=m +CONFIG_PACKAGE_luci-app-watchcat=m +CONFIG_PACKAGE_luci-app-wifischedule=m +CONFIG_PACKAGE_luci-app-wol=m +CONFIG_PACKAGE_luci-app-xfrpc=m +CONFIG_PACKAGE_luci-app-xinetd=m # end of 3. Applications # # 4. Themes # -# CONFIG_PACKAGE_luci-theme-bootstrap is not set -# CONFIG_PACKAGE_luci-theme-material is not set -# CONFIG_PACKAGE_luci-theme-openwrt is not set -# CONFIG_PACKAGE_luci-theme-openwrt-2020 is not set +CONFIG_PACKAGE_luci-theme-bootstrap=m +CONFIG_PACKAGE_luci-theme-material=m +CONFIG_PACKAGE_luci-theme-openwrt=m +CONFIG_PACKAGE_luci-theme-openwrt-2020=m # end of 4. Themes # # 5. Protocols # -# CONFIG_PACKAGE_luci-proto-3g is not set -# CONFIG_PACKAGE_luci-proto-autoip is not set -# CONFIG_PACKAGE_luci-proto-batman-adv is not set -# CONFIG_PACKAGE_luci-proto-bonding is not set -# CONFIG_PACKAGE_luci-proto-external is not set -# CONFIG_PACKAGE_luci-proto-gre is not set -# CONFIG_PACKAGE_luci-proto-hnet is not set -# CONFIG_PACKAGE_luci-proto-ipip is not set -# CONFIG_PACKAGE_luci-proto-ipv6 is not set -# CONFIG_PACKAGE_luci-proto-mbim is not set -# CONFIG_PACKAGE_luci-proto-modemmanager is not set -# CONFIG_PACKAGE_luci-proto-ncm is not set -# CONFIG_PACKAGE_luci-proto-nebula is not set -# CONFIG_PACKAGE_luci-proto-openconnect is not set -# CONFIG_PACKAGE_luci-proto-openfortivpn is not set -# CONFIG_PACKAGE_luci-proto-ppp is not set -# CONFIG_PACKAGE_luci-proto-pppossh is not set -# CONFIG_PACKAGE_luci-proto-qmi is not set -# CONFIG_PACKAGE_luci-proto-relay is not set -# CONFIG_PACKAGE_luci-proto-sstp is not set -# CONFIG_PACKAGE_luci-proto-unet is not set -# CONFIG_PACKAGE_luci-proto-vpnc is not set -# CONFIG_PACKAGE_luci-proto-vti is not set -# CONFIG_PACKAGE_luci-proto-vxlan is not set -# CONFIG_PACKAGE_luci-proto-wireguard is not set -# CONFIG_PACKAGE_luci-proto-xfrm is not set -# CONFIG_PACKAGE_luci-proto-yggdrasil is not set +CONFIG_PACKAGE_luci-proto-3g=m +CONFIG_PACKAGE_luci-proto-autoip=m +CONFIG_PACKAGE_luci-proto-batman-adv=m +CONFIG_PACKAGE_luci-proto-bonding=m +CONFIG_PACKAGE_luci-proto-external=m +CONFIG_PACKAGE_luci-proto-gre=m +CONFIG_PACKAGE_luci-proto-hnet=m +CONFIG_PACKAGE_luci-proto-ipip=m +CONFIG_PACKAGE_luci-proto-ipv6=m +CONFIG_PACKAGE_luci-proto-mbim=m +CONFIG_PACKAGE_luci-proto-modemmanager=m +CONFIG_PACKAGE_luci-proto-ncm=m +CONFIG_PACKAGE_luci-proto-nebula=m +CONFIG_PACKAGE_luci-proto-openconnect=m +CONFIG_PACKAGE_luci-proto-openfortivpn=m +CONFIG_PACKAGE_luci-proto-ppp=m +CONFIG_PACKAGE_luci-proto-pppossh=m +CONFIG_PACKAGE_luci-proto-qmi=m +CONFIG_PACKAGE_luci-proto-relay=m +CONFIG_PACKAGE_luci-proto-sstp=m +CONFIG_PACKAGE_luci-proto-unet=m +CONFIG_PACKAGE_luci-proto-vpnc=m +CONFIG_PACKAGE_luci-proto-vti=m +CONFIG_PACKAGE_luci-proto-vxlan=m +CONFIG_PACKAGE_luci-proto-wireguard=m +CONFIG_PACKAGE_luci-proto-xfrm=m +CONFIG_PACKAGE_luci-proto-yggdrasil=m # end of 5. Protocols # # 6. Libraries # -# CONFIG_PACKAGE_luci-lib-base is not set -# CONFIG_PACKAGE_luci-lib-httpclient is not set -# CONFIG_PACKAGE_luci-lib-httpprotoutils is not set -# CONFIG_PACKAGE_luci-lib-ip is not set -# CONFIG_PACKAGE_luci-lib-ipkg is not set -# CONFIG_PACKAGE_luci-lib-iptparser is not set -# CONFIG_PACKAGE_luci-lib-json is not set -# CONFIG_PACKAGE_luci-lib-jsonc is not set -# CONFIG_PACKAGE_luci-lib-nixio is not set -# CONFIG_PACKAGE_luci-lib-px5g is not set +CONFIG_PACKAGE_luci-lib-base=m +CONFIG_PACKAGE_luci-lib-chartjs=m +CONFIG_PACKAGE_luci-lib-httpclient=m +CONFIG_PACKAGE_luci-lib-httpprotoutils=m +CONFIG_PACKAGE_luci-lib-ip=m +CONFIG_PACKAGE_luci-lib-ipkg=m +CONFIG_PACKAGE_luci-lib-iptparser=m +CONFIG_PACKAGE_luci-lib-json=m +CONFIG_PACKAGE_luci-lib-jsonc=m +CONFIG_PACKAGE_luci-lib-nixio=m +CONFIG_PACKAGE_luci-lib-px5g=m # end of 6. Libraries + +CONFIG_PACKAGE_luci-i18n-acl-ar=m +CONFIG_PACKAGE_luci-i18n-acl-bg=m +CONFIG_PACKAGE_luci-i18n-acl-bn=m +CONFIG_PACKAGE_luci-i18n-acl-ca=m +CONFIG_PACKAGE_luci-i18n-acl-cs=m +CONFIG_PACKAGE_luci-i18n-acl-da=m +CONFIG_PACKAGE_luci-i18n-acl-de=m +CONFIG_PACKAGE_luci-i18n-acl-el=m +CONFIG_PACKAGE_luci-i18n-acl-es=m +CONFIG_PACKAGE_luci-i18n-acl-fi=m +CONFIG_PACKAGE_luci-i18n-acl-fr=m +CONFIG_PACKAGE_luci-i18n-acl-he=m +CONFIG_PACKAGE_luci-i18n-acl-hi=m +CONFIG_PACKAGE_luci-i18n-acl-hu=m +CONFIG_PACKAGE_luci-i18n-acl-it=m +CONFIG_PACKAGE_luci-i18n-acl-ja=m +CONFIG_PACKAGE_luci-i18n-acl-ko=m +CONFIG_PACKAGE_luci-i18n-acl-lt=m +CONFIG_PACKAGE_luci-i18n-acl-mr=m +CONFIG_PACKAGE_luci-i18n-acl-ms=m +CONFIG_PACKAGE_luci-i18n-acl-nl=m +CONFIG_PACKAGE_luci-i18n-acl-no=m +CONFIG_PACKAGE_luci-i18n-acl-pl=m +CONFIG_PACKAGE_luci-i18n-acl-pt=m +CONFIG_PACKAGE_luci-i18n-acl-pt-br=m +CONFIG_PACKAGE_luci-i18n-acl-ro=m +CONFIG_PACKAGE_luci-i18n-acl-ru=m +CONFIG_PACKAGE_luci-i18n-acl-sk=m +CONFIG_PACKAGE_luci-i18n-acl-sv=m +CONFIG_PACKAGE_luci-i18n-acl-tr=m +CONFIG_PACKAGE_luci-i18n-acl-uk=m +CONFIG_PACKAGE_luci-i18n-acl-vi=m +CONFIG_PACKAGE_luci-i18n-acl-zh-cn=m +CONFIG_PACKAGE_luci-i18n-acl-zh-tw=m +CONFIG_PACKAGE_luci-i18n-acme-ar=m +CONFIG_PACKAGE_luci-i18n-acme-bg=m +CONFIG_PACKAGE_luci-i18n-acme-bn=m +CONFIG_PACKAGE_luci-i18n-acme-ca=m +CONFIG_PACKAGE_luci-i18n-acme-cs=m +CONFIG_PACKAGE_luci-i18n-acme-da=m +CONFIG_PACKAGE_luci-i18n-acme-de=m +CONFIG_PACKAGE_luci-i18n-acme-el=m +CONFIG_PACKAGE_luci-i18n-acme-es=m +CONFIG_PACKAGE_luci-i18n-acme-fi=m +CONFIG_PACKAGE_luci-i18n-acme-fr=m +CONFIG_PACKAGE_luci-i18n-acme-he=m +CONFIG_PACKAGE_luci-i18n-acme-hi=m +CONFIG_PACKAGE_luci-i18n-acme-hu=m +CONFIG_PACKAGE_luci-i18n-acme-it=m +CONFIG_PACKAGE_luci-i18n-acme-ja=m +CONFIG_PACKAGE_luci-i18n-acme-ko=m +CONFIG_PACKAGE_luci-i18n-acme-lt=m +CONFIG_PACKAGE_luci-i18n-acme-mr=m +CONFIG_PACKAGE_luci-i18n-acme-ms=m +CONFIG_PACKAGE_luci-i18n-acme-nl=m +CONFIG_PACKAGE_luci-i18n-acme-no=m +CONFIG_PACKAGE_luci-i18n-acme-pl=m +CONFIG_PACKAGE_luci-i18n-acme-pt=m +CONFIG_PACKAGE_luci-i18n-acme-pt-br=m +CONFIG_PACKAGE_luci-i18n-acme-ro=m +CONFIG_PACKAGE_luci-i18n-acme-ru=m +CONFIG_PACKAGE_luci-i18n-acme-sk=m +CONFIG_PACKAGE_luci-i18n-acme-sv=m +CONFIG_PACKAGE_luci-i18n-acme-tr=m +CONFIG_PACKAGE_luci-i18n-acme-uk=m +CONFIG_PACKAGE_luci-i18n-acme-vi=m +CONFIG_PACKAGE_luci-i18n-acme-zh-cn=m +CONFIG_PACKAGE_luci-i18n-acme-zh-tw=m +CONFIG_PACKAGE_luci-i18n-adblock-ar=m +CONFIG_PACKAGE_luci-i18n-adblock-bg=m +CONFIG_PACKAGE_luci-i18n-adblock-bn=m +CONFIG_PACKAGE_luci-i18n-adblock-ca=m +CONFIG_PACKAGE_luci-i18n-adblock-cs=m +CONFIG_PACKAGE_luci-i18n-adblock-da=m +CONFIG_PACKAGE_luci-i18n-adblock-de=m +CONFIG_PACKAGE_luci-i18n-adblock-el=m +CONFIG_PACKAGE_luci-i18n-adblock-es=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ar=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-bg=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-bn=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ca=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-cs=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-da=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-de=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-el=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-es=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-fi=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-fr=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-he=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-hi=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-hu=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-it=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ja=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ko=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-lt=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-mr=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ms=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-nl=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-no=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-pl=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-pt=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-pt-br=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ro=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-ru=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-sk=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-sv=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-tr=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-uk=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-vi=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-zh-cn=m +CONFIG_PACKAGE_luci-i18n-adblock-fast-zh-tw=m +CONFIG_PACKAGE_luci-i18n-adblock-fi=m +CONFIG_PACKAGE_luci-i18n-adblock-fr=m +CONFIG_PACKAGE_luci-i18n-adblock-he=m +CONFIG_PACKAGE_luci-i18n-adblock-hi=m +CONFIG_PACKAGE_luci-i18n-adblock-hu=m +CONFIG_PACKAGE_luci-i18n-adblock-it=m +CONFIG_PACKAGE_luci-i18n-adblock-ja=m +CONFIG_PACKAGE_luci-i18n-adblock-ko=m +CONFIG_PACKAGE_luci-i18n-adblock-lt=m +CONFIG_PACKAGE_luci-i18n-adblock-mr=m +CONFIG_PACKAGE_luci-i18n-adblock-ms=m +CONFIG_PACKAGE_luci-i18n-adblock-nl=m +CONFIG_PACKAGE_luci-i18n-adblock-no=m +CONFIG_PACKAGE_luci-i18n-adblock-pl=m +CONFIG_PACKAGE_luci-i18n-adblock-pt=m +CONFIG_PACKAGE_luci-i18n-adblock-pt-br=m +CONFIG_PACKAGE_luci-i18n-adblock-ro=m +CONFIG_PACKAGE_luci-i18n-adblock-ru=m +CONFIG_PACKAGE_luci-i18n-adblock-sk=m +CONFIG_PACKAGE_luci-i18n-adblock-sv=m +CONFIG_PACKAGE_luci-i18n-adblock-tr=m +CONFIG_PACKAGE_luci-i18n-adblock-uk=m +CONFIG_PACKAGE_luci-i18n-adblock-vi=m +CONFIG_PACKAGE_luci-i18n-adblock-zh-cn=m +CONFIG_PACKAGE_luci-i18n-adblock-zh-tw=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ar=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-bg=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-bn=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ca=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-cs=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-da=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-de=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-el=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-es=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-fi=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-fr=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-he=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-hi=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-hu=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-it=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ja=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ko=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-lt=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-mr=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ms=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-nl=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-no=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-pl=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-pt=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-pt-br=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ro=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-ru=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-sk=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-sv=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-tr=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-uk=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-vi=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-zh-cn=m +CONFIG_PACKAGE_luci-i18n-advanced-reboot-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ahcp-ar=m +CONFIG_PACKAGE_luci-i18n-ahcp-bg=m +CONFIG_PACKAGE_luci-i18n-ahcp-bn=m +CONFIG_PACKAGE_luci-i18n-ahcp-ca=m +CONFIG_PACKAGE_luci-i18n-ahcp-cs=m +CONFIG_PACKAGE_luci-i18n-ahcp-da=m +CONFIG_PACKAGE_luci-i18n-ahcp-de=m +CONFIG_PACKAGE_luci-i18n-ahcp-el=m +CONFIG_PACKAGE_luci-i18n-ahcp-es=m +CONFIG_PACKAGE_luci-i18n-ahcp-fi=m +CONFIG_PACKAGE_luci-i18n-ahcp-fr=m +CONFIG_PACKAGE_luci-i18n-ahcp-he=m +CONFIG_PACKAGE_luci-i18n-ahcp-hi=m +CONFIG_PACKAGE_luci-i18n-ahcp-hu=m +CONFIG_PACKAGE_luci-i18n-ahcp-it=m +CONFIG_PACKAGE_luci-i18n-ahcp-ja=m +CONFIG_PACKAGE_luci-i18n-ahcp-ko=m +CONFIG_PACKAGE_luci-i18n-ahcp-lt=m +CONFIG_PACKAGE_luci-i18n-ahcp-mr=m +CONFIG_PACKAGE_luci-i18n-ahcp-ms=m +CONFIG_PACKAGE_luci-i18n-ahcp-nl=m +CONFIG_PACKAGE_luci-i18n-ahcp-no=m +CONFIG_PACKAGE_luci-i18n-ahcp-pl=m +CONFIG_PACKAGE_luci-i18n-ahcp-pt=m +CONFIG_PACKAGE_luci-i18n-ahcp-pt-br=m +CONFIG_PACKAGE_luci-i18n-ahcp-ro=m +CONFIG_PACKAGE_luci-i18n-ahcp-ru=m +CONFIG_PACKAGE_luci-i18n-ahcp-sk=m +CONFIG_PACKAGE_luci-i18n-ahcp-sv=m +CONFIG_PACKAGE_luci-i18n-ahcp-tr=m +CONFIG_PACKAGE_luci-i18n-ahcp-uk=m +CONFIG_PACKAGE_luci-i18n-ahcp-vi=m +CONFIG_PACKAGE_luci-i18n-ahcp-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ahcp-zh-tw=m +CONFIG_PACKAGE_luci-i18n-alist-ar=m +CONFIG_PACKAGE_luci-i18n-alist-bg=m +CONFIG_PACKAGE_luci-i18n-alist-bn=m +CONFIG_PACKAGE_luci-i18n-alist-ca=m +CONFIG_PACKAGE_luci-i18n-alist-cs=m +CONFIG_PACKAGE_luci-i18n-alist-da=m +CONFIG_PACKAGE_luci-i18n-alist-de=m +CONFIG_PACKAGE_luci-i18n-alist-el=m +CONFIG_PACKAGE_luci-i18n-alist-es=m +CONFIG_PACKAGE_luci-i18n-alist-fi=m +CONFIG_PACKAGE_luci-i18n-alist-fr=m +CONFIG_PACKAGE_luci-i18n-alist-he=m +CONFIG_PACKAGE_luci-i18n-alist-hi=m +CONFIG_PACKAGE_luci-i18n-alist-hu=m +CONFIG_PACKAGE_luci-i18n-alist-it=m +CONFIG_PACKAGE_luci-i18n-alist-ja=m +CONFIG_PACKAGE_luci-i18n-alist-ko=m +CONFIG_PACKAGE_luci-i18n-alist-lt=m +CONFIG_PACKAGE_luci-i18n-alist-mr=m +CONFIG_PACKAGE_luci-i18n-alist-ms=m +CONFIG_PACKAGE_luci-i18n-alist-nl=m +CONFIG_PACKAGE_luci-i18n-alist-no=m +CONFIG_PACKAGE_luci-i18n-alist-pl=m +CONFIG_PACKAGE_luci-i18n-alist-pt=m +CONFIG_PACKAGE_luci-i18n-alist-pt-br=m +CONFIG_PACKAGE_luci-i18n-alist-ro=m +CONFIG_PACKAGE_luci-i18n-alist-ru=m +CONFIG_PACKAGE_luci-i18n-alist-sk=m +CONFIG_PACKAGE_luci-i18n-alist-sv=m +CONFIG_PACKAGE_luci-i18n-alist-tr=m +CONFIG_PACKAGE_luci-i18n-alist-uk=m +CONFIG_PACKAGE_luci-i18n-alist-vi=m +CONFIG_PACKAGE_luci-i18n-alist-zh-cn=m +CONFIG_PACKAGE_luci-i18n-alist-zh-tw=m +CONFIG_PACKAGE_luci-i18n-aria2-ar=m +CONFIG_PACKAGE_luci-i18n-aria2-bg=m +CONFIG_PACKAGE_luci-i18n-aria2-bn=m +CONFIG_PACKAGE_luci-i18n-aria2-ca=m +CONFIG_PACKAGE_luci-i18n-aria2-cs=m +CONFIG_PACKAGE_luci-i18n-aria2-da=m +CONFIG_PACKAGE_luci-i18n-aria2-de=m +CONFIG_PACKAGE_luci-i18n-aria2-el=m +CONFIG_PACKAGE_luci-i18n-aria2-es=m +CONFIG_PACKAGE_luci-i18n-aria2-fi=m +CONFIG_PACKAGE_luci-i18n-aria2-fr=m +CONFIG_PACKAGE_luci-i18n-aria2-he=m +CONFIG_PACKAGE_luci-i18n-aria2-hi=m +CONFIG_PACKAGE_luci-i18n-aria2-hu=m +CONFIG_PACKAGE_luci-i18n-aria2-it=m +CONFIG_PACKAGE_luci-i18n-aria2-ja=m +CONFIG_PACKAGE_luci-i18n-aria2-ko=m +CONFIG_PACKAGE_luci-i18n-aria2-lt=m +CONFIG_PACKAGE_luci-i18n-aria2-mr=m +CONFIG_PACKAGE_luci-i18n-aria2-ms=m +CONFIG_PACKAGE_luci-i18n-aria2-nl=m +CONFIG_PACKAGE_luci-i18n-aria2-no=m +CONFIG_PACKAGE_luci-i18n-aria2-pl=m +CONFIG_PACKAGE_luci-i18n-aria2-pt=m +CONFIG_PACKAGE_luci-i18n-aria2-pt-br=m +CONFIG_PACKAGE_luci-i18n-aria2-ro=m +CONFIG_PACKAGE_luci-i18n-aria2-ru=m +CONFIG_PACKAGE_luci-i18n-aria2-sk=m +CONFIG_PACKAGE_luci-i18n-aria2-sv=m +CONFIG_PACKAGE_luci-i18n-aria2-tr=m +CONFIG_PACKAGE_luci-i18n-aria2-uk=m +CONFIG_PACKAGE_luci-i18n-aria2-vi=m +CONFIG_PACKAGE_luci-i18n-aria2-zh-cn=m +CONFIG_PACKAGE_luci-i18n-aria2-zh-tw=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ar=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-bg=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-bn=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ca=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-cs=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-da=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-de=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-el=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-es=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-fi=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-fr=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-he=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-hi=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-hu=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-it=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ja=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ko=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-lt=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-mr=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ms=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-nl=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-no=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-pl=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-pt=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-pt-br=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ro=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-ru=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-sk=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-sv=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-tr=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-uk=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-vi=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-zh-cn=m +CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-zh-tw=m +CONFIG_PACKAGE_luci-i18n-banip-ar=m +CONFIG_PACKAGE_luci-i18n-banip-bg=m +CONFIG_PACKAGE_luci-i18n-banip-bn=m +CONFIG_PACKAGE_luci-i18n-banip-ca=m +CONFIG_PACKAGE_luci-i18n-banip-cs=m +CONFIG_PACKAGE_luci-i18n-banip-da=m +CONFIG_PACKAGE_luci-i18n-banip-de=m +CONFIG_PACKAGE_luci-i18n-banip-el=m +CONFIG_PACKAGE_luci-i18n-banip-es=m +CONFIG_PACKAGE_luci-i18n-banip-fi=m +CONFIG_PACKAGE_luci-i18n-banip-fr=m +CONFIG_PACKAGE_luci-i18n-banip-he=m +CONFIG_PACKAGE_luci-i18n-banip-hi=m +CONFIG_PACKAGE_luci-i18n-banip-hu=m +CONFIG_PACKAGE_luci-i18n-banip-it=m +CONFIG_PACKAGE_luci-i18n-banip-ja=m +CONFIG_PACKAGE_luci-i18n-banip-ko=m +CONFIG_PACKAGE_luci-i18n-banip-lt=m +CONFIG_PACKAGE_luci-i18n-banip-mr=m +CONFIG_PACKAGE_luci-i18n-banip-ms=m +CONFIG_PACKAGE_luci-i18n-banip-nl=m +CONFIG_PACKAGE_luci-i18n-banip-no=m +CONFIG_PACKAGE_luci-i18n-banip-pl=m +CONFIG_PACKAGE_luci-i18n-banip-pt=m +CONFIG_PACKAGE_luci-i18n-banip-pt-br=m +CONFIG_PACKAGE_luci-i18n-banip-ro=m +CONFIG_PACKAGE_luci-i18n-banip-ru=m +CONFIG_PACKAGE_luci-i18n-banip-sk=m +CONFIG_PACKAGE_luci-i18n-banip-sv=m +CONFIG_PACKAGE_luci-i18n-banip-tr=m +CONFIG_PACKAGE_luci-i18n-banip-uk=m +CONFIG_PACKAGE_luci-i18n-banip-vi=m +CONFIG_PACKAGE_luci-i18n-banip-zh-cn=m +CONFIG_PACKAGE_luci-i18n-banip-zh-tw=m +CONFIG_PACKAGE_luci-i18n-base-ar=m +CONFIG_PACKAGE_luci-i18n-base-bg=m +CONFIG_PACKAGE_luci-i18n-base-bn=m +CONFIG_PACKAGE_luci-i18n-base-ca=m +CONFIG_PACKAGE_luci-i18n-base-cs=m +CONFIG_PACKAGE_luci-i18n-base-da=m +CONFIG_PACKAGE_luci-i18n-base-de=m +CONFIG_PACKAGE_luci-i18n-base-el=m +CONFIG_PACKAGE_luci-i18n-base-es=m +CONFIG_PACKAGE_luci-i18n-base-fi=m +CONFIG_PACKAGE_luci-i18n-base-fr=m +CONFIG_PACKAGE_luci-i18n-base-he=m +CONFIG_PACKAGE_luci-i18n-base-hi=m +CONFIG_PACKAGE_luci-i18n-base-hu=m +CONFIG_PACKAGE_luci-i18n-base-it=m +CONFIG_PACKAGE_luci-i18n-base-ja=m +CONFIG_PACKAGE_luci-i18n-base-ko=m +CONFIG_PACKAGE_luci-i18n-base-lt=m +CONFIG_PACKAGE_luci-i18n-base-mr=m +CONFIG_PACKAGE_luci-i18n-base-ms=m +CONFIG_PACKAGE_luci-i18n-base-nl=m +CONFIG_PACKAGE_luci-i18n-base-no=m +CONFIG_PACKAGE_luci-i18n-base-pl=m +CONFIG_PACKAGE_luci-i18n-base-pt=m +CONFIG_PACKAGE_luci-i18n-base-pt-br=m +CONFIG_PACKAGE_luci-i18n-base-ro=m +CONFIG_PACKAGE_luci-i18n-base-ru=m +CONFIG_PACKAGE_luci-i18n-base-sk=m +CONFIG_PACKAGE_luci-i18n-base-sv=m +CONFIG_PACKAGE_luci-i18n-base-tr=m +CONFIG_PACKAGE_luci-i18n-base-uk=m +CONFIG_PACKAGE_luci-i18n-base-vi=m +CONFIG_PACKAGE_luci-i18n-base-zh-cn=m +CONFIG_PACKAGE_luci-i18n-base-zh-tw=m +CONFIG_PACKAGE_luci-i18n-battstatus-ar=m +CONFIG_PACKAGE_luci-i18n-battstatus-bg=m +CONFIG_PACKAGE_luci-i18n-battstatus-bn=m +CONFIG_PACKAGE_luci-i18n-battstatus-ca=m +CONFIG_PACKAGE_luci-i18n-battstatus-cs=m +CONFIG_PACKAGE_luci-i18n-battstatus-da=m +CONFIG_PACKAGE_luci-i18n-battstatus-de=m +CONFIG_PACKAGE_luci-i18n-battstatus-el=m +CONFIG_PACKAGE_luci-i18n-battstatus-es=m +CONFIG_PACKAGE_luci-i18n-battstatus-fi=m +CONFIG_PACKAGE_luci-i18n-battstatus-fr=m +CONFIG_PACKAGE_luci-i18n-battstatus-he=m +CONFIG_PACKAGE_luci-i18n-battstatus-hi=m +CONFIG_PACKAGE_luci-i18n-battstatus-hu=m +CONFIG_PACKAGE_luci-i18n-battstatus-it=m +CONFIG_PACKAGE_luci-i18n-battstatus-ja=m +CONFIG_PACKAGE_luci-i18n-battstatus-ko=m +CONFIG_PACKAGE_luci-i18n-battstatus-lt=m +CONFIG_PACKAGE_luci-i18n-battstatus-mr=m +CONFIG_PACKAGE_luci-i18n-battstatus-ms=m +CONFIG_PACKAGE_luci-i18n-battstatus-nl=m +CONFIG_PACKAGE_luci-i18n-battstatus-no=m +CONFIG_PACKAGE_luci-i18n-battstatus-pl=m +CONFIG_PACKAGE_luci-i18n-battstatus-pt=m +CONFIG_PACKAGE_luci-i18n-battstatus-pt-br=m +CONFIG_PACKAGE_luci-i18n-battstatus-ro=m +CONFIG_PACKAGE_luci-i18n-battstatus-ru=m +CONFIG_PACKAGE_luci-i18n-battstatus-sk=m +CONFIG_PACKAGE_luci-i18n-battstatus-sv=m +CONFIG_PACKAGE_luci-i18n-battstatus-tr=m +CONFIG_PACKAGE_luci-i18n-battstatus-uk=m +CONFIG_PACKAGE_luci-i18n-battstatus-vi=m +CONFIG_PACKAGE_luci-i18n-battstatus-zh-cn=m +CONFIG_PACKAGE_luci-i18n-battstatus-zh-tw=m +CONFIG_PACKAGE_luci-i18n-bcp38-ar=m +CONFIG_PACKAGE_luci-i18n-bcp38-bg=m +CONFIG_PACKAGE_luci-i18n-bcp38-bn=m +CONFIG_PACKAGE_luci-i18n-bcp38-ca=m +CONFIG_PACKAGE_luci-i18n-bcp38-cs=m +CONFIG_PACKAGE_luci-i18n-bcp38-da=m +CONFIG_PACKAGE_luci-i18n-bcp38-de=m +CONFIG_PACKAGE_luci-i18n-bcp38-el=m +CONFIG_PACKAGE_luci-i18n-bcp38-es=m +CONFIG_PACKAGE_luci-i18n-bcp38-fi=m +CONFIG_PACKAGE_luci-i18n-bcp38-fr=m +CONFIG_PACKAGE_luci-i18n-bcp38-he=m +CONFIG_PACKAGE_luci-i18n-bcp38-hi=m +CONFIG_PACKAGE_luci-i18n-bcp38-hu=m +CONFIG_PACKAGE_luci-i18n-bcp38-it=m +CONFIG_PACKAGE_luci-i18n-bcp38-ja=m +CONFIG_PACKAGE_luci-i18n-bcp38-ko=m +CONFIG_PACKAGE_luci-i18n-bcp38-lt=m +CONFIG_PACKAGE_luci-i18n-bcp38-mr=m +CONFIG_PACKAGE_luci-i18n-bcp38-ms=m +CONFIG_PACKAGE_luci-i18n-bcp38-nl=m +CONFIG_PACKAGE_luci-i18n-bcp38-no=m +CONFIG_PACKAGE_luci-i18n-bcp38-pl=m +CONFIG_PACKAGE_luci-i18n-bcp38-pt=m +CONFIG_PACKAGE_luci-i18n-bcp38-pt-br=m +CONFIG_PACKAGE_luci-i18n-bcp38-ro=m +CONFIG_PACKAGE_luci-i18n-bcp38-ru=m +CONFIG_PACKAGE_luci-i18n-bcp38-sk=m +CONFIG_PACKAGE_luci-i18n-bcp38-sv=m +CONFIG_PACKAGE_luci-i18n-bcp38-tr=m +CONFIG_PACKAGE_luci-i18n-bcp38-uk=m +CONFIG_PACKAGE_luci-i18n-bcp38-vi=m +CONFIG_PACKAGE_luci-i18n-bcp38-zh-cn=m +CONFIG_PACKAGE_luci-i18n-bcp38-zh-tw=m +CONFIG_PACKAGE_luci-i18n-bmx7-ar=m +CONFIG_PACKAGE_luci-i18n-bmx7-bg=m +CONFIG_PACKAGE_luci-i18n-bmx7-bn=m +CONFIG_PACKAGE_luci-i18n-bmx7-ca=m +CONFIG_PACKAGE_luci-i18n-bmx7-cs=m +CONFIG_PACKAGE_luci-i18n-bmx7-da=m +CONFIG_PACKAGE_luci-i18n-bmx7-de=m +CONFIG_PACKAGE_luci-i18n-bmx7-el=m +CONFIG_PACKAGE_luci-i18n-bmx7-es=m +CONFIG_PACKAGE_luci-i18n-bmx7-fi=m +CONFIG_PACKAGE_luci-i18n-bmx7-fr=m +CONFIG_PACKAGE_luci-i18n-bmx7-he=m +CONFIG_PACKAGE_luci-i18n-bmx7-hi=m +CONFIG_PACKAGE_luci-i18n-bmx7-hu=m +CONFIG_PACKAGE_luci-i18n-bmx7-it=m +CONFIG_PACKAGE_luci-i18n-bmx7-ja=m +CONFIG_PACKAGE_luci-i18n-bmx7-ko=m +CONFIG_PACKAGE_luci-i18n-bmx7-lt=m +CONFIG_PACKAGE_luci-i18n-bmx7-mr=m +CONFIG_PACKAGE_luci-i18n-bmx7-ms=m +CONFIG_PACKAGE_luci-i18n-bmx7-nl=m +CONFIG_PACKAGE_luci-i18n-bmx7-no=m +CONFIG_PACKAGE_luci-i18n-bmx7-pl=m +CONFIG_PACKAGE_luci-i18n-bmx7-pt=m +CONFIG_PACKAGE_luci-i18n-bmx7-pt-br=m +CONFIG_PACKAGE_luci-i18n-bmx7-ro=m +CONFIG_PACKAGE_luci-i18n-bmx7-ru=m +CONFIG_PACKAGE_luci-i18n-bmx7-sk=m +CONFIG_PACKAGE_luci-i18n-bmx7-sv=m +CONFIG_PACKAGE_luci-i18n-bmx7-tr=m +CONFIG_PACKAGE_luci-i18n-bmx7-uk=m +CONFIG_PACKAGE_luci-i18n-bmx7-vi=m +CONFIG_PACKAGE_luci-i18n-bmx7-zh-cn=m +CONFIG_PACKAGE_luci-i18n-bmx7-zh-tw=m +CONFIG_PACKAGE_luci-i18n-clamav-ar=m +CONFIG_PACKAGE_luci-i18n-clamav-bg=m +CONFIG_PACKAGE_luci-i18n-clamav-bn=m +CONFIG_PACKAGE_luci-i18n-clamav-ca=m +CONFIG_PACKAGE_luci-i18n-clamav-cs=m +CONFIG_PACKAGE_luci-i18n-clamav-da=m +CONFIG_PACKAGE_luci-i18n-clamav-de=m +CONFIG_PACKAGE_luci-i18n-clamav-el=m +CONFIG_PACKAGE_luci-i18n-clamav-es=m +CONFIG_PACKAGE_luci-i18n-clamav-fi=m +CONFIG_PACKAGE_luci-i18n-clamav-fr=m +CONFIG_PACKAGE_luci-i18n-clamav-he=m +CONFIG_PACKAGE_luci-i18n-clamav-hi=m +CONFIG_PACKAGE_luci-i18n-clamav-hu=m +CONFIG_PACKAGE_luci-i18n-clamav-it=m +CONFIG_PACKAGE_luci-i18n-clamav-ja=m +CONFIG_PACKAGE_luci-i18n-clamav-ko=m +CONFIG_PACKAGE_luci-i18n-clamav-lt=m +CONFIG_PACKAGE_luci-i18n-clamav-mr=m +CONFIG_PACKAGE_luci-i18n-clamav-ms=m +CONFIG_PACKAGE_luci-i18n-clamav-nl=m +CONFIG_PACKAGE_luci-i18n-clamav-no=m +CONFIG_PACKAGE_luci-i18n-clamav-pl=m +CONFIG_PACKAGE_luci-i18n-clamav-pt=m +CONFIG_PACKAGE_luci-i18n-clamav-pt-br=m +CONFIG_PACKAGE_luci-i18n-clamav-ro=m +CONFIG_PACKAGE_luci-i18n-clamav-ru=m +CONFIG_PACKAGE_luci-i18n-clamav-sk=m +CONFIG_PACKAGE_luci-i18n-clamav-sv=m +CONFIG_PACKAGE_luci-i18n-clamav-tr=m +CONFIG_PACKAGE_luci-i18n-clamav-uk=m +CONFIG_PACKAGE_luci-i18n-clamav-vi=m +CONFIG_PACKAGE_luci-i18n-clamav-zh-cn=m +CONFIG_PACKAGE_luci-i18n-clamav-zh-tw=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ar=m +CONFIG_PACKAGE_luci-i18n-cloudflared-bg=m +CONFIG_PACKAGE_luci-i18n-cloudflared-bn=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ca=m +CONFIG_PACKAGE_luci-i18n-cloudflared-cs=m +CONFIG_PACKAGE_luci-i18n-cloudflared-da=m +CONFIG_PACKAGE_luci-i18n-cloudflared-de=m +CONFIG_PACKAGE_luci-i18n-cloudflared-el=m +CONFIG_PACKAGE_luci-i18n-cloudflared-es=m +CONFIG_PACKAGE_luci-i18n-cloudflared-fi=m +CONFIG_PACKAGE_luci-i18n-cloudflared-fr=m +CONFIG_PACKAGE_luci-i18n-cloudflared-he=m +CONFIG_PACKAGE_luci-i18n-cloudflared-hi=m +CONFIG_PACKAGE_luci-i18n-cloudflared-hu=m +CONFIG_PACKAGE_luci-i18n-cloudflared-it=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ja=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ko=m +CONFIG_PACKAGE_luci-i18n-cloudflared-lt=m +CONFIG_PACKAGE_luci-i18n-cloudflared-mr=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ms=m +CONFIG_PACKAGE_luci-i18n-cloudflared-nl=m +CONFIG_PACKAGE_luci-i18n-cloudflared-no=m +CONFIG_PACKAGE_luci-i18n-cloudflared-pl=m +CONFIG_PACKAGE_luci-i18n-cloudflared-pt=m +CONFIG_PACKAGE_luci-i18n-cloudflared-pt-br=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ro=m +CONFIG_PACKAGE_luci-i18n-cloudflared-ru=m +CONFIG_PACKAGE_luci-i18n-cloudflared-sk=m +CONFIG_PACKAGE_luci-i18n-cloudflared-sv=m +CONFIG_PACKAGE_luci-i18n-cloudflared-tr=m +CONFIG_PACKAGE_luci-i18n-cloudflared-uk=m +CONFIG_PACKAGE_luci-i18n-cloudflared-vi=m +CONFIG_PACKAGE_luci-i18n-cloudflared-zh-cn=m +CONFIG_PACKAGE_luci-i18n-cloudflared-zh-tw=m +CONFIG_PACKAGE_luci-i18n-commands-ar=m +CONFIG_PACKAGE_luci-i18n-commands-bg=m +CONFIG_PACKAGE_luci-i18n-commands-bn=m +CONFIG_PACKAGE_luci-i18n-commands-ca=m +CONFIG_PACKAGE_luci-i18n-commands-cs=m +CONFIG_PACKAGE_luci-i18n-commands-da=m +CONFIG_PACKAGE_luci-i18n-commands-de=m +CONFIG_PACKAGE_luci-i18n-commands-el=m +CONFIG_PACKAGE_luci-i18n-commands-es=m +CONFIG_PACKAGE_luci-i18n-commands-fi=m +CONFIG_PACKAGE_luci-i18n-commands-fr=m +CONFIG_PACKAGE_luci-i18n-commands-he=m +CONFIG_PACKAGE_luci-i18n-commands-hi=m +CONFIG_PACKAGE_luci-i18n-commands-hu=m +CONFIG_PACKAGE_luci-i18n-commands-it=m +CONFIG_PACKAGE_luci-i18n-commands-ja=m +CONFIG_PACKAGE_luci-i18n-commands-ko=m +CONFIG_PACKAGE_luci-i18n-commands-lt=m +CONFIG_PACKAGE_luci-i18n-commands-mr=m +CONFIG_PACKAGE_luci-i18n-commands-ms=m +CONFIG_PACKAGE_luci-i18n-commands-nl=m +CONFIG_PACKAGE_luci-i18n-commands-no=m +CONFIG_PACKAGE_luci-i18n-commands-pl=m +CONFIG_PACKAGE_luci-i18n-commands-pt=m +CONFIG_PACKAGE_luci-i18n-commands-pt-br=m +CONFIG_PACKAGE_luci-i18n-commands-ro=m +CONFIG_PACKAGE_luci-i18n-commands-ru=m +CONFIG_PACKAGE_luci-i18n-commands-sk=m +CONFIG_PACKAGE_luci-i18n-commands-sv=m +CONFIG_PACKAGE_luci-i18n-commands-tr=m +CONFIG_PACKAGE_luci-i18n-commands-uk=m +CONFIG_PACKAGE_luci-i18n-commands-vi=m +CONFIG_PACKAGE_luci-i18n-commands-zh-cn=m +CONFIG_PACKAGE_luci-i18n-commands-zh-tw=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-bn=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-da=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-lt=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-no=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-pl=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-pt-br=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-ru=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-sv=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-tr=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-zh-cn=m +CONFIG_PACKAGE_luci-i18n-crowdsec-firewall-bouncer-zh-tw=m +CONFIG_PACKAGE_luci-i18n-cshark-ar=m +CONFIG_PACKAGE_luci-i18n-cshark-bg=m +CONFIG_PACKAGE_luci-i18n-cshark-bn=m +CONFIG_PACKAGE_luci-i18n-cshark-ca=m +CONFIG_PACKAGE_luci-i18n-cshark-cs=m +CONFIG_PACKAGE_luci-i18n-cshark-da=m +CONFIG_PACKAGE_luci-i18n-cshark-de=m +CONFIG_PACKAGE_luci-i18n-cshark-el=m +CONFIG_PACKAGE_luci-i18n-cshark-es=m +CONFIG_PACKAGE_luci-i18n-cshark-fi=m +CONFIG_PACKAGE_luci-i18n-cshark-fr=m +CONFIG_PACKAGE_luci-i18n-cshark-he=m +CONFIG_PACKAGE_luci-i18n-cshark-hi=m +CONFIG_PACKAGE_luci-i18n-cshark-hu=m +CONFIG_PACKAGE_luci-i18n-cshark-it=m +CONFIG_PACKAGE_luci-i18n-cshark-ja=m +CONFIG_PACKAGE_luci-i18n-cshark-ko=m +CONFIG_PACKAGE_luci-i18n-cshark-lt=m +CONFIG_PACKAGE_luci-i18n-cshark-mr=m +CONFIG_PACKAGE_luci-i18n-cshark-ms=m +CONFIG_PACKAGE_luci-i18n-cshark-nl=m +CONFIG_PACKAGE_luci-i18n-cshark-no=m +CONFIG_PACKAGE_luci-i18n-cshark-pl=m +CONFIG_PACKAGE_luci-i18n-cshark-pt=m +CONFIG_PACKAGE_luci-i18n-cshark-pt-br=m +CONFIG_PACKAGE_luci-i18n-cshark-ro=m +CONFIG_PACKAGE_luci-i18n-cshark-ru=m +CONFIG_PACKAGE_luci-i18n-cshark-sk=m +CONFIG_PACKAGE_luci-i18n-cshark-sv=m +CONFIG_PACKAGE_luci-i18n-cshark-tr=m +CONFIG_PACKAGE_luci-i18n-cshark-uk=m +CONFIG_PACKAGE_luci-i18n-cshark-vi=m +CONFIG_PACKAGE_luci-i18n-cshark-zh-cn=m +CONFIG_PACKAGE_luci-i18n-cshark-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dashboard-ar=m +CONFIG_PACKAGE_luci-i18n-dashboard-bg=m +CONFIG_PACKAGE_luci-i18n-dashboard-bn=m +CONFIG_PACKAGE_luci-i18n-dashboard-ca=m +CONFIG_PACKAGE_luci-i18n-dashboard-cs=m +CONFIG_PACKAGE_luci-i18n-dashboard-da=m +CONFIG_PACKAGE_luci-i18n-dashboard-de=m +CONFIG_PACKAGE_luci-i18n-dashboard-el=m +CONFIG_PACKAGE_luci-i18n-dashboard-es=m +CONFIG_PACKAGE_luci-i18n-dashboard-fi=m +CONFIG_PACKAGE_luci-i18n-dashboard-fr=m +CONFIG_PACKAGE_luci-i18n-dashboard-he=m +CONFIG_PACKAGE_luci-i18n-dashboard-hi=m +CONFIG_PACKAGE_luci-i18n-dashboard-hu=m +CONFIG_PACKAGE_luci-i18n-dashboard-it=m +CONFIG_PACKAGE_luci-i18n-dashboard-ja=m +CONFIG_PACKAGE_luci-i18n-dashboard-ko=m +CONFIG_PACKAGE_luci-i18n-dashboard-lt=m +CONFIG_PACKAGE_luci-i18n-dashboard-mr=m +CONFIG_PACKAGE_luci-i18n-dashboard-ms=m +CONFIG_PACKAGE_luci-i18n-dashboard-nl=m +CONFIG_PACKAGE_luci-i18n-dashboard-no=m +CONFIG_PACKAGE_luci-i18n-dashboard-pl=m +CONFIG_PACKAGE_luci-i18n-dashboard-pt=m +CONFIG_PACKAGE_luci-i18n-dashboard-pt-br=m +CONFIG_PACKAGE_luci-i18n-dashboard-ro=m +CONFIG_PACKAGE_luci-i18n-dashboard-ru=m +CONFIG_PACKAGE_luci-i18n-dashboard-sk=m +CONFIG_PACKAGE_luci-i18n-dashboard-sv=m +CONFIG_PACKAGE_luci-i18n-dashboard-tr=m +CONFIG_PACKAGE_luci-i18n-dashboard-uk=m +CONFIG_PACKAGE_luci-i18n-dashboard-vi=m +CONFIG_PACKAGE_luci-i18n-dashboard-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dashboard-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ar=m +CONFIG_PACKAGE_luci-i18n-dcwapd-bg=m +CONFIG_PACKAGE_luci-i18n-dcwapd-bn=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ca=m +CONFIG_PACKAGE_luci-i18n-dcwapd-cs=m +CONFIG_PACKAGE_luci-i18n-dcwapd-da=m +CONFIG_PACKAGE_luci-i18n-dcwapd-de=m +CONFIG_PACKAGE_luci-i18n-dcwapd-el=m +CONFIG_PACKAGE_luci-i18n-dcwapd-es=m +CONFIG_PACKAGE_luci-i18n-dcwapd-fi=m +CONFIG_PACKAGE_luci-i18n-dcwapd-fr=m +CONFIG_PACKAGE_luci-i18n-dcwapd-he=m +CONFIG_PACKAGE_luci-i18n-dcwapd-hi=m +CONFIG_PACKAGE_luci-i18n-dcwapd-hu=m +CONFIG_PACKAGE_luci-i18n-dcwapd-it=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ja=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ko=m +CONFIG_PACKAGE_luci-i18n-dcwapd-lt=m +CONFIG_PACKAGE_luci-i18n-dcwapd-mr=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ms=m +CONFIG_PACKAGE_luci-i18n-dcwapd-nl=m +CONFIG_PACKAGE_luci-i18n-dcwapd-no=m +CONFIG_PACKAGE_luci-i18n-dcwapd-pl=m +CONFIG_PACKAGE_luci-i18n-dcwapd-pt=m +CONFIG_PACKAGE_luci-i18n-dcwapd-pt-br=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ro=m +CONFIG_PACKAGE_luci-i18n-dcwapd-ru=m +CONFIG_PACKAGE_luci-i18n-dcwapd-sk=m +CONFIG_PACKAGE_luci-i18n-dcwapd-sv=m +CONFIG_PACKAGE_luci-i18n-dcwapd-tr=m +CONFIG_PACKAGE_luci-i18n-dcwapd-uk=m +CONFIG_PACKAGE_luci-i18n-dcwapd-vi=m +CONFIG_PACKAGE_luci-i18n-dcwapd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dcwapd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ddns-ar=m +CONFIG_PACKAGE_luci-i18n-ddns-bg=m +CONFIG_PACKAGE_luci-i18n-ddns-bn=m +CONFIG_PACKAGE_luci-i18n-ddns-ca=m +CONFIG_PACKAGE_luci-i18n-ddns-cs=m +CONFIG_PACKAGE_luci-i18n-ddns-da=m +CONFIG_PACKAGE_luci-i18n-ddns-de=m +CONFIG_PACKAGE_luci-i18n-ddns-el=m +CONFIG_PACKAGE_luci-i18n-ddns-es=m +CONFIG_PACKAGE_luci-i18n-ddns-fi=m +CONFIG_PACKAGE_luci-i18n-ddns-fr=m +CONFIG_PACKAGE_luci-i18n-ddns-he=m +CONFIG_PACKAGE_luci-i18n-ddns-hi=m +CONFIG_PACKAGE_luci-i18n-ddns-hu=m +CONFIG_PACKAGE_luci-i18n-ddns-it=m +CONFIG_PACKAGE_luci-i18n-ddns-ja=m +CONFIG_PACKAGE_luci-i18n-ddns-ko=m +CONFIG_PACKAGE_luci-i18n-ddns-lt=m +CONFIG_PACKAGE_luci-i18n-ddns-mr=m +CONFIG_PACKAGE_luci-i18n-ddns-ms=m +CONFIG_PACKAGE_luci-i18n-ddns-nl=m +CONFIG_PACKAGE_luci-i18n-ddns-no=m +CONFIG_PACKAGE_luci-i18n-ddns-pl=m +CONFIG_PACKAGE_luci-i18n-ddns-pt=m +CONFIG_PACKAGE_luci-i18n-ddns-pt-br=m +CONFIG_PACKAGE_luci-i18n-ddns-ro=m +CONFIG_PACKAGE_luci-i18n-ddns-ru=m +CONFIG_PACKAGE_luci-i18n-ddns-sk=m +CONFIG_PACKAGE_luci-i18n-ddns-sv=m +CONFIG_PACKAGE_luci-i18n-ddns-tr=m +CONFIG_PACKAGE_luci-i18n-ddns-uk=m +CONFIG_PACKAGE_luci-i18n-ddns-vi=m +CONFIG_PACKAGE_luci-i18n-ddns-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ddns-zh-tw=m +CONFIG_PACKAGE_luci-i18n-diag-core-ar=m +CONFIG_PACKAGE_luci-i18n-diag-core-bg=m +CONFIG_PACKAGE_luci-i18n-diag-core-bn=m +CONFIG_PACKAGE_luci-i18n-diag-core-ca=m +CONFIG_PACKAGE_luci-i18n-diag-core-cs=m +CONFIG_PACKAGE_luci-i18n-diag-core-da=m +CONFIG_PACKAGE_luci-i18n-diag-core-de=m +CONFIG_PACKAGE_luci-i18n-diag-core-el=m +CONFIG_PACKAGE_luci-i18n-diag-core-es=m +CONFIG_PACKAGE_luci-i18n-diag-core-fi=m +CONFIG_PACKAGE_luci-i18n-diag-core-fr=m +CONFIG_PACKAGE_luci-i18n-diag-core-he=m +CONFIG_PACKAGE_luci-i18n-diag-core-hi=m +CONFIG_PACKAGE_luci-i18n-diag-core-hu=m +CONFIG_PACKAGE_luci-i18n-diag-core-it=m +CONFIG_PACKAGE_luci-i18n-diag-core-ja=m +CONFIG_PACKAGE_luci-i18n-diag-core-ko=m +CONFIG_PACKAGE_luci-i18n-diag-core-lt=m +CONFIG_PACKAGE_luci-i18n-diag-core-mr=m +CONFIG_PACKAGE_luci-i18n-diag-core-ms=m +CONFIG_PACKAGE_luci-i18n-diag-core-nl=m +CONFIG_PACKAGE_luci-i18n-diag-core-no=m +CONFIG_PACKAGE_luci-i18n-diag-core-pl=m +CONFIG_PACKAGE_luci-i18n-diag-core-pt=m +CONFIG_PACKAGE_luci-i18n-diag-core-pt-br=m +CONFIG_PACKAGE_luci-i18n-diag-core-ro=m +CONFIG_PACKAGE_luci-i18n-diag-core-ru=m +CONFIG_PACKAGE_luci-i18n-diag-core-sk=m +CONFIG_PACKAGE_luci-i18n-diag-core-sv=m +CONFIG_PACKAGE_luci-i18n-diag-core-tr=m +CONFIG_PACKAGE_luci-i18n-diag-core-uk=m +CONFIG_PACKAGE_luci-i18n-diag-core-vi=m +CONFIG_PACKAGE_luci-i18n-diag-core-zh-cn=m +CONFIG_PACKAGE_luci-i18n-diag-core-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ar=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-bg=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-bn=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ca=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-cs=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-da=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-de=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-el=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-es=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-fi=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-fr=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-he=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-hi=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-hu=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-it=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ja=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ko=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-lt=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-mr=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ms=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-nl=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-no=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-pl=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-pt=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ro=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ru=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-sk=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-sv=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-tr=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-uk=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-vi=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dockerman-ar=m +CONFIG_PACKAGE_luci-i18n-dockerman-bg=m +CONFIG_PACKAGE_luci-i18n-dockerman-bn=m +CONFIG_PACKAGE_luci-i18n-dockerman-ca=m +CONFIG_PACKAGE_luci-i18n-dockerman-cs=m +CONFIG_PACKAGE_luci-i18n-dockerman-da=m +CONFIG_PACKAGE_luci-i18n-dockerman-de=m +CONFIG_PACKAGE_luci-i18n-dockerman-el=m +CONFIG_PACKAGE_luci-i18n-dockerman-es=m +CONFIG_PACKAGE_luci-i18n-dockerman-fi=m +CONFIG_PACKAGE_luci-i18n-dockerman-fr=m +CONFIG_PACKAGE_luci-i18n-dockerman-he=m +CONFIG_PACKAGE_luci-i18n-dockerman-hi=m +CONFIG_PACKAGE_luci-i18n-dockerman-hu=m +CONFIG_PACKAGE_luci-i18n-dockerman-it=m +CONFIG_PACKAGE_luci-i18n-dockerman-ja=m +CONFIG_PACKAGE_luci-i18n-dockerman-ko=m +CONFIG_PACKAGE_luci-i18n-dockerman-lt=m +CONFIG_PACKAGE_luci-i18n-dockerman-mr=m +CONFIG_PACKAGE_luci-i18n-dockerman-ms=m +CONFIG_PACKAGE_luci-i18n-dockerman-nl=m +CONFIG_PACKAGE_luci-i18n-dockerman-no=m +CONFIG_PACKAGE_luci-i18n-dockerman-pl=m +CONFIG_PACKAGE_luci-i18n-dockerman-pt=m +CONFIG_PACKAGE_luci-i18n-dockerman-pt-br=m +CONFIG_PACKAGE_luci-i18n-dockerman-ro=m +CONFIG_PACKAGE_luci-i18n-dockerman-ru=m +CONFIG_PACKAGE_luci-i18n-dockerman-sk=m +CONFIG_PACKAGE_luci-i18n-dockerman-sv=m +CONFIG_PACKAGE_luci-i18n-dockerman-tr=m +CONFIG_PACKAGE_luci-i18n-dockerman-uk=m +CONFIG_PACKAGE_luci-i18n-dockerman-vi=m +CONFIG_PACKAGE_luci-i18n-dockerman-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dockerman-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dsl-ar=m +CONFIG_PACKAGE_luci-i18n-dsl-bg=m +CONFIG_PACKAGE_luci-i18n-dsl-bn=m +CONFIG_PACKAGE_luci-i18n-dsl-ca=m +CONFIG_PACKAGE_luci-i18n-dsl-cs=m +CONFIG_PACKAGE_luci-i18n-dsl-da=m +CONFIG_PACKAGE_luci-i18n-dsl-de=m +CONFIG_PACKAGE_luci-i18n-dsl-el=m +CONFIG_PACKAGE_luci-i18n-dsl-es=m +CONFIG_PACKAGE_luci-i18n-dsl-fi=m +CONFIG_PACKAGE_luci-i18n-dsl-fr=m +CONFIG_PACKAGE_luci-i18n-dsl-he=m +CONFIG_PACKAGE_luci-i18n-dsl-hi=m +CONFIG_PACKAGE_luci-i18n-dsl-hu=m +CONFIG_PACKAGE_luci-i18n-dsl-it=m +CONFIG_PACKAGE_luci-i18n-dsl-ja=m +CONFIG_PACKAGE_luci-i18n-dsl-ko=m +CONFIG_PACKAGE_luci-i18n-dsl-lt=m +CONFIG_PACKAGE_luci-i18n-dsl-mr=m +CONFIG_PACKAGE_luci-i18n-dsl-ms=m +CONFIG_PACKAGE_luci-i18n-dsl-nl=m +CONFIG_PACKAGE_luci-i18n-dsl-no=m +CONFIG_PACKAGE_luci-i18n-dsl-pl=m +CONFIG_PACKAGE_luci-i18n-dsl-pt=m +CONFIG_PACKAGE_luci-i18n-dsl-pt-br=m +CONFIG_PACKAGE_luci-i18n-dsl-ro=m +CONFIG_PACKAGE_luci-i18n-dsl-ru=m +CONFIG_PACKAGE_luci-i18n-dsl-sk=m +CONFIG_PACKAGE_luci-i18n-dsl-sv=m +CONFIG_PACKAGE_luci-i18n-dsl-tr=m +CONFIG_PACKAGE_luci-i18n-dsl-uk=m +CONFIG_PACKAGE_luci-i18n-dsl-vi=m +CONFIG_PACKAGE_luci-i18n-dsl-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dsl-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dump1090-ar=m +CONFIG_PACKAGE_luci-i18n-dump1090-bg=m +CONFIG_PACKAGE_luci-i18n-dump1090-bn=m +CONFIG_PACKAGE_luci-i18n-dump1090-ca=m +CONFIG_PACKAGE_luci-i18n-dump1090-cs=m +CONFIG_PACKAGE_luci-i18n-dump1090-da=m +CONFIG_PACKAGE_luci-i18n-dump1090-de=m +CONFIG_PACKAGE_luci-i18n-dump1090-el=m +CONFIG_PACKAGE_luci-i18n-dump1090-es=m +CONFIG_PACKAGE_luci-i18n-dump1090-fi=m +CONFIG_PACKAGE_luci-i18n-dump1090-fr=m +CONFIG_PACKAGE_luci-i18n-dump1090-he=m +CONFIG_PACKAGE_luci-i18n-dump1090-hi=m +CONFIG_PACKAGE_luci-i18n-dump1090-hu=m +CONFIG_PACKAGE_luci-i18n-dump1090-it=m +CONFIG_PACKAGE_luci-i18n-dump1090-ja=m +CONFIG_PACKAGE_luci-i18n-dump1090-ko=m +CONFIG_PACKAGE_luci-i18n-dump1090-lt=m +CONFIG_PACKAGE_luci-i18n-dump1090-mr=m +CONFIG_PACKAGE_luci-i18n-dump1090-ms=m +CONFIG_PACKAGE_luci-i18n-dump1090-nl=m +CONFIG_PACKAGE_luci-i18n-dump1090-no=m +CONFIG_PACKAGE_luci-i18n-dump1090-pl=m +CONFIG_PACKAGE_luci-i18n-dump1090-pt=m +CONFIG_PACKAGE_luci-i18n-dump1090-pt-br=m +CONFIG_PACKAGE_luci-i18n-dump1090-ro=m +CONFIG_PACKAGE_luci-i18n-dump1090-ru=m +CONFIG_PACKAGE_luci-i18n-dump1090-sk=m +CONFIG_PACKAGE_luci-i18n-dump1090-sv=m +CONFIG_PACKAGE_luci-i18n-dump1090-tr=m +CONFIG_PACKAGE_luci-i18n-dump1090-uk=m +CONFIG_PACKAGE_luci-i18n-dump1090-vi=m +CONFIG_PACKAGE_luci-i18n-dump1090-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dump1090-zh-tw=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ar=m +CONFIG_PACKAGE_luci-i18n-dynapoint-bg=m +CONFIG_PACKAGE_luci-i18n-dynapoint-bn=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ca=m +CONFIG_PACKAGE_luci-i18n-dynapoint-cs=m +CONFIG_PACKAGE_luci-i18n-dynapoint-da=m +CONFIG_PACKAGE_luci-i18n-dynapoint-de=m +CONFIG_PACKAGE_luci-i18n-dynapoint-el=m +CONFIG_PACKAGE_luci-i18n-dynapoint-es=m +CONFIG_PACKAGE_luci-i18n-dynapoint-fi=m +CONFIG_PACKAGE_luci-i18n-dynapoint-fr=m +CONFIG_PACKAGE_luci-i18n-dynapoint-he=m +CONFIG_PACKAGE_luci-i18n-dynapoint-hi=m +CONFIG_PACKAGE_luci-i18n-dynapoint-hu=m +CONFIG_PACKAGE_luci-i18n-dynapoint-it=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ja=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ko=m +CONFIG_PACKAGE_luci-i18n-dynapoint-lt=m +CONFIG_PACKAGE_luci-i18n-dynapoint-mr=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ms=m +CONFIG_PACKAGE_luci-i18n-dynapoint-nl=m +CONFIG_PACKAGE_luci-i18n-dynapoint-no=m +CONFIG_PACKAGE_luci-i18n-dynapoint-pl=m +CONFIG_PACKAGE_luci-i18n-dynapoint-pt=m +CONFIG_PACKAGE_luci-i18n-dynapoint-pt-br=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ro=m +CONFIG_PACKAGE_luci-i18n-dynapoint-ru=m +CONFIG_PACKAGE_luci-i18n-dynapoint-sk=m +CONFIG_PACKAGE_luci-i18n-dynapoint-sv=m +CONFIG_PACKAGE_luci-i18n-dynapoint-tr=m +CONFIG_PACKAGE_luci-i18n-dynapoint-uk=m +CONFIG_PACKAGE_luci-i18n-dynapoint-vi=m +CONFIG_PACKAGE_luci-i18n-dynapoint-zh-cn=m +CONFIG_PACKAGE_luci-i18n-dynapoint-zh-tw=m +CONFIG_PACKAGE_luci-i18n-email-bn=m +CONFIG_PACKAGE_luci-i18n-email-da=m +CONFIG_PACKAGE_luci-i18n-email-fr=m +CONFIG_PACKAGE_luci-i18n-email-lt=m +CONFIG_PACKAGE_luci-i18n-email-no=m +CONFIG_PACKAGE_luci-i18n-email-pl=m +CONFIG_PACKAGE_luci-i18n-email-pt-br=m +CONFIG_PACKAGE_luci-i18n-email-ru=m +CONFIG_PACKAGE_luci-i18n-email-sv=m +CONFIG_PACKAGE_luci-i18n-email-tr=m +CONFIG_PACKAGE_luci-i18n-email-uk=m +CONFIG_PACKAGE_luci-i18n-email-zh-cn=m +CONFIG_PACKAGE_luci-i18n-email-zh-tw=m +CONFIG_PACKAGE_luci-i18n-eoip-ar=m +CONFIG_PACKAGE_luci-i18n-eoip-bg=m +CONFIG_PACKAGE_luci-i18n-eoip-bn=m +CONFIG_PACKAGE_luci-i18n-eoip-ca=m +CONFIG_PACKAGE_luci-i18n-eoip-cs=m +CONFIG_PACKAGE_luci-i18n-eoip-da=m +CONFIG_PACKAGE_luci-i18n-eoip-de=m +CONFIG_PACKAGE_luci-i18n-eoip-el=m +CONFIG_PACKAGE_luci-i18n-eoip-es=m +CONFIG_PACKAGE_luci-i18n-eoip-fi=m +CONFIG_PACKAGE_luci-i18n-eoip-fr=m +CONFIG_PACKAGE_luci-i18n-eoip-he=m +CONFIG_PACKAGE_luci-i18n-eoip-hi=m +CONFIG_PACKAGE_luci-i18n-eoip-hu=m +CONFIG_PACKAGE_luci-i18n-eoip-it=m +CONFIG_PACKAGE_luci-i18n-eoip-ja=m +CONFIG_PACKAGE_luci-i18n-eoip-ko=m +CONFIG_PACKAGE_luci-i18n-eoip-lt=m +CONFIG_PACKAGE_luci-i18n-eoip-mr=m +CONFIG_PACKAGE_luci-i18n-eoip-ms=m +CONFIG_PACKAGE_luci-i18n-eoip-nl=m +CONFIG_PACKAGE_luci-i18n-eoip-no=m +CONFIG_PACKAGE_luci-i18n-eoip-pl=m +CONFIG_PACKAGE_luci-i18n-eoip-pt=m +CONFIG_PACKAGE_luci-i18n-eoip-pt-br=m +CONFIG_PACKAGE_luci-i18n-eoip-ro=m +CONFIG_PACKAGE_luci-i18n-eoip-ru=m +CONFIG_PACKAGE_luci-i18n-eoip-sk=m +CONFIG_PACKAGE_luci-i18n-eoip-sv=m +CONFIG_PACKAGE_luci-i18n-eoip-tr=m +CONFIG_PACKAGE_luci-i18n-eoip-uk=m +CONFIG_PACKAGE_luci-i18n-eoip-vi=m +CONFIG_PACKAGE_luci-i18n-eoip-zh-cn=m +CONFIG_PACKAGE_luci-i18n-eoip-zh-tw=m +CONFIG_PACKAGE_luci-i18n-example-ar=m +CONFIG_PACKAGE_luci-i18n-example-bg=m +CONFIG_PACKAGE_luci-i18n-example-bn=m +CONFIG_PACKAGE_luci-i18n-example-ca=m +CONFIG_PACKAGE_luci-i18n-example-cs=m +CONFIG_PACKAGE_luci-i18n-example-da=m +CONFIG_PACKAGE_luci-i18n-example-de=m +CONFIG_PACKAGE_luci-i18n-example-el=m +CONFIG_PACKAGE_luci-i18n-example-es=m +CONFIG_PACKAGE_luci-i18n-example-fi=m +CONFIG_PACKAGE_luci-i18n-example-fr=m +CONFIG_PACKAGE_luci-i18n-example-he=m +CONFIG_PACKAGE_luci-i18n-example-hi=m +CONFIG_PACKAGE_luci-i18n-example-hu=m +CONFIG_PACKAGE_luci-i18n-example-it=m +CONFIG_PACKAGE_luci-i18n-example-ja=m +CONFIG_PACKAGE_luci-i18n-example-ko=m +CONFIG_PACKAGE_luci-i18n-example-lt=m +CONFIG_PACKAGE_luci-i18n-example-mr=m +CONFIG_PACKAGE_luci-i18n-example-ms=m +CONFIG_PACKAGE_luci-i18n-example-nl=m +CONFIG_PACKAGE_luci-i18n-example-no=m +CONFIG_PACKAGE_luci-i18n-example-pl=m +CONFIG_PACKAGE_luci-i18n-example-pt=m +CONFIG_PACKAGE_luci-i18n-example-pt-br=m +CONFIG_PACKAGE_luci-i18n-example-ro=m +CONFIG_PACKAGE_luci-i18n-example-ru=m +CONFIG_PACKAGE_luci-i18n-example-sk=m +CONFIG_PACKAGE_luci-i18n-example-sv=m +CONFIG_PACKAGE_luci-i18n-example-tr=m +CONFIG_PACKAGE_luci-i18n-example-uk=m +CONFIG_PACKAGE_luci-i18n-example-vi=m +CONFIG_PACKAGE_luci-i18n-example-zh-cn=m +CONFIG_PACKAGE_luci-i18n-example-zh-tw=m +CONFIG_PACKAGE_luci-i18n-firewall-ar=m +CONFIG_PACKAGE_luci-i18n-firewall-bg=m +CONFIG_PACKAGE_luci-i18n-firewall-bn=m +CONFIG_PACKAGE_luci-i18n-firewall-ca=m +CONFIG_PACKAGE_luci-i18n-firewall-cs=m +CONFIG_PACKAGE_luci-i18n-firewall-da=m +CONFIG_PACKAGE_luci-i18n-firewall-de=m +CONFIG_PACKAGE_luci-i18n-firewall-el=m +CONFIG_PACKAGE_luci-i18n-firewall-es=m +CONFIG_PACKAGE_luci-i18n-firewall-fi=m +CONFIG_PACKAGE_luci-i18n-firewall-fr=m +CONFIG_PACKAGE_luci-i18n-firewall-he=m +CONFIG_PACKAGE_luci-i18n-firewall-hi=m +CONFIG_PACKAGE_luci-i18n-firewall-hu=m +CONFIG_PACKAGE_luci-i18n-firewall-it=m +CONFIG_PACKAGE_luci-i18n-firewall-ja=m +CONFIG_PACKAGE_luci-i18n-firewall-ko=m +CONFIG_PACKAGE_luci-i18n-firewall-lt=m +CONFIG_PACKAGE_luci-i18n-firewall-mr=m +CONFIG_PACKAGE_luci-i18n-firewall-ms=m +CONFIG_PACKAGE_luci-i18n-firewall-nl=m +CONFIG_PACKAGE_luci-i18n-firewall-no=m +CONFIG_PACKAGE_luci-i18n-firewall-pl=m +CONFIG_PACKAGE_luci-i18n-firewall-pt=m +CONFIG_PACKAGE_luci-i18n-firewall-pt-br=m +CONFIG_PACKAGE_luci-i18n-firewall-ro=m +CONFIG_PACKAGE_luci-i18n-firewall-ru=m +CONFIG_PACKAGE_luci-i18n-firewall-sk=m +CONFIG_PACKAGE_luci-i18n-firewall-sv=m +CONFIG_PACKAGE_luci-i18n-firewall-tr=m +CONFIG_PACKAGE_luci-i18n-firewall-uk=m +CONFIG_PACKAGE_luci-i18n-firewall-vi=m +CONFIG_PACKAGE_luci-i18n-firewall-zh-cn=m +CONFIG_PACKAGE_luci-i18n-firewall-zh-tw=m +CONFIG_PACKAGE_luci-i18n-frpc-ar=m +CONFIG_PACKAGE_luci-i18n-frpc-bg=m +CONFIG_PACKAGE_luci-i18n-frpc-bn=m +CONFIG_PACKAGE_luci-i18n-frpc-ca=m +CONFIG_PACKAGE_luci-i18n-frpc-cs=m +CONFIG_PACKAGE_luci-i18n-frpc-da=m +CONFIG_PACKAGE_luci-i18n-frpc-de=m +CONFIG_PACKAGE_luci-i18n-frpc-el=m +CONFIG_PACKAGE_luci-i18n-frpc-es=m +CONFIG_PACKAGE_luci-i18n-frpc-fi=m +CONFIG_PACKAGE_luci-i18n-frpc-fr=m +CONFIG_PACKAGE_luci-i18n-frpc-he=m +CONFIG_PACKAGE_luci-i18n-frpc-hi=m +CONFIG_PACKAGE_luci-i18n-frpc-hu=m +CONFIG_PACKAGE_luci-i18n-frpc-it=m +CONFIG_PACKAGE_luci-i18n-frpc-ja=m +CONFIG_PACKAGE_luci-i18n-frpc-ko=m +CONFIG_PACKAGE_luci-i18n-frpc-lt=m +CONFIG_PACKAGE_luci-i18n-frpc-mr=m +CONFIG_PACKAGE_luci-i18n-frpc-ms=m +CONFIG_PACKAGE_luci-i18n-frpc-nl=m +CONFIG_PACKAGE_luci-i18n-frpc-no=m +CONFIG_PACKAGE_luci-i18n-frpc-pl=m +CONFIG_PACKAGE_luci-i18n-frpc-pt=m +CONFIG_PACKAGE_luci-i18n-frpc-pt-br=m +CONFIG_PACKAGE_luci-i18n-frpc-ro=m +CONFIG_PACKAGE_luci-i18n-frpc-ru=m +CONFIG_PACKAGE_luci-i18n-frpc-sk=m +CONFIG_PACKAGE_luci-i18n-frpc-sv=m +CONFIG_PACKAGE_luci-i18n-frpc-tr=m +CONFIG_PACKAGE_luci-i18n-frpc-uk=m +CONFIG_PACKAGE_luci-i18n-frpc-vi=m +CONFIG_PACKAGE_luci-i18n-frpc-zh-cn=m +CONFIG_PACKAGE_luci-i18n-frpc-zh-tw=m +CONFIG_PACKAGE_luci-i18n-frps-ar=m +CONFIG_PACKAGE_luci-i18n-frps-bg=m +CONFIG_PACKAGE_luci-i18n-frps-bn=m +CONFIG_PACKAGE_luci-i18n-frps-ca=m +CONFIG_PACKAGE_luci-i18n-frps-cs=m +CONFIG_PACKAGE_luci-i18n-frps-da=m +CONFIG_PACKAGE_luci-i18n-frps-de=m +CONFIG_PACKAGE_luci-i18n-frps-el=m +CONFIG_PACKAGE_luci-i18n-frps-es=m +CONFIG_PACKAGE_luci-i18n-frps-fi=m +CONFIG_PACKAGE_luci-i18n-frps-fr=m +CONFIG_PACKAGE_luci-i18n-frps-he=m +CONFIG_PACKAGE_luci-i18n-frps-hi=m +CONFIG_PACKAGE_luci-i18n-frps-hu=m +CONFIG_PACKAGE_luci-i18n-frps-it=m +CONFIG_PACKAGE_luci-i18n-frps-ja=m +CONFIG_PACKAGE_luci-i18n-frps-ko=m +CONFIG_PACKAGE_luci-i18n-frps-lt=m +CONFIG_PACKAGE_luci-i18n-frps-mr=m +CONFIG_PACKAGE_luci-i18n-frps-ms=m +CONFIG_PACKAGE_luci-i18n-frps-nl=m +CONFIG_PACKAGE_luci-i18n-frps-no=m +CONFIG_PACKAGE_luci-i18n-frps-pl=m +CONFIG_PACKAGE_luci-i18n-frps-pt=m +CONFIG_PACKAGE_luci-i18n-frps-pt-br=m +CONFIG_PACKAGE_luci-i18n-frps-ro=m +CONFIG_PACKAGE_luci-i18n-frps-ru=m +CONFIG_PACKAGE_luci-i18n-frps-sk=m +CONFIG_PACKAGE_luci-i18n-frps-sv=m +CONFIG_PACKAGE_luci-i18n-frps-tr=m +CONFIG_PACKAGE_luci-i18n-frps-uk=m +CONFIG_PACKAGE_luci-i18n-frps-vi=m +CONFIG_PACKAGE_luci-i18n-frps-zh-cn=m +CONFIG_PACKAGE_luci-i18n-frps-zh-tw=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ar=m +CONFIG_PACKAGE_luci-i18n-fwknopd-bg=m +CONFIG_PACKAGE_luci-i18n-fwknopd-bn=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ca=m +CONFIG_PACKAGE_luci-i18n-fwknopd-cs=m +CONFIG_PACKAGE_luci-i18n-fwknopd-da=m +CONFIG_PACKAGE_luci-i18n-fwknopd-de=m +CONFIG_PACKAGE_luci-i18n-fwknopd-el=m +CONFIG_PACKAGE_luci-i18n-fwknopd-es=m +CONFIG_PACKAGE_luci-i18n-fwknopd-fi=m +CONFIG_PACKAGE_luci-i18n-fwknopd-fr=m +CONFIG_PACKAGE_luci-i18n-fwknopd-he=m +CONFIG_PACKAGE_luci-i18n-fwknopd-hi=m +CONFIG_PACKAGE_luci-i18n-fwknopd-hu=m +CONFIG_PACKAGE_luci-i18n-fwknopd-it=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ja=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ko=m +CONFIG_PACKAGE_luci-i18n-fwknopd-lt=m +CONFIG_PACKAGE_luci-i18n-fwknopd-mr=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ms=m +CONFIG_PACKAGE_luci-i18n-fwknopd-nl=m +CONFIG_PACKAGE_luci-i18n-fwknopd-no=m +CONFIG_PACKAGE_luci-i18n-fwknopd-pl=m +CONFIG_PACKAGE_luci-i18n-fwknopd-pt=m +CONFIG_PACKAGE_luci-i18n-fwknopd-pt-br=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ro=m +CONFIG_PACKAGE_luci-i18n-fwknopd-ru=m +CONFIG_PACKAGE_luci-i18n-fwknopd-sk=m +CONFIG_PACKAGE_luci-i18n-fwknopd-sv=m +CONFIG_PACKAGE_luci-i18n-fwknopd-tr=m +CONFIG_PACKAGE_luci-i18n-fwknopd-uk=m +CONFIG_PACKAGE_luci-i18n-fwknopd-vi=m +CONFIG_PACKAGE_luci-i18n-fwknopd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-fwknopd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ar=m +CONFIG_PACKAGE_luci-i18n-hd-idle-bg=m +CONFIG_PACKAGE_luci-i18n-hd-idle-bn=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ca=m +CONFIG_PACKAGE_luci-i18n-hd-idle-cs=m +CONFIG_PACKAGE_luci-i18n-hd-idle-da=m +CONFIG_PACKAGE_luci-i18n-hd-idle-de=m +CONFIG_PACKAGE_luci-i18n-hd-idle-el=m +CONFIG_PACKAGE_luci-i18n-hd-idle-es=m +CONFIG_PACKAGE_luci-i18n-hd-idle-fi=m +CONFIG_PACKAGE_luci-i18n-hd-idle-fr=m +CONFIG_PACKAGE_luci-i18n-hd-idle-he=m +CONFIG_PACKAGE_luci-i18n-hd-idle-hi=m +CONFIG_PACKAGE_luci-i18n-hd-idle-hu=m +CONFIG_PACKAGE_luci-i18n-hd-idle-it=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ja=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ko=m +CONFIG_PACKAGE_luci-i18n-hd-idle-lt=m +CONFIG_PACKAGE_luci-i18n-hd-idle-mr=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ms=m +CONFIG_PACKAGE_luci-i18n-hd-idle-nl=m +CONFIG_PACKAGE_luci-i18n-hd-idle-no=m +CONFIG_PACKAGE_luci-i18n-hd-idle-pl=m +CONFIG_PACKAGE_luci-i18n-hd-idle-pt=m +CONFIG_PACKAGE_luci-i18n-hd-idle-pt-br=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ro=m +CONFIG_PACKAGE_luci-i18n-hd-idle-ru=m +CONFIG_PACKAGE_luci-i18n-hd-idle-sk=m +CONFIG_PACKAGE_luci-i18n-hd-idle-sv=m +CONFIG_PACKAGE_luci-i18n-hd-idle-tr=m +CONFIG_PACKAGE_luci-i18n-hd-idle-uk=m +CONFIG_PACKAGE_luci-i18n-hd-idle-vi=m +CONFIG_PACKAGE_luci-i18n-hd-idle-zh-cn=m +CONFIG_PACKAGE_luci-i18n-hd-idle-zh-tw=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ar=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-bg=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-bn=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ca=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-cs=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-da=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-de=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-el=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-es=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-fi=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-fr=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-he=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-hi=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-hu=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-it=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ja=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ko=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-lt=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-mr=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ms=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-nl=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-no=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-pl=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-pt=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ro=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-ru=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-sk=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-sv=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-tr=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-uk=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-vi=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-https-dns-proxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ar=m +CONFIG_PACKAGE_luci-i18n-irqbalance-bg=m +CONFIG_PACKAGE_luci-i18n-irqbalance-bn=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ca=m +CONFIG_PACKAGE_luci-i18n-irqbalance-cs=m +CONFIG_PACKAGE_luci-i18n-irqbalance-da=m +CONFIG_PACKAGE_luci-i18n-irqbalance-de=m +CONFIG_PACKAGE_luci-i18n-irqbalance-el=m +CONFIG_PACKAGE_luci-i18n-irqbalance-es=m +CONFIG_PACKAGE_luci-i18n-irqbalance-fi=m +CONFIG_PACKAGE_luci-i18n-irqbalance-fr=m +CONFIG_PACKAGE_luci-i18n-irqbalance-he=m +CONFIG_PACKAGE_luci-i18n-irqbalance-hi=m +CONFIG_PACKAGE_luci-i18n-irqbalance-hu=m +CONFIG_PACKAGE_luci-i18n-irqbalance-it=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ja=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ko=m +CONFIG_PACKAGE_luci-i18n-irqbalance-lt=m +CONFIG_PACKAGE_luci-i18n-irqbalance-mr=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ms=m +CONFIG_PACKAGE_luci-i18n-irqbalance-nl=m +CONFIG_PACKAGE_luci-i18n-irqbalance-no=m +CONFIG_PACKAGE_luci-i18n-irqbalance-pl=m +CONFIG_PACKAGE_luci-i18n-irqbalance-pt=m +CONFIG_PACKAGE_luci-i18n-irqbalance-pt-br=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ro=m +CONFIG_PACKAGE_luci-i18n-irqbalance-ru=m +CONFIG_PACKAGE_luci-i18n-irqbalance-sk=m +CONFIG_PACKAGE_luci-i18n-irqbalance-sv=m +CONFIG_PACKAGE_luci-i18n-irqbalance-tr=m +CONFIG_PACKAGE_luci-i18n-irqbalance-uk=m +CONFIG_PACKAGE_luci-i18n-irqbalance-vi=m +CONFIG_PACKAGE_luci-i18n-irqbalance-zh-cn=m +CONFIG_PACKAGE_luci-i18n-irqbalance-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ar=m +CONFIG_PACKAGE_luci-i18n-ksmbd-bg=m +CONFIG_PACKAGE_luci-i18n-ksmbd-bn=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ca=m +CONFIG_PACKAGE_luci-i18n-ksmbd-cs=m +CONFIG_PACKAGE_luci-i18n-ksmbd-da=m +CONFIG_PACKAGE_luci-i18n-ksmbd-de=m +CONFIG_PACKAGE_luci-i18n-ksmbd-el=m +CONFIG_PACKAGE_luci-i18n-ksmbd-es=m +CONFIG_PACKAGE_luci-i18n-ksmbd-fi=m +CONFIG_PACKAGE_luci-i18n-ksmbd-fr=m +CONFIG_PACKAGE_luci-i18n-ksmbd-he=m +CONFIG_PACKAGE_luci-i18n-ksmbd-hi=m +CONFIG_PACKAGE_luci-i18n-ksmbd-hu=m +CONFIG_PACKAGE_luci-i18n-ksmbd-it=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ja=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ko=m +CONFIG_PACKAGE_luci-i18n-ksmbd-lt=m +CONFIG_PACKAGE_luci-i18n-ksmbd-mr=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ms=m +CONFIG_PACKAGE_luci-i18n-ksmbd-nl=m +CONFIG_PACKAGE_luci-i18n-ksmbd-no=m +CONFIG_PACKAGE_luci-i18n-ksmbd-pl=m +CONFIG_PACKAGE_luci-i18n-ksmbd-pt=m +CONFIG_PACKAGE_luci-i18n-ksmbd-pt-br=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ro=m +CONFIG_PACKAGE_luci-i18n-ksmbd-ru=m +CONFIG_PACKAGE_luci-i18n-ksmbd-sk=m +CONFIG_PACKAGE_luci-i18n-ksmbd-sv=m +CONFIG_PACKAGE_luci-i18n-ksmbd-tr=m +CONFIG_PACKAGE_luci-i18n-ksmbd-uk=m +CONFIG_PACKAGE_luci-i18n-ksmbd-vi=m +CONFIG_PACKAGE_luci-i18n-ksmbd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ksmbd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-lxc-ar=m +CONFIG_PACKAGE_luci-i18n-lxc-bg=m +CONFIG_PACKAGE_luci-i18n-lxc-bn=m +CONFIG_PACKAGE_luci-i18n-lxc-ca=m +CONFIG_PACKAGE_luci-i18n-lxc-cs=m +CONFIG_PACKAGE_luci-i18n-lxc-da=m +CONFIG_PACKAGE_luci-i18n-lxc-de=m +CONFIG_PACKAGE_luci-i18n-lxc-el=m +CONFIG_PACKAGE_luci-i18n-lxc-es=m +CONFIG_PACKAGE_luci-i18n-lxc-fi=m +CONFIG_PACKAGE_luci-i18n-lxc-fr=m +CONFIG_PACKAGE_luci-i18n-lxc-he=m +CONFIG_PACKAGE_luci-i18n-lxc-hi=m +CONFIG_PACKAGE_luci-i18n-lxc-hu=m +CONFIG_PACKAGE_luci-i18n-lxc-it=m +CONFIG_PACKAGE_luci-i18n-lxc-ja=m +CONFIG_PACKAGE_luci-i18n-lxc-ko=m +CONFIG_PACKAGE_luci-i18n-lxc-lt=m +CONFIG_PACKAGE_luci-i18n-lxc-mr=m +CONFIG_PACKAGE_luci-i18n-lxc-ms=m +CONFIG_PACKAGE_luci-i18n-lxc-nl=m +CONFIG_PACKAGE_luci-i18n-lxc-no=m +CONFIG_PACKAGE_luci-i18n-lxc-pl=m +CONFIG_PACKAGE_luci-i18n-lxc-pt=m +CONFIG_PACKAGE_luci-i18n-lxc-pt-br=m +CONFIG_PACKAGE_luci-i18n-lxc-ro=m +CONFIG_PACKAGE_luci-i18n-lxc-ru=m +CONFIG_PACKAGE_luci-i18n-lxc-sk=m +CONFIG_PACKAGE_luci-i18n-lxc-sv=m +CONFIG_PACKAGE_luci-i18n-lxc-tr=m +CONFIG_PACKAGE_luci-i18n-lxc-uk=m +CONFIG_PACKAGE_luci-i18n-lxc-vi=m +CONFIG_PACKAGE_luci-i18n-lxc-zh-cn=m +CONFIG_PACKAGE_luci-i18n-lxc-zh-tw=m +CONFIG_PACKAGE_luci-i18n-minidlna-ar=m +CONFIG_PACKAGE_luci-i18n-minidlna-bg=m +CONFIG_PACKAGE_luci-i18n-minidlna-bn=m +CONFIG_PACKAGE_luci-i18n-minidlna-ca=m +CONFIG_PACKAGE_luci-i18n-minidlna-cs=m +CONFIG_PACKAGE_luci-i18n-minidlna-da=m +CONFIG_PACKAGE_luci-i18n-minidlna-de=m +CONFIG_PACKAGE_luci-i18n-minidlna-el=m +CONFIG_PACKAGE_luci-i18n-minidlna-es=m +CONFIG_PACKAGE_luci-i18n-minidlna-fi=m +CONFIG_PACKAGE_luci-i18n-minidlna-fr=m +CONFIG_PACKAGE_luci-i18n-minidlna-he=m +CONFIG_PACKAGE_luci-i18n-minidlna-hi=m +CONFIG_PACKAGE_luci-i18n-minidlna-hu=m +CONFIG_PACKAGE_luci-i18n-minidlna-it=m +CONFIG_PACKAGE_luci-i18n-minidlna-ja=m +CONFIG_PACKAGE_luci-i18n-minidlna-ko=m +CONFIG_PACKAGE_luci-i18n-minidlna-lt=m +CONFIG_PACKAGE_luci-i18n-minidlna-mr=m +CONFIG_PACKAGE_luci-i18n-minidlna-ms=m +CONFIG_PACKAGE_luci-i18n-minidlna-nl=m +CONFIG_PACKAGE_luci-i18n-minidlna-no=m +CONFIG_PACKAGE_luci-i18n-minidlna-pl=m +CONFIG_PACKAGE_luci-i18n-minidlna-pt=m +CONFIG_PACKAGE_luci-i18n-minidlna-pt-br=m +CONFIG_PACKAGE_luci-i18n-minidlna-ro=m +CONFIG_PACKAGE_luci-i18n-minidlna-ru=m +CONFIG_PACKAGE_luci-i18n-minidlna-sk=m +CONFIG_PACKAGE_luci-i18n-minidlna-sv=m +CONFIG_PACKAGE_luci-i18n-minidlna-tr=m +CONFIG_PACKAGE_luci-i18n-minidlna-uk=m +CONFIG_PACKAGE_luci-i18n-minidlna-vi=m +CONFIG_PACKAGE_luci-i18n-minidlna-zh-cn=m +CONFIG_PACKAGE_luci-i18n-minidlna-zh-tw=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ar=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-bg=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-bn=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ca=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-cs=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-da=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-de=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-el=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-es=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-fi=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-fr=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-he=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-hi=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-hu=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-it=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ja=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ko=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-lt=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-mr=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ms=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-nl=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-no=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-pl=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-pt=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-pt-br=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ro=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-ru=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-sk=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-sv=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-tr=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-uk=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-vi=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-zh-cn=m +CONFIG_PACKAGE_luci-i18n-mjpg-streamer-zh-tw=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ar=m +CONFIG_PACKAGE_luci-i18n-mosquitto-bg=m +CONFIG_PACKAGE_luci-i18n-mosquitto-bn=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ca=m +CONFIG_PACKAGE_luci-i18n-mosquitto-cs=m +CONFIG_PACKAGE_luci-i18n-mosquitto-da=m +CONFIG_PACKAGE_luci-i18n-mosquitto-de=m +CONFIG_PACKAGE_luci-i18n-mosquitto-el=m +CONFIG_PACKAGE_luci-i18n-mosquitto-es=m +CONFIG_PACKAGE_luci-i18n-mosquitto-fi=m +CONFIG_PACKAGE_luci-i18n-mosquitto-fr=m +CONFIG_PACKAGE_luci-i18n-mosquitto-he=m +CONFIG_PACKAGE_luci-i18n-mosquitto-hi=m +CONFIG_PACKAGE_luci-i18n-mosquitto-hu=m +CONFIG_PACKAGE_luci-i18n-mosquitto-it=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ja=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ko=m +CONFIG_PACKAGE_luci-i18n-mosquitto-lt=m +CONFIG_PACKAGE_luci-i18n-mosquitto-mr=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ms=m +CONFIG_PACKAGE_luci-i18n-mosquitto-nl=m +CONFIG_PACKAGE_luci-i18n-mosquitto-no=m +CONFIG_PACKAGE_luci-i18n-mosquitto-pl=m +CONFIG_PACKAGE_luci-i18n-mosquitto-pt=m +CONFIG_PACKAGE_luci-i18n-mosquitto-pt-br=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ro=m +CONFIG_PACKAGE_luci-i18n-mosquitto-ru=m +CONFIG_PACKAGE_luci-i18n-mosquitto-sk=m +CONFIG_PACKAGE_luci-i18n-mosquitto-sv=m +CONFIG_PACKAGE_luci-i18n-mosquitto-tr=m +CONFIG_PACKAGE_luci-i18n-mosquitto-uk=m +CONFIG_PACKAGE_luci-i18n-mosquitto-vi=m +CONFIG_PACKAGE_luci-i18n-mosquitto-zh-cn=m +CONFIG_PACKAGE_luci-i18n-mosquitto-zh-tw=m +CONFIG_PACKAGE_luci-i18n-mwan3-ar=m +CONFIG_PACKAGE_luci-i18n-mwan3-bg=m +CONFIG_PACKAGE_luci-i18n-mwan3-bn=m +CONFIG_PACKAGE_luci-i18n-mwan3-ca=m +CONFIG_PACKAGE_luci-i18n-mwan3-cs=m +CONFIG_PACKAGE_luci-i18n-mwan3-da=m +CONFIG_PACKAGE_luci-i18n-mwan3-de=m +CONFIG_PACKAGE_luci-i18n-mwan3-el=m +CONFIG_PACKAGE_luci-i18n-mwan3-es=m +CONFIG_PACKAGE_luci-i18n-mwan3-fi=m +CONFIG_PACKAGE_luci-i18n-mwan3-fr=m +CONFIG_PACKAGE_luci-i18n-mwan3-he=m +CONFIG_PACKAGE_luci-i18n-mwan3-hi=m +CONFIG_PACKAGE_luci-i18n-mwan3-hu=m +CONFIG_PACKAGE_luci-i18n-mwan3-it=m +CONFIG_PACKAGE_luci-i18n-mwan3-ja=m +CONFIG_PACKAGE_luci-i18n-mwan3-ko=m +CONFIG_PACKAGE_luci-i18n-mwan3-lt=m +CONFIG_PACKAGE_luci-i18n-mwan3-mr=m +CONFIG_PACKAGE_luci-i18n-mwan3-ms=m +CONFIG_PACKAGE_luci-i18n-mwan3-nl=m +CONFIG_PACKAGE_luci-i18n-mwan3-no=m +CONFIG_PACKAGE_luci-i18n-mwan3-pl=m +CONFIG_PACKAGE_luci-i18n-mwan3-pt=m +CONFIG_PACKAGE_luci-i18n-mwan3-pt-br=m +CONFIG_PACKAGE_luci-i18n-mwan3-ro=m +CONFIG_PACKAGE_luci-i18n-mwan3-ru=m +CONFIG_PACKAGE_luci-i18n-mwan3-sk=m +CONFIG_PACKAGE_luci-i18n-mwan3-sv=m +CONFIG_PACKAGE_luci-i18n-mwan3-tr=m +CONFIG_PACKAGE_luci-i18n-mwan3-uk=m +CONFIG_PACKAGE_luci-i18n-mwan3-vi=m +CONFIG_PACKAGE_luci-i18n-mwan3-zh-cn=m +CONFIG_PACKAGE_luci-i18n-mwan3-zh-tw=m +CONFIG_PACKAGE_luci-i18n-natmap-ar=m +CONFIG_PACKAGE_luci-i18n-natmap-bg=m +CONFIG_PACKAGE_luci-i18n-natmap-bn=m +CONFIG_PACKAGE_luci-i18n-natmap-ca=m +CONFIG_PACKAGE_luci-i18n-natmap-cs=m +CONFIG_PACKAGE_luci-i18n-natmap-da=m +CONFIG_PACKAGE_luci-i18n-natmap-de=m +CONFIG_PACKAGE_luci-i18n-natmap-el=m +CONFIG_PACKAGE_luci-i18n-natmap-es=m +CONFIG_PACKAGE_luci-i18n-natmap-fi=m +CONFIG_PACKAGE_luci-i18n-natmap-fr=m +CONFIG_PACKAGE_luci-i18n-natmap-he=m +CONFIG_PACKAGE_luci-i18n-natmap-hi=m +CONFIG_PACKAGE_luci-i18n-natmap-hu=m +CONFIG_PACKAGE_luci-i18n-natmap-it=m +CONFIG_PACKAGE_luci-i18n-natmap-ja=m +CONFIG_PACKAGE_luci-i18n-natmap-ko=m +CONFIG_PACKAGE_luci-i18n-natmap-lt=m +CONFIG_PACKAGE_luci-i18n-natmap-mr=m +CONFIG_PACKAGE_luci-i18n-natmap-ms=m +CONFIG_PACKAGE_luci-i18n-natmap-nl=m +CONFIG_PACKAGE_luci-i18n-natmap-no=m +CONFIG_PACKAGE_luci-i18n-natmap-pl=m +CONFIG_PACKAGE_luci-i18n-natmap-pt=m +CONFIG_PACKAGE_luci-i18n-natmap-pt-br=m +CONFIG_PACKAGE_luci-i18n-natmap-ro=m +CONFIG_PACKAGE_luci-i18n-natmap-ru=m +CONFIG_PACKAGE_luci-i18n-natmap-sk=m +CONFIG_PACKAGE_luci-i18n-natmap-sv=m +CONFIG_PACKAGE_luci-i18n-natmap-tr=m +CONFIG_PACKAGE_luci-i18n-natmap-uk=m +CONFIG_PACKAGE_luci-i18n-natmap-vi=m +CONFIG_PACKAGE_luci-i18n-natmap-zh-cn=m +CONFIG_PACKAGE_luci-i18n-natmap-zh-tw=m +CONFIG_PACKAGE_luci-i18n-nextdns-ar=m +CONFIG_PACKAGE_luci-i18n-nextdns-bg=m +CONFIG_PACKAGE_luci-i18n-nextdns-bn=m +CONFIG_PACKAGE_luci-i18n-nextdns-ca=m +CONFIG_PACKAGE_luci-i18n-nextdns-cs=m +CONFIG_PACKAGE_luci-i18n-nextdns-da=m +CONFIG_PACKAGE_luci-i18n-nextdns-de=m +CONFIG_PACKAGE_luci-i18n-nextdns-el=m +CONFIG_PACKAGE_luci-i18n-nextdns-es=m +CONFIG_PACKAGE_luci-i18n-nextdns-fi=m +CONFIG_PACKAGE_luci-i18n-nextdns-fr=m +CONFIG_PACKAGE_luci-i18n-nextdns-he=m +CONFIG_PACKAGE_luci-i18n-nextdns-hi=m +CONFIG_PACKAGE_luci-i18n-nextdns-hu=m +CONFIG_PACKAGE_luci-i18n-nextdns-it=m +CONFIG_PACKAGE_luci-i18n-nextdns-ja=m +CONFIG_PACKAGE_luci-i18n-nextdns-ko=m +CONFIG_PACKAGE_luci-i18n-nextdns-lt=m +CONFIG_PACKAGE_luci-i18n-nextdns-mr=m +CONFIG_PACKAGE_luci-i18n-nextdns-ms=m +CONFIG_PACKAGE_luci-i18n-nextdns-nl=m +CONFIG_PACKAGE_luci-i18n-nextdns-no=m +CONFIG_PACKAGE_luci-i18n-nextdns-pl=m +CONFIG_PACKAGE_luci-i18n-nextdns-pt=m +CONFIG_PACKAGE_luci-i18n-nextdns-pt-br=m +CONFIG_PACKAGE_luci-i18n-nextdns-ro=m +CONFIG_PACKAGE_luci-i18n-nextdns-ru=m +CONFIG_PACKAGE_luci-i18n-nextdns-sk=m +CONFIG_PACKAGE_luci-i18n-nextdns-sv=m +CONFIG_PACKAGE_luci-i18n-nextdns-tr=m +CONFIG_PACKAGE_luci-i18n-nextdns-uk=m +CONFIG_PACKAGE_luci-i18n-nextdns-vi=m +CONFIG_PACKAGE_luci-i18n-nextdns-zh-cn=m +CONFIG_PACKAGE_luci-i18n-nextdns-zh-tw=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ar=m +CONFIG_PACKAGE_luci-i18n-nft-qos-bg=m +CONFIG_PACKAGE_luci-i18n-nft-qos-bn=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ca=m +CONFIG_PACKAGE_luci-i18n-nft-qos-cs=m +CONFIG_PACKAGE_luci-i18n-nft-qos-da=m +CONFIG_PACKAGE_luci-i18n-nft-qos-de=m +CONFIG_PACKAGE_luci-i18n-nft-qos-el=m +CONFIG_PACKAGE_luci-i18n-nft-qos-es=m +CONFIG_PACKAGE_luci-i18n-nft-qos-fi=m +CONFIG_PACKAGE_luci-i18n-nft-qos-fr=m +CONFIG_PACKAGE_luci-i18n-nft-qos-he=m +CONFIG_PACKAGE_luci-i18n-nft-qos-hi=m +CONFIG_PACKAGE_luci-i18n-nft-qos-hu=m +CONFIG_PACKAGE_luci-i18n-nft-qos-it=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ja=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ko=m +CONFIG_PACKAGE_luci-i18n-nft-qos-lt=m +CONFIG_PACKAGE_luci-i18n-nft-qos-mr=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ms=m +CONFIG_PACKAGE_luci-i18n-nft-qos-nl=m +CONFIG_PACKAGE_luci-i18n-nft-qos-no=m +CONFIG_PACKAGE_luci-i18n-nft-qos-pl=m +CONFIG_PACKAGE_luci-i18n-nft-qos-pt=m +CONFIG_PACKAGE_luci-i18n-nft-qos-pt-br=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ro=m +CONFIG_PACKAGE_luci-i18n-nft-qos-ru=m +CONFIG_PACKAGE_luci-i18n-nft-qos-sk=m +CONFIG_PACKAGE_luci-i18n-nft-qos-sv=m +CONFIG_PACKAGE_luci-i18n-nft-qos-tr=m +CONFIG_PACKAGE_luci-i18n-nft-qos-uk=m +CONFIG_PACKAGE_luci-i18n-nft-qos-vi=m +CONFIG_PACKAGE_luci-i18n-nft-qos-zh-cn=m +CONFIG_PACKAGE_luci-i18n-nft-qos-zh-tw=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ar=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-bg=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-bn=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ca=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-cs=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-da=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-de=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-el=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-es=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-fi=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-fr=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-he=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-hi=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-hu=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-it=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ja=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ko=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-lt=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-mr=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ms=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-nl=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-no=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-pl=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-pt=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-pt-br=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ro=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-ru=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-sk=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-sv=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-tr=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-uk=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-vi=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-zh-cn=m +CONFIG_PACKAGE_luci-i18n-nlbwmon-zh-tw=m +CONFIG_PACKAGE_luci-i18n-nut-ar=m +CONFIG_PACKAGE_luci-i18n-nut-bg=m +CONFIG_PACKAGE_luci-i18n-nut-bn=m +CONFIG_PACKAGE_luci-i18n-nut-ca=m +CONFIG_PACKAGE_luci-i18n-nut-cs=m +CONFIG_PACKAGE_luci-i18n-nut-da=m +CONFIG_PACKAGE_luci-i18n-nut-de=m +CONFIG_PACKAGE_luci-i18n-nut-el=m +CONFIG_PACKAGE_luci-i18n-nut-es=m +CONFIG_PACKAGE_luci-i18n-nut-fi=m +CONFIG_PACKAGE_luci-i18n-nut-fr=m +CONFIG_PACKAGE_luci-i18n-nut-he=m +CONFIG_PACKAGE_luci-i18n-nut-hi=m +CONFIG_PACKAGE_luci-i18n-nut-hu=m +CONFIG_PACKAGE_luci-i18n-nut-it=m +CONFIG_PACKAGE_luci-i18n-nut-ja=m +CONFIG_PACKAGE_luci-i18n-nut-ko=m +CONFIG_PACKAGE_luci-i18n-nut-lt=m +CONFIG_PACKAGE_luci-i18n-nut-mr=m +CONFIG_PACKAGE_luci-i18n-nut-ms=m +CONFIG_PACKAGE_luci-i18n-nut-nl=m +CONFIG_PACKAGE_luci-i18n-nut-no=m +CONFIG_PACKAGE_luci-i18n-nut-pl=m +CONFIG_PACKAGE_luci-i18n-nut-pt=m +CONFIG_PACKAGE_luci-i18n-nut-pt-br=m +CONFIG_PACKAGE_luci-i18n-nut-ro=m +CONFIG_PACKAGE_luci-i18n-nut-ru=m +CONFIG_PACKAGE_luci-i18n-nut-sk=m +CONFIG_PACKAGE_luci-i18n-nut-sv=m +CONFIG_PACKAGE_luci-i18n-nut-tr=m +CONFIG_PACKAGE_luci-i18n-nut-uk=m +CONFIG_PACKAGE_luci-i18n-nut-vi=m +CONFIG_PACKAGE_luci-i18n-nut-zh-cn=m +CONFIG_PACKAGE_luci-i18n-nut-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ocserv-ar=m +CONFIG_PACKAGE_luci-i18n-ocserv-bg=m +CONFIG_PACKAGE_luci-i18n-ocserv-bn=m +CONFIG_PACKAGE_luci-i18n-ocserv-ca=m +CONFIG_PACKAGE_luci-i18n-ocserv-cs=m +CONFIG_PACKAGE_luci-i18n-ocserv-da=m +CONFIG_PACKAGE_luci-i18n-ocserv-de=m +CONFIG_PACKAGE_luci-i18n-ocserv-el=m +CONFIG_PACKAGE_luci-i18n-ocserv-es=m +CONFIG_PACKAGE_luci-i18n-ocserv-fi=m +CONFIG_PACKAGE_luci-i18n-ocserv-fr=m +CONFIG_PACKAGE_luci-i18n-ocserv-he=m +CONFIG_PACKAGE_luci-i18n-ocserv-hi=m +CONFIG_PACKAGE_luci-i18n-ocserv-hu=m +CONFIG_PACKAGE_luci-i18n-ocserv-it=m +CONFIG_PACKAGE_luci-i18n-ocserv-ja=m +CONFIG_PACKAGE_luci-i18n-ocserv-ko=m +CONFIG_PACKAGE_luci-i18n-ocserv-lt=m +CONFIG_PACKAGE_luci-i18n-ocserv-mr=m +CONFIG_PACKAGE_luci-i18n-ocserv-ms=m +CONFIG_PACKAGE_luci-i18n-ocserv-nl=m +CONFIG_PACKAGE_luci-i18n-ocserv-no=m +CONFIG_PACKAGE_luci-i18n-ocserv-pl=m +CONFIG_PACKAGE_luci-i18n-ocserv-pt=m +CONFIG_PACKAGE_luci-i18n-ocserv-pt-br=m +CONFIG_PACKAGE_luci-i18n-ocserv-ro=m +CONFIG_PACKAGE_luci-i18n-ocserv-ru=m +CONFIG_PACKAGE_luci-i18n-ocserv-sk=m +CONFIG_PACKAGE_luci-i18n-ocserv-sv=m +CONFIG_PACKAGE_luci-i18n-ocserv-tr=m +CONFIG_PACKAGE_luci-i18n-ocserv-uk=m +CONFIG_PACKAGE_luci-i18n-ocserv-vi=m +CONFIG_PACKAGE_luci-i18n-ocserv-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ocserv-zh-tw=m +CONFIG_PACKAGE_luci-i18n-olsr-ar=m +CONFIG_PACKAGE_luci-i18n-olsr-bg=m +CONFIG_PACKAGE_luci-i18n-olsr-bn=m +CONFIG_PACKAGE_luci-i18n-olsr-ca=m +CONFIG_PACKAGE_luci-i18n-olsr-cs=m +CONFIG_PACKAGE_luci-i18n-olsr-da=m +CONFIG_PACKAGE_luci-i18n-olsr-de=m +CONFIG_PACKAGE_luci-i18n-olsr-el=m +CONFIG_PACKAGE_luci-i18n-olsr-es=m +CONFIG_PACKAGE_luci-i18n-olsr-fi=m +CONFIG_PACKAGE_luci-i18n-olsr-fr=m +CONFIG_PACKAGE_luci-i18n-olsr-he=m +CONFIG_PACKAGE_luci-i18n-olsr-hi=m +CONFIG_PACKAGE_luci-i18n-olsr-hu=m +CONFIG_PACKAGE_luci-i18n-olsr-it=m +CONFIG_PACKAGE_luci-i18n-olsr-ja=m +CONFIG_PACKAGE_luci-i18n-olsr-ko=m +CONFIG_PACKAGE_luci-i18n-olsr-lt=m +CONFIG_PACKAGE_luci-i18n-olsr-mr=m +CONFIG_PACKAGE_luci-i18n-olsr-ms=m +CONFIG_PACKAGE_luci-i18n-olsr-nl=m +CONFIG_PACKAGE_luci-i18n-olsr-no=m +CONFIG_PACKAGE_luci-i18n-olsr-pl=m +CONFIG_PACKAGE_luci-i18n-olsr-pt=m +CONFIG_PACKAGE_luci-i18n-olsr-pt-br=m +CONFIG_PACKAGE_luci-i18n-olsr-ro=m +CONFIG_PACKAGE_luci-i18n-olsr-ru=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ar=m +CONFIG_PACKAGE_luci-i18n-olsr-services-bg=m +CONFIG_PACKAGE_luci-i18n-olsr-services-bn=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ca=m +CONFIG_PACKAGE_luci-i18n-olsr-services-cs=m +CONFIG_PACKAGE_luci-i18n-olsr-services-da=m +CONFIG_PACKAGE_luci-i18n-olsr-services-de=m +CONFIG_PACKAGE_luci-i18n-olsr-services-el=m +CONFIG_PACKAGE_luci-i18n-olsr-services-es=m +CONFIG_PACKAGE_luci-i18n-olsr-services-fi=m +CONFIG_PACKAGE_luci-i18n-olsr-services-fr=m +CONFIG_PACKAGE_luci-i18n-olsr-services-he=m +CONFIG_PACKAGE_luci-i18n-olsr-services-hi=m +CONFIG_PACKAGE_luci-i18n-olsr-services-hu=m +CONFIG_PACKAGE_luci-i18n-olsr-services-it=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ja=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ko=m +CONFIG_PACKAGE_luci-i18n-olsr-services-lt=m +CONFIG_PACKAGE_luci-i18n-olsr-services-mr=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ms=m +CONFIG_PACKAGE_luci-i18n-olsr-services-nl=m +CONFIG_PACKAGE_luci-i18n-olsr-services-no=m +CONFIG_PACKAGE_luci-i18n-olsr-services-pl=m +CONFIG_PACKAGE_luci-i18n-olsr-services-pt=m +CONFIG_PACKAGE_luci-i18n-olsr-services-pt-br=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ro=m +CONFIG_PACKAGE_luci-i18n-olsr-services-ru=m +CONFIG_PACKAGE_luci-i18n-olsr-services-sk=m +CONFIG_PACKAGE_luci-i18n-olsr-services-sv=m +CONFIG_PACKAGE_luci-i18n-olsr-services-tr=m +CONFIG_PACKAGE_luci-i18n-olsr-services-uk=m +CONFIG_PACKAGE_luci-i18n-olsr-services-vi=m +CONFIG_PACKAGE_luci-i18n-olsr-services-zh-cn=m +CONFIG_PACKAGE_luci-i18n-olsr-services-zh-tw=m +CONFIG_PACKAGE_luci-i18n-olsr-sk=m +CONFIG_PACKAGE_luci-i18n-olsr-sv=m +CONFIG_PACKAGE_luci-i18n-olsr-tr=m +CONFIG_PACKAGE_luci-i18n-olsr-uk=m +CONFIG_PACKAGE_luci-i18n-olsr-vi=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ar=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-bg=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-bn=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ca=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-cs=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-da=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-de=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-el=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-es=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-fi=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-fr=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-he=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-hi=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-hu=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-it=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ja=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ko=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-lt=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-mr=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ms=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-nl=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-no=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-pl=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-pt=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-pt-br=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ro=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-ru=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-sk=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-sv=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-tr=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-uk=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-vi=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-zh-cn=m +CONFIG_PACKAGE_luci-i18n-olsr-viz-zh-tw=m +CONFIG_PACKAGE_luci-i18n-olsr-zh-cn=m +CONFIG_PACKAGE_luci-i18n-olsr-zh-tw=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ar=m +CONFIG_PACKAGE_luci-i18n-omcproxy-bg=m +CONFIG_PACKAGE_luci-i18n-omcproxy-bn=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ca=m +CONFIG_PACKAGE_luci-i18n-omcproxy-cs=m +CONFIG_PACKAGE_luci-i18n-omcproxy-da=m +CONFIG_PACKAGE_luci-i18n-omcproxy-de=m +CONFIG_PACKAGE_luci-i18n-omcproxy-el=m +CONFIG_PACKAGE_luci-i18n-omcproxy-es=m +CONFIG_PACKAGE_luci-i18n-omcproxy-fi=m +CONFIG_PACKAGE_luci-i18n-omcproxy-fr=m +CONFIG_PACKAGE_luci-i18n-omcproxy-he=m +CONFIG_PACKAGE_luci-i18n-omcproxy-hi=m +CONFIG_PACKAGE_luci-i18n-omcproxy-hu=m +CONFIG_PACKAGE_luci-i18n-omcproxy-it=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ja=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ko=m +CONFIG_PACKAGE_luci-i18n-omcproxy-lt=m +CONFIG_PACKAGE_luci-i18n-omcproxy-mr=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ms=m +CONFIG_PACKAGE_luci-i18n-omcproxy-nl=m +CONFIG_PACKAGE_luci-i18n-omcproxy-no=m +CONFIG_PACKAGE_luci-i18n-omcproxy-pl=m +CONFIG_PACKAGE_luci-i18n-omcproxy-pt=m +CONFIG_PACKAGE_luci-i18n-omcproxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ro=m +CONFIG_PACKAGE_luci-i18n-omcproxy-ru=m +CONFIG_PACKAGE_luci-i18n-omcproxy-sk=m +CONFIG_PACKAGE_luci-i18n-omcproxy-sv=m +CONFIG_PACKAGE_luci-i18n-omcproxy-tr=m +CONFIG_PACKAGE_luci-i18n-omcproxy-uk=m +CONFIG_PACKAGE_luci-i18n-omcproxy-vi=m +CONFIG_PACKAGE_luci-i18n-omcproxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-omcproxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-openvpn-ar=m +CONFIG_PACKAGE_luci-i18n-openvpn-bg=m +CONFIG_PACKAGE_luci-i18n-openvpn-bn=m +CONFIG_PACKAGE_luci-i18n-openvpn-ca=m +CONFIG_PACKAGE_luci-i18n-openvpn-cs=m +CONFIG_PACKAGE_luci-i18n-openvpn-da=m +CONFIG_PACKAGE_luci-i18n-openvpn-de=m +CONFIG_PACKAGE_luci-i18n-openvpn-el=m +CONFIG_PACKAGE_luci-i18n-openvpn-es=m +CONFIG_PACKAGE_luci-i18n-openvpn-fi=m +CONFIG_PACKAGE_luci-i18n-openvpn-fr=m +CONFIG_PACKAGE_luci-i18n-openvpn-he=m +CONFIG_PACKAGE_luci-i18n-openvpn-hi=m +CONFIG_PACKAGE_luci-i18n-openvpn-hu=m +CONFIG_PACKAGE_luci-i18n-openvpn-it=m +CONFIG_PACKAGE_luci-i18n-openvpn-ja=m +CONFIG_PACKAGE_luci-i18n-openvpn-ko=m +CONFIG_PACKAGE_luci-i18n-openvpn-lt=m +CONFIG_PACKAGE_luci-i18n-openvpn-mr=m +CONFIG_PACKAGE_luci-i18n-openvpn-ms=m +CONFIG_PACKAGE_luci-i18n-openvpn-nl=m +CONFIG_PACKAGE_luci-i18n-openvpn-no=m +CONFIG_PACKAGE_luci-i18n-openvpn-pl=m +CONFIG_PACKAGE_luci-i18n-openvpn-pt=m +CONFIG_PACKAGE_luci-i18n-openvpn-pt-br=m +CONFIG_PACKAGE_luci-i18n-openvpn-ro=m +CONFIG_PACKAGE_luci-i18n-openvpn-ru=m +CONFIG_PACKAGE_luci-i18n-openvpn-sk=m +CONFIG_PACKAGE_luci-i18n-openvpn-sv=m +CONFIG_PACKAGE_luci-i18n-openvpn-tr=m +CONFIG_PACKAGE_luci-i18n-openvpn-uk=m +CONFIG_PACKAGE_luci-i18n-openvpn-vi=m +CONFIG_PACKAGE_luci-i18n-openvpn-zh-cn=m +CONFIG_PACKAGE_luci-i18n-openvpn-zh-tw=m +CONFIG_PACKAGE_luci-i18n-openwisp-ar=m +CONFIG_PACKAGE_luci-i18n-openwisp-bg=m +CONFIG_PACKAGE_luci-i18n-openwisp-bn=m +CONFIG_PACKAGE_luci-i18n-openwisp-ca=m +CONFIG_PACKAGE_luci-i18n-openwisp-cs=m +CONFIG_PACKAGE_luci-i18n-openwisp-da=m +CONFIG_PACKAGE_luci-i18n-openwisp-de=m +CONFIG_PACKAGE_luci-i18n-openwisp-el=m +CONFIG_PACKAGE_luci-i18n-openwisp-es=m +CONFIG_PACKAGE_luci-i18n-openwisp-fi=m +CONFIG_PACKAGE_luci-i18n-openwisp-fr=m +CONFIG_PACKAGE_luci-i18n-openwisp-he=m +CONFIG_PACKAGE_luci-i18n-openwisp-hi=m +CONFIG_PACKAGE_luci-i18n-openwisp-hu=m +CONFIG_PACKAGE_luci-i18n-openwisp-it=m +CONFIG_PACKAGE_luci-i18n-openwisp-ja=m +CONFIG_PACKAGE_luci-i18n-openwisp-ko=m +CONFIG_PACKAGE_luci-i18n-openwisp-lt=m +CONFIG_PACKAGE_luci-i18n-openwisp-mr=m +CONFIG_PACKAGE_luci-i18n-openwisp-ms=m +CONFIG_PACKAGE_luci-i18n-openwisp-nl=m +CONFIG_PACKAGE_luci-i18n-openwisp-no=m +CONFIG_PACKAGE_luci-i18n-openwisp-pl=m +CONFIG_PACKAGE_luci-i18n-openwisp-pt=m +CONFIG_PACKAGE_luci-i18n-openwisp-pt-br=m +CONFIG_PACKAGE_luci-i18n-openwisp-ro=m +CONFIG_PACKAGE_luci-i18n-openwisp-ru=m +CONFIG_PACKAGE_luci-i18n-openwisp-sk=m +CONFIG_PACKAGE_luci-i18n-openwisp-sv=m +CONFIG_PACKAGE_luci-i18n-openwisp-tr=m +CONFIG_PACKAGE_luci-i18n-openwisp-uk=m +CONFIG_PACKAGE_luci-i18n-openwisp-vi=m +CONFIG_PACKAGE_luci-i18n-openwisp-zh-cn=m +CONFIG_PACKAGE_luci-i18n-openwisp-zh-tw=m +CONFIG_PACKAGE_luci-i18n-opkg-ar=m +CONFIG_PACKAGE_luci-i18n-opkg-bg=m +CONFIG_PACKAGE_luci-i18n-opkg-bn=m +CONFIG_PACKAGE_luci-i18n-opkg-ca=m +CONFIG_PACKAGE_luci-i18n-opkg-cs=m +CONFIG_PACKAGE_luci-i18n-opkg-da=m +CONFIG_PACKAGE_luci-i18n-opkg-de=m +CONFIG_PACKAGE_luci-i18n-opkg-el=m +CONFIG_PACKAGE_luci-i18n-opkg-es=m +CONFIG_PACKAGE_luci-i18n-opkg-fi=m +CONFIG_PACKAGE_luci-i18n-opkg-fr=m +CONFIG_PACKAGE_luci-i18n-opkg-he=m +CONFIG_PACKAGE_luci-i18n-opkg-hi=m +CONFIG_PACKAGE_luci-i18n-opkg-hu=m +CONFIG_PACKAGE_luci-i18n-opkg-it=m +CONFIG_PACKAGE_luci-i18n-opkg-ja=m +CONFIG_PACKAGE_luci-i18n-opkg-ko=m +CONFIG_PACKAGE_luci-i18n-opkg-lt=m +CONFIG_PACKAGE_luci-i18n-opkg-mr=m +CONFIG_PACKAGE_luci-i18n-opkg-ms=m +CONFIG_PACKAGE_luci-i18n-opkg-nl=m +CONFIG_PACKAGE_luci-i18n-opkg-no=m +CONFIG_PACKAGE_luci-i18n-opkg-pl=m +CONFIG_PACKAGE_luci-i18n-opkg-pt=m +CONFIG_PACKAGE_luci-i18n-opkg-pt-br=m +CONFIG_PACKAGE_luci-i18n-opkg-ro=m +CONFIG_PACKAGE_luci-i18n-opkg-ru=m +CONFIG_PACKAGE_luci-i18n-opkg-sk=m +CONFIG_PACKAGE_luci-i18n-opkg-sv=m +CONFIG_PACKAGE_luci-i18n-opkg-tr=m +CONFIG_PACKAGE_luci-i18n-opkg-uk=m +CONFIG_PACKAGE_luci-i18n-opkg-vi=m +CONFIG_PACKAGE_luci-i18n-opkg-zh-cn=m +CONFIG_PACKAGE_luci-i18n-opkg-zh-tw=m +CONFIG_PACKAGE_luci-i18n-p910nd-ar=m +CONFIG_PACKAGE_luci-i18n-p910nd-bg=m +CONFIG_PACKAGE_luci-i18n-p910nd-bn=m +CONFIG_PACKAGE_luci-i18n-p910nd-ca=m +CONFIG_PACKAGE_luci-i18n-p910nd-cs=m +CONFIG_PACKAGE_luci-i18n-p910nd-da=m +CONFIG_PACKAGE_luci-i18n-p910nd-de=m +CONFIG_PACKAGE_luci-i18n-p910nd-el=m +CONFIG_PACKAGE_luci-i18n-p910nd-es=m +CONFIG_PACKAGE_luci-i18n-p910nd-fi=m +CONFIG_PACKAGE_luci-i18n-p910nd-fr=m +CONFIG_PACKAGE_luci-i18n-p910nd-he=m +CONFIG_PACKAGE_luci-i18n-p910nd-hi=m +CONFIG_PACKAGE_luci-i18n-p910nd-hu=m +CONFIG_PACKAGE_luci-i18n-p910nd-it=m +CONFIG_PACKAGE_luci-i18n-p910nd-ja=m +CONFIG_PACKAGE_luci-i18n-p910nd-ko=m +CONFIG_PACKAGE_luci-i18n-p910nd-lt=m +CONFIG_PACKAGE_luci-i18n-p910nd-mr=m +CONFIG_PACKAGE_luci-i18n-p910nd-ms=m +CONFIG_PACKAGE_luci-i18n-p910nd-nl=m +CONFIG_PACKAGE_luci-i18n-p910nd-no=m +CONFIG_PACKAGE_luci-i18n-p910nd-pl=m +CONFIG_PACKAGE_luci-i18n-p910nd-pt=m +CONFIG_PACKAGE_luci-i18n-p910nd-pt-br=m +CONFIG_PACKAGE_luci-i18n-p910nd-ro=m +CONFIG_PACKAGE_luci-i18n-p910nd-ru=m +CONFIG_PACKAGE_luci-i18n-p910nd-sk=m +CONFIG_PACKAGE_luci-i18n-p910nd-sv=m +CONFIG_PACKAGE_luci-i18n-p910nd-tr=m +CONFIG_PACKAGE_luci-i18n-p910nd-uk=m +CONFIG_PACKAGE_luci-i18n-p910nd-vi=m +CONFIG_PACKAGE_luci-i18n-p910nd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-p910nd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ar=m +CONFIG_PACKAGE_luci-i18n-pagekitec-bg=m +CONFIG_PACKAGE_luci-i18n-pagekitec-bn=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ca=m +CONFIG_PACKAGE_luci-i18n-pagekitec-cs=m +CONFIG_PACKAGE_luci-i18n-pagekitec-da=m +CONFIG_PACKAGE_luci-i18n-pagekitec-de=m +CONFIG_PACKAGE_luci-i18n-pagekitec-el=m +CONFIG_PACKAGE_luci-i18n-pagekitec-es=m +CONFIG_PACKAGE_luci-i18n-pagekitec-fi=m +CONFIG_PACKAGE_luci-i18n-pagekitec-fr=m +CONFIG_PACKAGE_luci-i18n-pagekitec-he=m +CONFIG_PACKAGE_luci-i18n-pagekitec-hi=m +CONFIG_PACKAGE_luci-i18n-pagekitec-hu=m +CONFIG_PACKAGE_luci-i18n-pagekitec-it=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ja=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ko=m +CONFIG_PACKAGE_luci-i18n-pagekitec-lt=m +CONFIG_PACKAGE_luci-i18n-pagekitec-mr=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ms=m +CONFIG_PACKAGE_luci-i18n-pagekitec-nl=m +CONFIG_PACKAGE_luci-i18n-pagekitec-no=m +CONFIG_PACKAGE_luci-i18n-pagekitec-pl=m +CONFIG_PACKAGE_luci-i18n-pagekitec-pt=m +CONFIG_PACKAGE_luci-i18n-pagekitec-pt-br=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ro=m +CONFIG_PACKAGE_luci-i18n-pagekitec-ru=m +CONFIG_PACKAGE_luci-i18n-pagekitec-sk=m +CONFIG_PACKAGE_luci-i18n-pagekitec-sv=m +CONFIG_PACKAGE_luci-i18n-pagekitec-tr=m +CONFIG_PACKAGE_luci-i18n-pagekitec-uk=m +CONFIG_PACKAGE_luci-i18n-pagekitec-vi=m +CONFIG_PACKAGE_luci-i18n-pagekitec-zh-cn=m +CONFIG_PACKAGE_luci-i18n-pagekitec-zh-tw=m +CONFIG_PACKAGE_luci-i18n-pbr-ar=m +CONFIG_PACKAGE_luci-i18n-pbr-bg=m +CONFIG_PACKAGE_luci-i18n-pbr-bn=m +CONFIG_PACKAGE_luci-i18n-pbr-ca=m +CONFIG_PACKAGE_luci-i18n-pbr-cs=m +CONFIG_PACKAGE_luci-i18n-pbr-da=m +CONFIG_PACKAGE_luci-i18n-pbr-de=m +CONFIG_PACKAGE_luci-i18n-pbr-el=m +CONFIG_PACKAGE_luci-i18n-pbr-es=m +CONFIG_PACKAGE_luci-i18n-pbr-fi=m +CONFIG_PACKAGE_luci-i18n-pbr-fr=m +CONFIG_PACKAGE_luci-i18n-pbr-he=m +CONFIG_PACKAGE_luci-i18n-pbr-hi=m +CONFIG_PACKAGE_luci-i18n-pbr-hu=m +CONFIG_PACKAGE_luci-i18n-pbr-it=m +CONFIG_PACKAGE_luci-i18n-pbr-ja=m +CONFIG_PACKAGE_luci-i18n-pbr-ko=m +CONFIG_PACKAGE_luci-i18n-pbr-lt=m +CONFIG_PACKAGE_luci-i18n-pbr-mr=m +CONFIG_PACKAGE_luci-i18n-pbr-ms=m +CONFIG_PACKAGE_luci-i18n-pbr-nl=m +CONFIG_PACKAGE_luci-i18n-pbr-no=m +CONFIG_PACKAGE_luci-i18n-pbr-pl=m +CONFIG_PACKAGE_luci-i18n-pbr-pt=m +CONFIG_PACKAGE_luci-i18n-pbr-pt-br=m +CONFIG_PACKAGE_luci-i18n-pbr-ro=m +CONFIG_PACKAGE_luci-i18n-pbr-ru=m +CONFIG_PACKAGE_luci-i18n-pbr-sk=m +CONFIG_PACKAGE_luci-i18n-pbr-sv=m +CONFIG_PACKAGE_luci-i18n-pbr-tr=m +CONFIG_PACKAGE_luci-i18n-pbr-uk=m +CONFIG_PACKAGE_luci-i18n-pbr-vi=m +CONFIG_PACKAGE_luci-i18n-pbr-zh-cn=m +CONFIG_PACKAGE_luci-i18n-pbr-zh-tw=m +CONFIG_PACKAGE_luci-i18n-polipo-ar=m +CONFIG_PACKAGE_luci-i18n-polipo-bg=m +CONFIG_PACKAGE_luci-i18n-polipo-bn=m +CONFIG_PACKAGE_luci-i18n-polipo-ca=m +CONFIG_PACKAGE_luci-i18n-polipo-cs=m +CONFIG_PACKAGE_luci-i18n-polipo-da=m +CONFIG_PACKAGE_luci-i18n-polipo-de=m +CONFIG_PACKAGE_luci-i18n-polipo-el=m +CONFIG_PACKAGE_luci-i18n-polipo-es=m +CONFIG_PACKAGE_luci-i18n-polipo-fi=m +CONFIG_PACKAGE_luci-i18n-polipo-fr=m +CONFIG_PACKAGE_luci-i18n-polipo-he=m +CONFIG_PACKAGE_luci-i18n-polipo-hi=m +CONFIG_PACKAGE_luci-i18n-polipo-hu=m +CONFIG_PACKAGE_luci-i18n-polipo-it=m +CONFIG_PACKAGE_luci-i18n-polipo-ja=m +CONFIG_PACKAGE_luci-i18n-polipo-ko=m +CONFIG_PACKAGE_luci-i18n-polipo-lt=m +CONFIG_PACKAGE_luci-i18n-polipo-mr=m +CONFIG_PACKAGE_luci-i18n-polipo-ms=m +CONFIG_PACKAGE_luci-i18n-polipo-nl=m +CONFIG_PACKAGE_luci-i18n-polipo-no=m +CONFIG_PACKAGE_luci-i18n-polipo-pl=m +CONFIG_PACKAGE_luci-i18n-polipo-pt=m +CONFIG_PACKAGE_luci-i18n-polipo-pt-br=m +CONFIG_PACKAGE_luci-i18n-polipo-ro=m +CONFIG_PACKAGE_luci-i18n-polipo-ru=m +CONFIG_PACKAGE_luci-i18n-polipo-sk=m +CONFIG_PACKAGE_luci-i18n-polipo-sv=m +CONFIG_PACKAGE_luci-i18n-polipo-tr=m +CONFIG_PACKAGE_luci-i18n-polipo-uk=m +CONFIG_PACKAGE_luci-i18n-polipo-vi=m +CONFIG_PACKAGE_luci-i18n-polipo-zh-cn=m +CONFIG_PACKAGE_luci-i18n-polipo-zh-tw=m +CONFIG_PACKAGE_luci-i18n-privoxy-ar=m +CONFIG_PACKAGE_luci-i18n-privoxy-bg=m +CONFIG_PACKAGE_luci-i18n-privoxy-bn=m +CONFIG_PACKAGE_luci-i18n-privoxy-ca=m +CONFIG_PACKAGE_luci-i18n-privoxy-cs=m +CONFIG_PACKAGE_luci-i18n-privoxy-da=m +CONFIG_PACKAGE_luci-i18n-privoxy-de=m +CONFIG_PACKAGE_luci-i18n-privoxy-el=m +CONFIG_PACKAGE_luci-i18n-privoxy-es=m +CONFIG_PACKAGE_luci-i18n-privoxy-fi=m +CONFIG_PACKAGE_luci-i18n-privoxy-fr=m +CONFIG_PACKAGE_luci-i18n-privoxy-he=m +CONFIG_PACKAGE_luci-i18n-privoxy-hi=m +CONFIG_PACKAGE_luci-i18n-privoxy-hu=m +CONFIG_PACKAGE_luci-i18n-privoxy-it=m +CONFIG_PACKAGE_luci-i18n-privoxy-ja=m +CONFIG_PACKAGE_luci-i18n-privoxy-ko=m +CONFIG_PACKAGE_luci-i18n-privoxy-lt=m +CONFIG_PACKAGE_luci-i18n-privoxy-mr=m +CONFIG_PACKAGE_luci-i18n-privoxy-ms=m +CONFIG_PACKAGE_luci-i18n-privoxy-nl=m +CONFIG_PACKAGE_luci-i18n-privoxy-no=m +CONFIG_PACKAGE_luci-i18n-privoxy-pl=m +CONFIG_PACKAGE_luci-i18n-privoxy-pt=m +CONFIG_PACKAGE_luci-i18n-privoxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-privoxy-ro=m +CONFIG_PACKAGE_luci-i18n-privoxy-ru=m +CONFIG_PACKAGE_luci-i18n-privoxy-sk=m +CONFIG_PACKAGE_luci-i18n-privoxy-sv=m +CONFIG_PACKAGE_luci-i18n-privoxy-tr=m +CONFIG_PACKAGE_luci-i18n-privoxy-uk=m +CONFIG_PACKAGE_luci-i18n-privoxy-vi=m +CONFIG_PACKAGE_luci-i18n-privoxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-privoxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-qos-ar=m +CONFIG_PACKAGE_luci-i18n-qos-bg=m +CONFIG_PACKAGE_luci-i18n-qos-bn=m +CONFIG_PACKAGE_luci-i18n-qos-ca=m +CONFIG_PACKAGE_luci-i18n-qos-cs=m +CONFIG_PACKAGE_luci-i18n-qos-da=m +CONFIG_PACKAGE_luci-i18n-qos-de=m +CONFIG_PACKAGE_luci-i18n-qos-el=m +CONFIG_PACKAGE_luci-i18n-qos-es=m +CONFIG_PACKAGE_luci-i18n-qos-fi=m +CONFIG_PACKAGE_luci-i18n-qos-fr=m +CONFIG_PACKAGE_luci-i18n-qos-he=m +CONFIG_PACKAGE_luci-i18n-qos-hi=m +CONFIG_PACKAGE_luci-i18n-qos-hu=m +CONFIG_PACKAGE_luci-i18n-qos-it=m +CONFIG_PACKAGE_luci-i18n-qos-ja=m +CONFIG_PACKAGE_luci-i18n-qos-ko=m +CONFIG_PACKAGE_luci-i18n-qos-lt=m +CONFIG_PACKAGE_luci-i18n-qos-mr=m +CONFIG_PACKAGE_luci-i18n-qos-ms=m +CONFIG_PACKAGE_luci-i18n-qos-nl=m +CONFIG_PACKAGE_luci-i18n-qos-no=m +CONFIG_PACKAGE_luci-i18n-qos-pl=m +CONFIG_PACKAGE_luci-i18n-qos-pt=m +CONFIG_PACKAGE_luci-i18n-qos-pt-br=m +CONFIG_PACKAGE_luci-i18n-qos-ro=m +CONFIG_PACKAGE_luci-i18n-qos-ru=m +CONFIG_PACKAGE_luci-i18n-qos-sk=m +CONFIG_PACKAGE_luci-i18n-qos-sv=m +CONFIG_PACKAGE_luci-i18n-qos-tr=m +CONFIG_PACKAGE_luci-i18n-qos-uk=m +CONFIG_PACKAGE_luci-i18n-qos-vi=m +CONFIG_PACKAGE_luci-i18n-qos-zh-cn=m +CONFIG_PACKAGE_luci-i18n-qos-zh-tw=m +CONFIG_PACKAGE_luci-i18n-radicale-ar=m +CONFIG_PACKAGE_luci-i18n-radicale-bg=m +CONFIG_PACKAGE_luci-i18n-radicale-bn=m +CONFIG_PACKAGE_luci-i18n-radicale-ca=m +CONFIG_PACKAGE_luci-i18n-radicale-cs=m +CONFIG_PACKAGE_luci-i18n-radicale-da=m +CONFIG_PACKAGE_luci-i18n-radicale-de=m +CONFIG_PACKAGE_luci-i18n-radicale-el=m +CONFIG_PACKAGE_luci-i18n-radicale-es=m +CONFIG_PACKAGE_luci-i18n-radicale-fi=m +CONFIG_PACKAGE_luci-i18n-radicale-fr=m +CONFIG_PACKAGE_luci-i18n-radicale-he=m +CONFIG_PACKAGE_luci-i18n-radicale-hi=m +CONFIG_PACKAGE_luci-i18n-radicale-hu=m +CONFIG_PACKAGE_luci-i18n-radicale-it=m +CONFIG_PACKAGE_luci-i18n-radicale-ja=m +CONFIG_PACKAGE_luci-i18n-radicale-ko=m +CONFIG_PACKAGE_luci-i18n-radicale-lt=m +CONFIG_PACKAGE_luci-i18n-radicale-mr=m +CONFIG_PACKAGE_luci-i18n-radicale-ms=m +CONFIG_PACKAGE_luci-i18n-radicale-nl=m +CONFIG_PACKAGE_luci-i18n-radicale-no=m +CONFIG_PACKAGE_luci-i18n-radicale-pl=m +CONFIG_PACKAGE_luci-i18n-radicale-pt=m +CONFIG_PACKAGE_luci-i18n-radicale-pt-br=m +CONFIG_PACKAGE_luci-i18n-radicale-ro=m +CONFIG_PACKAGE_luci-i18n-radicale-ru=m +CONFIG_PACKAGE_luci-i18n-radicale-sk=m +CONFIG_PACKAGE_luci-i18n-radicale-sv=m +CONFIG_PACKAGE_luci-i18n-radicale-tr=m +CONFIG_PACKAGE_luci-i18n-radicale-uk=m +CONFIG_PACKAGE_luci-i18n-radicale-vi=m +CONFIG_PACKAGE_luci-i18n-radicale-zh-cn=m +CONFIG_PACKAGE_luci-i18n-radicale-zh-tw=m +CONFIG_PACKAGE_luci-i18n-radicale2-ar=m +CONFIG_PACKAGE_luci-i18n-radicale2-bg=m +CONFIG_PACKAGE_luci-i18n-radicale2-bn=m +CONFIG_PACKAGE_luci-i18n-radicale2-ca=m +CONFIG_PACKAGE_luci-i18n-radicale2-cs=m +CONFIG_PACKAGE_luci-i18n-radicale2-da=m +CONFIG_PACKAGE_luci-i18n-radicale2-de=m +CONFIG_PACKAGE_luci-i18n-radicale2-el=m +CONFIG_PACKAGE_luci-i18n-radicale2-es=m +CONFIG_PACKAGE_luci-i18n-radicale2-fi=m +CONFIG_PACKAGE_luci-i18n-radicale2-fr=m +CONFIG_PACKAGE_luci-i18n-radicale2-he=m +CONFIG_PACKAGE_luci-i18n-radicale2-hi=m +CONFIG_PACKAGE_luci-i18n-radicale2-hu=m +CONFIG_PACKAGE_luci-i18n-radicale2-it=m +CONFIG_PACKAGE_luci-i18n-radicale2-ja=m +CONFIG_PACKAGE_luci-i18n-radicale2-ko=m +CONFIG_PACKAGE_luci-i18n-radicale2-lt=m +CONFIG_PACKAGE_luci-i18n-radicale2-mr=m +CONFIG_PACKAGE_luci-i18n-radicale2-ms=m +CONFIG_PACKAGE_luci-i18n-radicale2-nl=m +CONFIG_PACKAGE_luci-i18n-radicale2-no=m +CONFIG_PACKAGE_luci-i18n-radicale2-pl=m +CONFIG_PACKAGE_luci-i18n-radicale2-pt=m +CONFIG_PACKAGE_luci-i18n-radicale2-pt-br=m +CONFIG_PACKAGE_luci-i18n-radicale2-ro=m +CONFIG_PACKAGE_luci-i18n-radicale2-ru=m +CONFIG_PACKAGE_luci-i18n-radicale2-sk=m +CONFIG_PACKAGE_luci-i18n-radicale2-sv=m +CONFIG_PACKAGE_luci-i18n-radicale2-tr=m +CONFIG_PACKAGE_luci-i18n-radicale2-uk=m +CONFIG_PACKAGE_luci-i18n-radicale2-vi=m +CONFIG_PACKAGE_luci-i18n-radicale2-zh-cn=m +CONFIG_PACKAGE_luci-i18n-radicale2-zh-tw=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ar=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-bg=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-bn=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ca=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-cs=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-da=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-de=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-el=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-es=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-fi=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-fr=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-he=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-hi=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-hu=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-it=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ja=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ko=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-lt=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-mr=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ms=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-nl=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-no=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-pl=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-pt=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-pt-br=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ro=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-ru=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-sk=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-sv=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-tr=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-uk=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-vi=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-zh-cn=m +CONFIG_PACKAGE_luci-i18n-rp-pppoe-server-zh-tw=m +CONFIG_PACKAGE_luci-i18n-samba4-ar=m +CONFIG_PACKAGE_luci-i18n-samba4-bg=m +CONFIG_PACKAGE_luci-i18n-samba4-bn=m +CONFIG_PACKAGE_luci-i18n-samba4-ca=m +CONFIG_PACKAGE_luci-i18n-samba4-cs=m +CONFIG_PACKAGE_luci-i18n-samba4-da=m +CONFIG_PACKAGE_luci-i18n-samba4-de=m +CONFIG_PACKAGE_luci-i18n-samba4-el=m +CONFIG_PACKAGE_luci-i18n-samba4-es=m +CONFIG_PACKAGE_luci-i18n-samba4-fi=m +CONFIG_PACKAGE_luci-i18n-samba4-fr=m +CONFIG_PACKAGE_luci-i18n-samba4-he=m +CONFIG_PACKAGE_luci-i18n-samba4-hi=m +CONFIG_PACKAGE_luci-i18n-samba4-hu=m +CONFIG_PACKAGE_luci-i18n-samba4-it=m +CONFIG_PACKAGE_luci-i18n-samba4-ja=m +CONFIG_PACKAGE_luci-i18n-samba4-ko=m +CONFIG_PACKAGE_luci-i18n-samba4-lt=m +CONFIG_PACKAGE_luci-i18n-samba4-mr=m +CONFIG_PACKAGE_luci-i18n-samba4-ms=m +CONFIG_PACKAGE_luci-i18n-samba4-nl=m +CONFIG_PACKAGE_luci-i18n-samba4-no=m +CONFIG_PACKAGE_luci-i18n-samba4-pl=m +CONFIG_PACKAGE_luci-i18n-samba4-pt=m +CONFIG_PACKAGE_luci-i18n-samba4-pt-br=m +CONFIG_PACKAGE_luci-i18n-samba4-ro=m +CONFIG_PACKAGE_luci-i18n-samba4-ru=m +CONFIG_PACKAGE_luci-i18n-samba4-sk=m +CONFIG_PACKAGE_luci-i18n-samba4-sv=m +CONFIG_PACKAGE_luci-i18n-samba4-tr=m +CONFIG_PACKAGE_luci-i18n-samba4-uk=m +CONFIG_PACKAGE_luci-i18n-samba4-vi=m +CONFIG_PACKAGE_luci-i18n-samba4-zh-cn=m +CONFIG_PACKAGE_luci-i18n-samba4-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ser2net-ar=m +CONFIG_PACKAGE_luci-i18n-ser2net-bg=m +CONFIG_PACKAGE_luci-i18n-ser2net-bn=m +CONFIG_PACKAGE_luci-i18n-ser2net-ca=m +CONFIG_PACKAGE_luci-i18n-ser2net-cs=m +CONFIG_PACKAGE_luci-i18n-ser2net-da=m +CONFIG_PACKAGE_luci-i18n-ser2net-de=m +CONFIG_PACKAGE_luci-i18n-ser2net-el=m +CONFIG_PACKAGE_luci-i18n-ser2net-es=m +CONFIG_PACKAGE_luci-i18n-ser2net-fi=m +CONFIG_PACKAGE_luci-i18n-ser2net-fr=m +CONFIG_PACKAGE_luci-i18n-ser2net-he=m +CONFIG_PACKAGE_luci-i18n-ser2net-hi=m +CONFIG_PACKAGE_luci-i18n-ser2net-hu=m +CONFIG_PACKAGE_luci-i18n-ser2net-it=m +CONFIG_PACKAGE_luci-i18n-ser2net-ja=m +CONFIG_PACKAGE_luci-i18n-ser2net-ko=m +CONFIG_PACKAGE_luci-i18n-ser2net-lt=m +CONFIG_PACKAGE_luci-i18n-ser2net-mr=m +CONFIG_PACKAGE_luci-i18n-ser2net-ms=m +CONFIG_PACKAGE_luci-i18n-ser2net-nl=m +CONFIG_PACKAGE_luci-i18n-ser2net-no=m +CONFIG_PACKAGE_luci-i18n-ser2net-pl=m +CONFIG_PACKAGE_luci-i18n-ser2net-pt=m +CONFIG_PACKAGE_luci-i18n-ser2net-pt-br=m +CONFIG_PACKAGE_luci-i18n-ser2net-ro=m +CONFIG_PACKAGE_luci-i18n-ser2net-ru=m +CONFIG_PACKAGE_luci-i18n-ser2net-sk=m +CONFIG_PACKAGE_luci-i18n-ser2net-sv=m +CONFIG_PACKAGE_luci-i18n-ser2net-tr=m +CONFIG_PACKAGE_luci-i18n-ser2net-uk=m +CONFIG_PACKAGE_luci-i18n-ser2net-vi=m +CONFIG_PACKAGE_luci-i18n-ser2net-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ser2net-zh-tw=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ar=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-bg=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-bn=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ca=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-cs=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-da=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-de=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-el=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-es=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-fi=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-fr=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-he=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-hi=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-hu=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-it=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ja=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ko=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-lt=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-mr=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ms=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-nl=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-no=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-pl=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-pt=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-pt-br=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ro=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-ru=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-sk=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-sv=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-tr=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-uk=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-vi=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-zh-cn=m +CONFIG_PACKAGE_luci-i18n-shadowsocks-libev-zh-tw=m +CONFIG_PACKAGE_luci-i18n-smartdns-ar=m +CONFIG_PACKAGE_luci-i18n-smartdns-bg=m +CONFIG_PACKAGE_luci-i18n-smartdns-bn=m +CONFIG_PACKAGE_luci-i18n-smartdns-ca=m +CONFIG_PACKAGE_luci-i18n-smartdns-cs=m +CONFIG_PACKAGE_luci-i18n-smartdns-da=m +CONFIG_PACKAGE_luci-i18n-smartdns-de=m +CONFIG_PACKAGE_luci-i18n-smartdns-el=m +CONFIG_PACKAGE_luci-i18n-smartdns-es=m +CONFIG_PACKAGE_luci-i18n-smartdns-fi=m +CONFIG_PACKAGE_luci-i18n-smartdns-fr=m +CONFIG_PACKAGE_luci-i18n-smartdns-he=m +CONFIG_PACKAGE_luci-i18n-smartdns-hi=m +CONFIG_PACKAGE_luci-i18n-smartdns-hu=m +CONFIG_PACKAGE_luci-i18n-smartdns-it=m +CONFIG_PACKAGE_luci-i18n-smartdns-ja=m +CONFIG_PACKAGE_luci-i18n-smartdns-ko=m +CONFIG_PACKAGE_luci-i18n-smartdns-lt=m +CONFIG_PACKAGE_luci-i18n-smartdns-mr=m +CONFIG_PACKAGE_luci-i18n-smartdns-ms=m +CONFIG_PACKAGE_luci-i18n-smartdns-nl=m +CONFIG_PACKAGE_luci-i18n-smartdns-no=m +CONFIG_PACKAGE_luci-i18n-smartdns-pl=m +CONFIG_PACKAGE_luci-i18n-smartdns-pt=m +CONFIG_PACKAGE_luci-i18n-smartdns-pt-br=m +CONFIG_PACKAGE_luci-i18n-smartdns-ro=m +CONFIG_PACKAGE_luci-i18n-smartdns-ru=m +CONFIG_PACKAGE_luci-i18n-smartdns-sk=m +CONFIG_PACKAGE_luci-i18n-smartdns-sv=m +CONFIG_PACKAGE_luci-i18n-smartdns-tr=m +CONFIG_PACKAGE_luci-i18n-smartdns-uk=m +CONFIG_PACKAGE_luci-i18n-smartdns-vi=m +CONFIG_PACKAGE_luci-i18n-smartdns-zh-cn=m +CONFIG_PACKAGE_luci-i18n-smartdns-zh-tw=m +CONFIG_PACKAGE_luci-i18n-snmpd-ar=m +CONFIG_PACKAGE_luci-i18n-snmpd-bg=m +CONFIG_PACKAGE_luci-i18n-snmpd-bn=m +CONFIG_PACKAGE_luci-i18n-snmpd-ca=m +CONFIG_PACKAGE_luci-i18n-snmpd-cs=m +CONFIG_PACKAGE_luci-i18n-snmpd-da=m +CONFIG_PACKAGE_luci-i18n-snmpd-de=m +CONFIG_PACKAGE_luci-i18n-snmpd-el=m +CONFIG_PACKAGE_luci-i18n-snmpd-es=m +CONFIG_PACKAGE_luci-i18n-snmpd-fi=m +CONFIG_PACKAGE_luci-i18n-snmpd-fr=m +CONFIG_PACKAGE_luci-i18n-snmpd-he=m +CONFIG_PACKAGE_luci-i18n-snmpd-hi=m +CONFIG_PACKAGE_luci-i18n-snmpd-hu=m +CONFIG_PACKAGE_luci-i18n-snmpd-it=m +CONFIG_PACKAGE_luci-i18n-snmpd-ja=m +CONFIG_PACKAGE_luci-i18n-snmpd-ko=m +CONFIG_PACKAGE_luci-i18n-snmpd-lt=m +CONFIG_PACKAGE_luci-i18n-snmpd-mr=m +CONFIG_PACKAGE_luci-i18n-snmpd-ms=m +CONFIG_PACKAGE_luci-i18n-snmpd-nl=m +CONFIG_PACKAGE_luci-i18n-snmpd-no=m +CONFIG_PACKAGE_luci-i18n-snmpd-pl=m +CONFIG_PACKAGE_luci-i18n-snmpd-pt=m +CONFIG_PACKAGE_luci-i18n-snmpd-pt-br=m +CONFIG_PACKAGE_luci-i18n-snmpd-ro=m +CONFIG_PACKAGE_luci-i18n-snmpd-ru=m +CONFIG_PACKAGE_luci-i18n-snmpd-sk=m +CONFIG_PACKAGE_luci-i18n-snmpd-sv=m +CONFIG_PACKAGE_luci-i18n-snmpd-tr=m +CONFIG_PACKAGE_luci-i18n-snmpd-uk=m +CONFIG_PACKAGE_luci-i18n-snmpd-vi=m +CONFIG_PACKAGE_luci-i18n-snmpd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-snmpd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-splash-ar=m +CONFIG_PACKAGE_luci-i18n-splash-bg=m +CONFIG_PACKAGE_luci-i18n-splash-bn=m +CONFIG_PACKAGE_luci-i18n-splash-ca=m +CONFIG_PACKAGE_luci-i18n-splash-cs=m +CONFIG_PACKAGE_luci-i18n-splash-da=m +CONFIG_PACKAGE_luci-i18n-splash-de=m +CONFIG_PACKAGE_luci-i18n-splash-el=m +CONFIG_PACKAGE_luci-i18n-splash-es=m +CONFIG_PACKAGE_luci-i18n-splash-fi=m +CONFIG_PACKAGE_luci-i18n-splash-fr=m +CONFIG_PACKAGE_luci-i18n-splash-he=m +CONFIG_PACKAGE_luci-i18n-splash-hi=m +CONFIG_PACKAGE_luci-i18n-splash-hu=m +CONFIG_PACKAGE_luci-i18n-splash-it=m +CONFIG_PACKAGE_luci-i18n-splash-ja=m +CONFIG_PACKAGE_luci-i18n-splash-ko=m +CONFIG_PACKAGE_luci-i18n-splash-lt=m +CONFIG_PACKAGE_luci-i18n-splash-mr=m +CONFIG_PACKAGE_luci-i18n-splash-ms=m +CONFIG_PACKAGE_luci-i18n-splash-nl=m +CONFIG_PACKAGE_luci-i18n-splash-no=m +CONFIG_PACKAGE_luci-i18n-splash-pl=m +CONFIG_PACKAGE_luci-i18n-splash-pt=m +CONFIG_PACKAGE_luci-i18n-splash-pt-br=m +CONFIG_PACKAGE_luci-i18n-splash-ro=m +CONFIG_PACKAGE_luci-i18n-splash-ru=m +CONFIG_PACKAGE_luci-i18n-splash-sk=m +CONFIG_PACKAGE_luci-i18n-splash-sv=m +CONFIG_PACKAGE_luci-i18n-splash-tr=m +CONFIG_PACKAGE_luci-i18n-splash-uk=m +CONFIG_PACKAGE_luci-i18n-splash-vi=m +CONFIG_PACKAGE_luci-i18n-splash-zh-cn=m +CONFIG_PACKAGE_luci-i18n-splash-zh-tw=m +CONFIG_PACKAGE_luci-i18n-sqm-ar=m +CONFIG_PACKAGE_luci-i18n-sqm-bg=m +CONFIG_PACKAGE_luci-i18n-sqm-bn=m +CONFIG_PACKAGE_luci-i18n-sqm-ca=m +CONFIG_PACKAGE_luci-i18n-sqm-cs=m +CONFIG_PACKAGE_luci-i18n-sqm-da=m +CONFIG_PACKAGE_luci-i18n-sqm-de=m +CONFIG_PACKAGE_luci-i18n-sqm-el=m +CONFIG_PACKAGE_luci-i18n-sqm-es=m +CONFIG_PACKAGE_luci-i18n-sqm-fi=m +CONFIG_PACKAGE_luci-i18n-sqm-fr=m +CONFIG_PACKAGE_luci-i18n-sqm-he=m +CONFIG_PACKAGE_luci-i18n-sqm-hi=m +CONFIG_PACKAGE_luci-i18n-sqm-hu=m +CONFIG_PACKAGE_luci-i18n-sqm-it=m +CONFIG_PACKAGE_luci-i18n-sqm-ja=m +CONFIG_PACKAGE_luci-i18n-sqm-ko=m +CONFIG_PACKAGE_luci-i18n-sqm-lt=m +CONFIG_PACKAGE_luci-i18n-sqm-mr=m +CONFIG_PACKAGE_luci-i18n-sqm-ms=m +CONFIG_PACKAGE_luci-i18n-sqm-nl=m +CONFIG_PACKAGE_luci-i18n-sqm-no=m +CONFIG_PACKAGE_luci-i18n-sqm-pl=m +CONFIG_PACKAGE_luci-i18n-sqm-pt=m +CONFIG_PACKAGE_luci-i18n-sqm-pt-br=m +CONFIG_PACKAGE_luci-i18n-sqm-ro=m +CONFIG_PACKAGE_luci-i18n-sqm-ru=m +CONFIG_PACKAGE_luci-i18n-sqm-sk=m +CONFIG_PACKAGE_luci-i18n-sqm-sv=m +CONFIG_PACKAGE_luci-i18n-sqm-tr=m +CONFIG_PACKAGE_luci-i18n-sqm-uk=m +CONFIG_PACKAGE_luci-i18n-sqm-vi=m +CONFIG_PACKAGE_luci-i18n-sqm-zh-cn=m +CONFIG_PACKAGE_luci-i18n-sqm-zh-tw=m +CONFIG_PACKAGE_luci-i18n-squid-ar=m +CONFIG_PACKAGE_luci-i18n-squid-bg=m +CONFIG_PACKAGE_luci-i18n-squid-bn=m +CONFIG_PACKAGE_luci-i18n-squid-ca=m +CONFIG_PACKAGE_luci-i18n-squid-cs=m +CONFIG_PACKAGE_luci-i18n-squid-da=m +CONFIG_PACKAGE_luci-i18n-squid-de=m +CONFIG_PACKAGE_luci-i18n-squid-el=m +CONFIG_PACKAGE_luci-i18n-squid-es=m +CONFIG_PACKAGE_luci-i18n-squid-fi=m +CONFIG_PACKAGE_luci-i18n-squid-fr=m +CONFIG_PACKAGE_luci-i18n-squid-he=m +CONFIG_PACKAGE_luci-i18n-squid-hi=m +CONFIG_PACKAGE_luci-i18n-squid-hu=m +CONFIG_PACKAGE_luci-i18n-squid-it=m +CONFIG_PACKAGE_luci-i18n-squid-ja=m +CONFIG_PACKAGE_luci-i18n-squid-ko=m +CONFIG_PACKAGE_luci-i18n-squid-lt=m +CONFIG_PACKAGE_luci-i18n-squid-mr=m +CONFIG_PACKAGE_luci-i18n-squid-ms=m +CONFIG_PACKAGE_luci-i18n-squid-nl=m +CONFIG_PACKAGE_luci-i18n-squid-no=m +CONFIG_PACKAGE_luci-i18n-squid-pl=m +CONFIG_PACKAGE_luci-i18n-squid-pt=m +CONFIG_PACKAGE_luci-i18n-squid-pt-br=m +CONFIG_PACKAGE_luci-i18n-squid-ro=m +CONFIG_PACKAGE_luci-i18n-squid-ru=m +CONFIG_PACKAGE_luci-i18n-squid-sk=m +CONFIG_PACKAGE_luci-i18n-squid-sv=m +CONFIG_PACKAGE_luci-i18n-squid-tr=m +CONFIG_PACKAGE_luci-i18n-squid-uk=m +CONFIG_PACKAGE_luci-i18n-squid-vi=m +CONFIG_PACKAGE_luci-i18n-squid-zh-cn=m +CONFIG_PACKAGE_luci-i18n-squid-zh-tw=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ar=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-bg=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-bn=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ca=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-cs=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-da=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-de=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-el=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-es=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-fi=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-fr=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-he=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-hi=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-hu=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-it=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ja=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ko=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-lt=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-mr=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ms=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-nl=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-no=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-pl=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-pt=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-pt-br=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ro=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-ru=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-sk=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-sv=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-tr=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-uk=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-vi=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-zh-cn=m +CONFIG_PACKAGE_luci-i18n-sshtunnel-zh-tw=m +CONFIG_PACKAGE_luci-i18n-statistics-ar=m +CONFIG_PACKAGE_luci-i18n-statistics-bg=m +CONFIG_PACKAGE_luci-i18n-statistics-bn=m +CONFIG_PACKAGE_luci-i18n-statistics-ca=m +CONFIG_PACKAGE_luci-i18n-statistics-cs=m +CONFIG_PACKAGE_luci-i18n-statistics-da=m +CONFIG_PACKAGE_luci-i18n-statistics-de=m +CONFIG_PACKAGE_luci-i18n-statistics-el=m +CONFIG_PACKAGE_luci-i18n-statistics-es=m +CONFIG_PACKAGE_luci-i18n-statistics-fi=m +CONFIG_PACKAGE_luci-i18n-statistics-fr=m +CONFIG_PACKAGE_luci-i18n-statistics-he=m +CONFIG_PACKAGE_luci-i18n-statistics-hi=m +CONFIG_PACKAGE_luci-i18n-statistics-hu=m +CONFIG_PACKAGE_luci-i18n-statistics-it=m +CONFIG_PACKAGE_luci-i18n-statistics-ja=m +CONFIG_PACKAGE_luci-i18n-statistics-ko=m +CONFIG_PACKAGE_luci-i18n-statistics-lt=m +CONFIG_PACKAGE_luci-i18n-statistics-mr=m +CONFIG_PACKAGE_luci-i18n-statistics-ms=m +CONFIG_PACKAGE_luci-i18n-statistics-nl=m +CONFIG_PACKAGE_luci-i18n-statistics-no=m +CONFIG_PACKAGE_luci-i18n-statistics-pl=m +CONFIG_PACKAGE_luci-i18n-statistics-pt=m +CONFIG_PACKAGE_luci-i18n-statistics-pt-br=m +CONFIG_PACKAGE_luci-i18n-statistics-ro=m +CONFIG_PACKAGE_luci-i18n-statistics-ru=m +CONFIG_PACKAGE_luci-i18n-statistics-sk=m +CONFIG_PACKAGE_luci-i18n-statistics-sv=m +CONFIG_PACKAGE_luci-i18n-statistics-tr=m +CONFIG_PACKAGE_luci-i18n-statistics-uk=m +CONFIG_PACKAGE_luci-i18n-statistics-vi=m +CONFIG_PACKAGE_luci-i18n-statistics-zh-cn=m +CONFIG_PACKAGE_luci-i18n-statistics-zh-tw=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ar=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-bg=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-bn=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ca=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-cs=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-da=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-de=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-el=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-es=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-fi=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-fr=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-he=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-hi=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-hu=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-it=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ja=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ko=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-lt=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-mr=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ms=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-nl=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-no=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-pl=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-pt=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ro=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-ru=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-sk=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-sv=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-tr=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-uk=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-vi=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-tinyproxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-tor-ar=m +CONFIG_PACKAGE_luci-i18n-tor-bg=m +CONFIG_PACKAGE_luci-i18n-tor-bn=m +CONFIG_PACKAGE_luci-i18n-tor-ca=m +CONFIG_PACKAGE_luci-i18n-tor-cs=m +CONFIG_PACKAGE_luci-i18n-tor-da=m +CONFIG_PACKAGE_luci-i18n-tor-de=m +CONFIG_PACKAGE_luci-i18n-tor-el=m +CONFIG_PACKAGE_luci-i18n-tor-es=m +CONFIG_PACKAGE_luci-i18n-tor-fi=m +CONFIG_PACKAGE_luci-i18n-tor-fr=m +CONFIG_PACKAGE_luci-i18n-tor-he=m +CONFIG_PACKAGE_luci-i18n-tor-hi=m +CONFIG_PACKAGE_luci-i18n-tor-hu=m +CONFIG_PACKAGE_luci-i18n-tor-it=m +CONFIG_PACKAGE_luci-i18n-tor-ja=m +CONFIG_PACKAGE_luci-i18n-tor-ko=m +CONFIG_PACKAGE_luci-i18n-tor-lt=m +CONFIG_PACKAGE_luci-i18n-tor-mr=m +CONFIG_PACKAGE_luci-i18n-tor-ms=m +CONFIG_PACKAGE_luci-i18n-tor-nl=m +CONFIG_PACKAGE_luci-i18n-tor-no=m +CONFIG_PACKAGE_luci-i18n-tor-pl=m +CONFIG_PACKAGE_luci-i18n-tor-pt=m +CONFIG_PACKAGE_luci-i18n-tor-pt-br=m +CONFIG_PACKAGE_luci-i18n-tor-ro=m +CONFIG_PACKAGE_luci-i18n-tor-ru=m +CONFIG_PACKAGE_luci-i18n-tor-sk=m +CONFIG_PACKAGE_luci-i18n-tor-sv=m +CONFIG_PACKAGE_luci-i18n-tor-tr=m +CONFIG_PACKAGE_luci-i18n-tor-uk=m +CONFIG_PACKAGE_luci-i18n-tor-vi=m +CONFIG_PACKAGE_luci-i18n-tor-zh-cn=m +CONFIG_PACKAGE_luci-i18n-tor-zh-tw=m +CONFIG_PACKAGE_luci-i18n-transmission-ar=m +CONFIG_PACKAGE_luci-i18n-transmission-bg=m +CONFIG_PACKAGE_luci-i18n-transmission-bn=m +CONFIG_PACKAGE_luci-i18n-transmission-ca=m +CONFIG_PACKAGE_luci-i18n-transmission-cs=m +CONFIG_PACKAGE_luci-i18n-transmission-da=m +CONFIG_PACKAGE_luci-i18n-transmission-de=m +CONFIG_PACKAGE_luci-i18n-transmission-el=m +CONFIG_PACKAGE_luci-i18n-transmission-es=m +CONFIG_PACKAGE_luci-i18n-transmission-fi=m +CONFIG_PACKAGE_luci-i18n-transmission-fr=m +CONFIG_PACKAGE_luci-i18n-transmission-he=m +CONFIG_PACKAGE_luci-i18n-transmission-hi=m +CONFIG_PACKAGE_luci-i18n-transmission-hu=m +CONFIG_PACKAGE_luci-i18n-transmission-it=m +CONFIG_PACKAGE_luci-i18n-transmission-ja=m +CONFIG_PACKAGE_luci-i18n-transmission-ko=m +CONFIG_PACKAGE_luci-i18n-transmission-lt=m +CONFIG_PACKAGE_luci-i18n-transmission-mr=m +CONFIG_PACKAGE_luci-i18n-transmission-ms=m +CONFIG_PACKAGE_luci-i18n-transmission-nl=m +CONFIG_PACKAGE_luci-i18n-transmission-no=m +CONFIG_PACKAGE_luci-i18n-transmission-pl=m +CONFIG_PACKAGE_luci-i18n-transmission-pt=m +CONFIG_PACKAGE_luci-i18n-transmission-pt-br=m +CONFIG_PACKAGE_luci-i18n-transmission-ro=m +CONFIG_PACKAGE_luci-i18n-transmission-ru=m +CONFIG_PACKAGE_luci-i18n-transmission-sk=m +CONFIG_PACKAGE_luci-i18n-transmission-sv=m +CONFIG_PACKAGE_luci-i18n-transmission-tr=m +CONFIG_PACKAGE_luci-i18n-transmission-uk=m +CONFIG_PACKAGE_luci-i18n-transmission-vi=m +CONFIG_PACKAGE_luci-i18n-transmission-zh-cn=m +CONFIG_PACKAGE_luci-i18n-transmission-zh-tw=m +CONFIG_PACKAGE_luci-i18n-travelmate-ar=m +CONFIG_PACKAGE_luci-i18n-travelmate-bg=m +CONFIG_PACKAGE_luci-i18n-travelmate-bn=m +CONFIG_PACKAGE_luci-i18n-travelmate-ca=m +CONFIG_PACKAGE_luci-i18n-travelmate-cs=m +CONFIG_PACKAGE_luci-i18n-travelmate-da=m +CONFIG_PACKAGE_luci-i18n-travelmate-de=m +CONFIG_PACKAGE_luci-i18n-travelmate-el=m +CONFIG_PACKAGE_luci-i18n-travelmate-es=m +CONFIG_PACKAGE_luci-i18n-travelmate-fi=m +CONFIG_PACKAGE_luci-i18n-travelmate-fr=m +CONFIG_PACKAGE_luci-i18n-travelmate-he=m +CONFIG_PACKAGE_luci-i18n-travelmate-hi=m +CONFIG_PACKAGE_luci-i18n-travelmate-hu=m +CONFIG_PACKAGE_luci-i18n-travelmate-it=m +CONFIG_PACKAGE_luci-i18n-travelmate-ja=m +CONFIG_PACKAGE_luci-i18n-travelmate-ko=m +CONFIG_PACKAGE_luci-i18n-travelmate-lt=m +CONFIG_PACKAGE_luci-i18n-travelmate-mr=m +CONFIG_PACKAGE_luci-i18n-travelmate-ms=m +CONFIG_PACKAGE_luci-i18n-travelmate-nl=m +CONFIG_PACKAGE_luci-i18n-travelmate-no=m +CONFIG_PACKAGE_luci-i18n-travelmate-pl=m +CONFIG_PACKAGE_luci-i18n-travelmate-pt=m +CONFIG_PACKAGE_luci-i18n-travelmate-pt-br=m +CONFIG_PACKAGE_luci-i18n-travelmate-ro=m +CONFIG_PACKAGE_luci-i18n-travelmate-ru=m +CONFIG_PACKAGE_luci-i18n-travelmate-sk=m +CONFIG_PACKAGE_luci-i18n-travelmate-sv=m +CONFIG_PACKAGE_luci-i18n-travelmate-tr=m +CONFIG_PACKAGE_luci-i18n-travelmate-uk=m +CONFIG_PACKAGE_luci-i18n-travelmate-vi=m +CONFIG_PACKAGE_luci-i18n-travelmate-zh-cn=m +CONFIG_PACKAGE_luci-i18n-travelmate-zh-tw=m +CONFIG_PACKAGE_luci-i18n-ttyd-ar=m +CONFIG_PACKAGE_luci-i18n-ttyd-bg=m +CONFIG_PACKAGE_luci-i18n-ttyd-bn=m +CONFIG_PACKAGE_luci-i18n-ttyd-ca=m +CONFIG_PACKAGE_luci-i18n-ttyd-cs=m +CONFIG_PACKAGE_luci-i18n-ttyd-da=m +CONFIG_PACKAGE_luci-i18n-ttyd-de=m +CONFIG_PACKAGE_luci-i18n-ttyd-el=m +CONFIG_PACKAGE_luci-i18n-ttyd-es=m +CONFIG_PACKAGE_luci-i18n-ttyd-fi=m +CONFIG_PACKAGE_luci-i18n-ttyd-fr=m +CONFIG_PACKAGE_luci-i18n-ttyd-he=m +CONFIG_PACKAGE_luci-i18n-ttyd-hi=m +CONFIG_PACKAGE_luci-i18n-ttyd-hu=m +CONFIG_PACKAGE_luci-i18n-ttyd-it=m +CONFIG_PACKAGE_luci-i18n-ttyd-ja=m +CONFIG_PACKAGE_luci-i18n-ttyd-ko=m +CONFIG_PACKAGE_luci-i18n-ttyd-lt=m +CONFIG_PACKAGE_luci-i18n-ttyd-mr=m +CONFIG_PACKAGE_luci-i18n-ttyd-ms=m +CONFIG_PACKAGE_luci-i18n-ttyd-nl=m +CONFIG_PACKAGE_luci-i18n-ttyd-no=m +CONFIG_PACKAGE_luci-i18n-ttyd-pl=m +CONFIG_PACKAGE_luci-i18n-ttyd-pt=m +CONFIG_PACKAGE_luci-i18n-ttyd-pt-br=m +CONFIG_PACKAGE_luci-i18n-ttyd-ro=m +CONFIG_PACKAGE_luci-i18n-ttyd-ru=m +CONFIG_PACKAGE_luci-i18n-ttyd-sk=m +CONFIG_PACKAGE_luci-i18n-ttyd-sv=m +CONFIG_PACKAGE_luci-i18n-ttyd-tr=m +CONFIG_PACKAGE_luci-i18n-ttyd-uk=m +CONFIG_PACKAGE_luci-i18n-ttyd-vi=m +CONFIG_PACKAGE_luci-i18n-ttyd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-ttyd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-udpxy-ar=m +CONFIG_PACKAGE_luci-i18n-udpxy-bg=m +CONFIG_PACKAGE_luci-i18n-udpxy-bn=m +CONFIG_PACKAGE_luci-i18n-udpxy-ca=m +CONFIG_PACKAGE_luci-i18n-udpxy-cs=m +CONFIG_PACKAGE_luci-i18n-udpxy-da=m +CONFIG_PACKAGE_luci-i18n-udpxy-de=m +CONFIG_PACKAGE_luci-i18n-udpxy-el=m +CONFIG_PACKAGE_luci-i18n-udpxy-es=m +CONFIG_PACKAGE_luci-i18n-udpxy-fi=m +CONFIG_PACKAGE_luci-i18n-udpxy-fr=m +CONFIG_PACKAGE_luci-i18n-udpxy-he=m +CONFIG_PACKAGE_luci-i18n-udpxy-hi=m +CONFIG_PACKAGE_luci-i18n-udpxy-hu=m +CONFIG_PACKAGE_luci-i18n-udpxy-it=m +CONFIG_PACKAGE_luci-i18n-udpxy-ja=m +CONFIG_PACKAGE_luci-i18n-udpxy-ko=m +CONFIG_PACKAGE_luci-i18n-udpxy-lt=m +CONFIG_PACKAGE_luci-i18n-udpxy-mr=m +CONFIG_PACKAGE_luci-i18n-udpxy-ms=m +CONFIG_PACKAGE_luci-i18n-udpxy-nl=m +CONFIG_PACKAGE_luci-i18n-udpxy-no=m +CONFIG_PACKAGE_luci-i18n-udpxy-pl=m +CONFIG_PACKAGE_luci-i18n-udpxy-pt=m +CONFIG_PACKAGE_luci-i18n-udpxy-pt-br=m +CONFIG_PACKAGE_luci-i18n-udpxy-ro=m +CONFIG_PACKAGE_luci-i18n-udpxy-ru=m +CONFIG_PACKAGE_luci-i18n-udpxy-sk=m +CONFIG_PACKAGE_luci-i18n-udpxy-sv=m +CONFIG_PACKAGE_luci-i18n-udpxy-tr=m +CONFIG_PACKAGE_luci-i18n-udpxy-uk=m +CONFIG_PACKAGE_luci-i18n-udpxy-vi=m +CONFIG_PACKAGE_luci-i18n-udpxy-zh-cn=m +CONFIG_PACKAGE_luci-i18n-udpxy-zh-tw=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ar=m +CONFIG_PACKAGE_luci-i18n-uhttpd-bg=m +CONFIG_PACKAGE_luci-i18n-uhttpd-bn=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ca=m +CONFIG_PACKAGE_luci-i18n-uhttpd-cs=m +CONFIG_PACKAGE_luci-i18n-uhttpd-da=m +CONFIG_PACKAGE_luci-i18n-uhttpd-de=m +CONFIG_PACKAGE_luci-i18n-uhttpd-el=m +CONFIG_PACKAGE_luci-i18n-uhttpd-es=m +CONFIG_PACKAGE_luci-i18n-uhttpd-fi=m +CONFIG_PACKAGE_luci-i18n-uhttpd-fr=m +CONFIG_PACKAGE_luci-i18n-uhttpd-he=m +CONFIG_PACKAGE_luci-i18n-uhttpd-hi=m +CONFIG_PACKAGE_luci-i18n-uhttpd-hu=m +CONFIG_PACKAGE_luci-i18n-uhttpd-it=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ja=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ko=m +CONFIG_PACKAGE_luci-i18n-uhttpd-lt=m +CONFIG_PACKAGE_luci-i18n-uhttpd-mr=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ms=m +CONFIG_PACKAGE_luci-i18n-uhttpd-nl=m +CONFIG_PACKAGE_luci-i18n-uhttpd-no=m +CONFIG_PACKAGE_luci-i18n-uhttpd-pl=m +CONFIG_PACKAGE_luci-i18n-uhttpd-pt=m +CONFIG_PACKAGE_luci-i18n-uhttpd-pt-br=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ro=m +CONFIG_PACKAGE_luci-i18n-uhttpd-ru=m +CONFIG_PACKAGE_luci-i18n-uhttpd-sk=m +CONFIG_PACKAGE_luci-i18n-uhttpd-sv=m +CONFIG_PACKAGE_luci-i18n-uhttpd-tr=m +CONFIG_PACKAGE_luci-i18n-uhttpd-uk=m +CONFIG_PACKAGE_luci-i18n-uhttpd-vi=m +CONFIG_PACKAGE_luci-i18n-uhttpd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-uhttpd-zh-tw=m +CONFIG_PACKAGE_luci-i18n-unbound-ar=m +CONFIG_PACKAGE_luci-i18n-unbound-bg=m +CONFIG_PACKAGE_luci-i18n-unbound-bn=m +CONFIG_PACKAGE_luci-i18n-unbound-ca=m +CONFIG_PACKAGE_luci-i18n-unbound-cs=m +CONFIG_PACKAGE_luci-i18n-unbound-da=m +CONFIG_PACKAGE_luci-i18n-unbound-de=m +CONFIG_PACKAGE_luci-i18n-unbound-el=m +CONFIG_PACKAGE_luci-i18n-unbound-es=m +CONFIG_PACKAGE_luci-i18n-unbound-fi=m +CONFIG_PACKAGE_luci-i18n-unbound-fr=m +CONFIG_PACKAGE_luci-i18n-unbound-he=m +CONFIG_PACKAGE_luci-i18n-unbound-hi=m +CONFIG_PACKAGE_luci-i18n-unbound-hu=m +CONFIG_PACKAGE_luci-i18n-unbound-it=m +CONFIG_PACKAGE_luci-i18n-unbound-ja=m +CONFIG_PACKAGE_luci-i18n-unbound-ko=m +CONFIG_PACKAGE_luci-i18n-unbound-lt=m +CONFIG_PACKAGE_luci-i18n-unbound-mr=m +CONFIG_PACKAGE_luci-i18n-unbound-ms=m +CONFIG_PACKAGE_luci-i18n-unbound-nl=m +CONFIG_PACKAGE_luci-i18n-unbound-no=m +CONFIG_PACKAGE_luci-i18n-unbound-pl=m +CONFIG_PACKAGE_luci-i18n-unbound-pt=m +CONFIG_PACKAGE_luci-i18n-unbound-pt-br=m +CONFIG_PACKAGE_luci-i18n-unbound-ro=m +CONFIG_PACKAGE_luci-i18n-unbound-ru=m +CONFIG_PACKAGE_luci-i18n-unbound-sk=m +CONFIG_PACKAGE_luci-i18n-unbound-sv=m +CONFIG_PACKAGE_luci-i18n-unbound-tr=m +CONFIG_PACKAGE_luci-i18n-unbound-uk=m +CONFIG_PACKAGE_luci-i18n-unbound-vi=m +CONFIG_PACKAGE_luci-i18n-unbound-zh-cn=m +CONFIG_PACKAGE_luci-i18n-unbound-zh-tw=m +CONFIG_PACKAGE_luci-i18n-upnp-ar=m +CONFIG_PACKAGE_luci-i18n-upnp-bg=m +CONFIG_PACKAGE_luci-i18n-upnp-bn=m +CONFIG_PACKAGE_luci-i18n-upnp-ca=m +CONFIG_PACKAGE_luci-i18n-upnp-cs=m +CONFIG_PACKAGE_luci-i18n-upnp-da=m +CONFIG_PACKAGE_luci-i18n-upnp-de=m +CONFIG_PACKAGE_luci-i18n-upnp-el=m +CONFIG_PACKAGE_luci-i18n-upnp-es=m +CONFIG_PACKAGE_luci-i18n-upnp-fi=m +CONFIG_PACKAGE_luci-i18n-upnp-fr=m +CONFIG_PACKAGE_luci-i18n-upnp-he=m +CONFIG_PACKAGE_luci-i18n-upnp-hi=m +CONFIG_PACKAGE_luci-i18n-upnp-hu=m +CONFIG_PACKAGE_luci-i18n-upnp-it=m +CONFIG_PACKAGE_luci-i18n-upnp-ja=m +CONFIG_PACKAGE_luci-i18n-upnp-ko=m +CONFIG_PACKAGE_luci-i18n-upnp-lt=m +CONFIG_PACKAGE_luci-i18n-upnp-mr=m +CONFIG_PACKAGE_luci-i18n-upnp-ms=m +CONFIG_PACKAGE_luci-i18n-upnp-nl=m +CONFIG_PACKAGE_luci-i18n-upnp-no=m +CONFIG_PACKAGE_luci-i18n-upnp-pl=m +CONFIG_PACKAGE_luci-i18n-upnp-pt=m +CONFIG_PACKAGE_luci-i18n-upnp-pt-br=m +CONFIG_PACKAGE_luci-i18n-upnp-ro=m +CONFIG_PACKAGE_luci-i18n-upnp-ru=m +CONFIG_PACKAGE_luci-i18n-upnp-sk=m +CONFIG_PACKAGE_luci-i18n-upnp-sv=m +CONFIG_PACKAGE_luci-i18n-upnp-tr=m +CONFIG_PACKAGE_luci-i18n-upnp-uk=m +CONFIG_PACKAGE_luci-i18n-upnp-vi=m +CONFIG_PACKAGE_luci-i18n-upnp-zh-cn=m +CONFIG_PACKAGE_luci-i18n-upnp-zh-tw=m +CONFIG_PACKAGE_luci-i18n-usteer-bn=m +CONFIG_PACKAGE_luci-i18n-usteer-da=m +CONFIG_PACKAGE_luci-i18n-usteer-es=m +CONFIG_PACKAGE_luci-i18n-usteer-lt=m +CONFIG_PACKAGE_luci-i18n-usteer-no=m +CONFIG_PACKAGE_luci-i18n-usteer-pl=m +CONFIG_PACKAGE_luci-i18n-usteer-pt-br=m +CONFIG_PACKAGE_luci-i18n-usteer-ru=m +CONFIG_PACKAGE_luci-i18n-usteer-tr=m +CONFIG_PACKAGE_luci-i18n-usteer-zh-cn=m +CONFIG_PACKAGE_luci-i18n-usteer-zh-tw=m +CONFIG_PACKAGE_luci-i18n-v2raya-ar=m +CONFIG_PACKAGE_luci-i18n-v2raya-bg=m +CONFIG_PACKAGE_luci-i18n-v2raya-bn=m +CONFIG_PACKAGE_luci-i18n-v2raya-ca=m +CONFIG_PACKAGE_luci-i18n-v2raya-cs=m +CONFIG_PACKAGE_luci-i18n-v2raya-da=m +CONFIG_PACKAGE_luci-i18n-v2raya-de=m +CONFIG_PACKAGE_luci-i18n-v2raya-el=m +CONFIG_PACKAGE_luci-i18n-v2raya-es=m +CONFIG_PACKAGE_luci-i18n-v2raya-fi=m +CONFIG_PACKAGE_luci-i18n-v2raya-fr=m +CONFIG_PACKAGE_luci-i18n-v2raya-he=m +CONFIG_PACKAGE_luci-i18n-v2raya-hi=m +CONFIG_PACKAGE_luci-i18n-v2raya-hu=m +CONFIG_PACKAGE_luci-i18n-v2raya-it=m +CONFIG_PACKAGE_luci-i18n-v2raya-ja=m +CONFIG_PACKAGE_luci-i18n-v2raya-ko=m +CONFIG_PACKAGE_luci-i18n-v2raya-lt=m +CONFIG_PACKAGE_luci-i18n-v2raya-mr=m +CONFIG_PACKAGE_luci-i18n-v2raya-ms=m +CONFIG_PACKAGE_luci-i18n-v2raya-nl=m +CONFIG_PACKAGE_luci-i18n-v2raya-no=m +CONFIG_PACKAGE_luci-i18n-v2raya-pl=m +CONFIG_PACKAGE_luci-i18n-v2raya-pt=m +CONFIG_PACKAGE_luci-i18n-v2raya-pt-br=m +CONFIG_PACKAGE_luci-i18n-v2raya-ro=m +CONFIG_PACKAGE_luci-i18n-v2raya-ru=m +CONFIG_PACKAGE_luci-i18n-v2raya-sk=m +CONFIG_PACKAGE_luci-i18n-v2raya-sv=m +CONFIG_PACKAGE_luci-i18n-v2raya-tr=m +CONFIG_PACKAGE_luci-i18n-v2raya-uk=m +CONFIG_PACKAGE_luci-i18n-v2raya-vi=m +CONFIG_PACKAGE_luci-i18n-v2raya-zh-cn=m +CONFIG_PACKAGE_luci-i18n-v2raya-zh-tw=m +CONFIG_PACKAGE_luci-i18n-vnstat-ar=m +CONFIG_PACKAGE_luci-i18n-vnstat-bg=m +CONFIG_PACKAGE_luci-i18n-vnstat-bn=m +CONFIG_PACKAGE_luci-i18n-vnstat-ca=m +CONFIG_PACKAGE_luci-i18n-vnstat-cs=m +CONFIG_PACKAGE_luci-i18n-vnstat-da=m +CONFIG_PACKAGE_luci-i18n-vnstat-de=m +CONFIG_PACKAGE_luci-i18n-vnstat-el=m +CONFIG_PACKAGE_luci-i18n-vnstat-es=m +CONFIG_PACKAGE_luci-i18n-vnstat-fi=m +CONFIG_PACKAGE_luci-i18n-vnstat-fr=m +CONFIG_PACKAGE_luci-i18n-vnstat-he=m +CONFIG_PACKAGE_luci-i18n-vnstat-hi=m +CONFIG_PACKAGE_luci-i18n-vnstat-hu=m +CONFIG_PACKAGE_luci-i18n-vnstat-it=m +CONFIG_PACKAGE_luci-i18n-vnstat-ja=m +CONFIG_PACKAGE_luci-i18n-vnstat-ko=m +CONFIG_PACKAGE_luci-i18n-vnstat-lt=m +CONFIG_PACKAGE_luci-i18n-vnstat-mr=m +CONFIG_PACKAGE_luci-i18n-vnstat-ms=m +CONFIG_PACKAGE_luci-i18n-vnstat-nl=m +CONFIG_PACKAGE_luci-i18n-vnstat-no=m +CONFIG_PACKAGE_luci-i18n-vnstat-pl=m +CONFIG_PACKAGE_luci-i18n-vnstat-pt=m +CONFIG_PACKAGE_luci-i18n-vnstat-pt-br=m +CONFIG_PACKAGE_luci-i18n-vnstat-ro=m +CONFIG_PACKAGE_luci-i18n-vnstat-ru=m +CONFIG_PACKAGE_luci-i18n-vnstat-sk=m +CONFIG_PACKAGE_luci-i18n-vnstat-sv=m +CONFIG_PACKAGE_luci-i18n-vnstat-tr=m +CONFIG_PACKAGE_luci-i18n-vnstat-uk=m +CONFIG_PACKAGE_luci-i18n-vnstat-vi=m +CONFIG_PACKAGE_luci-i18n-vnstat-zh-cn=m +CONFIG_PACKAGE_luci-i18n-vnstat-zh-tw=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ar=m +CONFIG_PACKAGE_luci-i18n-vnstat2-bg=m +CONFIG_PACKAGE_luci-i18n-vnstat2-bn=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ca=m +CONFIG_PACKAGE_luci-i18n-vnstat2-cs=m +CONFIG_PACKAGE_luci-i18n-vnstat2-da=m +CONFIG_PACKAGE_luci-i18n-vnstat2-de=m +CONFIG_PACKAGE_luci-i18n-vnstat2-el=m +CONFIG_PACKAGE_luci-i18n-vnstat2-es=m +CONFIG_PACKAGE_luci-i18n-vnstat2-fi=m +CONFIG_PACKAGE_luci-i18n-vnstat2-fr=m +CONFIG_PACKAGE_luci-i18n-vnstat2-he=m +CONFIG_PACKAGE_luci-i18n-vnstat2-hi=m +CONFIG_PACKAGE_luci-i18n-vnstat2-hu=m +CONFIG_PACKAGE_luci-i18n-vnstat2-it=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ja=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ko=m +CONFIG_PACKAGE_luci-i18n-vnstat2-lt=m +CONFIG_PACKAGE_luci-i18n-vnstat2-mr=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ms=m +CONFIG_PACKAGE_luci-i18n-vnstat2-nl=m +CONFIG_PACKAGE_luci-i18n-vnstat2-no=m +CONFIG_PACKAGE_luci-i18n-vnstat2-pl=m +CONFIG_PACKAGE_luci-i18n-vnstat2-pt=m +CONFIG_PACKAGE_luci-i18n-vnstat2-pt-br=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ro=m +CONFIG_PACKAGE_luci-i18n-vnstat2-ru=m +CONFIG_PACKAGE_luci-i18n-vnstat2-sk=m +CONFIG_PACKAGE_luci-i18n-vnstat2-sv=m +CONFIG_PACKAGE_luci-i18n-vnstat2-tr=m +CONFIG_PACKAGE_luci-i18n-vnstat2-uk=m +CONFIG_PACKAGE_luci-i18n-vnstat2-vi=m +CONFIG_PACKAGE_luci-i18n-vnstat2-zh-cn=m +CONFIG_PACKAGE_luci-i18n-vnstat2-zh-tw=m +CONFIG_PACKAGE_luci-i18n-watchcat-ar=m +CONFIG_PACKAGE_luci-i18n-watchcat-bg=m +CONFIG_PACKAGE_luci-i18n-watchcat-bn=m +CONFIG_PACKAGE_luci-i18n-watchcat-ca=m +CONFIG_PACKAGE_luci-i18n-watchcat-cs=m +CONFIG_PACKAGE_luci-i18n-watchcat-da=m +CONFIG_PACKAGE_luci-i18n-watchcat-de=m +CONFIG_PACKAGE_luci-i18n-watchcat-el=m +CONFIG_PACKAGE_luci-i18n-watchcat-es=m +CONFIG_PACKAGE_luci-i18n-watchcat-fi=m +CONFIG_PACKAGE_luci-i18n-watchcat-fr=m +CONFIG_PACKAGE_luci-i18n-watchcat-he=m +CONFIG_PACKAGE_luci-i18n-watchcat-hi=m +CONFIG_PACKAGE_luci-i18n-watchcat-hu=m +CONFIG_PACKAGE_luci-i18n-watchcat-it=m +CONFIG_PACKAGE_luci-i18n-watchcat-ja=m +CONFIG_PACKAGE_luci-i18n-watchcat-ko=m +CONFIG_PACKAGE_luci-i18n-watchcat-lt=m +CONFIG_PACKAGE_luci-i18n-watchcat-mr=m +CONFIG_PACKAGE_luci-i18n-watchcat-ms=m +CONFIG_PACKAGE_luci-i18n-watchcat-nl=m +CONFIG_PACKAGE_luci-i18n-watchcat-no=m +CONFIG_PACKAGE_luci-i18n-watchcat-pl=m +CONFIG_PACKAGE_luci-i18n-watchcat-pt=m +CONFIG_PACKAGE_luci-i18n-watchcat-pt-br=m +CONFIG_PACKAGE_luci-i18n-watchcat-ro=m +CONFIG_PACKAGE_luci-i18n-watchcat-ru=m +CONFIG_PACKAGE_luci-i18n-watchcat-sk=m +CONFIG_PACKAGE_luci-i18n-watchcat-sv=m +CONFIG_PACKAGE_luci-i18n-watchcat-tr=m +CONFIG_PACKAGE_luci-i18n-watchcat-uk=m +CONFIG_PACKAGE_luci-i18n-watchcat-vi=m +CONFIG_PACKAGE_luci-i18n-watchcat-zh-cn=m +CONFIG_PACKAGE_luci-i18n-watchcat-zh-tw=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ar=m +CONFIG_PACKAGE_luci-i18n-wifischedule-bg=m +CONFIG_PACKAGE_luci-i18n-wifischedule-bn=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ca=m +CONFIG_PACKAGE_luci-i18n-wifischedule-cs=m +CONFIG_PACKAGE_luci-i18n-wifischedule-da=m +CONFIG_PACKAGE_luci-i18n-wifischedule-de=m +CONFIG_PACKAGE_luci-i18n-wifischedule-el=m +CONFIG_PACKAGE_luci-i18n-wifischedule-es=m +CONFIG_PACKAGE_luci-i18n-wifischedule-fi=m +CONFIG_PACKAGE_luci-i18n-wifischedule-fr=m +CONFIG_PACKAGE_luci-i18n-wifischedule-he=m +CONFIG_PACKAGE_luci-i18n-wifischedule-hi=m +CONFIG_PACKAGE_luci-i18n-wifischedule-hu=m +CONFIG_PACKAGE_luci-i18n-wifischedule-it=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ja=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ko=m +CONFIG_PACKAGE_luci-i18n-wifischedule-lt=m +CONFIG_PACKAGE_luci-i18n-wifischedule-mr=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ms=m +CONFIG_PACKAGE_luci-i18n-wifischedule-nl=m +CONFIG_PACKAGE_luci-i18n-wifischedule-no=m +CONFIG_PACKAGE_luci-i18n-wifischedule-pl=m +CONFIG_PACKAGE_luci-i18n-wifischedule-pt=m +CONFIG_PACKAGE_luci-i18n-wifischedule-pt-br=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ro=m +CONFIG_PACKAGE_luci-i18n-wifischedule-ru=m +CONFIG_PACKAGE_luci-i18n-wifischedule-sk=m +CONFIG_PACKAGE_luci-i18n-wifischedule-sv=m +CONFIG_PACKAGE_luci-i18n-wifischedule-tr=m +CONFIG_PACKAGE_luci-i18n-wifischedule-uk=m +CONFIG_PACKAGE_luci-i18n-wifischedule-vi=m +CONFIG_PACKAGE_luci-i18n-wifischedule-zh-cn=m +CONFIG_PACKAGE_luci-i18n-wifischedule-zh-tw=m +CONFIG_PACKAGE_luci-i18n-wol-ar=m +CONFIG_PACKAGE_luci-i18n-wol-bg=m +CONFIG_PACKAGE_luci-i18n-wol-bn=m +CONFIG_PACKAGE_luci-i18n-wol-ca=m +CONFIG_PACKAGE_luci-i18n-wol-cs=m +CONFIG_PACKAGE_luci-i18n-wol-da=m +CONFIG_PACKAGE_luci-i18n-wol-de=m +CONFIG_PACKAGE_luci-i18n-wol-el=m +CONFIG_PACKAGE_luci-i18n-wol-es=m +CONFIG_PACKAGE_luci-i18n-wol-fi=m +CONFIG_PACKAGE_luci-i18n-wol-fr=m +CONFIG_PACKAGE_luci-i18n-wol-he=m +CONFIG_PACKAGE_luci-i18n-wol-hi=m +CONFIG_PACKAGE_luci-i18n-wol-hu=m +CONFIG_PACKAGE_luci-i18n-wol-it=m +CONFIG_PACKAGE_luci-i18n-wol-ja=m +CONFIG_PACKAGE_luci-i18n-wol-ko=m +CONFIG_PACKAGE_luci-i18n-wol-lt=m +CONFIG_PACKAGE_luci-i18n-wol-mr=m +CONFIG_PACKAGE_luci-i18n-wol-ms=m +CONFIG_PACKAGE_luci-i18n-wol-nl=m +CONFIG_PACKAGE_luci-i18n-wol-no=m +CONFIG_PACKAGE_luci-i18n-wol-pl=m +CONFIG_PACKAGE_luci-i18n-wol-pt=m +CONFIG_PACKAGE_luci-i18n-wol-pt-br=m +CONFIG_PACKAGE_luci-i18n-wol-ro=m +CONFIG_PACKAGE_luci-i18n-wol-ru=m +CONFIG_PACKAGE_luci-i18n-wol-sk=m +CONFIG_PACKAGE_luci-i18n-wol-sv=m +CONFIG_PACKAGE_luci-i18n-wol-tr=m +CONFIG_PACKAGE_luci-i18n-wol-uk=m +CONFIG_PACKAGE_luci-i18n-wol-vi=m +CONFIG_PACKAGE_luci-i18n-wol-zh-cn=m +CONFIG_PACKAGE_luci-i18n-wol-zh-tw=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ar=m +CONFIG_PACKAGE_luci-i18n-xfrpc-bg=m +CONFIG_PACKAGE_luci-i18n-xfrpc-bn=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ca=m +CONFIG_PACKAGE_luci-i18n-xfrpc-cs=m +CONFIG_PACKAGE_luci-i18n-xfrpc-da=m +CONFIG_PACKAGE_luci-i18n-xfrpc-de=m +CONFIG_PACKAGE_luci-i18n-xfrpc-el=m +CONFIG_PACKAGE_luci-i18n-xfrpc-es=m +CONFIG_PACKAGE_luci-i18n-xfrpc-fi=m +CONFIG_PACKAGE_luci-i18n-xfrpc-fr=m +CONFIG_PACKAGE_luci-i18n-xfrpc-he=m +CONFIG_PACKAGE_luci-i18n-xfrpc-hi=m +CONFIG_PACKAGE_luci-i18n-xfrpc-hu=m +CONFIG_PACKAGE_luci-i18n-xfrpc-it=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ja=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ko=m +CONFIG_PACKAGE_luci-i18n-xfrpc-lt=m +CONFIG_PACKAGE_luci-i18n-xfrpc-mr=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ms=m +CONFIG_PACKAGE_luci-i18n-xfrpc-nl=m +CONFIG_PACKAGE_luci-i18n-xfrpc-no=m +CONFIG_PACKAGE_luci-i18n-xfrpc-pl=m +CONFIG_PACKAGE_luci-i18n-xfrpc-pt=m +CONFIG_PACKAGE_luci-i18n-xfrpc-pt-br=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ro=m +CONFIG_PACKAGE_luci-i18n-xfrpc-ru=m +CONFIG_PACKAGE_luci-i18n-xfrpc-sk=m +CONFIG_PACKAGE_luci-i18n-xfrpc-sv=m +CONFIG_PACKAGE_luci-i18n-xfrpc-tr=m +CONFIG_PACKAGE_luci-i18n-xfrpc-uk=m +CONFIG_PACKAGE_luci-i18n-xfrpc-vi=m +CONFIG_PACKAGE_luci-i18n-xfrpc-zh-cn=m +CONFIG_PACKAGE_luci-i18n-xfrpc-zh-tw=m +CONFIG_PACKAGE_luci-i18n-xinetd-ar=m +CONFIG_PACKAGE_luci-i18n-xinetd-bg=m +CONFIG_PACKAGE_luci-i18n-xinetd-bn=m +CONFIG_PACKAGE_luci-i18n-xinetd-ca=m +CONFIG_PACKAGE_luci-i18n-xinetd-cs=m +CONFIG_PACKAGE_luci-i18n-xinetd-da=m +CONFIG_PACKAGE_luci-i18n-xinetd-de=m +CONFIG_PACKAGE_luci-i18n-xinetd-el=m +CONFIG_PACKAGE_luci-i18n-xinetd-es=m +CONFIG_PACKAGE_luci-i18n-xinetd-fi=m +CONFIG_PACKAGE_luci-i18n-xinetd-fr=m +CONFIG_PACKAGE_luci-i18n-xinetd-he=m +CONFIG_PACKAGE_luci-i18n-xinetd-hi=m +CONFIG_PACKAGE_luci-i18n-xinetd-hu=m +CONFIG_PACKAGE_luci-i18n-xinetd-it=m +CONFIG_PACKAGE_luci-i18n-xinetd-ja=m +CONFIG_PACKAGE_luci-i18n-xinetd-ko=m +CONFIG_PACKAGE_luci-i18n-xinetd-lt=m +CONFIG_PACKAGE_luci-i18n-xinetd-mr=m +CONFIG_PACKAGE_luci-i18n-xinetd-ms=m +CONFIG_PACKAGE_luci-i18n-xinetd-nl=m +CONFIG_PACKAGE_luci-i18n-xinetd-no=m +CONFIG_PACKAGE_luci-i18n-xinetd-pl=m +CONFIG_PACKAGE_luci-i18n-xinetd-pt=m +CONFIG_PACKAGE_luci-i18n-xinetd-pt-br=m +CONFIG_PACKAGE_luci-i18n-xinetd-ro=m +CONFIG_PACKAGE_luci-i18n-xinetd-ru=m +CONFIG_PACKAGE_luci-i18n-xinetd-sk=m +CONFIG_PACKAGE_luci-i18n-xinetd-sv=m +CONFIG_PACKAGE_luci-i18n-xinetd-tr=m +CONFIG_PACKAGE_luci-i18n-xinetd-uk=m +CONFIG_PACKAGE_luci-i18n-xinetd-vi=m +CONFIG_PACKAGE_luci-i18n-xinetd-zh-cn=m +CONFIG_PACKAGE_luci-i18n-xinetd-zh-tw=m # end of LuCI # # Mail # -# CONFIG_PACKAGE_alpine is not set -# CONFIG_PACKAGE_bogofilter is not set -# CONFIG_PACKAGE_dovecot is not set -# CONFIG_PACKAGE_dovecot-pigeonhole is not set -# CONFIG_PACKAGE_dovecot-utils is not set -# CONFIG_PACKAGE_emailrelay is not set -# CONFIG_PACKAGE_exim is not set -# CONFIG_PACKAGE_exim-gnutls is not set -# CONFIG_PACKAGE_exim-ldap is not set -# CONFIG_PACKAGE_exim-openssl is not set -# CONFIG_PACKAGE_fdm is not set -# CONFIG_PACKAGE_greyfix is not set -# CONFIG_PACKAGE_mailsend is not set -# CONFIG_PACKAGE_mailsend-nossl is not set -# CONFIG_PACKAGE_mblaze is not set -# CONFIG_PACKAGE_msmtp is not set -# CONFIG_PACKAGE_msmtp-mta is not set -# CONFIG_PACKAGE_msmtp-nossl is not set -# CONFIG_PACKAGE_msmtp-queue is not set -# CONFIG_PACKAGE_mutt is not set -# CONFIG_PACKAGE_nail is not set -# CONFIG_PACKAGE_opendkim is not set -# CONFIG_PACKAGE_opendkim-tools is not set -# CONFIG_PACKAGE_postfix is not set -# CONFIG_PACKAGE_spamc is not set -# CONFIG_PACKAGE_spamc-ssl is not set +CONFIG_PACKAGE_alpine=m +CONFIG_PACKAGE_bogofilter=m +CONFIG_PACKAGE_dovecot=m + +# +# Select dovecot build options +# +# CONFIG_DOVECOT_GSSAPI is not set +# CONFIG_DOVECOT_LDAP is not set +# CONFIG_DOVECOT_MYSQL is not set +# CONFIG_DOVECOT_PGSQL is not set +# CONFIG_DOVECOT_SQLITE is not set +# CONFIG_DOVECOT_ICU is not set +# end of Select dovecot build options + +CONFIG_PACKAGE_dovecot-pigeonhole=m +CONFIG_PACKAGE_dovecot-utils=m +CONFIG_PACKAGE_emailrelay=m +# CONFIG_EMAILRELAY_SUPPORT_VERBOSE_DBG is not set +CONFIG_EMAILRELAY_SSL=y +CONFIG_PACKAGE_exim=m +CONFIG_PACKAGE_exim-gnutls=m +# CONFIG_EXIM_GNUTLS_DANE is not set +CONFIG_PACKAGE_exim-ldap=m +CONFIG_PACKAGE_exim-openssl=m +CONFIG_PACKAGE_exim-lookup-cdb=m +CONFIG_PACKAGE_exim-lookup-dbmdb=m +CONFIG_PACKAGE_exim-lookup-dnsdb=m +CONFIG_PACKAGE_exim-lookup-json=m +CONFIG_PACKAGE_exim-lookup-mysql=m +CONFIG_PACKAGE_exim-lookup-passwd=m +CONFIG_PACKAGE_exim-lookup-pgsql=m +CONFIG_PACKAGE_exim-lookup-redis=m +CONFIG_PACKAGE_exim-lookup-sqlite=m +CONFIG_PACKAGE_fdm=m + +# +# Configuration +# +CONFIG_FDM_WITH_PCRE=y +# end of Configuration + +CONFIG_PACKAGE_greyfix=m +CONFIG_PACKAGE_mailsend=m +CONFIG_PACKAGE_mailsend-nossl=m +CONFIG_PACKAGE_mblaze=m +CONFIG_PACKAGE_msmtp=m +CONFIG_PACKAGE_msmtp-mta=m +CONFIG_PACKAGE_msmtp-nossl=m +CONFIG_PACKAGE_msmtp-queue=m +CONFIG_PACKAGE_mutt=m +CONFIG_MUTT_POP=y +CONFIG_MUTT_IMAP=y +# CONFIG_MUTT_SMTP is not set +# CONFIG_MUTT_HCACHE is not set +# CONFIG_MUTT_SASL is not set +# CONFIG_MUTT_GNUTLS is not set +CONFIG_MUTT_OPENSSL=y +CONFIG_PACKAGE_nail=m +CONFIG_PACKAGE_opendkim=m +CONFIG_PACKAGE_opendkim-tools=m +CONFIG_PACKAGE_postfix=m +CONFIG_POSTFIX_TLS=y +CONFIG_POSTFIX_SASL=y +CONFIG_POSTFIX_LDAP=y +# CONFIG_POSTFIX_DB is not set +CONFIG_POSTFIX_CDB=y +CONFIG_POSTFIX_SQLITE=y +# CONFIG_POSTFIX_MYSQL is not set +# CONFIG_POSTFIX_PGSQL is not set +CONFIG_POSTFIX_PCRE=y +# CONFIG_POSTFIX_EAI is not set +CONFIG_PACKAGE_spamassassin=m +CONFIG_PACKAGE_spamc=m +CONFIG_PACKAGE_spamc-ssl=m # end of Mail # @@ -5239,37 +9588,411 @@ CONFIG_LUCI_CSSTIDY=y # # Streaming # -# CONFIG_PACKAGE_oggfwd is not set +CONFIG_PACKAGE_oggfwd=m # end of Streaming -# CONFIG_PACKAGE_ffmpeg is not set -# CONFIG_PACKAGE_ffprobe is not set -# CONFIG_PACKAGE_fswebcam is not set -# CONFIG_PACKAGE_gphoto2 is not set -# CONFIG_PACKAGE_graphicsmagick is not set -# CONFIG_PACKAGE_grilo is not set -# CONFIG_PACKAGE_grilo-plugins is not set -# CONFIG_PACKAGE_gst1-libav is not set -# CONFIG_PACKAGE_gstreamer1-libs is not set -# CONFIG_PACKAGE_gstreamer1-plugins-bad is not set -# CONFIG_PACKAGE_gstreamer1-plugins-base is not set -# CONFIG_PACKAGE_gstreamer1-plugins-good is not set -# CONFIG_PACKAGE_gstreamer1-plugins-ugly is not set -# CONFIG_PACKAGE_gstreamer1-utils is not set -# CONFIG_PACKAGE_icecast is not set -# CONFIG_PACKAGE_imagemagick is not set -# CONFIG_PACKAGE_lcdgrilo is not set -# CONFIG_PACKAGE_minidlna is not set -# CONFIG_PACKAGE_minisatip is not set -# CONFIG_PACKAGE_mjpg-streamer is not set -# CONFIG_PACKAGE_motion is not set -# CONFIG_PACKAGE_tvheadend is not set -# CONFIG_PACKAGE_v4l2camera is not set -# CONFIG_PACKAGE_v4l2rtspserver is not set -# CONFIG_PACKAGE_v4l2tools is not set -# CONFIG_PACKAGE_vips is not set -# CONFIG_PACKAGE_xupnpd is not set -# CONFIG_PACKAGE_yt-dlp is not set +CONFIG_PACKAGE_ffmpeg=m +CONFIG_PACKAGE_ffprobe=m +CONFIG_PACKAGE_fswebcam=m +CONFIG_PACKAGE_gphoto2=m +CONFIG_PACKAGE_graphicsmagick=m +CONFIG_PACKAGE_grilo=m +CONFIG_PACKAGE_grilo-plugins=m +CONFIG_PACKAGE_grilo-plugins-chromaprint=m +CONFIG_PACKAGE_grilo-plugins-dleyna=m +CONFIG_PACKAGE_grilo-plugins-dmap=m +CONFIG_PACKAGE_grilo-plugins-gravatar=m +CONFIG_PACKAGE_grilo-plugins-magnatune=m +CONFIG_PACKAGE_grilo-plugins-metadata-store=m +CONFIG_PACKAGE_grilo-plugins-raitv=m +CONFIG_PACKAGE_grilo-plugins-shoutcast=m +CONFIG_PACKAGE_grilo-plugins-tmdb=m +CONFIG_PACKAGE_gst1-libav=m + +# +# Select GStreamer libav configuration options +# +CONFIG_GST1_LIBAV_IPV6=y +# CONFIG_GST1_LIBAV_PATENTED is not set +CONFIG_GET_LIBAV_COMMON_AV_SUPPORT=y + +# +# Encoders --- +# +# CONFIG_GST1_LIBAV_ENCODER_ac3 is not set +# CONFIG_GST1_LIBAV_ENCODER_jpegls is not set +# CONFIG_GST1_LIBAV_ENCODER_mpeg1video is not set +# CONFIG_GST1_LIBAV_ENCODER_mpeg2video is not set +# CONFIG_GST1_LIBAV_ENCODER_pcm_s16be is not set +# CONFIG_GST1_LIBAV_ENCODER_pcm_s16le is not set +# CONFIG_GST1_LIBAV_ENCODER_png is not set +# CONFIG_GST1_LIBAV_ENCODER_vorbis is not set +# CONFIG_GST1_LIBAV_ENCODER_zlib is not set + +# +# Decoders --- +# +CONFIG_GST1_LIBAV_DECODER_ac3=y +# CONFIG_GST1_LIBAV_DECODER_gif is not set +CONFIG_GST1_LIBAV_DECODER_jpegls=y +# CONFIG_GST1_LIBAV_DECODER_mp2 is not set +CONFIG_GST1_LIBAV_DECODER_mp3=y +CONFIG_GST1_LIBAV_DECODER_mpegvideo=y +CONFIG_GST1_LIBAV_DECODER_mpeg1video=y +CONFIG_GST1_LIBAV_DECODER_mpeg2video=y +CONFIG_GST1_LIBAV_DECODER_pcm_s16be=y +CONFIG_GST1_LIBAV_DECODER_pcm_s16le=y +CONFIG_GST1_LIBAV_DECODER_png=y +CONFIG_GST1_LIBAV_DECODER_vorbis=y +CONFIG_GST1_LIBAV_DECODER_zlib=y + +# +# Muxers --- +# +# CONFIG_GST1_LIBAV_MUXER_ac3 is not set +# CONFIG_GST1_LIBAV_MUXER_ffm is not set +# CONFIG_GST1_LIBAV_MUXER_mp3 is not set +# CONFIG_GST1_LIBAV_MUXER_mp4 is not set +# CONFIG_GST1_LIBAV_MUXER_mpeg1video is not set +# CONFIG_GST1_LIBAV_MUXER_mpeg2video is not set +# CONFIG_GST1_LIBAV_MUXER_mpegts is not set +# CONFIG_GST1_LIBAV_MUXER_ogg is not set +# CONFIG_GST1_LIBAV_MUXER_oss is not set +# CONFIG_GST1_LIBAV_MUXER_rtp is not set + +# +# Demuxers --- +# +CONFIG_GST1_LIBAV_DEMUXER_ac3=y +# CONFIG_GST1_LIBAV_DEMUXER_ffm is not set +CONFIG_GST1_LIBAV_DEMUXER_mp3=y +CONFIG_GST1_LIBAV_DEMUXER_mpegvideo=y +# CONFIG_GST1_LIBAV_DEMUXER_mpegps is not set +# CONFIG_GST1_LIBAV_DEMUXER_mpegts is not set +CONFIG_GST1_LIBAV_DEMUXER_ogg=y +# CONFIG_GST1_LIBAV_DEMUXER_rm is not set +# CONFIG_GST1_LIBAV_DEMUXER_rtsp is not set +# CONFIG_GST1_LIBAV_DEMUXER_sdp is not set + +# +# Parsers --- +# +CONFIG_GST1_LIBAV_PARSER_ac3=y +CONFIG_GST1_LIBAV_PARSER_mpegaudio=y +CONFIG_GST1_LIBAV_PARSER_mpegvideo=y +CONFIG_GST1_LIBAV_PARSER_mpeg4video=y + +# +# Protocols --- +# +# CONFIG_GST1_LIBAV_PROTOCOL_file is not set +# CONFIG_GST1_LIBAV_PROTOCOL_http is not set +# CONFIG_GST1_LIBAV_PROTOCOL_pipe is not set +# CONFIG_GST1_LIBAV_PROTOCOL_rtp is not set +# CONFIG_GST1_LIBAV_PROTOCOL_tcp is not set +# CONFIG_GST1_LIBAV_PROTOCOL_udp is not set +# end of Select GStreamer libav configuration options + +CONFIG_PACKAGE_gst1-mod-adder=m +CONFIG_PACKAGE_gst1-mod-adpcmdec=m +CONFIG_PACKAGE_gst1-mod-adpcmenc=m +CONFIG_PACKAGE_gst1-mod-aiff=m +CONFIG_PACKAGE_gst1-mod-alaw=m +CONFIG_PACKAGE_gst1-mod-alpha=m +CONFIG_PACKAGE_gst1-mod-alsa=m +CONFIG_PACKAGE_gst1-mod-apetag=m +CONFIG_PACKAGE_gst1-mod-app=m +CONFIG_PACKAGE_gst1-mod-asf=m +CONFIG_PACKAGE_gst1-mod-asfmux=m +CONFIG_PACKAGE_gst1-mod-audiobuffersplit=m +CONFIG_PACKAGE_gst1-mod-audioconvert=m +CONFIG_PACKAGE_gst1-mod-audiofx=m +CONFIG_PACKAGE_gst1-mod-audiofxbad=m +CONFIG_PACKAGE_gst1-mod-audiolatency=m +CONFIG_PACKAGE_gst1-mod-audiomixer=m +CONFIG_PACKAGE_gst1-mod-audiomixmatrix=m +CONFIG_PACKAGE_gst1-mod-audioparsers=m +CONFIG_PACKAGE_gst1-mod-audiorate=m +CONFIG_PACKAGE_gst1-mod-audioresample=m +CONFIG_PACKAGE_gst1-mod-audiotestsrc=m +CONFIG_PACKAGE_gst1-mod-audiovisualizers=m +CONFIG_PACKAGE_gst1-mod-auparse=m +CONFIG_PACKAGE_gst1-mod-autoconvert=m +CONFIG_PACKAGE_gst1-mod-autodetect=m +CONFIG_PACKAGE_gst1-mod-avi=m +CONFIG_PACKAGE_gst1-mod-bayer=m +CONFIG_PACKAGE_gst1-mod-bluez=m +CONFIG_PACKAGE_gst1-mod-camerabin=m +CONFIG_PACKAGE_gst1-mod-coloreffects=m +CONFIG_PACKAGE_gst1-mod-compositor=m +CONFIG_PACKAGE_gst1-mod-cutter=m +CONFIG_PACKAGE_gst1-mod-debug=m +CONFIG_PACKAGE_gst1-mod-debugutilsbad=m +CONFIG_PACKAGE_gst1-mod-dtls=m +CONFIG_PACKAGE_gst1-mod-dtmf=m +CONFIG_PACKAGE_gst1-mod-dvbsubenc=m +CONFIG_PACKAGE_gst1-mod-dvbsuboverlay=m +CONFIG_PACKAGE_gst1-mod-dvdspu=m +CONFIG_PACKAGE_gst1-mod-effectv=m +CONFIG_PACKAGE_gst1-mod-encoding=m +CONFIG_PACKAGE_gst1-mod-equalizer=m +CONFIG_PACKAGE_gst1-mod-faad=m +CONFIG_PACKAGE_gst1-mod-faceoverlay=m +CONFIG_PACKAGE_gst1-mod-fbdevsink=m +CONFIG_PACKAGE_gst1-mod-festival=m +CONFIG_PACKAGE_gst1-mod-fieldanalysis=m +CONFIG_PACKAGE_gst1-mod-flac=m +CONFIG_PACKAGE_gst1-mod-flv=m +CONFIG_PACKAGE_gst1-mod-flxdec=m +CONFIG_PACKAGE_gst1-mod-freeverb=m +CONFIG_PACKAGE_gst1-mod-frei0r=m +CONFIG_PACKAGE_gst1-mod-gaudieffects=m +CONFIG_PACKAGE_gst1-mod-gdp=m +CONFIG_PACKAGE_gst1-mod-geometrictransform=m +CONFIG_PACKAGE_gst1-mod-gio=m +CONFIG_PACKAGE_gst1-mod-goom=m +CONFIG_PACKAGE_gst1-mod-goom2k1=m +CONFIG_PACKAGE_gst1-mod-hls=m +CONFIG_PACKAGE_gst1-mod-icydemux=m +CONFIG_PACKAGE_gst1-mod-id3demux=m +CONFIG_PACKAGE_gst1-mod-id3tag=m +CONFIG_PACKAGE_gst1-mod-imagefreeze=m +CONFIG_PACKAGE_gst1-mod-inter=m +CONFIG_PACKAGE_gst1-mod-interlace=m +CONFIG_PACKAGE_gst1-mod-interleave=m +CONFIG_PACKAGE_gst1-mod-isomp4=m +CONFIG_PACKAGE_gst1-mod-ivfparse=m +CONFIG_PACKAGE_gst1-mod-ivorbisdec=m +CONFIG_PACKAGE_gst1-mod-ivtc=m +CONFIG_PACKAGE_gst1-mod-jp2kdecimator=m +CONFIG_PACKAGE_gst1-mod-jpeg=m +CONFIG_PACKAGE_gst1-mod-jpegformat=m +CONFIG_PACKAGE_gst1-mod-lame=m +CONFIG_PACKAGE_gst1-mod-legacyrawparse=m +CONFIG_PACKAGE_gst1-mod-level=m +CONFIG_PACKAGE_gst1-mod-matroska=m +CONFIG_PACKAGE_gst1-mod-midi=m +CONFIG_PACKAGE_gst1-mod-monoscope=m +CONFIG_PACKAGE_gst1-mod-mpeg2dec=m +CONFIG_PACKAGE_gst1-mod-mpegpsdemux=m +CONFIG_PACKAGE_gst1-mod-mpegpsmux=m +CONFIG_PACKAGE_gst1-mod-mpegtsdemux=m +CONFIG_PACKAGE_gst1-mod-mpegtsmux=m +CONFIG_PACKAGE_gst1-mod-mpg123=m +CONFIG_PACKAGE_gst1-mod-mulaw=m +CONFIG_PACKAGE_gst1-mod-multifile=m +CONFIG_PACKAGE_gst1-mod-multipart=m +CONFIG_PACKAGE_gst1-mod-mxf=m +CONFIG_PACKAGE_gst1-mod-navigationtest=m +CONFIG_PACKAGE_gst1-mod-netsim=m +CONFIG_PACKAGE_gst1-mod-ogg=m +CONFIG_PACKAGE_gst1-mod-opus=m +CONFIG_PACKAGE_gst1-mod-opusparse=m +CONFIG_PACKAGE_gst1-mod-oss4=m +CONFIG_PACKAGE_gst1-mod-ossaudio=m +CONFIG_PACKAGE_gst1-mod-overlaycomposition=m +CONFIG_PACKAGE_gst1-mod-pbtypes=m +CONFIG_PACKAGE_gst1-mod-pcapparse=m +CONFIG_PACKAGE_gst1-mod-playback=m +CONFIG_PACKAGE_gst1-mod-png=m +CONFIG_PACKAGE_gst1-mod-pnm=m +CONFIG_PACKAGE_gst1-mod-proxy=m +CONFIG_PACKAGE_gst1-mod-rawparse=m +CONFIG_PACKAGE_gst1-mod-removesilence=m +CONFIG_PACKAGE_gst1-mod-replaygain=m +CONFIG_PACKAGE_gst1-mod-rfbsrc=m +CONFIG_PACKAGE_gst1-mod-rtp=m +CONFIG_PACKAGE_gst1-mod-rtpmanager=m +CONFIG_PACKAGE_gst1-mod-rtponvif=m +CONFIG_PACKAGE_gst1-mod-rtsp=m +CONFIG_PACKAGE_gst1-mod-sbc=m +CONFIG_PACKAGE_gst1-mod-sdpelem=m +CONFIG_PACKAGE_gst1-mod-segmentclip=m +CONFIG_PACKAGE_gst1-mod-shapewipe=m +CONFIG_PACKAGE_gst1-mod-shm=m +CONFIG_PACKAGE_gst1-mod-shout2=m +CONFIG_PACKAGE_gst1-mod-siren=m +CONFIG_PACKAGE_gst1-mod-smooth=m +CONFIG_PACKAGE_gst1-mod-smpte=m +CONFIG_PACKAGE_gst1-mod-sndfile=m +CONFIG_PACKAGE_gst1-mod-soup=m +CONFIG_PACKAGE_gst1-mod-spectrum=m +CONFIG_PACKAGE_gst1-mod-speed=m +CONFIG_PACKAGE_gst1-mod-speex=m +CONFIG_PACKAGE_gst1-mod-subenc=m +CONFIG_PACKAGE_gst1-mod-subparse=m +CONFIG_PACKAGE_gst1-mod-switchbin=m +CONFIG_PACKAGE_gst1-mod-taglib=m +CONFIG_PACKAGE_gst1-mod-tcp=m +CONFIG_PACKAGE_gst1-mod-theora=m +CONFIG_PACKAGE_gst1-mod-timecode=m +CONFIG_PACKAGE_gst1-mod-typefindfunctions=m +CONFIG_PACKAGE_gst1-mod-udp=m +CONFIG_PACKAGE_gst1-mod-video4linux2=m +CONFIG_PACKAGE_gst1-mod-videobox=m +CONFIG_PACKAGE_gst1-mod-videoconvertscale=m +CONFIG_PACKAGE_gst1-mod-videocrop=m +CONFIG_PACKAGE_gst1-mod-videofilter=m +CONFIG_PACKAGE_gst1-mod-videofiltersbad=m +CONFIG_PACKAGE_gst1-mod-videoframe_audiolevel=m +CONFIG_PACKAGE_gst1-mod-videomixer=m +CONFIG_PACKAGE_gst1-mod-videorate=m +CONFIG_PACKAGE_gst1-mod-videosignal=m +CONFIG_PACKAGE_gst1-mod-videotestsrc=m +CONFIG_PACKAGE_gst1-mod-vmnc=m +CONFIG_PACKAGE_gst1-mod-volume=m +CONFIG_PACKAGE_gst1-mod-vorbis=m +CONFIG_PACKAGE_gst1-mod-vpx=m +CONFIG_PACKAGE_gst1-mod-wavenc=m +CONFIG_PACKAGE_gst1-mod-wavparse=m +CONFIG_PACKAGE_gst1-mod-webp=m +CONFIG_PACKAGE_gst1-mod-y4mdec=m +CONFIG_PACKAGE_gst1-plugins-bad=m +CONFIG_PACKAGE_gst1-plugins-base=m +CONFIG_PACKAGE_gst1-plugins-good=m +CONFIG_PACKAGE_gst1-plugins-ugly=m +CONFIG_PACKAGE_gstreamer1=m +CONFIG_PACKAGE_gstreamer1-libs=m + +# +# Select GStreamer libraries +# +# CONFIG_gstreamer1-all is not set + +# +# Libraries +# +CONFIG_PACKAGE_libgstreamer1=m +CONFIG_PACKAGE_libgst1check=m +CONFIG_PACKAGE_libgst1controller=m +CONFIG_PACKAGE_libgst1net=m +# end of Select GStreamer libraries + +CONFIG_PACKAGE_gstreamer1-plugins-bad=m + +# +# Select GStreamer bad modules and libraries +# +# CONFIG_gst1-plugins-bad-all is not set + +# +# Modules +# + +# +# Libraries +# +CONFIG_PACKAGE_libgst1adaptivedemux=m +CONFIG_PACKAGE_libgst1photography=m +CONFIG_PACKAGE_libgst1basecamerabinsrc=m +CONFIG_PACKAGE_libgst1uridownloader=m +CONFIG_PACKAGE_libgst1codecparsers=m +CONFIG_PACKAGE_libgst1mpegts=m +# end of Select GStreamer bad modules and libraries + +CONFIG_PACKAGE_gstreamer1-plugins-base=m + +# +# Select GStreamer base modules and libraries +# +# CONFIG_gst1-plugins-base-all is not set + +# +# Modules +# + +# +# Libraries +# +CONFIG_PACKAGE_libgst1allocators=m +CONFIG_PACKAGE_libgst1app=m +CONFIG_PACKAGE_libgst1audio=m +CONFIG_PACKAGE_libgst1fft=m +CONFIG_PACKAGE_libgst1pbutils=m +CONFIG_PACKAGE_libgst1riff=m +CONFIG_PACKAGE_libgst1rtp=m +CONFIG_PACKAGE_libgst1rtsp=m +CONFIG_PACKAGE_libgst1sdp=m +CONFIG_PACKAGE_libgst1tag=m +CONFIG_PACKAGE_libgst1video=m +# end of Select GStreamer base modules and libraries + +CONFIG_PACKAGE_gstreamer1-plugins-good=m + +# +# Select GStreamer good modules +# +# CONFIG_gst1-plugins-good-all is not set + +# +# Modules +# +# end of Select GStreamer good modules + +CONFIG_PACKAGE_gstreamer1-plugins-ugly=m + +# +# Select GStreamer ugly modules +# +# CONFIG_gst1-plugins-ugly-all is not set + +# +# Modules +# +# end of Select GStreamer ugly modules + +CONFIG_PACKAGE_gstreamer1-utils=m +CONFIG_PACKAGE_icecast=m +CONFIG_PACKAGE_imagemagick=m +CONFIG_PACKAGE_lcdgrilo=m +CONFIG_PACKAGE_minidlna=m +CONFIG_PACKAGE_minisatip=m +# CONFIG_MINISATIP_AES is not set +CONFIG_MINISATIP_CLIENT=y +CONFIG_PACKAGE_mjpg-streamer=m +# CONFIG_MJPG_STREAMER_V4L2 is not set +CONFIG_PACKAGE_mjpg-streamer-input-file=m +CONFIG_PACKAGE_mjpg-streamer-input-http=m +CONFIG_PACKAGE_mjpg-streamer-input-uvc=m +CONFIG_PACKAGE_mjpg-streamer-output-file=m +CONFIG_PACKAGE_mjpg-streamer-output-http=m +CONFIG_PACKAGE_mjpg-streamer-output-rtsp=m +CONFIG_PACKAGE_mjpg-streamer-output-zmq=m +CONFIG_PACKAGE_mjpg-streamer-www=m +CONFIG_PACKAGE_mjpg-streamer-www-simple=m +CONFIG_PACKAGE_motion=m +CONFIG_PACKAGE_tvheadend=m + +# +# Generic options +# +# CONFIG_TVHEADEND_OPTIMIZE_SPEED is not set +# CONFIG_TVHEADEND_TRACE is not set +# CONFIG_TVHEADEND_AVAHI_SUPPORT is not set +CONFIG_TVHEADEND_REGEX_POSIX=y +# CONFIG_TVHEADEND_REGEX_PCRE2 is not set +# CONFIG_TVHEADEND_IMAGECACHE is not set + +# +# Input & output support +# +CONFIG_TVHEADEND_LINUXDVB_SUPPORT=y +CONFIG_TVHEADEND_DVBSCAN_SUPPORT=y +CONFIG_TVHEADEND_IPTV=y +CONFIG_TVHEADEND_SATIP_CLIENT=y +CONFIG_TVHEADEND_SATIP_SERVER=y +CONFIG_TVHEADEND_HDHOMERUN_CLIENT=y + +# +# DVB descrambling and some codecs are only available with BUILD_PATENTED. +# +CONFIG_PACKAGE_v4l2camera=m +CONFIG_PACKAGE_v4l2rtspserver=m +CONFIG_PACKAGE_v4l2tools=m +CONFIG_PACKAGE_vips=m +CONFIG_PACKAGE_xupnpd=m +CONFIG_PACKAGE_yt-dlp=m +CONFIG_PACKAGE_yt-dlp-src=m # end of Multimedia # @@ -5279,88 +10002,127 @@ CONFIG_LUCI_CSSTIDY=y # # BitTorrent # -# CONFIG_PACKAGE_mktorrent is not set -# CONFIG_PACKAGE_opentracker is not set -# CONFIG_PACKAGE_opentracker6 is not set -# CONFIG_PACKAGE_rtorrent is not set -# CONFIG_PACKAGE_rtorrent-rpc is not set -# CONFIG_PACKAGE_transmission-cli is not set -# CONFIG_PACKAGE_transmission-daemon is not set -# CONFIG_PACKAGE_transmission-remote is not set -# CONFIG_PACKAGE_transmission-web is not set -# CONFIG_PACKAGE_transmission-web-control is not set +CONFIG_PACKAGE_mktorrent=m +CONFIG_PACKAGE_opentracker=m +CONFIG_PACKAGE_opentracker6=m +CONFIG_PACKAGE_rtorrent=m +CONFIG_PACKAGE_rtorrent-rpc=m +CONFIG_PACKAGE_transmission-cli=m +CONFIG_PACKAGE_transmission-daemon=m +CONFIG_PACKAGE_transmission-remote=m +CONFIG_PACKAGE_transmission-web=m +CONFIG_PACKAGE_transmission-web-control=m # end of BitTorrent # # Captive Portals # -# CONFIG_PACKAGE_apfree-wifidog is not set -# CONFIG_PACKAGE_coova-chilli is not set -# CONFIG_PACKAGE_mesh11sd is not set -# CONFIG_PACKAGE_nodogsplash is not set -# CONFIG_PACKAGE_opennds is not set -# CONFIG_PACKAGE_uspot is not set -# CONFIG_PACKAGE_uspot-www is not set -# CONFIG_PACKAGE_wifidog is not set -# CONFIG_PACKAGE_wifidog-tls is not set +CONFIG_PACKAGE_apfree-wifidog=m +CONFIG_PACKAGE_coova-chilli=m +# CONFIG_COOVACHILLI_PROXY is not set +# CONFIG_COOVACHILLI_REDIR is not set +# CONFIG_COOVACHILLI_MINIPORTAL is not set +# CONFIG_COOVACHILLI_USERAGENT is not set +# CONFIG_COOVACHILLI_UAMDOMAINFILE is not set +# CONFIG_COOVACHILLI_LARGELIMITS is not set +# CONFIG_COOVACHILLI_JSONINTERFACE is not set +CONFIG_COOVACHILLI_NOSSL=y +# CONFIG_COOVACHILLI_WOLFSSL is not set +# CONFIG_COOVACHILLI_OPENSSL is not set +CONFIG_PACKAGE_mesh11sd=m +CONFIG_PACKAGE_nodogsplash=m +CONFIG_PACKAGE_opennds=m +CONFIG_PACKAGE_uspot=m +CONFIG_PACKAGE_uspot-www=m +CONFIG_PACKAGE_wifidog=m +CONFIG_PACKAGE_wifidog-tls=m # end of Captive Portals # # Cloud Manager # -# CONFIG_PACKAGE_cloudreve is not set -# CONFIG_PACKAGE_rclone-ng is not set -# CONFIG_PACKAGE_rclone-webui-react is not set +CONFIG_PACKAGE_cloudreve=m +CONFIG_PACKAGE_rclone-ng=m +CONFIG_PACKAGE_rclone-webui-react=m # end of Cloud Manager # # Dial-in/up # -# CONFIG_PACKAGE_rp-pppoe-common is not set +CONFIG_PACKAGE_rp-pppoe-common=m # CONFIG_PACKAGE_rp-pppoe-relay is not set -# CONFIG_PACKAGE_rp-pppoe-server is not set +CONFIG_PACKAGE_rp-pppoe-server=m # end of Dial-in/up # # Download Manager # -# CONFIG_PACKAGE_ariang is not set -# CONFIG_PACKAGE_ariang-nginx is not set -# CONFIG_PACKAGE_leech is not set -# CONFIG_PACKAGE_webui-aria2 is not set +CONFIG_PACKAGE_ariang=m +CONFIG_PACKAGE_ariang-nginx=m +CONFIG_PACKAGE_leech=m +CONFIG_PACKAGE_webui-aria2=m # end of Download Manager # # File Transfer # -# CONFIG_PACKAGE_aria2 is not set -# CONFIG_PACKAGE_atftp is not set -# CONFIG_PACKAGE_atftpd is not set -# CONFIG_PACKAGE_croc is not set -# CONFIG_PACKAGE_curl is not set -# CONFIG_PACKAGE_lftp is not set -# CONFIG_PACKAGE_rclone is not set -# CONFIG_PACKAGE_rclone-config is not set -# CONFIG_PACKAGE_rsync is not set -# CONFIG_PACKAGE_rsyncd is not set -# CONFIG_PACKAGE_vsftpd is not set -# CONFIG_PACKAGE_vsftpd-tls is not set -# CONFIG_PACKAGE_wget-nossl is not set -# CONFIG_PACKAGE_wget-ssl is not set +CONFIG_PACKAGE_aria2=m + +# +# Aria2 Configuration +# +CONFIG_ARIA2_OPENSSL=y +# CONFIG_ARIA2_GNUTLS is not set +# CONFIG_ARIA2_NOSSL is not set +# CONFIG_ARIA2_LIBXML2 is not set +# CONFIG_ARIA2_EXPAT is not set +CONFIG_ARIA2_NOXML=y +CONFIG_ARIA2_BITTORRENT=y +# CONFIG_ARIA2_SFTP is not set +# CONFIG_ARIA2_ASYNC_DNS is not set +# CONFIG_ARIA2_COOKIE is not set +CONFIG_ARIA2_WEBSOCKET=y +# end of Aria2 Configuration + +CONFIG_PACKAGE_atftp=m +CONFIG_PACKAGE_atftpd=m +CONFIG_PACKAGE_croc=m +CONFIG_PACKAGE_curl=m +CONFIG_PACKAGE_lftp=m +CONFIG_PACKAGE_rclone=m +CONFIG_PACKAGE_rclone-config=m +CONFIG_PACKAGE_rrsync=m +CONFIG_PACKAGE_rsync=m +CONFIG_RSYNC_xattr=y +CONFIG_RSYNC_acl=y +# CONFIG_RSYNC_zstd is not set +CONFIG_PACKAGE_rsyncd=m +CONFIG_PACKAGE_vsftpd=m +CONFIG_PACKAGE_vsftpd-tls=m +CONFIG_PACKAGE_wget-nossl=m +CONFIG_PACKAGE_wget-ssl=m # end of File Transfer # # Filesystem # -# CONFIG_PACKAGE_davfs2 is not set -# CONFIG_PACKAGE_ksmbd-avahi-service is not set -# CONFIG_PACKAGE_ksmbd-hotplug is not set -# CONFIG_PACKAGE_ksmbd-server is not set -# CONFIG_PACKAGE_nfs-kernel-server is not set -# CONFIG_PACKAGE_owftpd is not set -# CONFIG_PACKAGE_owhttpd is not set -# CONFIG_PACKAGE_owserver is not set -# CONFIG_PACKAGE_sshfs is not set +CONFIG_PACKAGE_davfs2=m +CONFIG_PACKAGE_ksmbd-avahi-service=m +CONFIG_PACKAGE_ksmbd-hotplug=m +CONFIG_PACKAGE_ksmbd-server=m +CONFIG_PACKAGE_nfs-kernel-server=m + +# +# Select nfs-kernel-server configuration options +# +CONFIG_NFS_KERNEL_SERVER_V4=y +# end of Select nfs-kernel-server configuration options + +CONFIG_PACKAGE_nfs-kernel-server-utils=m +CONFIG_PACKAGE_owftpd=m +CONFIG_PACKAGE_owhttpd=m +CONFIG_PACKAGE_owserver=m +CONFIG_PACKAGE_sshfs=m # end of Filesystem # @@ -5368,64 +10130,72 @@ CONFIG_LUCI_CSSTIDY=y # # CONFIG_PACKAGE_arptables-legacy is not set CONFIG_PACKAGE_arptables-nft=m -# CONFIG_PACKAGE_conntrack is not set -# CONFIG_PACKAGE_conntrackd is not set +CONFIG_PACKAGE_conntrack=m +CONFIG_PACKAGE_conntrackd=m # CONFIG_PACKAGE_ebtables-legacy is not set CONFIG_PACKAGE_ebtables-nft=m -# CONFIG_PACKAGE_fwknop is not set -# CONFIG_PACKAGE_fwknopd is not set +CONFIG_PACKAGE_fwknop=m +CONFIG_PACKAGE_fwknopd=m + +# +# Configuration +# +# CONFIG_FWKNOPD_GPG is not set +# CONFIG_FWKNOPD_NFQ_CAPTURE is not set +# end of Configuration + CONFIG_PACKAGE_ip6tables-extra=m CONFIG_PACKAGE_ip6tables-mod-nat=m CONFIG_PACKAGE_ip6tables-nft=m CONFIG_PACKAGE_ip6tables-zz-legacy=m -# CONFIG_PACKAGE_iptables-mod-account is not set -# CONFIG_PACKAGE_iptables-mod-asn is not set -# CONFIG_PACKAGE_iptables-mod-chaos is not set +CONFIG_PACKAGE_iptables-mod-account=m +CONFIG_PACKAGE_iptables-mod-asn=m +CONFIG_PACKAGE_iptables-mod-chaos=m CONFIG_PACKAGE_iptables-mod-checksum=m CONFIG_PACKAGE_iptables-mod-cluster=m CONFIG_PACKAGE_iptables-mod-clusterip=m -# CONFIG_PACKAGE_iptables-mod-condition is not set +CONFIG_PACKAGE_iptables-mod-condition=m CONFIG_PACKAGE_iptables-mod-conntrack-extra=m -# CONFIG_PACKAGE_iptables-mod-delude is not set -# CONFIG_PACKAGE_iptables-mod-dhcpmac is not set -# CONFIG_PACKAGE_iptables-mod-dnetmap is not set +CONFIG_PACKAGE_iptables-mod-delude=m +CONFIG_PACKAGE_iptables-mod-dhcpmac=m +CONFIG_PACKAGE_iptables-mod-dnetmap=m CONFIG_PACKAGE_iptables-mod-extra=m CONFIG_PACKAGE_iptables-mod-filter=m -# CONFIG_PACKAGE_iptables-mod-fuzzy is not set -# CONFIG_PACKAGE_iptables-mod-geoip is not set +CONFIG_PACKAGE_iptables-mod-fuzzy=m +CONFIG_PACKAGE_iptables-mod-geoip=m CONFIG_PACKAGE_iptables-mod-hashlimit=m -# CONFIG_PACKAGE_iptables-mod-iface is not set -# CONFIG_PACKAGE_iptables-mod-ipmark is not set +CONFIG_PACKAGE_iptables-mod-iface=m +CONFIG_PACKAGE_iptables-mod-ipmark=m CONFIG_PACKAGE_iptables-mod-ipopt=m -# CONFIG_PACKAGE_iptables-mod-ipp2p is not set +CONFIG_PACKAGE_iptables-mod-ipp2p=m CONFIG_PACKAGE_iptables-mod-iprange=m CONFIG_PACKAGE_iptables-mod-ipsec=m -# CONFIG_PACKAGE_iptables-mod-ipv4options is not set +CONFIG_PACKAGE_iptables-mod-ipv4options=m CONFIG_PACKAGE_iptables-mod-led=m -# CONFIG_PACKAGE_iptables-mod-length2 is not set -# CONFIG_PACKAGE_iptables-mod-logmark is not set -# CONFIG_PACKAGE_iptables-mod-lscan is not set -# CONFIG_PACKAGE_iptables-mod-lua is not set +CONFIG_PACKAGE_iptables-mod-length2=m +CONFIG_PACKAGE_iptables-mod-logmark=m +CONFIG_PACKAGE_iptables-mod-lscan=m +CONFIG_PACKAGE_iptables-mod-lua=m CONFIG_PACKAGE_iptables-mod-nat-extra=m CONFIG_PACKAGE_iptables-mod-nflog=m CONFIG_PACKAGE_iptables-mod-nfqueue=m CONFIG_PACKAGE_iptables-mod-physdev=m -# CONFIG_PACKAGE_iptables-mod-proto is not set -# CONFIG_PACKAGE_iptables-mod-psd is not set -# CONFIG_PACKAGE_iptables-mod-quota2 is not set +CONFIG_PACKAGE_iptables-mod-proto=m +CONFIG_PACKAGE_iptables-mod-psd=m +CONFIG_PACKAGE_iptables-mod-quota2=m CONFIG_PACKAGE_iptables-mod-rpfilter=m -# CONFIG_PACKAGE_iptables-mod-rtpengine is not set +CONFIG_PACKAGE_iptables-mod-rtpengine=m CONFIG_PACKAGE_iptables-mod-socket=m CONFIG_PACKAGE_iptables-nft=m CONFIG_PACKAGE_iptables-zz-legacy=m -# CONFIG_PACKAGE_iptables-mod-sysrq is not set -# CONFIG_PACKAGE_iptables-mod-tarpit is not set +CONFIG_PACKAGE_iptables-mod-sysrq=m +CONFIG_PACKAGE_iptables-mod-tarpit=m CONFIG_PACKAGE_iptables-mod-tee=m CONFIG_PACKAGE_iptables-mod-tproxy=m CONFIG_PACKAGE_iptables-mod-trace=m CONFIG_PACKAGE_iptables-mod-u32=m -# CONFIG_PACKAGE_iptaccount is not set -# CONFIG_PACKAGE_iptasn is not set +CONFIG_PACKAGE_iptaccount=m +CONFIG_PACKAGE_iptasn=m # # Select iptasn options @@ -5433,7 +10203,7 @@ CONFIG_PACKAGE_iptables-mod-u32=m # CONFIG_IPTASN_PRESERVE is not set # end of Select iptasn options -# CONFIG_PACKAGE_iptgeoip is not set +CONFIG_PACKAGE_iptgeoip=m # # Select iptgeoip options @@ -5441,19 +10211,19 @@ CONFIG_PACKAGE_iptables-mod-u32=m # CONFIG_IPTGEOIP_PRESERVE is not set # end of Select iptgeoip options -# CONFIG_PACKAGE_miniupnpc is not set -# CONFIG_PACKAGE_miniupnpd-iptables is not set -# CONFIG_PACKAGE_miniupnpd-nftables is not set -# CONFIG_PACKAGE_natpmpc is not set +CONFIG_PACKAGE_miniupnpc=m +CONFIG_PACKAGE_miniupnpd-iptables=m +CONFIG_PACKAGE_miniupnpd-nftables=m +CONFIG_PACKAGE_natpmpc=m CONFIG_PACKAGE_nftables-json=y # CONFIG_PACKAGE_nftables-nojson is not set -# CONFIG_PACKAGE_openappid is not set -# CONFIG_PACKAGE_shorewall is not set -# CONFIG_PACKAGE_shorewall-core is not set -# CONFIG_PACKAGE_shorewall-lite is not set -# CONFIG_PACKAGE_shorewall6 is not set -# CONFIG_PACKAGE_shorewall6-lite is not set -# CONFIG_PACKAGE_snort3 is not set +CONFIG_PACKAGE_openappid=m +CONFIG_PACKAGE_shorewall=m +CONFIG_PACKAGE_shorewall-core=m +CONFIG_PACKAGE_shorewall-lite=m +CONFIG_PACKAGE_shorewall6=m +CONFIG_PACKAGE_shorewall6-lite=m +CONFIG_PACKAGE_snort3=m CONFIG_PACKAGE_xtables-legacy=m CONFIG_PACKAGE_xtables-nft=m # end of Firewall @@ -5461,82 +10231,228 @@ CONFIG_PACKAGE_xtables-nft=m # # Firewall Tunnel # -# CONFIG_PACKAGE_iodine is not set -# CONFIG_PACKAGE_iodined is not set +CONFIG_PACKAGE_iodine=m +CONFIG_PACKAGE_iodined=m # end of Firewall Tunnel # # FreeRADIUS (version 3) # -# CONFIG_PACKAGE_freeradius3 is not set -# CONFIG_PACKAGE_freeradius3-common is not set -# CONFIG_PACKAGE_freeradius3-utils is not set +CONFIG_PACKAGE_freeradius3=m +# CONFIG_FREERADIUS3_NOSSL is not set +CONFIG_FREERADIUS3_OPENSSL=y +CONFIG_PACKAGE_freeradius3-common=m +CONFIG_PACKAGE_freeradius3-default=m +CONFIG_PACKAGE_freeradius3-democerts=m +CONFIG_PACKAGE_freeradius3-mod-always=m +CONFIG_PACKAGE_freeradius3-mod-attr-filter=m +CONFIG_PACKAGE_freeradius3-mod-chap=m +CONFIG_PACKAGE_freeradius3-mod-counter=m +CONFIG_PACKAGE_freeradius3-mod-date=m +CONFIG_PACKAGE_freeradius3-mod-detail=m +CONFIG_PACKAGE_freeradius3-mod-digest=m +CONFIG_PACKAGE_freeradius3-mod-dynamic-clients=m +CONFIG_PACKAGE_freeradius3-mod-eap=m +CONFIG_PACKAGE_freeradius3-mod-eap-fast=m +CONFIG_PACKAGE_freeradius3-mod-eap-gtc=m +CONFIG_PACKAGE_freeradius3-mod-eap-md5=m +CONFIG_PACKAGE_freeradius3-mod-eap-mschapv2=m +CONFIG_PACKAGE_freeradius3-mod-eap-peap=m +CONFIG_PACKAGE_freeradius3-mod-eap-pwd=m +CONFIG_PACKAGE_freeradius3-mod-eap-tls=m +CONFIG_PACKAGE_freeradius3-mod-eap-ttls=m +CONFIG_PACKAGE_freeradius3-mod-exec=m +CONFIG_PACKAGE_freeradius3-mod-expiration=m +CONFIG_PACKAGE_freeradius3-mod-expr=m +CONFIG_PACKAGE_freeradius3-mod-files=m +CONFIG_PACKAGE_freeradius3-mod-ippool=m +CONFIG_PACKAGE_freeradius3-mod-krb5=m +CONFIG_PACKAGE_freeradius3-mod-ldap=m +CONFIG_PACKAGE_freeradius3-mod-linelog=m +CONFIG_PACKAGE_freeradius3-mod-logintime=m +CONFIG_PACKAGE_freeradius3-mod-mschap=m +CONFIG_PACKAGE_freeradius3-mod-pam=m +CONFIG_PACKAGE_freeradius3-mod-pap=m +CONFIG_PACKAGE_freeradius3-mod-passwd=m +CONFIG_PACKAGE_freeradius3-mod-preprocess=m +CONFIG_PACKAGE_freeradius3-mod-python3=m +CONFIG_PACKAGE_freeradius3-mod-radutmp=m +CONFIG_PACKAGE_freeradius3-mod-realm=m +CONFIG_PACKAGE_freeradius3-mod-redis=m +CONFIG_PACKAGE_freeradius3-mod-rediswho=m +CONFIG_PACKAGE_freeradius3-mod-replicate=m +CONFIG_PACKAGE_freeradius3-mod-rest=m +CONFIG_PACKAGE_freeradius3-mod-soh=m +CONFIG_PACKAGE_freeradius3-mod-sometimes=m +CONFIG_PACKAGE_freeradius3-mod-sql=m +CONFIG_PACKAGE_freeradius3-mod-sql-map=m +CONFIG_PACKAGE_freeradius3-mod-sql-mysql=m +CONFIG_PACKAGE_freeradius3-mod-sql-null=m +CONFIG_PACKAGE_freeradius3-mod-sql-postgresql=m +CONFIG_PACKAGE_freeradius3-mod-sql-sqlite=m +CONFIG_PACKAGE_freeradius3-mod-sqlcounter=m +CONFIG_PACKAGE_freeradius3-mod-sqlippool=m +CONFIG_PACKAGE_freeradius3-mod-unix=m +CONFIG_PACKAGE_freeradius3-mod-unpack=m +CONFIG_PACKAGE_freeradius3-mod-utf8=m +CONFIG_PACKAGE_freeradius3-mod-wimax=m +CONFIG_PACKAGE_freeradius3-mod-yubikey=m +CONFIG_PACKAGE_freeradius3-utils=m # end of FreeRADIUS (version 3) # # IP Addresses and Names # -# CONFIG_PACKAGE_aggregate is not set -# CONFIG_PACKAGE_announce is not set -# CONFIG_PACKAGE_avahi-autoipd is not set -# CONFIG_PACKAGE_avahi-daemon-service-http is not set -# CONFIG_PACKAGE_avahi-daemon-service-ssh is not set -# CONFIG_PACKAGE_avahi-dbus-daemon is not set -# CONFIG_PACKAGE_avahi-dnsconfd is not set -# CONFIG_PACKAGE_avahi-nodbus-daemon is not set -# CONFIG_PACKAGE_avahi-utils is not set -# CONFIG_PACKAGE_bind-check is not set -# CONFIG_PACKAGE_bind-client is not set -# CONFIG_PACKAGE_bind-ddns-confgen is not set -# CONFIG_PACKAGE_bind-dig is not set -# CONFIG_PACKAGE_bind-dnssec is not set -# CONFIG_PACKAGE_bind-host is not set -# CONFIG_PACKAGE_bind-nslookup is not set -# CONFIG_PACKAGE_bind-rndc is not set -# CONFIG_PACKAGE_bind-server is not set -# CONFIG_PACKAGE_bind-tools is not set -# CONFIG_PACKAGE_ddns-scripts is not set -# CONFIG_PACKAGE_ddns-scripts-services is not set -# CONFIG_PACKAGE_dhcp-forwarder is not set -# CONFIG_PACKAGE_dhtd is not set -# CONFIG_PACKAGE_dns-over-https is not set -# CONFIG_PACKAGE_dnscrypt-proxy is not set -# CONFIG_PACKAGE_dnscrypt-proxy-resolvers is not set -# CONFIG_PACKAGE_dnsdist is not set -# CONFIG_PACKAGE_dnsdist-full is not set -# CONFIG_PACKAGE_dnslookup is not set -# CONFIG_PACKAGE_dnsproxy is not set -# CONFIG_PACKAGE_drill is not set -# CONFIG_PACKAGE_hostip is not set -# CONFIG_PACKAGE_idn is not set -# CONFIG_PACKAGE_idn2 is not set -# CONFIG_PACKAGE_inadyn is not set -# CONFIG_PACKAGE_isc-dhcp-client-ipv4 is not set -# CONFIG_PACKAGE_isc-dhcp-client-ipv6 is not set -# CONFIG_PACKAGE_isc-dhcp-omshell-ipv4 is not set -# CONFIG_PACKAGE_isc-dhcp-omshell-ipv6 is not set -# CONFIG_PACKAGE_isc-dhcp-relay-ipv4 is not set -# CONFIG_PACKAGE_isc-dhcp-relay-ipv6 is not set -# CONFIG_PACKAGE_isc-dhcp-server-ipv4 is not set -# CONFIG_PACKAGE_isc-dhcp-server-ipv6 is not set -# CONFIG_PACKAGE_kadnode is not set -# CONFIG_PACKAGE_kea-admin is not set -# CONFIG_PACKAGE_kea-ctrl is not set -# CONFIG_PACKAGE_kea-dhcp-ddns is not set -# CONFIG_PACKAGE_kea-dhcp4 is not set -# CONFIG_PACKAGE_kea-dhcp6 is not set -# CONFIG_PACKAGE_kea-hook-ha is not set -# CONFIG_PACKAGE_kea-hook-lease-cmds is not set -# CONFIG_PACKAGE_kea-lfc is not set -# CONFIG_PACKAGE_kea-libs is not set -# CONFIG_PACKAGE_kea-perfdhcp is not set -# CONFIG_PACKAGE_kea-shell is not set -# CONFIG_PACKAGE_knot is not set -# CONFIG_PACKAGE_knot-dig is not set -# CONFIG_PACKAGE_knot-host is not set -# CONFIG_PACKAGE_knot-keymgr is not set -# CONFIG_PACKAGE_knot-nsupdate is not set -# CONFIG_PACKAGE_knot-resolver is not set +CONFIG_PACKAGE_aggregate=m +CONFIG_PACKAGE_announce=m +CONFIG_PACKAGE_avahi-autoipd=m +CONFIG_PACKAGE_avahi-daemon-service-http=m +CONFIG_PACKAGE_avahi-daemon-service-ssh=m +CONFIG_PACKAGE_avahi-dbus-daemon=m +CONFIG_PACKAGE_avahi-dnsconfd=m +CONFIG_PACKAGE_avahi-nodbus-daemon=m +CONFIG_PACKAGE_avahi-utils=m +CONFIG_PACKAGE_bind-check=m +CONFIG_PACKAGE_bind-client=m +CONFIG_PACKAGE_bind-ddns-confgen=m +CONFIG_PACKAGE_bind-dig=m +CONFIG_PACKAGE_bind-dnssec=m +CONFIG_PACKAGE_bind-host=m +CONFIG_PACKAGE_bind-nslookup=m +CONFIG_PACKAGE_bind-rndc=m +CONFIG_PACKAGE_bind-server=m +# CONFIG_BIND_LIBJSON is not set +# CONFIG_BIND_LIBXML2 is not set +CONFIG_BIND_ENABLE_DOH=y +# CONFIG_BIND_ENABLE_GSSAPI is not set +CONFIG_PACKAGE_bind-server-filter-aaaa=m +CONFIG_PACKAGE_bind-tools=m +CONFIG_PACKAGE_ddns-scripts=m +CONFIG_PACKAGE_ddns-scripts-cloudflare=m +CONFIG_PACKAGE_ddns-scripts-cnkuai=m +CONFIG_PACKAGE_ddns-scripts-digitalocean=m +CONFIG_PACKAGE_ddns-scripts-dnspod=m +CONFIG_PACKAGE_ddns-scripts-freedns=m +CONFIG_PACKAGE_ddns-scripts-gandi=m +CONFIG_PACKAGE_ddns-scripts-gcp=m +CONFIG_PACKAGE_ddns-scripts-godaddy=m +CONFIG_PACKAGE_ddns-scripts-luadns=m +CONFIG_PACKAGE_ddns-scripts-noip=m +CONFIG_PACKAGE_ddns-scripts-ns1=m +CONFIG_PACKAGE_ddns-scripts-nsupdate=m +CONFIG_PACKAGE_ddns-scripts-one=m +CONFIG_PACKAGE_ddns-scripts-pdns=m +CONFIG_PACKAGE_ddns-scripts-route53=m +CONFIG_PACKAGE_ddns-scripts-services=m +CONFIG_PACKAGE_ddns-scripts-transip=m +CONFIG_PACKAGE_ddns-scripts-utils=m +CONFIG_PACKAGE_dhcp-forwarder=m +CONFIG_PACKAGE_dhtd=m +CONFIG_PACKAGE_dns-over-https=m +CONFIG_PACKAGE_dnscrypt-proxy=m + +# +# Configuration +# +# CONFIG_DNSCRYPT_ENABLE_PLUGINS is not set +# end of Configuration + +CONFIG_PACKAGE_dnscrypt-proxy-resolvers=m +CONFIG_PACKAGE_dnsdist=m + +# +# Configuration +# + +# +# SSL Support +# +# CONFIG_DNSDIST_GNUTLS is not set +CONFIG_DNSDIST_OPENSSL=y +# CONFIG_DNSDIST_NOSSL is not set + +# +# DNS over HTTPS/TLS Support +# +CONFIG_DNSDIST_DNS_OVER_HTTPS=y +CONFIG_DNSDIST_DNS_OVER_TLS=y +# CONFIG_DNSDIST_CARBON is not set +# CONFIG_DNSDIST_LMDB is not set +# CONFIG_DNSDIST_COMPLETION is not set +# CONFIG_DNSDIST_DEBUG_SYMBOLS is not set +# CONFIG_DNSDIST_DELAY_PIPE is not set +# CONFIG_DNSDIST_DYNBLOCKS is not set +# CONFIG_DNSDIST_DNSTAP is not set +# CONFIG_DNSDIST_EBPF is not set +# CONFIG_DNSDIST_ECS_ACTIONS is not set +# CONFIG_DNSDIST_HASHED is not set +# CONFIG_DNSDIST_IPCIPHER is not set +# CONFIG_DNSDIST_LIBEDIT is not set +# CONFIG_DNSDIST_LUA_ADVANCED is not set +CONFIG_DNSDIST_MAC=y +# CONFIG_DNSDIST_NET_SNMP is not set +# CONFIG_DNSDIST_OCSP_STAPLING is not set +# CONFIG_DNSDIST_PIE is not set +# CONFIG_DNSDIST_PROTOBUF is not set +# CONFIG_DNSDIST_PROMETHEUS is not set +# CONFIG_DNSDIST_RE2 is not set +# CONFIG_DNSDIST_RULES_ALTER is not set +# CONFIG_DNSDIST_SECPOLL is not set +# CONFIG_DNSDIST_SODIUM is not set +# CONFIG_DNSDIST_TOP_N is not set +# CONFIG_DNSDIST_WEB is not set +# end of Configuration + +CONFIG_PACKAGE_dnsdist-full=m +CONFIG_PACKAGE_dnslookup=m +CONFIG_PACKAGE_dnsproxy=m +CONFIG_PACKAGE_drill=m +CONFIG_PACKAGE_hostip=m +CONFIG_PACKAGE_idn=m +CONFIG_PACKAGE_idn2=m +CONFIG_PACKAGE_inadyn=m +CONFIG_PACKAGE_isc-dhcp-client-ipv4=m +CONFIG_PACKAGE_isc-dhcp-client-ipv6=m +CONFIG_PACKAGE_isc-dhcp-dyndns=m +CONFIG_PACKAGE_isc-dhcp-omshell-ipv4=m +CONFIG_PACKAGE_isc-dhcp-omshell-ipv6=m +CONFIG_PACKAGE_isc-dhcp-relay-ipv4=m +CONFIG_PACKAGE_isc-dhcp-relay-ipv6=m +CONFIG_PACKAGE_isc-dhcp-server-ipv4=m +CONFIG_PACKAGE_isc-dhcp-server-ipv6=m +CONFIG_PACKAGE_kadnode=m + +# +# Configuration +# +CONFIG_KADNODE_ENABLE_LPD=y +CONFIG_KADNODE_ENABLE_CMD=y +CONFIG_KADNODE_ENABLE_DNS=y +CONFIG_KADNODE_ENABLE_TLS=y +CONFIG_KADNODE_ENABLE_BOB=y +# CONFIG_KADNODE_ENABLE_UPNP is not set +# CONFIG_KADNODE_ENABLE_NATPMP is not set +# CONFIG_KADNODE_ENABLE_DEBUG is not set +# end of Configuration + +CONFIG_PACKAGE_kea-admin=m +CONFIG_PACKAGE_kea-ctrl=m +CONFIG_PACKAGE_kea-dhcp-ddns=m +CONFIG_PACKAGE_kea-dhcp4=m +CONFIG_PACKAGE_kea-dhcp6=m +CONFIG_PACKAGE_kea-hook-ha=m +CONFIG_PACKAGE_kea-hook-lease-cmds=m +CONFIG_PACKAGE_kea-lfc=m +CONFIG_PACKAGE_kea-libs=m +CONFIG_PACKAGE_kea-perfdhcp=m +CONFIG_PACKAGE_kea-shell=m +CONFIG_PACKAGE_kea-uci=m +CONFIG_PACKAGE_knot=m +CONFIG_PACKAGE_knot-dig=m +CONFIG_PACKAGE_knot-host=m +CONFIG_PACKAGE_knot-keymgr=m +CONFIG_PACKAGE_knot-nsupdate=m +CONFIG_PACKAGE_knot-resolver=m # # Configuration @@ -5544,49 +10460,129 @@ CONFIG_PACKAGE_xtables-nft=m # CONFIG_PACKAGE_knot-resolver_dnstap is not set # end of Configuration -# CONFIG_PACKAGE_knot-tests is not set -# CONFIG_PACKAGE_knot-zonecheck is not set -# CONFIG_PACKAGE_ldns-examples is not set -# CONFIG_PACKAGE_mdns-utils is not set -# CONFIG_PACKAGE_mdnsd is not set -# CONFIG_PACKAGE_mdnsresponder is not set -# CONFIG_PACKAGE_nsd is not set -# CONFIG_PACKAGE_nsd-control is not set -# CONFIG_PACKAGE_nsd-control-setup is not set -# CONFIG_PACKAGE_nsd-nossl is not set -# CONFIG_PACKAGE_ohybridproxy is not set -# CONFIG_PACKAGE_overture is not set -# CONFIG_PACKAGE_pdns is not set -# CONFIG_PACKAGE_pdns-ixfrdist is not set -# CONFIG_PACKAGE_pdns-recursor is not set -# CONFIG_PACKAGE_pdns-tools is not set -# CONFIG_PACKAGE_stubby is not set -# CONFIG_PACKAGE_tor-hs is not set -# CONFIG_PACKAGE_torsocks is not set -# CONFIG_PACKAGE_unbound-anchor is not set -# CONFIG_PACKAGE_unbound-checkconf is not set -# CONFIG_PACKAGE_unbound-control is not set -# CONFIG_PACKAGE_unbound-control-setup is not set -# CONFIG_PACKAGE_unbound-daemon is not set -# CONFIG_PACKAGE_unbound-host is not set -# CONFIG_PACKAGE_v2ray-geoip is not set -# CONFIG_PACKAGE_v2ray-geosite is not set -# CONFIG_PACKAGE_v2ray-geosite-ir is not set -# CONFIG_PACKAGE_wsdd2 is not set -# CONFIG_PACKAGE_zonestitcher is not set +CONFIG_PACKAGE_knot-tests=m +CONFIG_PACKAGE_knot-zonecheck=m +CONFIG_PACKAGE_ldns-examples=m +CONFIG_PACKAGE_mdns-utils=m +CONFIG_PACKAGE_mdnsd=m +CONFIG_PACKAGE_mdnsresponder=m +CONFIG_PACKAGE_nsd=m +CONFIG_PACKAGE_nsd-control=m +CONFIG_PACKAGE_nsd-control-setup=m +CONFIG_PACKAGE_nsd-nossl=m +CONFIG_PACKAGE_ohybridproxy=m +CONFIG_PACKAGE_overture=m +CONFIG_PACKAGE_pdns=m + +# +# Select PowerDNS backends +# + +# +# PowerDNS backends +# +CONFIG_PACKAGE_pdns-backend-geoip=m +CONFIG_PACKAGE_pdns-backend-mysql=m +CONFIG_PACKAGE_pdns-backend-odbc=m +CONFIG_PACKAGE_pdns-backend-pgsql=m +CONFIG_PACKAGE_pdns-backend-sqlite3=m +CONFIG_PACKAGE_pdns-backend-ldap=m +CONFIG_PACKAGE_pdns-backend-lua2=m +CONFIG_PACKAGE_pdns-backend-pipe=m +CONFIG_PACKAGE_pdns-backend-remote=m +# end of Select PowerDNS backends + +CONFIG_PACKAGE_pdns-ixfrdist=m +CONFIG_PACKAGE_pdns-recursor=m +CONFIG_PACKAGE_pdns-tools=m +CONFIG_PACKAGE_stubby=m +CONFIG_PACKAGE_tor-hs=m +CONFIG_PACKAGE_torsocks=m +CONFIG_PACKAGE_unbound-anchor=m +CONFIG_PACKAGE_unbound-checkconf=m +CONFIG_PACKAGE_unbound-control=m +CONFIG_PACKAGE_unbound-control-setup=m +CONFIG_PACKAGE_unbound-daemon=m +CONFIG_PACKAGE_unbound-host=m +CONFIG_PACKAGE_v2ray-geoip=m +CONFIG_PACKAGE_v2ray-geosite=m +CONFIG_PACKAGE_v2ray-geosite-ir=m +CONFIG_PACKAGE_wsdd2=m +CONFIG_PACKAGE_zonestitcher=m # end of IP Addresses and Names # # Instant Messaging # -# CONFIG_PACKAGE_bitlbee is not set -# CONFIG_PACKAGE_irssi is not set -# CONFIG_PACKAGE_ngircd is not set -# CONFIG_PACKAGE_ngircd-nossl is not set -# CONFIG_PACKAGE_prosody is not set -# CONFIG_PACKAGE_umurmur-mbedtls is not set -# CONFIG_PACKAGE_umurmur-openssl is not set -# CONFIG_PACKAGE_znc is not set +CONFIG_PACKAGE_bitlbee=m +CONFIG_PACKAGE_irssi=m +CONFIG_PACKAGE_ngircd=m +CONFIG_PACKAGE_ngircd-nossl=m +CONFIG_PACKAGE_prosody=m +CONFIG_PACKAGE_umurmur-mbedtls=m +CONFIG_PACKAGE_umurmur-openssl=m +CONFIG_PACKAGE_znc=m + +# +# Configuration +# +# CONFIG_ZNC_ICU is not set +# end of Configuration + +CONFIG_PACKAGE_znc-mod-adminlog=m +CONFIG_PACKAGE_znc-mod-alias=m +CONFIG_PACKAGE_znc-mod-autoattach=m +CONFIG_PACKAGE_znc-mod-autocycle=m +CONFIG_PACKAGE_znc-mod-autoop=m +CONFIG_PACKAGE_znc-mod-autoreply=m +CONFIG_PACKAGE_znc-mod-autovoice=m +CONFIG_PACKAGE_znc-mod-awaynick=m +CONFIG_PACKAGE_znc-mod-awaystore=m +CONFIG_PACKAGE_znc-mod-block-motd=m +CONFIG_PACKAGE_znc-mod-blockuser=m +CONFIG_PACKAGE_znc-mod-bouncedcc=m +CONFIG_PACKAGE_znc-mod-buffextras=m +CONFIG_PACKAGE_znc-mod-cert=m +CONFIG_PACKAGE_znc-mod-certauth=m +CONFIG_PACKAGE_znc-mod-chansaver=m +CONFIG_PACKAGE_znc-mod-clearbufferonmsg=m +CONFIG_PACKAGE_znc-mod-clientnotify=m +CONFIG_PACKAGE_znc-mod-controlpanel=m +CONFIG_PACKAGE_znc-mod-crypt=m +CONFIG_PACKAGE_znc-mod-ctcpflood=m +CONFIG_PACKAGE_znc-mod-dcc=m +CONFIG_PACKAGE_znc-mod-disconkick=m +CONFIG_PACKAGE_znc-mod-fail2ban=m +CONFIG_PACKAGE_znc-mod-flooddetach=m +CONFIG_PACKAGE_znc-mod-identfile=m +CONFIG_PACKAGE_znc-mod-imapauth=m +CONFIG_PACKAGE_znc-mod-keepnick=m +CONFIG_PACKAGE_znc-mod-kickrejoin=m +CONFIG_PACKAGE_znc-mod-lastseen=m +CONFIG_PACKAGE_znc-mod-listsockets=m +CONFIG_PACKAGE_znc-mod-log=m +CONFIG_PACKAGE_znc-mod-missingmotd=m +CONFIG_PACKAGE_znc-mod-modules_online=m +CONFIG_PACKAGE_znc-mod-nickserv=m +CONFIG_PACKAGE_znc-mod-notes=m +CONFIG_PACKAGE_znc-mod-notify-connect=m +CONFIG_PACKAGE_znc-mod-perform=m +CONFIG_PACKAGE_znc-mod-playback=m +CONFIG_PACKAGE_znc-mod-push=m +CONFIG_PACKAGE_znc-mod-raw=m +CONFIG_PACKAGE_znc-mod-route-replies=m +CONFIG_PACKAGE_znc-mod-sasl=m +CONFIG_PACKAGE_znc-mod-savebuff=m +CONFIG_PACKAGE_znc-mod-schat=m +CONFIG_PACKAGE_znc-mod-send-raw=m +CONFIG_PACKAGE_znc-mod-shell=m +CONFIG_PACKAGE_znc-mod-simple-away=m +CONFIG_PACKAGE_znc-mod-stickychan=m +CONFIG_PACKAGE_znc-mod-watch=m +CONFIG_PACKAGE_znc-mod-webadmin=m +CONFIG_PACKAGE_znc-webskin-dark-clouds=m +CONFIG_PACKAGE_znc-webskin-forest=m +CONFIG_PACKAGE_znc-webskin-ice=m # end of Instant Messaging # @@ -5623,130 +10619,228 @@ CONFIG_PACKAGE_xtables-nft=m # # LoRaWAN # -# CONFIG_PACKAGE_basicstation is not set -# CONFIG_PACKAGE_libloragw-tests is not set -# CONFIG_PACKAGE_libloragw-utils is not set +CONFIG_PACKAGE_basicstation=m +CONFIG_PACKAGE_libloragw-tests=m +CONFIG_PACKAGE_libloragw-utils=m # end of LoRaWAN # # NMAP Suite # -# CONFIG_PACKAGE_ncat is not set -# CONFIG_PACKAGE_ncat-full is not set -# CONFIG_PACKAGE_ncat-ssl is not set -# CONFIG_PACKAGE_ndiff is not set -# CONFIG_PACKAGE_nmap is not set -# CONFIG_PACKAGE_nmap-full is not set -# CONFIG_PACKAGE_nmap-ssl is not set -# CONFIG_PACKAGE_nping is not set -# CONFIG_PACKAGE_nping-ssl is not set +CONFIG_PACKAGE_ncat=m +CONFIG_PACKAGE_ncat-full=m +CONFIG_PACKAGE_ncat-ssl=m +CONFIG_PACKAGE_ndiff=m +CONFIG_PACKAGE_ndiff-src=m +CONFIG_PACKAGE_nmap=m +CONFIG_PACKAGE_nmap-full=m +CONFIG_PACKAGE_nmap-ssl=m +CONFIG_PACKAGE_nping=m +CONFIG_PACKAGE_nping-ssl=m # end of NMAP Suite # # NTRIP # -# CONFIG_PACKAGE_ntripcaster is not set -# CONFIG_PACKAGE_ntripclient is not set -# CONFIG_PACKAGE_ntripserver is not set +CONFIG_PACKAGE_ntripcaster=m +CONFIG_PACKAGE_ntripclient=m +CONFIG_PACKAGE_ntripserver=m # end of NTRIP # # OLSR.org network framework # -# CONFIG_PACKAGE_oonf-dlep-proxy is not set -# CONFIG_PACKAGE_oonf-dlep-radio is not set -# CONFIG_PACKAGE_oonf-init-scripts is not set -# CONFIG_PACKAGE_oonf-olsrd2 is not set +CONFIG_PACKAGE_oonf-dlep-proxy=m +CONFIG_PACKAGE_oonf-dlep-radio=m +CONFIG_PACKAGE_oonf-init-scripts=m +CONFIG_PACKAGE_oonf-olsrd2=m + +# +# Optional Plugins +# +# CONFIG_OONF_NHDP_AUTOLL4 is not set +CONFIG_OONF_OLSRV2_LAN_IMPORT=y +CONFIG_OONF_OLSRV2_ROUTE_MODIFIER=y +# CONFIG_OONF_GENERIC_DLEP_ROUTER is not set +CONFIG_OONF_GENERIC_REMOTECONTROL=y +# CONFIG_OONF_GENERIC_HTTP is not set +CONFIG_OONF_OLSRV2_MPR=y +CONFIG_OONF_OLSRV2_LAN=y +# CONFIG_OONF_OLSRV2_OLD_LAN is not set +# end of Optional Plugins # end of OLSR.org network framework # # Open vSwitch # -# CONFIG_PACKAGE_openvswitch is not set -# CONFIG_PACKAGE_openvswitch-ovn-host is not set -# CONFIG_PACKAGE_openvswitch-ovn-north is not set -# CONFIG_PACKAGE_openvswitch-python3 is not set -# CONFIG_PACKAGE_ovsd is not set +CONFIG_PACKAGE_openvswitch=m + +# +# Configuration +# +CONFIG_OPENVSWITCH_WITH_LIBUNBOUND=y +# end of Configuration + +CONFIG_PACKAGE_openvswitch-common=m +CONFIG_PACKAGE_openvswitch-libofproto=m +CONFIG_PACKAGE_openvswitch-libopenvswitch=m +CONFIG_PACKAGE_openvswitch-libovn=m +CONFIG_PACKAGE_openvswitch-libovsdb=m +CONFIG_PACKAGE_openvswitch-ovn-common=m +CONFIG_PACKAGE_openvswitch-ovn-host=m +CONFIG_PACKAGE_openvswitch-ovn-north=m +CONFIG_PACKAGE_openvswitch-ovsdb=m +CONFIG_PACKAGE_openvswitch-python3=m +CONFIG_PACKAGE_openvswitch-vswitchd=m +CONFIG_PACKAGE_ovsd=m # end of Open vSwitch # # OpenLDAP # -# CONFIG_PACKAGE_libopenldap is not set -# CONFIG_PACKAGE_openldap-server is not set -# CONFIG_PACKAGE_openldap-utils is not set +CONFIG_PACKAGE_libopenldap=m +CONFIG_PACKAGE_openldap-server=m +CONFIG_PACKAGE_openldap-utils=m # end of OpenLDAP # # Printing # -# CONFIG_PACKAGE_p910nd is not set +CONFIG_PACKAGE_p910nd=m # end of Printing # # Routing and Redirection # -# CONFIG_PACKAGE_babel-pinger is not set -# CONFIG_PACKAGE_babeld is not set -# CONFIG_PACKAGE_batmand is not set -# CONFIG_PACKAGE_bcp38 is not set -# CONFIG_PACKAGE_bfdd is not set -# CONFIG_PACKAGE_bird2 is not set -# CONFIG_PACKAGE_bird2c is not set -# CONFIG_PACKAGE_bird2cl is not set -# CONFIG_PACKAGE_bmx7 is not set -# CONFIG_PACKAGE_cjdns is not set -# CONFIG_PACKAGE_cjdns-tests is not set -# CONFIG_PACKAGE_dcstad is not set -# CONFIG_PACKAGE_dcwapd is not set +CONFIG_PACKAGE_babel-pinger=m +CONFIG_PACKAGE_babeld=m +CONFIG_PACKAGE_batmand=m +CONFIG_PACKAGE_bcp38=m +CONFIG_PACKAGE_bfdd=m +CONFIG_PACKAGE_bird2=m +CONFIG_PACKAGE_bird2c=m +CONFIG_PACKAGE_bird2cl=m +CONFIG_PACKAGE_bmx7=m +CONFIG_PACKAGE_bmx7-iwinfo=m +CONFIG_PACKAGE_bmx7-json=m +CONFIG_PACKAGE_bmx7-sms=m +CONFIG_PACKAGE_bmx7-table=m +CONFIG_PACKAGE_bmx7-topology=m +CONFIG_PACKAGE_bmx7-tun=m +CONFIG_PACKAGE_bmx7-uci-config=m +CONFIG_PACKAGE_cjdns=m +CONFIG_PACKAGE_cjdns-tests=m +CONFIG_PACKAGE_dcstad=m +CONFIG_PACKAGE_dcwapd=m # CONFIG_PACKAGE_devlink is not set -# CONFIG_PACKAGE_frr is not set +CONFIG_PACKAGE_frr=m +CONFIG_PACKAGE_frr-libfrr=m + +# +# SSL support +# +# CONFIG_FRR_OPENSSL is not set +CONFIG_FRR_INTERNAL=y + +# +# SNMP support +# +# CONFIG_FRR_SNMP is not set +CONFIG_FRR_NO_SNMP=y + +# +# Packages +# +CONFIG_PACKAGE_frr-babeld=m +CONFIG_PACKAGE_frr-bfdd=m +CONFIG_PACKAGE_frr-bgpd=m +CONFIG_PACKAGE_frr-eigrpd=m +CONFIG_PACKAGE_frr-fabricd=m +CONFIG_PACKAGE_frr-isisd=m +CONFIG_PACKAGE_frr-ldpd=m +CONFIG_PACKAGE_frr-nhrpd=m +CONFIG_PACKAGE_frr-ospf6d=m +CONFIG_PACKAGE_frr-ospfd=m +CONFIG_PACKAGE_frr-pathd=m +CONFIG_PACKAGE_frr-pbrd=m +CONFIG_PACKAGE_frr-pimd=m +CONFIG_PACKAGE_frr-pythontools=m +CONFIG_PACKAGE_frr-ripd=m +CONFIG_PACKAGE_frr-ripngd=m +CONFIG_PACKAGE_frr-staticd=m +CONFIG_PACKAGE_frr-vrrpd=m +CONFIG_PACKAGE_frr-vtysh=m +CONFIG_PACKAGE_frr-watchfrr=m +CONFIG_PACKAGE_frr-zebra=m # CONFIG_PACKAGE_genl is not set -# CONFIG_PACKAGE_igmpproxy is not set +CONFIG_PACKAGE_igmpproxy=m # CONFIG_PACKAGE_ip-bridge is not set -# CONFIG_PACKAGE_ip-full is not set +CONFIG_PACKAGE_ip-full=m # CONFIG_PACKAGE_ip-tiny is not set # CONFIG_PACKAGE_lldpd is not set -# CONFIG_PACKAGE_mcproxy is not set -# CONFIG_PACKAGE_mrmctl is not set -# CONFIG_PACKAGE_mwan3 is not set +CONFIG_PACKAGE_mcproxy=m +CONFIG_PACKAGE_mrmctl=m +CONFIG_PACKAGE_mwan3=m # CONFIG_PACKAGE_nstat is not set -# CONFIG_PACKAGE_olsrd is not set -# CONFIG_PACKAGE_pbr is not set -# CONFIG_PACKAGE_pbr-iptables is not set -# CONFIG_PACKAGE_prince is not set +CONFIG_PACKAGE_olsrd=m +CONFIG_PACKAGE_olsrd-mod-arprefresh=m +CONFIG_PACKAGE_olsrd-mod-bmf=m +CONFIG_PACKAGE_olsrd-mod-dot-draw=m +CONFIG_PACKAGE_olsrd-mod-dyn-gw=m +CONFIG_PACKAGE_olsrd-mod-dyn-gw-plain=m +CONFIG_PACKAGE_olsrd-mod-filtergw=m +CONFIG_PACKAGE_olsrd-mod-httpinfo=m +CONFIG_PACKAGE_olsrd-mod-jsoninfo=m +CONFIG_PACKAGE_olsrd-mod-mdns=m +CONFIG_PACKAGE_olsrd-mod-nameservice=m +CONFIG_PACKAGE_olsrd-mod-netjson=m +CONFIG_PACKAGE_olsrd-mod-p2pd=m +CONFIG_PACKAGE_olsrd-mod-pgraph=m +CONFIG_PACKAGE_olsrd-mod-pud=m +CONFIG_PACKAGE_olsrd-mod-quagga=m +CONFIG_PACKAGE_olsrd-mod-secure=m +CONFIG_PACKAGE_olsrd-mod-sgwdynspeed=m +CONFIG_PACKAGE_olsrd-mod-txtinfo=m +CONFIG_PACKAGE_olsrd-mod-watchdog=m +CONFIG_PACKAGE_olsrd-utils=m +CONFIG_PACKAGE_pbr=m +CONFIG_PACKAGE_pbr-iptables=m +CONFIG_PACKAGE_prince=m # CONFIG_PACKAGE_rdma is not set -# CONFIG_PACKAGE_relayd is not set -# CONFIG_PACKAGE_smcroute is not set -# CONFIG_PACKAGE_ss is not set -# CONFIG_PACKAGE_sslh is not set +CONFIG_PACKAGE_relayd=m +CONFIG_PACKAGE_smcroute=m +CONFIG_PACKAGE_ss=m +CONFIG_PACKAGE_sslh=m +# CONFIG_SSLH_SELECT is not set # CONFIG_PACKAGE_tc-bpf is not set # CONFIG_PACKAGE_tc-full is not set # CONFIG_PACKAGE_tc-mod-iptables is not set CONFIG_PACKAGE_tc-tiny=m -# CONFIG_PACKAGE_tcpproxy is not set -# CONFIG_PACKAGE_udp-broadcast-relay-redux is not set -# CONFIG_PACKAGE_vis is not set -# CONFIG_PACKAGE_yggdrasil is not set +CONFIG_PACKAGE_tcpproxy=m +CONFIG_PACKAGE_udp-broadcast-relay-redux=m +CONFIG_PACKAGE_vis=m +CONFIG_PACKAGE_yggdrasil=m # end of Routing and Redirection # # SSH # -# CONFIG_PACKAGE_autossh is not set -# CONFIG_PACKAGE_mosh-client is not set -# CONFIG_PACKAGE_mosh-server is not set -# CONFIG_PACKAGE_openssh-client is not set -# CONFIG_PACKAGE_openssh-client-utils is not set -# CONFIG_PACKAGE_openssh-keygen is not set -# CONFIG_PACKAGE_openssh-moduli is not set -# CONFIG_PACKAGE_openssh-server is not set -# CONFIG_PACKAGE_openssh-server-pam is not set -# CONFIG_PACKAGE_openssh-sftp-avahi-service is not set -# CONFIG_PACKAGE_openssh-sftp-client is not set -# CONFIG_PACKAGE_openssh-sftp-server is not set -# CONFIG_PACKAGE_sshtunnel is not set -# CONFIG_PACKAGE_tmate is not set +CONFIG_PACKAGE_autossh=m +CONFIG_PACKAGE_mosh-client=m +CONFIG_PACKAGE_mosh-full=m +CONFIG_PACKAGE_mosh-server=m +CONFIG_PACKAGE_openssh-client=m +CONFIG_PACKAGE_openssh-client-utils=m +CONFIG_PACKAGE_openssh-keygen=m +CONFIG_PACKAGE_openssh-moduli=m +CONFIG_PACKAGE_openssh-server=m +CONFIG_OPENSSH_LIBFIDO2=y +CONFIG_PACKAGE_openssh-server-pam=m +CONFIG_PACKAGE_openssh-sftp-avahi-service=m +CONFIG_PACKAGE_openssh-sftp-client=m +CONFIG_PACKAGE_openssh-sftp-server=m +CONFIG_PACKAGE_sshtunnel=m +CONFIG_PACKAGE_tmate=m # end of SSH # @@ -5812,32 +10906,327 @@ CONFIG_PACKAGE_tc-tiny=m # # Tcpreplay # -# CONFIG_PACKAGE_tcpbridge is not set -# CONFIG_PACKAGE_tcpcapinfo is not set -# CONFIG_PACKAGE_tcpliveplay is not set -# CONFIG_PACKAGE_tcpprep is not set -# CONFIG_PACKAGE_tcpreplay is not set -# CONFIG_PACKAGE_tcpreplay-all is not set -# CONFIG_PACKAGE_tcpreplay-edit is not set -# CONFIG_PACKAGE_tcprewrite is not set +CONFIG_PACKAGE_tcpbridge=m +CONFIG_PACKAGE_tcpcapinfo=m +CONFIG_PACKAGE_tcpliveplay=m +CONFIG_PACKAGE_tcpprep=m +CONFIG_PACKAGE_tcpreplay=m +CONFIG_PACKAGE_tcpreplay-all=m +CONFIG_PACKAGE_tcpreplay-edit=m +CONFIG_PACKAGE_tcprewrite=m # end of Tcpreplay # # Telephony # # CONFIG_PACKAGE_asterisk is not set -# CONFIG_PACKAGE_baresip is not set -# CONFIG_PACKAGE_coturn is not set +CONFIG_PACKAGE_baresip=m +CONFIG_PACKAGE_baresip-mod-aac=m +CONFIG_PACKAGE_baresip-mod-alsa=m +CONFIG_PACKAGE_baresip-mod-amr=m +CONFIG_PACKAGE_baresip-mod-aubridge=m +CONFIG_PACKAGE_baresip-mod-aufile=m +CONFIG_PACKAGE_baresip-mod-ausine=m +CONFIG_PACKAGE_baresip-mod-avcodec=m +CONFIG_PACKAGE_baresip-mod-avformat=m +CONFIG_PACKAGE_baresip-mod-b2bua=m +CONFIG_PACKAGE_baresip-mod-cons=m +CONFIG_PACKAGE_baresip-mod-ctrl-dbus=m +CONFIG_PACKAGE_baresip-mod-ctrl-tcp=m +CONFIG_PACKAGE_baresip-mod-debug-cmd=m +CONFIG_PACKAGE_baresip-mod-dtls-srtp=m +CONFIG_PACKAGE_baresip-mod-ebuacip=m +CONFIG_PACKAGE_baresip-mod-echo=m +CONFIG_PACKAGE_baresip-mod-evdev=m +CONFIG_PACKAGE_baresip-mod-fakevideo=m +CONFIG_PACKAGE_baresip-mod-g711=m +CONFIG_PACKAGE_baresip-mod-g722=m +CONFIG_PACKAGE_baresip-mod-g726=m +CONFIG_PACKAGE_baresip-mod-gst=m +CONFIG_PACKAGE_baresip-mod-gst-video=m +CONFIG_PACKAGE_baresip-mod-httpd=m +CONFIG_PACKAGE_baresip-mod-httpreq=m +CONFIG_PACKAGE_baresip-mod-l16=m +CONFIG_PACKAGE_baresip-mod-mixausrc=m +CONFIG_PACKAGE_baresip-mod-mqtt=m +CONFIG_PACKAGE_baresip-mod-multicast=m +CONFIG_PACKAGE_baresip-mod-mwi=m +CONFIG_PACKAGE_baresip-mod-natpmp=m +CONFIG_PACKAGE_baresip-mod-opus=m +CONFIG_PACKAGE_baresip-mod-opus-multistream=m +CONFIG_PACKAGE_baresip-mod-oss=m +CONFIG_PACKAGE_baresip-mod-plc=m +CONFIG_PACKAGE_baresip-mod-portaudio=m +CONFIG_PACKAGE_baresip-mod-presence=m +CONFIG_PACKAGE_baresip-mod-pulse=m +CONFIG_PACKAGE_baresip-mod-rtcpsummary=m +CONFIG_PACKAGE_baresip-mod-selfview=m +CONFIG_PACKAGE_baresip-mod-serreg=m +CONFIG_PACKAGE_baresip-mod-snapshot=m +CONFIG_PACKAGE_baresip-mod-sndfile=m +CONFIG_PACKAGE_baresip-mod-speex-pp=m +CONFIG_PACKAGE_baresip-mod-srtp=m +CONFIG_PACKAGE_baresip-mod-stdio=m +CONFIG_PACKAGE_baresip-mod-syslog=m +CONFIG_PACKAGE_baresip-mod-uuid=m +CONFIG_PACKAGE_baresip-mod-v4l2=m +CONFIG_PACKAGE_baresip-mod-v4l2-codec=m +CONFIG_PACKAGE_baresip-mod-vidbridge=m +CONFIG_PACKAGE_baresip-mod-vidinfo=m +CONFIG_PACKAGE_baresip-mod-vidloop=m +CONFIG_PACKAGE_baresip-mod-vp8=m +CONFIG_PACKAGE_baresip-mod-vp9=m +CONFIG_PACKAGE_baresip-mod-vumeter=m +CONFIG_PACKAGE_coturn=m + +# +# coturn configuration +# +CONFIG_COTURN_ENABLE_SQLITE=y +# CONFIG_COTURN_ENABLE_MYSQL is not set +# CONFIG_COTURN_ENABLE_POSTGRESQL is not set +# CONFIG_COTURN_ENABLE_REDIS is not set +# end of coturn configuration + # CONFIG_PACKAGE_freeswitch is not set -# CONFIG_PACKAGE_kamailio is not set -# CONFIG_PACKAGE_miax is not set -# CONFIG_PACKAGE_pcapsipdump is not set -# CONFIG_PACKAGE_rtpengine is not set -# CONFIG_PACKAGE_rtpengine-no-transcode is not set -# CONFIG_PACKAGE_rtpengine-recording is not set -# CONFIG_PACKAGE_rtpproxy is not set -# CONFIG_PACKAGE_sipp is not set -# CONFIG_PACKAGE_siproxd is not set +CONFIG_PACKAGE_kamailio=m +CONFIG_PACKAGE_kamailio-lib-libkamailio-ims=m +CONFIG_PACKAGE_kamailio-lib-libtrie=m +CONFIG_PACKAGE_kamailio-mod-acc=m +CONFIG_PACKAGE_kamailio-mod-acc-diameter=m +CONFIG_PACKAGE_kamailio-mod-acc-json=m +CONFIG_PACKAGE_kamailio-mod-alias-db=m +CONFIG_PACKAGE_kamailio-mod-app-jsdt=m +CONFIG_PACKAGE_kamailio-mod-app-lua=m +CONFIG_PACKAGE_kamailio-mod-app-lua-sr=m +CONFIG_PACKAGE_kamailio-mod-app-python3=m +CONFIG_PACKAGE_kamailio-mod-app-ruby=m +CONFIG_PACKAGE_kamailio-mod-app-sqlang=m +CONFIG_PACKAGE_kamailio-mod-async=m +CONFIG_PACKAGE_kamailio-mod-auth=m +CONFIG_PACKAGE_kamailio-mod-auth-db=m +CONFIG_PACKAGE_kamailio-mod-auth-diameter=m +CONFIG_PACKAGE_kamailio-mod-auth-ephemeral=m +CONFIG_PACKAGE_kamailio-mod-auth-identity=m +CONFIG_PACKAGE_kamailio-mod-auth-xkeys=m +CONFIG_PACKAGE_kamailio-mod-avp=m +CONFIG_PACKAGE_kamailio-mod-avpops=m +CONFIG_PACKAGE_kamailio-mod-benchmark=m +CONFIG_PACKAGE_kamailio-mod-blst=m +CONFIG_PACKAGE_kamailio-mod-call-control=m +CONFIG_PACKAGE_kamailio-mod-call-obj=m +CONFIG_PACKAGE_kamailio-mod-carrierroute=m +CONFIG_PACKAGE_kamailio-mod-cdp=m +CONFIG_PACKAGE_kamailio-mod-cdp-avp=m +CONFIG_PACKAGE_kamailio-mod-cfg-db=m +CONFIG_PACKAGE_kamailio-mod-cfg-rpc=m +CONFIG_PACKAGE_kamailio-mod-cfgt=m +CONFIG_PACKAGE_kamailio-mod-cfgutils=m +CONFIG_PACKAGE_kamailio-mod-cnxcc=m +CONFIG_PACKAGE_kamailio-mod-corex=m +CONFIG_PACKAGE_kamailio-mod-counters=m +CONFIG_PACKAGE_kamailio-mod-cplc=m +CONFIG_PACKAGE_kamailio-mod-crypto=m +CONFIG_PACKAGE_kamailio-mod-ctl=m +CONFIG_PACKAGE_kamailio-mod-db-berkeley=m +CONFIG_PACKAGE_kamailio-mod-db-cluster=m +CONFIG_PACKAGE_kamailio-mod-db-flatstore=m +CONFIG_PACKAGE_kamailio-mod-db-mysql=m +CONFIG_PACKAGE_kamailio-mod-db-postgres=m +CONFIG_PACKAGE_kamailio-mod-db-redis=m +CONFIG_PACKAGE_kamailio-mod-db-sqlite=m +CONFIG_PACKAGE_kamailio-mod-db-text=m +CONFIG_PACKAGE_kamailio-mod-db-unixodbc=m +CONFIG_PACKAGE_kamailio-mod-db2-ldap=m +CONFIG_PACKAGE_kamailio-mod-db2-ops=m +CONFIG_PACKAGE_kamailio-mod-debugger=m +CONFIG_PACKAGE_kamailio-mod-dialog=m +CONFIG_PACKAGE_kamailio-mod-dialplan=m +CONFIG_PACKAGE_kamailio-mod-dispatcher=m +CONFIG_PACKAGE_kamailio-mod-diversion=m +CONFIG_PACKAGE_kamailio-mod-dlgs=m +CONFIG_PACKAGE_kamailio-mod-dmq=m +CONFIG_PACKAGE_kamailio-mod-dmq-usrloc=m +CONFIG_PACKAGE_kamailio-mod-domain=m +CONFIG_PACKAGE_kamailio-mod-domainpolicy=m +CONFIG_PACKAGE_kamailio-mod-drouting=m +CONFIG_PACKAGE_kamailio-mod-enum=m +CONFIG_PACKAGE_kamailio-mod-evapi=m +CONFIG_PACKAGE_kamailio-mod-evrexec=m +CONFIG_PACKAGE_kamailio-mod-exec=m +CONFIG_PACKAGE_kamailio-mod-group=m +CONFIG_PACKAGE_kamailio-mod-gzcompress=m +CONFIG_PACKAGE_kamailio-mod-h350=m +CONFIG_PACKAGE_kamailio-mod-htable=m +CONFIG_PACKAGE_kamailio-mod-http-client=m +CONFIG_PACKAGE_kamailio-mod-imc=m +CONFIG_PACKAGE_kamailio-mod-ims-auth=m +CONFIG_PACKAGE_kamailio-mod-ims-charging=m +CONFIG_PACKAGE_kamailio-mod-ims-dialog=m +CONFIG_PACKAGE_kamailio-mod-ims-diameter-server=m +CONFIG_PACKAGE_kamailio-mod-ims-icscf=m +CONFIG_PACKAGE_kamailio-mod-ims-ipsec-pcscf=m +CONFIG_PACKAGE_kamailio-mod-ims-isc=m +CONFIG_PACKAGE_kamailio-mod-ims-ocs=m +CONFIG_PACKAGE_kamailio-mod-ims-qos=m +CONFIG_PACKAGE_kamailio-mod-ims-registrar-pcscf=m +CONFIG_PACKAGE_kamailio-mod-ims-registrar-scscf=m +CONFIG_PACKAGE_kamailio-mod-ims-usrloc-pcscf=m +CONFIG_PACKAGE_kamailio-mod-ims-usrloc-scscf=m +CONFIG_PACKAGE_kamailio-mod-ipops=m +CONFIG_PACKAGE_kamailio-mod-jansson=m +CONFIG_PACKAGE_kamailio-mod-janssonrpcc=m +CONFIG_PACKAGE_kamailio-mod-json=m +CONFIG_PACKAGE_kamailio-mod-jsonrpcs=m +CONFIG_PACKAGE_kamailio-mod-keepalive=m +CONFIG_PACKAGE_kamailio-mod-kemix=m +CONFIG_PACKAGE_kamailio-mod-kex=m +CONFIG_PACKAGE_kamailio-mod-lcr=m +CONFIG_PACKAGE_kamailio-mod-ldap=m +CONFIG_PACKAGE_kamailio-mod-log-custom=m +CONFIG_PACKAGE_kamailio-mod-lost=m +CONFIG_PACKAGE_kamailio-mod-lrkproxy=m +CONFIG_PACKAGE_kamailio-mod-mangler=m +CONFIG_PACKAGE_kamailio-mod-matrix=m +CONFIG_PACKAGE_kamailio-mod-maxfwd=m +CONFIG_PACKAGE_kamailio-mod-mediaproxy=m +CONFIG_PACKAGE_kamailio-mod-misctest=m +CONFIG_PACKAGE_kamailio-mod-mohqueue=m +CONFIG_PACKAGE_kamailio-mod-mqueue=m +CONFIG_PACKAGE_kamailio-mod-msilo=m +CONFIG_PACKAGE_kamailio-mod-msrp=m +CONFIG_PACKAGE_kamailio-mod-mtree=m +CONFIG_PACKAGE_kamailio-mod-nat-traversal=m +CONFIG_PACKAGE_kamailio-mod-nathelper=m +CONFIG_PACKAGE_kamailio-mod-ndb-redis=m +CONFIG_PACKAGE_kamailio-mod-nosip=m +CONFIG_PACKAGE_kamailio-mod-outbound=m +CONFIG_PACKAGE_kamailio-mod-p-usrloc=m +CONFIG_PACKAGE_kamailio-mod-path=m +CONFIG_PACKAGE_kamailio-mod-pdb=m +CONFIG_PACKAGE_kamailio-mod-pdt=m +CONFIG_PACKAGE_kamailio-mod-permissions=m +CONFIG_PACKAGE_kamailio-mod-pike=m +CONFIG_PACKAGE_kamailio-mod-pipelimit=m +CONFIG_PACKAGE_kamailio-mod-posops=m +CONFIG_PACKAGE_kamailio-mod-prefix-route=m +CONFIG_PACKAGE_kamailio-mod-presence=m +CONFIG_PACKAGE_kamailio-mod-presence-conference=m +CONFIG_PACKAGE_kamailio-mod-presence-dialoginfo=m +CONFIG_PACKAGE_kamailio-mod-presence-mwi=m +CONFIG_PACKAGE_kamailio-mod-presence-profile=m +CONFIG_PACKAGE_kamailio-mod-presence-reginfo=m +CONFIG_PACKAGE_kamailio-mod-presence-xml=m +CONFIG_PACKAGE_kamailio-mod-pua=m +CONFIG_PACKAGE_kamailio-mod-pua-bla=m +CONFIG_PACKAGE_kamailio-mod-pua-dialoginfo=m +CONFIG_PACKAGE_kamailio-mod-pua-json=m +CONFIG_PACKAGE_kamailio-mod-pua-reginfo=m +CONFIG_PACKAGE_kamailio-mod-pua-rpc=m +CONFIG_PACKAGE_kamailio-mod-pua-usrloc=m +CONFIG_PACKAGE_kamailio-mod-pua-xmpp=m +CONFIG_PACKAGE_kamailio-mod-pv=m +CONFIG_PACKAGE_kamailio-mod-pv-headers=m +CONFIG_PACKAGE_kamailio-mod-qos=m +CONFIG_PACKAGE_kamailio-mod-ratelimit=m +CONFIG_PACKAGE_kamailio-mod-regex=m +CONFIG_PACKAGE_kamailio-mod-registrar=m +CONFIG_PACKAGE_kamailio-mod-rls=m +CONFIG_PACKAGE_kamailio-mod-rr=m +CONFIG_PACKAGE_kamailio-mod-rtimer=m +CONFIG_PACKAGE_kamailio-mod-rtjson=m +CONFIG_PACKAGE_kamailio-mod-rtpengine=m +CONFIG_PACKAGE_kamailio-mod-rtpproxy=m +CONFIG_PACKAGE_kamailio-mod-sanity=m +CONFIG_PACKAGE_kamailio-mod-sca=m +CONFIG_PACKAGE_kamailio-mod-sctp=m +CONFIG_PACKAGE_kamailio-mod-sdpops=m +CONFIG_PACKAGE_kamailio-mod-seas=m +CONFIG_PACKAGE_kamailio-mod-secfilter=m +CONFIG_PACKAGE_kamailio-mod-sipcapture=m +CONFIG_PACKAGE_kamailio-mod-sipdump=m +CONFIG_PACKAGE_kamailio-mod-siprepo=m +CONFIG_PACKAGE_kamailio-mod-sipt=m +CONFIG_PACKAGE_kamailio-mod-siptrace=m +CONFIG_PACKAGE_kamailio-mod-siputils=m +CONFIG_PACKAGE_kamailio-mod-sl=m +CONFIG_PACKAGE_kamailio-mod-slack=m +CONFIG_PACKAGE_kamailio-mod-sms=m +CONFIG_PACKAGE_kamailio-mod-smsops=m +CONFIG_PACKAGE_kamailio-mod-snmpstats=m +CONFIG_PACKAGE_kamailio-mod-speeddial=m +CONFIG_PACKAGE_kamailio-mod-sqlops=m +CONFIG_PACKAGE_kamailio-mod-ss7ops=m +CONFIG_PACKAGE_kamailio-mod-sst=m +CONFIG_PACKAGE_kamailio-mod-statistics=m +CONFIG_PACKAGE_kamailio-mod-statsc=m +CONFIG_PACKAGE_kamailio-mod-statsd=m +CONFIG_PACKAGE_kamailio-mod-stun=m +CONFIG_PACKAGE_kamailio-mod-tcpops=m +CONFIG_PACKAGE_kamailio-mod-textops=m +CONFIG_PACKAGE_kamailio-mod-textopsx=m +CONFIG_PACKAGE_kamailio-mod-timer=m +CONFIG_PACKAGE_kamailio-mod-tls=m +CONFIG_PACKAGE_kamailio-mod-tm=m +CONFIG_PACKAGE_kamailio-mod-tmrec=m +CONFIG_PACKAGE_kamailio-mod-tmx=m +CONFIG_PACKAGE_kamailio-mod-topoh=m +CONFIG_PACKAGE_kamailio-mod-topos=m +CONFIG_PACKAGE_kamailio-mod-topos-redis=m +CONFIG_PACKAGE_kamailio-mod-tsilo=m +CONFIG_PACKAGE_kamailio-mod-uac=m +CONFIG_PACKAGE_kamailio-mod-uac-redirect=m +CONFIG_PACKAGE_kamailio-mod-uid-auth-db=m +CONFIG_PACKAGE_kamailio-mod-uid-avp-db=m +CONFIG_PACKAGE_kamailio-mod-uid-domain=m +CONFIG_PACKAGE_kamailio-mod-uid-gflags=m +CONFIG_PACKAGE_kamailio-mod-uid-uri-db=m +CONFIG_PACKAGE_kamailio-mod-uri-db=m +CONFIG_PACKAGE_kamailio-mod-userblocklist=m +CONFIG_PACKAGE_kamailio-mod-usrloc=m +CONFIG_PACKAGE_kamailio-mod-utils=m +CONFIG_PACKAGE_kamailio-mod-uuid=m +CONFIG_PACKAGE_kamailio-mod-websocket=m +CONFIG_PACKAGE_kamailio-mod-xcap-client=m +CONFIG_PACKAGE_kamailio-mod-xcap-server=m +CONFIG_PACKAGE_kamailio-mod-xhttp=m +CONFIG_PACKAGE_kamailio-mod-xhttp-pi=m +CONFIG_PACKAGE_kamailio-mod-xhttp-prom=m +CONFIG_PACKAGE_kamailio-mod-xhttp-rpc=m +CONFIG_PACKAGE_kamailio-mod-xlog=m +CONFIG_PACKAGE_kamailio-mod-xmlops=m +CONFIG_PACKAGE_kamailio-mod-xmlrpc=m +CONFIG_PACKAGE_kamailio-mod-xmpp=m +CONFIG_PACKAGE_kamailio-mod-xprint=m +CONFIG_PACKAGE_kamailio-util-kambdb-recover=m +CONFIG_PACKAGE_miax=m +CONFIG_PACKAGE_pcapsipdump=m +CONFIG_PACKAGE_rtpengine=m +CONFIG_PACKAGE_rtpengine-no-transcode=m +CONFIG_PACKAGE_rtpengine-recording=m +CONFIG_PACKAGE_rtpproxy=m +CONFIG_PACKAGE_rtpproxy-mod-acct-csv=m +CONFIG_PACKAGE_rtpproxy-mod-acct-rtcp-hep=m +CONFIG_PACKAGE_rtpproxy-util-extractaudio=m +CONFIG_PACKAGE_rtpproxy-util-makeann=m +CONFIG_PACKAGE_sipp=m +CONFIG_PACKAGE_siproxd=m +CONFIG_SIPROXD_MAX_CLIENTS=32 +CONFIG_PACKAGE_siproxd-mod-blacklist=m +CONFIG_PACKAGE_siproxd-mod-codecfilter=m +CONFIG_PACKAGE_siproxd-mod-defaulttarget=m +CONFIG_PACKAGE_siproxd-mod-demo=m +CONFIG_PACKAGE_siproxd-mod-fix-DTAG=m +CONFIG_PACKAGE_siproxd-mod-fix-bogus-via=m +CONFIG_PACKAGE_siproxd-mod-fix-fbox-anoncall=m +CONFIG_PACKAGE_siproxd-mod-logcall=m +CONFIG_PACKAGE_siproxd-mod-prefix=m +CONFIG_PACKAGE_siproxd-mod-regex=m +CONFIG_PACKAGE_siproxd-mod-shortdial=m +CONFIG_PACKAGE_siproxd-mod-siptrunk=m +CONFIG_PACKAGE_siproxd-mod-stats=m +CONFIG_PACKAGE_siproxd-mod-stripheader=m +CONFIG_PACKAGE_siproxd-mod-stun=m # CONFIG_PACKAGE_yate is not set # end of Telephony @@ -5849,64 +11238,261 @@ CONFIG_PACKAGE_tc-tiny=m # # Time Synchronization # -# CONFIG_PACKAGE_chrony is not set -# CONFIG_PACKAGE_chrony-nts is not set -# CONFIG_PACKAGE_htpdate is not set -# CONFIG_PACKAGE_linuxptp is not set -# CONFIG_PACKAGE_ntp-keygen is not set -# CONFIG_PACKAGE_ntp-utils is not set -# CONFIG_PACKAGE_ntpclient is not set -# CONFIG_PACKAGE_ntpd is not set -# CONFIG_PACKAGE_ntpdate is not set +CONFIG_PACKAGE_chrony=m +CONFIG_PACKAGE_chrony-nts=m +CONFIG_PACKAGE_htpdate=m +CONFIG_PACKAGE_linuxptp=m +CONFIG_PACKAGE_ntp-keygen=m +CONFIG_PACKAGE_ntp-utils=m +CONFIG_PACKAGE_ntpclient=m +CONFIG_PACKAGE_ntpd=m +CONFIG_PACKAGE_ntpdate=m # end of Time Synchronization # # VPN # -# CONFIG_PACKAGE_chaosvpn is not set -# CONFIG_PACKAGE_eoip is not set -# CONFIG_PACKAGE_fastd is not set -# CONFIG_PACKAGE_libreswan is not set -# CONFIG_PACKAGE_libreswan-nftables is not set -# CONFIG_PACKAGE_netbird is not set -# CONFIG_PACKAGE_ocserv is not set -# CONFIG_PACKAGE_openconnect is not set -# CONFIG_PACKAGE_openfortivpn is not set -# CONFIG_PACKAGE_openvpn-easy-rsa is not set -# CONFIG_PACKAGE_openvpn-mbedtls is not set -# CONFIG_PACKAGE_openvpn-openssl is not set -# CONFIG_PACKAGE_openvpn-wolfssl is not set -# CONFIG_PACKAGE_pptpd is not set -# CONFIG_PACKAGE_softethervpn-base is not set -# CONFIG_PACKAGE_softethervpn-bridge is not set -# CONFIG_PACKAGE_softethervpn-client is not set -# CONFIG_PACKAGE_softethervpn-server is not set -# CONFIG_PACKAGE_softethervpn5-bridge is not set -# CONFIG_PACKAGE_softethervpn5-client is not set -# CONFIG_PACKAGE_softethervpn5-server is not set -# CONFIG_PACKAGE_sstp-client is not set -# CONFIG_PACKAGE_strongswan is not set -# CONFIG_PACKAGE_tailscale is not set -# CONFIG_PACKAGE_tinc is not set -# CONFIG_PACKAGE_uanytun is not set -# CONFIG_PACKAGE_uanytun-nettle is not set -# CONFIG_PACKAGE_uanytun-nocrypt is not set -# CONFIG_PACKAGE_uanytun-sslcrypt is not set -# CONFIG_PACKAGE_vpnc is not set -# CONFIG_PACKAGE_vpnc-scripts is not set -# CONFIG_PACKAGE_wireguard-tools is not set -# CONFIG_PACKAGE_xl2tpd is not set -# CONFIG_PACKAGE_zerotier is not set +CONFIG_PACKAGE_chaosvpn=m +CONFIG_PACKAGE_eoip=m +CONFIG_PACKAGE_fastd=m + +# +# Configuration +# +# CONFIG_FASTD_ENABLE_METHOD_CIPHER_TEST is not set +# CONFIG_FASTD_ENABLE_METHOD_COMPOSED_GMAC is not set +CONFIG_FASTD_ENABLE_METHOD_COMPOSED_UMAC=y +# CONFIG_FASTD_ENABLE_METHOD_GENERIC_GMAC is not set +# CONFIG_FASTD_ENABLE_METHOD_GENERIC_POLY1305 is not set +CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC=y +CONFIG_FASTD_ENABLE_METHOD_NULL=y +CONFIG_FASTD_ENABLE_METHOD_NULL_L2TP=y +CONFIG_FASTD_ENABLE_CIPHER_NULL=y +# CONFIG_FASTD_ENABLE_CIPHER_SALSA20 is not set +CONFIG_FASTD_ENABLE_CIPHER_SALSA2012=y +CONFIG_FASTD_ENABLE_MAC_UHASH=y +# CONFIG_FASTD_WITH_CAPABILITIES is not set +# CONFIG_FASTD_WITH_CMDLINE_USER is not set +# CONFIG_FASTD_WITH_CMDLINE_LOGGING is not set +# CONFIG_FASTD_WITH_CMDLINE_OPERATION is not set +# CONFIG_FASTD_WITH_CMDLINE_COMMANDS is not set +# CONFIG_FASTD_WITH_DYNAMIC_PEERS is not set +CONFIG_FASTD_WITH_STATUS_SOCKET=y +CONFIG_FASTD_WITH_OFFLOAD_L2TP=y +# end of Configuration + +CONFIG_PACKAGE_libreswan=m +CONFIG_PACKAGE_libreswan-nftables=m +CONFIG_PACKAGE_netbird=m +CONFIG_PACKAGE_ocserv=m + +# +# Configuration +# +# CONFIG_OCSERV_PAM is not set +# CONFIG_OCSERV_SECCOMP is not set +# CONFIG_OCSERV_RADIUS is not set +# CONFIG_OCSERV_LIBOATH is not set +CONFIG_OCSERV_PROTOBUF=y +CONFIG_OCSERV_HTTP_PARSER=y +# end of Configuration + +CONFIG_PACKAGE_openconnect=m + +# +# Configuration +# +CONFIG_OPENCONNECT_GNUTLS=y +# CONFIG_OPENCONNECT_OPENSSL is not set +# CONFIG_OPENCONNECT_STOKEN is not set +# end of Configuration + +CONFIG_PACKAGE_openfortivpn=m +CONFIG_PACKAGE_openvpn-easy-rsa=m +CONFIG_PACKAGE_openvpn-mbedtls=m +# CONFIG_OPENVPN_mbedtls_ENABLE_LZO is not set +CONFIG_OPENVPN_mbedtls_ENABLE_LZ4=y +# CONFIG_OPENVPN_mbedtls_ENABLE_MANAGEMENT is not set +CONFIG_OPENVPN_mbedtls_ENABLE_FRAGMENT=y +CONFIG_OPENVPN_mbedtls_ENABLE_PORT_SHARE=y +# CONFIG_OPENVPN_mbedtls_ENABLE_IPROUTE2 is not set +# CONFIG_OPENVPN_mbedtls_ENABLE_DCO is not set +CONFIG_OPENVPN_mbedtls_ENABLE_SMALL=y +CONFIG_PACKAGE_openvpn-openssl=m +CONFIG_OPENVPN_openssl_ENABLE_LZO=y +CONFIG_OPENVPN_openssl_ENABLE_LZ4=y +# CONFIG_OPENVPN_openssl_ENABLE_X509_ALT_USERNAME is not set +# CONFIG_OPENVPN_openssl_ENABLE_MANAGEMENT is not set +CONFIG_OPENVPN_openssl_ENABLE_FRAGMENT=y +CONFIG_OPENVPN_openssl_ENABLE_PORT_SHARE=y +# CONFIG_OPENVPN_openssl_ENABLE_IPROUTE2 is not set +# CONFIG_OPENVPN_openssl_ENABLE_DCO is not set +CONFIG_OPENVPN_openssl_ENABLE_SMALL=y +CONFIG_PACKAGE_openvpn-wolfssl=m +CONFIG_OPENVPN_wolfssl=y +# CONFIG_OPENVPN_wolfssl_ENABLE_LZO is not set +CONFIG_OPENVPN_wolfssl_ENABLE_LZ4=y +# CONFIG_OPENVPN_wolfssl_ENABLE_X509_ALT_USERNAME is not set +# CONFIG_OPENVPN_wolfssl_ENABLE_MANAGEMENT is not set +CONFIG_OPENVPN_wolfssl_ENABLE_FRAGMENT=y +CONFIG_OPENVPN_wolfssl_ENABLE_PORT_SHARE=y +# CONFIG_OPENVPN_wolfssl_ENABLE_IPROUTE2 is not set +# CONFIG_OPENVPN_wolfssl_ENABLE_DCO is not set +CONFIG_OPENVPN_wolfssl_ENABLE_SMALL=y +CONFIG_PACKAGE_pptpd=m +CONFIG_PACKAGE_softethervpn-base=m +CONFIG_PACKAGE_softethervpn-bridge=m +CONFIG_PACKAGE_softethervpn-client=m +CONFIG_PACKAGE_softethervpn-server=m +CONFIG_PACKAGE_softethervpn5-bridge=m +CONFIG_PACKAGE_softethervpn5-client=m +CONFIG_PACKAGE_softethervpn5-libs=m +CONFIG_PACKAGE_softethervpn5-server=m +CONFIG_PACKAGE_sstp-client=m +CONFIG_PACKAGE_strongswan=m + +# +# Configuration +# +CONFIG_STRONGSWAN_ROUTING_TABLE="220" +CONFIG_STRONGSWAN_ROUTING_TABLE_PRIO="220" + +# +# Packages +# +CONFIG_PACKAGE_strongswan-charon=m +CONFIG_PACKAGE_strongswan-charon-cmd=m +CONFIG_PACKAGE_strongswan-default=m +CONFIG_PACKAGE_strongswan-full=m +CONFIG_PACKAGE_strongswan-gencerts=m +CONFIG_PACKAGE_strongswan-ipsec=m +CONFIG_PACKAGE_strongswan-isakmp=m +CONFIG_PACKAGE_strongswan-libnttfft=m +CONFIG_PACKAGE_strongswan-libtls=m +CONFIG_PACKAGE_strongswan-minimal=m +CONFIG_PACKAGE_strongswan-mod-addrblock=m +CONFIG_PACKAGE_strongswan-mod-aes=m +CONFIG_PACKAGE_strongswan-mod-af-alg=m +CONFIG_PACKAGE_strongswan-mod-agent=m +CONFIG_PACKAGE_strongswan-mod-attr=m +CONFIG_PACKAGE_strongswan-mod-attr-sql=m +CONFIG_PACKAGE_strongswan-mod-bliss=m +CONFIG_PACKAGE_strongswan-mod-blowfish=m +CONFIG_PACKAGE_strongswan-mod-ccm=m +CONFIG_PACKAGE_strongswan-mod-chapoly=m +CONFIG_PACKAGE_strongswan-mod-cmac=m +CONFIG_PACKAGE_strongswan-mod-connmark=m +CONFIG_PACKAGE_strongswan-mod-constraints=m +CONFIG_PACKAGE_strongswan-mod-coupling=m +CONFIG_PACKAGE_strongswan-mod-ctr=m +CONFIG_PACKAGE_strongswan-mod-curl=m +CONFIG_PACKAGE_strongswan-mod-curve25519=m +CONFIG_PACKAGE_strongswan-mod-des=m +CONFIG_PACKAGE_strongswan-mod-dhcp=m +CONFIG_PACKAGE_strongswan-mod-dnskey=m +CONFIG_PACKAGE_strongswan-mod-drbg=m +CONFIG_PACKAGE_strongswan-mod-duplicheck=m +CONFIG_PACKAGE_strongswan-mod-eap-dynamic=m +CONFIG_PACKAGE_strongswan-mod-eap-identity=m +CONFIG_PACKAGE_strongswan-mod-eap-md5=m +CONFIG_PACKAGE_strongswan-mod-eap-mschapv2=m +CONFIG_PACKAGE_strongswan-mod-eap-radius=m +CONFIG_PACKAGE_strongswan-mod-eap-tls=m +CONFIG_PACKAGE_strongswan-mod-farp=m +CONFIG_PACKAGE_strongswan-mod-fips-prf=m +CONFIG_PACKAGE_strongswan-mod-forecast=m +CONFIG_PACKAGE_strongswan-mod-gcm=m +CONFIG_PACKAGE_strongswan-mod-gcrypt=m +CONFIG_PACKAGE_strongswan-mod-gmp=m +CONFIG_PACKAGE_strongswan-mod-gmpdh=m +CONFIG_PACKAGE_strongswan-mod-ha=m +CONFIG_PACKAGE_strongswan-mod-hmac=m +CONFIG_PACKAGE_strongswan-mod-kdf=m +CONFIG_PACKAGE_strongswan-mod-kernel-libipsec=m +CONFIG_PACKAGE_strongswan-mod-kernel-netlink=m +CONFIG_PACKAGE_strongswan-mod-ldap=m +CONFIG_PACKAGE_strongswan-mod-led=m +CONFIG_PACKAGE_strongswan-mod-load-tester=m +CONFIG_PACKAGE_strongswan-mod-md4=m +CONFIG_PACKAGE_strongswan-mod-md5=m +CONFIG_PACKAGE_strongswan-mod-mgf1=m +CONFIG_PACKAGE_strongswan-mod-mysql=m +CONFIG_PACKAGE_strongswan-mod-newhope=m +CONFIG_PACKAGE_strongswan-mod-ntru=m +CONFIG_PACKAGE_strongswan-mod-openssl=m +CONFIG_PACKAGE_strongswan-mod-pem=m +CONFIG_PACKAGE_strongswan-mod-pgp=m +CONFIG_PACKAGE_strongswan-mod-pkcs1=m +CONFIG_PACKAGE_strongswan-mod-pkcs11=m +CONFIG_PACKAGE_strongswan-mod-pkcs12=m +CONFIG_PACKAGE_strongswan-mod-pkcs7=m +CONFIG_PACKAGE_strongswan-mod-pkcs8=m +CONFIG_PACKAGE_strongswan-mod-pubkey=m +CONFIG_PACKAGE_strongswan-mod-random=m +CONFIG_PACKAGE_strongswan-mod-rc2=m +CONFIG_PACKAGE_strongswan-mod-resolve=m +CONFIG_PACKAGE_strongswan-mod-revocation=m +CONFIG_PACKAGE_strongswan-mod-sha1=m +CONFIG_PACKAGE_strongswan-mod-sha2=m +CONFIG_PACKAGE_strongswan-mod-sha3=m +CONFIG_PACKAGE_strongswan-mod-smp=m +CONFIG_PACKAGE_strongswan-mod-socket-default=m +CONFIG_PACKAGE_strongswan-mod-socket-dynamic=m +CONFIG_PACKAGE_strongswan-mod-sql=m +CONFIG_PACKAGE_strongswan-mod-sqlite=m +CONFIG_PACKAGE_strongswan-mod-sshkey=m +CONFIG_PACKAGE_strongswan-mod-stroke=m +CONFIG_PACKAGE_strongswan-mod-test-vectors=m +CONFIG_PACKAGE_strongswan-mod-uci=m +CONFIG_PACKAGE_strongswan-mod-unity=m +CONFIG_PACKAGE_strongswan-mod-updown=m +CONFIG_PACKAGE_strongswan-mod-vici=m +CONFIG_PACKAGE_strongswan-mod-whitelist=m +CONFIG_PACKAGE_strongswan-mod-wolfssl=m +CONFIG_PACKAGE_strongswan-mod-x509=m +CONFIG_PACKAGE_strongswan-mod-xauth-eap=m +CONFIG_PACKAGE_strongswan-mod-xauth-generic=m +CONFIG_PACKAGE_strongswan-mod-xcbc=m +CONFIG_PACKAGE_strongswan-pki=m +CONFIG_PACKAGE_strongswan-swanctl=m +CONFIG_PACKAGE_tailscale=m +CONFIG_PACKAGE_tinc=m +CONFIG_PACKAGE_uanytun=m +CONFIG_PACKAGE_uanytun-nettle=m +CONFIG_PACKAGE_uanytun-nocrypt=m +CONFIG_PACKAGE_uanytun-sslcrypt=m +CONFIG_PACKAGE_vpnc=m + +# +# Configuration +# +CONFIG_VPNC_GNUTLS=y +# CONFIG_VPNC_OPENSSL is not set +# end of Configuration + +CONFIG_PACKAGE_vpnc-scripts=m +CONFIG_PACKAGE_wireguard-tools=m +CONFIG_PACKAGE_xl2tpd=m +CONFIG_PACKAGE_zerotier=m + +# +# Configuration +# +# CONFIG_ZEROTIER_ENABLE_DEBUG is not set +# CONFIG_ZEROTIER_ENABLE_SELFTEST is not set +# end of Configuration # end of VPN # # Version Control Systems # -# CONFIG_PACKAGE_git is not set -# CONFIG_PACKAGE_git-http is not set -# CONFIG_PACKAGE_subversion-client is not set -# CONFIG_PACKAGE_subversion-libs is not set -# CONFIG_PACKAGE_subversion-server is not set +CONFIG_PACKAGE_git=m +CONFIG_PACKAGE_git-gitweb=m +CONFIG_PACKAGE_git-http=m +CONFIG_PACKAGE_gitolite=m +CONFIG_PACKAGE_subversion-client=m +CONFIG_PACKAGE_subversion-libs=m +CONFIG_PACKAGE_subversion-server=m # end of Version Control Systems # @@ -5923,80 +11509,269 @@ CONFIG_PACKAGE_uqmi=m # # Web Servers/Proxies # -# CONFIG_PACKAGE_apache is not set -# CONFIG_PACKAGE_cgi-io is not set -# CONFIG_PACKAGE_clamav is not set -# CONFIG_PACKAGE_cloudflared is not set -# CONFIG_PACKAGE_etebase is not set -# CONFIG_PACKAGE_freshclam is not set -# CONFIG_PACKAGE_frpc is not set -# CONFIG_PACKAGE_frps is not set -# CONFIG_PACKAGE_gateway-go is not set -# CONFIG_PACKAGE_gatling is not set -# CONFIG_PACKAGE_haproxy is not set -# CONFIG_PACKAGE_haproxy-nossl is not set -# CONFIG_PACKAGE_kcptun-client is not set -# CONFIG_PACKAGE_kcptun-config is not set -# CONFIG_PACKAGE_kcptun-server is not set -# CONFIG_PACKAGE_librespeed-go is not set -# CONFIG_PACKAGE_lighttpd is not set -# CONFIG_PACKAGE_microsocks is not set -# CONFIG_PACKAGE_nginx-full is not set -# CONFIG_PACKAGE_nginx-mod-brotli is not set -# CONFIG_PACKAGE_nginx-mod-dav-ext is not set -# CONFIG_PACKAGE_nginx-mod-geoip2 is not set -# CONFIG_PACKAGE_nginx-mod-headers-more is not set -# CONFIG_PACKAGE_nginx-mod-lua is not set -# CONFIG_PACKAGE_nginx-mod-lua-resty-core is not set -# CONFIG_PACKAGE_nginx-mod-lua-resty-lrucache is not set -# CONFIG_PACKAGE_nginx-mod-luci is not set -# CONFIG_PACKAGE_nginx-mod-naxsi is not set -# CONFIG_PACKAGE_nginx-mod-rtmp is not set -# CONFIG_PACKAGE_nginx-mod-stream is not set -# CONFIG_PACKAGE_nginx-mod-ts is not set -# CONFIG_PACKAGE_nginx-mod-ubus is not set -# CONFIG_PACKAGE_nginx-ssl is not set -# CONFIG_PACKAGE_nginx-ssl-util is not set -# CONFIG_PACKAGE_nginx-ssl-util-nopcre is not set -# CONFIG_PACKAGE_polipo is not set -# CONFIG_PACKAGE_privoxy is not set -# CONFIG_PACKAGE_radicale is not set -# CONFIG_PACKAGE_radicale2 is not set -# CONFIG_PACKAGE_radicale2-examples is not set -# CONFIG_PACKAGE_shadowsocks-libev-config is not set -# CONFIG_PACKAGE_shadowsocks-libev-ss-local is not set -# CONFIG_PACKAGE_shadowsocks-libev-ss-redir is not set -# CONFIG_PACKAGE_shadowsocks-libev-ss-rules is not set -# CONFIG_PACKAGE_shadowsocks-libev-ss-server is not set -# CONFIG_PACKAGE_shadowsocks-libev-ss-tunnel is not set -# CONFIG_PACKAGE_sockd is not set -# CONFIG_PACKAGE_socksify is not set -# CONFIG_PACKAGE_spawn-fcgi is not set -# CONFIG_PACKAGE_squid is not set -# CONFIG_PACKAGE_tinyproxy is not set -# CONFIG_PACKAGE_trojan-go is not set +CONFIG_PACKAGE_apache=m +CONFIG_PACKAGE_apache-ab=m +CONFIG_PACKAGE_apache-error=m +CONFIG_PACKAGE_apache-icons=m +CONFIG_PACKAGE_apache-mod-deflate=m +CONFIG_PACKAGE_apache-mod-http2=m +CONFIG_PACKAGE_apache-mod-ldap=m +CONFIG_PACKAGE_apache-mod-lua=m +CONFIG_PACKAGE_apache-mod-md=m +CONFIG_PACKAGE_apache-mod-php8=m +CONFIG_PACKAGE_apache-mod-proxy=m +CONFIG_PACKAGE_apache-mod-proxy-html=m +CONFIG_PACKAGE_apache-mod-session-crypto=m +CONFIG_PACKAGE_apache-mod-ssl=m +CONFIG_PACKAGE_apache-mod-suexec=m +CONFIG_PACKAGE_apache-mod-webdav=m +CONFIG_PACKAGE_apache-suexec=m +CONFIG_PACKAGE_apache-utils=m +CONFIG_PACKAGE_cgi-io=m +CONFIG_PACKAGE_clamav=m +CONFIG_PACKAGE_cloudflared=m +CONFIG_PACKAGE_etebase=m +CONFIG_PACKAGE_etebase-src=m +CONFIG_PACKAGE_freshclam=m +CONFIG_PACKAGE_frpc=m +CONFIG_PACKAGE_frps=m +CONFIG_PACKAGE_gateway-go=m +CONFIG_PACKAGE_gatling=m +CONFIG_PACKAGE_haproxy=m +CONFIG_PACKAGE_halog=m +CONFIG_PACKAGE_haproxy-nossl=m +CONFIG_PACKAGE_kcptun-client=m +CONFIG_PACKAGE_kcptun-config=m +CONFIG_PACKAGE_kcptun-server=m +CONFIG_PACKAGE_librespeed-go=m +CONFIG_PACKAGE_lighttpd=m +CONFIG_LIGHTTPD_SSL=y +CONFIG_LIGHTTPD_SSL_DEPENDS=y +CONFIG_LIGHTTPD_PCRE2=y +# CONFIG_LIGHTTPD_CRYPTOLIB_NONE is not set +# CONFIG_LIGHTTPD_CRYPTOLIB_NETTLE is not set +CONFIG_LIGHTTPD_CRYPTOLIB_MBEDTLS=y +# CONFIG_LIGHTTPD_CRYPTOLIB_WOLFSSL is not set +# CONFIG_LIGHTTPD_LOGROTATE is not set +CONFIG_PACKAGE_lighttpd-mod-access=m +CONFIG_PACKAGE_lighttpd-mod-accesslog=m +CONFIG_PACKAGE_lighttpd-mod-ajp13=m +CONFIG_PACKAGE_lighttpd-mod-alias=m +CONFIG_PACKAGE_lighttpd-mod-auth=m +CONFIG_PACKAGE_lighttpd-mod-authn_dbi=m +CONFIG_PACKAGE_lighttpd-mod-authn_file=m +CONFIG_PACKAGE_lighttpd-mod-authn_gssapi=m +CONFIG_PACKAGE_lighttpd-mod-authn_ldap=m +CONFIG_PACKAGE_lighttpd-mod-authn_pam=m +CONFIG_PACKAGE_lighttpd-mod-authn_sasl=m +CONFIG_PACKAGE_lighttpd-mod-cgi=m +CONFIG_PACKAGE_lighttpd-mod-deflate=m +CONFIG_PACKAGE_lighttpd-mod-evhost=m +CONFIG_PACKAGE_lighttpd-mod-expire=m +CONFIG_PACKAGE_lighttpd-mod-extforward=m +CONFIG_PACKAGE_lighttpd-mod-fastcgi=m +CONFIG_PACKAGE_lighttpd-mod-gnutls=m +CONFIG_PACKAGE_lighttpd-mod-magnet=m +CONFIG_PACKAGE_lighttpd-mod-maxminddb=m +CONFIG_PACKAGE_lighttpd-mod-mbedtls=m +CONFIG_PACKAGE_lighttpd-mod-nss=m +CONFIG_PACKAGE_lighttpd-mod-openssl=m +CONFIG_PACKAGE_lighttpd-mod-proxy=m +CONFIG_PACKAGE_lighttpd-mod-redirect=m +CONFIG_PACKAGE_lighttpd-mod-rewrite=m +CONFIG_PACKAGE_lighttpd-mod-rrdtool=m +CONFIG_PACKAGE_lighttpd-mod-scgi=m +CONFIG_PACKAGE_lighttpd-mod-setenv=m +CONFIG_PACKAGE_lighttpd-mod-simple_vhost=m +CONFIG_PACKAGE_lighttpd-mod-sockproxy=m +CONFIG_PACKAGE_lighttpd-mod-ssi=m +CONFIG_PACKAGE_lighttpd-mod-status=m +CONFIG_PACKAGE_lighttpd-mod-userdir=m +CONFIG_PACKAGE_lighttpd-mod-vhostdb=m +CONFIG_PACKAGE_lighttpd-mod-vhostdb_dbi=m +CONFIG_PACKAGE_lighttpd-mod-vhostdb_ldap=m +CONFIG_PACKAGE_lighttpd-mod-vhostdb_mysql=m +CONFIG_PACKAGE_lighttpd-mod-vhostdb_pgsql=m +CONFIG_PACKAGE_lighttpd-mod-webdav=m +CONFIG_PACKAGE_lighttpd-mod-webdav_min=m +CONFIG_PACKAGE_lighttpd-mod-wolfssl=m +CONFIG_PACKAGE_lighttpd-mod-wstunnel=m +CONFIG_PACKAGE_microsocks=m +CONFIG_PACKAGE_nginx-full=m +CONFIG_PACKAGE_nginx-mod-brotli=m +CONFIG_PACKAGE_nginx-mod-dav-ext=m +CONFIG_PACKAGE_nginx-mod-geoip2=m +CONFIG_PACKAGE_nginx-mod-headers-more=m +CONFIG_PACKAGE_nginx-mod-lua=m +CONFIG_PACKAGE_nginx-mod-lua-resty-core=m +CONFIG_PACKAGE_nginx-mod-lua-resty-lrucache=m +CONFIG_PACKAGE_nginx-mod-luci=m +CONFIG_PACKAGE_nginx-mod-naxsi=m +CONFIG_PACKAGE_nginx-mod-rtmp=m +CONFIG_PACKAGE_nginx-mod-stream=m +CONFIG_PACKAGE_nginx-mod-ts=m +CONFIG_PACKAGE_nginx-mod-ubus=m +CONFIG_PACKAGE_nginx-ssl=m + +# +# Configuration +# +CONFIG_NGINX_DAV=y +# CONFIG_NGINX_FLV is not set +# CONFIG_NGINX_STUB_STATUS is not set +CONFIG_NGINX_HTTP_CHARSET=y +CONFIG_NGINX_HTTP_GZIP=y +CONFIG_NGINX_HTTP_GZIP_STATIC=y +CONFIG_NGINX_HTTP_SSI=y +CONFIG_NGINX_HTTP_USERID=y +CONFIG_NGINX_HTTP_ACCESS=y +CONFIG_NGINX_HTTP_AUTH_BASIC=y +# CONFIG_NGINX_HTTP_AUTH_REQUEST is not set +CONFIG_NGINX_HTTP_AUTOINDEX=y +CONFIG_NGINX_HTTP_GEO=y +CONFIG_NGINX_HTTP_MAP=y +CONFIG_NGINX_HTTP_SPLIT_CLIENTS=y +CONFIG_NGINX_HTTP_REFERER=y +CONFIG_NGINX_HTTP_REWRITE=y +CONFIG_NGINX_HTTP_PROXY=y +CONFIG_NGINX_HTTP_FASTCGI=y +CONFIG_NGINX_HTTP_UWSGI=y +CONFIG_NGINX_HTTP_SCGI=y +CONFIG_NGINX_HTTP_MEMCACHED=y +CONFIG_NGINX_HTTP_LIMIT_CONN=y +CONFIG_NGINX_HTTP_LIMIT_REQ=y +CONFIG_NGINX_HTTP_EMPTY_GIF=y +CONFIG_NGINX_HTTP_BROWSER=y +CONFIG_NGINX_HTTP_UPSTREAM_HASH=y +CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH=y +CONFIG_NGINX_HTTP_UPSTREAM_LEAST_CONN=y +CONFIG_NGINX_HTTP_UPSTREAM_KEEPALIVE=y +CONFIG_NGINX_HTTP_CACHE=y +CONFIG_NGINX_HTTP_V2=y +# CONFIG_NGINX_HTTP_QUIC is not set +CONFIG_NGINX_PCRE=y +# CONFIG_NGINX_HTTP_REAL_IP is not set +# CONFIG_NGINX_HTTP_SECURE_LINK is not set +# CONFIG_NGINX_HTTP_SUB is not set +# CONFIG_NGINX_STREAM_REAL_IP is not set +# end of Configuration + +CONFIG_PACKAGE_nginx-ssl-util=m +CONFIG_PACKAGE_nginx-ssl-util-nopcre=m +CONFIG_PACKAGE_polipo=m +CONFIG_PACKAGE_privoxy=m + +# +# Shared libraries settings +# +# CONFIG_PRIVOXY_disable-pthread is not set +# CONFIG_PRIVOXY_disable-dynamic-pcre is not set +# CONFIG_PRIVOXY_disable-zlib is not set + +# +# Config options. Overwrites/ignore configuration file settings +# +# CONFIG_PRIVOXY_disable-toggle is not set +# CONFIG_PRIVOXY_disable-force is not set +# CONFIG_PRIVOXY_disable-fast-redirects is not set +# CONFIG_PRIVOXY_disable-stats is not set +# CONFIG_PRIVOXY_enable-ie-images is not set +# CONFIG_PRIVOXY_disable-image-blocking is not set +# CONFIG_PRIVOXY_disable-acl-support is not set +# CONFIG_PRIVOXY_disable-trust-files is not set +# CONFIG_PRIVOXY_disable-editor is not set +# CONFIG_PRIVOXY_enable-no-gifs is not set +# CONFIG_PRIVOXY_enable-graceful-termination is not set +# CONFIG_PRIVOXY_enable-extended-host-patterns is not set +# CONFIG_PRIVOXY_enable-external-filters is not set +# CONFIG_PRIVOXY_enable-accept-filter is not set +# CONFIG_PRIVOXY_enable-strptime-sanity-checks is not set +# CONFIG_PRIVOXY_enable-compression is not set +CONFIG_PACKAGE_radicale=m +CONFIG_PACKAGE_radicale-src=m +CONFIG_PACKAGE_radicale2=m +CONFIG_PACKAGE_radicale2-examples=m +CONFIG_PACKAGE_radicale2-src=m +CONFIG_PACKAGE_shadowsocks-libev-config=m +CONFIG_PACKAGE_shadowsocks-libev-ss-local=m +CONFIG_PACKAGE_shadowsocks-libev-ss-redir=m +CONFIG_PACKAGE_shadowsocks-libev-ss-rules=m +CONFIG_PACKAGE_shadowsocks-libev-ss-server=m +CONFIG_PACKAGE_shadowsocks-libev-ss-tunnel=m +CONFIG_PACKAGE_sockd=m +CONFIG_PACKAGE_socksify=m +CONFIG_PACKAGE_spawn-fcgi=m +CONFIG_PACKAGE_squid=m + +# +# Optional features +# +CONFIG_SQUID_enable-ipv6=y +# CONFIG_SQUID_enable-snmp is not set +# CONFIG_SQUID_enable-icmp is not set +# CONFIG_SQUID_enable-icap-client is not set +CONFIG_SQUID_enable-ssl-crtd=y +# CONFIG_SQUID_auth-basic is not set +# CONFIG_SQUID_auth-digest is not set +# CONFIG_SQUID_auth-negotiate is not set +# CONFIG_SQUID_auth-ntlm is not set + +# +# Optional packages +# +CONFIG_SQUID_use-openssl=y +# CONFIG_SQUID_use-gnutls is not set +# CONFIG_SQUID_with-libcap is not set +# CONFIG_SQUID_with-nettle is not set +# CONFIG_SQUID_with-expat is not set +# CONFIG_SQUID_with-libxml2 is not set + +# +# Additional tools +# +CONFIG_PACKAGE_squid-mod-cachemgr=m +CONFIG_PACKAGE_tinyproxy=m +CONFIG_PACKAGE_trojan-go=m CONFIG_PACKAGE_uhttpd=y -# CONFIG_PACKAGE_uhttpd-mod-lua is not set +CONFIG_PACKAGE_uhttpd-mod-lua=m CONFIG_PACKAGE_uhttpd-mod-ubus=y -# CONFIG_PACKAGE_uhttpd-mod-ucode is not set -# CONFIG_PACKAGE_uwsgi is not set -# CONFIG_PACKAGE_v2raya is not set -# CONFIG_PACKAGE_xfrpc is not set +CONFIG_PACKAGE_uhttpd-mod-ucode=m +CONFIG_PACKAGE_uwsgi=m +CONFIG_PACKAGE_uwsgi-cgi-plugin=m +CONFIG_PACKAGE_uwsgi-logfile-plugin=m +CONFIG_PACKAGE_uwsgi-luci-support=m +CONFIG_PACKAGE_uwsgi-python3-plugin=m +CONFIG_PACKAGE_uwsgi-syslog-plugin=m +CONFIG_PACKAGE_v2raya=m +CONFIG_PACKAGE_xfrpc=m # end of Web Servers/Proxies # # Wireless # -# CONFIG_PACKAGE_aircrack-ng is not set -# CONFIG_PACKAGE_airmon-ng is not set -# CONFIG_PACKAGE_dynapoint is not set -# CONFIG_PACKAGE_hcxdumptool is not set -# CONFIG_PACKAGE_hcxtools is not set -# CONFIG_PACKAGE_horst is not set -# CONFIG_PACKAGE_pixiewps is not set -# CONFIG_PACKAGE_reaver is not set -# CONFIG_PACKAGE_wavemon is not set -# CONFIG_PACKAGE_wifischedule is not set +CONFIG_PACKAGE_aircrack-ng=m + +# +# SSL support +# +CONFIG_AIRCRACK_NG_OPENSSL=y +# CONFIG_AIRCRACK_NG_GCRYPT is not set +# CONFIG_AIRCRACK_NG_OPTIMIZE_SPEED is not set + +# +# Miscellaneous +# +# CONFIG_AIRCRACK_NG_HWLOC is not set +# CONFIG_AIRCRACK_NG_SQLITE3 is not set +CONFIG_PACKAGE_airmon-ng=m +CONFIG_PACKAGE_dynapoint=m +CONFIG_PACKAGE_hcxdumptool=m +CONFIG_PACKAGE_hcxtools=m +CONFIG_PACKAGE_horst=m +CONFIG_PACKAGE_pixiewps=m +CONFIG_PACKAGE_reaver=m +CONFIG_PACKAGE_wavemon=m +CONFIG_PACKAGE_wifischedule=m # end of Wireless # @@ -6016,10 +11791,12 @@ CONFIG_PACKAGE_hostapd-common=m # CONFIG_PACKAGE_hostapd-mini is not set # CONFIG_PACKAGE_hostapd-openssl is not set # CONFIG_PACKAGE_hostapd-wolfssl is not set -# CONFIG_PACKAGE_hs20-client is not set -# CONFIG_PACKAGE_hs20-common is not set -# CONFIG_PACKAGE_hs20-server is not set +CONFIG_PACKAGE_hs20-client=m +CONFIG_PACKAGE_hs20-common=m +CONFIG_PACKAGE_hs20-server=m # CONFIG_PACKAGE_wpa-supplicant is not set +# CONFIG_WPA_RFKILL_SUPPORT is not set +CONFIG_WPA_MSG_MIN_PRIORITY=3 # CONFIG_WPA_WOLFSSL is not set CONFIG_DRIVER_11AC_SUPPORT=y CONFIG_DRIVER_11AX_SUPPORT=y @@ -6051,181 +11828,367 @@ CONFIG_WPA_MBO_SUPPORT=y # # arp-scan # -# CONFIG_PACKAGE_arp-scan is not set -# CONFIG_PACKAGE_arp-scan-database is not set +CONFIG_PACKAGE_arp-scan=m +CONFIG_PACKAGE_arp-scan-database=m # end of arp-scan # CONFIG_PACKAGE_464xlat is not set # CONFIG_PACKAGE_6in4 is not set # CONFIG_PACKAGE_6rd is not set # CONFIG_PACKAGE_6to4 is not set -# CONFIG_PACKAGE_UDPspeeder is not set -# CONFIG_PACKAGE_aardvark-dns is not set -# CONFIG_PACKAGE_acme is not set -# CONFIG_PACKAGE_acme-acmesh is not set -# CONFIG_PACKAGE_acme-acmesh-dnsapi is not set -# CONFIG_PACKAGE_acme-common is not set -# CONFIG_PACKAGE_adblock is not set -# CONFIG_PACKAGE_adblock-fast is not set -# CONFIG_PACKAGE_addrwatch is not set -# CONFIG_PACKAGE_addrwatch-mysql is not set -# CONFIG_PACKAGE_addrwatch-stdout is not set -# CONFIG_PACKAGE_addrwatch-syslog is not set -# CONFIG_PACKAGE_adguardhome is not set -# CONFIG_PACKAGE_ahcpd is not set -# CONFIG_PACKAGE_alfred is not set -# CONFIG_PACKAGE_alist is not set -# CONFIG_PACKAGE_apcupsd is not set -# CONFIG_PACKAGE_apcupsd-cgi is not set -# CONFIG_PACKAGE_apinger is not set -# CONFIG_PACKAGE_apinger-rrd is not set -# CONFIG_PACKAGE_atlas-probe is not set -# CONFIG_PACKAGE_atlas-sw-probe is not set -# CONFIG_PACKAGE_atlas-sw-probe-rpc is not set -# CONFIG_PACKAGE_banip is not set +CONFIG_PACKAGE_UDPspeeder=m +CONFIG_PACKAGE_aardvark-dns=m +CONFIG_PACKAGE_acme=m +CONFIG_PACKAGE_acme-acmesh=m +CONFIG_PACKAGE_acme-acmesh-dnsapi=m +CONFIG_PACKAGE_acme-common=m +CONFIG_PACKAGE_adblock=m +CONFIG_PACKAGE_adblock-fast=m +CONFIG_PACKAGE_addrwatch=m +CONFIG_PACKAGE_addrwatch-mysql=m +CONFIG_PACKAGE_addrwatch-stdout=m +CONFIG_PACKAGE_addrwatch-syslog=m +CONFIG_PACKAGE_adguardhome=m +CONFIG_PACKAGE_ahcpd=m +CONFIG_PACKAGE_alfred=m +CONFIG_PACKAGE_ALFRED_VIS=y +# CONFIG_PACKAGE_ALFRED_BATHOSTS is not set +# CONFIG_PACKAGE_ALFRED_GPSD is not set +CONFIG_PACKAGE_alist=m +CONFIG_PACKAGE_apcupsd=m +CONFIG_PACKAGE_apcupsd-cgi=m +CONFIG_PACKAGE_apinger=m +CONFIG_PACKAGE_apinger-rrd=m +CONFIG_PACKAGE_atlas-probe=m +CONFIG_PACKAGE_atlas-sw-probe=m +CONFIG_PACKAGE_atlas-sw-probe-rpc=m +CONFIG_PACKAGE_banip=m CONFIG_PACKAGE_batctl-default=m -# CONFIG_PACKAGE_batctl-full is not set -# CONFIG_PACKAGE_batctl-tiny is not set +CONFIG_PACKAGE_batctl-full=m +CONFIG_PACKAGE_batctl-tiny=m # CONFIG_PACKAGE_beanstalkd is not set -# CONFIG_PACKAGE_bmon is not set -# CONFIG_PACKAGE_boinc is not set -# CONFIG_PACKAGE_boinc-wrapper is not set -# CONFIG_PACKAGE_bpfcountd is not set +CONFIG_PACKAGE_bmon=m +CONFIG_PACKAGE_boinc=m +CONFIG_PACKAGE_boinc-wrapper=m +CONFIG_PACKAGE_bpfcountd=m # CONFIG_PACKAGE_bpftool-full is not set # CONFIG_PACKAGE_bpftool-minimal is not set -# CONFIG_PACKAGE_bwm-ng is not set -# CONFIG_PACKAGE_bwping is not set +CONFIG_PACKAGE_bwm-ng=m + +# +# Configuration +# +# CONFIG_BWMNG_CONFIGFILE is not set +# CONFIG_BWMNG_HTML is not set +# CONFIG_BWMNG_CSV is not set +CONFIG_BWMNG_EXTENDEDSTATS=y +# CONFIG_BWMNG_LIBNCURSES is not set +CONFIG_BWMNG_TIME=y +# CONFIG_BWMNG_GETOPT_LONG is not set +# end of Configuration + +CONFIG_PACKAGE_bwping=m CONFIG_PACKAGE_chat=m -# CONFIG_PACKAGE_cifsmount is not set -# CONFIG_PACKAGE_cni-route-override is not set -# CONFIG_PACKAGE_coap-server is not set -# CONFIG_PACKAGE_conserver is not set -# CONFIG_PACKAGE_crowdsec is not set -# CONFIG_PACKAGE_crowdsec-firewall-bouncer is not set -# CONFIG_PACKAGE_cshark is not set -# CONFIG_PACKAGE_daemonlogger is not set -# CONFIG_PACKAGE_darkstat is not set -# CONFIG_PACKAGE_dawn is not set -# CONFIG_PACKAGE_dhcpcd is not set -# CONFIG_PACKAGE_dmapd is not set -# CONFIG_PACKAGE_dnscrypt-proxy2 is not set -# CONFIG_PACKAGE_dnstap is not set -# CONFIG_PACKAGE_dnstop is not set +CONFIG_PACKAGE_cifsmount=m +CONFIG_PACKAGE_cni-route-override=m +CONFIG_PACKAGE_coap-server=m +CONFIG_PACKAGE_conserver=m +CONFIG_PACKAGE_crowdsec=m +CONFIG_PACKAGE_crowdsec-firewall-bouncer=m +CONFIG_PACKAGE_cshark=m +CONFIG_PACKAGE_daemonlogger=m +CONFIG_PACKAGE_darkstat=m +CONFIG_PACKAGE_dawn=m +CONFIG_PACKAGE_dhcpcd=m +CONFIG_PACKAGE_dmapd=m +CONFIG_PACKAGE_dnscrypt-proxy2=m +CONFIG_PACKAGE_dnstap=m +CONFIG_PACKAGE_dnstop=m # CONFIG_PACKAGE_ds-lite is not set -# CONFIG_PACKAGE_esniper is not set -# CONFIG_PACKAGE_esp2net is not set -# CONFIG_PACKAGE_etherwake is not set -# CONFIG_PACKAGE_etherwake-nfqueue is not set -# CONFIG_PACKAGE_ethtool is not set +CONFIG_PACKAGE_esniper=m +CONFIG_PACKAGE_esp2net=m +CONFIG_PACKAGE_etherwake=m +CONFIG_PACKAGE_etherwake-nfqueue=m +CONFIG_PACKAGE_ethtool=m # CONFIG_PACKAGE_ethtool-full is not set -# CONFIG_PACKAGE_evilginx2 is not set -# CONFIG_PACKAGE_external-protocol is not set -# CONFIG_PACKAGE_fail2ban is not set -# CONFIG_PACKAGE_fakeidentd is not set -# CONFIG_PACKAGE_fakepop is not set -# CONFIG_PACKAGE_family-dns is not set -# CONFIG_PACKAGE_foolsm is not set -# CONFIG_PACKAGE_fping is not set -# CONFIG_PACKAGE_generate-ipv6-address is not set -# CONFIG_PACKAGE_gensio-bin is not set -# CONFIG_PACKAGE_geoipupdate is not set -# CONFIG_PACKAGE_geth is not set -# CONFIG_PACKAGE_gg is not set -# CONFIG_PACKAGE_git-lfs is not set -# CONFIG_PACKAGE_gnunet is not set -# CONFIG_PACKAGE_gre is not set -# CONFIG_PACKAGE_gsocket is not set -# CONFIG_PACKAGE_hnet-full is not set -# CONFIG_PACKAGE_hnet-full-l2tp is not set -# CONFIG_PACKAGE_hnet-full-secure is not set -# CONFIG_PACKAGE_hnetd-nossl is not set -# CONFIG_PACKAGE_hnetd-openssl is not set -# CONFIG_PACKAGE_hping3 is not set -# CONFIG_PACKAGE_httping is not set -# CONFIG_PACKAGE_httping-nossl is not set -# CONFIG_PACKAGE_https-dns-proxy is not set -# CONFIG_PACKAGE_httptunnel is not set -# CONFIG_PACKAGE_i2pd is not set -# CONFIG_PACKAGE_ibrdtn-tools is not set -# CONFIG_PACKAGE_ibrdtnd is not set -# CONFIG_PACKAGE_ifstat is not set -# CONFIG_PACKAGE_iftop is not set -# CONFIG_PACKAGE_iiod is not set -# CONFIG_PACKAGE_iperf is not set -# CONFIG_PACKAGE_iperf3 is not set -# CONFIG_PACKAGE_iperf3-ssl is not set -# CONFIG_PACKAGE_ipip is not set -# CONFIG_PACKAGE_ipset is not set +CONFIG_PACKAGE_evilginx2=m +CONFIG_PACKAGE_external-protocol=m +CONFIG_PACKAGE_fail2ban=m +CONFIG_PACKAGE_fail2ban-src=m +CONFIG_PACKAGE_fakeidentd=m +CONFIG_PACKAGE_fakepop=m +CONFIG_PACKAGE_family-dns=m +CONFIG_PACKAGE_flent=m +CONFIG_PACKAGE_flent-src=m +CONFIG_PACKAGE_foolsm=m +CONFIG_PACKAGE_fping=m +CONFIG_PACKAGE_generate-ipv6-address=m +CONFIG_PACKAGE_gensio-bin=m +# CONFIG_GENSIO_SSHD is not set +CONFIG_PACKAGE_geoipupdate=m +CONFIG_PACKAGE_geth=m +CONFIG_PACKAGE_gg=m +CONFIG_PACKAGE_git-lfs=m +CONFIG_PACKAGE_gnunet=m +CONFIG_PACKAGE_gnunet-abd=m +CONFIG_PACKAGE_gnunet-auction=m +CONFIG_PACKAGE_gnunet-communicator-tcp=m +CONFIG_PACKAGE_gnunet-communicator-udp=m +CONFIG_PACKAGE_gnunet-conversation=m +CONFIG_PACKAGE_gnunet-curl=m +CONFIG_PACKAGE_gnunet-datastore=m +CONFIG_PACKAGE_gnunet-dht-cli=m +CONFIG_PACKAGE_gnunet-dhtcache-heap=m +CONFIG_PACKAGE_gnunet-dhtcache-pgsql=m +CONFIG_PACKAGE_gnunet-dhtcache-sqlite=m +CONFIG_PACKAGE_gnunet-fs=m +CONFIG_PACKAGE_gnunet-fs-heap=m +CONFIG_PACKAGE_gnunet-fs-mysql=m +CONFIG_PACKAGE_gnunet-fs-pgsql=m +CONFIG_PACKAGE_gnunet-fs-sqlite=m +CONFIG_PACKAGE_gnunet-fuse=m +CONFIG_PACKAGE_gnunet-gns=m +CONFIG_PACKAGE_gnunet-gns-pgsql=m +CONFIG_PACKAGE_gnunet-gns-proxy=m +CONFIG_PACKAGE_gnunet-gns-sqlite=m +CONFIG_PACKAGE_gnunet-hostlist=m +CONFIG_PACKAGE_gnunet-messenger=m +CONFIG_PACKAGE_gnunet-mysql=m +CONFIG_PACKAGE_gnunet-namestore-fcfsd=m +CONFIG_PACKAGE_gnunet-peerstore-flat=m +CONFIG_PACKAGE_gnunet-peerstore-sqlite=m +CONFIG_PACKAGE_gnunet-pgsql=m +CONFIG_PACKAGE_gnunet-reclaim=m +CONFIG_PACKAGE_gnunet-rest=m +CONFIG_PACKAGE_gnunet-rps=m +CONFIG_PACKAGE_gnunet-sqlite=m +CONFIG_PACKAGE_gnunet-transport-bluetooth=m +CONFIG_PACKAGE_gnunet-transport-http_client=m +CONFIG_PACKAGE_gnunet-transport-http_server=m +CONFIG_PACKAGE_gnunet-transport-tcp=m +CONFIG_PACKAGE_gnunet-transport-udp=m +CONFIG_PACKAGE_gnunet-transport-wlan=m +CONFIG_PACKAGE_gnunet-utils=m +CONFIG_PACKAGE_gnunet-vpn=m +CONFIG_PACKAGE_gre=m +CONFIG_PACKAGE_gsocket=m +CONFIG_PACKAGE_hnet-full=m +CONFIG_PACKAGE_hnet-full-l2tp=m +CONFIG_PACKAGE_hnet-full-secure=m +CONFIG_PACKAGE_hnetd-nossl=m +CONFIG_PACKAGE_hnetd-openssl=m +CONFIG_PACKAGE_hping3=m +CONFIG_PACKAGE_httping=m +CONFIG_PACKAGE_httping-nossl=m +CONFIG_PACKAGE_https-dns-proxy=m +CONFIG_PACKAGE_httptunnel=m +CONFIG_PACKAGE_i2pd=m +CONFIG_PACKAGE_ibrdtn-tools=m +CONFIG_PACKAGE_ibrdtnd=m +CONFIG_PACKAGE_ifstat=m +CONFIG_IFSTAT_SNMP=y +CONFIG_PACKAGE_iftop=m +CONFIG_PACKAGE_iiod=m +CONFIG_PACKAGE_iperf=m +# CONFIG_IPERF_ENABLE_MULTICAST is not set +CONFIG_PACKAGE_iperf3=m +CONFIG_PACKAGE_iperf3-ssl=m +CONFIG_PACKAGE_ipip=m +CONFIG_PACKAGE_ipset=m # CONFIG_PACKAGE_ipset-dns is not set -# CONFIG_PACKAGE_iptraf-ng is not set -# CONFIG_PACKAGE_iputils-arping is not set -# CONFIG_PACKAGE_iputils-clockdiff is not set -# CONFIG_PACKAGE_iputils-ping is not set -# CONFIG_PACKAGE_iputils-tracepath is not set -# CONFIG_PACKAGE_ipvsadm is not set -# CONFIG_PACKAGE_irtt is not set +CONFIG_PACKAGE_iptraf-ng=m +CONFIG_PACKAGE_iputils-arping=m +CONFIG_PACKAGE_iputils-clockdiff=m +CONFIG_PACKAGE_iputils-ping=m +# CONFIG_PING_LEGACY_SYMLINKS is not set +CONFIG_PACKAGE_iputils-tracepath=m +# CONFIG_TRACEPATH_LEGACY_SYMLINKS is not set +CONFIG_PACKAGE_ipvsadm=m +CONFIG_PACKAGE_irtt=m CONFIG_PACKAGE_iw=m # CONFIG_PACKAGE_iw-full is not set -# CONFIG_PACKAGE_jool-tools-netfilter is not set -# CONFIG_PACKAGE_keepalived is not set -# CONFIG_PACKAGE_knxd is not set -# CONFIG_PACKAGE_kplex is not set -# CONFIG_PACKAGE_krb5-client is not set -# CONFIG_PACKAGE_krb5-libs is not set -# CONFIG_PACKAGE_krb5-server is not set -# CONFIG_PACKAGE_krb5-server-extras is not set -# CONFIG_PACKAGE_libipset is not set -# CONFIG_PACKAGE_libndp is not set -# CONFIG_PACKAGE_linknx is not set -# CONFIG_PACKAGE_lynx is not set -# CONFIG_PACKAGE_mac-telnet-client is not set -# CONFIG_PACKAGE_mac-telnet-discover is not set -# CONFIG_PACKAGE_mac-telnet-ping is not set -# CONFIG_PACKAGE_mac-telnet-server is not set +CONFIG_PACKAGE_jool-tools-netfilter=m +CONFIG_PACKAGE_keepalived=m + +# +# Configuration +# +# CONFIG_KEEPALIVED_BFD is not set +CONFIG_KEEPALIVED_SHA1=y +CONFIG_KEEPALIVED_LVS=y +CONFIG_KEEPALIVED_LVS_SYNCD=y +CONFIG_KEEPALIVED_LVS_64BIT_STATS=y +CONFIG_KEEPALIVED_FWMARK=y +# CONFIG_KEEPALIVED_SNMP_CHECKER is not set +CONFIG_KEEPALIVED_VRRP=y +CONFIG_KEEPALIVED_IPTABLES=y +CONFIG_KEEPALIVED_IP6TABLES=y +CONFIG_KEEPALIVED_NFTABLES=y +# CONFIG_KEEPALIVED_SNMP_VRRP is not set +# CONFIG_KEEPALIVED_SNMP_RFC2 is not set +# CONFIG_KEEPALIVED_SNMP_RFC3 is not set +# CONFIG_KEEPALIVED_DBUS is not set +CONFIG_KEEPALIVED_VRRP_AUTH=y +CONFIG_KEEPALIVED_CHECKSUM_COMPAT=y +CONFIG_KEEPALIVED_ROUTES=y +CONFIG_KEEPALIVED_LINKBEAT=y +# end of Configuration + +CONFIG_PACKAGE_keepalived-sync=m +CONFIG_PACKAGE_knxd=m +CONFIG_PACKAGE_kplex=m +CONFIG_PACKAGE_krb5-client=m +CONFIG_PACKAGE_krb5-libs=m +CONFIG_PACKAGE_krb5-server=m +CONFIG_PACKAGE_krb5-server-extras=m +CONFIG_PACKAGE_libipset=m +CONFIG_PACKAGE_libndp=m +CONFIG_PACKAGE_linknx=m +CONFIG_PACKAGE_lynx=m +CONFIG_PACKAGE_mac-telnet-client=m +CONFIG_PACKAGE_mac-telnet-discover=m +CONFIG_PACKAGE_mac-telnet-ping=m +CONFIG_PACKAGE_mac-telnet-server=m +CONFIG_MACTELNET_PLAIN_SUPPORT=y # CONFIG_PACKAGE_map is not set -# CONFIG_PACKAGE_mausezahn is not set -# CONFIG_PACKAGE_mbusd is not set -# CONFIG_PACKAGE_mdns-repeater is not set -# CONFIG_PACKAGE_memcached is not set -# CONFIG_PACKAGE_mii-tool is not set -# CONFIG_PACKAGE_mikrotik-btest is not set -# CONFIG_PACKAGE_mini_snmpd is not set -# CONFIG_PACKAGE_minimalist-pcproxy is not set -# CONFIG_PACKAGE_miredo is not set -# CONFIG_PACKAGE_modemmanager is not set -# CONFIG_PACKAGE_mosquitto-client-nossl is not set -# CONFIG_PACKAGE_mosquitto-client-ssl is not set -# CONFIG_PACKAGE_mosquitto-nossl is not set -# CONFIG_PACKAGE_mosquitto-ssl is not set -# CONFIG_PACKAGE_mtr-json is not set -# CONFIG_PACKAGE_mtr-nojson is not set -# CONFIG_PACKAGE_natmap is not set -# CONFIG_PACKAGE_nbd is not set -# CONFIG_PACKAGE_nbd-server is not set -# CONFIG_PACKAGE_ncp is not set -# CONFIG_PACKAGE_ndppd is not set -# CONFIG_PACKAGE_ndptool is not set -# CONFIG_PACKAGE_nebula is not set -# CONFIG_PACKAGE_nebula-cert is not set -# CONFIG_PACKAGE_net-mtools is not set -# CONFIG_PACKAGE_net-tools-route is not set -# CONFIG_PACKAGE_netavark is not set -# CONFIG_PACKAGE_netcat is not set -# CONFIG_PACKAGE_netdiscover is not set -# CONFIG_PACKAGE_netifyd is not set -# CONFIG_PACKAGE_netperf is not set -# CONFIG_PACKAGE_netsniff-ng is not set -# CONFIG_PACKAGE_netstinky is not set -# CONFIG_PACKAGE_nextdns is not set -# CONFIG_PACKAGE_nfdump is not set -# CONFIG_PACKAGE_nlbwmon is not set -# CONFIG_PACKAGE_noping is not set -# CONFIG_PACKAGE_nqptp is not set -# CONFIG_PACKAGE_nut is not set -# CONFIG_PACKAGE_obfs4proxy is not set +CONFIG_PACKAGE_mausezahn=m +CONFIG_PACKAGE_mbusd=m +CONFIG_PACKAGE_mdns-repeater=m +CONFIG_PACKAGE_memcached=m +CONFIG_PACKAGE_mii-tool=m +CONFIG_PACKAGE_mikrotik-btest=m +CONFIG_PACKAGE_mini_snmpd=m +CONFIG_PACKAGE_minimalist-pcproxy=m +CONFIG_PACKAGE_miredo=m +CONFIG_PACKAGE_modemmanager=m + +# +# Configuration +# +CONFIG_MODEMMANAGER_WITH_MBIM=y +CONFIG_MODEMMANAGER_WITH_QMI=y +CONFIG_MODEMMANAGER_WITH_QRTR=y +# CONFIG_MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS is not set +# end of Configuration + +CONFIG_PACKAGE_mosquitto-client-nossl=m +CONFIG_PACKAGE_mosquitto-client-ssl=m +CONFIG_PACKAGE_mosquitto-nossl=m +CONFIG_PACKAGE_mosquitto-ssl=m +CONFIG_MOSQUITTO_LWS=y +CONFIG_MOSQUITTO_CTRL=y +CONFIG_MOSQUITTO_DYNAMIC_SECURITY=y +CONFIG_MOSQUITTO_PASSWD=y +CONFIG_PACKAGE_mtr-json=m +CONFIG_PACKAGE_mtr-nojson=m +CONFIG_PACKAGE_natmap=m +CONFIG_PACKAGE_nbd=m +CONFIG_PACKAGE_nbd-server=m +CONFIG_PACKAGE_ncp=m +CONFIG_PACKAGE_ndppd=m +CONFIG_PACKAGE_ndptool=m +CONFIG_PACKAGE_nebula=m +CONFIG_PACKAGE_nebula-cert=m +CONFIG_PACKAGE_nebula-proto=m +CONFIG_PACKAGE_nebula-service=m +CONFIG_PACKAGE_net-mtools=m +CONFIG_PACKAGE_net-tools-route=m +CONFIG_PACKAGE_netavark=m +CONFIG_PACKAGE_netcat=m +CONFIG_PACKAGE_netdiscover=m +CONFIG_PACKAGE_netifyd=m + +# +# Configuration +# +CONFIG_NETIFYD_BUILD_SHARED_LIBRARY=y +CONFIG_NETIFYD_WITH_LOCAL_LIBGCRYPT=y +# end of Configuration + +CONFIG_PACKAGE_netperf=m +CONFIG_PACKAGE_netsniff-ng=m +CONFIG_PACKAGE_netstinky=m +CONFIG_PACKAGE_nextdns=m +CONFIG_PACKAGE_nfdump=m +CONFIG_PACKAGE_nlbwmon=m +CONFIG_PACKAGE_noping=m +CONFIG_PACKAGE_nqptp=m +CONFIG_PACKAGE_nut=m +# CONFIG_NUT_SSL is not set +CONFIG_NUT_DRIVER_USB=y +# CONFIG_NUT_DRIVER_SNMP is not set +CONFIG_NUT_DRIVER_SERIAL=y +CONFIG_NUT_DRIVER_NEON=y +CONFIG_PACKAGE_nut-avahi-service=m +CONFIG_PACKAGE_nut-common=m +CONFIG_PACKAGE_nut-driver-al175=m +CONFIG_PACKAGE_nut-driver-apcsmart=m +CONFIG_PACKAGE_nut-driver-apcsmart-old=m +CONFIG_PACKAGE_nut-driver-apcupsd-ups=m +CONFIG_PACKAGE_nut-driver-bcmxcp=m +CONFIG_PACKAGE_nut-driver-bcmxcp_usb=m +CONFIG_PACKAGE_nut-driver-belkin=m +CONFIG_PACKAGE_nut-driver-belkinunv=m +CONFIG_PACKAGE_nut-driver-bestfcom=m +CONFIG_PACKAGE_nut-driver-bestfortress=m +CONFIG_PACKAGE_nut-driver-bestuferrups=m +CONFIG_PACKAGE_nut-driver-bestups=m +CONFIG_PACKAGE_nut-driver-blazer_ser=m +CONFIG_PACKAGE_nut-driver-blazer_usb=m +CONFIG_PACKAGE_nut-driver-clone=m +CONFIG_PACKAGE_nut-driver-dummy-ups=m +CONFIG_PACKAGE_nut-driver-etapro=m +CONFIG_PACKAGE_nut-driver-everups=m +CONFIG_PACKAGE_nut-driver-gamatronic=m +CONFIG_PACKAGE_nut-driver-genericups=m +CONFIG_PACKAGE_nut-driver-isbmex=m +CONFIG_PACKAGE_nut-driver-ivtscd=m +CONFIG_PACKAGE_nut-driver-liebert=m +CONFIG_PACKAGE_nut-driver-liebert-esp2=m +CONFIG_PACKAGE_nut-driver-masterguard=m +CONFIG_PACKAGE_nut-driver-metasys=m +CONFIG_PACKAGE_nut-driver-mge-shut=m +CONFIG_PACKAGE_nut-driver-mge-utalk=m +CONFIG_PACKAGE_nut-driver-microdowell=m +CONFIG_PACKAGE_nut-driver-netxml-ups=m +CONFIG_PACKAGE_nut-driver-nutdrv_atcl_usb=m +CONFIG_PACKAGE_nut-driver-nutdrv_qx=m +CONFIG_PACKAGE_nut-driver-oneac=m +CONFIG_PACKAGE_nut-driver-optiups=m +CONFIG_PACKAGE_nut-driver-powercom=m +CONFIG_PACKAGE_nut-driver-powerpanel=m +CONFIG_PACKAGE_nut-driver-rhino=m +CONFIG_PACKAGE_nut-driver-richcomm_usb=m +CONFIG_PACKAGE_nut-driver-riello_ser=m +CONFIG_PACKAGE_nut-driver-riello_usb=m +CONFIG_PACKAGE_nut-driver-safenet=m +CONFIG_PACKAGE_nut-driver-solis=m +CONFIG_PACKAGE_nut-driver-tripplite=m +CONFIG_PACKAGE_nut-driver-tripplite_usb=m +CONFIG_PACKAGE_nut-driver-tripplitesu=m +CONFIG_PACKAGE_nut-driver-upscode2=m +CONFIG_PACKAGE_nut-driver-usbhid-ups=m +CONFIG_PACKAGE_nut-driver-victronups=m +CONFIG_PACKAGE_nut-server=m +CONFIG_PACKAGE_nut-upsc=m +CONFIG_PACKAGE_nut-upscmd=m +CONFIG_PACKAGE_nut-upslog=m +CONFIG_PACKAGE_nut-upsmon=m +CONFIG_PACKAGE_nut-upsmon-sendmail-notify=m +CONFIG_PACKAGE_nut-upsrw=m +CONFIG_PACKAGE_nut-upssched=m +CONFIG_PACKAGE_nut-web-cgi=m +CONFIG_PACKAGE_obfs4proxy=m CONFIG_PACKAGE_odhcp6c=y CONFIG_PACKAGE_odhcp6c_ext_cer_id=0 -# CONFIG_PACKAGE_odhcpd is not set +CONFIG_PACKAGE_odhcpd=m + +# +# Configuration +# +CONFIG_PACKAGE_odhcpd_full_ext_cer_id=0 +# end of Configuration + CONFIG_PACKAGE_odhcpd-ipv6only=y # @@ -6234,173 +12197,253 @@ CONFIG_PACKAGE_odhcpd-ipv6only=y CONFIG_PACKAGE_odhcpd_ipv6only_ext_cer_id=0 # end of Configuration -# CONFIG_PACKAGE_ola is not set -# CONFIG_PACKAGE_omcproxy is not set -# CONFIG_PACKAGE_onionshare-cli is not set -# CONFIG_PACKAGE_oor is not set -# CONFIG_PACKAGE_open-iscsi is not set -# CONFIG_PACKAGE_openelp is not set -# CONFIG_PACKAGE_openthread-br is not set -# CONFIG_PACKAGE_oping is not set -# CONFIG_PACKAGE_ostiary is not set -# CONFIG_PACKAGE_pagekitec is not set -# CONFIG_PACKAGE_pcapplusplus is not set -# CONFIG_PACKAGE_pen is not set -# CONFIG_PACKAGE_phantap is not set -# CONFIG_PACKAGE_pimbd is not set -# CONFIG_PACKAGE_pingcheck is not set -# CONFIG_PACKAGE_port-mirroring is not set +CONFIG_PACKAGE_ola=m +CONFIG_PACKAGE_omcproxy=m +CONFIG_PACKAGE_onionshare-cli=m +CONFIG_PACKAGE_onionshare-cli-src=m +CONFIG_PACKAGE_oor=m +CONFIG_PACKAGE_open-iscsi=m +CONFIG_PACKAGE_openelp=m +CONFIG_PACKAGE_openthread-br=m +CONFIG_PACKAGE_oping=m +CONFIG_PACKAGE_ostiary=m +CONFIG_PACKAGE_pagekitec=m +CONFIG_PACKAGE_pcapplusplus=m +CONFIG_PACKAGE_pen=m +CONFIG_PACKAGE_phantap=m +CONFIG_PACKAGE_pimbd=m +CONFIG_PACKAGE_pingcheck=m +CONFIG_PACKAGE_port-mirroring=m CONFIG_PACKAGE_ppp=y # CONFIG_PACKAGE_ppp-mod-passwordfd is not set # CONFIG_PACKAGE_ppp-mod-pppoa is not set CONFIG_PACKAGE_ppp-mod-pppoe=y -# CONFIG_PACKAGE_ppp-mod-pppol2tp is not set +CONFIG_PACKAGE_ppp-mod-pppol2tp=m # CONFIG_PACKAGE_ppp-mod-pptp is not set # CONFIG_PACKAGE_ppp-mod-radius is not set # CONFIG_PACKAGE_ppp-multilink is not set # CONFIG_PACKAGE_pppdump is not set # CONFIG_PACKAGE_pppoe-discovery is not set -# CONFIG_PACKAGE_pppossh is not set +CONFIG_PACKAGE_pppossh=m # CONFIG_PACKAGE_pppstats is not set -# CONFIG_PACKAGE_proto-bonding is not set -# CONFIG_PACKAGE_proxychains-ng is not set -# CONFIG_PACKAGE_ptunnel-ng is not set -# CONFIG_PACKAGE_qcsuper is not set -# CONFIG_PACKAGE_radsecproxy is not set -# CONFIG_PACKAGE_ratched is not set -# CONFIG_PACKAGE_ratechecker is not set -# CONFIG_PACKAGE_redsocks is not set -# CONFIG_PACKAGE_remserial is not set -# CONFIG_PACKAGE_respondd is not set -# CONFIG_PACKAGE_restic-rest-server is not set +CONFIG_PACKAGE_proto-bonding=m +CONFIG_PACKAGE_proxychains-ng=m +CONFIG_PACKAGE_ptunnel-ng=m +CONFIG_PACKAGE_qcsuper=m +CONFIG_PACKAGE_radsecproxy=m +CONFIG_PACKAGE_ratched=m +CONFIG_PACKAGE_ratechecker=m +CONFIG_PACKAGE_redsocks=m +CONFIG_PACKAGE_remserial=m +CONFIG_PACKAGE_respondd=m +CONFIG_PACKAGE_restic-rest-server=m # CONFIG_PACKAGE_rpcapd is not set -# CONFIG_PACKAGE_rpcbind is not set -# CONFIG_PACKAGE_rssileds is not set -# CONFIG_PACKAGE_safe-search is not set -# CONFIG_PACKAGE_samba4-admin is not set -# CONFIG_PACKAGE_samba4-client is not set -# CONFIG_PACKAGE_samba4-libs is not set -# CONFIG_PACKAGE_samba4-server is not set -# CONFIG_PACKAGE_samba4-utils is not set -# CONFIG_PACKAGE_samplicator is not set -# CONFIG_PACKAGE_scapy is not set -# CONFIG_PACKAGE_sctp-tools is not set -# CONFIG_PACKAGE_ser2net is not set -# CONFIG_PACKAGE_sing-box is not set +CONFIG_PACKAGE_rpcbind=m +CONFIG_RPCBIND_LIBWRAP=y +CONFIG_RPCBIND_RMTCALLS=y +CONFIG_PACKAGE_rssileds=m +CONFIG_PACKAGE_safe-search=m +CONFIG_PACKAGE_samba4-admin=m +CONFIG_PACKAGE_samba4-client=m +CONFIG_PACKAGE_samba4-libs=m +CONFIG_PACKAGE_samba4-server=m +CONFIG_SAMBA4_SERVER_WSDD2=y +CONFIG_SAMBA4_SERVER_NETBIOS=y +CONFIG_SAMBA4_SERVER_AVAHI=y +# CONFIG_SAMBA4_SERVER_QUOTAS is not set +CONFIG_SAMBA4_SERVER_VFS=y +# CONFIG_SAMBA4_SERVER_VFSX is not set +# CONFIG_SAMBA4_SERVER_AD_DC is not set +CONFIG_PACKAGE_samba4-utils=m +CONFIG_PACKAGE_samplicator=m +CONFIG_PACKAGE_scapy=m +CONFIG_PACKAGE_scapy-src=m +CONFIG_PACKAGE_sctp-tools=m +CONFIG_PACKAGE_ser2net=m +CONFIG_PACKAGE_sing-box=m + +# +# Select build options +# +# CONFIG_SINGBOX_WITH_ACME is not set +CONFIG_SINGBOX_WITH_CLASH_API=y +# CONFIG_SINGBOX_WITH_DHCP is not set +CONFIG_SINGBOX_WITH_ECH=y +# CONFIG_SINGBOX_WITH_EMBEDDED_TOR is not set +# CONFIG_SINGBOX_WITH_GRPC is not set +CONFIG_SINGBOX_WITH_GVISOR=y +CONFIG_SINGBOX_WITH_QUIC=y +CONFIG_SINGBOX_WITH_REALITY_SERVER=y +CONFIG_SINGBOX_WITH_UTLS=y +# CONFIG_SINGBOX_WITH_V2RAY_API is not set +CONFIG_SINGBOX_WITH_WIREGUARD=y +# end of Select build options + CONFIG_PACKAGE_slirp4netns=m -# CONFIG_PACKAGE_smartdns is not set -# CONFIG_PACKAGE_smbinfo is not set -# CONFIG_PACKAGE_snmp-mibs is not set -# CONFIG_PACKAGE_snmp-utils is not set -# CONFIG_PACKAGE_snmpd is not set -# CONFIG_PACKAGE_snmptrapd is not set -# CONFIG_PACKAGE_snowflake-broker is not set -# CONFIG_PACKAGE_snowflake-client is not set -# CONFIG_PACKAGE_snowflake-probetest is not set -# CONFIG_PACKAGE_snowflake-proxy is not set -# CONFIG_PACKAGE_snowflake-server is not set -# CONFIG_PACKAGE_socat is not set -# CONFIG_PACKAGE_softflowd is not set +CONFIG_PACKAGE_smartdns=m +CONFIG_PACKAGE_smbinfo=m +CONFIG_PACKAGE_snmp-mibs=m +CONFIG_PACKAGE_snmp-utils=m +CONFIG_PACKAGE_snmpd=m +CONFIG_PACKAGE_snmptrapd=m +CONFIG_PACKAGE_snowflake-broker=m +CONFIG_PACKAGE_snowflake-client=m +CONFIG_PACKAGE_snowflake-probetest=m +CONFIG_PACKAGE_snowflake-proxy=m +CONFIG_PACKAGE_snowflake-server=m +CONFIG_PACKAGE_socat=m +# CONFIG_SOCAT_SSL is not set +CONFIG_PACKAGE_softflowd=m # CONFIG_PACKAGE_soloscli is not set -# CONFIG_PACKAGE_speedtest-netperf is not set -# CONFIG_PACKAGE_speedtestcpp is not set -# CONFIG_PACKAGE_spoofer is not set -# CONFIG_PACKAGE_sscep is not set -# CONFIG_PACKAGE_static-neighbor-reports is not set -# CONFIG_PACKAGE_stunnel is not set -# CONFIG_PACKAGE_switchdev-poller is not set -# CONFIG_PACKAGE_tac_plus is not set -# CONFIG_PACKAGE_tac_plus-pam is not set -# CONFIG_PACKAGE_tayga is not set +CONFIG_PACKAGE_speedtest-netperf=m +CONFIG_PACKAGE_speedtestcpp=m +CONFIG_PACKAGE_spoofer=m +CONFIG_PACKAGE_sscep=m +CONFIG_PACKAGE_static-neighbor-reports=m +CONFIG_PACKAGE_stunnel=m +CONFIG_PACKAGE_switchdev-poller=m +CONFIG_PACKAGE_tac_plus=m +CONFIG_PACKAGE_tac_plus-pam=m +CONFIG_PACKAGE_tayga=m # CONFIG_PACKAGE_tcpdump is not set # CONFIG_PACKAGE_tcpdump-mini is not set -# CONFIG_PACKAGE_telnet-bsd is not set -# CONFIG_PACKAGE_tgt is not set -# CONFIG_PACKAGE_tmate-ssh-server is not set -# CONFIG_PACKAGE_tor is not set -# CONFIG_PACKAGE_tor-basic is not set -# CONFIG_PACKAGE_trafficshaper is not set -# CONFIG_PACKAGE_travelmate is not set -# CONFIG_PACKAGE_tunneldigger is not set -# CONFIG_PACKAGE_tunneldigger-broker is not set -# CONFIG_PACKAGE_u2pnpd is not set -# CONFIG_PACKAGE_uacme is not set -# CONFIG_PACKAGE_uacme-ualpn is not set +CONFIG_PACKAGE_telnet-bsd=m +CONFIG_PACKAGE_tgt=m +CONFIG_PACKAGE_tmate-ssh-server=m +CONFIG_PACKAGE_tor=m +CONFIG_PACKAGE_tor-basic=m +CONFIG_PACKAGE_tor-gencert=m +CONFIG_PACKAGE_tor-geoip=m +CONFIG_PACKAGE_tor-resolve=m +CONFIG_PACKAGE_trafficshaper=m +CONFIG_PACKAGE_travelmate=m +CONFIG_PACKAGE_tunneldigger=m +CONFIG_PACKAGE_tunneldigger-broker=m +CONFIG_PACKAGE_tunneldigger-broker-src=m +CONFIG_PACKAGE_u2pnpd=m +CONFIG_PACKAGE_uacme=m + +# +# uacme will install mbedtls +# +CONFIG_PACKAGE_uacme-ualpn=m CONFIG_PACKAGE_uclient-fetch=y -# CONFIG_PACKAGE_udhcpsnoop is not set -# CONFIG_PACKAGE_udphp-client is not set -# CONFIG_PACKAGE_udptunnel is not set -# CONFIG_PACKAGE_udpxy is not set -# CONFIG_PACKAGE_ulogd is not set -# CONFIG_PACKAGE_umdns is not set -# CONFIG_PACKAGE_unet-cli is not set -# CONFIG_PACKAGE_unetd is not set -# CONFIG_PACKAGE_uradvd is not set -# CONFIG_PACKAGE_usbip is not set -# CONFIG_PACKAGE_uspotfilter is not set -# CONFIG_PACKAGE_usteer is not set +CONFIG_PACKAGE_udhcpsnoop=m +CONFIG_PACKAGE_udphp-client=m +CONFIG_PACKAGE_udptunnel=m +CONFIG_PACKAGE_udpxy=m +CONFIG_PACKAGE_ulogd=m +CONFIG_PACKAGE_ulogd-mod-dbi=m +CONFIG_PACKAGE_ulogd-mod-extra=m +CONFIG_PACKAGE_ulogd-mod-json=m +CONFIG_PACKAGE_ulogd-mod-mysql=m +CONFIG_PACKAGE_ulogd-mod-nfacct=m +CONFIG_PACKAGE_ulogd-mod-nfct=m +CONFIG_PACKAGE_ulogd-mod-nflog=m +CONFIG_PACKAGE_ulogd-mod-pcap=m +CONFIG_PACKAGE_ulogd-mod-pgsql=m +CONFIG_PACKAGE_ulogd-mod-sqlite=m +CONFIG_PACKAGE_ulogd-mod-syslog=m +CONFIG_PACKAGE_ulogd-mod-xml=m +CONFIG_PACKAGE_umdns=m +CONFIG_PACKAGE_unet-cli=m +CONFIG_PACKAGE_unetd=m +CONFIG_UNETD_VXLAN_SUPPORT=y +CONFIG_PACKAGE_unet-dht=m +CONFIG_PACKAGE_uradvd=m +CONFIG_PACKAGE_usbip=m +CONFIG_PACKAGE_usbip-client=m +CONFIG_PACKAGE_usbip-server=m +CONFIG_PACKAGE_uspotfilter=m +CONFIG_PACKAGE_usteer=m # CONFIG_PACKAGE_ustp is not set -# CONFIG_PACKAGE_v2ray-core is not set -# CONFIG_PACKAGE_vallumd is not set -# CONFIG_PACKAGE_vncrepeater is not set -# CONFIG_PACKAGE_vnstat is not set -# CONFIG_PACKAGE_vnstat2 is not set -# CONFIG_PACKAGE_vti is not set -# CONFIG_PACKAGE_vxlan is not set -# CONFIG_PACKAGE_wakeonlan is not set -# CONFIG_PACKAGE_wg-installer-client is not set -# CONFIG_PACKAGE_wifi-presence is not set +CONFIG_PACKAGE_v2ray-core=m +CONFIG_PACKAGE_v2ray-example=m +CONFIG_PACKAGE_v2ray-extra=m +CONFIG_PACKAGE_vallumd=m +CONFIG_PACKAGE_vncrepeater=m +CONFIG_PACKAGE_vnstat=m +CONFIG_PACKAGE_vnstat2=m +CONFIG_PACKAGE_vnstati=m +CONFIG_PACKAGE_vnstati2=m +CONFIG_PACKAGE_vti=m +CONFIG_PACKAGE_vxlan=m +CONFIG_PACKAGE_wakeonlan=m +CONFIG_PACKAGE_wg-installer-client=m +CONFIG_PACKAGE_wg-installer-server=m +CONFIG_PACKAGE_wg-installer-server-hotplug-babeld=m +CONFIG_PACKAGE_wg-installer-server-hotplug-olsrd=m +CONFIG_PACKAGE_wifi-presence=m # CONFIG_PACKAGE_wpan-tools is not set CONFIG_PACKAGE_wwan=m CONFIG_PACKAGE_xdp-filter=m CONFIG_PACKAGE_xdp-loader=m CONFIG_PACKAGE_xdpdump=m -# CONFIG_PACKAGE_xfrm is not set -# CONFIG_PACKAGE_xinetd is not set -# CONFIG_PACKAGE_xray-core is not set -# CONFIG_PACKAGE_ztdns is not set +CONFIG_PACKAGE_xfrm=m +CONFIG_PACKAGE_xinetd=m +CONFIG_PACKAGE_xray-core=m +CONFIG_PACKAGE_xray-example=m +CONFIG_PACKAGE_ztdns=m # end of Network # # Sound # -# CONFIG_PACKAGE_alsa-utils is not set -# CONFIG_PACKAGE_alsa-utils-seq is not set -# CONFIG_PACKAGE_alsa-utils-tests is not set -# CONFIG_PACKAGE_aserver is not set -# CONFIG_PACKAGE_beep is not set -# CONFIG_PACKAGE_espeak is not set -# CONFIG_PACKAGE_faad2 is not set -# CONFIG_PACKAGE_fdk-aac is not set -# CONFIG_PACKAGE_ices is not set -# CONFIG_PACKAGE_lame is not set -# CONFIG_PACKAGE_lame-lib is not set -# CONFIG_PACKAGE_liblo-utils is not set -# CONFIG_PACKAGE_madplay is not set -# CONFIG_PACKAGE_moc is not set -# CONFIG_PACKAGE_mpc is not set -# CONFIG_PACKAGE_mpd-avahi-service is not set -# CONFIG_PACKAGE_mpd-full is not set -# CONFIG_PACKAGE_mpd-mini is not set -# CONFIG_PACKAGE_mpg123 is not set -# CONFIG_PACKAGE_opus-tools is not set -# CONFIG_PACKAGE_owntone is not set -# CONFIG_PACKAGE_pianod is not set -# CONFIG_PACKAGE_pianod-client is not set -# CONFIG_PACKAGE_portaudio is not set -# CONFIG_PACKAGE_pulseaudio-daemon is not set -# CONFIG_PACKAGE_pulseaudio-daemon-avahi is not set -# CONFIG_PACKAGE_rtpmidid is not set -# CONFIG_PACKAGE_shairport-sync-mbedtls is not set -# CONFIG_PACKAGE_shairport-sync-mini is not set -# CONFIG_PACKAGE_shairport-sync-openssl is not set -# CONFIG_PACKAGE_shine is not set -# CONFIG_PACKAGE_sox is not set -# CONFIG_PACKAGE_squeezelite-dynamic is not set -# CONFIG_PACKAGE_squeezelite-full is not set -# CONFIG_PACKAGE_svox is not set -# CONFIG_PACKAGE_ttymidi-sysex is not set -# CONFIG_PACKAGE_upmpdcli is not set +CONFIG_PACKAGE_alsa-utils=m +CONFIG_PACKAGE_alsa-utils-seq=m +CONFIG_PACKAGE_alsa-utils-tests=m +CONFIG_PACKAGE_aserver=m +CONFIG_PACKAGE_beep=m +CONFIG_PACKAGE_espeak=m +CONFIG_PACKAGE_faad2=m +CONFIG_PACKAGE_fdk-aac=m + +# +# Configuration +# +# CONFIG_FDK-AAC_OPTIMIZE_SPEED is not set +# end of Configuration + +CONFIG_PACKAGE_ices=m +CONFIG_PACKAGE_lame=m +CONFIG_PACKAGE_lame-lib=m + +# +# Configuration +# +# CONFIG_LAME-LIB_OPTIMIZE_SPEED is not set +# end of Configuration + +CONFIG_PACKAGE_liblo-utils=m +CONFIG_PACKAGE_madplay=m +CONFIG_PACKAGE_moc=m +CONFIG_PACKAGE_mpc=m +CONFIG_PACKAGE_mpd-avahi-service=m +CONFIG_PACKAGE_mpd-full=m +CONFIG_PACKAGE_mpd-mini=m +CONFIG_PACKAGE_mpg123=m +CONFIG_PACKAGE_opus-tools=m +CONFIG_PACKAGE_owntone=m +CONFIG_PACKAGE_pianod=m +CONFIG_PACKAGE_pianod-client=m +CONFIG_PACKAGE_portaudio=m +CONFIG_PACKAGE_pulseaudio-daemon=m +CONFIG_PACKAGE_pulseaudio-daemon-avahi=m +CONFIG_PACKAGE_pulseaudio-profiles=m +CONFIG_PACKAGE_pulseaudio-tools=m +CONFIG_PACKAGE_rtpmidid=m +CONFIG_PACKAGE_shairport-sync-mbedtls=m +CONFIG_PACKAGE_shairport-sync-mini=m +CONFIG_PACKAGE_shairport-sync-openssl=m +CONFIG_PACKAGE_shine=m +CONFIG_PACKAGE_sox=m +CONFIG_PACKAGE_squeezelite-dynamic=m +CONFIG_PACKAGE_squeezelite-full=m +CONFIG_PACKAGE_svox=m +CONFIG_PACKAGE_ttymidi-sysex=m +CONFIG_PACKAGE_upmpdcli=m +# CONFIG_PACKAGE_UPMPDCLI_SCCTL is not set +# CONFIG_PACKAGE_UPMPDCLI_SC_WEB_INTERFACE is not set # end of Sound # @@ -6410,17 +12453,17 @@ CONFIG_PACKAGE_xdpdump=m # # AppArmor # -# CONFIG_PACKAGE_apparmor-profiles is not set -# CONFIG_PACKAGE_apparmor-utils is not set +CONFIG_PACKAGE_apparmor-profiles=m +CONFIG_PACKAGE_apparmor-utils=m # end of AppArmor # # BigClown # -# CONFIG_PACKAGE_bigclown-control-tool is not set -# CONFIG_PACKAGE_bigclown-firmware-tool is not set -# CONFIG_PACKAGE_bigclown-gateway is not set -# CONFIG_PACKAGE_bigclown-mqtt2influxdb is not set +CONFIG_PACKAGE_bigclown-control-tool=m +CONFIG_PACKAGE_bigclown-firmware-tool=m +CONFIG_PACKAGE_bigclown-gateway=m +CONFIG_PACKAGE_bigclown-mqtt2influxdb=m # end of BigClown # @@ -6435,181 +12478,241 @@ CONFIG_PACKAGE_uboot-envtools=m # # Compression # -# CONFIG_PACKAGE_bsdtar is not set -# CONFIG_PACKAGE_bsdtar-noopenssl is not set -# CONFIG_PACKAGE_bzip2 is not set -# CONFIG_PACKAGE_gzip is not set -# CONFIG_PACKAGE_lz4 is not set -# CONFIG_PACKAGE_pigz is not set -# CONFIG_PACKAGE_unrar is not set -# CONFIG_PACKAGE_unzip is not set -# CONFIG_PACKAGE_xz-utils is not set -# CONFIG_PACKAGE_zipcmp is not set -# CONFIG_PACKAGE_zipmerge is not set -# CONFIG_PACKAGE_ziptool is not set -# CONFIG_PACKAGE_zstd is not set +CONFIG_PACKAGE_bsdtar=m +CONFIG_PACKAGE_bsdtar-noopenssl=m +CONFIG_PACKAGE_bzip2=m +CONFIG_PACKAGE_gzip=m +CONFIG_PACKAGE_lz4=m +CONFIG_PACKAGE_pigz=m +CONFIG_PACKAGE_unrar=m +CONFIG_PACKAGE_unzip=m +CONFIG_PACKAGE_xz-utils=m +CONFIG_PACKAGE_lzmadec=m +CONFIG_PACKAGE_lzmainfo=m +CONFIG_PACKAGE_xz=m +CONFIG_PACKAGE_xzdec=m +CONFIG_PACKAGE_xzdiff=m +CONFIG_PACKAGE_xzgrep=m +CONFIG_PACKAGE_xzless=m +CONFIG_PACKAGE_xzmore=m +CONFIG_PACKAGE_zipcmp=m +CONFIG_PACKAGE_zipmerge=m +CONFIG_PACKAGE_ziptool=m +CONFIG_PACKAGE_zstd=m # end of Compression # # Database # -# CONFIG_PACKAGE_mariadb-client is not set -# CONFIG_PACKAGE_mariadb-server-base is not set -# CONFIG_PACKAGE_pgsql-cli is not set -# CONFIG_PACKAGE_pgsql-cli-extra is not set -# CONFIG_PACKAGE_pgsql-server is not set -# CONFIG_PACKAGE_rrdcgi1 is not set -# CONFIG_PACKAGE_rrdtool1 is not set -# CONFIG_PACKAGE_sqlite3-cli is not set -# CONFIG_PACKAGE_unixodbc-tools is not set +CONFIG_PACKAGE_mariadb-client=m +CONFIG_PACKAGE_mariadb-client-extra=m +CONFIG_PACKAGE_mariadb-server-base=m +CONFIG_PACKAGE_mariadb-server=m +CONFIG_PACKAGE_mariadb-server-extra=m +CONFIG_PACKAGE_mariadb-server-plugin-auth-ed25519=m +CONFIG_PACKAGE_mariadb-server-plugin-auth-gssapi=m +CONFIG_PACKAGE_mariadb-server-plugin-auth-pam=m +CONFIG_PACKAGE_mariadb-server-plugin-auth-pam-v1=m +CONFIG_PACKAGE_mariadb-server-plugin-disks=m +CONFIG_PACKAGE_mariadb-server-plugin-feedback=m +CONFIG_PACKAGE_mariadb-server-plugin-file-key-management=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-archive=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-blackhole=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-connect=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-federated=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-federatedx=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-sphinx=m +CONFIG_PACKAGE_mariadb-server-plugin-ha-spider=m +CONFIG_PACKAGE_mariadb-server-plugin-handlersocket=m +CONFIG_PACKAGE_mariadb-server-plugin-locales=m +CONFIG_PACKAGE_mariadb-server-plugin-metadata-lock-info=m +CONFIG_PACKAGE_mariadb-server-plugin-query-cache-info=m +CONFIG_PACKAGE_mariadb-server-plugin-query-response-time=m +CONFIG_PACKAGE_mariadb-server-plugin-server-audit=m +CONFIG_PACKAGE_mariadb-server-plugin-simple-password-check=m +CONFIG_PACKAGE_mariadb-server-plugin-sql-errlog=m +CONFIG_PACKAGE_mariadb-server-plugin-wsrep-info=m +CONFIG_PACKAGE_pgsql-cli=m +CONFIG_PACKAGE_pgsql-cli-extra=m +CONFIG_PACKAGE_pgsql-server=m +CONFIG_PACKAGE_rrdcgi1=m +CONFIG_PACKAGE_rrdtool1=m +CONFIG_PACKAGE_sqlite3-cli=m + +# +# Configuration +# +CONFIG_SQLITE3_LIBEDIT=y +# CONFIG_SQLITE3_READLINE is not set +# CONFIG_SQLITE3_READLINE_NONE is not set +# end of Configuration + +CONFIG_PACKAGE_unixodbc-tools=m # end of Database # # Disc # -# CONFIG_PACKAGE_autopart is not set +CONFIG_PACKAGE_autopart=m # CONFIG_PACKAGE_blkdiscard is not set # CONFIG_PACKAGE_blkid is not set # CONFIG_PACKAGE_blockdev is not set # CONFIG_PACKAGE_cfdisk is not set -# CONFIG_PACKAGE_cgdisk is not set +CONFIG_PACKAGE_cgdisk=m # CONFIG_PACKAGE_eject is not set -# CONFIG_PACKAGE_fatresize is not set +CONFIG_PACKAGE_fatresize=m # CONFIG_PACKAGE_fdisk is not set # CONFIG_PACKAGE_findfs is not set -# CONFIG_PACKAGE_fio is not set -# CONFIG_PACKAGE_fixparts is not set -# CONFIG_PACKAGE_gdisk is not set -# CONFIG_PACKAGE_hd-idle is not set -# CONFIG_PACKAGE_hdparm is not set -# CONFIG_PACKAGE_lsblk is not set -# CONFIG_PACKAGE_lvm2 is not set -# CONFIG_PACKAGE_lvm2-selinux is not set +CONFIG_PACKAGE_fio=m +CONFIG_PACKAGE_fixparts=m +CONFIG_PACKAGE_gdisk=m +CONFIG_PACKAGE_hd-idle=m +CONFIG_PACKAGE_hdparm=m +CONFIG_PACKAGE_lsblk=m +CONFIG_PACKAGE_lvm2=m +CONFIG_PACKAGE_lvm2-selinux=m # CONFIG_PACKAGE_mdadm is not set -# CONFIG_PACKAGE_mtools is not set -# CONFIG_PACKAGE_nvme-cli is not set -# CONFIG_PACKAGE_parted is not set +CONFIG_PACKAGE_mtools=m +CONFIG_PACKAGE_nvme-cli=m +CONFIG_PACKAGE_parted=m + +# +# Configuration +# +CONFIG_PARTED_READLINE=y +# CONFIG_PARTED_LVM2 is not set +# end of Configuration + CONFIG_PACKAGE_partx-utils=y -# CONFIG_PACKAGE_sfdisk is not set -# CONFIG_PACKAGE_sgdisk is not set -# CONFIG_PACKAGE_uvol is not set +CONFIG_PACKAGE_sfdisk=m +CONFIG_PACKAGE_sgdisk=m +CONFIG_PACKAGE_uvol=m # CONFIG_PACKAGE_wipefs is not set # end of Disc # # Editors # -# CONFIG_PACKAGE_hexedit is not set -# CONFIG_PACKAGE_joe is not set -# CONFIG_PACKAGE_joe-extras is not set -# CONFIG_PACKAGE_jupp is not set -# CONFIG_PACKAGE_mg is not set -# CONFIG_PACKAGE_nano is not set -# CONFIG_PACKAGE_nano-full is not set -# CONFIG_PACKAGE_nano-plus is not set -# CONFIG_PACKAGE_vim is not set -# CONFIG_PACKAGE_vim-full is not set -# CONFIG_PACKAGE_vim-fuller is not set -# CONFIG_PACKAGE_vim-help is not set -# CONFIG_PACKAGE_vim-runtime is not set -# CONFIG_PACKAGE_zile is not set +CONFIG_PACKAGE_hexedit=m +CONFIG_PACKAGE_joe=m +CONFIG_PACKAGE_joe-extras=m +CONFIG_PACKAGE_jupp=m +CONFIG_PACKAGE_jupp-data=m +CONFIG_PACKAGE_mg=m +CONFIG_PACKAGE_nano=m +CONFIG_PACKAGE_nano-full=m +CONFIG_PACKAGE_nano-plus=m +CONFIG_PACKAGE_vim=m +CONFIG_PACKAGE_vim-full=m +CONFIG_PACKAGE_vim-fuller=m +CONFIG_PACKAGE_vim-help=m +CONFIG_PACKAGE_vim-runtime=m +CONFIG_PACKAGE_zile=m # end of Editors # # Encryption # -# CONFIG_PACKAGE_ccrypt is not set -# CONFIG_PACKAGE_certtool is not set -# CONFIG_PACKAGE_cryptsetup is not set -# CONFIG_PACKAGE_cryptsetup-ssh is not set -# CONFIG_PACKAGE_gnupg is not set -# CONFIG_PACKAGE_gnupg2 is not set -# CONFIG_PACKAGE_gnupg2-dirmngr is not set -# CONFIG_PACKAGE_gnutls-utils is not set -# CONFIG_PACKAGE_gpgv is not set -# CONFIG_PACKAGE_gpgv2 is not set -# CONFIG_PACKAGE_keyctl is not set -# CONFIG_PACKAGE_keyutils is not set +CONFIG_PACKAGE_ccrypt=m +CONFIG_PACKAGE_certtool=m +CONFIG_PACKAGE_cryptsetup=m +CONFIG_PACKAGE_cryptsetup-ssh=m +CONFIG_PACKAGE_gnupg=m +CONFIG_PACKAGE_gnupg-utils=m +CONFIG_PACKAGE_gnupg2=m +CONFIG_PACKAGE_gnupg2-dirmngr=m +CONFIG_PACKAGE_gnupg2-utils=m +CONFIG_PACKAGE_gnutls-utils=m +CONFIG_PACKAGE_gpgv=m +CONFIG_PACKAGE_gpgv2=m +CONFIG_PACKAGE_keyctl=m +CONFIG_PACKAGE_keyutils=m CONFIG_PACKAGE_px5g-mbedtls=y # CONFIG_PACKAGE_px5g-standalone is not set # CONFIG_PACKAGE_px5g-wolfssl is not set -# CONFIG_PACKAGE_stoken is not set +CONFIG_PACKAGE_stoken=m # end of Encryption # # Filesystem # -# CONFIG_PACKAGE_acl is not set -# CONFIG_PACKAGE_afuse is not set -# CONFIG_PACKAGE_attr is not set +CONFIG_PACKAGE_acl=m +CONFIG_PACKAGE_afuse=m +CONFIG_PACKAGE_attr=m # CONFIG_PACKAGE_badblocks is not set CONFIG_PACKAGE_btrfs-progs=m # CONFIG_BTRFS_PROGS_ZSTD is not set # CONFIG_PACKAGE_chattr is not set # CONFIG_PACKAGE_debugfs is not set -# CONFIG_PACKAGE_dosfstools is not set +CONFIG_PACKAGE_dosfstools=m # CONFIG_PACKAGE_dumpe2fs is not set # CONFIG_PACKAGE_e2freefrag is not set CONFIG_PACKAGE_e2fsprogs=y # CONFIG_PACKAGE_e4crypt is not set -# CONFIG_PACKAGE_exfat-fsck is not set -# CONFIG_PACKAGE_exfat-mkfs is not set +CONFIG_PACKAGE_exfat-fsck=m +CONFIG_PACKAGE_exfat-mkfs=m # CONFIG_PACKAGE_f2fs-tools is not set # CONFIG_PACKAGE_f2fs-tools-selinux is not set # CONFIG_PACKAGE_f2fsck is not set # CONFIG_PACKAGE_f2fsck-selinux is not set # CONFIG_PACKAGE_filefrag is not set # CONFIG_PACKAGE_fstrim is not set -# CONFIG_PACKAGE_fuse-utils is not set -# CONFIG_PACKAGE_fuse3-utils is not set -# CONFIG_PACKAGE_hfsfsck is not set +CONFIG_PACKAGE_fuse-utils=m +CONFIG_PACKAGE_fuse3-utils=m +CONFIG_PACKAGE_hfsfsck=m # CONFIG_PACKAGE_lsattr is not set CONFIG_PACKAGE_mkf2fs=y # CONFIG_PACKAGE_mkf2fs-selinux is not set -# CONFIG_PACKAGE_mkhfs is not set -# CONFIG_PACKAGE_ncdu is not set -# CONFIG_PACKAGE_nfs-utils is not set -# CONFIG_PACKAGE_nfs-utils-libs is not set -# CONFIG_PACKAGE_ntfs-3g is not set -# CONFIG_PACKAGE_ntfs-3g-low is not set -# CONFIG_PACKAGE_ntfs-3g-utils is not set -# CONFIG_PACKAGE_owfs is not set -# CONFIG_PACKAGE_owshell is not set +CONFIG_PACKAGE_mkhfs=m +CONFIG_PACKAGE_ncdu=m +CONFIG_PACKAGE_nfs-utils=m +CONFIG_PACKAGE_nfs-utils-libs=m +CONFIG_PACKAGE_ntfs-3g=m +# CONFIG_PACKAGE_NTFS-3G_USE_LIBFUSE is not set +CONFIG_PACKAGE_NTFS-3G_HAS_PROBE=y +CONFIG_PACKAGE_ntfs-3g-low=m +CONFIG_PACKAGE_ntfs-3g-utils=m +CONFIG_PACKAGE_owfs=m +CONFIG_PACKAGE_owshell=m # CONFIG_PACKAGE_resize2fs is not set -# CONFIG_PACKAGE_squashfs-tools-mksquashfs is not set -# CONFIG_PACKAGE_squashfs-tools-unsquashfs is not set +CONFIG_PACKAGE_squashfs-tools-mksquashfs=m +CONFIG_PACKAGE_squashfs-tools-unsquashfs=m +# CONFIG_SQUASHFS_TOOLS_LZO_SUPPORT is not set +# CONFIG_SQUASHFS_TOOLS_LZ4_SUPPORT is not set +CONFIG_SQUASHFS_TOOLS_XZ_SUPPORT=y +CONFIG_SQUASHFS_TOOLS_ZSTD_SUPPORT=y # CONFIG_PACKAGE_swap-utils is not set -# CONFIG_PACKAGE_sysfsutils is not set +CONFIG_PACKAGE_sysfsutils=m # CONFIG_PACKAGE_tune2fs is not set -# CONFIG_PACKAGE_xfs-admin is not set -# CONFIG_PACKAGE_xfs-fsck is not set -# CONFIG_PACKAGE_xfs-growfs is not set -# CONFIG_PACKAGE_xfs-mkfs is not set +CONFIG_PACKAGE_xfs-admin=m +CONFIG_PACKAGE_xfs-fsck=m +CONFIG_PACKAGE_xfs-growfs=m +CONFIG_PACKAGE_xfs-mkfs=m # end of Filesystem # # Image Manipulation # -# CONFIG_PACKAGE_libjpeg-turbo-utils is not set -# CONFIG_PACKAGE_tiff-utils is not set +CONFIG_PACKAGE_libjpeg-turbo-utils=m +CONFIG_PACKAGE_tiff-utils=m # end of Image Manipulation # # Microcontroller programming # -# CONFIG_PACKAGE_avrdude is not set -# CONFIG_PACKAGE_dfu-programmer is not set -# CONFIG_PACKAGE_stm32flash is not set +CONFIG_PACKAGE_avrdude=m +CONFIG_PACKAGE_dfu-programmer=m +CONFIG_PACKAGE_stm32flash=m # end of Microcontroller programming # # RTKLIB Suite # -# CONFIG_PACKAGE_convbin is not set -# CONFIG_PACKAGE_pos2kml is not set -# CONFIG_PACKAGE_rnx2rtkp is not set -# CONFIG_PACKAGE_rtkrcv is not set -# CONFIG_PACKAGE_str2str is not set +CONFIG_PACKAGE_convbin=m +CONFIG_PACKAGE_pos2kml=m +CONFIG_PACKAGE_rnx2rtkp=m +CONFIG_PACKAGE_rtkrcv=m +CONFIG_PACKAGE_str2str=m # end of RTKLIB Suite # @@ -6621,12 +12724,12 @@ CONFIG_PACKAGE_gost_engine-util=m # # Shells # -# CONFIG_PACKAGE_bash is not set -# CONFIG_PACKAGE_fish is not set -# CONFIG_PACKAGE_klish is not set -# CONFIG_PACKAGE_mksh is not set -# CONFIG_PACKAGE_tcsh is not set -# CONFIG_PACKAGE_zsh is not set +CONFIG_PACKAGE_bash=m +CONFIG_PACKAGE_fish=m +CONFIG_PACKAGE_klish=m +CONFIG_PACKAGE_mksh=m +CONFIG_PACKAGE_tcsh=m +CONFIG_PACKAGE_zsh=m # end of Shells # @@ -6634,48 +12737,56 @@ CONFIG_PACKAGE_gost_engine-util=m # # CONFIG_PACKAGE_dahdi-cfg is not set # CONFIG_PACKAGE_dahdi-monitor is not set -# CONFIG_PACKAGE_gsm-utils is not set -# CONFIG_PACKAGE_sipgrep is not set -# CONFIG_PACKAGE_sngrep is not set +CONFIG_PACKAGE_gsm-utils=m +CONFIG_PACKAGE_sipgrep=m +CONFIG_PACKAGE_sngrep=m + +# +# sngrep configuration +# +CONFIG_SNGREP_ENABLE_EEP=y +CONFIG_SNGREP_WITH_PCRE=y +CONFIG_SNGREP_WITH_ZLIB=y +# end of sngrep configuration # end of Telephony # # Terminal # # CONFIG_PACKAGE_agetty is not set -# CONFIG_PACKAGE_dvtm is not set -# CONFIG_PACKAGE_kitty-terminfo is not set -# CONFIG_PACKAGE_minicom is not set -# CONFIG_PACKAGE_picocom is not set -# CONFIG_PACKAGE_rtty-mbedtls is not set -# CONFIG_PACKAGE_rtty-nossl is not set -# CONFIG_PACKAGE_rtty-openssl is not set -# CONFIG_PACKAGE_rtty-wolfssl is not set -# CONFIG_PACKAGE_screen is not set +CONFIG_PACKAGE_dvtm=m +CONFIG_PACKAGE_kitty-terminfo=m +CONFIG_PACKAGE_minicom=m +CONFIG_PACKAGE_picocom=m +CONFIG_PACKAGE_rtty-mbedtls=m +CONFIG_PACKAGE_rtty-nossl=m +CONFIG_PACKAGE_rtty-openssl=m +CONFIG_PACKAGE_rtty-wolfssl=m +CONFIG_PACKAGE_screen=m # CONFIG_PACKAGE_script-utils is not set -# CONFIG_PACKAGE_serialconsole is not set +CONFIG_PACKAGE_serialconsole=m # CONFIG_PACKAGE_setterm is not set -# CONFIG_PACKAGE_tio is not set -# CONFIG_PACKAGE_tmux is not set -# CONFIG_PACKAGE_ttyd is not set +CONFIG_PACKAGE_tio=m +CONFIG_PACKAGE_tmux=m +CONFIG_PACKAGE_ttyd=m # CONFIG_PACKAGE_wall is not set # end of Terminal # # Time Zone info # -# CONFIG_PACKAGE_zoneinfo-africa is not set -# CONFIG_PACKAGE_zoneinfo-all is not set -# CONFIG_PACKAGE_zoneinfo-america is not set -# CONFIG_PACKAGE_zoneinfo-asia is not set -# CONFIG_PACKAGE_zoneinfo-atlantic is not set -# CONFIG_PACKAGE_zoneinfo-australia-nz is not set -# CONFIG_PACKAGE_zoneinfo-core is not set -# CONFIG_PACKAGE_zoneinfo-europe is not set -# CONFIG_PACKAGE_zoneinfo-indian is not set -# CONFIG_PACKAGE_zoneinfo-pacific is not set -# CONFIG_PACKAGE_zoneinfo-poles is not set -# CONFIG_PACKAGE_zoneinfo-simple is not set +CONFIG_PACKAGE_zoneinfo-africa=m +CONFIG_PACKAGE_zoneinfo-all=m +CONFIG_PACKAGE_zoneinfo-america=m +CONFIG_PACKAGE_zoneinfo-asia=m +CONFIG_PACKAGE_zoneinfo-atlantic=m +CONFIG_PACKAGE_zoneinfo-australia-nz=m +CONFIG_PACKAGE_zoneinfo-core=m +CONFIG_PACKAGE_zoneinfo-europe=m +CONFIG_PACKAGE_zoneinfo-indian=m +CONFIG_PACKAGE_zoneinfo-pacific=m +CONFIG_PACKAGE_zoneinfo-poles=m +CONFIG_PACKAGE_zoneinfo-simple=m # end of Time Zone info # @@ -6687,30 +12798,37 @@ CONFIG_PACKAGE_nu801=m # # Virtualization # -# CONFIG_PACKAGE_qemu-aarch64-softmmu is not set -# CONFIG_PACKAGE_qemu-arm-softmmu is not set -# CONFIG_PACKAGE_qemu-bridge-helper is not set -# CONFIG_PACKAGE_qemu-firmware-efi is not set -# CONFIG_PACKAGE_qemu-firmware-pxe is not set -# CONFIG_PACKAGE_qemu-firmware-seabios is not set -# CONFIG_PACKAGE_qemu-firmware-seavgabios is not set -# CONFIG_PACKAGE_qemu-ga is not set -# CONFIG_PACKAGE_qemu-img is not set -# CONFIG_PACKAGE_qemu-keymaps is not set -# CONFIG_PACKAGE_qemu-nbd is not set -# CONFIG_PACKAGE_qemu-x86_64-softmmu is not set -# CONFIG_PACKAGE_virtio-console-helper is not set +CONFIG_PACKAGE_qemu-aarch64-softmmu=m +CONFIG_PACKAGE_qemu-arm-softmmu=m +CONFIG_PACKAGE_qemu-bridge-helper=m +CONFIG_PACKAGE_qemu-firmware-efi=m +CONFIG_PACKAGE_qemu-firmware-pxe=m +CONFIG_PACKAGE_qemu-firmware-seabios=m +CONFIG_PACKAGE_qemu-firmware-seavgabios=m +CONFIG_PACKAGE_qemu-ga=m +CONFIG_PACKAGE_qemu-img=m +CONFIG_PACKAGE_qemu-keymaps=m +CONFIG_PACKAGE_qemu-nbd=m +CONFIG_PACKAGE_qemu-x86_64-softmmu=m +CONFIG_QEMU_UI_VNC=y +# CONFIG_QEMU_UI_VNC_JPEG is not set +# CONFIG_QEMU_UI_VNC_SASL is not set +# CONFIG_QEMU_UI_SPICE is not set +CONFIG_QEMU_DEV_USB=y +CONFIG_QEMU_SECCOMP=y +# CONFIG_QEMU_ZSTD is not set +CONFIG_PACKAGE_virtio-console-helper=m # end of Virtualization # # libimobiledevice # -# CONFIG_PACKAGE_idevicerestore is not set -# CONFIG_PACKAGE_irecovery is not set -# CONFIG_PACKAGE_libimobiledevice-utils is not set -# CONFIG_PACKAGE_libusbmuxd-utils is not set -# CONFIG_PACKAGE_plistutil is not set -# CONFIG_PACKAGE_usbmuxd is not set +CONFIG_PACKAGE_idevicerestore=m +CONFIG_PACKAGE_irecovery=m +CONFIG_PACKAGE_libimobiledevice-utils=m +CONFIG_PACKAGE_libusbmuxd-utils=m +CONFIG_PACKAGE_plistutil=m +CONFIG_PACKAGE_usbmuxd=m # end of libimobiledevice # @@ -6746,78 +12864,301 @@ CONFIG_PACKAGE_nu801=m # CONFIG_PACKAGE_libselinux-validatetrans is not set # end of libselinux tools -# CONFIG_PACKAGE_ack is not set +CONFIG_PACKAGE_ack=m # CONFIG_PACKAGE_acpica-unix is not set # CONFIG_PACKAGE_acpid is not set # CONFIG_PACKAGE_adb is not set -# CONFIG_PACKAGE_airos-dfs-reset is not set -# CONFIG_PACKAGE_ap51-flash is not set -# CONFIG_PACKAGE_apk is not set -# CONFIG_PACKAGE_arp-whisper is not set -# CONFIG_PACKAGE_at is not set -# CONFIG_PACKAGE_atheepmgr is not set -# CONFIG_PACKAGE_audit is not set -# CONFIG_PACKAGE_audit-utils is not set -# CONFIG_PACKAGE_augeas is not set -# CONFIG_PACKAGE_augeas-lenses is not set -# CONFIG_PACKAGE_augeas-lenses-tests is not set -# CONFIG_PACKAGE_banhostlist is not set -# CONFIG_PACKAGE_base16384 is not set -# CONFIG_PACKAGE_bc is not set -# CONFIG_PACKAGE_bluelog is not set -# CONFIG_PACKAGE_bluez-daemon is not set -# CONFIG_PACKAGE_bluez-tools is not set -# CONFIG_PACKAGE_bluez-utils is not set -# CONFIG_PACKAGE_bluez-utils-btmon is not set -# CONFIG_PACKAGE_bluez-utils-extra is not set -# CONFIG_PACKAGE_bluld is not set -# CONFIG_PACKAGE_bonniexx is not set -# CONFIG_PACKAGE_borgbackup is not set -# CONFIG_PACKAGE_bossa is not set -# CONFIG_PACKAGE_bottlerocket is not set +CONFIG_PACKAGE_airos-dfs-reset=m +CONFIG_PACKAGE_alpine-keys=m +CONFIG_PACKAGE_alpine-repositories=m +CONFIG_PACKAGE_ap51-flash=m +CONFIG_PACKAGE_apk=m +CONFIG_PACKAGE_arp-whisper=m +CONFIG_PACKAGE_at=m +CONFIG_PACKAGE_atheepmgr=m +# CONFIG_ATHEEPMGR_DANGEROUS_FUNCTIONS is not set +CONFIG_PACKAGE_audit=m +CONFIG_PACKAGE_audit-utils=m +CONFIG_PACKAGE_augeas=m +CONFIG_PACKAGE_augeas-lenses=m +CONFIG_PACKAGE_augeas-lenses-tests=m +CONFIG_PACKAGE_banhostlist=m +CONFIG_PACKAGE_base16384=m +CONFIG_PACKAGE_bc=m +CONFIG_PACKAGE_bluelog=m +CONFIG_PACKAGE_bluelog-live=m +CONFIG_PACKAGE_bluez-daemon=m +CONFIG_PACKAGE_bluez-tools=m +CONFIG_PACKAGE_bluez-utils=m +CONFIG_PACKAGE_bluez-utils-btmon=m +CONFIG_PACKAGE_bluez-utils-extra=m +CONFIG_PACKAGE_bluld=m +CONFIG_PACKAGE_bmx7-dnsupdate=m +CONFIG_PACKAGE_bonniexx=m +CONFIG_PACKAGE_borgbackup=m +CONFIG_PACKAGE_borgbackup-src=m +CONFIG_PACKAGE_bossa=m +CONFIG_PACKAGE_bottlerocket=m # CONFIG_PACKAGE_bsdiff is not set # CONFIG_PACKAGE_bspatch is not set -# CONFIG_PACKAGE_byobu is not set -# CONFIG_PACKAGE_byobu-utils is not set -# CONFIG_PACKAGE_cache-domains-mbedtls is not set -# CONFIG_PACKAGE_cache-domains-openssl is not set -# CONFIG_PACKAGE_cache-domains-wolfssl is not set +CONFIG_PACKAGE_byobu=m +CONFIG_PACKAGE_byobu-utils=m +CONFIG_PACKAGE_cache-domains-mbedtls=m +CONFIG_PACKAGE_cache-domains-openssl=m +CONFIG_PACKAGE_cache-domains-wolfssl=m # CONFIG_PACKAGE_cal is not set -# CONFIG_PACKAGE_canutils is not set -# CONFIG_PACKAGE_catatonit is not set -# CONFIG_PACKAGE_cgroup-tools is not set -# CONFIG_PACKAGE_cgroupfs-mount is not set +CONFIG_PACKAGE_canutils=m +CONFIG_PACKAGE_canutils-asc2log=m +CONFIG_PACKAGE_canutils-bcmserver=m +CONFIG_PACKAGE_canutils-can-calc-bit-timing=m +CONFIG_PACKAGE_canutils-canbusload=m +CONFIG_PACKAGE_canutils-candump=m +CONFIG_PACKAGE_canutils-canfdtest=m +CONFIG_PACKAGE_canutils-cangen=m +CONFIG_PACKAGE_canutils-cangw=m +CONFIG_PACKAGE_canutils-canlogserver=m +CONFIG_PACKAGE_canutils-canplayer=m +CONFIG_PACKAGE_canutils-cansend=m +CONFIG_PACKAGE_canutils-cansniffer=m +CONFIG_PACKAGE_canutils-isotpdump=m +CONFIG_PACKAGE_canutils-isotpperf=m +CONFIG_PACKAGE_canutils-isotprecv=m +CONFIG_PACKAGE_canutils-isotpsend=m +CONFIG_PACKAGE_canutils-isotpserver=m +CONFIG_PACKAGE_canutils-isotpsniffer=m +CONFIG_PACKAGE_canutils-isotptun=m +CONFIG_PACKAGE_canutils-j1939acd=m +CONFIG_PACKAGE_canutils-j1939cat=m +CONFIG_PACKAGE_canutils-j1939spy=m +CONFIG_PACKAGE_canutils-j1939sr=m +CONFIG_PACKAGE_canutils-log2asc=m +CONFIG_PACKAGE_canutils-log2long=m +CONFIG_PACKAGE_canutils-slcan_attach=m +CONFIG_PACKAGE_canutils-slcand=m +CONFIG_PACKAGE_canutils-slcanpty=m +CONFIG_PACKAGE_canutils-testj1939=m +CONFIG_PACKAGE_catatonit=m +CONFIG_PACKAGE_cgroup-tools=m +CONFIG_PACKAGE_cgroupfs-mount=m +# CONFIG_CGROUPFS_MOUNT_KERNEL_CGROUPS is not set # CONFIG_PACKAGE_checkpolicy is not set -# CONFIG_PACKAGE_checksec is not set -# CONFIG_PACKAGE_checksec_automator is not set +CONFIG_PACKAGE_checksec=m +CONFIG_PACKAGE_checksec_automator=m # CONFIG_PACKAGE_chkcon is not set -# CONFIG_PACKAGE_clocate is not set -# CONFIG_PACKAGE_cmdpad is not set -# CONFIG_PACKAGE_cni is not set -# CONFIG_PACKAGE_cni-plugins is not set -# CONFIG_PACKAGE_cni-plugins-nft is not set -# CONFIG_PACKAGE_coap-client is not set -# CONFIG_PACKAGE_collectd is not set +CONFIG_PACKAGE_cligen=m +CONFIG_PACKAGE_clixon=m +CONFIG_PACKAGE_clocate=m +CONFIG_PACKAGE_cmdpad=m +CONFIG_PACKAGE_cni=m +CONFIG_PACKAGE_cni-plugins=m +CONFIG_PACKAGE_cni-plugins-nft=m +CONFIG_PACKAGE_coap-client=m +CONFIG_PACKAGE_collectd=m +# CONFIG_PACKAGE_COLLECTD_ENCRYPTED_NETWORK is not set +# CONFIG_PACKAGE_COLLECTD_DEBUG_OUTPUT_ENABLE is not set +CONFIG_PACKAGE_collectd-mod-apache=m +CONFIG_PACKAGE_collectd-mod-apcups=m +CONFIG_PACKAGE_collectd-mod-ascent=m +CONFIG_PACKAGE_collectd-mod-bind=m +CONFIG_PACKAGE_collectd-mod-chrony=m +CONFIG_PACKAGE_collectd-mod-conntrack=m +CONFIG_PACKAGE_collectd-mod-contextswitch=m +CONFIG_PACKAGE_collectd-mod-cpu=m +CONFIG_PACKAGE_collectd-mod-cpufreq=m +CONFIG_PACKAGE_collectd-mod-csv=m +CONFIG_PACKAGE_collectd-mod-curl=m +CONFIG_PACKAGE_collectd-mod-df=m +CONFIG_PACKAGE_collectd-mod-dhcpleases=m +CONFIG_PACKAGE_collectd-mod-disk=m +CONFIG_PACKAGE_collectd-mod-dns=m +CONFIG_PACKAGE_collectd-mod-email=m +CONFIG_PACKAGE_collectd-mod-entropy=m +CONFIG_PACKAGE_collectd-mod-ethstat=m +CONFIG_PACKAGE_collectd-mod-exec=m +CONFIG_PACKAGE_collectd-mod-filecount=m +CONFIG_PACKAGE_collectd-mod-fscache=m +CONFIG_PACKAGE_collectd-mod-interface=m +CONFIG_PACKAGE_collectd-mod-ipstatistics=m +CONFIG_PACKAGE_collectd-mod-iptables=m +CONFIG_PACKAGE_collectd-mod-irq=m +CONFIG_PACKAGE_collectd-mod-iwinfo=m +CONFIG_PACKAGE_collectd-mod-load=m +CONFIG_PACKAGE_collectd-mod-logfile=m +CONFIG_PACKAGE_collectd-mod-lua=m +CONFIG_PACKAGE_collectd-mod-match-empty-counter=m +CONFIG_PACKAGE_collectd-mod-match-hashed=m +CONFIG_PACKAGE_collectd-mod-match-regex=m +CONFIG_PACKAGE_collectd-mod-match-timediff=m +CONFIG_PACKAGE_collectd-mod-match-value=m +CONFIG_PACKAGE_collectd-mod-memory=m +CONFIG_PACKAGE_collectd-mod-modbus=m +CONFIG_PACKAGE_collectd-mod-mqtt=m +CONFIG_PACKAGE_collectd-mod-mysql=m +CONFIG_PACKAGE_collectd-mod-netlink=m +CONFIG_PACKAGE_collectd-mod-network=m +CONFIG_PACKAGE_collectd-mod-nginx=m +CONFIG_PACKAGE_collectd-mod-ntpd=m +CONFIG_PACKAGE_collectd-mod-nut=m +CONFIG_PACKAGE_collectd-mod-olsrd=m +CONFIG_PACKAGE_collectd-mod-openvpn=m +CONFIG_PACKAGE_collectd-mod-ping=m +CONFIG_PACKAGE_collectd-mod-postgresql=m +CONFIG_PACKAGE_collectd-mod-powerdns=m +CONFIG_PACKAGE_collectd-mod-processes=m +CONFIG_PACKAGE_collectd-mod-protocols=m +CONFIG_PACKAGE_collectd-mod-routeros=m +CONFIG_PACKAGE_collectd-mod-rrdtool=m +CONFIG_PACKAGE_collectd-mod-sensors=m +CONFIG_PACKAGE_collectd-mod-smart=m +CONFIG_PACKAGE_collectd-mod-snmp=m +CONFIG_PACKAGE_collectd-mod-snmp6=m +CONFIG_PACKAGE_collectd-mod-sqm=m +CONFIG_PACKAGE_collectd-mod-swap=m +CONFIG_PACKAGE_collectd-mod-syslog=m +CONFIG_PACKAGE_collectd-mod-table=m +CONFIG_PACKAGE_collectd-mod-tail=m +CONFIG_PACKAGE_collectd-mod-tail-csv=m +CONFIG_PACKAGE_collectd-mod-tcpconns=m +CONFIG_PACKAGE_collectd-mod-teamspeak2=m +CONFIG_PACKAGE_collectd-mod-ted=m +CONFIG_PACKAGE_collectd-mod-thermal=m +CONFIG_PACKAGE_collectd-mod-threshold=m +CONFIG_PACKAGE_collectd-mod-unixsock=m +CONFIG_PACKAGE_collectd-mod-uptime=m +CONFIG_PACKAGE_collectd-mod-users=m +CONFIG_PACKAGE_collectd-mod-vmem=m +CONFIG_PACKAGE_collectd-mod-wireless=m +CONFIG_PACKAGE_collectd-mod-write-graphite=m +CONFIG_PACKAGE_collectd-mod-write-http=m # CONFIG_PACKAGE_colrm is not set -# CONFIG_PACKAGE_conmon is not set +CONFIG_PACKAGE_conmon=m CONFIG_PACKAGE_containerd=m -# CONFIG_PACKAGE_coremark is not set -# CONFIG_PACKAGE_coreutils is not set -# CONFIG_PACKAGE_cpusage is not set -# CONFIG_PACKAGE_crconf is not set -# CONFIG_PACKAGE_crelay is not set -# CONFIG_PACKAGE_crun is not set -# CONFIG_PACKAGE_csstidy is not set +CONFIG_PACKAGE_coremark=m +CONFIG_COREMARK_OPTIMIZE_O3=y +# CONFIG_COREMARK_ENABLE_MULTITHREADING is not set +CONFIG_PACKAGE_coreutils=m +CONFIG_PACKAGE_coreutils-b2sum=m +CONFIG_PACKAGE_coreutils-base32=m +CONFIG_PACKAGE_coreutils-base64=m +CONFIG_PACKAGE_coreutils-basename=m +CONFIG_PACKAGE_coreutils-basenc=m +CONFIG_PACKAGE_coreutils-cat=m +CONFIG_PACKAGE_coreutils-chcon=m +CONFIG_PACKAGE_coreutils-chgrp=m +CONFIG_PACKAGE_coreutils-chmod=m +CONFIG_PACKAGE_coreutils-chown=m +CONFIG_PACKAGE_coreutils-chroot=m +CONFIG_PACKAGE_coreutils-cksum=m +CONFIG_PACKAGE_coreutils-comm=m +CONFIG_PACKAGE_coreutils-cp=m +CONFIG_PACKAGE_coreutils-csplit=m +CONFIG_PACKAGE_coreutils-cut=m +CONFIG_PACKAGE_coreutils-date=m +CONFIG_PACKAGE_coreutils-dd=m +CONFIG_PACKAGE_coreutils-df=m +CONFIG_PACKAGE_coreutils-dir=m +CONFIG_PACKAGE_coreutils-dircolors=m +CONFIG_PACKAGE_coreutils-dirname=m +CONFIG_PACKAGE_coreutils-du=m +CONFIG_PACKAGE_coreutils-echo=m +CONFIG_PACKAGE_coreutils-env=m +CONFIG_PACKAGE_coreutils-expand=m +CONFIG_PACKAGE_coreutils-expr=m +CONFIG_PACKAGE_coreutils-factor=m +CONFIG_PACKAGE_coreutils-false=m +CONFIG_PACKAGE_coreutils-fmt=m +CONFIG_PACKAGE_coreutils-fold=m +CONFIG_PACKAGE_coreutils-groups=m +CONFIG_PACKAGE_coreutils-head=m +CONFIG_PACKAGE_coreutils-hostid=m +CONFIG_PACKAGE_coreutils-id=m +CONFIG_PACKAGE_coreutils-install=m +CONFIG_PACKAGE_coreutils-join=m +CONFIG_PACKAGE_coreutils-kill=m +CONFIG_PACKAGE_coreutils-link=m +CONFIG_PACKAGE_coreutils-ln=m +CONFIG_PACKAGE_coreutils-logname=m +CONFIG_PACKAGE_coreutils-ls=m +CONFIG_PACKAGE_coreutils-md5sum=m +CONFIG_PACKAGE_coreutils-mkdir=m +CONFIG_PACKAGE_coreutils-mkfifo=m +CONFIG_PACKAGE_coreutils-mknod=m +CONFIG_PACKAGE_coreutils-mktemp=m +CONFIG_PACKAGE_coreutils-mv=m +CONFIG_PACKAGE_coreutils-nice=m +CONFIG_PACKAGE_coreutils-nl=m +CONFIG_PACKAGE_coreutils-nohup=m +CONFIG_PACKAGE_coreutils-nproc=m +CONFIG_PACKAGE_coreutils-numfmt=m +CONFIG_PACKAGE_coreutils-od=m +CONFIG_PACKAGE_coreutils-paste=m +CONFIG_PACKAGE_coreutils-pathchk=m +CONFIG_PACKAGE_coreutils-pinky=m +CONFIG_PACKAGE_coreutils-pr=m +CONFIG_PACKAGE_coreutils-printenv=m +CONFIG_PACKAGE_coreutils-printf=m +CONFIG_PACKAGE_coreutils-ptx=m +CONFIG_PACKAGE_coreutils-pwd=m +CONFIG_PACKAGE_coreutils-readlink=m +CONFIG_PACKAGE_coreutils-realpath=m +CONFIG_PACKAGE_coreutils-rm=m +CONFIG_PACKAGE_coreutils-rmdir=m +CONFIG_PACKAGE_coreutils-runcon=m +CONFIG_PACKAGE_coreutils-seq=m +CONFIG_PACKAGE_coreutils-sha1sum=m +CONFIG_PACKAGE_coreutils-sha224sum=m +CONFIG_PACKAGE_coreutils-sha256sum=m +CONFIG_PACKAGE_coreutils-sha384sum=m +CONFIG_PACKAGE_coreutils-sha512sum=m +CONFIG_PACKAGE_coreutils-shred=m +CONFIG_PACKAGE_coreutils-shuf=m +CONFIG_PACKAGE_coreutils-sleep=m +CONFIG_PACKAGE_coreutils-sort=m +CONFIG_PACKAGE_coreutils-split=m +CONFIG_PACKAGE_coreutils-stat=m +CONFIG_PACKAGE_coreutils-stdbuf=m +CONFIG_PACKAGE_coreutils-stty=m +CONFIG_PACKAGE_coreutils-sum=m +CONFIG_PACKAGE_coreutils-sync=m +CONFIG_PACKAGE_coreutils-tac=m +CONFIG_PACKAGE_coreutils-tail=m +CONFIG_PACKAGE_coreutils-tee=m +CONFIG_PACKAGE_coreutils-test=m +CONFIG_PACKAGE_coreutils-timeout=m +CONFIG_PACKAGE_coreutils-touch=m +CONFIG_PACKAGE_coreutils-tr=m +CONFIG_PACKAGE_coreutils-true=m +CONFIG_PACKAGE_coreutils-truncate=m +CONFIG_PACKAGE_coreutils-tsort=m +CONFIG_PACKAGE_coreutils-tty=m +CONFIG_PACKAGE_coreutils-uname=m +CONFIG_PACKAGE_coreutils-unexpand=m +CONFIG_PACKAGE_coreutils-uniq=m +CONFIG_PACKAGE_coreutils-unlink=m +CONFIG_PACKAGE_coreutils-uptime=m +CONFIG_PACKAGE_coreutils-users=m +CONFIG_PACKAGE_coreutils-vdir=m +CONFIG_PACKAGE_coreutils-wc=m +CONFIG_PACKAGE_coreutils-who=m +CONFIG_PACKAGE_coreutils-whoami=m +CONFIG_PACKAGE_coreutils-yes=m +CONFIG_PACKAGE_cpusage=m +CONFIG_PACKAGE_crconf=m +CONFIG_PACKAGE_crelay=m +CONFIG_PACKAGE_crun=m +CONFIG_PACKAGE_csstidy=m # CONFIG_PACKAGE_ct-bugcheck is not set -# CONFIG_PACKAGE_ctop is not set -# CONFIG_PACKAGE_dbus is not set -# CONFIG_PACKAGE_dbus-utils is not set -# CONFIG_PACKAGE_device-observatory is not set -# CONFIG_PACKAGE_dfu-util is not set -# CONFIG_PACKAGE_digitemp is not set -# CONFIG_PACKAGE_digitemp-usb is not set +CONFIG_PACKAGE_ctop=m +CONFIG_PACKAGE_dbus=m +# CONFIG_DBUS_VERBOSE is not set +CONFIG_PACKAGE_dbus-utils=m +CONFIG_PACKAGE_dc=m +CONFIG_PACKAGE_device-observatory=m +CONFIG_PACKAGE_dfu-util=m +CONFIG_PACKAGE_digitemp=m +CONFIG_PACKAGE_digitemp-usb=m # CONFIG_PACKAGE_dmesg is not set -# CONFIG_PACKAGE_dmidecode is not set +CONFIG_PACKAGE_dmidecode=m CONFIG_PACKAGE_docker=m CONFIG_PACKAGE_docker-compose=m CONFIG_PACKAGE_dockerd=m @@ -6841,155 +13182,445 @@ CONFIG_PACKAGE_dockerd=m # CONFIG_DOCKER_STO_BTRFS is not set # end of Storage -# CONFIG_PACKAGE_domoticz is not set -# CONFIG_PACKAGE_dos2unix is not set +CONFIG_PACKAGE_domoticz=m +CONFIG_PACKAGE_dos2unix=m CONFIG_PACKAGE_dropbearconvert=m # CONFIG_PACKAGE_dtc is not set -# CONFIG_PACKAGE_dumb-init is not set -# CONFIG_PACKAGE_dump1090 is not set -# CONFIG_PACKAGE_dysk is not set -# CONFIG_PACKAGE_ecdsautils is not set -# CONFIG_PACKAGE_efibootmgr is not set -# CONFIG_PACKAGE_elektra-kdb is not set -# CONFIG_PACKAGE_evtest is not set -# CONFIG_PACKAGE_extract is not set +CONFIG_PACKAGE_dumb-init=m +CONFIG_PACKAGE_dump1090=m +CONFIG_PACKAGE_dysk=m +CONFIG_PACKAGE_ecdsautils=m +CONFIG_PACKAGE_efibootmgr=m +CONFIG_PACKAGE_elektra-kdb=m +CONFIG_PACKAGE_evtest=m +CONFIG_PACKAGE_extract=m # CONFIG_PACKAGE_fbtest is not set # CONFIG_PACKAGE_fdt-utils is not set -# CONFIG_PACKAGE_file is not set -# CONFIG_PACKAGE_findutils is not set -# CONFIG_PACKAGE_findutils-find is not set -# CONFIG_PACKAGE_findutils-locate is not set -# CONFIG_PACKAGE_findutils-xargs is not set -# CONFIG_PACKAGE_flashrom is not set -# CONFIG_PACKAGE_flashrom-pci is not set -# CONFIG_PACKAGE_flashrom-spi is not set -# CONFIG_PACKAGE_flashrom-usb is not set -# CONFIG_PACKAGE_flock is not set +CONFIG_PACKAGE_file=m +CONFIG_PACKAGE_findutils=m +CONFIG_PACKAGE_findutils-find=m +CONFIG_PACKAGE_findutils-locate=m +CONFIG_PACKAGE_findutils-xargs=m +CONFIG_PACKAGE_flashrom=m +CONFIG_PACKAGE_flashrom-pci=m +CONFIG_PACKAGE_flashrom-spi=m +CONFIG_PACKAGE_flashrom-usb=m +CONFIG_PACKAGE_flent-tools=m +CONFIG_PACKAGE_flock=m # CONFIG_PACKAGE_fritz-caldata is not set # CONFIG_PACKAGE_fritz-tffs is not set # CONFIG_PACKAGE_fritz-tffs-nand is not set -# CONFIG_PACKAGE_ftdi_eeprom is not set -# CONFIG_PACKAGE_fuse-overlayfs is not set -# CONFIG_PACKAGE_fx is not set -# CONFIG_PACKAGE_fxload is not set -# CONFIG_PACKAGE_gammu is not set -# CONFIG_PACKAGE_gawk is not set -# CONFIG_PACKAGE_gddrescue is not set -# CONFIG_PACKAGE_getopt is not set -# CONFIG_PACKAGE_giflib-utils is not set -# CONFIG_PACKAGE_gkermit is not set -# CONFIG_PACKAGE_gl-puli-mcu is not set -# CONFIG_PACKAGE_gnuplot is not set -# CONFIG_PACKAGE_gpioctl-sysfs is not set -# CONFIG_PACKAGE_gpiod-tools is not set -# CONFIG_PACKAGE_gpsd is not set -# CONFIG_PACKAGE_gpsd-clients is not set -# CONFIG_PACKAGE_gpsd-utils is not set -# CONFIG_PACKAGE_grep is not set -# CONFIG_PACKAGE_hamlib is not set -# CONFIG_PACKAGE_haserl is not set -# CONFIG_PACKAGE_hashdeep is not set -# CONFIG_PACKAGE_haveged is not set -# CONFIG_PACKAGE_hplip-common is not set -# CONFIG_PACKAGE_hplip-sane is not set -# CONFIG_PACKAGE_hub-ctrl is not set +CONFIG_PACKAGE_ftdi_eeprom=m +CONFIG_PACKAGE_fuse-overlayfs=m +CONFIG_PACKAGE_fx=m +CONFIG_PACKAGE_fxload=m +CONFIG_PACKAGE_gammu=m +CONFIG_PACKAGE_gawk=m +CONFIG_PACKAGE_gddrescue=m +CONFIG_PACKAGE_getopt=m +CONFIG_PACKAGE_giflib-utils=m +CONFIG_PACKAGE_gkermit=m +CONFIG_PACKAGE_gl-puli-mcu=m +CONFIG_GL_PULI_MCU_XE300=y +# CONFIG_GL_PULI_MCU_XE3000 is not set +CONFIG_PACKAGE_gnuplot=m +CONFIG_PACKAGE_gpioctl-sysfs=m +CONFIG_PACKAGE_gpiod-tools=m +CONFIG_PACKAGE_gpsd=m +CONFIG_PACKAGE_gpsd-clients=m +CONFIG_PACKAGE_gpsd-utils=m +CONFIG_PACKAGE_grep=m +CONFIG_PACKAGE_hamlib=m +CONFIG_PACKAGE_haserl=m +# CONFIG_HASERL_with_lua is not set + +# +# Lua support +# +# CONFIG_HASERL_shell_luac is not set +# CONFIG_HASERL_shell_lua is not set +CONFIG_PACKAGE_hashdeep=m +CONFIG_PACKAGE_haveged=m +CONFIG_PACKAGE_hplip-common=m +CONFIG_PACKAGE_hplip-sane=m +CONFIG_PACKAGE_hub-ctrl=m # CONFIG_PACKAGE_hwclock is not set -# CONFIG_PACKAGE_hwinfo is not set -# CONFIG_PACKAGE_hwloc-utils is not set -# CONFIG_PACKAGE_i2c-tools is not set +CONFIG_PACKAGE_hwinfo=m +CONFIG_PACKAGE_hwloc-utils=m +CONFIG_PACKAGE_i2c-tools=m # CONFIG_PACKAGE_iconv is not set -# CONFIG_PACKAGE_iio-utils is not set -# CONFIG_PACKAGE_inotifywait is not set -# CONFIG_PACKAGE_inotifywatch is not set -# CONFIG_PACKAGE_io is not set +CONFIG_PACKAGE_iio-utils=m +CONFIG_PACKAGE_inotifywait=m +CONFIG_PACKAGE_inotifywatch=m +CONFIG_PACKAGE_io=m # CONFIG_PACKAGE_ipcs is not set -# CONFIG_PACKAGE_irqbalance is not set +CONFIG_PACKAGE_irqbalance=m # CONFIG_PACKAGE_iwcap is not set CONFIG_PACKAGE_iwinfo=m -# CONFIG_PACKAGE_jq is not set +CONFIG_PACKAGE_jq=m CONFIG_PACKAGE_jshn=y # CONFIG_PACKAGE_kdump is not set # CONFIG_PACKAGE_kexec is not set # CONFIG_PACKAGE_kexec-tools is not set -# CONFIG_PACKAGE_kmod is not set -# CONFIG_PACKAGE_lcd4linux-custom is not set -# CONFIG_PACKAGE_lcd4linux-full is not set -# CONFIG_PACKAGE_lcdproc-clients is not set -# CONFIG_PACKAGE_lcdproc-drivers is not set -# CONFIG_PACKAGE_lcdproc-server is not set -# CONFIG_PACKAGE_less is not set -# CONFIG_PACKAGE_libflashrom is not set +CONFIG_PACKAGE_klish-xml-files=m +CONFIG_PACKAGE_kmod=m +CONFIG_PACKAGE_lcd4linux-custom=m + +# +# Drivers --- +# +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_ASTUSB is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_BeckmannEgle is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_BWCT is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_CrystalFontz is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Curses is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Cwlinux is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_D4D is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_DPF is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_EA232graphic is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_EFN is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_FutabaVFD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_FW8888 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_G15 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_GLCD2USB is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_IRLCD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_LCD2USB is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_LCDTerm is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_LEDMatrix is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_LPH7508 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_LW_ABP is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_M50530 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_MatrixOrbital is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_MatrixOrbitalGX is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_mdm166a is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_MilfordInstruments is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Newhaven is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Noritake is not set +CONFIG_LCD4LINUX_CUSTOM_DRIVER_NULL=y +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Pertelian is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_PHAnderson is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_PICGraphic is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_picoLCD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_picoLCDGraphic is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_PNG is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_PPM is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_SamsungSPF is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_serdisplib is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_ShuttleVFD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_SimpleLCD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_st2205 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_T6963 is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_TeakLCM is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_Trefon is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_USBHUB is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_USBLCD is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_VNC is not set +# CONFIG_LCD4LINUX_CUSTOM_DRIVER_WincorNixdorf is not set + +# +# Plugins --- +# +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_apm is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_asterisk is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_button_exec is not set +CONFIG_LCD4LINUX_CUSTOM_PLUGIN_cpuinfo=y +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_dbus is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_diskstats is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_dvb is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_event is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_exec is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_fifo is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_file is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_gps is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_hddtemp is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_huawei is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_i2c_sensors is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_iconv is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_imon is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_isdn is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_kvv is not set +CONFIG_LCD4LINUX_CUSTOM_PLUGIN_loadavg=y +CONFIG_LCD4LINUX_CUSTOM_PLUGIN_meminfo=y +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_mpd is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_mpris_dbus is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_mysql is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_netdev is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_netinfo is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_pop3 is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_ppp is not set +CONFIG_LCD4LINUX_CUSTOM_PLUGIN_proc_stat=y +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_qnaplog is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_seti is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_statfs is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_uname is not set +CONFIG_LCD4LINUX_CUSTOM_PLUGIN_uptime=y +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_w1retap is not set +# CONFIG_LCD4LINUX_CUSTOM_PLUGIN_xmms is not set +CONFIG_PACKAGE_lcd4linux-full=m +CONFIG_PACKAGE_lcdproc-clients=m +CONFIG_PACKAGE_lcdproc-drivers=m +CONFIG_PACKAGE_lcdproc-server=m +CONFIG_PACKAGE_less=m +CONFIG_PACKAGE_libflashrom=m CONFIG_PACKAGE_libjson-script=y -# CONFIG_PACKAGE_librespeed-cli is not set +CONFIG_PACKAGE_librespeed-cli=m +CONFIG_PACKAGE_libucontext-tests=m # CONFIG_PACKAGE_libxml2-utils is not set -# CONFIG_PACKAGE_lm-sensors is not set -# CONFIG_PACKAGE_lm-sensors-detect is not set +CONFIG_PACKAGE_lm-sensors=m +CONFIG_PACKAGE_lm-sensors-detect=m # CONFIG_PACKAGE_logger is not set -# CONFIG_PACKAGE_logrotate is not set -# CONFIG_PACKAGE_lolcat is not set +CONFIG_PACKAGE_logrotate=m +CONFIG_LOGROTATE_ACL=y +CONFIG_PACKAGE_lolcat=m # CONFIG_PACKAGE_look is not set # CONFIG_PACKAGE_losetup is not set -# CONFIG_PACKAGE_lrzsz is not set +CONFIG_PACKAGE_lrzsz=m # CONFIG_PACKAGE_lscpu is not set # CONFIG_PACKAGE_lslocks is not set # CONFIG_PACKAGE_lsns is not set -# CONFIG_PACKAGE_lsof is not set -# CONFIG_PACKAGE_lxc is not set -# CONFIG_PACKAGE_maccalc is not set -# CONFIG_PACKAGE_macchanger is not set -# CONFIG_PACKAGE_mandoc is not set +CONFIG_PACKAGE_lsof=m +CONFIG_PACKAGE_lxc=m + +# +# Configuration +# +# CONFIG_LXC_KERNEL_OPTIONS is not set +# CONFIG_LXC_BUSYBOX_OPTIONS is not set +CONFIG_LXC_SECCOMP=y +# CONFIG_LXC_NETWORKING is not set +# end of Configuration + +CONFIG_PACKAGE_lxc-attach=m +CONFIG_PACKAGE_lxc-auto=m +CONFIG_PACKAGE_lxc-autostart=m +CONFIG_PACKAGE_lxc-cgroup=m +CONFIG_PACKAGE_lxc-checkconfig=m +CONFIG_PACKAGE_lxc-common=m +CONFIG_PACKAGE_lxc-config=m +CONFIG_PACKAGE_lxc-configs=m +CONFIG_PACKAGE_lxc-console=m +CONFIG_PACKAGE_lxc-copy=m +CONFIG_PACKAGE_lxc-create=m +CONFIG_PACKAGE_lxc-destroy=m +CONFIG_PACKAGE_lxc-device=m +CONFIG_PACKAGE_lxc-execute=m +CONFIG_PACKAGE_lxc-freeze=m +CONFIG_PACKAGE_lxc-hooks=m +CONFIG_PACKAGE_lxc-info=m +CONFIG_PACKAGE_lxc-init=m +CONFIG_PACKAGE_lxc-ls=m +CONFIG_PACKAGE_lxc-monitor=m +CONFIG_PACKAGE_lxc-monitord=m +CONFIG_PACKAGE_lxc-snapshot=m +CONFIG_PACKAGE_lxc-start=m +CONFIG_PACKAGE_lxc-stop=m +CONFIG_PACKAGE_lxc-templates=m +CONFIG_PACKAGE_lxc-top=m +CONFIG_PACKAGE_lxc-unfreeze=m +CONFIG_PACKAGE_lxc-unprivileged=m +CONFIG_PACKAGE_lxc-unshare=m +CONFIG_PACKAGE_lxc-user-nic=m +CONFIG_PACKAGE_lxc-usernsexec=m +CONFIG_PACKAGE_lxc-wait=m +CONFIG_PACKAGE_maccalc=m +CONFIG_PACKAGE_macchanger=m +CONFIG_PACKAGE_mandoc=m # CONFIG_PACKAGE_mbedtls-util is not set -# CONFIG_PACKAGE_mbim-utils is not set -# CONFIG_PACKAGE_mbtools is not set -# CONFIG_PACKAGE_mc is not set -# CONFIG_PACKAGE_mc-skins is not set +CONFIG_PACKAGE_mbim-utils=m +CONFIG_PACKAGE_mbtools=m +CONFIG_PACKAGE_mc=m + +# +# Configuration +# +# CONFIG_MC_DIFFVIEWER is not set +CONFIG_MC_EDITOR=y +CONFIG_MC_SUBSHELL=y +# CONFIG_MC_LARGEFILE is not set +# CONFIG_MC_BACKGROUND is not set +CONFIG_MC_CHARSET=y +CONFIG_MC_VFS=y +# end of Configuration + +CONFIG_PACKAGE_mc-skins=m # CONFIG_PACKAGE_mcookie is not set -# CONFIG_PACKAGE_mdio-tools is not set -# CONFIG_PACKAGE_mhz is not set -# CONFIG_PACKAGE_micrond is not set -# CONFIG_PACKAGE_miniflux is not set -# CONFIG_PACKAGE_mmc-utils is not set -# CONFIG_PACKAGE_more is not set -# CONFIG_PACKAGE_moreutils is not set -# CONFIG_PACKAGE_mount-utils is not set -# CONFIG_PACKAGE_mpack is not set -# CONFIG_PACKAGE_mpremote is not set -# CONFIG_PACKAGE_mqttled is not set -# CONFIG_PACKAGE_mt-st is not set +CONFIG_PACKAGE_mdio-tools=m +CONFIG_PACKAGE_mhz=m +CONFIG_PACKAGE_micrond=m +CONFIG_PACKAGE_miniflux=m +CONFIG_PACKAGE_mmc-utils=m +CONFIG_PACKAGE_more=m +CONFIG_PACKAGE_moreutils=m +CONFIG_PACKAGE_mount-utils=m +CONFIG_PACKAGE_mpack=m +CONFIG_PACKAGE_mpremote=m +CONFIG_PACKAGE_mpremote-src=m +CONFIG_PACKAGE_mqttled=m +CONFIG_PACKAGE_mt-st=m CONFIG_PACKAGE_mt5311=m # CONFIG_PACKAGE_namei is not set -# CONFIG_PACKAGE_naywatch is not set -# CONFIG_PACKAGE_nerdctl is not set -# CONFIG_PACKAGE_netopeer2-cli is not set -# CONFIG_PACKAGE_netopeer2-server is not set -# CONFIG_PACKAGE_netwhere is not set -# CONFIG_PACKAGE_nnn is not set -# CONFIG_PACKAGE_nsenter is not set -# CONFIG_PACKAGE_nss-utils is not set -# CONFIG_PACKAGE_nsutils is not set -# CONFIG_PACKAGE_oath-toolkit is not set -# CONFIG_PACKAGE_oci-runtime-tool is not set -# CONFIG_PACKAGE_open-plc-utils is not set -# CONFIG_PACKAGE_open-vm-tools is not set -# CONFIG_PACKAGE_open-vm-tools-fuse is not set -# CONFIG_PACKAGE_open2300 is not set -# CONFIG_PACKAGE_opendoas is not set -# CONFIG_PACKAGE_openobex is not set -# CONFIG_PACKAGE_openobex-apps is not set -# CONFIG_PACKAGE_openocd is not set -# CONFIG_PACKAGE_opensc-utils is not set -# CONFIG_PACKAGE_openssl-util is not set -# CONFIG_PACKAGE_openzwave is not set -# CONFIG_PACKAGE_openzwave-config is not set -# CONFIG_PACKAGE_owipcalc is not set -# CONFIG_PACKAGE_passh is not set -# CONFIG_PACKAGE_pax-utils is not set -# CONFIG_PACKAGE_pciids is not set -# CONFIG_PACKAGE_pciutils is not set -# CONFIG_PACKAGE_pcmciautils is not set -# CONFIG_PACKAGE_pcsc-tools is not set -# CONFIG_PACKAGE_pcscd is not set -# CONFIG_PACKAGE_podman is not set +CONFIG_PACKAGE_naywatch=m +CONFIG_PACKAGE_nerdctl=m +CONFIG_PACKAGE_netopeer2-cli=m +CONFIG_PACKAGE_netopeer2-server=m +CONFIG_PACKAGE_netwhere=m +CONFIG_PACKAGE_nnn=m +CONFIG_PACKAGE_nsenter=m +CONFIG_PACKAGE_nss-utils=m +CONFIG_PACKAGE_nsutils=m +CONFIG_PACKAGE_oath-toolkit=m +CONFIG_PACKAGE_oci-runtime-tool=m +CONFIG_PACKAGE_oci-runtime-tests=m +CONFIG_PACKAGE_open-plc-utils=m +CONFIG_PACKAGE_open-plc-utils-CMEncrypt=m +CONFIG_PACKAGE_open-plc-utils-ampID=m +CONFIG_PACKAGE_open-plc-utils-ampboot=m +CONFIG_PACKAGE_open-plc-utils-amphost=m +CONFIG_PACKAGE_open-plc-utils-amplist=m +CONFIG_PACKAGE_open-plc-utils-amprate=m +CONFIG_PACKAGE_open-plc-utils-amprule=m +CONFIG_PACKAGE_open-plc-utils-ampstat=m +CONFIG_PACKAGE_open-plc-utils-amptest=m +CONFIG_PACKAGE_open-plc-utils-amptone=m +CONFIG_PACKAGE_open-plc-utils-amptool=m +CONFIG_PACKAGE_open-plc-utils-ampwait=m +CONFIG_PACKAGE_open-plc-utils-chknvm=m +CONFIG_PACKAGE_open-plc-utils-chknvm2=m +CONFIG_PACKAGE_open-plc-utils-chkpib=m +CONFIG_PACKAGE_open-plc-utils-chkpib2=m +CONFIG_PACKAGE_open-plc-utils-config2cfg=m +CONFIG_PACKAGE_open-plc-utils-coqos_add=m +CONFIG_PACKAGE_open-plc-utils-coqos_info=m +CONFIG_PACKAGE_open-plc-utils-coqos_man=m +CONFIG_PACKAGE_open-plc-utils-coqos_mod=m +CONFIG_PACKAGE_open-plc-utils-coqos_rel=m +CONFIG_PACKAGE_open-plc-utils-edru=m +CONFIG_PACKAGE_open-plc-utils-edsu=m +CONFIG_PACKAGE_open-plc-utils-efbu=m +CONFIG_PACKAGE_open-plc-utils-efeu=m +CONFIG_PACKAGE_open-plc-utils-efru=m +CONFIG_PACKAGE_open-plc-utils-efsu=m +CONFIG_PACKAGE_open-plc-utils-evse=m +CONFIG_PACKAGE_open-plc-utils-getpib=m +CONFIG_PACKAGE_open-plc-utils-hpav=m +CONFIG_PACKAGE_open-plc-utils-hpavkey=m +CONFIG_PACKAGE_open-plc-utils-hpavkeys=m +CONFIG_PACKAGE_open-plc-utils-int64host=m +CONFIG_PACKAGE_open-plc-utils-int6k=m +CONFIG_PACKAGE_open-plc-utils-int6kbaud=m +CONFIG_PACKAGE_open-plc-utils-int6kboot=m +CONFIG_PACKAGE_open-plc-utils-int6kdetect=m +CONFIG_PACKAGE_open-plc-utils-int6keth=m +CONFIG_PACKAGE_open-plc-utils-int6kf=m +CONFIG_PACKAGE_open-plc-utils-int6khost=m +CONFIG_PACKAGE_open-plc-utils-int6kid=m +CONFIG_PACKAGE_open-plc-utils-int6klist=m +CONFIG_PACKAGE_open-plc-utils-int6klog=m +CONFIG_PACKAGE_open-plc-utils-int6kmdio=m +CONFIG_PACKAGE_open-plc-utils-int6kmdio2=m +CONFIG_PACKAGE_open-plc-utils-int6kmod=m +CONFIG_PACKAGE_open-plc-utils-int6krate=m +CONFIG_PACKAGE_open-plc-utils-int6krule=m +CONFIG_PACKAGE_open-plc-utils-int6kstat=m +CONFIG_PACKAGE_open-plc-utils-int6ktest=m +CONFIG_PACKAGE_open-plc-utils-int6ktone=m +CONFIG_PACKAGE_open-plc-utils-int6kuart=m +CONFIG_PACKAGE_open-plc-utils-int6kwait=m +CONFIG_PACKAGE_open-plc-utils-mac2pw=m +CONFIG_PACKAGE_open-plc-utils-mac2pwd=m +CONFIG_PACKAGE_open-plc-utils-mdioblock=m +CONFIG_PACKAGE_open-plc-utils-mdioblock2=m +CONFIG_PACKAGE_open-plc-utils-mdiodump=m +CONFIG_PACKAGE_open-plc-utils-mdiogen=m +CONFIG_PACKAGE_open-plc-utils-mdustats=m +CONFIG_PACKAGE_open-plc-utils-mme=m +CONFIG_PACKAGE_open-plc-utils-modpib=m +CONFIG_PACKAGE_open-plc-utils-nics=m +CONFIG_PACKAGE_open-plc-utils-nvmmerge=m +CONFIG_PACKAGE_open-plc-utils-nvmsplit=m +CONFIG_PACKAGE_open-plc-utils-pev=m +CONFIG_PACKAGE_open-plc-utils-pib2xml=m +CONFIG_PACKAGE_open-plc-utils-pibcomp=m +CONFIG_PACKAGE_open-plc-utils-pibdump=m +CONFIG_PACKAGE_open-plc-utils-pibruin=m +CONFIG_PACKAGE_open-plc-utils-pibrump=m +CONFIG_PACKAGE_open-plc-utils-plcID=m +CONFIG_PACKAGE_open-plc-utils-plcboot=m +CONFIG_PACKAGE_open-plc-utils-plcdevs=m +CONFIG_PACKAGE_open-plc-utils-plcfwd=m +CONFIG_PACKAGE_open-plc-utils-plcget=m +CONFIG_PACKAGE_open-plc-utils-plchost=m +CONFIG_PACKAGE_open-plc-utils-plchostd=m +CONFIG_PACKAGE_open-plc-utils-plclist=m +CONFIG_PACKAGE_open-plc-utils-plclog=m +CONFIG_PACKAGE_open-plc-utils-plcmdio16=m +CONFIG_PACKAGE_open-plc-utils-plcmdio32=m +CONFIG_PACKAGE_open-plc-utils-plcotst=m +CONFIG_PACKAGE_open-plc-utils-plcrate=m +CONFIG_PACKAGE_open-plc-utils-plcrule=m +CONFIG_PACKAGE_open-plc-utils-plcset=m +CONFIG_PACKAGE_open-plc-utils-plcstat=m +CONFIG_PACKAGE_open-plc-utils-plctest=m +CONFIG_PACKAGE_open-plc-utils-plctone=m +CONFIG_PACKAGE_open-plc-utils-plctool=m +CONFIG_PACKAGE_open-plc-utils-plcwait=m +CONFIG_PACKAGE_open-plc-utils-psgraph=m +CONFIG_PACKAGE_open-plc-utils-psin=m +CONFIG_PACKAGE_open-plc-utils-pskey=m +CONFIG_PACKAGE_open-plc-utils-psnotch=m +CONFIG_PACKAGE_open-plc-utils-psout=m +CONFIG_PACKAGE_open-plc-utils-ptsctl=m +CONFIG_PACKAGE_open-plc-utils-rkey=m +CONFIG_PACKAGE_open-plc-utils-sada=m +CONFIG_PACKAGE_open-plc-utils-sdram=m +CONFIG_PACKAGE_open-plc-utils-setpib=m +CONFIG_PACKAGE_open-plc-utils-ttycat=m +CONFIG_PACKAGE_open-plc-utils-ttyrecv=m +CONFIG_PACKAGE_open-plc-utils-ttysend=m +CONFIG_PACKAGE_open-plc-utils-ttysig=m +CONFIG_PACKAGE_open-plc-utils-weeder=m +CONFIG_PACKAGE_open-plc-utils-xml2pib=m +CONFIG_PACKAGE_open-vm-tools=m +CONFIG_PACKAGE_open-vm-tools-fuse=m +CONFIG_PACKAGE_open2300=m +CONFIG_PACKAGE_opendoas=m +CONFIG_PACKAGE_openobex=m +CONFIG_PACKAGE_openobex-apps=m +CONFIG_PACKAGE_openocd=m +CONFIG_PACKAGE_opensc-utils=m +CONFIG_PACKAGE_opensc-utils-cardos-tool=m +CONFIG_PACKAGE_opensc-utils-cryptoflex-tool=m +CONFIG_PACKAGE_opensc-utils-dnie-tool=m +CONFIG_PACKAGE_opensc-utils-egk-tool=m +CONFIG_PACKAGE_opensc-utils-eidenv=m +CONFIG_PACKAGE_opensc-utils-gids-tool=m +CONFIG_PACKAGE_opensc-utils-goid-tool=m +CONFIG_PACKAGE_opensc-utils-iasecc-tool=m +CONFIG_PACKAGE_opensc-utils-netkey-tool=m +CONFIG_PACKAGE_opensc-utils-openpgp-tool=m +CONFIG_PACKAGE_opensc-utils-opensc-explorer=m +CONFIG_PACKAGE_opensc-utils-opensc-tool=m +CONFIG_PACKAGE_opensc-utils-piv-tool=m +CONFIG_PACKAGE_opensc-utils-pkcs11-register=m +CONFIG_PACKAGE_opensc-utils-pkcs11-tool=m +CONFIG_PACKAGE_opensc-utils-pkcs15-crypt=m +CONFIG_PACKAGE_opensc-utils-pkcs15-init=m +CONFIG_PACKAGE_opensc-utils-pkcs15-tool=m +CONFIG_PACKAGE_opensc-utils-sc-hsm-tool=m +CONFIG_PACKAGE_opensc-utils-westcos-tool=m +CONFIG_PACKAGE_openssl-util=m +CONFIG_PACKAGE_openzwave=m +CONFIG_PACKAGE_openzwave-config=m +CONFIG_PACKAGE_owipcalc=m +CONFIG_PACKAGE_passh=m +CONFIG_PACKAGE_pax-utils=m +# CONFIG_PAX_UTILS_SECCOMP is not set +CONFIG_PACKAGE_pciids=m +CONFIG_PACKAGE_pciutils=m +CONFIG_PACKAGE_pcmciautils=m +CONFIG_PACKAGE_pcsc-tools=m +CONFIG_PACKAGE_pcscd=m +CONFIG_PACKAGE_podman=m # # Configuration @@ -6997,82 +13628,179 @@ CONFIG_PACKAGE_mt5311=m # CONFIG_PODMAN_SELINUX_SUPPORT is not set # end of Configuration -# CONFIG_PACKAGE_poemgr is not set +CONFIG_PACKAGE_poemgr=m # CONFIG_PACKAGE_policycoreutils is not set -# CONFIG_PACKAGE_powertop is not set -# CONFIG_PACKAGE_pps-tools is not set +CONFIG_PACKAGE_powertop=m +CONFIG_PACKAGE_pps-tools=m # CONFIG_PACKAGE_prlimit is not set -# CONFIG_PACKAGE_procps-ng is not set +CONFIG_PACKAGE_procps-ng=m +CONFIG_PACKAGE_procps-ng-free=m +CONFIG_PACKAGE_procps-ng-kill=m +CONFIG_PACKAGE_procps-ng-pgrep=m +CONFIG_PACKAGE_procps-ng-pkill=m +CONFIG_PACKAGE_procps-ng-pmap=m +CONFIG_PACKAGE_procps-ng-ps=m +CONFIG_PACKAGE_procps-ng-pwdx=m +CONFIG_PACKAGE_procps-ng-skill=m +CONFIG_PACKAGE_procps-ng-slabtop=m +CONFIG_PACKAGE_procps-ng-snice=m +CONFIG_PACKAGE_procps-ng-sysctl=m +CONFIG_PACKAGE_procps-ng-tload=m +CONFIG_PACKAGE_procps-ng-top=m +CONFIG_PACKAGE_procps-ng-uptime=m +CONFIG_PACKAGE_procps-ng-vmstat=m +CONFIG_PACKAGE_procps-ng-w=m +CONFIG_PACKAGE_procps-ng-watch=m CONFIG_PACKAGE_procps-ng3=m -# CONFIG_PACKAGE_procs is not set -# CONFIG_PACKAGE_progress is not set -# CONFIG_PACKAGE_prometheus-node-exporter-lua is not set -# CONFIG_PACKAGE_prometheus-node-exporter-ucode is not set -# CONFIG_PACKAGE_prometheus-statsd-exporter is not set -# CONFIG_PACKAGE_pservice is not set -# CONFIG_PACKAGE_psmisc is not set -# CONFIG_PACKAGE_pv is not set -# CONFIG_PACKAGE_qfirehose is not set -# CONFIG_PACKAGE_qmi-utils is not set -# CONFIG_PACKAGE_qrencode is not set -# CONFIG_PACKAGE_quectel-timesync is not set -# CONFIG_PACKAGE_quota is not set +CONFIG_PACKAGE_procs=m +CONFIG_PACKAGE_progress=m +CONFIG_PACKAGE_prometheus-node-exporter-lua=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-bmx7=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-dawn=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-hostapd_ubus_stations=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-hwmon=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-nat_traffic=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-netstat=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-openwrt=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-snmp6=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-textfile=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-thermal=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-ubnt-manager=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-uci_dhcp_host=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-wifi=m +CONFIG_PACKAGE_prometheus-node-exporter-lua-wifi_stations=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-dnsmasq=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-netstat=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-openwrt=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-snmp6=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-uci_dhcp_host=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-wifi=m +CONFIG_PACKAGE_prometheus-node-exporter-ucode-wireguard=m +CONFIG_PACKAGE_prometheus-statsd-exporter=m +CONFIG_PACKAGE_pservice=m +CONFIG_PACKAGE_psmisc=m +CONFIG_PACKAGE_pv=m +CONFIG_PACKAGE_qfirehose=m +CONFIG_PACKAGE_qmi-utils=m +CONFIG_PACKAGE_qrencode=m +CONFIG_PACKAGE_quectel-timesync=m +CONFIG_PACKAGE_quota=m # CONFIG_PACKAGE_ravpower-mcu is not set -# CONFIG_PACKAGE_readsb is not set -# CONFIG_PACKAGE_relayctl is not set +CONFIG_PACKAGE_readsb=m +CONFIG_PACKAGE_relayctl=m # CONFIG_PACKAGE_rename is not set -# CONFIG_PACKAGE_reptyr is not set -# CONFIG_PACKAGE_restic is not set +CONFIG_PACKAGE_reptyr=m +CONFIG_PACKAGE_restic=m # CONFIG_PACKAGE_rev is not set -# CONFIG_PACKAGE_ripgrep is not set -# CONFIG_PACKAGE_rng-tools is not set -# CONFIG_PACKAGE_rtl-ais is not set -# CONFIG_PACKAGE_rtl-sdr is not set -# CONFIG_PACKAGE_rtl_433 is not set -# CONFIG_PACKAGE_rtl_433-ssl is not set +CONFIG_PACKAGE_ripgrep=m +CONFIG_PACKAGE_rng-tools=m +CONFIG_PACKAGE_rtl-ais=m +CONFIG_PACKAGE_rtl-sdr=m +CONFIG_PACKAGE_rtl_433=m +CONFIG_PACKAGE_rtl_433-ssl=m CONFIG_PACKAGE_runc=m -# CONFIG_PACKAGE_sane-backends is not set -# CONFIG_PACKAGE_sane-daemon is not set -# CONFIG_PACKAGE_sane-frontends is not set +CONFIG_PACKAGE_sane-backends=m + +# +# Select SANE backends +# +CONFIG_PACKAGE_sane-backends-all=m + +# +# Backends +# +# end of Select SANE backends + +CONFIG_PACKAGE_sane-daemon=m +CONFIG_PACKAGE_sane-frontends=m # CONFIG_PACKAGE_secilc is not set -# CONFIG_PACKAGE_sed is not set -# CONFIG_PACKAGE_sedutil is not set -# CONFIG_PACKAGE_selinux-audit2allow is not set -# CONFIG_PACKAGE_selinux-chcat is not set -# CONFIG_PACKAGE_selinux-python is not set -# CONFIG_PACKAGE_selinux-semanage is not set -# CONFIG_PACKAGE_selinux-sepolgen-ifgen is not set -# CONFIG_PACKAGE_selinux-sepolicy is not set -# CONFIG_PACKAGE_semodule-expand is not set -# CONFIG_PACKAGE_semodule-link is not set -# CONFIG_PACKAGE_semodule-package is not set -# CONFIG_PACKAGE_semodule-unpackage is not set -# CONFIG_PACKAGE_serdisplib-tools is not set -# CONFIG_PACKAGE_setools-sechecker is not set -# CONFIG_PACKAGE_setools-sediff is not set -# CONFIG_PACKAGE_setools-sedta is not set -# CONFIG_PACKAGE_setools-seinfo is not set -# CONFIG_PACKAGE_setools-seinfoflow is not set -# CONFIG_PACKAGE_setools-sesearch is not set -# CONFIG_PACKAGE_setserial is not set -# CONFIG_PACKAGE_sexpect is not set -# CONFIG_PACKAGE_shadow-utils is not set -# CONFIG_PACKAGE_shared-mime-info is not set -# CONFIG_PACKAGE_sipcalc is not set -# CONFIG_PACKAGE_sispmctl is not set -# CONFIG_PACKAGE_slide-switch is not set -# CONFIG_PACKAGE_smartd is not set -# CONFIG_PACKAGE_smartd-mail is not set -# CONFIG_PACKAGE_smartmontools is not set -# CONFIG_PACKAGE_smartmontools-drivedb is not set -# CONFIG_PACKAGE_sms-tool is not set -# CONFIG_PACKAGE_smstools3 is not set -# CONFIG_PACKAGE_sockread is not set -# CONFIG_PACKAGE_spi-tools is not set +CONFIG_PACKAGE_sed=m +CONFIG_PACKAGE_sedutil=m +CONFIG_PACKAGE_selinux-audit2allow=m +CONFIG_PACKAGE_selinux-chcat=m +CONFIG_PACKAGE_selinux-python=m +CONFIG_PACKAGE_selinux-semanage=m +CONFIG_PACKAGE_selinux-sepolgen-ifgen=m +CONFIG_PACKAGE_selinux-sepolicy=m +CONFIG_PACKAGE_semodule-expand=m +CONFIG_PACKAGE_semodule-link=m +CONFIG_PACKAGE_semodule-package=m +CONFIG_PACKAGE_semodule-unpackage=m +CONFIG_PACKAGE_semodule-utils=m +CONFIG_PACKAGE_serdisplib-tools=m +CONFIG_PACKAGE_setools-sechecker=m +CONFIG_PACKAGE_setools-sediff=m +CONFIG_PACKAGE_setools-sedta=m +CONFIG_PACKAGE_setools-seinfo=m +CONFIG_PACKAGE_setools-seinfoflow=m +CONFIG_PACKAGE_setools-sesearch=m +CONFIG_PACKAGE_setools=m +CONFIG_PACKAGE_setserial=m +CONFIG_PACKAGE_sexpect=m +CONFIG_PACKAGE_shadow=m +CONFIG_PACKAGE_shadow-chage=m +CONFIG_PACKAGE_shadow-chfn=m +CONFIG_PACKAGE_shadow-chgpasswd=m +CONFIG_PACKAGE_shadow-chpasswd=m +CONFIG_PACKAGE_shadow-chsh=m +CONFIG_PACKAGE_shadow-common=m +CONFIG_PACKAGE_shadow-expiry=m +CONFIG_PACKAGE_shadow-faillog=m +CONFIG_PACKAGE_shadow-gpasswd=m +CONFIG_PACKAGE_shadow-groupadd=m +CONFIG_PACKAGE_shadow-groupdel=m +CONFIG_PACKAGE_shadow-groupmems=m +CONFIG_PACKAGE_shadow-groupmod=m +CONFIG_PACKAGE_shadow-groups=m +CONFIG_PACKAGE_shadow-grpck=m +CONFIG_PACKAGE_shadow-grpconv=m +CONFIG_PACKAGE_shadow-grpunconv=m +CONFIG_PACKAGE_shadow-lastlog=m +CONFIG_PACKAGE_shadow-login=m +CONFIG_PACKAGE_shadow-logoutd=m +CONFIG_PACKAGE_shadow-newgidmap=m +CONFIG_PACKAGE_shadow-newgrp=m +CONFIG_PACKAGE_shadow-newuidmap=m +CONFIG_PACKAGE_shadow-newusers=m +CONFIG_PACKAGE_shadow-nologin=m +CONFIG_PACKAGE_shadow-passwd=m +CONFIG_PACKAGE_shadow-pwck=m +CONFIG_PACKAGE_shadow-pwconv=m +CONFIG_PACKAGE_shadow-pwunconv=m +CONFIG_PACKAGE_shadow-su=m +CONFIG_PACKAGE_shadow-useradd=m +CONFIG_PACKAGE_shadow-userdel=m +CONFIG_PACKAGE_shadow-usermod=m +CONFIG_PACKAGE_shadow-utils=m + +# +# Select shadow utilities +# +CONFIG_shadow-all=y + +# +# Utilities +# +CONFIG_PACKAGE_shadow-vipw=m +# end of Select shadow utilities + +CONFIG_PACKAGE_shared-mime-info=m +CONFIG_PACKAGE_sipcalc=m +CONFIG_PACKAGE_sispmctl=m +CONFIG_PACKAGE_slide-switch=m +CONFIG_PACKAGE_smartd=m +CONFIG_PACKAGE_smartd-mail=m +CONFIG_PACKAGE_smartmontools=m +CONFIG_PACKAGE_smartmontools-drivedb=m +CONFIG_PACKAGE_sms-tool=m +CONFIG_PACKAGE_smstools3=m +CONFIG_PACKAGE_sockread=m +CONFIG_PACKAGE_spi-tools=m # CONFIG_PACKAGE_spidev-test is not set -# CONFIG_PACKAGE_ssdeep is not set -# CONFIG_PACKAGE_sshpass is not set -# CONFIG_PACKAGE_stdiscosrv is not set +CONFIG_PACKAGE_ssdeep=m +CONFIG_PACKAGE_sshpass=m +CONFIG_PACKAGE_stdiscosrv=m CONFIG_PACKAGE_stlink=m CONFIG_PACKAGE_stlink-st-flash=m CONFIG_PACKAGE_stlink-st-info=m @@ -7082,70 +13810,213 @@ CONFIG_PACKAGE_stlink-st-util=m CONFIG_STRACE_NONE=y # CONFIG_STRACE_LIBDW is not set # CONFIG_STRACE_LIBUNWIND is not set -# CONFIG_PACKAGE_strelaysrv is not set -# CONFIG_PACKAGE_stress is not set -# CONFIG_PACKAGE_stress-ng is not set -# CONFIG_PACKAGE_sumo is not set -# CONFIG_PACKAGE_swanmon is not set -# CONFIG_PACKAGE_syncthing is not set -# CONFIG_PACKAGE_sysrepo is not set -# CONFIG_PACKAGE_sysrepocfg is not set -# CONFIG_PACKAGE_sysrepoctl is not set -# CONFIG_PACKAGE_sysstat is not set -# CONFIG_PACKAGE_tar is not set +CONFIG_PACKAGE_strelaysrv=m +CONFIG_PACKAGE_stress=m +CONFIG_PACKAGE_stress-ng=m +CONFIG_PACKAGE_sumo=m +CONFIG_PACKAGE_swanmon=m +CONFIG_PACKAGE_syncthing=m +CONFIG_PACKAGE_sysrepo=m +CONFIG_PACKAGE_sysrepocfg=m +CONFIG_PACKAGE_sysrepoctl=m +CONFIG_PACKAGE_sysstat=m +CONFIG_PACKAGE_tar=m +CONFIG_PACKAGE_TAR_POSIX_ACL=y +CONFIG_PACKAGE_TAR_XATTR=y +CONFIG_PACKAGE_TAR_BZIP2=y +CONFIG_PACKAGE_TAR_GZIP=y +CONFIG_PACKAGE_TAR_XZ=y +CONFIG_PACKAGE_TAR_ZSTD=y # CONFIG_PACKAGE_taskset is not set -# CONFIG_PACKAGE_taskwarrior is not set -# CONFIG_PACKAGE_telegraf is not set -# CONFIG_PACKAGE_telegraf-full is not set +CONFIG_PACKAGE_taskwarrior=m +CONFIG_PACKAGE_telegraf=m +CONFIG_PACKAGE_telegraf-full=m CONFIG_PACKAGE_telldus-core=m CONFIG_PACKAGE_telldus-mqtt=m -# CONFIG_PACKAGE_temperusb is not set -# CONFIG_PACKAGE_tesseract is not set +CONFIG_PACKAGE_temperusb=m +CONFIG_PACKAGE_tesseract=m +CONFIG_PACKAGE_tesseract-data-afr=m +CONFIG_PACKAGE_tesseract-data-amh=m +CONFIG_PACKAGE_tesseract-data-ara=m +CONFIG_PACKAGE_tesseract-data-asm=m +CONFIG_PACKAGE_tesseract-data-aze=m +CONFIG_PACKAGE_tesseract-data-aze_cyrl=m +CONFIG_PACKAGE_tesseract-data-bel=m +CONFIG_PACKAGE_tesseract-data-ben=m +CONFIG_PACKAGE_tesseract-data-bod=m +CONFIG_PACKAGE_tesseract-data-bos=m +CONFIG_PACKAGE_tesseract-data-bre=m +CONFIG_PACKAGE_tesseract-data-bul=m +CONFIG_PACKAGE_tesseract-data-cat=m +CONFIG_PACKAGE_tesseract-data-ceb=m +CONFIG_PACKAGE_tesseract-data-ces=m +CONFIG_PACKAGE_tesseract-data-chi_sim=m +CONFIG_PACKAGE_tesseract-data-chi_sim_vert=m +CONFIG_PACKAGE_tesseract-data-chi_tra=m +CONFIG_PACKAGE_tesseract-data-chi_tra_vert=m +CONFIG_PACKAGE_tesseract-data-chr=m +CONFIG_PACKAGE_tesseract-data-cos=m +CONFIG_PACKAGE_tesseract-data-cym=m +CONFIG_PACKAGE_tesseract-data-dan=m +CONFIG_PACKAGE_tesseract-data-dan_frak=m +CONFIG_PACKAGE_tesseract-data-deu=m +CONFIG_PACKAGE_tesseract-data-deu_frak=m +CONFIG_PACKAGE_tesseract-data-div=m +CONFIG_PACKAGE_tesseract-data-dzo=m +CONFIG_PACKAGE_tesseract-data-ell=m +CONFIG_PACKAGE_tesseract-data-eng=m +CONFIG_PACKAGE_tesseract-data-enm=m +CONFIG_PACKAGE_tesseract-data-epo=m +CONFIG_PACKAGE_tesseract-data-equ=m +CONFIG_PACKAGE_tesseract-data-est=m +CONFIG_PACKAGE_tesseract-data-eus=m +CONFIG_PACKAGE_tesseract-data-fao=m +CONFIG_PACKAGE_tesseract-data-fas=m +CONFIG_PACKAGE_tesseract-data-fil=m +CONFIG_PACKAGE_tesseract-data-fin=m +CONFIG_PACKAGE_tesseract-data-fra=m +CONFIG_PACKAGE_tesseract-data-frk=m +CONFIG_PACKAGE_tesseract-data-frm=m +CONFIG_PACKAGE_tesseract-data-fry=m +CONFIG_PACKAGE_tesseract-data-gla=m +CONFIG_PACKAGE_tesseract-data-gle=m +CONFIG_PACKAGE_tesseract-data-glg=m +CONFIG_PACKAGE_tesseract-data-grc=m +CONFIG_PACKAGE_tesseract-data-guj=m +CONFIG_PACKAGE_tesseract-data-hat=m +CONFIG_PACKAGE_tesseract-data-heb=m +CONFIG_PACKAGE_tesseract-data-hin=m +CONFIG_PACKAGE_tesseract-data-hrv=m +CONFIG_PACKAGE_tesseract-data-hun=m +CONFIG_PACKAGE_tesseract-data-hye=m +CONFIG_PACKAGE_tesseract-data-iku=m +CONFIG_PACKAGE_tesseract-data-ind=m +CONFIG_PACKAGE_tesseract-data-isl=m +CONFIG_PACKAGE_tesseract-data-ita=m +CONFIG_PACKAGE_tesseract-data-ita_old=m +CONFIG_PACKAGE_tesseract-data-jav=m +CONFIG_PACKAGE_tesseract-data-jpn=m +CONFIG_PACKAGE_tesseract-data-jpn_vert=m +CONFIG_PACKAGE_tesseract-data-kan=m +CONFIG_PACKAGE_tesseract-data-kat=m +CONFIG_PACKAGE_tesseract-data-kat_old=m +CONFIG_PACKAGE_tesseract-data-kaz=m +CONFIG_PACKAGE_tesseract-data-khm=m +CONFIG_PACKAGE_tesseract-data-kir=m +CONFIG_PACKAGE_tesseract-data-kmr=m +CONFIG_PACKAGE_tesseract-data-kor=m +CONFIG_PACKAGE_tesseract-data-kor_vert=m +CONFIG_PACKAGE_tesseract-data-lao=m +CONFIG_PACKAGE_tesseract-data-lat=m +CONFIG_PACKAGE_tesseract-data-lav=m +CONFIG_PACKAGE_tesseract-data-lit=m +CONFIG_PACKAGE_tesseract-data-ltz=m +CONFIG_PACKAGE_tesseract-data-mal=m +CONFIG_PACKAGE_tesseract-data-mar=m +CONFIG_PACKAGE_tesseract-data-mkd=m +CONFIG_PACKAGE_tesseract-data-mlt=m +CONFIG_PACKAGE_tesseract-data-mon=m +CONFIG_PACKAGE_tesseract-data-mri=m +CONFIG_PACKAGE_tesseract-data-msa=m +CONFIG_PACKAGE_tesseract-data-mya=m +CONFIG_PACKAGE_tesseract-data-nep=m +CONFIG_PACKAGE_tesseract-data-nld=m +CONFIG_PACKAGE_tesseract-data-nor=m +CONFIG_PACKAGE_tesseract-data-oci=m +CONFIG_PACKAGE_tesseract-data-ori=m +CONFIG_PACKAGE_tesseract-data-osd=m +CONFIG_PACKAGE_tesseract-data-pan=m +CONFIG_PACKAGE_tesseract-data-pol=m +CONFIG_PACKAGE_tesseract-data-por=m +CONFIG_PACKAGE_tesseract-data-pus=m +CONFIG_PACKAGE_tesseract-data-que=m +CONFIG_PACKAGE_tesseract-data-ron=m +CONFIG_PACKAGE_tesseract-data-rus=m +CONFIG_PACKAGE_tesseract-data-san=m +CONFIG_PACKAGE_tesseract-data-sin=m +CONFIG_PACKAGE_tesseract-data-slk=m +CONFIG_PACKAGE_tesseract-data-slk_frak=m +CONFIG_PACKAGE_tesseract-data-slv=m +CONFIG_PACKAGE_tesseract-data-snd=m +CONFIG_PACKAGE_tesseract-data-spa=m +CONFIG_PACKAGE_tesseract-data-spa_old=m +CONFIG_PACKAGE_tesseract-data-sqi=m +CONFIG_PACKAGE_tesseract-data-srp=m +CONFIG_PACKAGE_tesseract-data-srp_latn=m +CONFIG_PACKAGE_tesseract-data-sun=m +CONFIG_PACKAGE_tesseract-data-swa=m +CONFIG_PACKAGE_tesseract-data-swe=m +CONFIG_PACKAGE_tesseract-data-syr=m +CONFIG_PACKAGE_tesseract-data-tam=m +CONFIG_PACKAGE_tesseract-data-tat=m +CONFIG_PACKAGE_tesseract-data-tel=m +CONFIG_PACKAGE_tesseract-data-tgk=m +CONFIG_PACKAGE_tesseract-data-tgl=m +CONFIG_PACKAGE_tesseract-data-tha=m +CONFIG_PACKAGE_tesseract-data-tir=m +CONFIG_PACKAGE_tesseract-data-ton=m +CONFIG_PACKAGE_tesseract-data-tur=m +CONFIG_PACKAGE_tesseract-data-uig=m +CONFIG_PACKAGE_tesseract-data-ukr=m +CONFIG_PACKAGE_tesseract-data-urd=m +CONFIG_PACKAGE_tesseract-data-uzb=m +CONFIG_PACKAGE_tesseract-data-uzb_cyrl=m +CONFIG_PACKAGE_tesseract-data-vie=m +CONFIG_PACKAGE_tesseract-data-yid=m +CONFIG_PACKAGE_tesseract-data-yor=m CONFIG_PACKAGE_tini=m -# CONFIG_PACKAGE_tinyionice is not set -# CONFIG_PACKAGE_tracertools is not set -# CONFIG_PACKAGE_tree is not set -# CONFIG_PACKAGE_triggerhappy is not set -# CONFIG_PACKAGE_ubnt-manager is not set +CONFIG_PACKAGE_tinyionice=m +CONFIG_PACKAGE_tracertools=m +CONFIG_PACKAGE_tree=m +CONFIG_PACKAGE_triggerhappy=m +CONFIG_PACKAGE_ubnt-manager=m # CONFIG_PACKAGE_ucode-mod-bpf is not set -# CONFIG_PACKAGE_ucode-mod-html is not set -# CONFIG_PACKAGE_ucode-mod-lua is not set +CONFIG_PACKAGE_ucode-mod-html=m +CONFIG_PACKAGE_ucode-mod-lua=m +CONFIG_PACKAGE_ucode-mod-uclient=m CONFIG_PACKAGE_ucode-mod-udebug=m CONFIG_PACKAGE_udebug-cli=m CONFIG_PACKAGE_udebugd=m -# CONFIG_PACKAGE_udns-dnsget is not set -# CONFIG_PACKAGE_udns-ex-rdns is not set -# CONFIG_PACKAGE_udns-rblcheck is not set +CONFIG_PACKAGE_udns-dnsget=m +CONFIG_PACKAGE_udns-ex-rdns=m +CONFIG_PACKAGE_udns-rblcheck=m # CONFIG_PACKAGE_ugps is not set -# CONFIG_PACKAGE_uhubctl is not set -# CONFIG_PACKAGE_uledd is not set -# CONFIG_PACKAGE_unix2dos is not set +CONFIG_PACKAGE_uhubctl=m +CONFIG_PACKAGE_uledd=m +CONFIG_PACKAGE_unix2dos=m # CONFIG_PACKAGE_unshare is not set # CONFIG_PACKAGE_usb-modeswitch is not set -# CONFIG_PACKAGE_usbids is not set -# CONFIG_PACKAGE_usbutils is not set +CONFIG_PACKAGE_usbids=m +CONFIG_PACKAGE_usbutils=m # CONFIG_PACKAGE_uuidd is not set -# CONFIG_PACKAGE_uuidgen is not set -# CONFIG_PACKAGE_uvcdynctrl is not set -# CONFIG_PACKAGE_v4l-utils is not set -# CONFIG_PACKAGE_view1090 is not set -# CONFIG_PACKAGE_viewadsb is not set -# CONFIG_PACKAGE_watchcat is not set +CONFIG_PACKAGE_uuidgen=m +CONFIG_PACKAGE_uvcdynctrl=m +CONFIG_PACKAGE_v4l-utils=m +CONFIG_PACKAGE_view1090=m +CONFIG_PACKAGE_viewadsb=m +CONFIG_PACKAGE_watchcat=m # CONFIG_PACKAGE_whereis is not set -# CONFIG_PACKAGE_which is not set -# CONFIG_PACKAGE_whiptail is not set -# CONFIG_PACKAGE_whois is not set -# CONFIG_PACKAGE_wifitoggle is not set -# CONFIG_PACKAGE_wipe is not set -# CONFIG_PACKAGE_xsltproc is not set -# CONFIG_PACKAGE_xxd is not set -# CONFIG_PACKAGE_xxhash is not set -# CONFIG_PACKAGE_yanglint is not set -# CONFIG_PACKAGE_yara is not set -# CONFIG_PACKAGE_ykclient is not set -# CONFIG_PACKAGE_ykpers is not set -# CONFIG_PACKAGE_yq is not set -# CONFIG_PACKAGE_zyxel-reset is not set +CONFIG_PACKAGE_which=m +CONFIG_PACKAGE_whiptail=m +CONFIG_PACKAGE_whois=m +CONFIG_PACKAGE_wifitoggle=m +CONFIG_PACKAGE_wipe=m +CONFIG_PACKAGE_xsltproc=m +CONFIG_PACKAGE_xxd=m +CONFIG_PACKAGE_xxhash=m +CONFIG_PACKAGE_yanglint=m +CONFIG_PACKAGE_yara=m + +# +# Optional modules +# +CONFIG_YARA_module_magic=y +# CONFIG_YARA_module_cuckoo is not set +# CONFIG_YARA_module_dotnet is not set +CONFIG_PACKAGE_ykclient=m +CONFIG_PACKAGE_ykpers=m +CONFIG_PACKAGE_yq=m +CONFIG_PACKAGE_zyxel-reset=m # end of Utilities # @@ -7155,6 +14026,6 @@ CONFIG_PACKAGE_udebugd=m # # Font-Utils # -# CONFIG_PACKAGE_fontconfig is not set +CONFIG_PACKAGE_fontconfig=m # end of Font-Utils # end of Xorg diff --git a/include/download.mk b/include/download.mk index e261b140354c60..960dd816c04337 100644 --- a/include/download.mk +++ b/include/download.mk @@ -10,10 +10,10 @@ LEDE_GIT = $(PROJECT_GIT) ifdef PKG_SOURCE_VERSION ifndef PKG_VERSION - PKG_VERSION := $(if $(PKG_SOURCE_DATE),$(PKG_SOURCE_DATE)-)$(call version_abbrev,$(PKG_SOURCE_VERSION)) + PKG_VERSION := $(if $(PKG_SOURCE_DATE),$(subst -,.,$(PKG_SOURCE_DATE)),0)~$(call version_abbrev,$(PKG_SOURCE_VERSION)) endif PKG_SOURCE_SUBDIR ?= $(PKG_NAME)-$(PKG_VERSION) - PKG_SOURCE ?= $(PKG_SOURCE_SUBDIR).tar.xz + PKG_SOURCE ?= $(PKG_SOURCE_SUBDIR).tar.zst endif DOWNLOAD_RDEP=$(STAMP_PREPARED) $(HOST_STAMP_PREPARED) @@ -215,6 +215,11 @@ define DownloadMethod/github_archive endef # Only intends to be called as a submethod from other DownloadMethod +# +# We first clone, checkout and then we generate a tar using the +# git archive command to apply any rules of .gitattributes +# To keep consistency with github generated tar archive, we default +# the short hash to 8 (default is 7). (for git log related usage) define DownloadMethod/rawgit echo "Checking out files from the git repository..."; \ mkdir -p $(TMP_DIR)/dl && \ @@ -222,11 +227,17 @@ define DownloadMethod/rawgit rm -rf $(SUBDIR) && \ [ \! -d $(SUBDIR) ] && \ git clone $(OPTS) $(URL) $(SUBDIR) && \ - (cd $(SUBDIR) && git checkout $(VERSION) && \ - $(if $(filter skip,$(SUBMODULES)),true,git submodule update --init --recursive -- $(SUBMODULES))) && \ - echo "Packing checkout..." && \ + (cd $(SUBDIR) && git checkout $(VERSION)) && \ export TAR_TIMESTAMP=`cd $(SUBDIR) && git log -1 --format='@%ct'` && \ - rm -rf $(SUBDIR)/.git && \ + echo "Generating formal git archive (apply .gitattributes rules)" && \ + (cd $(SUBDIR) && git config core.abbrev 8 && \ + git archive --format=tar HEAD --output=../$(SUBDIR).tar.git) && \ + $(if $(filter skip,$(SUBMODULES)),true,$(TAR) --ignore-failed-read -C $(SUBDIR) -f $(SUBDIR).tar.git -r .git .gitmodules 2>/dev/null) && \ + rm -rf $(SUBDIR) && mkdir $(SUBDIR) && \ + $(TAR) -C $(SUBDIR) -xf $(SUBDIR).tar.git && \ + (cd $(SUBDIR) && $(if $(filter skip,$(SUBMODULES)),true,git submodule update --init --recursive -- $(SUBMODULES) && \ + rm -rf .git .gitmodules)) && \ + echo "Packing checkout..." && \ $(call dl_tar_pack,$(TMP_DIR)/dl/$(FILE),$(SUBDIR)) && \ mv $(TMP_DIR)/dl/$(FILE) $(DL_DIR)/ && \ rm -rf $(SUBDIR); diff --git a/include/image-commands.mk b/include/image-commands.mk index 79a64f4bc13997..832c85ee7075ef 100644 --- a/include/image-commands.mk +++ b/include/image-commands.mk @@ -244,6 +244,43 @@ define Build/copy-file cat "$(1)" > "$@" endef +# Create a header for a D-Link AI series recovery image and add it at the beginning of the image +# Currently supported: AQUILA M30, EAGLE M32 and R32 +# Arguments: +# 1: Start string of the header +# 2: Firmware version +# 3: Block start address +# 4: Block length +# 5: Device FMID +define Build/dlink-ai-recovery-header + $(eval header_start=$(word 1,$(1))) + $(eval firmware_version=$(word 2,$(1))) + $(eval block_start=$(word 3,$(1))) + $(eval block_length=$(word 4,$(1))) + $(eval device_fmid=$(word 5,$(1))) +# create $@.header without the checksum + echo -en "$(header_start)\x00\x00" > "$@.header" +# Calculate checksum over data area ($@) and append it to the header. +# The checksum is the 2byte-sum over the whole data area. +# Every overflow during the checksum calculation must increment the current checksum value by 1. + od -v -w2 -tu2 -An --endian little "$@" | awk '{ s+=$$1; } END { s%=65535; printf "%c%c",s%256,s/256; }' >> "$@.header" + echo -en "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00" >> "$@.header" + echo -en "$(firmware_version)" >> "$@.header" +# Only one block supported: Erase start/length is identical to data start/length + echo -en "$(block_start)$(block_length)$(block_start)$(block_length)" >> "$@.header" +# Only zeros + echo -en "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" >> "$@.header" +# Last 16 bytes, but without checksum + echo -en "\x42\x48\x02\x00\x00\x00\x08\x00\x00\x00\x00\x00" >> "$@.header" + echo -en "$(device_fmid)" >> "$@.header" +# Calculate and append checksum: The checksum must be set so that the 2byte-sum of the whole header is 0. +# Every overflow during the checksum calculation must increment the current checksum value by 1. + od -v -w2 -tu2 -An --endian little "$@.header" | awk '{s+=65535-$$1;}END{s%=65535;printf "%c%c",s%256,s/256;}' >> "$@.header" + cat "$@.header" "$@" > "$@.new" + mv "$@.new" "$@" + rm "$@.header" +endef + define Build/dlink-sge-image $(STAGING_DIR_HOST)/bin/dlink-sge-image $(1) $@ $@.enc mv $@.enc $@ diff --git a/include/kernel-5.15 b/include/kernel-5.15 index d93ae194b8aa1c..84a0d0a1bffe15 100644 --- a/include/kernel-5.15 +++ b/include/kernel-5.15 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.15 = .148 -LINUX_KERNEL_HASH-5.15.148 = c48575c97fd9f4767cbe50a13b1b2b40ee42830aba3182fabd35a03259a6e5d8 +LINUX_VERSION-5.15 = .153 +LINUX_KERNEL_HASH-5.15.153 = d7ddb1e144a88773b56a5b4a71baea0b241f3996d446be45290537c6997c84bc diff --git a/include/kernel-6.1 b/include/kernel-6.1 index 6c05ca0236eed2..0c09df7a7deff9 100644 --- a/include/kernel-6.1 +++ b/include/kernel-6.1 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.1 = .79 -LINUX_KERNEL_HASH-6.1.79 = faa49ca22fb55ed4d5ca2a55e07dd10e4e171cfc3b92568a631453cd2068b39b +LINUX_VERSION-6.1 = .82 +LINUX_KERNEL_HASH-6.1.82 = d150d2d9d416877668d8b56f75759f166168d192419eefaa942ed67225cbec06 diff --git a/include/kernel-6.6 b/include/kernel-6.6 index 872a5b2aac1856..5c67d525778c03 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .23 -LINUX_KERNEL_HASH-6.6.23 = 200fd119cb9ef06bcedcdb52be00ba443163eab154295c5831fed9a12211a8b9 +LINUX_VERSION-6.6 = .25 +LINUX_KERNEL_HASH-6.6.25 = 99d210be87908233a55b0fadc0dccd3b95926c0651b6b82e37350b2029de1f44 diff --git a/include/kernel.mk b/include/kernel.mk index 8236416132d63d..9969c519dda8c3 100644 --- a/include/kernel.mk +++ b/include/kernel.mk @@ -211,8 +211,8 @@ define KernelPackage SECTION:=kernel CATEGORY:=Kernel modules DESCRIPTION:=$(DESCRIPTION) - EXTRA_DEPENDS:=kernel (=$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC)) - VERSION:=$(LINUX_VERSION)$(if $(PKG_VERSION),+$(PKG_VERSION))-$(if $(PKG_RELEASE),$(PKG_RELEASE),$(LINUX_RELEASE)) + EXTRA_DEPENDS:=kernel (=$(LINUX_VERSION)~$(LINUX_VERMAGIC)-r$(LINUX_RELEASE)) + VERSION:=$(LINUX_VERSION)$(if $(PKG_VERSION),.$(PKG_VERSION))-r$(if $(PKG_RELEASE),$(PKG_RELEASE),$(LINUX_RELEASE)) PKGFLAGS:=$(PKGFLAGS) $(call KernelPackage/$(1)) $(call KernelPackage/$(1)/$(BOARD)) diff --git a/include/meson.mk b/include/meson.mk index 74c9d3dd7fa25f..2a20c2bd6bd04e 100644 --- a/include/meson.mk +++ b/include/meson.mk @@ -98,7 +98,9 @@ endef define Host/Configure/Meson $(call Meson/CreateNativeFile,$(HOST_BUILD_DIR)/openwrt-native.txt) $(call Meson, \ + setup \ --native-file $(HOST_BUILD_DIR)/openwrt-native.txt \ + -Ddefault_library=static \ $(MESON_HOST_ARGS) \ $(MESON_HOST_BUILD_DIR) \ $(MESON_HOST_BUILD_DIR)/.., \ @@ -121,9 +123,11 @@ define Build/Configure/Meson $(call Meson/CreateNativeFile,$(PKG_BUILD_DIR)/openwrt-native.txt) $(call Meson/CreateCrossFile,$(PKG_BUILD_DIR)/openwrt-cross.txt) $(call Meson, \ + setup \ --buildtype plain \ --native-file $(PKG_BUILD_DIR)/openwrt-native.txt \ --cross-file $(PKG_BUILD_DIR)/openwrt-cross.txt \ + -Ddefault_library=both \ $(MESON_ARGS) \ $(MESON_BUILD_DIR) \ $(MESON_BUILD_DIR)/.., \ diff --git a/include/package-defaults.mk b/include/package-defaults.mk index 392aad0d5db8e0..37de9f0ccbacd7 100644 --- a/include/package-defaults.mk +++ b/include/package-defaults.mk @@ -23,7 +23,7 @@ define Package/Default SOURCE:=$(patsubst $(TOPDIR)/%,%,$(patsubst $(TOPDIR)/package/%,feeds/base/%,$(CURDIR))) ifneq ($(PKG_VERSION),) ifneq ($(PKG_RELEASE),) - VERSION:=$(PKG_VERSION)-$(PKG_RELEASE) + VERSION:=$(PKG_VERSION)-r$(PKG_RELEASE) else VERSION:=$(PKG_VERSION) endif diff --git a/include/target.mk b/include/target.mk index b5e3e7ff6fdeca..da54592dee348b 100644 --- a/include/target.mk +++ b/include/target.mk @@ -208,7 +208,7 @@ LINUX_RECONF_DIFF = $(SCRIPT_DIR)/kconfig.pl - '>' $(call __linux_confcmd,$(filt ifeq ($(DUMP),1) BuildTarget=$(BuildTargets/DumpCurrent) - CPU_CFLAGS = -Os -pipe + CPU_CFLAGS = -O2 -pipe -march=sandybridge -mtune=sandybridge ifneq ($(findstring mips,$(ARCH)),) ifneq ($(findstring mips64,$(ARCH)),) CPU_TYPE ?= mips64 diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 67fc5d29c1d764..b1a834e1bf5130 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -42,7 +42,7 @@ define Package/base-files DEPENDS:=+netifd +libc +jsonfilter +SIGNED_PACKAGES:usign +SIGNED_PACKAGES:openwrt-keyring +NAND_SUPPORT:ubi-utils +fstools +fwtool TITLE:=Base filesystem for OpenWrt URL:=http://openwrt.org/ - VERSION:=$(PKG_RELEASE)-$(REVISION) + VERSION:=$(PKG_RELEASE)~$(lastword $(subst -, ,$(REVISION))) endef define Package/base-files/conffiles diff --git a/package/base-files/files/lib/functions/system.sh b/package/base-files/files/lib/functions/system.sh index 107e67835a2b14..23484c8ad916b4 100644 --- a/package/base-files/files/lib/functions/system.sh +++ b/package/base-files/files/lib/functions/system.sh @@ -205,6 +205,7 @@ mmc_get_mac_ascii() { part=$(find_mmc_part "$part_name") if [ -z "$part" ]; then echo "mmc_get_mac_ascii: partition $part_name not found!" >&2 + return fi get_mac_ascii "$part" "$key" diff --git a/package/boot/apex/Makefile b/package/boot/apex/Makefile index 66a1b7667eb055..cf8d97bb1ca4f5 100644 --- a/package/boot/apex/Makefile +++ b/package/boot/apex/Makefile @@ -14,7 +14,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/linusw/apex.git PKG_SOURCE_VERSION:=483e18aa133d5e25866570c29b124530b2d1e0d3 -PKG_MIRROR_HASH:=42230bb436f5590447ca55e8befb8927e6ea74c1e6953c043bbbef986c411704 +PKG_MIRROR_HASH:=75e0be55e779a6c1f582bf12f5f98ac175404be9172750c1c1015ad78aa8aa3d PKG_TARGETS:=bin PKG_FLAGS:=nonshared diff --git a/package/boot/arm-trusted-firmware-bcm63xx/Makefile b/package/boot/arm-trusted-firmware-bcm63xx/Makefile index 69289af2d9e887..bcb5ce98920391 100644 --- a/package/boot/arm-trusted-firmware-bcm63xx/Makefile +++ b/package/boot/arm-trusted-firmware-bcm63xx/Makefile @@ -9,7 +9,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/bcm63xx/atf.git PKG_SOURCE_DATE:=2021-12-24 PKG_SOURCE_VERSION:=e6d46baf3fae79f693f90bf34f7284c3dfc64aef -PKG_MIRROR_HASH:=9d5d04f572b1b6ddc6eb3064b9cb09f5fe982e82d350790041d35316349af124 +PKG_MIRROR_HASH:=5646abc01152210a8181455151f01145001d61b3fb09619b1cee48008e36b0fa PKG_MAINTAINER:=Rafał Miłecki diff --git a/package/boot/arm-trusted-firmware-mediatek/Makefile b/package/boot/arm-trusted-firmware-mediatek/Makefile index abdd6e7e4a3895..c065c7e67d3019 100644 --- a/package/boot/arm-trusted-firmware-mediatek/Makefile +++ b/package/boot/arm-trusted-firmware-mediatek/Makefile @@ -15,7 +15,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/mtk-openwrt/arm-trusted-firmware.git PKG_SOURCE_DATE:=2023-10-13 PKG_SOURCE_VERSION:=0ea67d76ae8be127c91caa3fcdf449b1fe533175 -PKG_MIRROR_HASH:=b102f6ffaa7cd2202161c44cab4d27f426d9d74c311ea9eb4d2f371ea2af4a2e +PKG_MIRROR_HASH:=22579fae08de942e0d5a420cfaa0b1d310dc9431e85b7e28a3c3ef08331a199d PKG_MAINTAINER:=Daniel Golle diff --git a/package/boot/at91bootstrap/Makefile b/package/boot/at91bootstrap/Makefile index f27a3f01dc2fc3..1b145c8a8b3688 100644 --- a/package/boot/at91bootstrap/Makefile +++ b/package/boot/at91bootstrap/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=at91bootstrap PKG_VERSION:=v4.0.3 -PKG_MIRROR_HASH:=1ecdc31a13350fcdcaa3f77ed8ad73906f79fc668dbb2f337e1d5dd877bf9882 +PKG_MIRROR_HASH:=9c1d42337294b549e6c229ae4c9996efd21e00ae5f968bd780d352e054e24cb7 PKG_SOURCE_VERSION:=1d9e673698d9db4a4f2301559f481274de2e75ae BINARIES_DIR:=build/binaries PKG_CPE_ID:=cpe:/a:linux4sam:at91bootstrap @@ -26,7 +26,7 @@ endif ifeq ($(AT91BOOTSTRAP_V4),n) PKG_VERSION=v3.10.4 - PKG_MIRROR_HASH=6fe61fe90838e785917383bb9e887fa05e1bd061a6725954242f504e38b5c426 + PKG_MIRROR_HASH:=08ab81c37b995592992d6eda3f76ce9aad6e2b3e9d9c4f7e88c1ba8bb8346657 PKG_SOURCE_VERSION=404846dd283894367a015ca59189bcf927d92e11 BINARIES_DIR=binaries endif diff --git a/package/boot/opensbi/Makefile b/package/boot/opensbi/Makefile index 6bb33ad2aa02ac..99a463163063cd 100644 --- a/package/boot/opensbi/Makefile +++ b/package/boot/opensbi/Makefile @@ -12,7 +12,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/riscv/opensbi PKG_SOURCE_DATE:=2022-12-24 PKG_SOURCE_VERSION:=6b5188ca14e59ce7bf71afe4e7d3d557c3d31bf8 -PKG_MIRROR_HASH:=edcdd99da6c62975171981c0aa2b73a27091067da11ccd49816b5ad27d000858 +PKG_MIRROR_HASH:=5939a3225cb37c1dde0b5b9f28f9980c0712533676774ae244d6d84bb09a1439 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) diff --git a/package/boot/rkbin/Makefile b/package/boot/rkbin/Makefile index bb116bdcd2b8de..3b6cc0d42c65c4 100644 --- a/package/boot/rkbin/Makefile +++ b/package/boot/rkbin/Makefile @@ -11,7 +11,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/rockchip-linux/rkbin.git PKG_SOURCE_DATE:=2023-07-26 PKG_SOURCE_VERSION:=b4558da0860ca48bf1a571dd33ccba580b9abe23 -PKG_MIRROR_HASH:=5842fbcb7e217c336235573e431e427f2f745390d989f6765a6c258a5bdf1b6e +PKG_MIRROR_HASH:=7cd2cb8357fa850eb4eef94db49a2c46cf910bfe4e673eff9071413bb002afc9 PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Tianling Shen diff --git a/package/boot/tfa-layerscape/Makefile b/package/boot/tfa-layerscape/Makefile index 3509658869b6da..b92516ceb0ab51 100644 --- a/package/boot/tfa-layerscape/Makefile +++ b/package/boot/tfa-layerscape/Makefile @@ -14,7 +14,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/nxp-qoriq/atf PKG_SOURCE_VERSION:=lf-6.1.1-1.0.0 -PKG_MIRROR_HASH:=c0e3c7d0cc9ee5f9ae68cd705ce7f07f714c4fe3fd4a5a79de5699e7865b759f +PKG_MIRROR_HASH:=e109ca87a0f432529ab4d1fcd019adc0cd0d3684c96cdf770aac113f9bbe4bd6 PKG_BUILD_DEPENDS:=tfa-layerscape/host include $(INCLUDE_DIR)/host-build.mk diff --git a/package/boot/uboot-at91/Makefile b/package/boot/uboot-at91/Makefile index afab24e8415f55..81ea22ded621c1 100644 --- a/package/boot/uboot-at91/Makefile +++ b/package/boot/uboot-at91/Makefile @@ -12,7 +12,7 @@ PKG_RELEASE:=3 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/linux4sam/u-boot-at91.git -PKG_MIRROR_HASH:=56bbac45f71aaf39b365661db2a76c6c8415e27f7147b27bb58312b12756c8f3 +PKG_MIRROR_HASH:=82229503800d9a624bb8de5f8d7a84cb35fd512a1550c6f1d46958cd47d4807b PKG_SOURCE_VERSION:=7b59654a486d39dc8e0343e2554699b8a79c7a54 include $(INCLUDE_DIR)/u-boot.mk diff --git a/package/boot/uboot-bcm4908/Makefile b/package/boot/uboot-bcm4908/Makefile index f3051aaf81e009..7bc49860072f10 100644 --- a/package/boot/uboot-bcm4908/Makefile +++ b/package/boot/uboot-bcm4908/Makefile @@ -9,7 +9,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://git.openwrt.org/project/bcm63xx/u-boot.git PKG_SOURCE_DATE:=2022-12-08 PKG_SOURCE_VERSION:=4435700d18a791dca0d8d767e5414dfac9df4451 -PKG_MIRROR_HASH:=6062ce611d7222eb3b9768bb4944ff1c7bcf26b997280adf5ea8d7afe83f28a8 +PKG_MIRROR_HASH:=80de483c11938cca9fdd0f35931cce1921c8166d9c1c146da56bf155394842cb include $(INCLUDE_DIR)/u-boot.mk include $(INCLUDE_DIR)/package.mk diff --git a/package/boot/uboot-envtools/files/apm821xx b/package/boot/uboot-envtools/files/apm821xx index e73aaab7a0d73a..1076f931bb7cc0 100644 --- a/package/boot/uboot-envtools/files/apm821xx +++ b/package/boot/uboot-envtools/files/apm821xx @@ -19,6 +19,10 @@ netgear,wndap620|\ netgear,wndap660) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x4000" "0x4000" "4" ;; +netgear,wndr4700) + ubootenv_add_uci_config "/dev/mtd0" "0x40000" "0x20000" "0x20000" "1" + ubootenv_add_uci_config "/dev/mtd0" "0x60000" "0x20000" "0x20000" "1" + ;; wd,mybooklive) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x1000" "1" ubootenv_add_uci_config "/dev/mtd1" "0x1000" "0x1000" "0x1000" "1" diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79 index 7c0cdf9013f903..567bf9824ddcc5 100644 --- a/package/boot/uboot-envtools/files/ath79 +++ b/package/boot/uboot-envtools/files/ath79 @@ -31,10 +31,6 @@ asus,zenwifi-cd6n|\ asus,zenwifi-cd6r|\ buffalo,bhr-4grv2|\ devolo,magic-2-wifi|\ -dlink,dap-1720-a1|\ -dlink,dir-859-a1|\ -dlink,dir-859-a3|\ -dlink,dir-869-a1|\ engenius,eap1200h|\ engenius,eap1750h|\ engenius,eap300-v2|\ @@ -127,6 +123,9 @@ domywifi,dw33d) glinet,gl-ar150) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x8000" "0x10000" ;; +huawei,ap5030dn) + ubootenv_add_uci_config "/dev/mtd3" "0x0" "0x20000" "0x20000" + ;; netgear,wndr3700|\ netgear,wndr3700-v2|\ netgear,wndrmac-v1) diff --git a/package/boot/uboot-envtools/files/kirkwood b/package/boot/uboot-envtools/files/kirkwood index 240371f48d85ed..1b07640cd36c92 100644 --- a/package/boot/uboot-envtools/files/kirkwood +++ b/package/boot/uboot-envtools/files/kirkwood @@ -17,6 +17,7 @@ cloudengines,pogoe02|\ cloudengines,pogoplugv4|\ globalscale,sheevaplug|\ iom,ix2-200|\ +iom,ix4-200d|\ linksys,e4200-v2|\ linksys,ea4500|\ netgear,readynas-duo-v2|\ diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic index 08d2bf782bdb1f..753c8ca06483fa 100644 --- a/package/boot/uboot-envtools/files/mediatek_filogic +++ b/package/boot/uboot-envtools/files/mediatek_filogic @@ -73,8 +73,12 @@ zbtlink,zbt-z8102ax|\ zbtlink,zbt-z8103ax) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000" ;; +dlink,aquila-pro-ai-m30-a1) + ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x40000" + ;; h3c,magic-nx30-pro|\ jcg,q30-pro|\ +netcore,n60|\ qihoo,360t7|\ tplink,tl-xdr4288|\ tplink,tl-xdr6086|\ @@ -103,6 +107,10 @@ routerich,ax3000) local envdev=/dev/mtd$(find_mtd_index "u-boot-env") ubootenv_add_uci_config "$envdev" "0x0" "0x20000" "0x20000" "1" ;; +openembed,som7981) + ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x80000" + ubootenv_add_uci_sys_config "/dev/mtd3" "0x0" "0x100000" "0x100000" + ;; ubnt,unifi-6-plus) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x10000" ;; diff --git a/package/boot/uboot-envtools/files/qualcommax_ipq60xx b/package/boot/uboot-envtools/files/qualcommax_ipq60xx index 33cb94f99d18f1..749b053aabce47 100644 --- a/package/boot/uboot-envtools/files/qualcommax_ipq60xx +++ b/package/boot/uboot-envtools/files/qualcommax_ipq60xx @@ -19,6 +19,11 @@ netgear,wax214) [ -n "$idx" ] && \ ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x40000" "0x20000" "2" ;; +yuncore,fap650) + idx="$(find_mtd_index 0:appsblenv)" + [ -n "$idx" ] && \ + ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x10000" "0x10000" + ;; esac config_load ubootenv diff --git a/package/boot/uboot-envtools/files/ramips b/package/boot/uboot-envtools/files/ramips index 30bf635b6df33b..317121f2beae83 100644 --- a/package/boot/uboot-envtools/files/ramips +++ b/package/boot/uboot-envtools/files/ramips @@ -73,6 +73,7 @@ belkin,rt1800|\ h3c,tx1800-plus|\ h3c,tx1801-plus|\ h3c,tx1806|\ +iptime,ax2004m|\ jcg,q20|\ linksys,e7350|\ netgear,eax12|\ @@ -92,6 +93,7 @@ ravpower,rp-wd03) ubootenv_add_uci_config "/dev/mtd$idx" "0x4000" "0x1000" "0x1000" ;; beeline,smartbox-flash|\ +iptime,t5004|\ linksys,ea6350-v4|\ linksys,ea7300-v1|\ linksys,ea7300-v2|\ diff --git a/package/boot/uboot-fritz4040/Makefile b/package/boot/uboot-fritz4040/Makefile index d19db162d75760..6fa4d14814a74f 100644 --- a/package/boot/uboot-fritz4040/Makefile +++ b/package/boot/uboot-fritz4040/Makefile @@ -12,7 +12,7 @@ PKG_SOURCE_URL:=https://github.com/chunkeey/FritzBox-4040-UBOOT PKG_SOURCE_PROTO:=git PKG_SOURCE_VERSION:=9d89013f9cc963eca25856c61fa066091d35f8de PKG_SOURCE_DATE:=2022-05-01 -PKG_MIRROR_HASH:=4f2a3782ba359e6d901b536d1d685026913c14426f8e58ba9673281f20675050 +PKG_MIRROR_HASH:=4e8106a7877ae6aa8da44bf95401b860d11f7d51417cc5a61ce59a353d4ee866 PKG_RELEASE:=5 diff --git a/package/boot/uboot-kirkwood/Makefile b/package/boot/uboot-kirkwood/Makefile index 7f9ae4e1517ab7..92a814ac4f61d7 100644 --- a/package/boot/uboot-kirkwood/Makefile +++ b/package/boot/uboot-kirkwood/Makefile @@ -65,6 +65,11 @@ define U-Boot/nas220 BUILD_DEVICES:=seagate_blackarmor-nas220 endef +define U-Boot/netgear_ms2110 + NAME:=Netgear Stora (MS2000/2110) + BUILD_DEVICES:=netgear_stora +endef + define U-Boot/nsa310 NAME:=Zyxel NSA310 BUILD_DEVICES:=zyxel_nsa310b @@ -107,6 +112,7 @@ UBOOT_TARGETS := \ iconnect iconnect_second_stage \ l-50 \ nas220 \ + netgear_ms2110 \ nsa310 \ nsa310s \ nsa325 \ diff --git a/package/boot/uboot-kirkwood/patches/180-netgear-stora.patch b/package/boot/uboot-kirkwood/patches/180-netgear-stora.patch new file mode 100644 index 00000000000000..5eed89d5e68c23 --- /dev/null +++ b/package/boot/uboot-kirkwood/patches/180-netgear-stora.patch @@ -0,0 +1,648 @@ +diff -ruN u-boot-2020.04.old/arch/arm/mach-kirkwood/Kconfig u-boot-2020.04/arch/arm/mach-kirkwood/Kconfig +--- u-boot-2020.04.old/arch/arm/mach-kirkwood/Kconfig 2020-07-09 00:46:15.000000000 +0200 ++++ u-boot-2020.04/arch/arm/mach-kirkwood/Kconfig 2020-07-09 01:07:00.309219477 +0200 +@@ -44,6 +44,9 @@ + config TARGET_NETSPACE_V2 + bool "LaCie netspace_v2 Board" + ++config TARGET_NETGEAR_MS2110 ++ bool "Netgear MS2110 Board" ++ + config TARGET_IB62X0 + bool "ib62x0 Board" + +@@ -92,6 +95,7 @@ + source "board/keymile/Kconfig" + source "board/LaCie/net2big_v2/Kconfig" + source "board/LaCie/netspace_v2/Kconfig" ++source "board/Marvell/netgear_ms2110/Kconfig" + source "board/raidsonic/ib62x0/Kconfig" + source "board/Seagate/dockstar/Kconfig" + source "board/Seagate/goflexhome/Kconfig" +diff -ruN u-boot-2020.04.old/board/Marvell/netgear_ms2110/Kconfig u-boot-2020.04/board/Marvell/netgear_ms2110/Kconfig +--- u-boot-2020.04.old/board/Marvell/netgear_ms2110/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2020.04/board/Marvell/netgear_ms2110/Kconfig 2020-07-09 00:59:29.000000000 +0200 +@@ -0,0 +1,12 @@ ++if TARGET_NETGEAR_MS2110 ++ ++config SYS_BOARD ++ default "netgear_ms2110" ++ ++config SYS_VENDOR ++ default "Marvell" ++ ++config SYS_CONFIG_NAME ++ default "netgear_ms2110" ++ ++endif +diff -ruN u-boot-2020.04.old/board/Marvell/netgear_ms2110/kwbimage.cfg u-boot-2020.04/board/Marvell/netgear_ms2110/kwbimage.cfg +--- u-boot-2020.04.old/board/Marvell/netgear_ms2110/kwbimage.cfg 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2020.04/board/Marvell/netgear_ms2110/kwbimage.cfg 2020-07-09 00:59:29.000000000 +0200 +@@ -0,0 +1,167 @@ ++# ++# (C) Copyright 2009 ++# Marvell Semiconductor ++# Written-by: Prafulla Wadaskar ++# ++# See file CREDITS for list of people who contributed to this ++# project. ++# ++# This program is free software; you can redistribute it and/or ++# modify it under the terms of the GNU General Public License as ++# published by the Free Software Foundation; either version 2 of ++# the License, or (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, ++# MA 02110-1301 USA ++# ++# Refer docs/README.kwimage for more details about how-to configure ++# and create kirkwood boot image ++# ++ ++# Boot Media configurations ++BOOT_FROM nand ++NAND_ECC_MODE default ++NAND_PAGE_SIZE 0x0800 ++ ++# SOC registers configuration using bootrom header extension ++# Maximum KWBIMAGE_MAX_CONFIG configurations allowed ++ ++# Configure RGMII-0 interface pad voltage to 1.8V ++DATA 0xFFD100e0 0x1b1b1b9b ++ ++#Dram initalization for SINGLE x16 CL=5 @ 400MHz ++DATA 0xFFD01400 0x43000c30 # DDR Configuration register ++# bit13-0: 0xc30 (3120 DDR2 clks refresh rate) ++# bit23-14: zero ++# bit24: 1= enable exit self refresh mode on DDR access ++# bit25: 1 required ++# bit29-26: zero ++# bit31-30: 01 ++ ++DATA 0xFFD01404 0x37543000 # DDR Controller Control Low ++# bit 4: 0=addr/cmd in smame cycle ++# bit 5: 0=clk is driven during self refresh, we don't care for APX ++# bit 6: 0=use recommended falling edge of clk for addr/cmd ++# bit14: 0=input buffer always powered up ++# bit18: 1=cpu lock transaction enabled ++# bit23-20: 5=recommended value for CL=5 and STARTBURST_DEL disabled bit31=0 ++# bit27-24: 7= CL+2, STARTBURST sample stages, for freqs 400MHz, unbuffered DIMM ++# bit30-28: 3 required ++# bit31: 0=no additional STARTBURST delay ++ ++DATA 0xFFD01408 0x22125451 # DDR Timing (Low) (active cycles value +1) ++# bit3-0: TRAS lsbs ++# bit7-4: TRCD ++# bit11- 8: TRP ++# bit15-12: TWR ++# bit19-16: TWTR ++# bit20: TRAS msb ++# bit23-21: 0x0 ++# bit27-24: TRRD ++# bit31-28: TRTP ++ ++DATA 0xFFD0140C 0x00000833 # DDR Timing (High) ++# bit6-0: TRFC ++# bit8-7: TR2R ++# bit10-9: TR2W ++# bit12-11: TW2W ++# bit31-13: zero required ++ ++DATA 0xFFD01410 0x00000099 # DDR Address Control ++# bit1-0: 00, Cs0width=x8 ++# bit3-2: 11, Cs0size=1Gb ++# bit5-4: 00, Cs1width=x8 ++# bit7-6: 11, Cs1size=1Gb ++# bit9-8: 00, Cs2width=nonexistent ++# bit11-10: 00, Cs2size =nonexistent ++# bit13-12: 00, Cs3width=nonexistent ++# bit15-14: 00, Cs3size =nonexistent ++# bit16: 0, Cs0AddrSel ++# bit17: 0, Cs1AddrSel ++# bit18: 0, Cs2AddrSel ++# bit19: 0, Cs3AddrSel ++# bit31-20: 0 required ++ ++DATA 0xFFD01414 0x00000000 # DDR Open Pages Control ++# bit0: 0, OpenPage enabled ++# bit31-1: 0 required ++ ++DATA 0xFFD01418 0x00000000 # DDR Operation ++# bit3-0: 0x0, DDR cmd ++# bit31-4: 0 required ++ ++DATA 0xFFD0141C 0x00000C52 # DDR Mode ++# bit2-0: 2, BurstLen=2 required ++# bit3: 0, BurstType=0 required ++# bit6-4: 4, CL=5 ++# bit7: 0, TestMode=0 normal ++# bit8: 0, DLL reset=0 normal ++# bit11-9: 6, auto-precharge write recovery ???????????? ++# bit12: 0, PD must be zero ++# bit31-13: 0 required ++ ++DATA 0xFFD01420 0x00000004 # DDR Extended Mode ++# bit0: 0, DDR DLL enabled ++# bit1: 0, DDR drive strenght normal ++# bit2: 1, DDR ODT control lsd (disabled) ++# bit5-3: 000, required ++# bit6: 0, DDR ODT control msb, (disabled) ++# bit9-7: 000, required ++# bit10: 0, differential DQS enabled ++# bit11: 0, required ++# bit12: 0, DDR output buffer enabled ++# bit31-13: 0 required ++ ++DATA 0xFFD01424 0x0000F17F # DDR Controller Control High ++# bit2-0: 111, required ++# bit3 : 1 , MBUS Burst Chop disabled ++# bit6-4: 111, required ++# bit7 : 0 ++# bit8 : 1 , add writepath sample stage, must be 1 for DDR freq >= 300MHz ++# bit9 : 0 , no half clock cycle addition to dataout ++# bit10 : 0 , 1/4 clock cycle skew enabled for addr/ctl signals ++# bit11 : 0 , 1/4 clock cycle skew disabled for write mesh ++# bit15-12: 1111 required ++# bit31-16: 0 required ++ ++DATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing (default values) ++DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing (default values) ++ ++DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0 ++DATA 0xFFD01504 0x03FFFFF1 # CS[0]n Size ++# bit0: 1, Window enabled ++# bit1: 0, Write Protect disabled ++# bit3-2: 00, CS0 hit selected ++# bit23-4: ones, required ++# bit31-24: 0x0F, Size (i.e. 256MB) ++ ++DATA 0xFFD01508 0x04000000 # CS[1]n Base address to 256Mb ++DATA 0xFFD0150C 0x03FFFFF5 # CS[1]n Size 256Mb Window enabled for CS1 ++ ++DATA 0xFFD01514 0x00000000 # CS[2]n Size, window disabled ++DATA 0xFFD0151C 0x00000000 # CS[3]n Size, window disabled ++ ++DATA 0xFFD01494 0x00120012 # DDR ODT Control (Low) ++# bit3-0: 2, ODT0Rd, MODT[0] asserted during read from DRAM CS1 ++# bit7-4: 1, ODT0Rd, MODT[0] asserted during read from DRAM CS0 ++# bit19-16:2, ODT0Wr, MODT[0] asserted during write to DRAM CS1 ++# bit23-20:1, ODT0Wr, MODT[0] asserted during write to DRAM CS0 ++ ++DATA 0xFFD01498 0x00000000 # DDR ODT Control (High) ++# bit1-0: 00, ODT0 controlled by ODT Control (low) register above ++# bit3-2: 01, ODT1 active NEVER! ++# bit31-4: zero, required ++ ++DATA 0xFFD0149C 0x0000E40F # CPU ODT Control ++DATA 0xFFD01480 0x00000001 # DDR Initialization Control ++#bit0=1, enable DDR init upon this register write ++ ++# End of Header extension ++DATA 0x0 0x0 +diff -ruN u-boot-2020.04.old/board/Marvell/netgear_ms2110/MAINTAINERS u-boot-2020.04/board/Marvell/netgear_ms2110/MAINTAINERS +--- u-boot-2020.04.old/board/Marvell/netgear_ms2110/MAINTAINERS 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2020.04/board/Marvell/netgear_ms2110/MAINTAINERS 2020-07-09 00:59:29.000000000 +0200 +@@ -0,0 +1,6 @@ ++NETGEAR_MS2110 BOARD ++M: bodhi ++S: Maintained ++F: board/Marvell/netgear_ms2110 ++F: include/configs/netgear_ms2110.h ++F: configs/netgear_ms2110_defconfig +diff -ruN u-boot-2020.04.old/board/Marvell/netgear_ms2110/Makefile u-boot-2020.04/board/Marvell/netgear_ms2110/Makefile +--- u-boot-2020.04.old/board/Marvell/netgear_ms2110/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2020.04/board/Marvell/netgear_ms2110/Makefile 2020-07-09 00:59:29.000000000 +0200 +@@ -0,0 +1,13 @@ ++# ++# (C) Copyright 2014 bodhi ++# ++# Based on ++# (C) Copyright 2009 ++# Marvell Semiconductor ++# Written-by: Prafulla Wadaskar ++# ++# SPDX-License-Identifier: GPL-2.0+ ++# ++ ++obj-y := netgear_ms2110.o ++ +diff -ruN u-boot-2020.04.old/board/Marvell/netgear_ms2110/netgear_ms2110.c u-boot-2020.04/board/Marvell/netgear_ms2110/netgear_ms2110.c +--- u-boot-2020.04.old/board/Marvell/netgear_ms2110/netgear_ms2110.c 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2020.04/board/Marvell/netgear_ms2110/netgear_ms2110.c 2020-07-09 00:59:29.000000000 +0200 +@@ -0,0 +1,151 @@ ++/* ++ * Copyright (C) 2014-2017 bodhi ++ * ++ * Based on Kirkwood support: ++ * (C) Copyright 2009 ++ * Marvell Semiconductor ++ * Written-by: Prafulla Wadaskar ++ * ++ * See file CREDITS for list of people who contributed to this ++ * project. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, ++ * MA 02110-1301 USA ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include "netgear_ms2110.h" ++#include ++ ++DECLARE_GLOBAL_DATA_PTR; ++int board_early_init_f(void) ++{ ++ /* ++ * default gpio configuration ++ * There are maximum 64 gpios controlled through 2 sets of registers ++ * the below configuration configures mainly initial LED status ++ */ ++ mvebu_config_gpio(NETGEAR_MS2110_OE_VAL_LOW, ++ NETGEAR_MS2110_OE_VAL_HIGH, ++ NETGEAR_MS2110_OE_LOW, NETGEAR_MS2110_OE_HIGH); ++ ++ /* Multi-Purpose Pins Functionality configuration */ ++ u32 kwmpp_config[] = { ++ MPP0_NF_IO2, ++ MPP1_NF_IO3, ++ MPP2_NF_IO4, ++ MPP3_NF_IO5, ++ MPP4_NF_IO6, ++ MPP5_NF_IO7, ++ MPP6_SYSRST_OUTn, ++ MPP7_SPI_SCn, ++ MPP8_TW_SDA, ++ MPP9_TW_SCK, ++ MPP10_UART0_TXD, ++ MPP11_UART0_RXD, ++ MPP12_SD_CLK, ++ MPP13_SD_CMD, ++ MPP14_SD_D0, ++ MPP15_SD_D1, ++ MPP16_SD_D2, ++ MPP17_SD_D3, ++ MPP18_NF_IO0, ++ MPP19_NF_IO1, ++ MPP20_SATA1_ACTn, ++ MPP21_SATA0_ACTn, ++ MPP22_GPIO, ++ MPP23_GPIO, ++ MPP24_GE1_4, ++ MPP25_GE1_5, ++ MPP26_GE1_6, ++ MPP27_GE1_7, ++ MPP28_GPIO, ++ MPP29_GPIO, ++ MPP30_GPIO, ++ MPP31_GPIO, ++ MPP32_GPIO, ++ MPP33_GE1_13, ++ MPP34_SATA1_ACTn, ++ MPP35_GPIO, ++ MPP36_GPIO, ++ MPP37_GPIO, ++ MPP38_GPIO, ++ MPP39_GPIO, ++ MPP40_GPIO, ++ MPP41_GPIO, ++ MPP42_GPIO, ++ MPP43_GPIO, ++ MPP44_GPIO, ++ MPP45_TDM_PCLK, ++ MPP46_TDM_FS, ++ MPP47_TDM_DRX, ++ MPP48_TDM_DTX, ++ MPP49_GPIO, ++ 0 ++ }; ++ kirkwood_mpp_conf(kwmpp_config, NULL); ++ return 0; ++} ++ ++int board_init(void) ++{ /* ++ * arch number of board ++ */ ++ gd->bd->bi_arch_number = MACH_TYPE_NETGEAR_MS2110; ++ ++ /* adress of boot parameters */ ++ gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100; ++ ++ return 0; ++} ++#ifdef CONFIG_RESET_PHY_R ++/* Configure and enable MV88E1116 PHY */ ++void reset_phy(void) ++{ ++ u16 reg; ++ u16 devadr; ++ char *name = "egiga0"; ++ ++ if (miiphy_set_current_dev(name)) ++ return; ++ ++ /* command to read PHY dev address */ ++ if (miiphy_read(name, 0xEE, 0xEE, (u16 *) &devadr)) { ++ printf("Err..%s could not read PHY dev address\n", ++ __FUNCTION__); ++ return; ++ } ++ ++ /* ++ * Enable RGMII delay on Tx and Rx for CPU port ++ * Ref: sec 4.7.2 of chip datasheet ++ */ ++ miiphy_write(name, devadr, MV88E1116_PGADR_REG, 2); ++ miiphy_read(name, devadr, MV88E1116_MAC_CTRL_REG, ®); ++ reg |= (MV88E1116_RGMII_RXTM_CTRL | MV88E1116_RGMII_TXTM_CTRL); ++ miiphy_write(name, devadr, MV88E1116_MAC_CTRL_REG, reg); ++ miiphy_write(name, devadr, MV88E1116_PGADR_REG, 0); ++ ++ /* reset the phy */ ++ miiphy_reset(name, devadr); ++ ++ printf("88E1116 Initialized on %s\n", name); ++} ++#endif /* CONFIG_RESET_PHY_R */ ++ +diff -ruN u-boot-2020.04.old/board/Marvell/netgear_ms2110/netgear_ms2110.h u-boot-2020.04/board/Marvell/netgear_ms2110/netgear_ms2110.h +--- u-boot-2020.04.old/board/Marvell/netgear_ms2110/netgear_ms2110.h 1970-01-01 01:00:00.000000000 +0100 ++++ u-boot-2020.04/board/Marvell/netgear_ms2110/netgear_ms2110.h 2020-07-09 00:59:29.000000000 +0200 +@@ -0,0 +1,41 @@ ++/* ++ * (C) Copyright 2009 ++ * Marvell Semiconductor ++ * Written-by: Prafulla Wadaskar ++ * ++ * See file CREDITS for list of people who contributed to this ++ * project. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, ++ * MA 02110-1301 USA ++ */ ++ ++#ifndef __NETGEAR_MS2110_H ++#define __NETGEAR_MS2110_H ++ ++#define NETGEAR_MS2110_OE_LOW (~(1 << 7)) ++#define NETGEAR_MS2110_OE_HIGH (~(1 << 2 | 1 << 12)) ++#define NETGEAR_MS2110_OE_VAL_LOW (0) ++#define NETGEAR_MS2110_OE_VAL_HIGH (1 << 12) ++ ++/* PHY related */ ++#define MV88E1116_LED_FCTRL_REG 10 ++#define MV88E1116_CPRSP_CR3_REG 21 ++#define MV88E1116_MAC_CTRL_REG 21 ++#define MV88E1116_PGADR_REG 22 ++#define MV88E1116_RGMII_TXTM_CTRL (1 << 4) ++#define MV88E1116_RGMII_RXTM_CTRL (1 << 5) ++ ++#endif /* __NETGEAR_MS2110_H */ +diff -ruN a/configs/netgear_ms2110_defconfig b/configs/netgear_ms2110_defconfig +--- a/configs/netgear_ms2110_defconfig 1970-01-01 01:00:00.000000000 +0100 ++++ b/configs/netgear_ms2110_defconfig 2020-07-14 17:59:18.000000000 +0200 +@@ -0,0 +1,50 @@ ++CONFIG_ARM=y ++CONFIG_KIRKWOOD=y ++CONFIG_SYS_DCACHE_OFF=y ++CONFIG_ARCH_CPU_INIT=y ++CONFIG_TARGET_NETGEAR_MS2110=y ++CONFIG_IDENT_STRING="\nNetgear Stora MS2110" ++CONFIG_SYS_PROMPT="Stora> " ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_TEXT_BASE=0x600000 ++# CONFIG_DISPLAY_BOARDINFO is not set ++# CONFIG_CMD_IMLS is not set ++# CONFIG_CMD_FLASH is not set ++CONFIG_CMD_IDE=y ++CONFIG_MVGBE=y ++CONFIG_MII=y ++CONFIG_SYS_NS16550=y ++CONFIG_OF_LIBFDT=y ++CONFIG_CMD_FDT=y ++CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_SETEXPR=y ++CONFIG_CMD_DATE=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_MII=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_EXT2=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_JFFS2=y ++CONFIG_CMD_USB=y ++CONFIG_ISO_PARTITION=y ++CONFIG_EFI_PARTITION=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_MTD_RAW_NAND=y ++CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:0xe0000@0x0(uboot),0x20000@0xe0000(uboot_env),-@0x100000(ubi)" ++CONFIG_CMD_MTDPARTS=y ++CONFIG_CMD_NAND=y ++CONFIG_ENV_IS_IN_NAND=y ++CONFIG_ENV_SIZE=0x20000 ++CONFIG_ENV_ADDR=0xe0000 ++CONFIG_ENV_OFFSET=0xe0000 ++CONFIG_ENV_SECT_SIZE=0x20000 ++CONFIG_CMD_UBI=y ++CONFIG_USB=y ++CONFIG_USB_EHCI_HCD=y ++CONFIG_USB_STORAGE=y ++CONFIG_BLK=y ++CONFIG_MVSATA_IDE=y ++CONFIG_DM_RTC=y ++CONFIG_RTC_MV=y +diff -ruN a/include/configs/netgear_ms2110.h b/include/configs/netgear_ms2110.h +--- a/include/configs/netgear_ms2110.h 1970-01-01 01:00:00.000000000 +0100 ++++ b/include/configs/netgear_ms2110.h 2020-07-14 17:49:15.000000000 +0200 +@@ -0,0 +1,155 @@ ++/* ++ * (C) Copyright 2014-2017 bodhi ++ * (C) Copyright 2020 Zoltan HERPAI ++ * ++ * Based on Kirkwood support: ++ * (C) Copyright 2009 ++ * Marvell Semiconductor ++ * Written-by: Prafulla Wadaskar ++ * ++ * See file CREDITS for list of people who contributed to this ++ * project. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, ++ * MA 02110-1301 USA ++ */ ++ ++#ifndef _CONFIG_NGMS2110_H ++#define _CONFIG_NGMS2110_H ++ ++/* ++ * High Level Configuration Options (easy to change) ++ */ ++#define CONFIG_MARVELL 1 ++#define CONFIG_ARM926EJS 1 /* Basic Architecture */ ++#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */ ++#define CONFIG_KIRKWOOD 1 /* SOC Family Name */ ++#define CONFIG_KW88F6281 1 /* SOC Name */ ++#define CONFIG_MACH_NETGEAR_MS2110 /* Machine type */ ++#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */ ++ ++/* ++ * Commands configuration ++ */ ++#define CONFIG_SYS_NO_FLASH /* Declare no flash (NOR/SPI) */ ++#define CONFIG_SYS_MVFS /* Picks up Filesystem from mv-common.h */ ++#define CONFIG_CMD_ENV ++#define CONFIG_PREBOOT ++#define CONFIG_SYS_HUSH_PARSER ++#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " ++ ++/* #define CONFIG_CMD_AUTOSCRIPT */ ++ ++/* ++ * mv-common.h should be defined after CMD configs since it used them ++ * to enable certain macros ++ */ ++#include "mv-common.h" ++ ++/* Remove or override few declarations from mv-common.h */ ++//#undef CONFIG_SYS_PROMPT /* previously defined in mv-common.h */ ++//#define CONFIG_SYS_PROMPT "Netgear Stora> " ++ ++/* ++ * NAND configuration ++ */ ++#ifdef CONFIG_CMD_NAND ++#define CONFIG_NAND_KIRKWOOD ++#define CONFIG_SYS_MAX_NAND_DEVICE 1 ++#define NAND_MAX_CHIPS 1 ++#define CONFIG_SYS_NAND_BASE 0xD8000000 /* KW_DEFADR_NANDF */ ++#define NAND_ALLOW_ERASE_ALL 1 ++#endif ++ ++/* ++ * Default environment variables ++*/ ++#define CONFIG_BOOTCOMMAND \ ++ "setenv bootargs ${console} ${mtdparts} ${bootargs_root}; " \ ++ "ubi part ubi; " \ ++ "ubifsmount ubi:rootfs; " \ ++ "ubi read 0x800000 kernel; " \ ++ "bootm 0x800000" ++ ++#define CONFIG_EXTRA_ENV_SETTINGS \ ++ "arcNumber=2743\0" \ ++ "console=console=ttyS0,115200\0" \ ++ "ethact=egiga0\0" \ ++ "ethaddr=52:3b:20:9c:11:51\0" \ ++ "ipaddr=192.168.0.231\0" \ ++ "mtdids=nand0=orion_nand\0" \ ++ "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \ ++ "serverip=192.168.0.220\0" \ ++ "bootargs_root=\0" ++ ++/* size in bytes reserved for initial data */ ++#define CONFIG_SYS_GBL_DATA_SIZE 128 ++ ++/* ++ * Other required minimal configurations ++ */ ++#define CONFIG_STACKSIZE 0x00100000 /* regular stack- 1M */ ++ ++/* ++ * Ethernet Driver configuration ++ */ ++#ifdef CONFIG_CMD_NET ++#define CONFIG_NETCONSOLE /* include NetConsole support */ ++#define CONFIG_NET_MULTI /* specify more that one ports available */ ++#define CONFIG_KIRKWOOD_EGIGA_PORTS {1,0} /* enable first port */ ++#define CONFIG_MV88E61XX_MULTICHIP_ADRMODE ++#define CONFIG_DIS_AUTO_NEG_SPEED_GMII /*Disable Auto speed negociation */ ++#define CONFIG_PHY_SPEED _1000BASET /*Force PHYspeed to 1GBPs */ ++#define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */ ++#define CONFIG_PHY_BASE_ADR 0x0A ++#define CONFIG_RESET_PHY_R /* use reset_phy() to init PHY */ ++#endif /* CONFIG_CMD_NET */ ++ ++/* ++ * USB/EHCI ++ */ ++#ifdef CONFIG_CMD_USB ++#define CONFIG_USB_EHCI /* Enable EHCI USB support */ ++#define CONFIG_USB_EHCI_KIRKWOOD /* on Kirkwood platform */ ++#define CONFIG_EHCI_IS_TDI ++#define CONFIG_SUPPORT_VFAT ++#endif /* CONFIG_CMD_USB */ ++ ++/* ++ * File system ++ */ ++#define CONFIG_JFFS2_NAND ++#define CONFIG_JFFS2_LZO ++#define CONFIG_MTD_DEVICE /* needed for mtdparts commands */ ++ ++/* ++ * SATA ++ */ ++ ++#ifdef CONFIG_MVSATA_IDE ++#define CONFIG_SYS_ATA_IDE0_OFFSET MV_SATA_PORT0_OFFSET ++#define CONFIG_SYS_ATA_IDE1_OFFSET MV_SATA_PORT1_OFFSET ++#endif ++ ++/* ++ * Date Time ++ * */ ++#ifdef CONFIG_CMD_DATE ++#define CONFIG_RTC_MV ++#define CONFIG_CMD_SNTP ++#define CONFIG_CMD_DNS ++#endif /* CONFIG_CMD_DATE */ ++ ++#endif /* _CONFIG_NGMS2110_H */ diff --git a/package/boot/uboot-layerscape/Makefile b/package/boot/uboot-layerscape/Makefile index e255debfeb826c..8c5e32587d62e1 100644 --- a/package/boot/uboot-layerscape/Makefile +++ b/package/boot/uboot-layerscape/Makefile @@ -14,7 +14,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/nxp-qoriq/u-boot PKG_SOURCE_VERSION:=lf-6.1.1-1.0.0 -PKG_MIRROR_HASH:=f4a3a262fd8923af72dede0348a512c05b756e3925279553eaf1c6667b186fb4 +PKG_MIRROR_HASH:=6cb3cd569f11f582375eb3af475a2a0d77fe602813337b64883ef01344be7bf6 include $(INCLUDE_DIR)/u-boot.mk include $(INCLUDE_DIR)/package.mk diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile index c96f7da8823278..c8213f7a538ae2 100644 --- a/package/boot/uboot-mediatek/Makefile +++ b/package/boot/uboot-mediatek/Makefile @@ -171,6 +171,14 @@ define U-Boot/mt7622_ubnt_unifi-6-lr-v3 FIP_COMPRESS:=1 endef +define U-Boot/mt7622_xiaomi_redmi-router-ax6s-ubi-loader + NAME:=Xiaomi Redmi Router AX6S (as UBI loader) + UBOOT_CONFIG:=mt7622_xiaomi_redmi-router-ax6s-ubi-loader + BUILD_DEVICES:=xiaomi_redmi-router-ax6s + BUILD_SUBTARGET:=mt7622 + UBOOT_IMAGE:=u-boot.bin +endef + define U-Boot/mt7623a_unielec_u7623 NAME:=UniElec U7623 (mt7623) BUILD_DEVICES:=unielec_u7623-02 @@ -464,6 +472,18 @@ define U-Boot/mt7986_jdcloud_re-cp-03 DEPENDS:=+trusted-firmware-a-mt7986-emmc-ddr4 endef +define U-Boot/mt7986_netcore_n60 + NAME:=Netcore N60 + BUILD_SUBTARGET:=filogic + BUILD_DEVICES:=netcore_n60 + UBOOT_CONFIG:=mt7986_netcore_n60 + UBOOT_IMAGE:=u-boot.fip + BL2_BOOTDEV:=spim-nand + BL2_SOC:=mt7986 + BL2_DDRTYPE:=ddr3 + DEPENDS:=+trusted-firmware-a-mt7986-spim-nand-ddr3 +endef + define U-Boot/mt7986_tplink_tl-xdr4288 NAME:=TP-LINK TL-XDR4288 BUILD_SUBTARGET:=filogic @@ -635,6 +655,7 @@ UBOOT_TARGETS := \ mt7622_ubnt_unifi-6-lr-v1 \ mt7622_ubnt_unifi-6-lr-v2 \ mt7622_ubnt_unifi-6-lr-v3 \ + mt7622_xiaomi_redmi-router-ax6s-ubi-loader \ mt7623n_bpir2 \ mt7623a_unielec_u7623 \ mt7628_rfb \ @@ -660,6 +681,7 @@ UBOOT_TARGETS := \ mt7986_bananapi_bpi-r3-mini-snand \ mt7986_glinet_gl-mt6000 \ mt7986_jdcloud_re-cp-03 \ + mt7986_netcore_n60 \ mt7986_tplink_tl-xdr4288 \ mt7986_tplink_tl-xdr6086 \ mt7986_tplink_tl-xdr6088 \ diff --git a/package/boot/uboot-mediatek/patches/100-02-drivers-mtd-add-support-for-MediaTek-SPI-NAND-flash-.patch b/package/boot/uboot-mediatek/patches/100-02-drivers-mtd-add-support-for-MediaTek-SPI-NAND-flash-.patch index 05138d984e5bbe..e75251d172197d 100644 --- a/package/boot/uboot-mediatek/patches/100-02-drivers-mtd-add-support-for-MediaTek-SPI-NAND-flash-.patch +++ b/package/boot/uboot-mediatek/patches/100-02-drivers-mtd-add-support-for-MediaTek-SPI-NAND-flash-.patch @@ -783,7 +783,7 @@ Signed-off-by: Weijie Gao +} --- /dev/null +++ b/drivers/mtd/mtk-snand/mtk-snand-ids.c -@@ -0,0 +1,515 @@ +@@ -0,0 +1,519 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +/* + * Copyright (C) 2020 MediaTek Inc. All Rights Reserved. @@ -901,6 +901,10 @@ Signed-off-by: Weijie Gao + SNAND_MEMORG_1G_2K_64, + &snand_cap_read_from_cache_quad_q2d, + &snand_cap_program_load_x4), ++ SNAND_INFO("GD5F1GQ5UExxG", SNAND_ID(SNAND_ID_ADDR, 0xc8, 0x51), ++ SNAND_MEMORG_1G_2K_128, ++ &snand_cap_read_from_cache_quad, ++ &snand_cap_program_load_x4), + SNAND_INFO("GD5F2GQ4UExIG", SNAND_ID(SNAND_ID_ADDR, 0xc8, 0xd2), + SNAND_MEMORG_2G_2K_128, + &snand_cap_read_from_cache_quad_q2d, diff --git a/package/boot/uboot-mediatek/patches/311-mt7986-select-roodisk.patch b/package/boot/uboot-mediatek/patches/311-mt7986-select-rootdisk.patch similarity index 100% rename from package/boot/uboot-mediatek/patches/311-mt7986-select-roodisk.patch rename to package/boot/uboot-mediatek/patches/311-mt7986-select-rootdisk.patch diff --git a/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch b/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch index 04411d79bcd054..6ee87296740432 100644 --- a/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch +++ b/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch @@ -171,7 +171,7 @@ +ipaddr=192.168.1.1 +serverip=192.168.1.254 +loadaddr=0x48000000 -+bootargs=root=/dev/fit0 ++bootargs=root=/dev/fit0 rootwait +bootcmd=if pstore check ; then run boot_recovery ; else run boot_sdmmc ; fi +bootconf=config-1#mt7622-bananapi-bpi-r64-pcie1 +bootconf_pcie=config-1#mt7622-bananapi-bpi-r64-pcie1 @@ -411,7 +411,7 @@ +serverip=192.168.1.254 +loadaddr=0x48000000 +bootcmd=if pstore check ; then run boot_recovery ; else run boot_emmc ; fi -+bootargs=root=/dev/fit0 ++bootargs=root=/dev/fit0 rootwait +bootconf=config-1#mt7622-bananapi-bpi-r64-pcie1 +bootconf_pcie=config-1#mt7622-bananapi-bpi-r64-pcie1 +bootconf_sata=config-1#mt7622-bananapi-bpi-r64-sata @@ -617,7 +617,7 @@ +ipaddr=192.168.1.1 +serverip=192.168.1.254 +loadaddr=0x48000000 -+bootargs=ubi.block=0,fit root=/dev/fit0 ++bootargs=ubi.block=0,fit root=/dev/fit0 rootwait +bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi +bootconf=config-1#mt7622-bananapi-bpi-r64-pcie1 +bootconf_pcie=config-1#mt7622-bananapi-bpi-r64-pcie1 diff --git a/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch b/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch new file mode 100644 index 00000000000000..2304fcd5ce2509 --- /dev/null +++ b/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch @@ -0,0 +1,433 @@ +--- /dev/null ++++ b/configs/mt7986_netcore_n60_defconfig +@@ -0,0 +1,182 @@ ++CONFIG_ARM=y ++CONFIG_POSITION_INDEPENDENT=y ++CONFIG_ARCH_MEDIATEK=y ++CONFIG_TARGET_MT7986=y ++CONFIG_TEXT_BASE=0x41e00000 ++CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_DEFAULT_DEVICE_TREE="mt7986a-netcore-n60" ++CONFIG_DEFAULT_ENV_FILE="netcore_n60_env" ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-netcore-n60.dtb" ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_DEBUG_UART=y ++CONFIG_SYS_LOAD_ADDR=0x46000000 ++CONFIG_SMBIOS_PRODUCT_NAME="" ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_CFB_CONSOLE_ANSI=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y ++CONFIG_GPIO_HOG=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_FIT=y ++CONFIG_FIT_ENABLE_SHA256_SUPPORT=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++CONFIG_LOGLEVEL=7 ++CONFIG_LOG=y ++CONFIG_SYS_PROMPT="MT7986> " ++CONFIG_CMD_BOOTMENU=y ++CONFIG_CMD_BOOTP=y ++CONFIG_CMD_BUTTON=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_CPU=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_DM=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_ECHO=y ++CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FDT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_ITEST=y ++CONFIG_CMD_LED=y ++CONFIG_CMD_LICENSE=y ++CONFIG_CMD_LINK_LOCAL=y ++# CONFIG_CMD_MBR is not set ++CONFIG_CMD_PCI=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_PWM=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_TFTPBOOT=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_UBI=y ++CONFIG_CMD_UBI_RENAME=y ++CONFIG_CMD_UBIFS=y ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_SETEXPR=y ++CONFIG_CMD_SLEEP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_SOURCE=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_UUID=y ++CONFIG_DISPLAY_CPUINFO=y ++CONFIG_DM_MTD=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_USB=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_VERSION_VARIABLE=y ++CONFIG_PARTITION_UUIDS=y ++CONFIG_NETCONSOLE=y ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_CLK=y ++CONFIG_DM_GPIO=y ++CONFIG_DM_SCSI=y ++CONFIG_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_SCSI_AHCI=y ++CONFIG_SCSI=y ++CONFIG_CMD_SCSI=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y ++CONFIG_PHY_FIXED=y ++CONFIG_MTK_AHCI=y ++CONFIG_DM_ETH=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PCI=y ++# CONFIG_MMC is not set ++# CONFIG_DM_MMC is not set ++CONFIG_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y ++CONFIG_DM_PCI=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_RAM=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y ++CONFIG_MTK_SPI_NAND=y ++CONFIG_MTK_SPI_NAND_MTD=y ++CONFIG_SYSRESET_WATCHDOG=y ++CONFIG_WDT_MTK=y ++CONFIG_LZO=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y ++CONFIG_RANDOM_UUID=y ++CONFIG_REGEX=y ++CONFIG_USB=y ++CONFIG_USB_HOST=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_OF_EMBED=y ++CONFIG_ENV_OVERWRITE=y ++CONFIG_ENV_IS_IN_UBI=y ++CONFIG_ENV_UBI_PART="ubi" ++CONFIG_ENV_SIZE=0x1f000 ++CONFIG_ENV_SIZE_REDUND=0x1f000 ++CONFIG_ENV_UBI_VOLUME="ubootenv" ++CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_CLK=y ++CONFIG_PHY_FIXED=y ++CONFIG_DM_ETH=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7986=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_HEXDUMP=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTK_SPIM=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_NAND=y ++CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_LMB_MAX_REGIONS=64 ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +--- /dev/null ++++ b/arch/arm/dts/mt7986a-netcore-n60.dts +@@ -0,0 +1,185 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Copyright (c) 2021 MediaTek Inc. ++ * Author: Sam Shih ++ */ ++ ++/dts-v1/; ++#include "mt7986.dtsi" ++#include ++#include ++ ++/ { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ model = "Netcore N60"; ++ compatible = "mediatek,mt7986", "mediatek,mt7986-rfb"; ++ ++ chosen { ++ stdout-path = &uart0; ++ tick-timer = &timer0; ++ }; ++ ++ memory@40000000 { ++ device_type = "memory"; ++ reg = <0x40000000 0x20000000>; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ factory { ++ label = "reset"; ++ linux,code = ; ++ gpios = <&gpio 9 GPIO_ACTIVE_LOW>; ++ }; ++ ++ wps { ++ label = "wps"; ++ linux,code = ; ++ gpios = <&gpio 10 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ status_red { ++ label = "red:status"; ++ gpios = <&gpio 29 GPIO_ACTIVE_LOW>; ++ }; ++ ++ status_green { ++ label = "green:status"; ++ gpios = <&gpio 32 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++}; ++ ++&uart0 { ++ mediatek,force-highspeed; ++ status = "okay"; ++}; ++ ++&uart1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart1_pins>; ++ status = "disabled"; ++}; ++ ++ð { ++ status = "okay"; ++ mediatek,gmac-id = <0>; ++ phy-mode = "2500base-x"; ++ mediatek,switch = "mt7531"; ++ reset-gpios = <&gpio 5 GPIO_ACTIVE_HIGH>; ++ ++ fixed-link { ++ speed = <2500>; ++ full-duplex; ++ }; ++}; ++ ++&pinctrl { ++ spi_flash_pins: spi0-pins-func-1 { ++ mux { ++ function = "flash"; ++ groups = "spi0", "spi0_wp_hold"; ++ }; ++ ++ conf-pu { ++ pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP"; ++ drive-strength = ; ++ bias-pull-up = ; ++ }; ++ ++ conf-pd { ++ pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO"; ++ drive-strength = ; ++ bias-pull-down = ; ++ }; ++ }; ++ ++ spic_pins: spi1-pins-func-1 { ++ mux { ++ function = "spi"; ++ groups = "spi1_2"; ++ }; ++ }; ++ ++ uart1_pins: spi1-pins-func-3 { ++ mux { ++ function = "uart"; ++ groups = "uart1_2"; ++ }; ++ }; ++ ++ pwm_pins: pwm0-pins-func-1 { ++ mux { ++ function = "pwm"; ++ groups = "pwm0"; ++ }; ++ }; ++}; ++ ++&pwm { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pwm_pins>; ++ status = "okay"; ++}; ++ ++&spi0 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&spi_flash_pins>; ++ status = "okay"; ++ must_tx; ++ enhance_timing; ++ dma_ext; ++ ipm_design; ++ support_quad; ++ tick_dly = <1>; ++ sample_sel = <0>; ++ ++ spi_nand@1 { ++ compatible = "spi-nand"; ++ reg = <1>; ++ spi-max-frequency = <52000000>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "bl2"; ++ reg = <0x0 0x100000>; ++ }; ++ ++ partition@100000 { ++ label = "orig-env"; ++ reg = <0x100000 0x80000>; ++ }; ++ ++ partition@160000 { ++ label = "factory"; ++ reg = <0x180000 0x200000>; ++ }; ++ ++ partition@380000 { ++ label = "fip"; ++ reg = <0x380000 0x200000>; ++ }; ++ ++ partition@580000 { ++ label = "ubi"; ++ reg = <0x580000 0x7280000>; ++ }; ++ }; ++ }; ++}; ++ ++&watchdog { ++ status = "disabled"; ++}; +--- /dev/null ++++ b/netcore_n60_env +@@ -0,0 +1,57 @@ ++ipaddr=192.168.1.1 ++serverip=192.168.1.254 ++loadaddr=0x46000000 ++console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0 ++bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi ++bootconf=config-1 ++bootdelay=0 ++bootfile=openwrt-mediatek-filogic-netcore_n60-initramfs-recovery.itb ++bootfile_bl2=openwrt-mediatek-filogic-netcore_n60-preloader.bin ++bootfile_fip=openwrt-mediatek-filogic-netcore_n60-bl31-uboot.fip ++bootfile_upg=openwrt-mediatek-filogic-netcore_n60-squashfs-sysupgrade.itb ++bootled_pwr=green:status ++bootled_rec=red:status ++bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60 ++bootmenu_default=0 ++bootmenu_delay=0 ++bootmenu_title= ( ( ( OpenWrt ) ) ) ++bootmenu_0=Initialize environment.=run _firstboot ++bootmenu_0d=Run default boot command.=run boot_default ++bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return ++bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return ++bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return ++bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return ++bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return ++bootmenu_6=Load BL31+U-Boot FIP via TFTP then write to NAND.=run boot_tftp_write_fip ; run bootmenu_confirm_return ++bootmenu_7=Load BL2 preloader via TFTP then write to NAND.=run boot_tftp_write_bl2 ; run bootmenu_confirm_return ++bootmenu_8=Reboot.=reset ++bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset ++boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu ++boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever ++boot_production=led $bootled_pwr on ; run ubi_read_production && bootm $loadaddr#$bootconf ; led $bootled_pwr off ++boot_recovery=led $bootled_rec on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off ++boot_ubi=run boot_production ; run boot_recovery ; run boot_tftp_forever ++boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done ++boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi ++boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi ++boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf ++boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run mtd_write_fip && run reset_factory ++boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run mtd_write_bl2 ++part_default=production ++part_recovery=recovery ++reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 ++mtd_write_fip=mtd erase fip && mtd write fip $loadaddr ++mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset ++ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi ++ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs ++ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery ++ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ethaddr_factory=mtd read factory 0x40080000 0x1fe000 0x1000 && env readmem -b ethaddr 0x40080f20 0x6 ; setenv ethaddr_factory ++_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv ++_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; run boot_first ++_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title ++_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver" diff --git a/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch b/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch index c48a934b7440c3..cbcda89119516d 100644 --- a/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch +++ b/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch @@ -802,7 +802,7 @@ +serverip=192.168.1.254 +loadaddr=0x46000000 +console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0 -+bootargs=root=/dev/fit0 ++bootargs=root=/dev/fit0 rootwait +bootcmd=if pstore check ; then run boot_recovery ; else run boot_sdmmc ; fi +bootconf=config-mt7986a-bananapi-bpi-r3 +bootconf_base=config-mt7986a-bananapi-bpi-r3 @@ -886,7 +886,7 @@ +serverip=192.168.1.254 +loadaddr=0x46000000 +console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0 -+bootargs=root=/dev/fit0 ++bootargs=root=/dev/fit0 rootwait +bootcmd=if pstore check ; then run boot_recovery ; else run boot_nor ; fi +bootconf=config-mt7986a-bananapi-bpi-r3 +bootconf_base=config-mt7986a-bananapi-bpi-r3 @@ -949,7 +949,7 @@ +serverip=192.168.1.254 +loadaddr=0x46000000 +console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0 -+bootargs=root=/dev/fit0 ++bootargs=root=/dev/fit0 rootwait +bootconf=config-mt7986a-bananapi-bpi-r3 +bootconf_base=config-mt7986a-bananapi-bpi-r3 +bootconf_nor=mt7986a-bananapi-bpi-r3-nor @@ -1025,7 +1025,7 @@ +serverip=192.168.1.254 +loadaddr=0x46000000 +console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0 -+bootargs=root=/dev/fit0 ++bootargs=root=/dev/fit0 rootwait +bootcmd=if pstore check ; then run boot_recovery ; else run boot_emmc ; fi +bootconf=config-mt7986a-bananapi-bpi-r3 +bootconf_base=config-mt7986a-bananapi-bpi-r3 diff --git a/package/boot/uboot-mediatek/patches/440-add-jdcloud_re-cp-03.patch b/package/boot/uboot-mediatek/patches/441-add-jdcloud_re-cp-03.patch similarity index 100% rename from package/boot/uboot-mediatek/patches/440-add-jdcloud_re-cp-03.patch rename to package/boot/uboot-mediatek/patches/441-add-jdcloud_re-cp-03.patch diff --git a/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch b/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch index 667b7570ac2e82..5409f7fa0de71e 100644 --- a/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch +++ b/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch @@ -417,7 +417,7 @@ +serverip=192.168.1.254 +loadaddr=0x46000000 +console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0 -+bootargs=root=ubi.block=0,fit root=/dev/fit0 ++bootargs=root=ubi.block=0,fit root=/dev/fit0 rootwait +bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi +bootconf=config-mt7986a-bananapi-bpi-r3-mini +bootdelay=0 @@ -481,7 +481,7 @@ +serverip=192.168.1.254 +loadaddr=0x46000000 +console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0 -+bootargs=root=/dev/fit0 ++bootargs=root=/dev/fit0 rootwait +bootcmd=if pstore check ; then run boot_recovery ; else run boot_emmc ; fi +bootconf=config-mt7986a-bananapi-bpi-r3-mini +bootdelay=0 diff --git a/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch b/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch index c3c21fe2f50dba..5fb956a2e3a3d4 100644 --- a/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch +++ b/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch @@ -555,7 +555,7 @@ +ipaddr=192.168.1.1 +serverip=192.168.1.254 +loadaddr=0x50000000 -+bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 ++bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait +bootcmd=if pstore check ; then run boot_recovery ; else run boot_sdmmc ; fi +bootconf=config-mt7988a-bananapi-bpi-r4 +bootconf_sd=mt7988a-bananapi-bpi-r4-sd @@ -624,7 +624,7 @@ +ipaddr=192.168.1.1 +serverip=192.168.1.254 +loadaddr=0x50000000 -+bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 ubi.block=0,fit ++bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait ubi.block=0,fit +bootconf=config-mt7988a-bananapi-bpi-r4 +bootconf_extra=mt7988a-bananapi-bpi-r4-emmc +bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi @@ -694,7 +694,7 @@ +ipaddr=192.168.1.1 +serverip=192.168.1.254 +loadaddr=0x50000000 -+bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 ++bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait +bootcmd=if pstore check ; then run boot_recovery ; else run boot_emmc ; fi +bootconf=config-mt7988a-bananapi-bpi-r4 +bootconf_base=config-mt7988a-bananapi-bpi-r4 diff --git a/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch b/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch new file mode 100644 index 00000000000000..28cc5d73d7e13c --- /dev/null +++ b/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch @@ -0,0 +1,320 @@ +From 57dc777bddf0baf3c27177576c40b5113309ce54 Mon Sep 17 00:00:00 2001 +From: Chuanhong Guo +Date: Sat, 2 Mar 2024 20:30:16 +0800 +Subject: [PATCH] add xiaomi redmi ax6s + +--- + arch/arm/dts/Makefile | 1 + + .../dts/mt7622-xiaomi-redmi-router-ax6s.dts | 166 ++++++++++++++++++ + ...omi_redmi-router-ax6s-ubi-loader_defconfig | 98 +++++++++++ + xiaomi-redmi-router-ax6s-ubi-loader_env | 22 +++ + 4 files changed, 287 insertions(+) + create mode 100644 arch/arm/dts/mt7622-xiaomi-redmi-router-ax6s.dts + create mode 100644 configs/mt7622_xiaomi_redmi-router-ax6s-ubi-loader_defconfig + create mode 100644 xiaomi-redmi-router-ax6s-ubi-loader_env + +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -1425,6 +1425,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ + mt7622-linksys-e8450-ubi.dtb \ + mt7622-ubnt-unifi-6-lr.dtb \ + mt7622-ubnt-unifi-6-lr-v3.dtb \ ++ mt7622-xiaomi-redmi-router-ax6s.dtb \ + mt7623n-bananapi-bpi-r2.dtb \ + mt7629-rfb.dtb \ + mt7981-rfb.dtb \ +--- /dev/null ++++ b/arch/arm/dts/mt7622-xiaomi-redmi-router-ax6s.dts +@@ -0,0 +1,166 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++/dts-v1/; ++#include ++#include ++#include "mt7622.dtsi" ++#include "mt7622-u-boot.dtsi" ++ ++/ { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ model = "Xiaomi Redmi Router AX6S"; ++ compatible = "xiaomi,redmi-router-ax6s", "mediatek,mt7622"; ++ ++ chosen { ++ stdout-path = &uart0; ++ tick-timer = &timer0; ++ }; ++ ++ aliases { ++ spi0 = &snand; ++ ethernet0 = ð ++ }; ++ ++ memory@40000000 { ++ device_type = "memory"; ++ reg = <0x40000000 0x8000000>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led_power_blue: power_blue { ++ function = LED_FUNCTION_POWER; ++ color = ; ++ gpios = <&gpio 18 GPIO_ACTIVE_LOW>; ++ }; ++ ++ led_power_amber: power_amber { ++ function = LED_FUNCTION_POWER; ++ color = ; ++ gpios = <&gpio 17 GPIO_ACTIVE_LOW>; ++ }; ++ ++ led_net_blue: net_blue { ++ label = "blue:net"; ++ gpios = <&gpio 1 GPIO_ACTIVE_LOW>; ++ }; ++ ++ led_net_amber: net_amber { ++ label = "amber:net"; ++ gpios = <&gpio 16 GPIO_ACTIVE_LOW>; ++ }; ++ ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "reset"; ++ gpios = <&gpio 0 GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ mesh { ++ label = "mesh"; ++ gpios = <&gpio 102 GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ linux,input-type = ; ++ }; ++ }; ++ ++ 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; ++ }; ++}; ++ ++&pcie { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie0_pins>; ++ status = "okay"; ++ ++ pcie@0,0 { ++ status = "okay"; ++ }; ++}; ++ ++&pinctrl { ++ pcie0_pins: pcie0-pins { ++ mux { ++ function = "pcie"; ++ groups = "pcie0_pad_perst", ++ "pcie0_1_waken", ++ "pcie0_1_clkreq"; ++ }; ++ }; ++ ++ snfi_pins: snfi-pins { ++ mux { ++ function = "flash"; ++ groups = "snfi"; ++ }; ++ }; ++ ++ uart0_pins: uart0 { ++ mux { ++ function = "uart"; ++ groups = "uart0_0_tx_rx" ; ++ }; ++ }; ++ ++ watchdog_pins: watchdog-default { ++ mux { ++ function = "watchdog"; ++ groups = "watchdog"; ++ }; ++ }; ++}; ++ ++&snand { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&snfi_pins>; ++ quad-spi; ++ status = "okay"; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_pins>; ++ mediatek,force-highspeed; ++ status = "okay"; ++}; ++ ++&watchdog { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&watchdog_pins>; ++ status = "okay"; ++}; ++ ++ð { ++ status = "okay"; ++ mediatek,gmac-id = <0>; ++ phy-mode = "2500base-x"; ++ mediatek,switch = "mt7531"; ++ reset-gpios = <&gpio 54 GPIO_ACTIVE_HIGH>; ++ ++ fixed-link { ++ speed = <2500>; ++ full-duplex; ++ }; ++}; +--- /dev/null ++++ b/configs/mt7622_xiaomi_redmi-router-ax6s-ubi-loader_defconfig +@@ -0,0 +1,98 @@ ++CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y ++CONFIG_POSITION_INDEPENDENT=y ++CONFIG_ARCH_MEDIATEK=y ++CONFIG_TEXT_BASE=0x41e00000 ++CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_DEFAULT_DEVICE_TREE="mt7622-xiaomi-redmi-router-ax6s" ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=25000000 ++CONFIG_SYS_LOAD_ADDR=0x40080000 ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7622-xiaomi-redmi-router-ax6s" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_LAST_STAGE_INIT=y ++CONFIG_HUSH_PARSER=y ++# CONFIG_AUTO_COMPLETE is not set ++CONFIG_SYS_PROMPT="MT7622> " ++CONFIG_CMD_LICENSE=y ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++# CONFIG_CMD_UNLZ4 is not set ++# CONFIG_CMD_UNZIP is not set ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_MTD=y ++# CONFIG_CMD_BOOTP is not set ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_MTDPARTS=y ++CONFIG_MTDPARTS_DEFAULT="mtdparts=spi-nand0:512k(preloader),2816k(reserved),117248k(ubi)" ++CONFIG_CMD_UBI=y ++CONFIG_CMD_UBI_RENAME=y ++CONFIG_DOS_PARTITION=y ++CONFIG_EFI_PARTITION=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="xiaomi-redmi-router-ax6s-ubi-loader_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y ++CONFIG_PROT_UDP=y ++CONFIG_BOOTP_SEND_HOSTNAME=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y ++CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTK_SPI_NAND=y ++CONFIG_MTK_SPI_NAND_MTD=y ++CONFIG_UBI_SILENCE_MSG=y ++CONFIG_MTD_UBI_FASTMAP=y ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_RAM=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y ++CONFIG_UBIFS_SILENCE_MSG=y ++CONFIG_LZ4=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +--- /dev/null ++++ b/xiaomi-redmi-router-ax6s-ubi-loader_env +@@ -0,0 +1,22 @@ ++ipaddr=192.168.1.1 ++serverip=192.168.1.254 ++loadaddr=0x46000000 ++console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0 ++bootled_pwr=power_blue ++bootled_rec=power_amber ++bootcmd=run boot_or_recovery ++bootconf=config-1 ++bootdelay=0 ++bootfile=openwrt-mediatek-mt7622-xiaomi_redmi-router-ax6s-initramfs-recovery.itb ++bootfile_upg=openwrt-mediatek-mt7622-xiaomi_redmi-router-ax6s-squashfs-sysupgrade.itb ++boot_or_recovery=run boot_production ; led $bootled_pwr off ; led $bootled_rec on ; if ubi check fit ; then run boot_tftp_forever ; else run tftp_production ; fi ++boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf ++boot_tftp_forever=while true ; do run boot_tftp ; sleep 1 ; done ++boot_production=run ubi_read_production && bootm $loadaddr#$bootconf ++ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ++ubi_init=ubi part ubi || run ubi_format ++ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi ++ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize ++ubi_read_production=run ubi_init && ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs ++tftp_production=tftpboot $loadaddr $bootfile_upg && iminfo $loadaddr && run ubi_write_production && reset diff --git a/package/boot/uboot-rockchip/Makefile b/package/boot/uboot-rockchip/Makefile index c9b3bbd3ac1f2a..89a7ccdd4b44cf 100644 --- a/package/boot/uboot-rockchip/Makefile +++ b/package/boot/uboot-rockchip/Makefile @@ -165,6 +165,13 @@ define U-Boot/nanopi-r5s-rk3568 friendlyarm_nanopi-r5s endef +define U-Boot/radxa-e25-rk3568 + $(U-Boot/rk3568/Default) + NAME:=E25 + BUILD_DEVICES:= \ + radxa_e25 +endef + UBOOT_TARGETS := \ nanopc-t4-rk3399 \ nanopi-r4s-rk3399 \ @@ -180,7 +187,8 @@ UBOOT_TARGETS := \ rock-pi-e-rk3328 \ radxa-cm3-io-rk3566 \ nanopi-r5c-rk3568 \ - nanopi-r5s-rk3568 + nanopi-r5s-rk3568 \ + radxa-e25-rk3568 UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes diff --git a/package/boot/uboot-sunxi/Makefile b/package/boot/uboot-sunxi/Makefile index 7f50992e6955c6..112ea47d21d762 100644 --- a/package/boot/uboot-sunxi/Makefile +++ b/package/boot/uboot-sunxi/Makefile @@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk -PKG_VERSION:=2023.04 +PKG_VERSION:=2024.01 -PKG_HASH:=e31cac91545ff41b71cec5d8c22afd695645cd6e2a442ccdacacd60534069341 +PKG_HASH:=b99611f1ed237bf3541bdc8434b68c96a6e05967061f992443cb30aabebef5b3 PKG_MAINTAINER:=Zoltan HERPAI @@ -339,6 +339,15 @@ define U-Boot/orangepi_zero2 ATF:=h616 endef +define U-Boot/orangepi_zero3 + BUILD_SUBTARGET:=cortexa53 + NAME:=Xunlong Orange Pi Zero3 + BUILD_DEVICES:=xunlong_orangepi-zero3 + DEPENDS:=+PACKAGE_u-boot-orangepi_zero3:trusted-firmware-a-sunxi-h616 + UENV:=h616 + ATF:=h616 +endef + define U-Boot/Bananapi_M2_Ultra BUILD_SUBTARGET:=cortexa7 NAME:=Bananapi M2 Ultra @@ -402,6 +411,7 @@ UBOOT_TARGETS := \ orangepi_2 \ orangepi_pc2 \ orangepi_zero2 \ + orangepi_zero3 \ pangolin \ pine64_plus \ Sinovoip_BPI_M3 \ diff --git a/package/boot/uboot-sunxi/patches/062-A20-improve-gmac-upload.patch b/package/boot/uboot-sunxi/patches/062-A20-improve-gmac-upload.patch index 13a703f307d215..a1caf18a184a54 100644 --- a/package/boot/uboot-sunxi/patches/062-A20-improve-gmac-upload.patch +++ b/package/boot/uboot-sunxi/patches/062-A20-improve-gmac-upload.patch @@ -2,7 +2,7 @@ --- a/configs/A20-OLinuXino-Lime2_defconfig +++ b/configs/A20-OLinuXino-Lime2_defconfig -@@ -26,6 +26,7 @@ CONFIG_ETH_DESIGNWARE=y +@@ -25,6 +25,7 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_RGMII=y CONFIG_MII=y CONFIG_SUN7I_GMAC=y diff --git a/package/boot/uboot-sunxi/patches/200-mkimage-check-environment-for-dtc-binary-location.patch b/package/boot/uboot-sunxi/patches/200-mkimage-check-environment-for-dtc-binary-location.patch index fcc30ce35cd1d6..0307d6b99b2e23 100644 --- a/package/boot/uboot-sunxi/patches/200-mkimage-check-environment-for-dtc-binary-location.patch +++ b/package/boot/uboot-sunxi/patches/200-mkimage-check-environment-for-dtc-binary-location.patch @@ -17,7 +17,7 @@ Cc: Simon Glass --- a/tools/fit_image.c +++ b/tools/fit_image.c -@@ -754,9 +754,14 @@ static int fit_handle_file(struct image_ +@@ -774,9 +774,14 @@ static int fit_handle_file(struct image_ } *cmd = '\0'; } else if (params->datafile) { diff --git a/package/devel/leds/Makefile b/package/devel/leds/Makefile index 47b9674c4f445b..ea3b19c4e90604 100644 --- a/package/devel/leds/Makefile +++ b/package/devel/leds/Makefile @@ -14,7 +14,6 @@ include $(INCLUDE_DIR)/package.mk define Package/leds/default SECTION:=devel CATEGORY:=Development - VERSION:=$(LINUX_VERSION)-$(PKG_RELEASE) URL:=http://www.kernel.org endef diff --git a/package/devel/perf/Makefile b/package/devel/perf/Makefile index f9573c4150feb7..27ab7173f8711c 100644 --- a/package/devel/perf/Makefile +++ b/package/devel/perf/Makefile @@ -28,7 +28,7 @@ define Package/perf SECTION:=devel CATEGORY:=Development DEPENDS:= +libelf +libdw +PACKAGE_libunwind:libunwind +libpthread +librt +objdump @!IN_SDK @KERNEL_PERF_EVENTS \ - +PACKAGE_libbfd:libbfd +PACKAGE_libopcodes:libopcodes + +PACKAGE_libbfd:libbfd +PACKAGE_libopcodes:libopcodes +libtraceevent TITLE:=Linux performance monitoring tool VERSION:=$(LINUX_VERSION)-$(PKG_RELEASE) URL:=http://www.kernel.org @@ -63,14 +63,19 @@ MAKE_FLAGS = \ LDFLAGS="$(TARGET_LDFLAGS)" \ KBUILD_HOSTCFLAGS="$(HOST_CFLAGS)" \ $(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \ + PKG_CONFIG="$(PKG_CONFIG)" \ + PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" \ + EXCLUDE_EXTLIBS="-lstdc++" \ + EXTRA_PERFLIBS="$(shell $(TARGET_CC) -print-file-name=libstdc++.a)" \ WERROR=0 \ O=$(PKG_BUILD_DIR) \ prefix=/usr define Build/Compile - +$(MAKE_FLAGS) $(MAKE) $(PKG_JOBS) \ + +$(MAKE) $(PKG_JOBS) $(MAKE_FLAGS) \ --no-print-directory \ - -C $(LINUX_DIR)/tools/perf + -C $(LINUX_DIR)/tools/perf \ + -f Makefile.perf endef define Package/perf/install diff --git a/package/firmware/ath10k-ct-firmware/Makefile b/package/firmware/ath10k-ct-firmware/Makefile index 78846fbe9da551..f861a32b8b8510 100644 --- a/package/firmware/ath10k-ct-firmware/Makefile +++ b/package/firmware/ath10k-ct-firmware/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ath10k-ct-firmware -PKG_VERSION:=2020-11-08 +PKG_VERSION:=2020.11.08 PKG_RELEASE:=1 DL_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) diff --git a/package/firmware/ath11k-firmware/Makefile b/package/firmware/ath11k-firmware/Makefile index 384595f10d07c9..85cbfa87c3cb3c 100644 --- a/package/firmware/ath11k-firmware/Makefile +++ b/package/firmware/ath11k-firmware/Makefile @@ -8,9 +8,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ath11k-firmware -PKG_SOURCE_DATE:=2023-08-22 -PKG_SOURCE_VERSION:=d8f82a98ff1aef330d65d8b5660b46d1a9809ee3 -PKG_MIRROR_HASH:=3dba19449758c3b17f117990d7ad4086554e012b579f1de16e9d9196a7fbaaa7 +PKG_SOURCE_DATE:=2024-03-14 +PKG_SOURCE_VERSION:=795809c7041582bd51bdfaa1f548b916ae8d4382 +PKG_MIRROR_HASH:=d93edc651b641a97ec4f5ed329e15ac110928f863b4afbaae7fcb25953d04544 PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git @@ -55,46 +55,31 @@ QCN9074_BOARD_REV:=8e140c65f36137714b6d8934e09dcd73cb05c2f6 QCN9074_BOARD_FILE:=board-2.bin.$(QCN9074_BOARD_REV) define Download/qcn9074-board - URL:=https://github.com/kvalo/ath11k-firmware/raw/master/QCN9074/hw1.0/ + URL:=https://git.codelinaro.org/clo/ath-firmware/ath11k-firmware/-/raw/main/QCN9074/hw1.0/ URL_FILE:=board-2.bin FILE:=$(QCN9074_BOARD_FILE) HASH:=dbf0ca14aa1229eccd48f26f1026901b9718b143bd30b51b8ea67c84ba6207f1 endef $(eval $(call Download,qcn9074-board)) -define Download/ath11k-firmware-old - URL:=https://github.com/kvalo/ath11k-firmware.git - VERSION:=540105aa5c0903b5f773d4e80b8501e8da5217e7 - PROTO:=git - FILE:=ath11k-firmware-old.tar.xz - SUBDIR:=ath11k-firmware-old - MIRROR_HASH:=a35a164726fab2adc4ad447c974c06746355ba74deab9b849d39f06b5187bb6d -endef -$(eval $(call Download,ath11k-firmware-old)) - -define Build/Prepare - $(call Build/Prepare/Default) - xzcat $(DL_DIR)/ath11k-firmware-old.tar.xz | tar -C $(PKG_BUILD_DIR)/ -xf - -endef - define Package/ath11k-firmware-ipq6018/install $(INSTALL_DIR) $(1)/lib/firmware/IPQ6018 $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath11k-firmware-old/IPQ6018/hw1.0/2.4.0.1/WLAN.HK.2.4.0.1-01746-QCAHKSWPL_SILICONZ-1/* \ + $(PKG_BUILD_DIR)/ath11k-firmware/IPQ6018/hw1.0/2.5.0.1/WLAN.HK.2.5.0.1-03982-QCAHKSWPL_SILICONZ-3/* \ $(1)/lib/firmware/IPQ6018/ endef define Package/ath11k-firmware-ipq8074/install $(INSTALL_DIR) $(1)/lib/firmware/IPQ8074 $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath11k-firmware/IPQ8074/hw2.0/2.9.0.1/WLAN.HK.2.9.0.1-01890-QCAHKSWPL_SILICONZ-1/* \ + $(PKG_BUILD_DIR)/ath11k-firmware/IPQ8074/hw2.0/2.9.0.1/WLAN.HK.2.9.0.1-01977-QCAHKSWPL_SILICONZ-1/* \ $(1)/lib/firmware/IPQ8074/ endef define Package/ath11k-firmware-qcn9074/install $(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCN9074/hw1.0 $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath11k-firmware/QCN9074/hw1.0/2.9.0.1/WLAN.HK.2.9.0.1-01890-QCAHKSWPL_SILICONZ-1/* \ + $(PKG_BUILD_DIR)/ath11k-firmware/QCN9074/hw1.0/2.9.0.1/WLAN.HK.2.9.0.1-01977-QCAHKSWPL_SILICONZ-1/* \ $(1)/lib/firmware/ath11k/QCN9074/hw1.0/ $(INSTALL_BIN) \ $(DL_DIR)/$(QCN9074_BOARD_FILE) $(1)/lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin diff --git a/package/firmware/broadcom-sprom/Makefile b/package/firmware/broadcom-sprom/Makefile index 01bca2c35b7dd4..20fcf45479b102 100644 --- a/package/firmware/broadcom-sprom/Makefile +++ b/package/firmware/broadcom-sprom/Makefile @@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=broadcom-sprom PKG_SOURCE_DATE:=2023-04-27 PKG_SOURCE_VERSION:=d36f7fcb37711106a3a2652b576436cb09aa5b6f -PKG_MIRROR_HASH:=fde251ab4ed26d61c95269316119710d6ccb8fe30ef13305d08b3e7d7d8a4c60 +PKG_MIRROR_HASH:=fce49b1deb40e336fa3cceca7d6c1a062e38ca3c206240bd0acb6c62e3f58ca6 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git diff --git a/package/firmware/cypress-firmware/Makefile b/package/firmware/cypress-firmware/Makefile index 6a14ff99380695..4d836176055bca 100644 --- a/package/firmware/cypress-firmware/Makefile +++ b/package/firmware/cypress-firmware/Makefile @@ -8,7 +8,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/Infineon/ifx-linux-firmware/ -PKG_MIRROR_HASH:=944faae3a80013f1a963b6692d7f50a38c97edcf91fd163de521df755e6922b5 +PKG_MIRROR_HASH:=3e48063f0ee621d938cbfea24f9e5632751b6eac9fe09b0d1289181eed1ee95e PKG_SOURCE_VERSION:=release-v$(PKG_VERSION) PKG_MAINTAINER:=Álvaro Fernández Rojas diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index b6c1a34bde2a94..6537477d3f5432 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -2,14 +2,13 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/version.mk PKG_NAME:=ipq-wifi -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git -PKG_SOURCE_DATE:=2024-03-04 -PKG_SOURCE_VERSION:=38c02ae4302f9cb73f6914574239fe84799caa84 -PKG_MIRROR_HASH:=0f6a2dea8466ea0e8df3262bff643d60b1725f2218589c41d9f87fb37843c362 - +PKG_SOURCE_DATE:=2024-03-20 +PKG_SOURCE_VERSION:=87717baa8a7c922942f4202a0ec3de3cb5643941 +PKG_MIRROR_HASH:=a88124db0cd9a386d2cbd905e48408e7131f057240bcc7da93f7c5fc10ea4892 PKG_FLAGS:=nonshared include $(INCLUDE_DIR)/package.mk @@ -52,8 +51,8 @@ ALLWIFIBOARDS:= \ xiaomi_ax9000 \ yyets_le1 \ yuncore_ax880 \ + yuncore_fap650 \ zte_mf269 \ - zte_mf289f \ zte_mf287 \ zte_mf287plus \ zyxel_nbg7815 @@ -170,8 +169,8 @@ $(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600)) $(eval $(call generate-ipq-wifi-package,xiaomi_ax9000,Xiaomi AX9000)) $(eval $(call generate-ipq-wifi-package,yyets_le1,YYeTs LE1)) $(eval $(call generate-ipq-wifi-package,yuncore_ax880,Yuncore AX880)) +$(eval $(call generate-ipq-wifi-package,yuncore_fap650,Yuncore FAP650)) $(eval $(call generate-ipq-wifi-package,zte_mf269,ZTE MF269)) -$(eval $(call generate-ipq-wifi-package,zte_mf289f,ZTE MF289F)) $(eval $(call generate-ipq-wifi-package,zte_mf287,ZTE MF287)) $(eval $(call generate-ipq-wifi-package,zte_mf287plus,ZTE MF287Plus)) $(eval $(call generate-ipq-wifi-package,zyxel_nbg7815,Zyxel NBG7815)) diff --git a/package/firmware/layerscape/fman-ucode/Makefile b/package/firmware/layerscape/fman-ucode/Makefile index fdd4659851289f..99729e0b830704 100644 --- a/package/firmware/layerscape/fman-ucode/Makefile +++ b/package/firmware/layerscape/fman-ucode/Makefile @@ -14,7 +14,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/nxp-qoriq/qoriq-fm-ucode PKG_SOURCE_VERSION:=lf-6.1.1-1.0.0 -PKG_MIRROR_HASH:=3614200837945460374570a48822a3efb96a64b93724e7f973e61008baeccf3a +PKG_MIRROR_HASH:=d69792e0b03f2fd00cb9d69325d9817b43fb14dd1b27e41018b3ea69b25c55a5 PKG_FLAGS:=nonshared diff --git a/package/firmware/layerscape/ls-ddr-phy/Makefile b/package/firmware/layerscape/ls-ddr-phy/Makefile index 28e1355073e855..848ee4e85fce8b 100644 --- a/package/firmware/layerscape/ls-ddr-phy/Makefile +++ b/package/firmware/layerscape/ls-ddr-phy/Makefile @@ -12,7 +12,7 @@ PKG_RELEASE:=3 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/NXP/ddr-phy-binary.git PKG_SOURCE_VERSION:=LSDK-21.08 -PKG_MIRROR_HASH:=0fb35c697f4b4274577cce63223198f5c7715164a2c5d09a55c46ef17639ed4b +PKG_MIRROR_HASH:=2f9bf4f6b2410e436e4e606f981c71919b1896e4da4f204de483d9f7677a064d PKG_BUILD_DEPENDS:=tfa-layerscape/host PKG_LICENSE:=EULA diff --git a/package/firmware/layerscape/ls-dpl/Makefile b/package/firmware/layerscape/ls-dpl/Makefile index 7ceba620bb9538..058fe5443b3ba7 100644 --- a/package/firmware/layerscape/ls-dpl/Makefile +++ b/package/firmware/layerscape/ls-dpl/Makefile @@ -14,7 +14,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/nxp-qoriq/mc-utils PKG_SOURCE_VERSION:=mc_release_10.38.0 -PKG_MIRROR_HASH:=c5032ad73a04cf7fa23a2afeee85108677e665871a6c48ca352f415eea9b6390 +PKG_MIRROR_HASH:=9ada83ac4cc259cdf2ea2ebfc2328292f7dace701bfac2b5514749bd9f8315f0 PKG_FLAGS:=nonshared diff --git a/package/firmware/layerscape/ls-mc/Makefile b/package/firmware/layerscape/ls-mc/Makefile index 3ef5a783272cb3..4d01a531cd27fd 100644 --- a/package/firmware/layerscape/ls-mc/Makefile +++ b/package/firmware/layerscape/ls-mc/Makefile @@ -14,7 +14,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/NXP/qoriq-mc-binary.git PKG_SOURCE_VERSION:=mc_release_10.38.0 -PKG_MIRROR_HASH:=b4482690246f9bd6a8728c482fd391ccf9b25a104b02f08add6e5c5d43a5ad75 +PKG_MIRROR_HASH:=4bd0eab4b600d6dee67b4c5b32624a92fd84e6c93f506e46a4fe52217e2d1593 PKG_FLAGS:=nonshared diff --git a/package/firmware/layerscape/ls-rcw/Makefile b/package/firmware/layerscape/ls-rcw/Makefile index 1569f1042e7d5c..3565c540d7f4fb 100644 --- a/package/firmware/layerscape/ls-rcw/Makefile +++ b/package/firmware/layerscape/ls-rcw/Makefile @@ -14,7 +14,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/nxp-qoriq/rcw PKG_SOURCE_VERSION:=lf-6.1.1-1.0.0 -PKG_MIRROR_HASH:=3127285549a0a7dd3cded20c2fbfb67b06943faa8dab529f61936dc1bea177db +PKG_MIRROR_HASH:=6d505c1a60046a79c91b69cd6e26a2ef3515d7cb2999bdc9defcb664a1a5aef9 PKG_FLAGS:=nonshared diff --git a/package/firmware/layerscape/ppfe-firmware/Makefile b/package/firmware/layerscape/ppfe-firmware/Makefile index 86f6194125af23..b6a251098efa8f 100644 --- a/package/firmware/layerscape/ppfe-firmware/Makefile +++ b/package/firmware/layerscape/ppfe-firmware/Makefile @@ -14,7 +14,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/nxp-qoriq/qoriq-engine-pfe-bin PKG_SOURCE_VERSION:=lf-6.1.1-1.0.0 -PKG_MIRROR_HASH:=eb1e3efe08980e70594060c84c1620a1dde53e00e96bae63d15dceb236c0bfa8 +PKG_MIRROR_HASH:=59f5660f1b93314e3e073053195719eab7361f07d1a9e02896f9356b1a615873 PKG_FLAGS:=nonshared diff --git a/package/firmware/linux-firmware/Makefile b/package/firmware/linux-firmware/Makefile index f7f1f978e30bed..b86177b91adcb1 100644 --- a/package/firmware/linux-firmware/Makefile +++ b/package/firmware/linux-firmware/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=linux-firmware -PKG_VERSION:=20231211 -PKG_RELEASE:=2 +PKG_VERSION:=20240220 +PKG_RELEASE:=1 PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_HASH:=96af7e4b5eabd37869cdb3dcbb7ab36911106d39b76e799fa1caab16a9dbe8bb +PKG_HASH:=bf0f239dc0801e9d6bf5d5fb3e2f549575632cf4688f4348184199cb02c2bcd7 PKG_MAINTAINER:=Felix Fietkau @@ -30,6 +30,8 @@ define Package/firmware-default URL:=http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git TITLE:=$(1) DEPENDS:=$(2) + LICENSE_FILES:=$(3) + LICENSE:=$(4) endef define Build/Compile diff --git a/package/firmware/linux-firmware/airoha.mk b/package/firmware/linux-firmware/airoha.mk index ac64d11e41c03b..4d46ac54472818 100644 --- a/package/firmware/linux-firmware/airoha.mk +++ b/package/firmware/linux-firmware/airoha.mk @@ -1,4 +1,4 @@ -Package/airoha-en8811h-firmware = $(call Package/firmware-default,Airoha EN8811H 2.5G Ethernet PHY firmware) +Package/airoha-en8811h-firmware = $(call Package/firmware-default,Airoha EN8811H 2.5G Ethernet PHY firmware,,LICENSE.airoha) define Package/airoha-en8811h-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/airoha $(CP) \ diff --git a/package/firmware/linux-firmware/amd.mk b/package/firmware/linux-firmware/amd.mk index 68b305e8626a2f..b669cf1b35089d 100644 --- a/package/firmware/linux-firmware/amd.mk +++ b/package/firmware/linux-firmware/amd.mk @@ -1,4 +1,4 @@ -Package/amd64-microcode = $(call Package/firmware-default,AMD64 CPU microcode,@TARGET_x86) +Package/amd64-microcode = $(call Package/firmware-default,AMD64 CPU microcode,@TARGET_x86,LICENSE.amd-ucode) define Package/amd64-microcode/install $(INSTALL_DIR) $(1)/lib/firmware/amd-ucode $(CP) \ @@ -8,7 +8,7 @@ endef $(eval $(call BuildPackage,amd64-microcode)) -Package/amdgpu-firmware = $(call Package/firmware-default,AMDGPU Video Driver firmware) +Package/amdgpu-firmware = $(call Package/firmware-default,AMDGPU Video Driver firmware,,LICENSE.amdgpura) define Package/amdgpu-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/amdgpu $(CP) \ @@ -18,7 +18,7 @@ endef $(eval $(call BuildPackage,amdgpu-firmware)) -Package/radeon-firmware = $(call Package/firmware-default,Radeon Video Driver firmware) +Package/radeon-firmware = $(call Package/firmware-default,Radeon Video Driver firmware,,LICENSE.radeon) define Package/radeon-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/radeon $(CP) \ diff --git a/package/firmware/linux-firmware/broadcom.mk b/package/firmware/linux-firmware/broadcom.mk index 088a2665ccd646..c4e5885f77c232 100644 --- a/package/firmware/linux-firmware/broadcom.mk +++ b/package/firmware/linux-firmware/broadcom.mk @@ -1,4 +1,4 @@ -Package/brcmfmac-firmware-4339-sdio = $(call Package/firmware-default,Broadcom 4339 FullMAC SDIO firmware) +Package/brcmfmac-firmware-4339-sdio = $(call Package/firmware-default,Broadcom 4339 FullMAC SDIO firmware,,LICENCE.cypressb) define Package/brcmfmac-firmware-4339-sdio/install $(INSTALL_DIR) $(1)/lib/firmware/cypress $(INSTALL_DATA) \ @@ -11,7 +11,7 @@ define Package/brcmfmac-firmware-4339-sdio/install endef $(eval $(call BuildPackage,brcmfmac-firmware-4339-sdio)) -Package/brcmfmac-firmware-43602a1-pcie = $(call Package/firmware-default,Broadcom 43602a1 FullMAC PCIe firmware) +Package/brcmfmac-firmware-43602a1-pcie = $(call Package/firmware-default,Broadcom 43602a1 FullMAC PCIe firmware,,LICENCE.broadcom_bcm43xx) define Package/brcmfmac-firmware-43602a1-pcie/install $(INSTALL_DIR) $(1)/lib/firmware/brcm $(INSTALL_DATA) \ @@ -20,7 +20,7 @@ define Package/brcmfmac-firmware-43602a1-pcie/install endef $(eval $(call BuildPackage,brcmfmac-firmware-43602a1-pcie)) -Package/brcmfmac-firmware-4366b1-pcie = $(call Package/firmware-default,Broadcom 4366b1 FullMAC PCIe firmware) +Package/brcmfmac-firmware-4366b1-pcie = $(call Package/firmware-default,Broadcom 4366b1 FullMAC PCIe firmware,,LICENCE.broadcom_bcm43xx) define Package/brcmfmac-firmware-4366b1-pcie/install $(INSTALL_DIR) $(1)/lib/firmware/brcm $(INSTALL_DATA) \ @@ -29,7 +29,7 @@ define Package/brcmfmac-firmware-4366b1-pcie/install endef $(eval $(call BuildPackage,brcmfmac-firmware-4366b1-pcie)) -Package/brcmfmac-firmware-4366c0-pcie = $(call Package/firmware-default,Broadcom 4366c0 FullMAC PCIe firmware) +Package/brcmfmac-firmware-4366c0-pcie = $(call Package/firmware-default,Broadcom 4366c0 FullMAC PCIe firmware,,LICENCE.broadcom_bcm43xx) define Package/brcmfmac-firmware-4366c0-pcie/install $(INSTALL_DIR) $(1)/lib/firmware/brcm $(INSTALL_DATA) \ @@ -38,7 +38,7 @@ define Package/brcmfmac-firmware-4366c0-pcie/install endef $(eval $(call BuildPackage,brcmfmac-firmware-4366c0-pcie)) -Package/brcmfmac-firmware-4329-sdio = $(call Package/firmware-default,Broadcom BCM4329 FullMac SDIO firmware) +Package/brcmfmac-firmware-4329-sdio = $(call Package/firmware-default,Broadcom BCM4329 FullMac SDIO firmware,,LICENCE.broadcom_bcm43xx) define Package/brcmfmac-firmware-4329-sdio/install $(INSTALL_DIR) $(1)/lib/firmware/brcm $(INSTALL_DATA) \ @@ -47,7 +47,7 @@ define Package/brcmfmac-firmware-4329-sdio/install endef $(eval $(call BuildPackage,brcmfmac-firmware-4329-sdio)) -Package/brcmfmac-nvram-43430-sdio = $(call Package/firmware-default,Broadcom BCM43430 SDIO NVRAM) +Package/brcmfmac-nvram-43430-sdio = $(call Package/firmware-default,Broadcom BCM43430 SDIO NVRAM,,LICENCE.broadcom_bcm43xx) define Package/brcmfmac-nvram-43430-sdio/install $(INSTALL_DIR) $(1)/lib/firmware/brcm $(INSTALL_DATA) \ @@ -95,7 +95,7 @@ define Package/brcmfmac-nvram-43430-sdio/install endef $(eval $(call BuildPackage,brcmfmac-nvram-43430-sdio)) -Package/brcmfmac-firmware-43430a0-sdio = $(call Package/firmware-default,Broadcom BCM43430a0 FullMac SDIO firmware) +Package/brcmfmac-firmware-43430a0-sdio = $(call Package/firmware-default,Broadcom BCM43430a0 FullMac SDIO firmware,,LICENCE.broadcom_bcm43xx) define Package/brcmfmac-firmware-43430a0-sdio/install $(INSTALL_DIR) $(1)/lib/firmware/brcm $(INSTALL_DATA) \ @@ -104,7 +104,7 @@ define Package/brcmfmac-firmware-43430a0-sdio/install endef $(eval $(call BuildPackage,brcmfmac-firmware-43430a0-sdio)) -Package/brcmfmac-nvram-43455-sdio = $(call Package/firmware-default,Broadcom BCM43455 SDIO NVRAM) +Package/brcmfmac-nvram-43455-sdio = $(call Package/firmware-default,Broadcom BCM43455 SDIO NVRAM,,LICENCE.broadcom_bcm43xx) define Package/brcmfmac-nvram-43455-sdio/install $(INSTALL_DIR) $(1)/lib/firmware/brcm $(INSTALL_DATA) \ @@ -155,7 +155,7 @@ define Package/brcmfmac-nvram-43455-sdio/install endef $(eval $(call BuildPackage,brcmfmac-nvram-43455-sdio)) -Package/brcmfmac-nvram-4356-sdio = $(call Package/firmware-default,Broadcom BCM4356 SDIO NVRAM) +Package/brcmfmac-nvram-4356-sdio = $(call Package/firmware-default,Broadcom BCM4356 SDIO NVRAM,,LICENCE.broadcom_bcm43xx) define Package/brcmfmac-nvram-4356-sdio/install $(INSTALL_DIR) $(1)/lib/firmware/brcm $(INSTALL_DATA) \ @@ -167,7 +167,7 @@ define Package/brcmfmac-nvram-4356-sdio/install endef $(eval $(call BuildPackage,brcmfmac-nvram-4356-sdio)) -Package/brcmfmac-firmware-usb = $(call Package/firmware-default,Broadcom BCM43xx fullmac USB firmware) +Package/brcmfmac-firmware-usb = $(call Package/firmware-default,Broadcom BCM43xx fullmac USB firmware,,LICENCE.broadcom_bcm43xx) define Package/brcmfmac-firmware-usb/install $(INSTALL_DIR) $(1)/lib/firmware/brcm $(INSTALL_DATA) \ @@ -179,7 +179,7 @@ define Package/brcmfmac-firmware-usb/install endef $(eval $(call BuildPackage,brcmfmac-firmware-usb)) -Package/brcmsmac-firmware = $(call Package/firmware-default,Broadcom BCM43xx softmac PCIe firmware) +Package/brcmsmac-firmware = $(call Package/firmware-default,Broadcom BCM43xx softmac PCIe firmware,,LICENCE.broadcom_bcm43xx) define Package/brcmsmac-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/brcm $(INSTALL_DATA) \ diff --git a/package/firmware/linux-firmware/intel.mk b/package/firmware/linux-firmware/intel.mk index 19a96b2c85a09e..f6acb45d4817f5 100644 --- a/package/firmware/linux-firmware/intel.mk +++ b/package/firmware/linux-firmware/intel.mk @@ -173,21 +173,28 @@ $(eval $(call BuildPackage,iwlwifi-firmware-iwl9260)) Package/iwlwifi-firmware-ax101 = $(call Package/firmware-default,Intel AX101 firmware) define Package/iwlwifi-firmware-ax101/install $(INSTALL_DIR) $(1)/lib/firmware - $(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-so-a0-hr-b0-81.ucode $(1)/lib/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-so-a0-hr-b0-83.ucode $(1)/lib/firmware endef $(eval $(call BuildPackage,iwlwifi-firmware-ax101)) Package/iwlwifi-firmware-ax200 = $(call Package/firmware-default,Intel AX200 firmware) define Package/iwlwifi-firmware-ax200/install $(INSTALL_DIR) $(1)/lib/firmware - $(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-cc-a0-72.ucode $(1)/lib/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-cc-a0-77.ucode $(1)/lib/firmware endef $(eval $(call BuildPackage,iwlwifi-firmware-ax200)) +Package/iwlwifi-firmware-ax201 = $(call Package/firmware-default,Intel AX201 firmware) +define Package/iwlwifi-firmware-ax201/install + $(INSTALL_DIR) $(1)/lib/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-QuZ-a0-hr-b0-77.ucode $(1)/lib/firmware +endef +$(eval $(call BuildPackage,iwlwifi-firmware-ax201)) + Package/iwlwifi-firmware-ax210 = $(call Package/firmware-default,Intel AX210 firmware) define Package/iwlwifi-firmware-ax210/install $(INSTALL_DIR) $(1)/lib/firmware - $(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-ty-a0-gf-a0-72.ucode $(1)/lib/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-ty-a0-gf-a0-83.ucode $(1)/lib/firmware $(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-ty-a0-gf-a0.pnvm $(1)/lib/firmware endef $(eval $(call BuildPackage,iwlwifi-firmware-ax210)) diff --git a/package/firmware/linux-firmware/marvell.mk b/package/firmware/linux-firmware/marvell.mk index 78edac0ff3b88e..17d85a3f11afb8 100644 --- a/package/firmware/linux-firmware/marvell.mk +++ b/package/firmware/linux-firmware/marvell.mk @@ -1,4 +1,4 @@ -Package/mwl8k-firmware = $(call Package/firmware-default,Marvell 8366/8687 firmware) +Package/mwl8k-firmware = $(call Package/firmware-default,Marvell 8366/8687 firmware,,LICENCE.Marvell) define Package/mwl8k-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mwl8k $(INSTALL_DATA) \ @@ -11,7 +11,7 @@ define Package/mwl8k-firmware/install endef $(eval $(call BuildPackage,mwl8k-firmware)) -Package/mwifiex-pcie-firmware = $(call Package/firmware-default,Marvell 8897 firmware) +Package/mwifiex-pcie-firmware = $(call Package/firmware-default,Marvell 8897 firmware,,LICENCE.Marvell) define Package/mwifiex-pcie-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mrvl $(INSTALL_DATA) \ @@ -20,7 +20,7 @@ define Package/mwifiex-pcie-firmware/install endef $(eval $(call BuildPackage,mwifiex-pcie-firmware)) -Package/mwifiex-sdio-firmware = $(call Package/firmware-default,Marvell 8887/8997 firmware) +Package/mwifiex-sdio-firmware = $(call Package/firmware-default,Marvell 8887/8997 firmware,,LICENCE.Marvell) define Package/mwifiex-sdio-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mrvl $(INSTALL_DATA) \ @@ -31,7 +31,7 @@ define Package/mwifiex-sdio-firmware/install endef $(eval $(call BuildPackage,mwifiex-sdio-firmware)) -Package/libertas-usb-firmware = $(call Package/firmware-default,Marvell 8388/8682 USB firmware) +Package/libertas-usb-firmware = $(call Package/firmware-default,Marvell 8388/8682 USB firmware,,LICENCE.Marvell) define Package/libertas-usb-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/libertas $(INSTALL_DATA) \ @@ -41,7 +41,7 @@ define Package/libertas-usb-firmware/install endef $(eval $(call BuildPackage,libertas-usb-firmware)) -Package/libertas-sdio-firmware = $(call Package/firmware-default,Marvell 8385/8686/8688 SDIO firmware) +Package/libertas-sdio-firmware = $(call Package/firmware-default,Marvell 8385/8686/8688 SDIO firmware,,LICENCE.Marvell) define Package/libertas-sdio-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/libertas $(INSTALL_DATA) \ @@ -60,7 +60,7 @@ define Package/libertas-sdio-firmware/install endef $(eval $(call BuildPackage,libertas-sdio-firmware)) -Package/libertas-spi-firmware = $(call Package/firmware-default,Marvell 8686 SPI firmware) +Package/libertas-spi-firmware = $(call Package/firmware-default,Marvell 8686 SPI firmware,,LICENCE.Marvell) define Package/libertas-spi-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/libertas $(INSTALL_DATA) \ diff --git a/package/firmware/linux-firmware/mediatek.mk b/package/firmware/linux-firmware/mediatek.mk index bf6bef22a6416c..5c448e1033c3bb 100644 --- a/package/firmware/linux-firmware/mediatek.mk +++ b/package/firmware/linux-firmware/mediatek.mk @@ -1,4 +1,4 @@ -Package/mt7601u-firmware = $(call Package/firmware-default,MediaTek MT7601U firmware) +Package/mt7601u-firmware = $(call Package/firmware-default,MediaTek MT7601U firmware,,LICENCE.mediatek) define Package/mt7601u-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mediatek $(INSTALL_DATA) \ @@ -42,7 +42,7 @@ define Package/rt73-usb-firmware/install endef $(eval $(call BuildPackage,rt73-usb-firmware)) -Package/mt7622bt-firmware = $(call Package/firmware-default,mt7622bt firmware) +Package/mt7622bt-firmware = $(call Package/firmware-default,mt7622bt firmware,,LICENCE.mediatek) define Package/mt7622bt-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mediatek $(INSTALL_DATA) \ @@ -51,7 +51,7 @@ define Package/mt7622bt-firmware/install endef $(eval $(call BuildPackage,mt7622bt-firmware)) -Package/mt7921bt-firmware = $(call Package/firmware-default,mt7921bt firmware) +Package/mt7921bt-firmware = $(call Package/firmware-default,mt7921bt firmware,,LICENCE.mediatek) define Package/mt7921bt-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mediatek $(INSTALL_DATA) \ @@ -60,7 +60,7 @@ define Package/mt7921bt-firmware/install endef $(eval $(call BuildPackage,mt7921bt-firmware)) -Package/mt7922bt-firmware = $(call Package/firmware-default,mt7922bt firmware) +Package/mt7922bt-firmware = $(call Package/firmware-default,mt7922bt firmware,,LICENCE.mediatek) define Package/mt7922bt-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mediatek $(INSTALL_DATA) \ @@ -69,7 +69,7 @@ define Package/mt7922bt-firmware/install endef $(eval $(call BuildPackage,mt7922bt-firmware)) -Package/mt7981-wo-firmware = $(call Package/firmware-default,MT7981 offload firmware) +Package/mt7981-wo-firmware = $(call Package/firmware-default,MT7981 offload firmware,,LICENCE.mediatek) define Package/mt7981-wo-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mediatek $(INSTALL_DATA) \ @@ -78,7 +78,7 @@ define Package/mt7981-wo-firmware/install endef $(eval $(call BuildPackage,mt7981-wo-firmware)) -Package/mt7986-wo-firmware = $(call Package/firmware-default,MT7986 offload firmware) +Package/mt7986-wo-firmware = $(call Package/firmware-default,MT7986 offload firmware,,LICENCE.mediatek) define Package/mt7986-wo-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mediatek $(INSTALL_DATA) \ @@ -88,7 +88,7 @@ define Package/mt7986-wo-firmware/install endef $(eval $(call BuildPackage,mt7986-wo-firmware)) -Package/mt7988-2p5g-phy-firmware = $(call Package/firmware-default,MT7988 built-in 2.5G Ethernet PHY firmware) +Package/mt7988-2p5g-phy-firmware = $(call Package/firmware-default,MT7988 built-in 2.5G Ethernet PHY firmware,,LICENCE.mediatek) define Package/mt7988-2p5g-phy-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7988 $(INSTALL_DATA) \ diff --git a/package/firmware/linux-firmware/qca.mk b/package/firmware/linux-firmware/qca.mk index 71b484d5c7192c..5f44fe45e36885 100644 --- a/package/firmware/linux-firmware/qca.mk +++ b/package/firmware/linux-firmware/qca.mk @@ -1,4 +1,4 @@ -Package/ar3k-firmware = $(call Package/firmware-default,ath3k firmware) +Package/ar3k-firmware = $(call Package/firmware-default,ath3k firmware,,LICENSE.QualcommAtheros_ar3k) define Package/ar3k-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/ar3k $(CP) \ @@ -21,7 +21,7 @@ define Package/ath6k-firmware/install endef $(eval $(call BuildPackage,ath6k-firmware)) -Package/ath9k-htc-firmware = $(call Package/firmware-default,AR9271/AR7010 firmware) +Package/ath9k-htc-firmware = $(call Package/firmware-default,AR9271/AR7010 firmware,,LICENCE.open-ath9k-htc-firmware) define Package/ath9k-htc-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/ath9k_htc $(INSTALL_DATA) \ @@ -31,7 +31,7 @@ define Package/ath9k-htc-firmware/install endef $(eval $(call BuildPackage,ath9k-htc-firmware)) -Package/carl9170-firmware = $(call Package/firmware-default,AR9170 firmware) +Package/carl9170-firmware = $(call Package/firmware-default,AR9170 firmware,,carl9170fw/GPL) define Package/carl9170-firmware/install $(INSTALL_DIR) $(1)/lib/firmware $(INSTALL_DATA) $(PKG_BUILD_DIR)/carl9170-1.fw $(1)/lib/firmware diff --git a/package/firmware/linux-firmware/qca_ath10k.mk b/package/firmware/linux-firmware/qca_ath10k.mk index 25a1571ad60717..b3bfe8a3919803 100644 --- a/package/firmware/linux-firmware/qca_ath10k.mk +++ b/package/firmware/linux-firmware/qca_ath10k.mk @@ -1,4 +1,4 @@ -Package/ath10k-board-qca4019 = $(call Package/firmware-default,ath10k qca4019 board firmware) +Package/ath10k-board-qca4019 = $(call Package/firmware-default,ath10k qca4019 board firmware,,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-board-qca4019/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 $(INSTALL_DATA) \ @@ -6,7 +6,7 @@ define Package/ath10k-board-qca4019/install $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ endef $(eval $(call BuildPackage,ath10k-board-qca4019)) -Package/ath10k-firmware-qca4019 = $(call Package/firmware-default,ath10k qca4019 firmware) +Package/ath10k-firmware-qca4019 = $(call Package/firmware-default,ath10k qca4019 firmware,,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-firmware-qca4019/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 $(INSTALL_DATA) \ @@ -15,7 +15,7 @@ define Package/ath10k-firmware-qca4019/install endef $(eval $(call BuildPackage,ath10k-firmware-qca4019)) -Package/ath10k-board-qca9377 = $(call Package/firmware-default,ath10k qca9377 board firmware) +Package/ath10k-board-qca9377 = $(call Package/firmware-default,ath10k qca9377 board firmware,,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-board-qca9377/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9377/hw1.0 $(INSTALL_DATA) \ @@ -23,7 +23,7 @@ define Package/ath10k-board-qca9377/install $(1)/lib/firmware/ath10k/QCA9377/hw1.0/ endef $(eval $(call BuildPackage,ath10k-board-qca9377)) -Package/ath10k-firmware-qca9377 = $(call Package/firmware-default,ath10k qca9377 firmware,+ath10k-board-qca9377) +Package/ath10k-firmware-qca9377 = $(call Package/firmware-default,ath10k qca9377 firmware,+ath10k-board-qca9377,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-firmware-qca9377/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9377/hw1.0 $(INSTALL_DATA) \ @@ -32,7 +32,7 @@ define Package/ath10k-firmware-qca9377/install endef $(eval $(call BuildPackage,ath10k-firmware-qca9377)) -Package/ath10k-board-qca9887 = $(call Package/firmware-default,ath10k qca9887 board firmware) +Package/ath10k-board-qca9887 = $(call Package/firmware-default,ath10k qca9887 board firmware,,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-board-qca9887/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0 $(INSTALL_DATA) \ @@ -40,7 +40,7 @@ define Package/ath10k-board-qca9887/install $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin endef $(eval $(call BuildPackage,ath10k-board-qca9887)) -Package/ath10k-firmware-qca9887 = $(call Package/firmware-default,ath10k qca9887 firmware,+ath10k-board-qca9887) +Package/ath10k-firmware-qca9887 = $(call Package/firmware-default,ath10k qca9887 firmware,+ath10k-board-qca9887,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-firmware-qca9887/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0 $(INSTALL_DATA) \ @@ -49,7 +49,7 @@ define Package/ath10k-firmware-qca9887/install endef $(eval $(call BuildPackage,ath10k-firmware-qca9887)) -Package/ath10k-board-qca9888 = $(call Package/firmware-default,ath10k qca9888 board firmware) +Package/ath10k-board-qca9888 = $(call Package/firmware-default,ath10k qca9888 board firmware,,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-board-qca9888/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 $(INSTALL_DATA) \ @@ -57,7 +57,7 @@ define Package/ath10k-board-qca9888/install $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin endef $(eval $(call BuildPackage,ath10k-board-qca9888)) -Package/ath10k-firmware-qca9888 = $(call Package/firmware-default,ath10k qca9888 firmware,+ath10k-board-qca9888) +Package/ath10k-firmware-qca9888 = $(call Package/firmware-default,ath10k qca9888 firmware,+ath10k-board-qca9888,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-firmware-qca9888/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 $(INSTALL_DATA) \ @@ -66,7 +66,7 @@ define Package/ath10k-firmware-qca9888/install endef $(eval $(call BuildPackage,ath10k-firmware-qca9888)) -Package/ath10k-board-qca988x = $(call Package/firmware-default,ath10k qca988x board firmware) +Package/ath10k-board-qca988x = $(call Package/firmware-default,ath10k qca988x board firmware,,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-board-qca988x/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 $(INSTALL_DATA) \ @@ -74,7 +74,7 @@ define Package/ath10k-board-qca988x/install $(1)/lib/firmware/ath10k/QCA988X/hw2.0/ endef $(eval $(call BuildPackage,ath10k-board-qca988x)) -Package/ath10k-firmware-qca988x = $(call Package/firmware-default,ath10k qca988x firmware,+ath10k-board-qca988x) +Package/ath10k-firmware-qca988x = $(call Package/firmware-default,ath10k qca988x firmware,+ath10k-board-qca988x,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-firmware-qca988x/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 $(INSTALL_DATA) \ @@ -83,7 +83,7 @@ define Package/ath10k-firmware-qca988x/install endef $(eval $(call BuildPackage,ath10k-firmware-qca988x)) -Package/ath10k-firmware-qca6174 = $(call Package/firmware-default,ath10k qca6174 firmware) +Package/ath10k-firmware-qca6174 = $(call Package/firmware-default,ath10k qca6174 firmware,,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-firmware-qca6174/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA6174/hw2.1 $(INSTALL_DATA) \ @@ -102,7 +102,7 @@ define Package/ath10k-firmware-qca6174/install endef $(eval $(call BuildPackage,ath10k-firmware-qca6174)) -Package/ath10k-board-qca99x0 = $(call Package/firmware-default,ath10k qca99x0 board firmware) +Package/ath10k-board-qca99x0 = $(call Package/firmware-default,ath10k qca99x0 board firmware,,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-board-qca99x0/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 $(INSTALL_DATA) \ @@ -111,7 +111,7 @@ define Package/ath10k-board-qca99x0/install endef $(eval $(call BuildPackage,ath10k-board-qca99x0)) -Package/ath10k-firmware-qca99x0 = $(call Package/firmware-default,ath10k qca99x0 firmware,+ath10k-board-qca99x0) +Package/ath10k-firmware-qca99x0 = $(call Package/firmware-default,ath10k qca99x0 firmware,+ath10k-board-qca99x0,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-firmware-qca99x0/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 $(INSTALL_DATA) \ @@ -120,7 +120,7 @@ define Package/ath10k-firmware-qca99x0/install endef $(eval $(call BuildPackage,ath10k-firmware-qca99x0)) -Package/ath10k-board-qca9984 = $(call Package/firmware-default,ath10k qca9984 board firmware) +Package/ath10k-board-qca9984 = $(call Package/firmware-default,ath10k qca9984 board firmware,,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-board-qca9984/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 $(INSTALL_DATA) \ @@ -128,7 +128,7 @@ define Package/ath10k-board-qca9984/install $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin endef $(eval $(call BuildPackage,ath10k-board-qca9984)) -Package/ath10k-firmware-qca9984 = $(call Package/firmware-default,ath10k qca9984 firmware,+ath10k-board-qca9984) +Package/ath10k-firmware-qca9984 = $(call Package/firmware-default,ath10k qca9984 firmware,+ath10k-board-qca9984,LICENSE.QualcommAtheros_ath10k) define Package/ath10k-firmware-qca9984/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 $(INSTALL_DATA) \ diff --git a/package/firmware/linux-firmware/qca_ath11k.mk b/package/firmware/linux-firmware/qca_ath11k.mk index b8f6ab8605d9a0..3571198d1b666b 100644 --- a/package/firmware/linux-firmware/qca_ath11k.mk +++ b/package/firmware/linux-firmware/qca_ath11k.mk @@ -1,4 +1,4 @@ -Package/ath11k-firmware-qca6390 = $(call Package/firmware-default,QCA6390 ath11k firmware) +Package/ath11k-firmware-qca6390 = $(call Package/firmware-default,QCA6390 ath11k firmware,,LICENCE.atheros_firmware) define Package/ath11k-firmware-qca6390/install $(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCA6390/hw2.0 $(INSTALL_DATA) \ @@ -6,7 +6,7 @@ define Package/ath11k-firmware-qca6390/install endef $(eval $(call BuildPackage,ath11k-firmware-qca6390)) -Package/ath11k-firmware-wcn6750 = $(call Package/firmware-default,WCN6750 ath11k firmware) +Package/ath11k-firmware-wcn6750 = $(call Package/firmware-default,WCN6750 ath11k firmware,,LICENCE.atheros_firmware) define Package/ath11k-firmware-wcn6750/install $(INSTALL_DIR) $(1)/lib/firmware/ath11k/WCN6750/hw1.0 $(INSTALL_DATA) \ @@ -14,7 +14,7 @@ define Package/ath11k-firmware-wcn6750/install endef $(eval $(call BuildPackage,ath11k-firmware-wcn6750)) -Package/ath11k-firmware-wcn6855 = $(call Package/firmware-default,WCN6855 ath11k firmware) +Package/ath11k-firmware-wcn6855 = $(call Package/firmware-default,WCN6855 ath11k firmware,,LICENCE.atheros_firmware) define Package/ath11k-firmware-wcn6855/install $(INSTALL_DIR) $(1)/lib/firmware/ath11k/WCN6855/hw2.0 $(INSTALL_DATA) \ diff --git a/package/firmware/linux-firmware/realtek.mk b/package/firmware/linux-firmware/realtek.mk index b4880b6a7f2313..e077c796bee2a8 100644 --- a/package/firmware/linux-firmware/realtek.mk +++ b/package/firmware/linux-firmware/realtek.mk @@ -20,7 +20,7 @@ define Package/r8169-firmware/install endef $(eval $(call BuildPackage,r8169-firmware)) -Package/rtl8188eu-firmware = $(call Package/firmware-default,RealTek RTL8188EU firmware) +Package/rtl8188eu-firmware = $(call Package/firmware-default,RealTek RTL8188EU firmware,,LICENCE.rtlwifi_firmware.txt) define Package/rtl8188eu-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/rtlwifi $(CP) \ @@ -29,7 +29,16 @@ define Package/rtl8188eu-firmware/install endef $(eval $(call BuildPackage,rtl8188eu-firmware)) -Package/rtl8192ce-firmware = $(call Package/firmware-default,RealTek RTL8192CE firmware) +Package/rtl8188fu-firmware = $(call Package/firmware-default,RealTek RTL8188FU firmware,,LICENCE.rtlwifi_firmware.txt) +define Package/rtl8188fu-firmware/install + $(INSTALL_DIR) $(1)/lib/firmware/rtlwifi + $(CP) \ + $(PKG_BUILD_DIR)/rtlwifi/rtl8188fufw.bin \ + $(1)/lib/firmware/rtlwifi +endef +$(eval $(call BuildPackage,rtl8188fu-firmware)) + +Package/rtl8192ce-firmware = $(call Package/firmware-default,RealTek RTL8192CE firmware,,LICENCE.rtlwifi_firmware.txt) define Package/rtl8192ce-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/rtlwifi $(INSTALL_DATA) $(PKG_BUILD_DIR)/rtlwifi/rtl8192cfw.bin $(1)/lib/firmware/rtlwifi @@ -38,7 +47,7 @@ define Package/rtl8192ce-firmware/install endef $(eval $(call BuildPackage,rtl8192ce-firmware)) -Package/rtl8192cu-firmware = $(call Package/firmware-default,RealTek RTL8192CU firmware) +Package/rtl8192cu-firmware = $(call Package/firmware-default,RealTek RTL8192CU firmware,,LICENCE.rtlwifi_firmware.txt) define Package/rtl8192cu-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/rtlwifi $(INSTALL_DATA) $(PKG_BUILD_DIR)/rtlwifi/rtl8192cufw.bin $(1)/lib/firmware/rtlwifi @@ -48,28 +57,28 @@ define Package/rtl8192cu-firmware/install endef $(eval $(call BuildPackage,rtl8192cu-firmware)) -Package/rtl8192de-firmware = $(call Package/firmware-default,RealTek RTL8192DE firmware) +Package/rtl8192de-firmware = $(call Package/firmware-default,RealTek RTL8192DE firmware,,LICENCE.rtlwifi_firmware.txt) define Package/rtl8192de-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/rtlwifi $(INSTALL_DATA) $(PKG_BUILD_DIR)/rtlwifi/rtl8192defw.bin $(1)/lib/firmware/rtlwifi endef $(eval $(call BuildPackage,rtl8192de-firmware)) -Package/rtl8192eu-firmware = $(call Package/firmware-default,RealTek RTL8192EU firmware) +Package/rtl8192eu-firmware = $(call Package/firmware-default,RealTek RTL8192EU firmware,,LICENCE.rtlwifi_firmware.txt) define Package/rtl8192eu-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/rtlwifi $(INSTALL_DATA) $(PKG_BUILD_DIR)/rtlwifi/rtl8192eu_nic.bin $(1)/lib/firmware/rtlwifi endef $(eval $(call BuildPackage,rtl8192eu-firmware)) -Package/rtl8192se-firmware = $(call Package/firmware-default,RealTek RTL8192SE firmware) +Package/rtl8192se-firmware = $(call Package/firmware-default,RealTek RTL8192SE firmware,,LICENCE.rtlwifi_firmware.txt) define Package/rtl8192se-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/rtlwifi $(INSTALL_DATA) $(PKG_BUILD_DIR)/rtlwifi/rtl8192sefw.bin $(1)/lib/firmware/rtlwifi endef $(eval $(call BuildPackage,rtl8192se-firmware)) -Package/rtl8723au-firmware = $(call Package/firmware-default,RealTek RTL8723AU firmware) +Package/rtl8723au-firmware = $(call Package/firmware-default,RealTek RTL8723AU firmware,,LICENCE.rtlwifi_firmware.txt) define Package/rtl8723au-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/rtlwifi $(INSTALL_DATA) $(PKG_BUILD_DIR)/rtlwifi/rtl8723aufw_A.bin $(1)/lib/firmware/rtlwifi @@ -78,7 +87,7 @@ define Package/rtl8723au-firmware/install endef $(eval $(call BuildPackage,rtl8723au-firmware)) -Package/rtl8723bu-firmware = $(call Package/firmware-default,RealTek RTL8723BU firmware) +Package/rtl8723bu-firmware = $(call Package/firmware-default,RealTek RTL8723BU firmware,,LICENCE.rtlwifi_firmware.txt) define Package/rtl8723bu-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/rtlwifi $(INSTALL_DATA) $(PKG_BUILD_DIR)/rtlwifi/rtl8723bu_nic.bin $(1)/lib/firmware/rtlwifi @@ -116,7 +125,7 @@ define Package/rtl8761bu-firmware/install endef $(eval $(call BuildPackage,rtl8761bu-firmware)) -Package/rtl8821ae-firmware = $(call Package/firmware-default,RealTek RTL8821AE firmware) +Package/rtl8821ae-firmware = $(call Package/firmware-default,RealTek RTL8821AE firmware,,LICENCE.rtlwifi_firmware.txt) define Package/rtl8821ae-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/rtlwifi $(INSTALL_DATA) $(PKG_BUILD_DIR)/rtlwifi/rtl8821aefw.bin $(1)/lib/firmware/rtlwifi diff --git a/package/firmware/linux-firmware/ti.mk b/package/firmware/linux-firmware/ti.mk index 2b9710706bbeed..a4f28ef048aa72 100644 --- a/package/firmware/linux-firmware/ti.mk +++ b/package/firmware/linux-firmware/ti.mk @@ -1,4 +1,4 @@ -Package/wl12xx-firmware = $(call Package/firmware-default,TI WL12xx firmware) +Package/wl12xx-firmware = $(call Package/firmware-default,TI WL12xx firmware,,LICENCE.ti-connectivity) define Package/wl12xx-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/ti-connectivity $(INSTALL_DATA) \ @@ -15,7 +15,7 @@ define Package/wl12xx-firmware/install endef $(eval $(call BuildPackage,wl12xx-firmware)) -Package/wl18xx-firmware = $(call Package/firmware-default,TI WL18xx firmware) +Package/wl18xx-firmware = $(call Package/firmware-default,TI WL18xx firmware,,LICENCE.ti-connectivity) define Package/wl18xx-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/ti-connectivity $(INSTALL_DATA) \ diff --git a/package/firmware/wireless-regdb/Makefile b/package/firmware/wireless-regdb/Makefile index 431d07c35b8cac..a0080bdbfdb09b 100644 --- a/package/firmware/wireless-regdb/Makefile +++ b/package/firmware/wireless-regdb/Makefile @@ -3,6 +3,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=wireless-regdb PKG_VERSION:=2024.01.23 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/ diff --git a/package/kernel/ath10k-ct/Makefile b/package/kernel/ath10k-ct/Makefile index 9c0029d3bdb228..1d9856d8cd2dc3 100644 --- a/package/kernel/ath10k-ct/Makefile +++ b/package/kernel/ath10k-ct/Makefile @@ -10,7 +10,7 @@ PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2023-06-05 PKG_SOURCE_VERSION:=fadd0768cbd22248a60efbb219ccefc9d86cd78c -PKG_MIRROR_HASH:=513f62765ba3a2f423099426fbba86b854f3de0ab13ec2ab6e2780577ea75f95 +PKG_MIRROR_HASH:=caaa373ae2cc6e443e8a31e43e5e2caca4f4ba2b9614efd3e5c9df401056d307 # Build the 6.4 ath10k-ct driver version. # Probably this should match as closely as diff --git a/package/kernel/bcm63xx-cfe/Makefile b/package/kernel/bcm63xx-cfe/Makefile index a8399ce11269fc..62548a57616300 100644 --- a/package/kernel/bcm63xx-cfe/Makefile +++ b/package/kernel/bcm63xx-cfe/Makefile @@ -8,7 +8,7 @@ PKG_SOURCE_URL:=https://github.com/openwrt/bcm63xx-cfe.git PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2021-06-22 PKG_SOURCE_VERSION:=e5050f37150b34deb547b50feccd0e7439cb5bd7 -PKG_MIRROR_HASH:=85fed9f4bdf23cf7d33a02f549ffe9073666890f786d5ffa484c0368552b75ae +PKG_MIRROR_HASH:=3b53abf21790e42707e20c73aff23fc32db9fdaf010da6f459a20a9e8f8feae6 PKG_FLAGS:=nonshared diff --git a/package/kernel/cryptodev-linux/Makefile b/package/kernel/cryptodev-linux/Makefile index 0b794a3cd9801f..ea1bd241617b7d 100644 --- a/package/kernel/cryptodev-linux/Makefile +++ b/package/kernel/cryptodev-linux/Makefile @@ -29,7 +29,6 @@ define KernelPackage/cryptodev SUBMENU:=Cryptographic API modules TITLE:=Driver for cryptographic acceleration URL:=http://cryptodev-linux.org/ - VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE) DEPENDS:=+kmod-crypto-authenc +kmod-crypto-hash FILES:=$(PKG_BUILD_DIR)/cryptodev.$(LINUX_KMOD_SUFFIX) AUTOLOAD:=$(call AutoLoad,50,cryptodev) diff --git a/package/kernel/lantiq/ltq-vdsl-vr11-mei/Makefile b/package/kernel/lantiq/ltq-vdsl-vr11-mei/Makefile index 7b8a948179b640..3e01ee63738afc 100644 --- a/package/kernel/lantiq/ltq-vdsl-vr11-mei/Makefile +++ b/package/kernel/lantiq/ltq-vdsl-vr11-mei/Makefile @@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ltq-vdsl-vr11-mei PKG_VERSION:=1.11.1 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_BASE_NAME:=dsl_cpe_mei UGW_VERSION=8.5.2.10 diff --git a/package/kernel/lantiq/ltq-vdsl-vr11-mei/patches/130-support-kernel-6.6.patch b/package/kernel/lantiq/ltq-vdsl-vr11-mei/patches/130-support-kernel-6.6.patch new file mode 100644 index 00000000000000..407afc9bf2f489 --- /dev/null +++ b/package/kernel/lantiq/ltq-vdsl-vr11-mei/patches/130-support-kernel-6.6.patch @@ -0,0 +1,35 @@ +--- a/src/drv_mei_cpe_linux.c ++++ b/src/drv_mei_cpe_linux.c +@@ -2779,7 +2779,11 @@ static int MEI_InitModuleRegCharDev(cons + ("Using major number %d" MEI_DRV_CRLF, MAJOR(mei_devt))); + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) + mei_class = class_create(THIS_MODULE, devName); ++#else ++ mei_class = class_create(devName); ++#endif + if (IS_ERR(mei_class)) + { + PRN_DBG_USR_NL( MEI_DRV,MEI_DRV_PRN_LEVEL_HIGH, +--- a/src/drv_mei_cpe_api_atm_ptm_intern.c ++++ b/src/drv_mei_cpe_api_atm_ptm_intern.c +@@ -223,7 +223,7 @@ IFX_int32_t MEI_TcRequest(void *data) + pMeiDynCntrl->pDfeX = NULL; + pMeiDynCntrl->pMeiDev = pMeiDev; + +- argsTcRequest.request_type = request_type; ++ argsTcRequest.request_type = (MEI_TC_RequestType_t)request_type; + argsTcRequest.is_bonding = MEI_BND_EnableGet(pMeiDynCntrl); + + if (MEI_DFEX_ENTITIES == 1 && argsTcRequest.is_bonding == IFX_TRUE) +@@ -398,7 +398,8 @@ IFX_int32_t MEI_InternalLineTCModeSwitch + pMeiDynCntrl->pDfeX = NULL; + pMeiDynCntrl->pMeiDev = MEIX_Cntrl[nEntity]->MeiDevice[nInstance]; + +- argsTcRequest.request_type = bPowerUp ? MEI_TC_REQUEST_PTM : MEI_TC_REQUEST_OFF; ++ argsTcRequest.request_type = bPowerUp ? (MEI_TC_RequestType_t)MEI_TC_REQUEST_PTM : ++ (MEI_TC_RequestType_t)MEI_TC_REQUEST_OFF; + argsTcRequest.is_bonding = pMeiDynCntrl->pMeiDev->bLastBondingStatus; + + retVal = MEI_InternalTcRequest(pMeiDynCntrl, &argsTcRequest); diff --git a/package/kernel/lantiq/ltq-vdsl-vr11/Makefile b/package/kernel/lantiq/ltq-vdsl-vr11/Makefile index 11f96d744a4daf..0fa6011cfc6991 100644 --- a/package/kernel/lantiq/ltq-vdsl-vr11/Makefile +++ b/package/kernel/lantiq/ltq-vdsl-vr11/Makefile @@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ltq-vdsl-vr11 PKG_VERSION:=4.23.1 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_BASE_NAME:=dsl_cpe_api UGW_VERSION=8.5.2.10 diff --git a/package/kernel/lantiq/ltq-vdsl-vr11/patches/130-support-kernel-6.6.patch b/package/kernel/lantiq/ltq-vdsl-vr11/patches/130-support-kernel-6.6.patch new file mode 100644 index 00000000000000..4e127cd9072bb5 --- /dev/null +++ b/package/kernel/lantiq/ltq-vdsl-vr11/patches/130-support-kernel-6.6.patch @@ -0,0 +1,97 @@ +--- a/src/common/drv_dsl_cpe_os_linux.c ++++ b/src/common/drv_dsl_cpe_os_linux.c +@@ -431,7 +431,11 @@ static int DSL_DRV_DevNodeInit(DSL_void_ + } + + /* create a device class used for createing /dev/ entries */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) + dsl_class = class_create(THIS_MODULE, DRV_DSL_CPE_API_DEV_NAME); ++#else ++ dsl_class = class_create(DRV_DSL_CPE_API_DEV_NAME); ++#endif + if (IS_ERR(dsl_class)) { + DSL_DEBUG(DSL_DBG_ERR, + (DSL_NULL, SYS_DBG_ERR""DSL_DRV_CRLF DSL_DRV_CRLF +--- a/src/common/drv_dsl_cpe_api.c ++++ b/src/common/drv_dsl_cpe_api.c +@@ -1370,7 +1370,8 @@ DSL_boolean_t DSL_DRV_BondingEnableCheck + nDslMode = DSL_DRV_VRX_DslModeIndexGet(pContext); + + DSL_CHECK_DSLMODE(nDslMode); +- DSL_CHECK_ERR_CODE(); ++ if (nErrCode != DSL_SUCCESS) ++ return bPafEnable; + + /* Bonding is always enabled for both lines/devices together so using the + configuration from the current line/device is ok. */ +@@ -3886,7 +3887,7 @@ DSL_Error_t DSL_DRV_RetxStatisticsGet( + + DSL_CHECK_POINTER(pContext, pData); + DSL_CHECK_ERR_CODE(); +- DSL_CHECK_DIRECTION(pData->nDirection); ++ DSL_CHECK_ATU_DIRECTION(pData->nDirection); + DSL_CHECK_ERR_CODE(); + + DSL_DEBUG(DSL_DBG_MSG, +--- a/src/device/drv_dsl_cpe_device_vrx.c ++++ b/src/device/drv_dsl_cpe_device_vrx.c +@@ -2760,7 +2760,7 @@ static DSL_Error_t DSL_DRV_VRX_ChannelSt + DSL_CHECK_CHANNEL_RANGE(nChannel); + DSL_CHECK_ERR_CODE(); + +- DSL_CHECK_ATU_DIRECTION(nDirection); ++ DSL_CHECK_DIRECTION(nDirection); + DSL_CHECK_ERR_CODE(); + + DSL_DEBUG(DSL_DBG_MSG, +@@ -2807,8 +2807,8 @@ static DSL_Error_t DSL_DRV_VRX_ChannelSt + if (nVerCheck >= DSL_VERSION_EQUAL) + { + bRocEnable = nDirection == DSL_UPSTREAM ? +- (DSL_boolean_t)sAckLs.FUS.ROCstatus_us : +- (DSL_boolean_t)sAckLs.FDS.ROCstatus_ds; ++ (DSL_FeatureSupport_t)sAckLs.FUS.ROCstatus_us : ++ (DSL_FeatureSupport_t)sAckLs.FDS.ROCstatus_ds; + + DSL_CTX_WRITE_SCALAR( + pContext, nErrCode, lineFeatureDataSts[nDirection].bRocEnable, +@@ -4885,7 +4885,7 @@ DSL_Error_t DSL_DRV_DEV_FwDownload( + + /* Set VRX device FW mode*/ + fwModeSelect.firmwareFeatures.nPlatformId = nFwFeatures.nPlatformId; +- fwModeSelect.firmwareFeatures.eFirmwareXdslModes = nFwFeatures.nFirmwareXdslModes; ++ fwModeSelect.firmwareFeatures.eFirmwareXdslModes = (IOCTL_MEI_firmwareXdslMode_t)nFwFeatures.nFirmwareXdslModes; + + if( DSL_DRV_VRX_InternalFwModeCtrlSet((MEI_DYN_CNTRL_T*)dev, &fwModeSelect) != 0 ) + { +@@ -7420,7 +7420,7 @@ DSL_Error_t DSL_DRV_VRX_ChannelStatusGet + { + DSL_Error_t nErrCode = DSL_SUCCESS; + +- DSL_CHECK_ATU_DIRECTION(nDirection); ++ DSL_CHECK_DIRECTION(nDirection); + DSL_CHECK_ERR_CODE(); + + DSL_CTX_READ_SCALAR(pContext, nErrCode, +--- a/src/bnd/drv_dsl_cpe_api_bnd_vrx.c ++++ b/src/bnd/drv_dsl_cpe_api_bnd_vrx.c +@@ -480,7 +480,8 @@ DSL_Error_t DSL_DRV_BND_DEV_PafBndStatus + else + { + pData->nRemotePafSupported = +- pafHsStatus.bPafEnable ? DSL_BND_ENABLE_ON : DSL_BND_ENABLE_OFF; ++ pafHsStatus.bPafEnable ? (DSL_BND_Supported_t)DSL_BND_ENABLE_ON : ++ (DSL_BND_Supported_t)DSL_BND_ENABLE_OFF; + } + + DSL_DEBUG(DSL_DBG_MSG, (pContext, +@@ -517,7 +518,8 @@ DSL_Error_t DSL_DRV_BND_DEV_ImapBndStatu + else + { + pData->nRemoteImapSupported = +- imapHsStatus.bImapEnable ? DSL_BND_ENABLE_ON : DSL_BND_ENABLE_OFF; ++ imapHsStatus.bImapEnable ? (DSL_BND_Supported_t)DSL_BND_ENABLE_ON : ++ (DSL_BND_Supported_t)DSL_BND_ENABLE_OFF; + } + + DSL_DEBUG(DSL_DBG_MSG, (pContext, diff --git a/package/kernel/lantiq/ltq-vectoring/Makefile b/package/kernel/lantiq/ltq-vectoring/Makefile index 7e25422f013760..6076df77428091 100644 --- a/package/kernel/lantiq/ltq-vectoring/Makefile +++ b/package/kernel/lantiq/ltq-vectoring/Makefile @@ -6,7 +6,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gitlab.com/prpl-foundation/intel/ppa_drv.git PKG_SOURCE_DATE:=2019-05-20 PKG_SOURCE_VERSION:=4fa7ac30fcc8ec4eddae9debba5f4230981f469f -PKG_MIRROR_HASH:=444eb823dd9ddd25453976bf7a3230955e4148b8bf92f35f165ecffee32c4555 +PKG_MIRROR_HASH:=53ae72a929db598202a4e9c3df43b65fa0778cd165c1ec2ddf9361993795b930 PKG_LICENSE:=GPL-2.0 BSD-2-Clause MAKE_PATH:=src/vectoring diff --git a/package/kernel/lantiq/ltq-vmmc/Makefile b/package/kernel/lantiq/ltq-vmmc/Makefile index 4972f1c374a98f..8cd6b3de451fd5 100644 --- a/package/kernel/lantiq/ltq-vmmc/Makefile +++ b/package/kernel/lantiq/ltq-vmmc/Makefile @@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=drv_vmmc PKG_VERSION:=1.9.0 -PKG_RELEASE:=4 +PKG_RELEASE:=5 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_HASH:=707f515eb727c032418c4da67d7e86884bb56cdc2a606e8f6ded6057d8767e57 diff --git a/package/kernel/lantiq/ltq-vmmc/patches/600-fix-compilation-warning-fallthrough.patch b/package/kernel/lantiq/ltq-vmmc/patches/600-fix-compilation-warning-fallthrough.patch index 7282bc446ddb13..aaacf2e7ca8ea3 100644 --- a/package/kernel/lantiq/ltq-vmmc/patches/600-fix-compilation-warning-fallthrough.patch +++ b/package/kernel/lantiq/ltq-vmmc/patches/600-fix-compilation-warning-fallthrough.patch @@ -1,6 +1,6 @@ --- a/src/drv_vmmc_bbd.c +++ b/src/drv_vmmc_bbd.c -@@ -1025,6 +1025,7 @@ static IFX_int32_t vmmc_BBD_WhiteListedCmdWr(VMMC_CHANNEL *pCh, +@@ -1025,6 +1025,7 @@ static IFX_int32_t vmmc_BBD_WhiteListedC } } } diff --git a/package/kernel/lantiq/ltq-vmmc/patches/602-fix-compilation-warning-int-conversion.patch b/package/kernel/lantiq/ltq-vmmc/patches/602-fix-compilation-warning-int-conversion.patch new file mode 100644 index 00000000000000..f95407b3956008 --- /dev/null +++ b/package/kernel/lantiq/ltq-vmmc/patches/602-fix-compilation-warning-int-conversion.patch @@ -0,0 +1,26 @@ +--- a/src/mps/drv_mps_vmmc_common.c ++++ b/src/mps/drv_mps_vmmc_common.c +@@ -117,8 +117,8 @@ IFX_void_t ifx_mps_mbx_event_upstream (I + #endif /* CONFIG_MPS_EVENT_MBX */ + IFX_void_t *ifx_mps_fastbuf_malloc (IFX_size_t size, IFX_int32_t priority); + IFX_void_t ifx_mps_fastbuf_free (const IFX_void_t * ptr); +-IFX_int32_t ifx_mps_fastbuf_init (IFX_void_t); +-IFX_int32_t ifx_mps_fastbuf_close (IFX_void_t); ++IFX_return_t ifx_mps_fastbuf_init (IFX_void_t); ++IFX_return_t ifx_mps_fastbuf_close (IFX_void_t); + IFX_uint32_t ifx_mps_reset_structures (mps_comm_dev * pDev); + IFX_boolean_t ifx_mps_ext_bufman (IFX_void_t); + extern IFX_uint32_t danube_get_cpu_ver (IFX_void_t); +--- a/src/mps/drv_mps_vmmc_device.h ++++ b/src/mps/drv_mps_vmmc_device.h +@@ -216,8 +216,8 @@ typedef struct /**< mps buffer monitorin + mps_buffer_state_e buf_state; + IFX_void_t *(*malloc) (IFX_size_t size, IFX_int32_t priority); /**< Buffer alloc function (def. kmalloc) */ + IFX_void_t (*free) (const IFX_void_t *ptr); /**< Buffer free function (def. kfree) */ +- IFX_int32_t (*init) (IFX_void_t); /** Manager init function */ +- IFX_int32_t (*close) (IFX_void_t); /** Manager shutdown function */ ++ IFX_return_t (*init) (IFX_void_t); /** Manager init function */ ++ IFX_return_t (*close) (IFX_void_t); /** Manager shutdown function */ + } mps_buf_mng_t; + + typedef IFX_uint32_t *mem_seg_t[MPS_MAX_PROVISION_SEGMENTS_PER_MSG]; diff --git a/package/kernel/leds-gca230718/Makefile b/package/kernel/leds-gca230718/Makefile new file mode 100644 index 00000000000000..a1ae3bc319874d --- /dev/null +++ b/package/kernel/leds-gca230718/Makefile @@ -0,0 +1,34 @@ +# +# Copyright (C) 2008-2010 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=leds-gca230718 +PKG_RELEASE:=1 +PKG_LICENSE:=GPL-2.0 + +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/leds-gca230718 + SUBMENU:=LED modules + TITLE:=GCA230718 LED support (e.g. for D-Link M30) + FILES:= \ + $(PKG_BUILD_DIR)/leds-gca230718.ko + AUTOLOAD:=$(call AutoProbe,leds-gca230718,1) + DEPENDS:=@TARGET_mediatek_filogic +endef + +define KernelPackage/leds-gca230718/description + GCA230718 LED support (e.g. for D-Link M30) using I2C. +endef + +define Build/Compile + $(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" modules +endef + +$(eval $(call KernelPackage,leds-gca230718)) diff --git a/package/kernel/leds-gca230718/src/Makefile b/package/kernel/leds-gca230718/src/Makefile new file mode 100644 index 00000000000000..eaa4eef219affb --- /dev/null +++ b/package/kernel/leds-gca230718/src/Makefile @@ -0,0 +1 @@ +obj-m := leds-gca230718.o diff --git a/package/kernel/leds-gca230718/src/leds-gca230718.c b/package/kernel/leds-gca230718/src/leds-gca230718.c new file mode 100644 index 00000000000000..d759453cd9ff67 --- /dev/null +++ b/package/kernel/leds-gca230718/src/leds-gca230718.c @@ -0,0 +1,227 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * GCA230718 LED support (e.g. for D-Link M30) using I2C + * + * Copyright 2022 Roland Reinl + * + * This driver can control RGBW LEDs which are connected to a GCA230718. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define GCA230718_MAX_LEDS (4u) + +#define GCA230718_OPMODE_DISABLED (0x00u) +#define GCA230718_OPMODE_NO_TOGGLE (0x01u) +#define GCA230718_OPMODE_TOGGLE_RAMP_CONTROL_DISABLED (0x02u) +#define GCA230718_OPMODE_TOGGLE_RAMP_CONTROL_ENSABLED (0x03u) + +#define GCA230718_1ST_SEQUENCE_BYTE_1 (0x02u) +#define GCA230718_2ND_SEQUENCE_BYTE_1 (0x01u) +#define GCA230718_3RD_SEQUENCE_BYTE_1 (0x03u) + +struct gca230718_led +{ + enum led_brightness brightness; + struct i2c_client *client; + struct led_classdev ledClassDev; +}; + +struct gca230718_private +{ + struct mutex lock; + struct gca230718_led leds[GCA230718_MAX_LEDS]; +}; + +static void gca230718_init_private_led_data(struct gca230718_private* data) +{ + u8 ledIndex; + for (ledIndex = 0; ledIndex < GCA230718_MAX_LEDS; ledIndex++) + { + data->leds[ledIndex].client = NULL; + } +} + +static void gca230718_send_sequence(struct i2c_client *client, u8 byte0, struct gca230718_private* gca230718_privateData) +{ + int status = 0; + u8 ledIndex; + const u8 resetCommand[2] = { 0x81, 0xE4 }; + const u8 resetCommandRegister = 0x00; + + u8 controlCommand[13]; + const u8 controlCommandRegister = 0x03; + + controlCommand[0] = 0x0C; /* Unknown */ + controlCommand[1] = byte0; + controlCommand[2] = GCA230718_OPMODE_NO_TOGGLE; + /* Byte 3-6 are set below to the brighness value of the individual LEDs */ + controlCommand[7] = 0x01; /* Frequency, doesn't care as long as GCA230718_OPMODE_NO_TOGGLE is used above */ + /* Byte 8-11 are set below to the brighness value of the individual LEDs */ + controlCommand[12] = 0x87; + + for (ledIndex = 0; ledIndex < GCA230718_MAX_LEDS; ledIndex++) + { + controlCommand[3 + ledIndex] = gca230718_privateData->leds[ledIndex].brightness; + controlCommand[8 + ledIndex] = gca230718_privateData->leds[ledIndex].brightness; + } + + mutex_lock(&(gca230718_privateData->lock)); + + if ((status = i2c_smbus_write_i2c_block_data(client, resetCommandRegister, sizeof(resetCommand), resetCommand)) != 0) + { + pr_info("Error %i during call of i2c_smbus_write_i2c_block_data for reset command\n", status); + } + else if ((status = i2c_smbus_write_i2c_block_data(client, controlCommandRegister, sizeof(controlCommand), controlCommand)) != 0) + { + pr_info("Error %i during call of i2c_smbus_write_i2c_block_data for control command\n", status); + } + + mutex_unlock(&(gca230718_privateData->lock)); +} + +static int gca230718_set_brightness(struct led_classdev *led_cdev, enum led_brightness value) +{ + struct gca230718_led* led; + struct i2c_client* client; + + led = container_of(led_cdev, struct gca230718_led, ledClassDev); + client = led->client; + + if (client != NULL) + { + struct gca230718_private* gca230718_privateData; + + led->brightness = value; + gca230718_privateData = i2c_get_clientdata(client); + + gca230718_send_sequence(client, GCA230718_2ND_SEQUENCE_BYTE_1, gca230718_privateData); + } + + return 0; +} + +static int gca230718_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + int status = 0; + struct gca230718_private* gca230718_privateData; + + pr_info("Enter gca230718_probe for device address %u\n", client->addr); + gca230718_privateData = devm_kzalloc(&(client->dev), sizeof(struct gca230718_private), GFP_KERNEL); + + if (gca230718_privateData == NULL) + { + pr_info("Error during allocating memory for private data\n"); + status = -ENOMEM; + } + else + { + struct device_node* ledNode; + mutex_init(&gca230718_privateData->lock); + gca230718_init_private_led_data(gca230718_privateData); + i2c_set_clientdata(client, gca230718_privateData); + + for_each_child_of_node(client->dev.of_node, ledNode) + { + u32 regValue = 0; + if (of_property_read_u32(ledNode, "reg", ®Value) != 0) + { + pr_info("Missing entry \"reg\" in node %s\n", ledNode->name); + } + else if (regValue >= GCA230718_MAX_LEDS) + { + pr_info("Invalid entry \"reg\" in node %s (%u)\n", ledNode->name, regValue); + } + else + { + struct led_classdev* ledClassDev = &(gca230718_privateData->leds[regValue].ledClassDev); + struct led_init_data init_data = {}; + + gca230718_privateData->leds[regValue].client = client; + init_data.fwnode = of_fwnode_handle(ledNode); + + pr_info("Creating LED for node %s: reg=%u\n", ledNode->name, regValue); + + ledClassDev->name = of_get_property(ledNode, "label", NULL); + if (ledClassDev->name == NULL) + { + ledClassDev->name = ledNode->name; + } + + ledClassDev->brightness = LED_OFF; + ledClassDev->max_brightness = LED_FULL; + ledClassDev->brightness_set_blocking = gca230718_set_brightness; + + if (devm_led_classdev_register_ext(&(client->dev), ledClassDev, &init_data) != 0) + { + pr_info("Error during call of devm_led_classdev_register_ext"); + } + } + } + } + + if (status == 0) + { + /* + Send full initialization sequence. + Afterwards only GCA230718_2ND_SEQUENCE_BYTE_1 must be send to upddate the brightness values. + */ + gca230718_send_sequence(client, GCA230718_1ST_SEQUENCE_BYTE_1, gca230718_privateData); + gca230718_send_sequence(client, GCA230718_2ND_SEQUENCE_BYTE_1, gca230718_privateData); + gca230718_send_sequence(client, GCA230718_3RD_SEQUENCE_BYTE_1, gca230718_privateData); + } + + return status; +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,18,0) +static void gca230718_remove(struct i2c_client *client) +#else +static int gca230718_remove(struct i2c_client *client) +#endif +{ + struct gca230718_private* gca230718_privateData; + gca230718_privateData = i2c_get_clientdata(client); + mutex_destroy(&gca230718_privateData->lock); + gca230718_init_private_led_data(gca230718_privateData); + +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0) + return 0; +#endif +} + +static const struct i2c_device_id gca230718_i2c_ids[] = { + { "gca230718", 0 }, + {}, +}; +MODULE_DEVICE_TABLE(i2c, gca230718_i2c_ids); + +static const struct of_device_id gca230718_dt_ids[] = { + { .compatible = "unknown,gca230718" }, + {}, +}; +MODULE_DEVICE_TABLE(of, gca230718_dt_ids); + +static struct i2c_driver gca230718_driver = { + .probe = gca230718_probe, + .remove = gca230718_remove, + .id_table = gca230718_i2c_ids, + .driver = { + .name = KBUILD_MODNAME, + .of_match_table = gca230718_dt_ids, + }, +}; + +module_i2c_driver(gca230718_driver); + +MODULE_AUTHOR("Roland Reinl "); +MODULE_DESCRIPTION("GCA230718 LED support (e.g. for D-Link M30) using I2C"); +MODULE_LICENSE("GPL"); diff --git a/package/kernel/linux/Makefile b/package/kernel/linux/Makefile index 6592b01678f073..8dfb01ad66118a 100644 --- a/package/kernel/linux/Makefile +++ b/package/kernel/linux/Makefile @@ -16,8 +16,8 @@ SUBTARGETS = $(sort $(filter-out feeds,$(notdir $(wildcard $(TOPDIR)/target/linu SUBTARGET_MODULES = $(foreach t,$(SUBTARGETS),$(firstword $(wildcard $(TOPDIR)/target/linux/feeds/$(t)/modules.mk $(TOPDIR)/target/linux/$(t)/modules.mk))) SCAN_DEPS=modules/*.mk $(SUBTARGET_MODULES) $(TOPDIR)/include/netfilter.mk -PKG_LICENSE:=GPL-2.0 -PKG_LICENSE_FILES:= +PKG_LICENSE:=GPL-2.0-only +PKG_LICENSE_FILES:=COPYING export SHELL:=/bin/sh .ONESHELL: @@ -52,7 +52,7 @@ define Package/kernel CATEGORY:=Kernel DEFAULT:=y TITLE:=Virtual kernel package - VERSION:=$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC) + VERSION:=$(LINUX_VERSION)~$(LINUX_VERMAGIC)-r$(LINUX_RELEASE) URL:=http://www.kernel.org/ PKG_FLAGS:=nonshared endef diff --git a/package/kernel/linux/modules/block.mk b/package/kernel/linux/modules/block.mk index 49a1b6fce1155f..4f3a6e085ffb22 100644 --- a/package/kernel/linux/modules/block.mk +++ b/package/kernel/linux/modules/block.mk @@ -65,7 +65,7 @@ define KernelPackage/ata-ahci-platform $(LINUX_DIR)/drivers/ata/ahci_platform.ko \ $(LINUX_DIR)/drivers/ata/libahci_platform.ko AUTOLOAD:=$(call AutoLoad,40,libahci libahci_platform ahci_platform,1) - $(call AddDepends/ata,@TARGET_ipq806x||TARGET_layerscape||TARGET_sunxi) + $(call AddDepends/ata,@TARGET_ipq806x||TARGET_layerscape||TARGET_rockchip||TARGET_sunxi) endef define KernelPackage/ata-ahci-platform/description diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk index ff25c57846dcbf..be9893d4539675 100644 --- a/package/kernel/linux/modules/crypto.mk +++ b/package/kernel/linux/modules/crypto.mk @@ -319,7 +319,8 @@ define KernelPackage/crypto-ghash/arm-ce AUTOLOAD+=$(call AutoLoad,09,ghash-arm-ce) endef -KernelPackage/crypto-ghash/imx=$(KernelPackage/crypto-ghash/arm-ce) +KernelPackage/crypto-ghash/imx/cortexa7=$(KernelPackage/crypto-ghash/arm-ce) +KernelPackage/crypto-ghash/imx/cortexa9=$(KernelPackage/crypto-ghash/arm-ce) KernelPackage/crypto-ghash/ipq40xx=$(KernelPackage/crypto-ghash/arm-ce) KernelPackage/crypto-ghash/mvebu/cortexa9=$(KernelPackage/crypto-ghash/arm-ce) @@ -952,7 +953,8 @@ define KernelPackage/crypto-sha1/aarch64-ce AUTOLOAD+=$(call AutoLoad,09,sha1-ce) endef -KernelPackage/crypto-sha1/imx=$(KernelPackage/crypto-sha1/arm-neon) +KernelPackage/crypto-sha1/imx/cortexa7=$(KernelPackage/crypto-sha1/arm-neon) +KernelPackage/crypto-sha1/imx/cortexa9=$(KernelPackage/crypto-sha1/arm-neon) KernelPackage/crypto-sha1/ipq40xx=$(KernelPackage/crypto-sha1/arm-neon) KernelPackage/crypto-sha1/mediatek/filogic=$(KernelPackage/crypto-sha1/aarch64-ce) KernelPackage/crypto-sha1/mediatek/mt7622=$(KernelPackage/crypto-sha1/aarch64-ce) @@ -1085,7 +1087,8 @@ define KernelPackage/crypto-sha512/aarch64 AUTOLOAD+=$(call AutoLoad,09,sha512-arm64) endef -KernelPackage/crypto-sha512/imx=$(KernelPackage/crypto-sha512/arm) +KernelPackage/crypto-sha512/imx/cortexa7=$(KernelPackage/crypto-sha512/arm) +KernelPackage/crypto-sha512/imx/cortexa9=$(KernelPackage/crypto-sha512/arm) KernelPackage/crypto-sha512/ipq40xx=$(KernelPackage/crypto-sha512/arm) KernelPackage/crypto-sha512/mvebu/cortexa9=$(KernelPackage/crypto-sha512/arm) @@ -1155,3 +1158,4 @@ define KernelPackage/crypto-xts endef $(eval $(call KernelPackage,crypto-xts)) + diff --git a/package/kernel/linux/modules/fs.mk b/package/kernel/linux/modules/fs.mk index 8f1ed414849af9..0d98c5a6815166 100644 --- a/package/kernel/linux/modules/fs.mk +++ b/package/kernel/linux/modules/fs.mk @@ -344,8 +344,8 @@ define KernelPackage/fs-jfs KCONFIG:=CONFIG_JFS_FS FILES:=$(LINUX_DIR)/fs/jfs/jfs.ko AUTOLOAD:=$(call AutoLoad,30,jfs,1) - $(call AddDepends/nls) DEPENDS:=+LINUX_6_6:kmod-nls-ucs2-utils + $(call AddDepends/nls) endef define KernelPackage/fs-jfs/description diff --git a/package/kernel/linux/modules/hwmon.mk b/package/kernel/linux/modules/hwmon.mk index 5be63ce7793a4b..be38a6071a7b7a 100644 --- a/package/kernel/linux/modules/hwmon.mk +++ b/package/kernel/linux/modules/hwmon.mk @@ -572,6 +572,21 @@ endef $(eval $(call KernelPackage,hwmon-sht3x)) +define KernelPackage/hwmon-tc654 + TITLE:=TC654 monitoring support + KCONFIG:=CONFIG_SENSORS_TC654 + FILES:=$(LINUX_DIR)/drivers/hwmon/tc654.ko + AUTOLOAD:=$(call AutoLoad,60,tc654) + $(call AddDepends/hwmon,+kmod-i2c-core) +endef + +define KernelPackage/hwmon-tc654/description + Kernel module for Microchip TC654/TC655 and compatibles +endef + +$(eval $(call KernelPackage,hwmon-tc654)) + + define KernelPackage/hwmon-tmp102 TITLE:=Texas Instruments TMP102 monitoring support KCONFIG:=CONFIG_SENSORS_TMP102 diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk index d43866ed9bb174..906f866a6b11ba 100644 --- a/package/kernel/linux/modules/netdevices.mk +++ b/package/kernel/linux/modules/netdevices.mk @@ -363,7 +363,7 @@ define KernelPackage/phy-smsc SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=SMSC PHY driver KCONFIG:=CONFIG_SMSC_PHY - DEPENDS:=+kmod-libphy + DEPENDS:=+kmod-libphy +LINUX_6_6:kmod-lib-crc16 FILES:=$(LINUX_DIR)/drivers/net/phy/smsc.ko AUTOLOAD:=$(call AutoProbe,smsc) endef @@ -1706,6 +1706,23 @@ endef $(eval $(call KernelPackage,mhi-wwan-mbim)) + +define KernelPackage/mtk-t7xx + SUBMENU:=$(NETWORK_DEVICES_MENU) + TITLE:=MediaTek T7xx 5G modem + DEPENDS:=@!LINUX_5_15 @PCI_SUPPORT +kmod-wwan + KCONFIG:=CONFIG_MTK_T7XX + FILES:=$(LINUX_DIR)/drivers/net/wwan/t7xx/mtk_t7xx.ko + AUTOLOAD:=$(call AutoProbe,mtk_t7xx) +endef + +define KernelPackage/mtk-t7xx/description + Driver for MediaTek PCIe 5G WWAN modem T7xx device +endef + +$(eval $(call KernelPackage,mtk-t7xx)) + + define KernelPackage/atlantic SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Aquantia AQtion 10Gbps Ethernet NIC @@ -1725,7 +1742,7 @@ $(eval $(call KernelPackage,atlantic)) define KernelPackage/lan743x SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Microchip LAN743x PCI Express Gigabit Ethernet NIC - DEPENDS:=@PCI_SUPPORT +kmod-ptp +kmod-mdio-devres + DEPENDS:=@PCI_SUPPORT +kmod-ptp +kmod-mdio-devres +!LINUX_6_1:kmod-fixed-phy KCONFIG:=CONFIG_LAN743X FILES:=$(LINUX_DIR)/drivers/net/ethernet/microchip/lan743x.ko AUTOLOAD:=$(call AutoProbe,lan743x) diff --git a/package/kernel/linux/modules/usb.mk b/package/kernel/linux/modules/usb.mk index 3da071993ba605..7b680288b9dcd9 100644 --- a/package/kernel/linux/modules/usb.mk +++ b/package/kernel/linux/modules/usb.mk @@ -459,6 +459,44 @@ endef $(eval $(call KernelPackage,usb-dwc2-pci)) +define KernelPackage/usb-cdns + TITLE:=Cadence USB USB controller driver + DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget +kmod-usb-roles + KCONFIG:= \ + CONFIG_USB_CDNS_SUPPORT + FILES:= $(LINUX_DIR)/drivers/usb/cdns3/cdns-usb-common.ko + AUTOLOAD:=$(call AutoLoad,50,cdns-usb-common,1) + $(call AddDepends/usb) +endef + +define KernelPackage/usb-cdns/description + This driver provides USB Device Controller support for the + Cadence USB Core +endef + +$(eval $(call KernelPackage,usb-cdns)) + + +define KernelPackage/usb-cdns3 + TITLE:=Cadence USB3 USB controller driver + DEPENDS:=+kmod-usb-cdns + KCONFIG:= \ + CONFIG_USB_CDNS3 \ + CONFIG_USB_CDNS3_GADGET=y \ + CONFIG_USB_CDNS3_HOST=y + FILES:= $(LINUX_DIR)/drivers/usb/cdns3/cdns3.ko + AUTOLOAD:=$(call AutoLoad,54,cdns3,1) + $(call AddDepends/usb) +endef + +define KernelPackage/usb-cdns3/description + This driver provides support for the Dual Role SuperSpeed + USB Controller based on the Cadence USB3 IP Core +endef + +$(eval $(call KernelPackage,usb-cdns3)) + + define KernelPackage/usb-dwc3 TITLE:=DWC3 USB controller driver KCONFIG:= \ diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk index 16c4f51f5b1c37..b282d7695c92ee 100644 --- a/package/kernel/linux/modules/video.mk +++ b/package/kernel/linux/modules/video.mk @@ -448,7 +448,7 @@ $(eval $(call KernelPackage,drm-imx-hdmi)) define KernelPackage/drm-imx-ldb SUBMENU:=$(VIDEO_MENU) TITLE:=Freescale i.MX LVDS DRM support - DEPENDS:=+kmod-backlight kmod-drm-imx + DEPENDS:=@(TARGET_imx&&!TARGET_imx_cortexa53) +kmod-backlight kmod-drm-imx KCONFIG:=CONFIG_DRM_IMX_LDB \ CONFIG_DRM_PANEL_SIMPLE \ CONFIG_DRM_PANEL=y \ @@ -1182,7 +1182,7 @@ $(eval $(call KernelPackage,video-dma)) define KernelPackage/video-coda TITLE:=i.MX VPU support - DEPENDS:=@(TARGET_imx&&!TARGET_imx_cortexa7) +kmod-video-mem2mem +kmod-video-dma + DEPENDS:=@(TARGET_imx&&TARGET_imx_cortexa9) +kmod-video-mem2mem +kmod-video-dma KCONFIG:= \ CONFIG_VIDEO_CODA \ CONFIG_VIDEO_IMX_VDOA diff --git a/package/kernel/linux/modules/virt.mk b/package/kernel/linux/modules/virt.mk index 2fd5ed102984e4..4a879f240ebadb 100644 --- a/package/kernel/linux/modules/virt.mk +++ b/package/kernel/linux/modules/virt.mk @@ -22,6 +22,7 @@ define KernelPackage/kvm-x86 KCONFIG:=\ CONFIG_KVM \ CONFIG_KVM_MMU_AUDIT=n \ + CONFIG_KVM_SMM=y@ge6.6 \ CONFIG_VIRTUALIZATION=y FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm.ko AUTOLOAD:=$(call AutoProbe,kvm.ko) @@ -84,8 +85,9 @@ define KernelPackage/vfio CONFIG_VFIO_MDEV=n FILES:= \ $(LINUX_DIR)/drivers/vfio/vfio.ko \ + $(LINUX_DIR)/drivers/vfio/vfio_virqfd.ko@lt6.2 \ $(LINUX_DIR)/drivers/vfio/vfio_iommu_type1.ko - AUTOLOAD:=$(call AutoProbe,vfio vfio_iommu_type1) + AUTOLOAD:=$(call AutoProbe,vfio vfio_iommu_type1 +LINUX_6_1:vfio_virqfd) endef define KernelPackage/vfio/description diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index 54a2bf4499273c..566cfdd7b2efcb 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -12,6 +12,9 @@ PKG_NAME:=mac80211 PKG_VERSION:=6.6.15 PKG_RELEASE:=1 +PKG_LICENSE:=GPL-2.0-only +PKG_LICENSE_FILES:=COPYING + PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/ PKG_HASH:=3bbc461121134fda9089c084a5eed577d05e7837a157edf9a3797937172a3ece diff --git a/package/kernel/mac80211/patches/ath/432-carl9170_re-fix_fortified-memset_warning.patch b/package/kernel/mac80211/patches/ath/432-carl9170_re-fix_fortified-memset_warning.patch new file mode 100644 index 00000000000000..eafe49bd6fc407 --- /dev/null +++ b/package/kernel/mac80211/patches/ath/432-carl9170_re-fix_fortified-memset_warning.patch @@ -0,0 +1,51 @@ +[PATCH 1/2] carl9170: re-fix fortified-memset warning +@ 2023-06-23 15:23 Arnd Bergmann + 2023-06-23 15:24 ` [PATCH 2/2] mac80211: make ieee80211_tx_info padding explicit Arnd Bergmann + ` (2 more replies) + 0 siblings, 3 replies; 9+ messages in thread +From: Arnd Bergmann @ 2023-06-23 15:23 UTC (permalink / raw) + To: Christian Lamparter, Kalle Valo, Kees Cook, Johannes Berg + Cc: Arnd Bergmann, linux-wireless, linux-kernel + +From: Arnd Bergmann + +The carl9170_tx_release() function sometimes triggers a fortified-memset +warning in my randconfig builds: + +In file included from include/linux/string.h:254, + from drivers/net/wireless/ath/carl9170/tx.c:40: +In function 'fortify_memset_chk', + inlined from 'carl9170_tx_release' at drivers/net/wireless/ath/carl9170/tx.c:283:2, + inlined from 'kref_put' at include/linux/kref.h:65:3, + inlined from 'carl9170_tx_put_skb' at drivers/net/wireless/ath/carl9170/tx.c:342:9: +include/linux/fortify-string.h:493:25: error: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning] + 493 | __write_overflow_field(p_size_field, size); + +Kees previously tried to avoid this by using memset_after(), but it seems +this does not fully address the problem. I noticed that the memset_after() +here is done on a different part of the union (status) than the original +cast was from (rate_driver_data), which may confuse the compiler. + +Unfortunately, the memset_after() trick does not work on driver_rates[] +because that is part of an anonymous struct, and I could not get +struct_group() to do this either. Using two separate memset() calls +on the two members does address the warning though. + +Fixes: fb5f6a0e8063b ("mac80211: Use memset_after() to clear tx status") +Signed-off-by: Arnd Bergmann +--- + drivers/net/wireless/ath/carl9170/tx.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/net/wireless/ath/carl9170/tx.c ++++ b/drivers/net/wireless/ath/carl9170/tx.c +@@ -280,7 +280,8 @@ static void carl9170_tx_release(struct k + * carl9170_tx_fill_rateinfo() has filled the rate information + * before we get to this point. + */ +- memset_after(&txinfo->status, 0, rates); ++ memset(&txinfo->pad, 0, sizeof(txinfo->pad)); ++ memset(&txinfo->rate_driver_data, 0, sizeof(txinfo->rate_driver_data)); + + if (atomic_read(&ar->tx_total_queued)) + ar->tx_schedule = true; diff --git a/package/kernel/mac80211/patches/subsys/332-wifi-mac80211-check-clear-fast-rx-for-non-4addr-sta-.patch b/package/kernel/mac80211/patches/subsys/332-wifi-mac80211-check-clear-fast-rx-for-non-4addr-sta-.patch new file mode 100644 index 00000000000000..02b4345f2178f7 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/332-wifi-mac80211-check-clear-fast-rx-for-non-4addr-sta-.patch @@ -0,0 +1,35 @@ +From: Felix Fietkau +Date: Sat, 16 Mar 2024 08:37:21 +0100 +Subject: [PATCH] wifi: mac80211: check/clear fast rx for non-4addr sta VLAN + changes + +When moving a station out of a VLAN and deleting the VLAN afterwards, the +fast_rx entry still holds a pointer to the VLAN's netdev, which can cause +use-after-free bugs. Fix this by immediately calling ieee80211_check_fast_rx +after the VLAN change. + +Cc: stable@vger.kernel.org +Reported-by: ranygh@riseup.net +Signed-off-by: Felix Fietkau +--- + +--- a/net/mac80211/cfg.c ++++ b/net/mac80211/cfg.c +@@ -2184,15 +2184,14 @@ static int ieee80211_change_station(stru + } + + if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && +- sta->sdata->u.vlan.sta) { +- ieee80211_clear_fast_rx(sta); ++ sta->sdata->u.vlan.sta) + RCU_INIT_POINTER(sta->sdata->u.vlan.sta, NULL); +- } + + if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) + ieee80211_vif_dec_num_mcast(sta->sdata); + + sta->sdata = vlansdata; ++ ieee80211_check_fast_rx(sta); + ieee80211_check_fast_xmit(sta); + + if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) { diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile index 4f0fb5f69d046f..548492e9194c32 100644 --- a/package/kernel/mt76/Makefile +++ b/package/kernel/mt76/Makefile @@ -8,9 +8,9 @@ PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/openwrt/mt76 PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2024-02-03 -PKG_SOURCE_VERSION:=6124ea9135ed512671933f5520c46842906c78bc -PKG_MIRROR_HASH:=acc326d7b15c9c72b494ed601300be329553f896e65c7f045e6a09327304c34a +PKG_SOURCE_DATE:=2024-04-03 +PKG_SOURCE_VERSION:=1e336a8582dce2ef32ddd440d423e9afef961e71 +PKG_MIRROR_HASH:=276613540603dc6ece9d2474ae1899b6aaa6ca93bd27824056c9689c725f5890 PKG_MAINTAINER:=Felix Fietkau PKG_USE_NINJA:=0 diff --git a/package/kernel/mt76/patches/100-fix-build-on-linux-kernel-6.6.patch b/package/kernel/mt76/patches/100-fix-build-on-linux-kernel-6.6.patch deleted file mode 100644 index 4fdba0c472273f..00000000000000 --- a/package/kernel/mt76/patches/100-fix-build-on-linux-kernel-6.6.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/mac80211.c -+++ b/mac80211.c -@@ -4,7 +4,9 @@ - */ - #include - #include -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6,6,0) - #include -+#endif - #include "mt76.h" - - #define CHAN2G(_idx, _freq) { \ ---- a/mt76.h -+++ b/mt76.h -@@ -13,6 +13,9 @@ - #include - #include - #include -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,6,0) -+#include -+#endif - #include - #include - #include "util.h" diff --git a/package/kernel/mwlwifi/Makefile b/package/kernel/mwlwifi/Makefile index 2e6cd3a31e5299..b55b4604ca09f9 100644 --- a/package/kernel/mwlwifi/Makefile +++ b/package/kernel/mwlwifi/Makefile @@ -17,7 +17,7 @@ PKG_SOURCE_URL:=https://github.com/kaloz/mwlwifi PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2023-11-29 PKG_SOURCE_VERSION:=ebf3167445f108346dcff9a31a708534c0bd7cc5 -PKG_MIRROR_HASH:=1d39ad25f4ad1fafff03a70341c2dabde8db4075f56163d40f8ae8aef2e2bb2d +PKG_MIRROR_HASH:=6dffc08208305366b9c25133b74693d5c2e544c1076b7b4ed846628c66be56c1 PKG_MAINTAINER:=Imre Kaloz PKG_BUILD_PARALLEL:=1 diff --git a/package/kernel/nat46/Makefile b/package/kernel/nat46/Makefile index 5e5efbe101a713..296ef5a058e83e 100644 --- a/package/kernel/nat46/Makefile +++ b/package/kernel/nat46/Makefile @@ -3,7 +3,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=nat46 -PKG_MIRROR_HASH:=aeff95aa278ec1e197b59700284c0210f32b92c1fb757e5c3088bd00b3b403d4 +PKG_MIRROR_HASH:=09b93f31d10030d3b4f326066b544b70b1f60236d0482f27c384ed93b298c0a6 PKG_SOURCE_URL:=https://github.com/ayourtch/nat46.git PKG_SOURCE_DATE:=2022-09-19 PKG_SOURCE_PROTO:=git diff --git a/package/kernel/qca-nss-dp/Makefile b/package/kernel/qca-nss-dp/Makefile index f9e992f246af2f..504074a81e89f9 100644 --- a/package/kernel/qca-nss-dp/Makefile +++ b/package/kernel/qca-nss-dp/Makefile @@ -7,7 +7,7 @@ PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/nss-dp.git PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2023-06-06 PKG_SOURCE_VERSION:=fa67464466f69f00967cc373d1bdd6025f57eb89 -PKG_MIRROR_HASH:=51bf524382a5cb542c2c80d12a91f87b9736de3ac3c1d4a351c97b3502d68574 +PKG_MIRROR_HASH:=39329770042c85b32780cd12eef2aad2c5df79f34d1b7081e5ba1e1cc0b1b161 PKG_BUILD_PARALLEL:=1 PKG_FLAGS:=nonshared @@ -39,7 +39,7 @@ EXTRA_CFLAGS+= \ NSS_DP_HAL_DIR:=$(PKG_BUILD_DIR)/hal define Build/Configure - $(LN) $(NSS_DP_HAL_DIR)/soc_ops/$(CONFIG_TARGET_SUBTARGET)/nss_$(CONFIG_TARGET_SUBTARGET).h \ + $(CP) $(NSS_DP_HAL_DIR)/soc_ops/$(CONFIG_TARGET_SUBTARGET)/nss_$(CONFIG_TARGET_SUBTARGET).h \ $(PKG_BUILD_DIR)/exports/nss_dp_arch.h endef diff --git a/package/kernel/qca-nss-dp/patches/0010-nss-dp-include-net-netdev_rx_queue.h.patch b/package/kernel/qca-nss-dp/patches/0010-nss-dp-include-net-netdev_rx_queue.h.patch new file mode 100644 index 00000000000000..ddbf342868ab97 --- /dev/null +++ b/package/kernel/qca-nss-dp/patches/0010-nss-dp-include-net-netdev_rx_queue.h.patch @@ -0,0 +1,25 @@ +From 01ec275bd0942ddc6b80e1d3671cdc66be670f57 Mon Sep 17 00:00:00 2001 +From: Robert Marko +Date: Fri, 1 Sep 2023 12:23:58 +0200 +Subject: [PATCH] nss-dp: include + +Since 6.5 netdev_rx_queue was moved out of netdevice.h so include the new +header since that is where it lives now. + +Signed-off-by: Robert Marko +--- + nss_dp_main.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/nss_dp_main.c ++++ b/nss_dp_main.c +@@ -34,6 +34,9 @@ + #if defined(NSS_DP_MAC_POLL_SUPPORT) + #include + #endif ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0)) ++#include ++#endif + + #include "nss_dp_hal.h" + diff --git a/package/kernel/qca-ssdk/Makefile b/package/kernel/qca-ssdk/Makefile index f1fb09c52a2863..bbe9f120514627 100644 --- a/package/kernel/qca-ssdk/Makefile +++ b/package/kernel/qca-ssdk/Makefile @@ -1,15 +1,16 @@ include $(TOPDIR)/rules.mk PKG_NAME:=qca-ssdk -PKG_RELEASE:=5 +PKG_RELEASE:=6 PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-ssdk.git PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2023-10-04 PKG_SOURCE_VERSION:=23a5aa4a4d5834da7a07efb58baebfbee91786b0 -PKG_MIRROR_HASH:=9d169ce924a46a4e530031061d3183b92f23c7f46b3106f0b9ba3587846a73ee +PKG_MIRROR_HASH:=53fb201053b3aca004c4da07b06a0608b0b3322a2062b1f7ab3b3a7871ddabcb PKG_FLAGS:=nonshared +PKG_BUILD_PARALLEL:=1 PKG_BUILD_FLAGS:=no-lto include $(INCLUDE_DIR)/kernel.mk @@ -21,7 +22,7 @@ define KernelPackage/qca-ssdk SUBMENU:=Network Devices TITLE:=Qualcom SSDK switch driver DEPENDS:=@(TARGET_qualcommax) - FILES:=$(PKG_BUILD_DIR)/build/bin/qca-ssdk.ko + FILES:=$(PKG_BUILD_DIR)/qca-ssdk.ko AUTOLOAD:=$(call AutoLoad,30,qca-ssdk) endef @@ -31,7 +32,7 @@ endef GCC_VERSION=$(shell echo "$(CONFIG_GCC_VERSION)" | sed 's/[^0-9.]*\([0-9.]*\).*/\1/') -LNX_CONFIG_OPTS = LNX_MAKEOPTS='$(KERNEL_MAKEOPTS)' MODULE_TYPE=KSLIB modules +LNX_CONFIG_OPTS = LNX_MAKEOPTS='$(KERNEL_MAKEOPTS)' PRJ_PATH=$(PKG_BUILD_DIR) MODULE_TYPE=KSLIB modules MAKE_FLAGS+= \ TARGET_NAME=$(CONFIG_TARGET_NAME) \ @@ -42,7 +43,7 @@ MAKE_FLAGS+= \ ARCH=$(LINUX_KARCH) \ TARGET_SUFFIX=$(CONFIG_TARGET_SUFFIX) \ GCC_VERSION=$(GCC_VERSION) \ - EXTRA_CFLAGS=-fno-stack-protector -I$(STAGING_DIR)/usr/include \ + EXTRA_CFLAGS="-fno-stack-protector -I$(STAGING_DIR)/usr/include" \ SoC=$(CONFIG_TARGET_SUBTARGET) \ PTP_FEATURE=disable SWCONFIG_FEATURE=disable \ ISISC_ENABLE=disable IN_QCA803X_PHY=FALSE \ @@ -57,6 +58,11 @@ ifeq ($(CONFIG_TARGET_SUBTARGET), "ipq60xx") MAKE_FLAGS+= CHIP_TYPE=CPPE endif + +define Build/Compile + +$(MAKE) $(PKG_JOBS) $(MAKE_FLAGS) -C $(PKG_BUILD_DIR) $(LNX_CONFIG_OPTS) +endef + define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include/qca-ssdk $(INSTALL_DIR) $(1)/usr/include/qca-ssdk/api diff --git a/package/kernel/qca-ssdk/patches/0001-config-identify-kernel-6.6.patch b/package/kernel/qca-ssdk/patches/0001-config-identify-kernel-6.6.patch new file mode 100644 index 00000000000000..2dc092326306b3 --- /dev/null +++ b/package/kernel/qca-ssdk/patches/0001-config-identify-kernel-6.6.patch @@ -0,0 +1,47 @@ +From f6c0115daaac586740e873a3b8145c5370a73dce Mon Sep 17 00:00:00 2001 +From: Robert Marko +Date: Sat, 17 Feb 2024 13:02:31 +0100 +Subject: [PATCH] config: identify kernel 6.6 + +Identify kernel 6.6 so it can be compiled against. + +Signed-off-by: Robert Marko +--- + config | 5 +++++ + make/linux_opt.mk | 4 ++-- + 2 files changed, 7 insertions(+), 2 deletions(-) + +--- a/config ++++ b/config +@@ -27,6 +27,11 @@ endif + ifeq ($(KVER),$(filter 6.1%,$(KVER))) + OS_VER=6_1 + endif ++ ++ifeq ($(KVER),$(filter 6.6%,$(KVER))) ++ OS_VER=6_6 ++endif ++ + ifeq ($(KVER), 3.4.0) + OS_VER=3_4 + endif +--- a/make/linux_opt.mk ++++ b/make/linux_opt.mk +@@ -450,7 +450,7 @@ ifeq (KSLIB, $(MODULE_TYPE)) + KASAN_SHADOW_SCALE_SHIFT := 3 + endif + +- ifeq ($(OS_VER),$(filter 5_4 6_1, $(OS_VER))) ++ ifeq ($(OS_VER),$(filter 5_4 6_1 6_6, $(OS_VER))) + ifeq ($(ARCH), arm64) + KASAN_OPTION += -DKASAN_SHADOW_SCALE_SHIFT=$(KASAN_SHADOW_SCALE_SHIFT) + endif +@@ -481,7 +481,7 @@ ifeq (KSLIB, $(MODULE_TYPE)) + + endif + +- ifeq ($(OS_VER),$(filter 4_4 5_4 6_1, $(OS_VER))) ++ ifeq ($(OS_VER),$(filter 4_4 5_4 6_1 6_6, $(OS_VER))) + MODULE_CFLAG += -DKVER34 + MODULE_CFLAG += -DKVER32 + MODULE_CFLAG += -DLNX26_22 diff --git a/package/kernel/qca-ssdk/patches/103-mdio-adapt-to-C22-and-C45-read-write-split.patch b/package/kernel/qca-ssdk/patches/103-mdio-adapt-to-C22-and-C45-read-write-split.patch new file mode 100644 index 00000000000000..7ddca554ecbd50 --- /dev/null +++ b/package/kernel/qca-ssdk/patches/103-mdio-adapt-to-C22-and-C45-read-write-split.patch @@ -0,0 +1,98 @@ +From bdae481e89cbe551068a99028bb57119b59f5ff4 Mon Sep 17 00:00:00 2001 +From: Robert Marko +Date: Tue, 26 Mar 2024 12:19:49 +0100 +Subject: [PATCH] mdio: adapt to C22 and C45 read/write split + +Kernel 6.3 has introduced separate C45 read/write operations, and thus +split them out of the C22 operations completely so the old way of marking +C45 reads and writes via the register value does not work anymore. + +This is causing SSDK to fail and find C45 only PHY-s such as Aquantia ones: +[ 22.187877] ssdk_phy_driver_init[371]:INFO:dev_id = 0, phy_adress = 8, phy_id = 0x0 phytype doesn't match +[ 22.209924] ssdk_phy_driver_init[371]:INFO:dev_id = 0, phy_adress = 0, phy_id = 0x0 phytype doesn't match + +This in turn causes USXGMII MAC autoneg bit to not get set and then UNIPHY +autoneg will time out, causing the 10G ports not to work: +[ 37.292784] uniphy autoneg time out! + +So, lets detect C45 reads and writes by the magic BIT(30) in the register +argument and if so call separate C45 mdiobus read/write functions. + +Signed-off-by: Robert Marko +--- + include/init/ssdk_plat.h | 7 +++++++ + src/init/ssdk_plat.c | 30 ++++++++++++++++++++++++++++++ + 2 files changed, 37 insertions(+) + +--- a/include/init/ssdk_plat.h ++++ b/include/init/ssdk_plat.h +@@ -505,3 +505,10 @@ void ssdk_plat_exit(a_uint32_t dev_id); + + #endif + /*qca808x_end*/ ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0)) ++#define MII_ADDR_C45 (1<<30) ++#define MII_DEVADDR_C45_SHIFT 16 ++#define MII_DEVADDR_C45_MASK GENMASK(20, 16) ++#define MII_REGADDR_C45_MASK GENMASK(15, 0) ++#endif +--- a/src/init/ssdk_plat.c ++++ b/src/init/ssdk_plat.c +@@ -356,6 +356,18 @@ phy_addr_validation_check(a_uint32_t phy + return A_TRUE; + } + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0)) ++static inline u16 mdiobus_c45_regad(u32 regnum) ++{ ++ return FIELD_GET(MII_REGADDR_C45_MASK, regnum); ++} ++ ++static inline u16 mdiobus_c45_devad(u32 regnum) ++{ ++ return FIELD_GET(MII_DEVADDR_C45_MASK, regnum); ++} ++#endif ++ + sw_error_t + qca_ar8327_phy_read(a_uint32_t dev_id, a_uint32_t phy_addr, + a_uint32_t reg, a_uint16_t* data) +@@ -371,9 +383,18 @@ qca_ar8327_phy_read(a_uint32_t dev_id, a + if (!bus) + return SW_NOT_SUPPORTED; + phy_addr = TO_PHY_ADDR(phy_addr); ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0)) ++ mutex_lock(&bus->mdio_lock); ++ if (reg & MII_ADDR_C45) ++ *data = __mdiobus_c45_read(bus, phy_addr, mdiobus_c45_devad(reg), mdiobus_c45_regad(reg)); ++ else ++ *data = __mdiobus_read(bus, phy_addr, reg); ++ mutex_unlock(&bus->mdio_lock); ++#else + mutex_lock(&bus->mdio_lock); + *data = __mdiobus_read(bus, phy_addr, reg); + mutex_unlock(&bus->mdio_lock); ++#endif + + return 0; + } +@@ -393,9 +414,18 @@ qca_ar8327_phy_write(a_uint32_t dev_id, + if (!bus) + return SW_NOT_SUPPORTED; + phy_addr = TO_PHY_ADDR(phy_addr); ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0)) ++ mutex_lock(&bus->mdio_lock); ++ if (reg & MII_ADDR_C45) ++ __mdiobus_c45_write(bus, phy_addr, mdiobus_c45_devad(reg), mdiobus_c45_regad(reg), data); ++ else ++ __mdiobus_write(bus, phy_addr, reg, data); ++ mutex_unlock(&bus->mdio_lock); ++#else + mutex_lock(&bus->mdio_lock); + __mdiobus_write(bus, phy_addr, reg, data); + mutex_unlock(&bus->mdio_lock); ++#endif + + return 0; + } diff --git a/package/kernel/qca-ssdk/patches/200-allow-parallel-build.patch b/package/kernel/qca-ssdk/patches/200-allow-parallel-build.patch new file mode 100644 index 00000000000000..5635c2fdcfb307 --- /dev/null +++ b/package/kernel/qca-ssdk/patches/200-allow-parallel-build.patch @@ -0,0 +1,50 @@ +--- a/Makefile ++++ b/Makefile +@@ -1,17 +1,19 @@ +-include ./config +- + ifndef PRJ_PATH + PRJ_PATH=$(shell pwd) + endif + export PRJ_PATH + +-include ./make/config.mk +-include ./make/tools.mk +-include ./make/$(OS)_opt.mk ++include $(PRJ_PATH)/config ++ ++include $(PRJ_PATH)/make/config.mk ++include $(PRJ_PATH)/make/tools.mk ++include $(PRJ_PATH)/make/$(OS)_opt.mk + + SUB_DIR=$(patsubst %/, %, $(dir $(wildcard src/*/Makefile))) + SUB_LIB=$(subst src/, , $(SUB_DIR)) + ++include $(PRJ_PATH)/Makefile.modules ++ + #################################################################### + # SSDK-Style Makefile + #################################################################### +@@ -27,11 +29,7 @@ all: $(BIN_DIR) kslib + # LNX Modules-Style Makefile + #################################################################### + modules: $(BIN_DIR) kslib_c +- mkdir -p ./temp/;cp * ./temp -a;cd ./temp;cp ../Makefile.modules ./Makefile; +- make -C $(SYS_PATH) M=$(PRJ_PATH)/temp $(LNX_MAKEOPTS) modules +- cp $(PRJ_PATH)/temp/Module.symvers $(PRJ_PATH)/Module.symvers; +- cp temp/*.ko build/bin; +- rm -Rf ./temp/*.o ./temp/*.ko ./temp/*.a ++ @$(MAKE) -C $(SYS_PATH) M=$(PRJ_PATH) $(LNX_MAKEOPTS) modules + @echo "---Build [SSDK-$(VERSION)] at $(BUILD_DATE) finished." + + kslib_c: +--- a/make/linux_opt.mk ++++ b/make/linux_opt.mk +@@ -777,6 +777,6 @@ LOCAL_CFLAGS += $(CPU_CFLAG) -D"KBUILD_M + #################################################################### + # cflags for LNX Modules-Style Makefile + #################################################################### +-LNX_LOCAL_CFLAGS += $(MODULE_INC) $(MODULE_CFLAG) ${EXTRA_INC} -DFALLTHROUGH ++LNX_LOCAL_CFLAGS = $(MODULE_INC) $(MODULE_CFLAG) ${EXTRA_INC} -DFALLTHROUGH + export LNX_LOCAL_CFLAGS + diff --git a/package/kernel/rtl8812au-ct/Makefile b/package/kernel/rtl8812au-ct/Makefile index b0440a68589bc5..a994f350524dad 100644 --- a/package/kernel/rtl8812au-ct/Makefile +++ b/package/kernel/rtl8812au-ct/Makefile @@ -7,7 +7,7 @@ PKG_LICENSE:=GPLv2 PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/greearb/rtl8812AU_8821AU_linux.git -PKG_MIRROR_HASH:=748f5c58aa3f391222c0c43db35b9ff4c30c9c987ca052a5a3cdf36193e5821b +PKG_MIRROR_HASH:=880c0ddd968a8f4bfdf4263318e925635c9abe4cc20a79bbdc905d46e00018d0 PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2022-10-26 PKG_SOURCE_VERSION:=9b2b203a217e1320602a0eb07c338a1bfca0f5a6 diff --git a/package/libs/gettext-full/Makefile b/package/libs/gettext-full/Makefile index eb5b6d31bd2c52..94b973d5c10ae2 100644 --- a/package/libs/gettext-full/Makefile +++ b/package/libs/gettext-full/Makefile @@ -27,7 +27,7 @@ PKG_BUILD_PARALLEL:=0 PKG_FIXUP:=autoreconf -HOST_BUILD_DEPENDS:=gperf/host libunistring/host libxml2/host +HOST_BUILD_DEPENDS:=gperf/host libiconv-full/host libunistring/host libxml2/host HOST_BUILD_PARALLEL:=0 PKG_SUBDIRS:= \ @@ -101,14 +101,12 @@ HOST_CONFIGURE_ARGS += \ --disable-java \ --disable-openmp \ --without-emacs \ + --with-libiconv-prefix=$(STAGING_DIR_HOSTPKG) \ --with-libunistring-prefix=$(STAGING_DIR_HOSTPKG) \ --with-libxml2-prefix=$(STAGING_DIR_HOSTPKG) HOST_CONFIGURE_VARS += \ EMACS="no" \ - am_cv_lib_iconv=no \ - am_cv_func_iconv=no \ - ac_cv_header_iconv_h=no \ HOST_CFLAGS += $(HOST_FPIC) diff --git a/package/libs/libbpf/Makefile b/package/libs/libbpf/Makefile index 240eb51d68e0f5..913c025e541a90 100644 --- a/package/libs/libbpf/Makefile +++ b/package/libs/libbpf/Makefile @@ -12,7 +12,7 @@ PKG_VERSION:=1.3.0 PKG_RELEASE:=1 PKG_SOURCE_URL:=https://github.com/libbpf/libbpf -PKG_MIRROR_HASH:=ff597a3635c2c099419d7e9e8bc44084f7f9e0c4ba2dcd571130165a19ed4ef4 +PKG_MIRROR_HASH:=669d8db696f86f640f86edc358bffa2af8dda656b8e787b095de3578bd8d94ff PKG_SOURCE_PROTO:=git PKG_SOURCE_VERSION:=v1.3.0 PKG_ABI_VERSION:=$(firstword $(subst .,$(space),$(PKG_VERSION))) diff --git a/package/libs/libevent2/Makefile b/package/libs/libevent2/Makefile index 92602607aea253..e0a080d60e240d 100644 --- a/package/libs/libevent2/Makefile +++ b/package/libs/libevent2/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libevent2 PKG_VERSION:=2.1.12 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=libevent-$(PKG_VERSION)-stable.tar.gz PKG_SOURCE_URL:=https://github.com/libevent/libevent/releases/download/release-$(PKG_VERSION)-stable diff --git a/package/libs/libevent2/patches/001-relative-cmake.patch b/package/libs/libevent2/patches/001-relative-cmake.patch new file mode 100644 index 00000000000000..38dc187df6b173 --- /dev/null +++ b/package/libs/libevent2/patches/001-relative-cmake.patch @@ -0,0 +1,58 @@ +From 81c6b8823c1b58d7837e827bb1098aa5f9e5956b Mon Sep 17 00:00:00 2001 +From: "Jeremy W. Murphy" +Date: Tue, 16 May 2023 05:07:36 +1000 +Subject: [PATCH] cmake: Only use relative paths for install DESTINATION option + (#1405) + +As described in #1404, the explicit use of CMAKE_INSTALL_PREFIX conflicts with using command-line --prefix. + +This simply removes all explicit use of CMAKE_INSTALL_PREFIX. + +Otherwise this path will be duplicated: + + $ cmake -DCMAKE_BUILD_TYPE=debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_INSTALL_PREFIX=inst .. + $ DESTDIR=inst ninja install + ... + -- Installing: inst/src/le/libevent/.cmake-debug/inst/include/event2/util.h + -- Installing: inst/src/le/libevent/.cmake-debug/inst/include/event2/ws.h + ... + +Fixes: #1404 +Co-authored-by: Jeremy Murphy +--- + CMakeLists.txt | 3 +-- + cmake/AddEventLibrary.cmake | 4 ++-- + 2 files changed, 3 insertions(+), 4 deletions(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1452,8 +1452,7 @@ endif() + # Installation preparation. + # + +-set(EVENT_INSTALL_CMAKE_DIR +- "${CMAKE_INSTALL_PREFIX}/lib/cmake/libevent") ++set(EVENT_INSTALL_CMAKE_DIR "lib/cmake/libevent") + + export(PACKAGE libevent) + +--- a/cmake/AddEventLibrary.cmake ++++ b/cmake/AddEventLibrary.cmake +@@ -31,7 +31,7 @@ macro(generate_pkgconfig LIB_NAME) + configure_file("lib${LIB_NAME}.pc.in" "lib${LIB_NAME}.pc" @ONLY) + install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/lib${LIB_NAME}.pc" +- DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" ++ DESTINATION "lib/pkgconfig" + ) + endmacro() + +@@ -150,7 +150,7 @@ macro(add_event_library LIB_NAME) + set_target_properties( + "${LIB_NAME}_shared" PROPERTIES + OUTPUT_NAME "${LIB_NAME}-${EVENT_PACKAGE_RELEASE}.${CURRENT_MINUS_AGE}" +- INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib" ++ INSTALL_NAME_DIR "lib" + LINK_FLAGS "-compatibility_version ${COMPATIBILITY_VERSION} -current_version ${COMPATIBILITY_VERSION}.${EVENT_ABI_LIBVERSION_REVISION}") + else() + math(EXPR CURRENT_MINUS_AGE "${EVENT_ABI_LIBVERSION_CURRENT}-${EVENT_ABI_LIBVERSION_AGE}") diff --git a/package/libs/libnl-tiny/Makefile b/package/libs/libnl-tiny/Makefile index a0c6efe517e88c..c211288f8eb150 100644 --- a/package/libs/libnl-tiny/Makefile +++ b/package/libs/libnl-tiny/Makefile @@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/libnl-tiny.git PKG_SOURCE_DATE:=2023-12-05 PKG_SOURCE_VERSION:=965c4bf49658342ced0bd6e7cb069571b4a1ddff -PKG_MIRROR_HASH:=93596c2686926a470b6bf322f6c166a420a08abe1ea715b4ae8c9df3de00eb28 +PKG_MIRROR_HASH:=4b56499e71f5f10b123e1c7ee13dbfcd970de560bff8d16ab39dc25c9ff743cb CMAKE_INSTALL:=1 PKG_LICENSE:=LGPL-2.1 diff --git a/package/libs/libubox/Makefile b/package/libs/libubox/Makefile index a987304ba16a00..22abfd4372e38b 100644 --- a/package/libs/libubox/Makefile +++ b/package/libs/libubox/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/libubox.git -PKG_MIRROR_HASH:=071139fed757bea240d4ba8f55a0ff5a81862d23e16b39fc871ae07da78ae6a4 -PKG_SOURCE_DATE:=2024-01-26 -PKG_SOURCE_VERSION:=c1be505732e6d254464973bdeacb955214c76c46 +PKG_MIRROR_HASH:=a4f671d10840fd8487394335636051a6df5edf6d8854af4fcb834a590efb240a +PKG_SOURCE_DATE:=2024-03-29 +PKG_SOURCE_VERSION:=eb9bcb64185ac155c02cc1a604692c4b00368324 PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_SOURCE_DATE)) CMAKE_INSTALL:=1 diff --git a/package/libs/libxml2/Makefile b/package/libs/libxml2/Makefile index 86fa3707710f98..efd33a52781d17 100644 --- a/package/libs/libxml2/Makefile +++ b/package/libs/libxml2/Makefile @@ -11,6 +11,7 @@ PKG_HASH:=a972796696afd38073e0f59c283c3a2f5a560b5268b4babc391b286166526b21 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=COPYING PKG_CPE_ID:=cpe:/a:xmlsoft:libxml2 +HOST_BUILD_DEPENDS := libiconv-full/host include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk diff --git a/package/libs/mbedtls/Config.in b/package/libs/mbedtls/Config.in index 9fbe9f8a4a0ff4..ad0ecb6e611aa8 100644 --- a/package/libs/mbedtls/Config.in +++ b/package/libs/mbedtls/Config.in @@ -172,6 +172,13 @@ config MBEDTLS_SSL_TRUNCATED_HMAC bool "MBEDTLS_SSL_TRUNCATED_HMAC" default n +config MBEDTLS_THREADING_C + bool "MBEDTLS_THREADING_C" + default y + +config MBEDTLS_THREADING_PTHREAD + def_bool MBEDTLS_THREADING_C + config MBEDTLS_VERSION_C bool "MBEDTLS_VERSION_C" default n diff --git a/package/libs/mbedtls/Makefile b/package/libs/mbedtls/Makefile index ad13bbe846371c..3bfbe8758bc4f2 100644 --- a/package/libs/mbedtls/Makefile +++ b/package/libs/mbedtls/Makefile @@ -70,6 +70,8 @@ MBEDTLS_BUILD_OPTS= \ CONFIG_MBEDTLS_SELF_TEST \ CONFIG_MBEDTLS_SSL_RENEGOTIATION \ CONFIG_MBEDTLS_SSL_TRUNCATED_HMAC \ + CONFIG_MBEDTLS_THREADING_C \ + CONFIG_MBEDTLS_THREADING_PTHREAD \ CONFIG_MBEDTLS_VERSION_C \ CONFIG_MBEDTLS_VERSION_FEATURES @@ -94,7 +96,7 @@ $(call Package/mbedtls/Default) CATEGORY:=Libraries SUBMENU:=SSL TITLE+= (library) - ABI_VERSION:=12 + ABI_VERSION:=13 MENU:=1 endef @@ -141,7 +143,10 @@ endef define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include - $(CP) $(PKG_INSTALL_DIR)/usr/include/mbedtls $(1)/usr/include/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/include/mbedtls \ + $(PKG_INSTALL_DIR)/usr/include/psa \ + $(1)/usr/include/ $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* $(1)/usr/lib/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.a $(1)/usr/lib/ diff --git a/package/libs/toolchain/Makefile b/package/libs/toolchain/Makefile index ea36af5da44a67..285fbcfa98938f 100644 --- a/package/libs/toolchain/Makefile +++ b/package/libs/toolchain/Makefile @@ -27,7 +27,7 @@ define Package/gcc/Default SECTION:=libs CATEGORY:=Base system URL:=http://gcc.gnu.org/ - VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE) + VERSION:=$(LIBGCC_VERSION)-r$(PKG_RELEASE) endef define Package/libgcc @@ -230,7 +230,7 @@ endef define Package/libc/Default SECTION:=libs CATEGORY:=Base system - VERSION:=$(LIBC_VERSION)-$(PKG_RELEASE) + VERSION:=$(LIBC_VERSION)-r$(PKG_RELEASE) DEPENDS:=+libgcc URL:=$(LIBC_URL) endef @@ -519,7 +519,6 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) define Package/glibc/install $(CP) ./glibc-files/* $(1)/ rm -f $(1)/etc/localtime - $(LN) /tmp/localtime $(1)/etc/localtime $(INSTALL_DIR) $(1)/lib $(CP) \ $(TOOLCHAIN_DIR)/lib/ld*.so.* \ diff --git a/package/libs/uclient/Makefile b/package/libs/uclient/Makefile index d7d1f1bb1f5f40..cb679231cc3cf1 100644 --- a/package/libs/uclient/Makefile +++ b/package/libs/uclient/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/uclient.git -PKG_MIRROR_HASH:=16c6c97f45d9737fb40628ea22ae347541a1e37d8d1576e04ffbaa5fc92f3b6d -PKG_SOURCE_DATE:=2023-04-13 -PKG_SOURCE_VERSION:=007d945467499f43656b141171d31f5643b83a6c +PKG_MIRROR_HASH:=21c95854c60757007edacc579ce874999d2d536f682b0e636a8d19bc75e70da5 +PKG_SOURCE_DATE:=2024-04-05 +PKG_SOURCE_VERSION:=6c16331e4bf542fbb538d62a6b5bf3d286ecbf2c CMAKE_INSTALL:=1 PKG_BUILD_DEPENDS:=ustream-ssl @@ -16,6 +16,7 @@ PKG_LICENSE:=ISC PKG_LICENSE_FILES:= PKG_MAINTAINER:=Felix Fietkau +PKG_CONFIG_DEPENDS := CONFIG_PACKAGE_ucode-mod-uclient include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/cmake.mk @@ -37,6 +38,16 @@ define Package/uclient-fetch DEPENDS:=+libuclient endef +define Package/ucode-mod-uclient + SECTION:=utils + CATEGORY:=Utilities + TITLE:=ucode uclient module + DEPENDS:=+libucode +libuclient +endef + +CMAKE_OPTIONS += \ + -DBUILD_UCODE=$(if $(CONFIG_PACKAGE_ucode-mod-uclient),ON,OFF) + define Package/libuclient/install $(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libuclient.so $(1)/usr/lib/ @@ -47,5 +58,11 @@ define Package/uclient-fetch/install $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/uclient-fetch $(1)/bin/ endef +define Package/ucode-mod-uclient/install + $(INSTALL_DIR) $(1)/usr/lib/ucode + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/*.so $(1)/usr/lib/ucode +endef + $(eval $(call BuildPackage,libuclient)) $(eval $(call BuildPackage,uclient-fetch)) +$(eval $(call BuildPackage,ucode-mod-uclient)) diff --git a/package/libs/udebug/Makefile b/package/libs/udebug/Makefile index 0a54515e74611c..bfb13cf788428b 100644 --- a/package/libs/udebug/Makefile +++ b/package/libs/udebug/Makefile @@ -11,7 +11,7 @@ PKG_NAME:=udebug CMAKE_INSTALL:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/udebug.git -PKG_MIRROR_HASH:=553a58a14b59dc7b22755557acbc74f0655a431442a4faca56d28cdb1ef14fb4 +PKG_MIRROR_HASH:=4dfe98b5d5813066dccd46d112502565b6961a4a7382083c529dfb423a626c2b PKG_SOURCE_DATE:=2023-12-06 PKG_SOURCE_VERSION:=6d3f51f9fda706f0cf4732c762e4dbe8c21e12cf PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_SOURCE_DATE)) diff --git a/package/libs/ustream-ssl/Makefile b/package/libs/ustream-ssl/Makefile index 076053abf658f0..8537205fda8af1 100644 --- a/package/libs/ustream-ssl/Makefile +++ b/package/libs/ustream-ssl/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/ustream-ssl.git -PKG_SOURCE_DATE:=2023-11-26 -PKG_SOURCE_VERSION:=263b9a97cf7e1e2467319c23832b705fc01190b5 -PKG_MIRROR_HASH:=1c01d633f21c6cb578a785826d1983284b28f49b20d608d82179842dcdbeed6e +PKG_SOURCE_DATE:=2024-04-07 +PKG_SOURCE_VERSION:=d61493a4420417cbf9931ffee8c862faf04f2967 +PKG_MIRROR_HASH:=a420d775ad4928836e33e0d9423486fe4904555dbbfff283cd96370a49cf9659 CMAKE_INSTALL:=1 PKG_LICENSE:=ISC diff --git a/package/network/config/firewall/Makefile b/package/network/config/firewall/Makefile index 0e00f386897a7c..c4bf73f07d7986 100644 --- a/package/network/config/firewall/Makefile +++ b/package/network/config/firewall/Makefile @@ -15,7 +15,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firewall3.git PKG_SOURCE_DATE:=2022-02-17 PKG_SOURCE_VERSION:=4cd7d4f36bea731bf901cb067456f1d460294926 -PKG_MIRROR_HASH:=ce9e8ac1bcf22afbb0a80c3da1a8e8e887851299681097e3dfbfc347f2c4c80f +PKG_MIRROR_HASH:=d48a1937328b4a46b4771839d7f281a0e95e024169caa02253fc216a0907d0b9 PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC diff --git a/package/network/config/firewall4/Makefile b/package/network/config/firewall4/Makefile index 6a54e28f0c2a71..365a363303fcfd 100644 --- a/package/network/config/firewall4/Makefile +++ b/package/network/config/firewall4/Makefile @@ -11,7 +11,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firewall4.git PKG_SOURCE_DATE:=2023-11-03 PKG_SOURCE_VERSION:=698a53354fd280aae097efe08803c0c9a10c14c2 -PKG_MIRROR_HASH:=e38484bffe11a04a67069128aa3b8a8c707ad58c79c0de2785a5d995421457aa +PKG_MIRROR_HASH:=736b3d03cf0db1170242de20776b0095cc37d260108e4313f84eafb46b1be711 PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC @@ -26,7 +26,7 @@ define Package/firewall4 +kmod-nft-nat \ +nftables-json \ +ucode +ucode-mod-fs +ucode-mod-ubus +ucode-mod-uci - EXTRA_DEPENDS:=ucode (>= 2022-03-22) + EXTRA_DEPENDS:=ucode (>=2022.03.22) PROVIDES:=uci-firewall endef diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile index ba4516c1dc6cc7..35b5c0b2773dec 100644 --- a/package/network/config/netifd/Makefile +++ b/package/network/config/netifd/Makefile @@ -7,7 +7,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git PKG_SOURCE_DATE:=2024-01-04 PKG_SOURCE_VERSION:=f01345ec13b9b27ffd314d8689fb2d3f9c81a47d -PKG_MIRROR_HASH:=58e92e9ce1a2c8ccb487e95dadf806f38b38abbe7cb3cde61ff880de5eb85c2f +PKG_MIRROR_HASH:=b051aa94e6413f520b711372f8cae4574cad26cba880ff6ab2d415713d06e592 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 diff --git a/package/network/config/qosify/Makefile b/package/network/config/qosify/Makefile index f4ad0422354fc6..8e8c1b87135955 100644 --- a/package/network/config/qosify/Makefile +++ b/package/network/config/qosify/Makefile @@ -13,7 +13,7 @@ PKG_SOURCE_URL=$(PROJECT_GIT)/project/qosify.git PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2023-03-07 PKG_SOURCE_VERSION:=9a47ea4b683dd845ec94534fcd82d3117c9ab313 -PKG_MIRROR_HASH:=c4c313aed4a405492201612bdfef5e219c9a994a35f35acc84fc8327d9aa73d2 +PKG_MIRROR_HASH:=3d97456dcd13f481beff9a87d939e4bd671577865ed7cfc11b00d6e40f3e5621 PKG_RELEASE:=1 PKG_LICENSE:=GPL-2.0 diff --git a/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh b/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh index 55df71ee3d5857..bc59c303b939ac 100755 --- a/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh +++ b/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh @@ -273,6 +273,7 @@ mac80211_hostapd_setup_base() { case "$channel" in 36|40|44|48|52|56|60|64) idx=50;; 100|104|108|112|116|120|124|128) idx=114;; + 149|153|157|161|165|169|173|177) idx=163;; esac fi enable_ac=1 diff --git a/package/network/config/wifi-scripts/files/usr/share/hostap/wdev.uc b/package/network/config/wifi-scripts/files/usr/share/hostap/wdev.uc index ff4d629fd64d0e..d505e3035ffbb2 100644 --- a/package/network/config/wifi-scripts/files/usr/share/hostap/wdev.uc +++ b/package/network/config/wifi-scripts/files/usr/share/hostap/wdev.uc @@ -32,10 +32,11 @@ function iface_start(wdev) wdev_config.macaddr = phydev.macaddr_next(); wdev_create(phy, ifname, wdev_config); wdev_set_up(ifname, true); + let htmode = wdev.htmode || "NOHT"; if (wdev.freq) - system(`iw dev ${ifname} set freq ${wdev.freq} ${wdev.htmode}`); + system(`iw dev ${ifname} set freq ${wdev.freq} ${htmode}`); if (wdev.mode == "adhoc") { - let cmd = ["iw", "dev", ifname, "ibss", "join", wdev.ssid, wdev.freq, wdev.htmode, "fixed-freq" ]; + let cmd = ["iw", "dev", ifname, "ibss", "join", wdev.ssid, wdev.freq, htmode, "fixed-freq" ]; if (wdev.bssid) push(cmd, wdev.bssid); for (let key in [ "beacon-interval", "basic-rates", "mcast-rate", "keys" ]) @@ -43,7 +44,7 @@ function iface_start(wdev) push(cmd, key, wdev[key]); system(cmd); } else if (wdev.mode == "mesh") { - let cmd = [ "iw", "dev", ifname, "mesh", "join", wdev.ssid, "freq", wdev.freq, wdev.htmode ]; + let cmd = [ "iw", "dev", ifname, "mesh", "join", wdev.ssid, "freq", wdev.freq, htmode ]; for (let key in [ "mcast-rate", "beacon-interval" ]) if (wdev[key]) push(cmd, key, wdev[key]); diff --git a/package/network/ipv6/ds-lite/Makefile b/package/network/ipv6/ds-lite/Makefile index 502da366a92e67..37c3449ab2a76c 100644 --- a/package/network/ipv6/ds-lite/Makefile +++ b/package/network/ipv6/ds-lite/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ds-lite -PKG_RELEASE:=8 +PKG_RELEASE:=9 PKG_LICENSE:=GPL-2.0 include $(INCLUDE_DIR)/package.mk @@ -17,13 +17,13 @@ define Package/ds-lite SECTION:=net CATEGORY:=Network DEPENDS:=@IPV6 +kmod-ip6-tunnel +resolveip - TITLE:=Dual-Stack Lite (DS-Lite) configuration support + TITLE:=IPv4 over IPv6 (RFC2473 and DS-Lite) configuration support MAINTAINER:=Steven Barth PKGARCH:=all endef define Package/ds-lite/description -Provides support for Dual-Stack Lite in /etc/config/network. +Provides support for IPv4 over IPv6 (RFC2473 and DS-Lite) in /etc/config/network. Refer to http://wiki.openwrt.org/doc/uci/network for configuration details. endef diff --git a/package/network/ipv6/ds-lite/files/dslite.sh b/package/network/ipv6/ds-lite/files/dslite.sh index 017963926db62b..325401b98b55e3 100644 --- a/package/network/ipv6/ds-lite/files/dslite.sh +++ b/package/network/ipv6/ds-lite/files/dslite.sh @@ -1,6 +1,9 @@ #!/bin/sh -# dslite.sh - IPv4-in-IPv6 tunnel backend +# dslite.sh - IPv4-in-IPv6 tunnel backend for ipip6 and ds-lite # Copyright (c) 2013 OpenWrt.org +# Copyright (c) 2013 Steven Barth +# Copyright (c) 2021 Kenji Uno +# Copyright (c) 2024 Arayuki Mago [ -n "$INCLUDE_ONLY" ] || { . /lib/functions.sh @@ -9,10 +12,13 @@ init_proto "$@" } -proto_dslite_setup() { +tnl_setup() { local cfg="$1" local iface="$2" - local link="ds-$cfg" + local tnl_type="$3" + local ip4addr="$4" + local ip4gateway="$5" + local link="$tnl_type-$cfg" local remoteip6 local mtu ttl peeraddr ip6addr tunlink zone weakif encaplimit @@ -59,7 +65,7 @@ proto_dslite_setup() { proto_init_update "$link" 1 proto_add_ipv4_route "0.0.0.0" 0 - proto_add_ipv4_address "192.0.0.2" "" "" "192.0.0.1" + proto_add_ipv4_address "$ip4addr" "" "" "$ip4gateway" proto_add_tunnel json_add_string mode ipip6 @@ -76,23 +82,22 @@ proto_dslite_setup() { proto_add_data [ -n "$zone" ] && json_add_string zone "$zone" - json_add_array firewall - json_add_object "" - json_add_string type nat - json_add_string target ACCEPT - json_close_object - json_close_array + if [ "$tnl_type" = "ds" ]; then + json_add_array firewall + json_add_object "" + json_add_string type nat + json_add_string target ACCEPT + json_close_object + json_close_array + fi + proto_close_data proto_send_update "$cfg" } -proto_dslite_teardown() { - local cfg="$1" -} - -proto_dslite_init_config() { - no_device=1 +init_config() { + no_device=1 available=1 proto_config_add_string "ip6addr" @@ -105,6 +110,34 @@ proto_dslite_init_config() { proto_config_add_string "weakif" } +proto_ipip6_init_config() { + init_config + proto_config_add_string "ip4ifaddr" +} + +proto_ipip6_setup() { + local ip4ifaddr + json_get_vars ip4ifaddr + tnl_setup "$1" "$2" "ipip6" "$ip4ifaddr" "0.0.0.0" +} + +proto_ipip6_teardown() { + local cfg="$1" +} + +proto_dslite_init_config() { + init_config +} + +proto_dslite_setup() { + tnl_setup "$1" "$2" "ds" "192.0.0.2" "192.0.0.1" +} + +proto_dslite_teardown() { + local cfg="$1" +} + [ -n "$INCLUDE_ONLY" ] || { - add_protocol dslite + add_protocol ipip6 + add_protocol dslite } diff --git a/package/network/ipv6/odhcp6c/Makefile b/package/network/ipv6/odhcp6c/Makefile index ac507e1f17a767..894f388945fc50 100644 --- a/package/network/ipv6/odhcp6c/Makefile +++ b/package/network/ipv6/odhcp6c/Makefile @@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcp6c.git PKG_SOURCE_DATE:=2023-05-12 PKG_SOURCE_VERSION:=bcd283632ac13391aac3ebdd074d1fd832d76fa3 -PKG_MIRROR_HASH:=0f3508a5a148ca831ae30b49b21919535f9dfbbd003a942baa6cb5388d207878 +PKG_MIRROR_HASH:=0c18c578045f9251bd86a5b8fb0518b69c519e83f69907bf76583a2985482508 PKG_MAINTAINER:=Hans Dedecker PKG_LICENSE:=GPL-2.0 diff --git a/package/network/services/bridger/Makefile b/package/network/services/bridger/Makefile index e228de517dcd20..fa98220f68aa6e 100644 --- a/package/network/services/bridger/Makefile +++ b/package/network/services/bridger/Makefile @@ -12,7 +12,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/nbd168/bridger PKG_SOURCE_DATE:=2023-05-12 PKG_SOURCE_VERSION:=d0f79a16c749ad310d79e1c31f593860619f99eb -PKG_MIRROR_HASH:=bee35594767cbcd13764f5c95e4837a4fc73171a91fcdae73aaefe00f4e8f8fa +PKG_MIRROR_HASH:=dde6613662ad53ba6622e669400560a534426edfa4f42c91d156fbd7ccafd15c PKG_LICENSE:=GPL-2.0 PKG_MAINTAINER:=Felix Fietkau diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile index e33d866304fa92..5224e996a49a06 100644 --- a/package/network/services/dnsmasq/Makefile +++ b/package/network/services/dnsmasq/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dnsmasq -PKG_UPSTREAM_VERSION:=2.89 +PKG_UPSTREAM_VERSION:=2.90 PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION))) -PKG_RELEASE:=8 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz PKG_SOURCE_URL:=https://thekelleys.org.uk/dnsmasq/ -PKG_HASH:=02bd230346cf0b9d5909f5e151df168b2707103785eb616b56685855adebb609 +PKG_HASH:=8e50309bd837bfec9649a812e066c09b6988b73d749b7d293c06c57d46a109e4 PKG_LICENSE:=GPL-2.0 PKG_LICENSE_FILES:=COPYING diff --git a/package/network/services/dnsmasq/patches/0001-Fix-spurious-resource-limit-exceeded-messages.patch b/package/network/services/dnsmasq/patches/0001-Fix-spurious-resource-limit-exceeded-messages.patch new file mode 100644 index 00000000000000..f25ee20413fbfc --- /dev/null +++ b/package/network/services/dnsmasq/patches/0001-Fix-spurious-resource-limit-exceeded-messages.patch @@ -0,0 +1,43 @@ +From 1ed783b8d7343c42910a61f12a8fc6237eb80417 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Mon, 19 Feb 2024 12:22:43 +0000 +Subject: Fix spurious "resource limit exceeded" messages. + +Replies from upstream with a REFUSED rcode can result in +log messages stating that a resource limit has been exceeded, +which is not the case. + +Thanks to Dominik Derigs and the Pi-hole project for +spotting this. +--- + CHANGELOG | 5 +++++ + src/forward.c | 6 +++--- + 2 files changed, 8 insertions(+), 3 deletions(-) + +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -1,3 +1,8 @@ ++version 2.91 ++ Fix spurious "resource limit exceeded messages". Thanks to ++ Dominik Derigs for the bug report. ++ ++ + version 2.90 + Fix reversion in --rev-server introduced in 2.88 which + caused breakage if the prefix length is not exactly divisible +--- a/src/forward.c ++++ b/src/forward.c +@@ -937,10 +937,10 @@ static void dnssec_validate(struct frec + status = dnssec_validate_reply(now, header, plen, daemon->namebuff, daemon->keyname, &forward->class, + !option_bool(OPT_DNSSEC_IGN_NS) && (forward->sentto->flags & SERV_DO_DNSSEC), + NULL, NULL, NULL, &orig->validate_counter); +- } + +- if (STAT_ISEQUAL(status, STAT_ABANDONED)) +- log_resource = 1; ++ if (STAT_ISEQUAL(status, STAT_ABANDONED)) ++ log_resource = 1; ++ } + + /* Can't validate, as we're missing key data. Put this + answer aside, whilst we get that. */ diff --git a/package/network/services/dnsmasq/patches/0002-PATCH-Fix-error-introduced-in-51471cafa5a4fa44d6fe49.patch b/package/network/services/dnsmasq/patches/0002-PATCH-Fix-error-introduced-in-51471cafa5a4fa44d6fe49.patch new file mode 100644 index 00000000000000..5c50ae84463b30 --- /dev/null +++ b/package/network/services/dnsmasq/patches/0002-PATCH-Fix-error-introduced-in-51471cafa5a4fa44d6fe49.patch @@ -0,0 +1,31 @@ +From ccff85ad72d2f858d9743d40525128e4f62d41a8 Mon Sep 17 00:00:00 2001 +From: renmingshuai +Date: Wed, 21 Feb 2024 00:24:25 +0000 +Subject: [PATCH] Fix error introduced in + 51471cafa5a4fa44d6fe490885d9910bd72a5907 + +Signed-off-by: renmingshuai +--- + src/dnssec.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/src/dnssec.c ++++ b/src/dnssec.c +@@ -1547,7 +1547,7 @@ static int prove_non_existence_nsec3(str + nsecs[i] = NULL; /* Speculative, will be restored if OK. */ + + if (!(p = skip_name(nsec3p, header, plen, 15))) +- return 0; /* bad packet */ ++ return DNSSEC_FAIL_BADPACKET; /* bad packet */ + + p += 10; /* type, class, TTL, rdlen */ + +@@ -1640,7 +1640,7 @@ static int prove_non_existence_nsec3(str + if (!wildname) + { + if (!(wildcard = strchr(next_closest, '.')) || wildcard == next_closest) +- return 0; ++ return DNSSEC_FAIL_NONSEC; + + wildcard--; + *wildcard = '*'; diff --git a/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch b/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch index 59b8d02c0e1823..26c1b463b94c7e 100644 --- a/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch +++ b/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch @@ -13,7 +13,7 @@ Signed-off-by: Kevin Darbyshire-Bryant --- a/src/dnsmasq.c +++ b/src/dnsmasq.c -@@ -103,10 +103,6 @@ int main (int argc, char **argv) +@@ -105,10 +105,6 @@ int main (int argc, char **argv) read_opts(argc, argv, compile_opts); @@ -26,7 +26,7 @@ Signed-off-by: Kevin Darbyshire-Bryant --- a/src/dnsmasq.h +++ b/src/dnsmasq.h -@@ -1248,7 +1248,7 @@ extern struct daemon { +@@ -1277,7 +1277,7 @@ extern struct daemon { int inotifyfd; #endif #if defined(HAVE_LINUX_NETWORK) @@ -35,7 +35,7 @@ Signed-off-by: Kevin Darbyshire-Bryant #elif defined(HAVE_BSD_NETWORK) int dhcp_raw_fd, dhcp_icmp_fd, routefd; #endif -@@ -1453,9 +1453,6 @@ int read_write(int fd, unsigned char *pa +@@ -1491,9 +1491,6 @@ int read_write(int fd, unsigned char *pa void close_fds(long max_fd, int spare1, int spare2, int spare3); int wildcard_match(const char* wildcard, const char* match); int wildcard_matchn(const char* wildcard, const char* match, int num); @@ -140,7 +140,7 @@ Signed-off-by: Kevin Darbyshire-Bryant my_syslog(LOG_ERR, _("failed to update ipset %s: %s"), setname, strerror(errno)); --- a/src/util.c +++ b/src/util.c -@@ -855,22 +855,3 @@ int wildcard_matchn(const char* wildcard +@@ -866,22 +866,3 @@ int wildcard_matchn(const char* wildcard return (!num) || (*wildcard == *match); } diff --git a/package/network/services/dnsmasq/patches/200-ubus_dns.patch b/package/network/services/dnsmasq/patches/200-ubus_dns.patch index ccbe70ab9c3cef..72acbaeba934fe 100644 --- a/package/network/services/dnsmasq/patches/200-ubus_dns.patch +++ b/package/network/services/dnsmasq/patches/200-ubus_dns.patch @@ -1,6 +1,19 @@ +--- a/src/dnsmasq.c ++++ b/src/dnsmasq.c +@@ -2021,6 +2021,10 @@ static void check_dns_listeners(time_t n + daemon->pipe_to_parent = pipefd[1]; + } + ++#ifdef HAVE_UBUS ++ drop_ubus_listeners(); ++#endif ++ + /* start with no upstream connections. */ + for (s = daemon->servers; s; s = s->next) + s->tcpfd = -1; --- a/src/dnsmasq.h +++ b/src/dnsmasq.h -@@ -1631,14 +1631,26 @@ void emit_dbus_signal(int action, struct +@@ -1670,14 +1670,26 @@ void emit_dbus_signal(int action, struct /* ubus.c */ #ifdef HAVE_UBUS @@ -11,6 +24,7 @@ void set_ubus_listeners(void); void check_ubus_listeners(void); +void drop_ubus_listeners(void); ++int ubus_dns_notify_has_subscribers(void); +struct blob_buf *ubus_dns_notify_prepare(void); +int ubus_dns_notify(const char *type, ubus_dns_notify_cb cb, void *priv); void ubus_event_bcast(const char *type, const char *mac, const char *ip, const char *name, const char *interface); @@ -19,14 +33,24 @@ void ubus_event_bcast_connmark_allowlist_resolved(u32 mark, const char *pattern, const char *ip, u32 ttl); # endif +#else -+struct blob_buf; -+static inline struct blob_buf *ubus_dns_notify_prepare(void) ++static inline int ubus_dns_notify_has_subscribers(void) +{ -+ return NULL; ++ return 0; +} #endif /* ipset.c */ +--- a/src/forward.c ++++ b/src/forward.c +@@ -803,7 +803,7 @@ static size_t process_reply(struct dns_h + cache_secure = 0; + } + +- if (daemon->doctors && do_doctor(header, n, daemon->namebuff)) ++ if ((daemon->doctors || ubus_dns_notify_has_subscribers()) && do_doctor(header, n, daemon->namebuff)) + cache_secure = 0; + + /* check_for_bogus_wildcard() does it's own caching, so --- a/src/rfc1035.c +++ b/src/rfc1035.c @@ -13,8 +13,10 @@ @@ -41,7 +65,7 @@ int extract_name(struct dns_header *header, size_t plen, unsigned char **pp, char *name, int isExtract, int extrabytes) -@@ -394,9 +396,64 @@ static int private_net6(struct in6_addr +@@ -384,10 +386,65 @@ static int private_net6(struct in6_addr ((u32 *)a)[0] == htonl(0x20010db8); /* RFC 6303 4.6 */ } @@ -100,14 +124,15 @@ +} +#endif + - static unsigned char *do_doctor(unsigned char *p, int count, struct dns_header *header, size_t qlen, int *doctored) + int do_doctor(struct dns_header *header, size_t qlen, char *namebuff) { + unsigned char *p; - int i, qtype, qclass, rdlen; + int i, qtype, qclass, rdlen, ttl; - - for (i = count; i != 0; i--) - { -@@ -405,7 +462,7 @@ static unsigned char *do_doctor(unsigned + int done = 0; + + if (!(p = skip_questions(header, qlen))) +@@ -404,7 +461,7 @@ int do_doctor(struct dns_header *header, GETSHORT(qtype, p); GETSHORT(qclass, p); @@ -116,50 +141,31 @@ GETSHORT(rdlen, p); if (qclass == C_IN && qtype == T_A) -@@ -416,6 +473,9 @@ static unsigned char *do_doctor(unsigned +@@ -415,6 +472,9 @@ int do_doctor(struct dns_header *header, if (!CHECK_LEN(header, p, qlen, INADDRSZ)) - return 0; + return done; + if (ubus_dns_doctor(daemon->namebuff, ttl, p, AF_INET)) -+ *doctored = 1; ++ header->hb3 &= ~HB3_AA; + /* alignment */ - memcpy(&addr, p, INADDRSZ); + memcpy(&addr.addr4, p, INADDRSZ); -@@ -433,13 +493,22 @@ static unsigned char *do_doctor(unsigned - addr.s_addr &= ~doctor->mask.s_addr; - addr.s_addr |= (doctor->out.s_addr & doctor->mask.s_addr); - /* Since we munged the data, the server it came from is no longer authoritative */ -- header->hb3 &= ~HB3_AA; - *doctored = 1; - memcpy(p, &addr, INADDRSZ); +@@ -444,6 +504,14 @@ int do_doctor(struct dns_header *header, break; } } -- + else if (qclass == C_IN && qtype == T_AAAA) + { + if (!CHECK_LEN(header, p, qlen, IN6ADDRSZ)) + return 0; + + if (ubus_dns_doctor(daemon->namebuff, ttl, p, AF_INET6)) -+ *doctored = 1; ++ header->hb3 &= ~HB3_AA; + } -+ -+ if (*doctored) -+ header->hb3 &= ~HB3_AA; + if (!ADD_RDLEN(header, p, qlen, rdlen)) - return 0; /* bad packet */ - } -@@ -570,7 +639,7 @@ int extract_addresses(struct dns_header - cache_start_insert(); - - /* find_soa is needed for dns_doctor side effects, so don't call it lazily if there are any. */ -- if (daemon->doctors || option_bool(OPT_DNSSEC_VALID)) -+ if (daemon->doctors || option_bool(OPT_DNSSEC_VALID) || ubus_dns_notify_prepare()) - { - searched_soa = 1; - ttl = find_soa(header, qlen, doctored); + return done; /* bad packet */ --- a/src/ubus.c +++ b/src/ubus.c @@ -72,6 +72,13 @@ static struct ubus_object ubus_object = @@ -216,15 +222,18 @@ static int ubus_handle_metrics(struct ubus_context *ctx, struct ubus_object *obj, struct ubus_request_data *req, const char *method, struct blob_attr *msg) -@@ -328,6 +354,50 @@ fail: +@@ -328,6 +354,53 @@ fail: } \ } while (0) -+struct blob_buf *ubus_dns_notify_prepare(void) ++int ubus_dns_notify_has_subscribers(void) +{ -+ struct ubus_context *ubus = (struct ubus_context *)daemon->ubus; ++ return (daemon->ubus && ubus_dns_object.has_subscribers); ++} + -+ if (!ubus || !ubus_dns_object.has_subscribers) ++struct blob_buf *ubus_dns_notify_prepare(void) ++{ ++ if (!ubus_dns_notify_has_subscribers()) + return NULL; + + blob_buf_init(&b, 0); @@ -267,16 +276,3 @@ void ubus_event_bcast(const char *type, const char *mac, const char *ip, const char *name, const char *interface) { struct ubus_context *ubus = (struct ubus_context *)daemon->ubus; ---- a/src/dnsmasq.c -+++ b/src/dnsmasq.c -@@ -2003,6 +2003,10 @@ static void check_dns_listeners(time_t n - daemon->pipe_to_parent = pipefd[1]; - } - -+#ifdef HAVE_UBUS -+ drop_ubus_listeners(); -+#endif -+ - /* start with no upstream connections. */ - for (s = daemon->servers; s; s = s->next) - s->tcpfd = -1; diff --git a/package/network/services/hostapd/Config.in b/package/network/services/hostapd/Config.in index 87ad7e093e7da0..1fff4f8acd530b 100644 --- a/package/network/services/hostapd/Config.in +++ b/package/network/services/hostapd/Config.in @@ -1,54 +1,12 @@ # wpa_supplicant config config WPA_RFKILL_SUPPORT bool "Add rfkill support" - depends on PACKAGE_wpa-supplicant || \ - PACKAGE_wpa-supplicant-openssl || \ - PACKAGE_wpa-supplicant-wolfssl || \ - PACKAGE_wpa-supplicant-mbedtls || \ - PACKAGE_wpa-supplicant-mesh-openssl || \ - PACKAGE_wpa-supplicant-mesh-wolfssl || \ - PACKAGE_wpa-supplicant-mesh-mbedtls || \ - PACKAGE_wpa-supplicant-basic || \ - PACKAGE_wpa-supplicant-mini || \ - PACKAGE_wpa-supplicant-p2p || \ - PACKAGE_wpad || \ - PACKAGE_wpad-openssl || \ - PACKAGE_wpad-wolfssl || \ - PACKAGE_wpad-mbedtls || \ - PACKAGE_wpad-basic || \ - PACKAGE_wpad-basic-openssl || \ - PACKAGE_wpad-basic-wolfssl || \ - PACKAGE_wpad-basic-mbedtls || \ - PACKAGE_wpad-mini || \ - PACKAGE_wpad-mesh-openssl || \ - PACKAGE_wpad-mesh-wolfssl || \ - PACKAGE_wpad-mesh-mbedtls + depends on PACKAGE_hostapd-common default n config WPA_MSG_MIN_PRIORITY int "Minimum debug message priority" - depends on PACKAGE_wpa-supplicant || \ - PACKAGE_wpa-supplicant-openssl || \ - PACKAGE_wpa-supplicant-wolfssl || \ - PACKAGE_wpa-supplicant-mbedtls || \ - PACKAGE_wpa-supplicant-mesh-openssl || \ - PACKAGE_wpa-supplicant-mesh-wolfssl || \ - PACKAGE_wpa-supplicant-mesh-mbedtls || \ - PACKAGE_wpa-supplicant-basic || \ - PACKAGE_wpa-supplicant-mini || \ - PACKAGE_wpa-supplicant-p2p || \ - PACKAGE_wpad || \ - PACKAGE_wpad-openssl || \ - PACKAGE_wpad-wolfssl || \ - PACKAGE_wpad-mbedtls || \ - PACKAGE_wpad-basic || \ - PACKAGE_wpad-basic-openssl || \ - PACKAGE_wpad-basic-wolfssl || \ - PACKAGE_wpad-basic-mbedtls || \ - PACKAGE_wpad-mini || \ - PACKAGE_wpad-mesh-openssl || \ - PACKAGE_wpad-mesh-wolfssl || \ - PACKAGE_wpad-mesh-mbedtls + depends on PACKAGE_hostapd-common default 3 help Useful values are: @@ -84,6 +42,7 @@ config DRIVER_11AX_SUPPORT config WPA_ENABLE_WEP bool "Enable support for unsecure and obsolete WEP" + depends on PACKAGE_hostapd-common help Wired equivalent privacy (WEP) is an obsolete cryptographic data confidentiality algorithm that is not considered secure. It should not be used @@ -93,14 +52,8 @@ config WPA_ENABLE_WEP config WPA_MBO_SUPPORT bool "Multi Band Operation (Agile Multiband)" - default PACKAGE_wpa-supplicant || \ - PACKAGE_wpa-supplicant-openssl || \ - PACKAGE_wpa-supplicant-wolfssl || \ - PACKAGE_wpa-supplicant-mbedtls || \ - PACKAGE_wpad || \ - PACKAGE_wpad-openssl || \ - PACKAGE_wpad-wolfssl || \ - PACKAGE_wpad-mbedtls + depends on PACKAGE_hostapd-common + default y help Multi Band Operation aka (Agile Multiband) enables features that facilitate efficient use of multiple frequency bands. diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile index c8f476f7b8c88e..0171bc0edca940 100644 --- a/package/network/services/hostapd/Makefile +++ b/package/network/services/hostapd/Makefile @@ -5,13 +5,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hostapd -PKG_RELEASE:=6 +PKG_RELEASE:=1 -PKG_SOURCE_URL:=http://w1.fi/hostap.git +PKG_SOURCE_URL:=https://w1.fi/hostap.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2023-09-08 -PKG_SOURCE_VERSION:=e5ccbfc69ecf297590341ae8b461edba9d8e964c -PKG_MIRROR_HASH:=fcc6550f46c7f8bbdbf71e63f8f699b9a0878565ad1b90a17855f5ec21283b8f +PKG_SOURCE_DATE:=2024-03-09 +PKG_SOURCE_VERSION:=695277a5b3da08b9a8a4e7117b933deb8b4950a7 +PKG_MIRROR_HASH:=57b8e64d24707e37e0df3359cee15dd5184b824b8622568833a5b8a0cae163ae PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=BSD-3-Clause @@ -150,7 +150,7 @@ define Package/hostapd/Default TITLE:=IEEE 802.1x Authenticator URL:=http://hostap.epitest.fi/ DEPENDS:=$(DRV_DEPENDS) +hostapd-common $(CORE_DEPENDS) - EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE)) + EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-r$(PKG_RELEASE)) USERID:=network=101:network=101 PROVIDES:=hostapd CONFLICTS:=$(HOSTAPD_PROVIDERS) @@ -255,7 +255,7 @@ define Package/wpad/Default SUBMENU:=WirelessAPD TITLE:=IEEE 802.1x Auth/Supplicant DEPENDS:=$(DRV_DEPENDS) +hostapd-common $(CORE_DEPENDS) - EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE)) + EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-r$(PKG_RELEASE)) USERID:=network=101:network=101 URL:=http://hostap.epitest.fi/ PROVIDES:=hostapd wpa-supplicant @@ -400,7 +400,7 @@ define Package/wpa-supplicant/Default TITLE:=WPA Supplicant URL:=http://hostap.epitest.fi/wpa_supplicant/ DEPENDS:=$(DRV_DEPENDS) +hostapd-common $(CORE_DEPENDS) - EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE)) + EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-r$(PKG_RELEASE)) USERID:=network=101:network=101 PROVIDES:=wpa-supplicant CONFLICTS:=$(SUPPLICANT_PROVIDERS) diff --git a/package/network/services/hostapd/patches/001-wolfssl-init-RNG-with-ECC-key.patch b/package/network/services/hostapd/patches/001-wolfssl-init-RNG-with-ECC-key.patch deleted file mode 100644 index 269dcaac75ce3e..00000000000000 --- a/package/network/services/hostapd/patches/001-wolfssl-init-RNG-with-ECC-key.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 21ce83b4ae2b9563175fdb4fc4312096cc399cf8 Mon Sep 17 00:00:00 2001 -From: David Bauer -Date: Wed, 5 May 2021 00:44:34 +0200 -Subject: [PATCH] wolfssl: add RNG to EC key - -Since upstream commit 6467de5a8840 ("Randomize z ordinates in -scalar mult when timing resistant") WolfSSL requires a RNG for -the EC key when built hardened which is the default. - -Set the RNG for the EC key to fix connections for OWE clients. - -Signed-off-by: David Bauer ---- - src/crypto/crypto_wolfssl.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/src/crypto/crypto_wolfssl.c -+++ b/src/crypto/crypto_wolfssl.c -@@ -1340,6 +1340,7 @@ int ecc_projective_add_point(ecc_point * - - struct crypto_ec { - ecc_key key; -+ WC_RNG rng; - mp_int a; - mp_int prime; - mp_int order; -@@ -1394,6 +1395,8 @@ struct crypto_ec * crypto_ec_init(int gr - return NULL; - - if (wc_ecc_init(&e->key) != 0 || -+ wc_InitRng(&e->rng) != 0 || -+ wc_ecc_set_rng(&e->key, &e->rng) != 0 || - wc_ecc_set_curve(&e->key, 0, curve_id) != 0 || - mp_init(&e->a) != MP_OKAY || - mp_init(&e->prime) != MP_OKAY || -@@ -1425,6 +1428,7 @@ void crypto_ec_deinit(struct crypto_ec* - mp_clear(&e->order); - mp_clear(&e->prime); - mp_clear(&e->a); -+ wc_FreeRng(&e->rng); - wc_ecc_free(&e->key); - os_free(e); - } diff --git a/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch b/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch index 0a51c84d2158b2..4291f015180c53 100644 --- a/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch +++ b/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch @@ -9,12 +9,12 @@ Note: DFS is assumed to be usable if a country code has been set Signed-off-by: Benjamin Berg Signed-off-by: Peter Oh --- - wpa_supplicant/wpa_supplicant.c | 25 +++++++++++++++++++------ - 1 file changed, 19 insertions(+), 6 deletions(-) + wpa_supplicant/wpa_supplicant.c | 38 ++++++++++++++++++++++----------- + 1 file changed, 25 insertions(+), 13 deletions(-) --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -2638,7 +2638,7 @@ static int drv_supports_vht(struct wpa_s +@@ -2698,7 +2698,7 @@ static int drv_supports_vht(struct wpa_s } @@ -23,7 +23,7 @@ Signed-off-by: Peter Oh { int i; -@@ -2647,7 +2647,10 @@ static bool ibss_mesh_is_80mhz_avail(int +@@ -2707,7 +2707,10 @@ static bool ibss_mesh_is_80mhz_avail(int chan = hw_get_channel_chan(mode, i, NULL); if (!chan || @@ -35,7 +35,7 @@ Signed-off-by: Peter Oh return false; } -@@ -2774,7 +2777,7 @@ static void ibss_mesh_select_40mhz(struc +@@ -2834,7 +2837,7 @@ static void ibss_mesh_select_40mhz(struc const struct wpa_ssid *ssid, struct hostapd_hw_modes *mode, struct hostapd_freq_params *freq, @@ -44,7 +44,7 @@ Signed-off-by: Peter Oh int chan_idx; struct hostapd_channel_data *pri_chan = NULL, *sec_chan = NULL; int i, res; -@@ -2798,8 +2801,11 @@ static void ibss_mesh_select_40mhz(struc +@@ -2858,8 +2861,11 @@ static void ibss_mesh_select_40mhz(struc return; /* Check primary channel flags */ @@ -57,7 +57,7 @@ Signed-off-by: Peter Oh #ifdef CONFIG_HT_OVERRIDES if (ssid->disable_ht40) -@@ -2825,8 +2831,11 @@ static void ibss_mesh_select_40mhz(struc +@@ -2885,8 +2891,11 @@ static void ibss_mesh_select_40mhz(struc return; /* Check secondary channel flags */ @@ -70,7 +70,7 @@ Signed-off-by: Peter Oh if (ht40 == -1) { if (!(pri_chan->flag & HOSTAPD_CHAN_HT40MINUS)) -@@ -2880,7 +2889,7 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -2940,7 +2949,7 @@ static bool ibss_mesh_select_80_160mhz(s const struct wpa_ssid *ssid, struct hostapd_hw_modes *mode, struct hostapd_freq_params *freq, @@ -79,7 +79,7 @@ Signed-off-by: Peter Oh static const int bw80[] = { 5180, 5260, 5500, 5580, 5660, 5745, 5825, 5955, 6035, 6115, 6195, 6275, 6355, 6435, -@@ -2925,7 +2934,7 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -2985,7 +2994,7 @@ static bool ibss_mesh_select_80_160mhz(s goto skip_80mhz; /* Use 40 MHz if channel not usable */ @@ -88,7 +88,7 @@ Signed-off-by: Peter Oh goto skip_80mhz; chwidth = CONF_OPER_CHWIDTH_80MHZ; -@@ -2939,7 +2948,7 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -2999,7 +3008,7 @@ static bool ibss_mesh_select_80_160mhz(s if ((mode->he_capab[ieee80211_mode].phy_cap[ HE_PHYCAP_CHANNEL_WIDTH_SET_IDX] & HE_PHYCAP_CHANNEL_WIDTH_SET_160MHZ_IN_5G) && is_6ghz && @@ -97,7 +97,7 @@ Signed-off-by: Peter Oh for (j = 0; j < ARRAY_SIZE(bw160); j++) { if (freq->freq == bw160[j]) { chwidth = CONF_OPER_CHWIDTH_160MHZ; -@@ -2967,10 +2976,12 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -3027,10 +3036,12 @@ static bool ibss_mesh_select_80_160mhz(s if (!chan) continue; @@ -113,15 +113,15 @@ Signed-off-by: Peter Oh /* Found a suitable second segment for 80+80 */ chwidth = CONF_OPER_CHWIDTH_80P80MHZ; -@@ -3025,6 +3036,7 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3085,6 +3096,7 @@ void ibss_mesh_setup_freq(struct wpa_sup int i, obss_scan = 1; u8 channel; - bool is_6ghz; + bool is_6ghz, is_24ghz; + bool dfs_enabled = wpa_s->conf->country[0] && (wpa_s->drv_flags & WPA_DRIVER_FLAGS_RADAR); freq->freq = ssid->frequency; -@@ -3070,9 +3082,9 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3133,9 +3145,9 @@ void ibss_mesh_setup_freq(struct wpa_sup freq->channel = channel; /* Setup higher BW only for 5 GHz */ if (mode->mode == HOSTAPD_MODE_IEEE80211A) { diff --git a/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch b/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch index 07b7a5971d3e00..a53fcc480c6586 100644 --- a/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch +++ b/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch @@ -64,11 +64,11 @@ Signed-off-by: Markus Theil return NULL; + chan_idx = _rand % num_available_chandefs; - dfs_find_channel(iface, &chan, chan_idx, type); - if (!chan) { + wpa_printf(MSG_DEBUG, "DFS: Picked random entry from the list: %d/%d", + chan_idx, num_available_chandefs); --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -11017,6 +11017,10 @@ static int nl80211_switch_channel(void * +@@ -11195,6 +11195,10 @@ static int nl80211_switch_channel(void * if (ret) goto error; diff --git a/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch b/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch index edf599e3e282f3..a4a90933b17d61 100644 --- a/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch +++ b/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch @@ -1,6 +1,10 @@ +From: Felix Fietkau +Date: Tue, 25 May 2021 10:50:16 +0200 +Subject: [PATCH] fix adding back stations after a missed deauth/disassoc + --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c -@@ -4621,6 +4621,13 @@ static int add_associated_sta(struct hos +@@ -4659,6 +4659,13 @@ static int add_associated_sta(struct hos * drivers to accept the STA parameter configuration. Since this is * after a new FT-over-DS exchange, a new TK has been derived, so key * reinstallation is not a concern for this case. @@ -14,7 +18,7 @@ */ wpa_printf(MSG_DEBUG, "Add associated STA " MACSTR " (added_unassoc=%d auth_alg=%u ft_over_ds=%u reassoc=%d authorized=%d ft_tk=%d fils_tk=%d)", -@@ -4634,7 +4641,8 @@ static int add_associated_sta(struct hos +@@ -4672,7 +4679,8 @@ static int add_associated_sta(struct hos (!(sta->flags & WLAN_STA_AUTHORIZED) || (reassoc && sta->ft_over_ds && sta->auth_alg == WLAN_AUTH_FT) || (!wpa_auth_sta_ft_tk_already_set(sta->wpa_sm) && diff --git a/package/network/services/hostapd/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch b/package/network/services/hostapd/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch deleted file mode 100644 index 8dec325c985bf0..00000000000000 --- a/package/network/services/hostapd/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Felix Fietkau -Date: Thu, 8 Jul 2021 16:33:03 +0200 -Subject: [PATCH] hostapd: fix use of uninitialized stack variables - -When a CSA is performed on an 80 MHz channel, hostapd_change_config_freq -unconditionally calls hostapd_set_oper_centr_freq_seg0/1_idx with seg0/1 -filled by ieee80211_freq_to_chan. -However, if ieee80211_freq_to_chan fails (because the freq is 0 or invalid), -seg0/1 remains uninitialized and filled with stack garbage, causing errors -such as "hostapd: 80 MHz: center segment 1 configured" - -Signed-off-by: Felix Fietkau ---- - ---- a/src/ap/hostapd.c -+++ b/src/ap/hostapd.c -@@ -3764,7 +3764,7 @@ static int hostapd_change_config_freq(st - struct hostapd_freq_params *old_params) - { - int channel; -- u8 seg0, seg1; -+ u8 seg0 = 0, seg1 = 0; - struct hostapd_hw_modes *mode; - - if (!params->channel) { diff --git a/package/network/services/hostapd/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch b/package/network/services/hostapd/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch index ef2bb408fb28d9..c5cf8b1b7985d4 100644 --- a/package/network/services/hostapd/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch +++ b/package/network/services/hostapd/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch @@ -10,17 +10,17 @@ Signed-off-by: Felix Fietkau --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -16,9 +16,6 @@ - #include +@@ -18,9 +18,6 @@ #include #include + #include -#ifdef CONFIG_LIBNL3_ROUTE -#include -#endif /* CONFIG_LIBNL3_ROUTE */ #include #include #include -@@ -5783,26 +5780,29 @@ fail: +@@ -5859,26 +5856,29 @@ fail: static void rtnl_neigh_delete_fdb_entry(struct i802_bss *bss, const u8 *addr) { @@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau if (err < 0) { wpa_printf(MSG_DEBUG, "nl80211: bridge FDB entry delete for " MACSTR " ifindex=%d failed: %s", MAC2STR(addr), -@@ -5812,9 +5812,8 @@ static void rtnl_neigh_delete_fdb_entry( +@@ -5888,9 +5888,8 @@ static void rtnl_neigh_delete_fdb_entry( MACSTR, MAC2STR(addr)); } @@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau } -@@ -8492,7 +8491,6 @@ static void *i802_init(struct hostapd_da +@@ -8615,7 +8614,6 @@ static void *i802_init(struct hostapd_da (params->num_bridge == 0 || !params->bridge[0])) add_ifidx(drv, br_ifindex, drv->ifindex); @@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau if (bss->added_if_into_bridge || bss->already_in_bridge) { int err; -@@ -8509,7 +8507,6 @@ static void *i802_init(struct hostapd_da +@@ -8632,7 +8630,6 @@ static void *i802_init(struct hostapd_da goto failed; } } @@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_RX) { wpa_printf(MSG_DEBUG, -@@ -11883,13 +11880,14 @@ static int wpa_driver_br_add_ip_neigh(vo +@@ -12071,13 +12068,14 @@ static int wpa_driver_br_add_ip_neigh(vo const u8 *ipaddr, int prefixlen, const u8 *addr) { @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau int res; if (!ipaddr || prefixlen == 0 || !addr) -@@ -11908,85 +11906,66 @@ static int wpa_driver_br_add_ip_neigh(vo +@@ -12096,85 +12094,66 @@ static int wpa_driver_br_add_ip_neigh(vo } if (version == 4) { @@ -220,7 +220,7 @@ Signed-off-by: Felix Fietkau addrsize = 16; } else { return -EINVAL; -@@ -12004,41 +11983,30 @@ static int wpa_driver_br_delete_ip_neigh +@@ -12192,41 +12171,30 @@ static int wpa_driver_br_delete_ip_neigh return -1; } diff --git a/package/network/services/hostapd/patches/040-mesh-allow-processing-authentication-frames-in-block.patch b/package/network/services/hostapd/patches/040-mesh-allow-processing-authentication-frames-in-block.patch index b7bf9e351e08b5..636ec2d9c8b7c7 100644 --- a/package/network/services/hostapd/patches/040-mesh-allow-processing-authentication-frames-in-block.patch +++ b/package/network/services/hostapd/patches/040-mesh-allow-processing-authentication-frames-in-block.patch @@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c -@@ -3020,15 +3020,6 @@ static void handle_auth(struct hostapd_d +@@ -3032,15 +3032,6 @@ static void handle_auth(struct hostapd_d seq_ctrl); return; } diff --git a/package/network/services/hostapd/patches/991-Fix-OpenWrt-13156.patch b/package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch similarity index 86% rename from package/network/services/hostapd/patches/991-Fix-OpenWrt-13156.patch rename to package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch index 097d62abc0116d..a044409d2d813a 100644 --- a/package/network/services/hostapd/patches/991-Fix-OpenWrt-13156.patch +++ b/package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch @@ -20,7 +20,7 @@ Signed-off-by: Stijn Tintel --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -3564,6 +3564,8 @@ int hostapd_remove_iface(struct hapd_int +@@ -3646,6 +3646,8 @@ int hostapd_remove_iface(struct hapd_int void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta, int reassoc) { @@ -29,14 +29,14 @@ Signed-off-by: Stijn Tintel if (hapd->tkip_countermeasures) { hostapd_drv_sta_deauth(hapd, sta->addr, WLAN_REASON_MICHAEL_MIC_FAILURE); -@@ -3571,10 +3573,16 @@ void hostapd_new_assoc_sta(struct hostap +@@ -3653,10 +3655,16 @@ void hostapd_new_assoc_sta(struct hostap } #ifdef CONFIG_IEEE80211BE -- if (hapd->conf->mld_ap && sta->mld_info.mld_sta && +- if (ap_sta_is_mld(hapd, sta) && - sta->mld_assoc_link_id != hapd->mld_link_id) - return; -+ if (hapd->conf->mld_ap && sta->mld_info.mld_sta) { ++ if (ap_sta_is_mld(hapd, sta)) { + if (sta->mld_assoc_link_id == hapd->mld_link_id) { + mld_assoc_link_id = sta->mld_assoc_link_id; + } else { @@ -51,7 +51,7 @@ Signed-off-by: Stijn Tintel sta->post_csa_sa_query = 0; --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c -@@ -1318,9 +1318,6 @@ void ap_sta_set_authorized(struct hostap +@@ -1412,9 +1412,6 @@ bool ap_sta_set_authorized_flag(struct h mld_assoc_link_id = -2; } #endif /* CONFIG_IEEE80211BE */ diff --git a/package/network/services/hostapd/patches/050-build_fix.patch b/package/network/services/hostapd/patches/050-build_fix.patch deleted file mode 100644 index 8680b07c66a26f..00000000000000 --- a/package/network/services/hostapd/patches/050-build_fix.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/hostapd/Makefile -+++ b/hostapd/Makefile -@@ -324,6 +324,7 @@ ifdef CONFIG_FILS - CFLAGS += -DCONFIG_FILS - OBJS += ../src/ap/fils_hlp.o - NEED_SHA384=y -+NEED_HMAC_SHA384_KDF=y - NEED_AES_SIV=y - ifdef CONFIG_FILS_SK_PFS - CFLAGS += -DCONFIG_FILS_SK_PFS ---- a/wpa_supplicant/Makefile -+++ b/wpa_supplicant/Makefile -@@ -331,6 +331,7 @@ endif - ifdef CONFIG_FILS - CFLAGS += -DCONFIG_FILS - NEED_SHA384=y -+NEED_HMAC_SHA384_KDF=y - NEED_AES_SIV=y - ifdef CONFIG_FILS_SK_PFS - CFLAGS += -DCONFIG_FILS_SK_PFS diff --git a/package/network/services/hostapd/patches/992-nl80211-add-extra-ies-only-if-allowed-by-driver.patch b/package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch similarity index 92% rename from package/network/services/hostapd/patches/992-nl80211-add-extra-ies-only-if-allowed-by-driver.patch rename to package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch index c7b595da57dd54..de4d4ad3c2461c 100644 --- a/package/network/services/hostapd/patches/992-nl80211-add-extra-ies-only-if-allowed-by-driver.patch +++ b/package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch @@ -26,7 +26,7 @@ Signed-off-by: David Bauer --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -2283,6 +2283,9 @@ struct wpa_driver_capa { +@@ -2340,6 +2340,9 @@ struct wpa_driver_capa { /** Maximum number of iterations in a single scan plan */ u32 max_sched_scan_plan_iterations; @@ -38,7 +38,7 @@ Signed-off-by: David Bauer --- a/src/drivers/driver_nl80211_capa.c +++ b/src/drivers/driver_nl80211_capa.c -@@ -949,6 +949,10 @@ static int wiphy_info_handler(struct nl_ +@@ -972,6 +972,10 @@ static int wiphy_info_handler(struct nl_ nla_get_u32(tb[NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS]); } @@ -51,7 +51,7 @@ Signed-off-by: David Bauer nla_get_u8(tb[NL80211_ATTR_MAX_MATCH_SETS]); --- a/src/drivers/driver_nl80211_scan.c +++ b/src/drivers/driver_nl80211_scan.c -@@ -222,7 +222,7 @@ nl80211_scan_common(struct i802_bss *bss +@@ -221,7 +221,7 @@ nl80211_scan_common(struct i802_bss *bss wpa_printf(MSG_DEBUG, "nl80211: Passive scan requested"); } diff --git a/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch b/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch index 22107944dce7d5..b786d3bccb5af0 100644 --- a/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch +++ b/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch @@ -21,7 +21,7 @@ Signed-off-by: Glenn Strauss --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -745,6 +745,40 @@ endif +@@ -757,6 +757,40 @@ endif CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" endif @@ -62,7 +62,7 @@ Signed-off-by: Glenn Strauss ifeq ($(CONFIG_TLS), gnutls) ifndef CONFIG_CRYPTO # default to libgcrypt -@@ -924,9 +958,11 @@ endif +@@ -936,9 +970,11 @@ endif ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -74,7 +74,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_EAX AESOBJS += ../src/crypto/aes-eax.o NEED_AES_CTR=y -@@ -936,38 +972,48 @@ AESOBJS += ../src/crypto/aes-siv.o +@@ -948,38 +984,48 @@ AESOBJS += ../src/crypto/aes-siv.o NEED_AES_CTR=y endif ifdef NEED_AES_CTR @@ -123,7 +123,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_DEC ifdef CONFIG_INTERNAL_AES AESOBJS += ../src/crypto/aes-internal-dec.o -@@ -982,12 +1028,16 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -994,12 +1040,16 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -140,7 +140,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA1 SHA1OBJS += ../src/crypto/sha1-internal.o ifdef NEED_FIPS186_2_PRF -@@ -996,16 +1046,22 @@ endif +@@ -1008,16 +1058,22 @@ endif endif ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -163,7 +163,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_SHA1 OBJS += $(SHA1OBJS) -@@ -1015,11 +1071,13 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1027,11 +1083,13 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -177,7 +177,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_MD5 ifdef CONFIG_INTERNAL_MD5 -@@ -1058,56 +1116,81 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1070,56 +1128,81 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -259,7 +259,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA384 CFLAGS += -DCONFIG_INTERNAL_SHA384 -@@ -1152,11 +1235,13 @@ HOBJS += $(SHA1OBJS) +@@ -1164,11 +1247,13 @@ HOBJS += $(SHA1OBJS) ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), wolfssl) @@ -273,7 +273,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_RADIUS_SERVER CFLAGS += -DRADIUS_SERVER -@@ -1329,7 +1414,9 @@ NOBJS += ../src/utils/trace.o +@@ -1341,7 +1426,9 @@ NOBJS += ../src/utils/trace.o endif HOBJS += hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/utils/wpabuf.o ../src/crypto/milenage.o @@ -283,7 +283,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_AES HOBJS += ../src/crypto/aes-internal.o HOBJS += ../src/crypto/aes-internal-enc.o -@@ -1352,13 +1439,17 @@ SOBJS += ../src/common/sae.o +@@ -1364,13 +1451,17 @@ SOBJS += ../src/common/sae.o SOBJS += ../src/common/sae_pk.o SOBJS += ../src/common/dragonfly.o SOBJS += $(AESOBJS) @@ -326,7 +326,7 @@ Signed-off-by: Glenn Strauss # Driver interface for Host AP driver CONFIG_DRIVER_HOSTAP=y -@@ -278,6 +290,7 @@ CONFIG_IPV6=y +@@ -281,6 +293,7 @@ CONFIG_IPV6=y # openssl = OpenSSL (default) # gnutls = GnuTLS # internal = Internal TLSv1 implementation (experimental) @@ -7765,7 +7765,7 @@ Signed-off-by: Glenn Strauss CONFIG_SIM_SIMULATOR=y --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -1163,6 +1163,29 @@ endif +@@ -1229,6 +1229,29 @@ endif CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" endif @@ -7795,7 +7795,7 @@ Signed-off-by: Glenn Strauss ifeq ($(CONFIG_TLS), gnutls) ifndef CONFIG_CRYPTO # default to libgcrypt -@@ -1355,9 +1378,11 @@ endif +@@ -1421,9 +1444,11 @@ endif ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -7807,7 +7807,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP # Seems to be needed at least with BoringSSL NEED_INTERNAL_AES_WRAP=y -@@ -1371,9 +1396,11 @@ endif +@@ -1437,9 +1462,11 @@ endif ifdef NEED_INTERNAL_AES_WRAP ifneq ($(CONFIG_TLS), linux) @@ -7819,7 +7819,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_EAX AESOBJS += ../src/crypto/aes-eax.o NEED_AES_CTR=y -@@ -1383,35 +1410,45 @@ AESOBJS += ../src/crypto/aes-siv.o +@@ -1449,35 +1476,45 @@ AESOBJS += ../src/crypto/aes-siv.o NEED_AES_CTR=y endif ifdef NEED_AES_CTR @@ -7865,7 +7865,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_ENC ifdef CONFIG_INTERNAL_AES AESOBJS += ../src/crypto/aes-internal-enc.o -@@ -1426,12 +1463,16 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1492,12 +1529,16 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -7882,7 +7882,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA1 SHA1OBJS += ../src/crypto/sha1-internal.o ifdef NEED_FIPS186_2_PRF -@@ -1443,29 +1484,37 @@ CFLAGS += -DCONFIG_NO_PBKDF2 +@@ -1509,29 +1550,37 @@ CFLAGS += -DCONFIG_NO_PBKDF2 else ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -7920,7 +7920,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_MD5 ifdef CONFIG_INTERNAL_MD5 MD5OBJS += ../src/crypto/md5-internal.o -@@ -1520,12 +1569,17 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1586,12 +1635,17 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -7938,7 +7938,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA256 SHA256OBJS += ../src/crypto/sha256-internal.o endif -@@ -1538,50 +1592,68 @@ CFLAGS += -DCONFIG_INTERNAL_SHA512 +@@ -1604,50 +1658,68 @@ CFLAGS += -DCONFIG_INTERNAL_SHA512 SHA256OBJS += ../src/crypto/sha512-internal.o endif ifdef NEED_TLS_PRF_SHA256 @@ -8007,7 +8007,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_ASN1 OBJS += ../src/tls/asn1.o -@@ -1756,10 +1828,12 @@ ifdef CONFIG_FIPS +@@ -1822,10 +1894,12 @@ ifdef CONFIG_FIPS CFLAGS += -DCONFIG_FIPS ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -8041,7 +8041,7 @@ Signed-off-by: Glenn Strauss # Driver interface for generic Linux wireless extensions # Note: WEXT is deprecated in the current Linux kernel version and no new # functionality is added to it. nl80211-based interface is the new -@@ -326,6 +327,7 @@ CONFIG_BACKEND=file +@@ -329,6 +330,7 @@ CONFIG_BACKEND=file # openssl = OpenSSL (default) # gnutls = GnuTLS # internal = Internal TLSv1 implementation (experimental) diff --git a/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch b/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch index a48725264fd36a..c101fbf75ff1c8 100644 --- a/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch +++ b/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch @@ -12,7 +12,7 @@ Signed-off-by: Glenn Strauss --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -759,10 +759,6 @@ endif +@@ -771,10 +771,6 @@ endif OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o HOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o SOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o @@ -101,7 +101,7 @@ Signed-off-by: Glenn Strauss --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -1174,10 +1174,6 @@ endif +@@ -1240,10 +1240,6 @@ endif OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o OBJS_p += ../src/crypto/crypto_$(CONFIG_CRYPTO).o OBJS_priv += ../src/crypto/crypto_$(CONFIG_CRYPTO).o diff --git a/package/network/services/hostapd/patches/135-mbedtls-fix-owe-association.patch b/package/network/services/hostapd/patches/135-mbedtls-fix-owe-association.patch index 0c29432d3f83f3..3733f915054c3d 100644 --- a/package/network/services/hostapd/patches/135-mbedtls-fix-owe-association.patch +++ b/package/network/services/hostapd/patches/135-mbedtls-fix-owe-association.patch @@ -1,10 +1,18 @@ +From: David Bauer +Date: Tue, 24 Oct 2023 03:07:48 +0200 +Subject: [PATCH] hostapd: fix OWE association with mbedtls + The code for hostapd-mbedtls did not work when used for OWE association. -When handling association requests, the buffer offsets and length assumptions were incorrect, leading to never calculating the y point, thus denying association. +When handling association requests, the buffer offsets and length +assumptions were incorrect, leading to never calculating the y point, +thus denying association. -Also when crafting the association response, the buffer contained the trailing key-type. +Also when crafting the association response, the buffer contained the +trailing key-type. -Fix up both issues to adhere to the specification and make hostapd-mbedtls work with the OWE security type. +Fix up both issues to adhere to the specification and make +hostapd-mbedtls work with the OWE security type. --- a/src/crypto/crypto_mbedtls.c +++ b/src/crypto/crypto_mbedtls.c diff --git a/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch b/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch index e967cff427e177..32e8ec3a89a034 100644 --- a/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch +++ b/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch @@ -38,15 +38,15 @@ Signed-off-by: Glenn Strauss src/crypto/Makefile | 129 ++++++++++++++++++++- src/crypto/crypto_module_tests.c | 134 ++++++++++++++++++++++ src/tls/Makefile | 11 ++ - tests/Makefile | 75 +++++++++--- - tests/hwsim/example-hostapd.config | 11 +- - tests/hwsim/example-wpa_supplicant.config | 12 +- + tests/Makefile | 76 +++++++++--- + tests/hwsim/example-hostapd.config | 10 +- + tests/hwsim/example-wpa_supplicant.config | 11 +- tests/hwsim/test_ap_eap.py | 114 +++++++++++++----- tests/hwsim/test_ap_ft.py | 4 +- tests/hwsim/test_authsrv.py | 9 +- tests/hwsim/test_dpp.py | 19 ++- tests/hwsim/test_erp.py | 16 +-- - tests/hwsim/test_fils.py | 5 +- + tests/hwsim/test_fils.py | 4 + tests/hwsim/test_pmksa_cache.py | 4 +- tests/hwsim/test_sae.py | 7 ++ tests/hwsim/test_suite_b.py | 3 + @@ -56,12 +56,12 @@ Signed-off-by: Glenn Strauss tests/test-https.c | 12 +- tests/test-https_server.c | 12 +- wpa_supplicant/Makefile | 6 + - 22 files changed, 524 insertions(+), 91 deletions(-) + 22 files changed, 522 insertions(+), 91 deletions(-) create mode 100644 tests/test-crypto_module.c --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -696,6 +696,7 @@ CFLAGS += -DCONFIG_TLSV12 +@@ -708,6 +708,7 @@ CFLAGS += -DCONFIG_TLSV12 endif ifeq ($(CONFIG_TLS), wolfssl) @@ -69,7 +69,7 @@ Signed-off-by: Glenn Strauss CONFIG_CRYPTO=wolfssl ifdef TLS_FUNCS OBJS += ../src/crypto/tls_wolfssl.o -@@ -716,6 +717,7 @@ endif +@@ -728,6 +729,7 @@ endif endif ifeq ($(CONFIG_TLS), openssl) @@ -77,7 +77,7 @@ Signed-off-by: Glenn Strauss CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 CONFIG_CRYPTO=openssl ifdef TLS_FUNCS -@@ -746,6 +748,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF +@@ -758,6 +760,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF endif ifeq ($(CONFIG_TLS), mbedtls) @@ -85,7 +85,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=mbedtls endif -@@ -776,6 +779,7 @@ endif +@@ -788,6 +791,7 @@ endif endif ifeq ($(CONFIG_TLS), gnutls) @@ -93,7 +93,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO # default to libgcrypt CONFIG_CRYPTO=gnutls -@@ -806,6 +810,7 @@ endif +@@ -818,6 +822,7 @@ endif endif ifeq ($(CONFIG_TLS), internal) @@ -101,7 +101,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=internal endif -@@ -884,6 +889,7 @@ endif +@@ -896,6 +901,7 @@ endif endif ifeq ($(CONFIG_TLS), linux) @@ -271,7 +271,7 @@ Signed-off-by: Glenn Strauss endif --- a/src/crypto/crypto_module_tests.c +++ b/src/crypto/crypto_module_tests.c -@@ -2469,6 +2469,139 @@ static int test_hpke(void) +@@ -2470,6 +2470,139 @@ static int test_hpke(void) } @@ -411,7 +411,7 @@ Signed-off-by: Glenn Strauss static int test_ms_funcs(void) { #ifndef CONFIG_FIPS -@@ -2590,6 +2723,7 @@ int crypto_module_tests(void) +@@ -2591,6 +2724,7 @@ int crypto_module_tests(void) test_fips186_2_prf() || test_extract_expand_hkdf() || test_hpke() || @@ -444,23 +444,25 @@ Signed-off-by: Glenn Strauss include ../lib.rules --- a/tests/Makefile +++ b/tests/Makefile -@@ -1,8 +1,10 @@ +@@ -1,10 +1,12 @@ -ALL=test-base64 test-md4 test-milenage \ - test-rsa-sig-ver \ - test-sha1 \ - test-https test-https_server \ -- test-sha256 test-aes test-x509v3 test-list test-rc4 +- test-sha256 test-aes test-x509v3 test-list test-rc4 \ +RUN_TESTS= \ + test-list \ + test-md4 test-rc4 test-sha1 test-sha256 \ + test-milenage test-aes \ -+ test-crypto_module -+ -+ALL=$(RUN_TESTS) test-base64 test-https test-https_server ++ test-crypto_module \ + test-bss ++ALL=$(RUN_TESTS) test-base64 test-https test-https_server ++ include ../src/build.rules -@@ -24,13 +26,27 @@ CFLAGS += -DCONFIG_IEEE80211R_AP + ifdef LIBFUZZER +@@ -25,13 +27,27 @@ CFLAGS += -DCONFIG_IEEE80211R_AP CFLAGS += -DCONFIG_IEEE80211R CFLAGS += -DCONFIG_TDLS @@ -490,7 +492,7 @@ Signed-off-by: Glenn Strauss _OBJS_VAR := LLIBS include ../src/objs.mk -@@ -42,12 +58,43 @@ include ../src/objs.mk +@@ -43,12 +59,43 @@ include ../src/objs.mk LIBS = $(SLIBS) $(DLIBS) LLIBS = -Wl,--start-group $(DLIBS) -Wl,--end-group $(SLIBS) @@ -534,8 +536,8 @@ Signed-off-by: Glenn Strauss test-base64: $(call BUILDOBJ,test-base64.o) $(LIBS) $(LDO) $(LDFLAGS) -o $@ $^ $(LLIBS) -@@ -83,17 +130,11 @@ test-x509v3: $(call BUILDOBJ,test-x509v3 - +@@ -141,18 +188,11 @@ test-bss: $(call BUILDOBJ,test-bss.o) $( + $(LDO) $(LDFLAGS) -o $@ $< $(LLIBS) $(WPA_CFLAGS) $(WPA_OBJS) $(LIBS) run-tests: $(ALL) - ./test-aes @@ -545,6 +547,7 @@ Signed-off-by: Glenn Strauss - ./test-rsa-sig-ver - ./test-sha1 - ./test-sha256 +- ./test-bss + @set -ex; for i in $(RUN_TESTS); do ./$$i; done @echo @echo All tests completed successfully. @@ -575,14 +578,6 @@ Signed-off-by: Glenn Strauss CONFIG_EAP_EKE=y CONFIG_PKCS12=y CONFIG_RADIUS_SERVER=y -@@ -89,6 +81,7 @@ CFLAGS += -DCONFIG_RADIUS_TEST - CONFIG_MODULE_TESTS=y - - CONFIG_SUITEB=y -+CONFIG_SUITEB192=$(if $(filter openssl mbedtls,$(CONFIG_TLS)),y,) - - # AddressSanitizer (ASan) can be enabled by uncommenting the following lines. - # This can be used as a more efficient memory error detector than valgrind --- a/tests/hwsim/example-wpa_supplicant.config +++ b/tests/hwsim/example-wpa_supplicant.config @@ -35,16 +35,7 @@ LIBS += -rdynamic @@ -603,14 +598,6 @@ Signed-off-by: Glenn Strauss CONFIG_USIM_SIMULATOR=y CONFIG_SIM_SIMULATOR=y -@@ -137,6 +128,7 @@ CONFIG_TESTING_OPTIONS=y - CONFIG_MODULE_TESTS=y - - CONFIG_SUITEB=y -+CONFIG_SUITEB192=$(if $(filter openssl mbedtls,$(CONFIG_TLS)),y,) - - # AddressSanitizer (ASan) can be enabled by uncommenting the following lines. - # This can be used as a more efficient memory error detector than valgrind --- a/tests/hwsim/test_ap_eap.py +++ b/tests/hwsim/test_ap_eap.py @@ -42,20 +42,42 @@ def check_eap_capa(dev, method): @@ -708,10 +695,10 @@ Signed-off-by: Glenn Strauss tls = dev.request("GET tls_library") + if tls.startswith("mbed TLS"): + raise HwsimSkip("TLS v1.3 not supported") - if "run=OpenSSL 1.1.1" not in tls and "run=OpenSSL 3.0" not in tls and "wolfSSL" not in tls: - raise HwsimSkip("TLS v1.3 not supported") - -@@ -118,11 +157,15 @@ def check_pkcs12_support(dev): + ok = ['run=OpenSSL 1.1.1', 'run=OpenSSL 3.0', 'run=OpenSSL 3.1', + 'run=OpenSSL 3.2', 'wolfSSL'] + for s in ok: +@@ -122,11 +161,15 @@ def check_pkcs12_support(dev): # raise HwsimSkip("PKCS#12 not supported with this TLS library: " + tls) if tls.startswith("wolfSSL"): raise HwsimSkip("PKCS#12 not supported with this TLS library: " + tls) @@ -727,7 +714,7 @@ Signed-off-by: Glenn Strauss def check_ec_support(dev): tls = dev.request("GET tls_library") -@@ -1595,7 +1638,7 @@ def test_ap_wpa2_eap_ttls_pap_subject_ma +@@ -1741,7 +1784,7 @@ def test_ap_wpa2_eap_ttls_pap_subject_ma eap_connect(dev[0], hapd, "TTLS", "pap user", anonymous_identity="ttls", password="password", ca_cert="auth_serv/ca.pem", phase2="auth=PAP", @@ -736,7 +723,7 @@ Signed-off-by: Glenn Strauss altsubject_match="EMAIL:noone@example.com;DNS:server.w1.fi;URI:http://example.com/") eap_reauth(dev[0], "TTLS") -@@ -2830,6 +2873,7 @@ def test_ap_wpa2_eap_tls_neg_domain_matc +@@ -2976,6 +3019,7 @@ def test_ap_wpa2_eap_tls_neg_domain_matc def test_ap_wpa2_eap_tls_neg_subject_match(dev, apdev): """WPA2-Enterprise negative test - subject mismatch""" @@ -744,7 +731,7 @@ Signed-off-by: Glenn Strauss params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap") hostapd.add_ap(apdev[0], params) dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="TTLS", -@@ -2890,6 +2934,7 @@ def test_ap_wpa2_eap_tls_neg_subject_mat +@@ -3036,6 +3080,7 @@ def test_ap_wpa2_eap_tls_neg_subject_mat def test_ap_wpa2_eap_tls_neg_altsubject_match(dev, apdev): """WPA2-Enterprise negative test - altsubject mismatch""" @@ -752,7 +739,7 @@ Signed-off-by: Glenn Strauss params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap") hostapd.add_ap(apdev[0], params) -@@ -3430,7 +3475,7 @@ def test_ap_wpa2_eap_ikev2_oom(dev, apde +@@ -3582,7 +3627,7 @@ def test_ap_wpa2_eap_ikev2_oom(dev, apde dev[0].request("REMOVE_NETWORK all") tls = dev[0].request("GET tls_library") @@ -761,7 +748,7 @@ Signed-off-by: Glenn Strauss tests = [(1, "os_get_random;dh_init")] else: tests = [(1, "crypto_dh_init;dh_init")] -@@ -4744,7 +4789,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca +@@ -4896,7 +4941,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca params["private_key"] = "auth_serv/iCA-server/server.key" hostapd.add_ap(apdev[0], params) tls = dev[0].request("GET tls_library") @@ -770,7 +757,7 @@ Signed-off-by: Glenn Strauss ca_cert = "auth_serv/iCA-user/ca-and-root.pem" client_cert = "auth_serv/iCA-user/user_and_ica.pem" else: -@@ -4810,6 +4855,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca +@@ -4962,6 +5007,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca run_ap_wpa2_eap_tls_intermediate_ca_ocsp(dev, apdev, params, "-sha1") def run_ap_wpa2_eap_tls_intermediate_ca_ocsp(dev, apdev, params, md): @@ -778,7 +765,7 @@ Signed-off-by: Glenn Strauss params = int_eap_server_params() params["ca_cert"] = "auth_serv/iCA-server/ca-and-root.pem" params["server_cert"] = "auth_serv/iCA-server/server.pem" -@@ -4819,7 +4865,7 @@ def run_ap_wpa2_eap_tls_intermediate_ca_ +@@ -4971,7 +5017,7 @@ def run_ap_wpa2_eap_tls_intermediate_ca_ try: hostapd.add_ap(apdev[0], params) tls = dev[0].request("GET tls_library") @@ -787,7 +774,7 @@ Signed-off-by: Glenn Strauss ca_cert = "auth_serv/iCA-user/ca-and-root.pem" client_cert = "auth_serv/iCA-user/user_and_ica.pem" else: -@@ -4855,7 +4901,7 @@ def run_ap_wpa2_eap_tls_intermediate_ca_ +@@ -5007,7 +5053,7 @@ def run_ap_wpa2_eap_tls_intermediate_ca_ try: hostapd.add_ap(apdev[0], params) tls = dev[0].request("GET tls_library") @@ -796,7 +783,7 @@ Signed-off-by: Glenn Strauss ca_cert = "auth_serv/iCA-user/ca-and-root.pem" client_cert = "auth_serv/iCA-user/user_and_ica.pem" else: -@@ -4905,7 +4951,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca +@@ -5057,7 +5103,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca try: hostapd.add_ap(apdev[0], params) tls = dev[0].request("GET tls_library") @@ -805,7 +792,7 @@ Signed-off-by: Glenn Strauss ca_cert = "auth_serv/iCA-user/ca-and-root.pem" client_cert = "auth_serv/iCA-user/user_and_ica.pem" else: -@@ -4972,7 +5018,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca +@@ -5124,7 +5170,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca hostapd.add_ap(apdev[0], params) tls = dev[0].request("GET tls_library") @@ -814,7 +801,7 @@ Signed-off-by: Glenn Strauss ca_cert = "auth_serv/iCA-user/ca-and-root.pem" client_cert = "auth_serv/iCA-user/user_and_ica.pem" else: -@@ -5230,6 +5276,7 @@ def test_ap_wpa2_eap_ttls_server_cert_ek +@@ -5382,6 +5428,7 @@ def test_ap_wpa2_eap_ttls_server_cert_ek def test_ap_wpa2_eap_ttls_server_pkcs12(dev, apdev): """WPA2-Enterprise using EAP-TTLS and server PKCS#12 file""" @@ -822,7 +809,7 @@ Signed-off-by: Glenn Strauss skip_with_fips(dev[0]) params = int_eap_server_params() del params["server_cert"] -@@ -5242,6 +5289,7 @@ def test_ap_wpa2_eap_ttls_server_pkcs12( +@@ -5394,6 +5441,7 @@ def test_ap_wpa2_eap_ttls_server_pkcs12( def test_ap_wpa2_eap_ttls_server_pkcs12_extra(dev, apdev): """EAP-TTLS and server PKCS#12 file with extra certs""" @@ -830,7 +817,7 @@ Signed-off-by: Glenn Strauss skip_with_fips(dev[0]) params = int_eap_server_params() del params["server_cert"] -@@ -5264,6 +5312,7 @@ def test_ap_wpa2_eap_ttls_dh_params_serv +@@ -5416,6 +5464,7 @@ def test_ap_wpa2_eap_ttls_dh_params_serv def test_ap_wpa2_eap_ttls_dh_params_dsa_server(dev, apdev): """WPA2-Enterprise using EAP-TTLS and alternative server dhparams (DSA)""" @@ -838,7 +825,7 @@ Signed-off-by: Glenn Strauss params = int_eap_server_params() params["dh_file"] = "auth_serv/dsaparam.pem" hapd = hostapd.add_ap(apdev[0], params) -@@ -5575,8 +5624,8 @@ def test_ap_wpa2_eap_non_ascii_identity2 +@@ -5727,8 +5776,8 @@ def test_ap_wpa2_eap_non_ascii_identity2 def test_openssl_cipher_suite_config_wpas(dev, apdev): """OpenSSL cipher suite configuration on wpa_supplicant""" tls = dev[0].request("GET tls_library") @@ -849,7 +836,7 @@ Signed-off-by: Glenn Strauss params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap") hapd = hostapd.add_ap(apdev[0], params) eap_connect(dev[0], hapd, "TTLS", "pap user", -@@ -5602,14 +5651,14 @@ def test_openssl_cipher_suite_config_wpa +@@ -5754,14 +5803,14 @@ def test_openssl_cipher_suite_config_wpa def test_openssl_cipher_suite_config_hapd(dev, apdev): """OpenSSL cipher suite configuration on hostapd""" tls = dev[0].request("GET tls_library") @@ -868,7 +855,7 @@ Signed-off-by: Glenn Strauss eap_connect(dev[0], hapd, "TTLS", "pap user", anonymous_identity="ttls", password="password", ca_cert="auth_serv/ca.pem", phase2="auth=PAP") -@@ -6051,13 +6100,17 @@ def test_ap_wpa2_eap_tls_versions(dev, a +@@ -6207,13 +6256,17 @@ def test_ap_wpa2_eap_tls_versions(dev, a check_tls_ver(dev[0], hapd, "tls_disable_tlsv1_0=1 tls_disable_tlsv1_1=1", "TLSv1.2") @@ -888,10 +875,10 @@ Signed-off-by: Glenn Strauss + "tls_disable_tlsv1_0=1 tls_disable_tlsv1_1=0 tls_disable_tlsv1_2=1", "TLSv1.1") + check_tls_ver(dev[2], hapd, + "tls_disable_tlsv1_0=0 tls_disable_tlsv1_1=1 tls_disable_tlsv1_2=1", "TLSv1") - if "run=OpenSSL 1.1.1" in tls or "run=OpenSSL 3.0" in tls: + if "run=OpenSSL 1.1.1" in tls or "run=OpenSSL 3." in tls: check_tls_ver(dev[0], hapd, "tls_disable_tlsv1_0=1 tls_disable_tlsv1_1=1 tls_disable_tlsv1_2=1 tls_disable_tlsv1_3=0", "TLSv1.3") -@@ -6079,6 +6132,11 @@ def test_ap_wpa2_eap_tls_versions_server +@@ -6235,6 +6288,11 @@ def test_ap_wpa2_eap_tls_versions_server tests = [("TLSv1", "[ENABLE-TLSv1.0][DISABLE-TLSv1.1][DISABLE-TLSv1.2][DISABLE-TLSv1.3]"), ("TLSv1.1", "[ENABLE-TLSv1.0][ENABLE-TLSv1.1][DISABLE-TLSv1.2][DISABLE-TLSv1.3]"), ("TLSv1.2", "[ENABLE-TLSv1.0][ENABLE-TLSv1.1][ENABLE-TLSv1.2][DISABLE-TLSv1.3]")] @@ -903,7 +890,7 @@ Signed-off-by: Glenn Strauss for exp, flags in tests: hapd.disable() hapd.set("tls_flags", flags) -@@ -7138,6 +7196,7 @@ def test_ap_wpa2_eap_assoc_rsn(dev, apde +@@ -7305,6 +7363,7 @@ def test_ap_wpa2_eap_assoc_rsn(dev, apde def test_eap_tls_ext_cert_check(dev, apdev): """EAP-TLS and external server certification validation""" # With internal server certificate chain validation @@ -911,7 +898,7 @@ Signed-off-by: Glenn Strauss id = dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="TLS", identity="tls user", ca_cert="auth_serv/ca.pem", -@@ -7150,6 +7209,7 @@ def test_eap_tls_ext_cert_check(dev, apd +@@ -7317,6 +7376,7 @@ def test_eap_tls_ext_cert_check(dev, apd def test_eap_ttls_ext_cert_check(dev, apdev): """EAP-TTLS and external server certification validation""" # Without internal server certificate chain validation @@ -919,7 +906,7 @@ Signed-off-by: Glenn Strauss id = dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="TTLS", identity="pap user", anonymous_identity="ttls", password="password", phase2="auth=PAP", -@@ -7160,6 +7220,7 @@ def test_eap_ttls_ext_cert_check(dev, ap +@@ -7327,6 +7387,7 @@ def test_eap_ttls_ext_cert_check(dev, ap def test_eap_peap_ext_cert_check(dev, apdev): """EAP-PEAP and external server certification validation""" # With internal server certificate chain validation @@ -927,7 +914,7 @@ Signed-off-by: Glenn Strauss id = dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="PEAP", identity="user", anonymous_identity="peap", ca_cert="auth_serv/ca.pem", -@@ -7170,6 +7231,7 @@ def test_eap_peap_ext_cert_check(dev, ap +@@ -7337,6 +7398,7 @@ def test_eap_peap_ext_cert_check(dev, ap def test_eap_fast_ext_cert_check(dev, apdev): """EAP-FAST and external server certification validation""" @@ -935,7 +922,7 @@ Signed-off-by: Glenn Strauss check_eap_capa(dev[0], "FAST") # With internal server certificate chain validation dev[0].request("SET blob fast_pac_auth_ext ") -@@ -7184,10 +7246,6 @@ def test_eap_fast_ext_cert_check(dev, ap +@@ -7351,10 +7413,6 @@ def test_eap_fast_ext_cert_check(dev, ap run_ext_cert_check(dev, apdev, id) def run_ext_cert_check(dev, apdev, net_id): @@ -948,7 +935,7 @@ Signed-off-by: Glenn Strauss --- a/tests/hwsim/test_ap_ft.py +++ b/tests/hwsim/test_ap_ft.py -@@ -2474,11 +2474,11 @@ def test_ap_ft_ap_oom5(dev, apdev): +@@ -2486,11 +2486,11 @@ def test_ap_ft_ap_oom5(dev, apdev): # This will fail to roam dev[0].roam(bssid1, check_bssid=False) @@ -992,7 +979,7 @@ Signed-off-by: Glenn Strauss raise HwsimSkip("Crypto library does not support Brainpool curves: " + tls) capa = dev.request("GET_CAPABILITY dpp") ver = 1 -@@ -3892,6 +3893,9 @@ def test_dpp_proto_auth_req_no_i_proto_k +@@ -3902,6 +3903,9 @@ def test_dpp_proto_auth_req_no_i_proto_k def test_dpp_proto_auth_req_invalid_i_proto_key(dev, apdev): """DPP protocol testing - invalid I-proto key in Auth Req""" @@ -1002,7 +989,7 @@ Signed-off-by: Glenn Strauss run_dpp_proto_auth_req_missing(dev, 66, "Invalid Initiator Protocol Key") def test_dpp_proto_auth_req_no_i_nonce(dev, apdev): -@@ -3987,7 +3991,12 @@ def test_dpp_proto_auth_resp_no_r_proto_ +@@ -3997,7 +4001,12 @@ def test_dpp_proto_auth_resp_no_r_proto_ def test_dpp_proto_auth_resp_invalid_r_proto_key(dev, apdev): """DPP protocol testing - invalid R-Proto Key in Auth Resp""" @@ -1016,7 +1003,7 @@ Signed-off-by: Glenn Strauss def test_dpp_proto_auth_resp_no_r_nonce(dev, apdev): """DPP protocol testing - no R-nonce in Auth Resp""" -@@ -4349,11 +4358,17 @@ def test_dpp_proto_pkex_exchange_resp_in +@@ -4359,11 +4368,17 @@ def test_dpp_proto_pkex_exchange_resp_in def test_dpp_proto_pkex_cr_req_invalid_bootstrap_key(dev, apdev): """DPP protocol testing - invalid Bootstrap Key in PKEX Commit-Reveal Request""" @@ -1092,21 +1079,20 @@ Signed-off-by: Glenn Strauss dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="TTLS", --- a/tests/hwsim/test_fils.py +++ b/tests/hwsim/test_fils.py -@@ -1422,7 +1422,10 @@ def run_fils_sk_pfs(dev, apdev, group, p - check_erp_capa(dev[0]) - - tls = dev[0].request("GET tls_library") -- if not tls.startswith("wolfSSL"): -+ if tls.startswith("mbed TLS"): +@@ -1472,6 +1472,10 @@ def check_ec_group(dev, group): + tls = dev.request("GET tls_library") + if tls.startswith("wolfSSL"): + return ++ elif tls.startswith("mbed TLS"): + if int(group) == 27: + raise HwsimSkip("Brainpool EC group 27 not supported by mbed TLS") -+ elif not tls.startswith("wolfSSL"): - if int(group) in [25]: - if not (tls.startswith("OpenSSL") and ("build=OpenSSL 1.0.2" in tls or "build=OpenSSL 1.1" in tls or "build=OpenSSL 3.0" in tls) and ("run=OpenSSL 1.0.2" in tls or "run=OpenSSL 1.1" in tls or "run=OpenSSL 3.0" in tls)): - raise HwsimSkip("EC group not supported") ++ return + if int(group) in [25]: + if not (tls.startswith("OpenSSL") and ("build=OpenSSL 1.0.2" in tls or "build=OpenSSL 1.1" in tls or "build=OpenSSL 3." in tls) and ("run=OpenSSL 1.0.2" in tls or "run=OpenSSL 1.1" in tls or "run=OpenSSL 3." in tls)): + raise HwsimSkip("EC group not supported") --- a/tests/hwsim/test_pmksa_cache.py +++ b/tests/hwsim/test_pmksa_cache.py -@@ -955,7 +955,7 @@ def test_pmksa_cache_preauth_wpas_oom(de +@@ -958,7 +958,7 @@ def test_pmksa_cache_preauth_wpas_oom(de eap_connect(dev[0], hapd, "PAX", "pax.user@example.com", password_hex="0123456789abcdef0123456789abcdef", bssid=apdev[0]['bssid']) @@ -1115,7 +1101,7 @@ Signed-off-by: Glenn Strauss with alloc_fail(dev[0], i, "rsn_preauth_init"): res = dev[0].request("PREAUTH f2:11:22:33:44:55").strip() logger.info("Iteration %d - PREAUTH command results: %s" % (i, res)) -@@ -963,7 +963,7 @@ def test_pmksa_cache_preauth_wpas_oom(de +@@ -966,7 +966,7 @@ def test_pmksa_cache_preauth_wpas_oom(de state = dev[0].request('GET_ALLOC_FAIL') if state.startswith('0:'): break @@ -1126,7 +1112,7 @@ Signed-off-by: Glenn Strauss """PMKSA cache control interface operations""" --- a/tests/hwsim/test_sae.py +++ b/tests/hwsim/test_sae.py -@@ -177,6 +177,11 @@ def test_sae_groups(dev, apdev): +@@ -178,6 +178,11 @@ def test_sae_groups(dev, apdev): if tls.startswith("OpenSSL") and "run=OpenSSL 1." in tls: logger.info("Add Brainpool EC groups since OpenSSL is new enough") sae_groups += [27, 28, 29, 30] @@ -1138,7 +1124,7 @@ Signed-off-by: Glenn Strauss heavy_groups = [14, 15, 16] suitable_groups = [15, 16, 17, 18, 19, 20, 21] groups = [str(g) for g in sae_groups] -@@ -2193,6 +2198,8 @@ def run_sae_pwe_group(dev, apdev, group) +@@ -2194,6 +2199,8 @@ def run_sae_pwe_group(dev, apdev, group) logger.info("Add Brainpool EC groups since OpenSSL is new enough") elif tls.startswith("wolfSSL"): logger.info("Make sure Brainpool EC groups were enabled when compiling wolfSSL") @@ -1179,7 +1165,7 @@ Signed-off-by: Glenn Strauss res = dev[0].request(cmd) --- a/tests/hwsim/utils.py +++ b/tests/hwsim/utils.py -@@ -141,7 +141,13 @@ def check_imsi_privacy_support(dev): +@@ -145,7 +145,13 @@ def check_imsi_privacy_support(dev): def check_tls_tod(dev): tls = dev.request("GET tls_library") @@ -1308,7 +1294,7 @@ Signed-off-by: Glenn Strauss if (need_more_data) { --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -1122,6 +1122,7 @@ CFLAGS += -DCONFIG_TLSV12 +@@ -1188,6 +1188,7 @@ TLS_FUNCS=y endif ifeq ($(CONFIG_TLS), wolfssl) @@ -1316,7 +1302,7 @@ Signed-off-by: Glenn Strauss ifdef TLS_FUNCS CFLAGS += -DWOLFSSL_DER_LOAD OBJS += ../src/crypto/tls_wolfssl.o -@@ -1137,6 +1138,7 @@ LIBS_p += -lwolfssl -lm +@@ -1203,6 +1204,7 @@ LIBS_p += -lwolfssl -lm endif ifeq ($(CONFIG_TLS), openssl) @@ -1324,7 +1310,7 @@ Signed-off-by: Glenn Strauss CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 ifdef TLS_FUNCS CFLAGS += -DEAP_TLS_OPENSSL -@@ -1164,6 +1166,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF +@@ -1230,6 +1232,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF endif ifeq ($(CONFIG_TLS), mbedtls) @@ -1332,7 +1318,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=mbedtls endif -@@ -1183,6 +1186,7 @@ endif +@@ -1249,6 +1252,7 @@ endif endif ifeq ($(CONFIG_TLS), gnutls) @@ -1340,7 +1326,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO # default to libgcrypt CONFIG_CRYPTO=gnutls -@@ -1213,6 +1217,7 @@ endif +@@ -1279,6 +1283,7 @@ endif endif ifeq ($(CONFIG_TLS), internal) @@ -1348,7 +1334,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=internal endif -@@ -1293,6 +1298,7 @@ endif +@@ -1359,6 +1364,7 @@ endif endif ifeq ($(CONFIG_TLS), linux) diff --git a/package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch b/package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch index b0151b071f6aab..96f674a77d516f 100644 --- a/package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch +++ b/package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch @@ -21,15 +21,15 @@ operation information element instead. Signed-off-by: P Praneesh --- hostapd/config_file.c | 2 ++ - src/ap/ieee802_11_ht.c | 7 +++++++ - src/ap/ieee802_11_vht.c | 16 ++++++++++++++++ + src/ap/ieee802_11_ht.c | 9 +++++++++ + src/ap/ieee802_11_vht.c | 17 +++++++++++++++++ src/common/hw_features_common.c | 1 + - src/common/ieee802_11_defs.h | 1 + - 5 files changed, 27 insertions(+) + src/common/ieee802_11_defs.h | 2 ++ + 5 files changed, 31 insertions(+) --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -1153,6 +1153,8 @@ static int hostapd_config_vht_capab(stru +@@ -1229,6 +1229,8 @@ static int hostapd_config_vht_capab(stru conf->vht_capab |= VHT_CAP_RX_ANTENNA_PATTERN; if (os_strstr(capab, "[TX-ANTENNA-PATTERN]")) conf->vht_capab |= VHT_CAP_TX_ANTENNA_PATTERN; @@ -66,7 +66,7 @@ Signed-off-by: P Praneesh return pos; --- a/src/ap/ieee802_11_vht.c +++ b/src/ap/ieee802_11_vht.c -@@ -25,6 +25,7 @@ u8 * hostapd_eid_vht_capabilities(struct +@@ -26,6 +26,7 @@ u8 * hostapd_eid_vht_capabilities(struct struct ieee80211_vht_capabilities *cap; struct hostapd_hw_modes *mode = hapd->iface->current_mode; u8 *pos = eid; @@ -74,7 +74,7 @@ Signed-off-by: P Praneesh if (!mode || is_6ghz_op_class(hapd->iconf->op_class)) return eid; -@@ -62,6 +63,17 @@ u8 * hostapd_eid_vht_capabilities(struct +@@ -63,6 +64,17 @@ u8 * hostapd_eid_vht_capabilities(struct host_to_le32(nsts << VHT_CAP_BEAMFORMEE_STS_OFFSET); } @@ -92,7 +92,7 @@ Signed-off-by: P Praneesh /* Supported MCS set comes from hw */ os_memcpy(&cap->vht_supported_mcs_set, mode->vht_mcs_set, 8); -@@ -74,6 +86,7 @@ u8 * hostapd_eid_vht_capabilities(struct +@@ -75,6 +87,7 @@ u8 * hostapd_eid_vht_capabilities(struct u8 * hostapd_eid_vht_operation(struct hostapd_data *hapd, u8 *eid) { struct ieee80211_vht_operation *oper; @@ -100,7 +100,7 @@ Signed-off-by: P Praneesh u8 *pos = eid; enum oper_chan_width oper_chwidth = hostapd_get_oper_chwidth(hapd->iconf); -@@ -106,6 +119,7 @@ u8 * hostapd_eid_vht_operation(struct ho +@@ -110,6 +123,7 @@ u8 * hostapd_eid_vht_operation(struct ho oper->vht_op_info_chan_center_freq_seg1_idx = seg1; oper->vht_op_info_chwidth = oper_chwidth; @@ -108,7 +108,7 @@ Signed-off-by: P Praneesh if (oper_chwidth == CONF_OPER_CHWIDTH_160MHZ) { /* * Convert 160 MHz channel width to new style as interop -@@ -119,6 +133,9 @@ u8 * hostapd_eid_vht_operation(struct ho +@@ -123,6 +137,9 @@ u8 * hostapd_eid_vht_operation(struct ho oper->vht_op_info_chan_center_freq_seg0_idx -= 8; else oper->vht_op_info_chan_center_freq_seg0_idx += 8; @@ -120,7 +120,7 @@ Signed-off-by: P Praneesh * Convert 80+80 MHz channel width to new style as interop --- a/src/common/hw_features_common.c +++ b/src/common/hw_features_common.c -@@ -811,6 +811,7 @@ int ieee80211ac_cap_check(u32 hw, u32 co +@@ -898,6 +898,7 @@ int ieee80211ac_cap_check(u32 hw, u32 co VHT_CAP_CHECK(VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB); VHT_CAP_CHECK(VHT_CAP_RX_ANTENNA_PATTERN); VHT_CAP_CHECK(VHT_CAP_TX_ANTENNA_PATTERN); @@ -130,7 +130,7 @@ Signed-off-by: P Praneesh #undef VHT_CAP_CHECK_MAX --- a/src/common/ieee802_11_defs.h +++ b/src/common/ieee802_11_defs.h -@@ -1349,6 +1349,8 @@ struct ieee80211_ampe_ie { +@@ -1397,6 +1397,8 @@ struct ieee80211_ampe_ie { #define VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB ((u32) BIT(26) | BIT(27)) #define VHT_CAP_RX_ANTENNA_PATTERN ((u32) BIT(28)) #define VHT_CAP_TX_ANTENNA_PATTERN ((u32) BIT(29)) diff --git a/package/network/services/hostapd/patches/180-driver_nl80211-fix-setting-QoS-map-on-secondary-BSSs.patch b/package/network/services/hostapd/patches/180-driver_nl80211-fix-setting-QoS-map-on-secondary-BSSs.patch deleted file mode 100644 index 4929c581ce2bde..00000000000000 --- a/package/network/services/hostapd/patches/180-driver_nl80211-fix-setting-QoS-map-on-secondary-BSSs.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Felix Fietkau -Date: Thu, 14 Sep 2023 10:53:50 +0200 -Subject: [PATCH] driver_nl80211: fix setting QoS map on secondary BSSs - -The setting is per-BSS, not per PHY - -Signed-off-by: Felix Fietkau ---- - ---- a/src/drivers/driver_nl80211.c -+++ b/src/drivers/driver_nl80211.c -@@ -11341,7 +11341,7 @@ static int nl80211_set_qos_map(void *pri - wpa_hexdump(MSG_DEBUG, "nl80211: Setting QoS Map", - qos_map_set, qos_map_set_len); - -- if (!(msg = nl80211_drv_msg(drv, 0, NL80211_CMD_SET_QOS_MAP)) || -+ if (!(msg = nl80211_bss_msg(bss, 0, NL80211_CMD_SET_QOS_MAP)) || - nla_put(msg, NL80211_ATTR_QOS_MAP, qos_map_set_len, qos_map_set)) { - nlmsg_free(msg); - return -ENOBUFS; diff --git a/package/network/services/hostapd/patches/181-driver_nl80211-update-drv-ifindex-on-removing-the-fi.patch b/package/network/services/hostapd/patches/181-driver_nl80211-update-drv-ifindex-on-removing-the-fi.patch index adfb21fb471a49..b54abecc4f7768 100644 --- a/package/network/services/hostapd/patches/181-driver_nl80211-update-drv-ifindex-on-removing-the-fi.patch +++ b/package/network/services/hostapd/patches/181-driver_nl80211-update-drv-ifindex-on-removing-the-fi.patch @@ -8,7 +8,7 @@ Signed-off-by: Felix Fietkau --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -8867,6 +8867,7 @@ static int wpa_driver_nl80211_if_remove( +@@ -8985,6 +8985,7 @@ static int wpa_driver_nl80211_if_remove( if (drv->first_bss->next) { drv->first_bss = drv->first_bss->next; drv->ctx = drv->first_bss->ctx; diff --git a/package/network/services/hostapd/patches/182-nl80211-move-nl80211_put_freq_params-call-outside-of.patch b/package/network/services/hostapd/patches/182-nl80211-move-nl80211_put_freq_params-call-outside-of.patch index 395c645954247c..e875a82aea778d 100644 --- a/package/network/services/hostapd/patches/182-nl80211-move-nl80211_put_freq_params-call-outside-of.patch +++ b/package/network/services/hostapd/patches/182-nl80211-move-nl80211_put_freq_params-call-outside-of.patch @@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -5226,6 +5226,9 @@ static int wpa_driver_nl80211_set_ap(voi +@@ -5315,6 +5315,9 @@ static int wpa_driver_nl80211_set_ap(voi nla_nest_end(msg, ftm); } @@ -22,13 +22,13 @@ Signed-off-by: Felix Fietkau #ifdef CONFIG_IEEE80211AX if (params->he_spr_ctrl) { struct nlattr *spr; -@@ -5260,9 +5263,6 @@ static int wpa_driver_nl80211_set_ap(voi +@@ -5349,9 +5352,6 @@ static int wpa_driver_nl80211_set_ap(voi nla_nest_end(msg, spr); } - if (params->freq && nl80211_put_freq_params(msg, params->freq) < 0) - goto fail; - - if (params->freq && params->freq->he_enabled) { + if (params->freq && params->freq->he_enabled && + nl80211_attr_supported(drv, NL80211_ATTR_HE_BSS_COLOR)) { struct nlattr *bss_color; - diff --git a/package/network/services/hostapd/patches/183-hostapd-cancel-channel_list_update_timeout-in-hostap.patch b/package/network/services/hostapd/patches/183-hostapd-cancel-channel_list_update_timeout-in-hostap.patch index fe81318385f15a..4d1af1f5c0c6f5 100644 --- a/package/network/services/hostapd/patches/183-hostapd-cancel-channel_list_update_timeout-in-hostap.patch +++ b/package/network/services/hostapd/patches/183-hostapd-cancel-channel_list_update_timeout-in-hostap.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -569,6 +569,7 @@ static void sta_track_deinit(struct host +@@ -656,6 +656,7 @@ static void sta_track_deinit(struct host void hostapd_cleanup_iface_partial(struct hostapd_iface *iface) { wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface); @@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau #ifdef NEED_AP_MLME hostapd_stop_setup_timers(iface); #endif /* NEED_AP_MLME */ -@@ -598,7 +599,6 @@ void hostapd_cleanup_iface_partial(struc +@@ -685,7 +686,6 @@ void hostapd_cleanup_iface_partial(struc static void hostapd_cleanup_iface(struct hostapd_iface *iface) { wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface); diff --git a/package/network/services/hostapd/patches/200-multicall.patch b/package/network/services/hostapd/patches/200-multicall.patch index e3ed00f2ded2a4..1a193b51bb1e19 100644 --- a/package/network/services/hostapd/patches/200-multicall.patch +++ b/package/network/services/hostapd/patches/200-multicall.patch @@ -1,3 +1,10 @@ +From: Felix Fietkau +Date: Sat, 23 Jan 2010 08:28:26 +0000 +Subject: [PATCH] Add option to build a multicall binary + +This allows building both hostapd and wpa_supplicant as a single binary +(wpad). + --- a/hostapd/Makefile +++ b/hostapd/Makefile @@ -1,6 +1,7 @@ @@ -18,7 +25,7 @@ OBJS += ../src/ap/vlan_init.o OBJS += ../src/ap/vlan_ifconfig.o OBJS += ../src/ap/vlan.o -@@ -357,10 +359,14 @@ CFLAGS += -DCONFIG_MBO +@@ -358,10 +360,14 @@ CFLAGS += -DCONFIG_MBO OBJS += ../src/ap/mbo_ap.o endif @@ -36,7 +43,7 @@ LIBS += $(DRV_AP_LIBS) ifdef CONFIG_L2_PACKET -@@ -1380,6 +1386,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR) +@@ -1392,6 +1398,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR) _OBJS_VAR := OBJS include ../src/objs.mk @@ -49,7 +56,7 @@ hostapd: $(OBJS) $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS) @$(E) " LD " $@ -@@ -1460,6 +1472,12 @@ include ../src/objs.mk +@@ -1472,6 +1484,12 @@ include ../src/objs.mk _OBJS_VAR := SOBJS include ../src/objs.mk @@ -62,6 +69,86 @@ nt_password_hash: $(NOBJS) $(Q)$(CC) $(LDFLAGS) -o nt_password_hash $(NOBJS) $(LIBS_n) @$(E) " LD " $@ +--- a/hostapd/main.c ++++ b/hostapd/main.c +@@ -705,6 +705,11 @@ fail: + return -1; + } + ++void hostapd_wpa_event(void *ctx, enum wpa_event_type event, ++ union wpa_event_data *data); ++ ++void hostapd_wpa_event_global(void *ctx, enum wpa_event_type event, ++ union wpa_event_data *data); + + #ifdef CONFIG_WPS + static int gen_uuid(const char *txt_addr) +@@ -798,6 +803,8 @@ int main(int argc, char *argv[]) + return -1; + #endif /* CONFIG_DPP */ + ++ wpa_supplicant_event = hostapd_wpa_event; ++ wpa_supplicant_event_global = hostapd_wpa_event_global; + for (;;) { + c = getopt(argc, argv, "b:Bde:f:hi:KP:sSTtu:vg:G:q"); + if (c < 0) +--- a/src/ap/drv_callbacks.c ++++ b/src/ap/drv_callbacks.c +@@ -2341,8 +2341,8 @@ err: + #endif /* CONFIG_OWE */ + + +-void wpa_supplicant_event(void *ctx, enum wpa_event_type event, +- union wpa_event_data *data) ++void hostapd_wpa_event(void *ctx, enum wpa_event_type event, ++ union wpa_event_data *data) + { + struct hostapd_data *hapd = ctx; + struct sta_info *sta; +@@ -2674,7 +2674,7 @@ void wpa_supplicant_event(void *ctx, enu + } + + +-void wpa_supplicant_event_global(void *ctx, enum wpa_event_type event, ++void hostapd_wpa_event_global(void *ctx, enum wpa_event_type event, + union wpa_event_data *data) + { + struct hapd_interfaces *interfaces = ctx; +--- a/src/drivers/driver.h ++++ b/src/drivers/driver.h +@@ -6763,8 +6763,8 @@ union wpa_event_data { + * Driver wrapper code should call this function whenever an event is received + * from the driver. + */ +-void wpa_supplicant_event(void *ctx, enum wpa_event_type event, +- union wpa_event_data *data); ++extern void (*wpa_supplicant_event)(void *ctx, enum wpa_event_type event, ++ union wpa_event_data *data); + + /** + * wpa_supplicant_event_global - Report a driver event for wpa_supplicant +@@ -6776,7 +6776,7 @@ void wpa_supplicant_event(void *ctx, enu + * Same as wpa_supplicant_event(), but we search for the interface in + * wpa_global. + */ +-void wpa_supplicant_event_global(void *ctx, enum wpa_event_type event, ++extern void (*wpa_supplicant_event_global)(void *ctx, enum wpa_event_type event, + union wpa_event_data *data); + + /* +--- a/src/drivers/drivers.c ++++ b/src/drivers/drivers.c +@@ -10,6 +10,10 @@ + #include "utils/common.h" + #include "driver.h" + ++void (*wpa_supplicant_event)(void *ctx, enum wpa_event_type event, ++ union wpa_event_data *data); ++void (*wpa_supplicant_event_global)(void *ctx, enum wpa_event_type event, ++ union wpa_event_data *data); + + const struct wpa_driver_ops *const wpa_drivers[] = + { --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile @@ -10,6 +10,7 @@ ALL += dbus/fi.w1.wpa_supplicant1.servic @@ -72,7 +159,7 @@ include ../src/build.rules ifdef CONFIG_BUILD_PASN_SO -@@ -382,7 +383,9 @@ endif +@@ -388,7 +389,9 @@ endif ifdef CONFIG_IBSS_RSN NEED_RSN_AUTHENTICATOR=y CFLAGS += -DCONFIG_IBSS_RSN @@ -82,7 +169,7 @@ OBJS += ibss_rsn.o endif -@@ -924,6 +927,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS +@@ -980,6 +983,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS LIBS += -ldl -rdynamic endif @@ -93,7 +180,7 @@ endif ifdef CONFIG_AP -@@ -931,9 +938,11 @@ NEED_EAP_COMMON=y +@@ -987,9 +994,11 @@ NEED_EAP_COMMON=y NEED_RSN_AUTHENTICATOR=y CFLAGS += -DCONFIG_AP OBJS += ap.o @@ -105,7 +192,7 @@ OBJS += ../src/ap/hostapd.o OBJS += ../src/ap/wpa_auth_glue.o OBJS += ../src/ap/utils.o -@@ -1022,6 +1031,12 @@ endif +@@ -1080,6 +1089,12 @@ endif ifdef CONFIG_HS20 OBJS += ../src/ap/hs20.o endif @@ -118,7 +205,7 @@ endif ifdef CONFIG_MBO -@@ -1030,7 +1045,9 @@ CFLAGS += -DCONFIG_MBO +@@ -1089,7 +1104,9 @@ NEED_GAS=y endif ifdef NEED_RSN_AUTHENTICATOR @@ -128,7 +215,7 @@ NEED_AES_WRAP=y OBJS += ../src/ap/wpa_auth.o OBJS += ../src/ap/wpa_auth_ie.o -@@ -2010,6 +2027,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv) +@@ -2079,6 +2096,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv) _OBJS_VAR := OBJS include ../src/objs.mk @@ -141,7 +228,7 @@ wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs) $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) @$(E) " LD " $@ -@@ -2142,6 +2165,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK) +@@ -2211,6 +2234,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK) $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@ @$(E) " sed" $< @@ -154,50 +241,63 @@ wpa_supplicant.exe: wpa_supplicant mv -f $< $@ wpa_cli.exe: wpa_cli ---- a/src/drivers/driver.h -+++ b/src/drivers/driver.h -@@ -6667,8 +6667,8 @@ union wpa_event_data { - * Driver wrapper code should call this function whenever an event is received - * from the driver. - */ --void wpa_supplicant_event(void *ctx, enum wpa_event_type event, -- union wpa_event_data *data); -+extern void (*wpa_supplicant_event)(void *ctx, enum wpa_event_type event, -+ union wpa_event_data *data); +--- a/wpa_supplicant/eapol_test.c ++++ b/wpa_supplicant/eapol_test.c +@@ -31,7 +31,12 @@ + #include "ctrl_iface.h" + #include "pcsc_funcs.h" + #include "wpas_glue.h" ++#include "drivers/driver.h" - /** - * wpa_supplicant_event_global - Report a driver event for wpa_supplicant -@@ -6680,7 +6680,7 @@ void wpa_supplicant_event(void *ctx, enu - * Same as wpa_supplicant_event(), but we search for the interface in - * wpa_global. - */ --void wpa_supplicant_event_global(void *ctx, enum wpa_event_type event, -+extern void (*wpa_supplicant_event_global)(void *ctx, enum wpa_event_type event, - union wpa_event_data *data); ++void (*wpa_supplicant_event)(void *ctx, enum wpa_event_type event, ++ union wpa_event_data *data); ++void (*wpa_supplicant_event_global)(void *ctx, enum wpa_event_type event, ++ union wpa_event_data *data); - /* ---- a/src/ap/drv_callbacks.c -+++ b/src/ap/drv_callbacks.c -@@ -2184,8 +2184,8 @@ err: - #endif /* CONFIG_OWE */ + const struct wpa_driver_ops *const wpa_drivers[] = { NULL }; + +@@ -1325,6 +1330,10 @@ static void usage(void) + "option several times.\n"); + } + ++extern void supplicant_event(void *ctx, enum wpa_event_type event, ++ union wpa_event_data *data); ++extern void supplicant_event_global(void *ctx, enum wpa_event_type event, ++ union wpa_event_data *data); + + int main(int argc, char *argv[]) + { +@@ -1348,6 +1357,8 @@ int main(int argc, char *argv[]) + if (os_program_init()) + return -1; + ++ wpa_supplicant_event = supplicant_event; ++ wpa_supplicant_event_global = supplicant_event_global; + hostapd_logger_register_cb(hostapd_logger_cb); + + os_memset(&eapol_test, 0, sizeof(eapol_test)); +--- a/wpa_supplicant/events.c ++++ b/wpa_supplicant/events.c +@@ -5919,8 +5919,8 @@ static void wpas_link_reconfig(struct wp + } -void wpa_supplicant_event(void *ctx, enum wpa_event_type event, - union wpa_event_data *data) -+void hostapd_wpa_event(void *ctx, enum wpa_event_type event, -+ union wpa_event_data *data) ++void supplicant_event(void *ctx, enum wpa_event_type event, ++ union wpa_event_data *data) { - struct hostapd_data *hapd = ctx; - #ifndef CONFIG_NO_STDOUT_DEBUG -@@ -2489,7 +2489,7 @@ void wpa_supplicant_event(void *ctx, enu + struct wpa_supplicant *wpa_s = ctx; + int resched; +@@ -6872,7 +6872,7 @@ void wpa_supplicant_event(void *ctx, enu } -void wpa_supplicant_event_global(void *ctx, enum wpa_event_type event, -+void hostapd_wpa_event_global(void *ctx, enum wpa_event_type event, ++void supplicant_event_global(void *ctx, enum wpa_event_type event, union wpa_event_data *data) { - struct hapd_interfaces *interfaces = ctx; + struct wpa_supplicant *wpa_s; --- a/wpa_supplicant/wpa_priv.c +++ b/wpa_supplicant/wpa_priv.c @@ -1039,8 +1039,8 @@ static void wpa_priv_send_ft_response(st @@ -229,31 +329,9 @@ wpa_priv_fd_workaround(); os_memset(&global, 0, sizeof(global)); ---- a/wpa_supplicant/events.c -+++ b/wpa_supplicant/events.c -@@ -5353,8 +5353,8 @@ static void wpas_link_reconfig(struct wp - } - - --void wpa_supplicant_event(void *ctx, enum wpa_event_type event, -- union wpa_event_data *data) -+void supplicant_event(void *ctx, enum wpa_event_type event, -+ union wpa_event_data *data) - { - struct wpa_supplicant *wpa_s = ctx; - int resched; -@@ -6272,7 +6272,7 @@ void wpa_supplicant_event(void *ctx, enu - } - - --void wpa_supplicant_event_global(void *ctx, enum wpa_event_type event, -+void supplicant_event_global(void *ctx, enum wpa_event_type event, - union wpa_event_data *data) - { - struct wpa_supplicant *wpa_s; --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -7462,7 +7462,6 @@ struct wpa_interface * wpa_supplicant_ma +@@ -7583,7 +7583,6 @@ struct wpa_interface * wpa_supplicant_ma return NULL; } @@ -261,7 +339,7 @@ /** * wpa_supplicant_match_existing - Match existing interfaces * @global: Pointer to global data from wpa_supplicant_init() -@@ -7497,6 +7496,11 @@ static int wpa_supplicant_match_existing +@@ -7618,6 +7617,11 @@ static int wpa_supplicant_match_existing #endif /* CONFIG_MATCH_IFACE */ @@ -273,7 +351,7 @@ /** * wpa_supplicant_add_iface - Add a new network interface -@@ -7753,6 +7757,8 @@ struct wpa_global * wpa_supplicant_init( +@@ -7874,6 +7878,8 @@ struct wpa_global * wpa_supplicant_init( #ifndef CONFIG_NO_WPA_MSG wpa_msg_register_ifname_cb(wpa_supplicant_msg_ifname_cb); #endif /* CONFIG_NO_WPA_MSG */ @@ -282,74 +360,3 @@ if (params->wpa_debug_file_path) wpa_debug_open_file(params->wpa_debug_file_path); ---- a/hostapd/main.c -+++ b/hostapd/main.c -@@ -698,6 +698,11 @@ fail: - return -1; - } - -+void hostapd_wpa_event(void *ctx, enum wpa_event_type event, -+ union wpa_event_data *data); -+ -+void hostapd_wpa_event_global(void *ctx, enum wpa_event_type event, -+ union wpa_event_data *data); - - #ifdef CONFIG_WPS - static int gen_uuid(const char *txt_addr) -@@ -791,6 +796,8 @@ int main(int argc, char *argv[]) - return -1; - #endif /* CONFIG_DPP */ - -+ wpa_supplicant_event = hostapd_wpa_event; -+ wpa_supplicant_event_global = hostapd_wpa_event_global; - for (;;) { - c = getopt(argc, argv, "b:Bde:f:hi:KP:sSTtu:vg:G:q"); - if (c < 0) ---- a/src/drivers/drivers.c -+++ b/src/drivers/drivers.c -@@ -10,6 +10,10 @@ - #include "utils/common.h" - #include "driver.h" - -+void (*wpa_supplicant_event)(void *ctx, enum wpa_event_type event, -+ union wpa_event_data *data); -+void (*wpa_supplicant_event_global)(void *ctx, enum wpa_event_type event, -+ union wpa_event_data *data); - - const struct wpa_driver_ops *const wpa_drivers[] = - { ---- a/wpa_supplicant/eapol_test.c -+++ b/wpa_supplicant/eapol_test.c -@@ -31,7 +31,12 @@ - #include "ctrl_iface.h" - #include "pcsc_funcs.h" - #include "wpas_glue.h" -+#include "drivers/driver.h" - -+void (*wpa_supplicant_event)(void *ctx, enum wpa_event_type event, -+ union wpa_event_data *data); -+void (*wpa_supplicant_event_global)(void *ctx, enum wpa_event_type event, -+ union wpa_event_data *data); - - const struct wpa_driver_ops *const wpa_drivers[] = { NULL }; - -@@ -1303,6 +1308,10 @@ static void usage(void) - "option several times.\n"); - } - -+extern void supplicant_event(void *ctx, enum wpa_event_type event, -+ union wpa_event_data *data); -+extern void supplicant_event_global(void *ctx, enum wpa_event_type event, -+ union wpa_event_data *data); - - int main(int argc, char *argv[]) - { -@@ -1323,6 +1332,8 @@ int main(int argc, char *argv[]) - if (os_program_init()) - return -1; - -+ wpa_supplicant_event = supplicant_event; -+ wpa_supplicant_event_global = supplicant_event_global; - hostapd_logger_register_cb(hostapd_logger_cb); - - os_memset(&eapol_test, 0, sizeof(eapol_test)); diff --git a/package/network/services/hostapd/patches/500-lto-jobserver-support.patch b/package/network/services/hostapd/patches/201-lto-jobserver-support.patch similarity index 84% rename from package/network/services/hostapd/patches/500-lto-jobserver-support.patch rename to package/network/services/hostapd/patches/201-lto-jobserver-support.patch index 67312c5004a753..ea0dc290813790 100644 --- a/package/network/services/hostapd/patches/500-lto-jobserver-support.patch +++ b/package/network/services/hostapd/patches/201-lto-jobserver-support.patch @@ -1,6 +1,11 @@ +From: Felix Fietkau +Date: Tue, 10 Jul 2018 13:48:17 +0200 +Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel + build) + --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -1396,7 +1396,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS) +@@ -1405,7 +1405,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS) @$(AR) cr $@ hostapd_multi.o $(OBJS) hostapd: $(OBJS) @@ -9,7 +14,7 @@ @$(E) " LD " $@ ifdef CONFIG_WPA_TRACE -@@ -1407,7 +1407,7 @@ _OBJS_VAR := OBJS_c +@@ -1416,7 +1416,7 @@ _OBJS_VAR := OBJS_c include ../src/objs.mk hostapd_cli: $(OBJS_c) @@ -20,7 +25,7 @@ NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS) --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -2037,31 +2037,31 @@ wpa_supplicant_multi.a: .config $(BCHECK +@@ -2103,31 +2103,31 @@ wpa_supplicant_multi.a: .config $(BCHECK @$(AR) cr $@ wpa_supplicant_multi.o $(OBJS) wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs) diff --git a/package/network/services/hostapd/patches/210-build-de-duplicate-_DIRS-before-calling-mkdir.patch b/package/network/services/hostapd/patches/210-build-de-duplicate-_DIRS-before-calling-mkdir.patch new file mode 100644 index 00000000000000..08d4393c906d0e --- /dev/null +++ b/package/network/services/hostapd/patches/210-build-de-duplicate-_DIRS-before-calling-mkdir.patch @@ -0,0 +1,23 @@ +From: Felix Fietkau +Date: Thu, 4 Apr 2024 12:59:41 +0200 +Subject: [PATCH] build: de-duplicate _DIRS before calling mkdir + +If the build path is long, the contents of the _DIRS variable can be very long, +since it repeats the same directories very often. +In some cases, this has triggered an "Argument list too long" build error. + +Suggested-by: Eneas U de Queiroz +Signed-off-by: Felix Fietkau +--- + +--- a/src/build.rules ++++ b/src/build.rules +@@ -80,7 +80,7 @@ endif + _DIRS := $(BUILDDIR)/$(PROJ) + .PHONY: _make_dirs + _make_dirs: +- @mkdir -p $(_DIRS) ++ @mkdir -p $(sort $(_DIRS)) + + $(BUILDDIR)/$(PROJ)/src/%.o: $(ROOTDIR)src/%.c $(CONFIG_FILE) | _make_dirs + $(Q)$(CC) -c -o $@ $(CFLAGS) $< diff --git a/package/network/services/hostapd/patches/990-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch b/package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch similarity index 90% rename from package/network/services/hostapd/patches/990-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch rename to package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch index 5809a3b7e8170f..84fdea8c785231 100644 --- a/package/network/services/hostapd/patches/990-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch +++ b/package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch @@ -13,7 +13,7 @@ Signed-off-by: David Bauer --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c -@@ -12763,7 +12763,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -13214,7 +13214,7 @@ char * wpa_supplicant_ctrl_iface_process if (wpas_ctrl_iface_coloc_intf_report(wpa_s, buf + 18)) reply_len = -1; #endif /* CONFIG_WNM */ @@ -22,7 +22,7 @@ Signed-off-by: David Bauer } else if (os_strncmp(buf, "DISASSOC_IMMINENT ", 18) == 0) { if (ap_ctrl_iface_disassoc_imminent(wpa_s, buf + 18)) reply_len = -1; -@@ -12773,7 +12773,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -13224,7 +13224,7 @@ char * wpa_supplicant_ctrl_iface_process } else if (os_strncmp(buf, "BSS_TM_REQ ", 11) == 0) { if (ap_ctrl_iface_bss_tm_req(wpa_s, buf + 11)) reply_len = -1; diff --git a/package/network/services/hostapd/patches/212-Move-definition-of-WLAN_SUPP_RATES_MAX-to-defs.h.patch b/package/network/services/hostapd/patches/212-Move-definition-of-WLAN_SUPP_RATES_MAX-to-defs.h.patch new file mode 100644 index 00000000000000..4c568c924cca23 --- /dev/null +++ b/package/network/services/hostapd/patches/212-Move-definition-of-WLAN_SUPP_RATES_MAX-to-defs.h.patch @@ -0,0 +1,56 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Eneas U de Queiroz +Date: Mon, 12 Feb 2024 14:18:24 -0300 +Subject: [PATCH] Move definition of WLAN_SUPP_RATES_MAX to defs.h + +Patch 460-wpa_supplicant-add-new-config-params-to-be-used-with.patch +("wpa_supplicant: add new config params to be used with the ibss join +command") adds the definition of unsigned char +rates[WLAN_SUPP_RATES_MAX] to driver.h, which needs to have +WLAN_SUPP_RATES_MAX defined. So it includes sta_info.h to get the +definition. + +Commit c74739250a ("AP MLD: Use a helper function to check if a STA is a +non-AP MLD") makes sta_info.h include driver.h before +it defines WLAN_SUPP_RATES_MAX, causing an error: + +src/drivers/driver.h:969:29: error: 'WLAN_SUPP_RATES_MAX' undeclared here (not in a function) + +Move the definition of WLAN_SUPP_RATES_MAX to defs.h to ensure it gets +defined before other headers are included. The inclusion of sta_info.h +in driver.h can be reverted as well. + +Signed-off-by: Eneas U de Queiroz +--- + src/ap/sta_info.h | 4 ---- + src/common/defs.h | 4 ++++ + src/drivers/driver.h | 1 - + wpa_supplicant/config_ssid.h | 1 - + 4 files changed, 4 insertions(+), 6 deletions(-) + +--- a/src/ap/sta_info.h ++++ b/src/ap/sta_info.h +@@ -49,10 +49,6 @@ + #define WLAN_STA_PENDING_DEAUTH_CB BIT(30) + #define WLAN_STA_NONERP BIT(31) + +-/* Maximum number of supported rates (from both Supported Rates and Extended +- * Supported Rates IEs). */ +-#define WLAN_SUPP_RATES_MAX 32 +- + struct hostapd_data; + + struct mbo_non_pref_chan_info { +--- a/src/common/defs.h ++++ b/src/common/defs.h +@@ -63,6 +63,10 @@ + WPA_KEY_MGMT_FT_FILS_SHA256 | \ + WPA_KEY_MGMT_FT_FILS_SHA384) + ++/* Maximum number of supported rates (from both Supported Rates and Extended ++ * Supported Rates IEs). */ ++#define WLAN_SUPP_RATES_MAX 32 ++ + static inline int wpa_key_mgmt_wpa_ieee8021x(int akm) + { + return !!(akm & (WPA_KEY_MGMT_IEEE8021X | diff --git a/package/network/services/hostapd/patches/213-wpa_supplicant-fix-warnings.patch b/package/network/services/hostapd/patches/213-wpa_supplicant-fix-warnings.patch new file mode 100644 index 00000000000000..4acd7cafe27247 --- /dev/null +++ b/package/network/services/hostapd/patches/213-wpa_supplicant-fix-warnings.patch @@ -0,0 +1,32 @@ +From: "Leon M. George" +Date: Wed, 11 Sep 2019 15:22:55 +0200 +Subject: [PATCH] hostapd: declare struct wpa_bss early + +wps_supplicant.h assumes that 'struct wpa_bss' is forward declared if +CONFIG_WPS is not defined. With the later inclusion of +600-ubus_support, the issue manifests in warnings like these: + +wps_supplicant.h:113:15: warning: 'struct wpa_bss' declared inside parameter list will not be visible outside of this definition or declaration + struct wpa_bss *bss) + ^~~~~~~ +This patch forward declares 'struct wpa_bss' regardless. + +--- a/wpa_supplicant/wps_supplicant.h ++++ b/wpa_supplicant/wps_supplicant.h +@@ -9,6 +9,7 @@ + #ifndef WPS_SUPPLICANT_H + #define WPS_SUPPLICANT_H + ++struct wpa_bss; + struct wpa_scan_results; + + #ifdef CONFIG_WPS +@@ -16,8 +17,6 @@ struct wpa_scan_results; + #include "wps/wps.h" + #include "wps/wps_defs.h" + +-struct wpa_bss; +- + struct wps_new_ap_settings { + const char *ssid_hex; + const char *auth; diff --git a/package/network/services/hostapd/patches/420-indicate-features.patch b/package/network/services/hostapd/patches/220-indicate-features.patch similarity index 79% rename from package/network/services/hostapd/patches/420-indicate-features.patch rename to package/network/services/hostapd/patches/220-indicate-features.patch index 07df8e5a9afd1c..006a567c338c9d 100644 --- a/package/network/services/hostapd/patches/420-indicate-features.patch +++ b/package/network/services/hostapd/patches/220-indicate-features.patch @@ -1,3 +1,9 @@ +From: Jo-Philipp Wich +Date: Mon, 12 Dec 2011 17:26:13 +0000 +Subject: [PATCH] hostapd: support optional argument for the -v switch of + hostapd and wpa_supplicant to query build features, e.g. hostapd -veap to + test whether 802.11i support is compiled in + --- a/hostapd/main.c +++ b/hostapd/main.c @@ -31,7 +31,7 @@ @@ -9,7 +15,7 @@ struct hapd_global { void **drv_priv; -@@ -799,7 +799,7 @@ int main(int argc, char *argv[]) +@@ -806,7 +806,7 @@ int main(int argc, char *argv[]) wpa_supplicant_event = hostapd_wpa_event; wpa_supplicant_event_global = hostapd_wpa_event_global; for (;;) { @@ -18,7 +24,7 @@ if (c < 0) break; switch (c) { -@@ -836,6 +836,8 @@ int main(int argc, char *argv[]) +@@ -843,6 +843,8 @@ int main(int argc, char *argv[]) break; #endif /* CONFIG_DEBUG_LINUX_TRACING */ case 'v': diff --git a/package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch b/package/network/services/hostapd/patches/250-hostapd_cli_ifdef.patch similarity index 86% rename from package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch rename to package/network/services/hostapd/patches/250-hostapd_cli_ifdef.patch index a21f0bf7cee05f..b6421e9d75957e 100644 --- a/package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch +++ b/package/network/services/hostapd/patches/250-hostapd_cli_ifdef.patch @@ -1,3 +1,8 @@ +From: Felix Fietkau +Date: Thu, 13 Sep 2012 12:39:14 +0000 +Subject: [PATCH] hostapd: support wps in hostapd_cli even when built from the + mini variant + --- a/hostapd/hostapd_cli.c +++ b/hostapd/hostapd_cli.c @@ -401,7 +401,6 @@ static int hostapd_cli_cmd_disassociate( @@ -32,7 +37,7 @@ static int hostapd_cli_cmd_disassoc_imminent(struct wpa_ctrl *ctrl, int argc, -@@ -1610,13 +1606,10 @@ static const struct hostapd_cli_cmd host +@@ -1670,13 +1666,10 @@ static const struct hostapd_cli_cmd host { "disassociate", hostapd_cli_cmd_disassociate, hostapd_complete_stations, " = disassociate a station" }, @@ -46,7 +51,7 @@ { "wps_pin", hostapd_cli_cmd_wps_pin, NULL, " [timeout] [addr] = add WPS Enrollee PIN" }, { "wps_check_pin", hostapd_cli_cmd_wps_check_pin, NULL, -@@ -1641,7 +1634,6 @@ static const struct hostapd_cli_cmd host +@@ -1701,7 +1694,6 @@ static const struct hostapd_cli_cmd host " = configure AP" }, { "wps_get_status", hostapd_cli_cmd_wps_get_status, NULL, "= show current WPS status" }, diff --git a/package/network/services/hostapd/patches/431-wpa_cli_ifdef.patch b/package/network/services/hostapd/patches/251-wpa_cli_ifdef.patch similarity index 71% rename from package/network/services/hostapd/patches/431-wpa_cli_ifdef.patch rename to package/network/services/hostapd/patches/251-wpa_cli_ifdef.patch index 65c31c567fcab2..d7f967d779f683 100644 --- a/package/network/services/hostapd/patches/431-wpa_cli_ifdef.patch +++ b/package/network/services/hostapd/patches/251-wpa_cli_ifdef.patch @@ -1,3 +1,7 @@ +From: Felix Fietkau +Date: Mon, 2 Dec 2013 13:07:46 +0000 +Subject: [PATCH] hostapd: always include p2p options in wpa_cli + --- a/wpa_supplicant/wpa_cli.c +++ b/wpa_supplicant/wpa_cli.c @@ -26,6 +26,15 @@ diff --git a/package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch b/package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch similarity index 82% rename from package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch rename to package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch index f7720fce2fac84..c65b2b181e3461 100644 --- a/package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch +++ b/package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch @@ -1,3 +1,7 @@ +From: Felix Fietkau +Date: Fri, 18 Mar 2011 02:15:52 +0000 +Subject: [PATCH] Remove some unnecessary control interface functionality + --- a/hostapd/Makefile +++ b/hostapd/Makefile @@ -221,6 +221,9 @@ endif @@ -12,7 +16,7 @@ else --- a/hostapd/ctrl_iface.c +++ b/hostapd/ctrl_iface.c -@@ -3314,6 +3314,7 @@ static int hostapd_ctrl_iface_receive_pr +@@ -3897,6 +3897,7 @@ static int hostapd_ctrl_iface_receive_pr reply_size); } else if (os_strcmp(buf, "STATUS-DRIVER") == 0) { reply_len = hostapd_drv_status(hapd, reply, reply_size); @@ -20,7 +24,7 @@ } else if (os_strcmp(buf, "MIB") == 0) { reply_len = ieee802_11_get_mib(hapd, reply, reply_size); if (reply_len >= 0) { -@@ -3355,6 +3356,7 @@ static int hostapd_ctrl_iface_receive_pr +@@ -3938,6 +3939,7 @@ static int hostapd_ctrl_iface_receive_pr } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) { reply_len = hostapd_ctrl_iface_sta_next(hapd, buf + 9, reply, reply_size); @@ -28,69 +32,6 @@ } else if (os_strcmp(buf, "ATTACH") == 0) { if (hostapd_ctrl_iface_attach(hapd, from, fromlen, NULL)) reply_len = -1; ---- a/wpa_supplicant/Makefile -+++ b/wpa_supplicant/Makefile -@@ -983,6 +983,9 @@ ifdef CONFIG_FILS - OBJS += ../src/ap/fils_hlp.o - endif - ifdef CONFIG_CTRL_IFACE -+ifdef CONFIG_CTRL_IFACE_MIB -+CFLAGS += -DCONFIG_CTRL_IFACE_MIB -+endif - OBJS += ../src/ap/ctrl_iface_ap.o - endif - ---- a/wpa_supplicant/ctrl_iface.c -+++ b/wpa_supplicant/ctrl_iface.c -@@ -2326,7 +2326,7 @@ static int wpa_supplicant_ctrl_iface_sta - pos += ret; - } - --#ifdef CONFIG_AP -+#if defined(CONFIG_AP) && defined(CONFIG_CTRL_IFACE_MIB) - if (wpa_s->ap_iface) { - pos += ap_ctrl_iface_wpa_get_status(wpa_s, pos, - end - pos, -@@ -12087,6 +12087,7 @@ char * wpa_supplicant_ctrl_iface_process - reply_len = -1; - } else if (os_strncmp(buf, "NOTE ", 5) == 0) { - wpa_printf(MSG_INFO, "NOTE: %s", buf + 5); -+#ifdef CONFIG_CTRL_IFACE_MIB - } else if (os_strcmp(buf, "MIB") == 0) { - reply_len = wpa_sm_get_mib(wpa_s->wpa, reply, reply_size); - if (reply_len >= 0) { -@@ -12099,6 +12100,7 @@ char * wpa_supplicant_ctrl_iface_process - reply_size - reply_len); - #endif /* CONFIG_MACSEC */ - } -+#endif - } else if (os_strncmp(buf, "STATUS", 6) == 0) { - reply_len = wpa_supplicant_ctrl_iface_status( - wpa_s, buf + 6, reply, reply_size); -@@ -12587,6 +12589,7 @@ char * wpa_supplicant_ctrl_iface_process - reply_len = wpa_supplicant_ctrl_iface_bss( - wpa_s, buf + 4, reply, reply_size); - #ifdef CONFIG_AP -+#ifdef CONFIG_CTRL_IFACE_MIB - } else if (os_strcmp(buf, "STA-FIRST") == 0) { - reply_len = ap_ctrl_iface_sta_first(wpa_s, reply, reply_size); - } else if (os_strncmp(buf, "STA ", 4) == 0) { -@@ -12595,12 +12598,15 @@ char * wpa_supplicant_ctrl_iface_process - } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) { - reply_len = ap_ctrl_iface_sta_next(wpa_s, buf + 9, reply, - reply_size); -+#endif -+#ifdef CONFIG_CTRL_IFACE_MIB - } else if (os_strncmp(buf, "DEAUTHENTICATE ", 15) == 0) { - if (ap_ctrl_iface_sta_deauthenticate(wpa_s, buf + 15)) - reply_len = -1; - } else if (os_strncmp(buf, "DISASSOCIATE ", 13) == 0) { - if (ap_ctrl_iface_sta_disassociate(wpa_s, buf + 13)) - reply_len = -1; -+#endif - } else if (os_strncmp(buf, "CHAN_SWITCH ", 12) == 0) { - if (ap_ctrl_iface_chanswitch(wpa_s, buf + 12)) - reply_len = -1; --- a/src/ap/ctrl_iface_ap.c +++ b/src/ap/ctrl_iface_ap.c @@ -26,6 +26,26 @@ @@ -147,7 +88,7 @@ static int hostapd_ctrl_iface_sta_mib(struct hostapd_data *hapd, struct sta_info *sta, char *buf, size_t buflen) -@@ -493,6 +493,7 @@ int hostapd_ctrl_iface_sta_next(struct h +@@ -539,6 +539,7 @@ int hostapd_ctrl_iface_sta_next(struct h return hostapd_ctrl_iface_sta_mib(hapd, sta->next, buf, buflen); } @@ -155,7 +96,7 @@ #ifdef CONFIG_P2P_MANAGER static int p2p_manager_disconnect(struct hostapd_data *hapd, u16 stype, -@@ -884,12 +885,12 @@ int hostapd_ctrl_iface_status(struct hos +@@ -951,12 +952,12 @@ int hostapd_ctrl_iface_status(struct hos return len; len += ret; } @@ -172,7 +113,7 @@ if (os_snprintf_error(buflen - len, ret)) --- a/src/ap/ieee802_1x.c +++ b/src/ap/ieee802_1x.c -@@ -2834,6 +2834,7 @@ static const char * bool_txt(bool val) +@@ -2837,6 +2837,7 @@ static const char * bool_txt(bool val) return val ? "TRUE" : "FALSE"; } @@ -180,7 +121,7 @@ int ieee802_1x_get_mib(struct hostapd_data *hapd, char *buf, size_t buflen) { -@@ -3020,6 +3021,7 @@ int ieee802_1x_get_mib_sta(struct hostap +@@ -3023,6 +3024,7 @@ int ieee802_1x_get_mib_sta(struct hostap return len; } @@ -190,7 +131,7 @@ static void ieee802_1x_wnm_notif_send(void *eloop_ctx, void *timeout_ctx) --- a/src/ap/wpa_auth.c +++ b/src/ap/wpa_auth.c -@@ -5328,6 +5328,7 @@ static const char * wpa_bool_txt(int val +@@ -5583,6 +5583,7 @@ static const char * wpa_bool_txt(int val return val ? "TRUE" : "FALSE"; } @@ -198,7 +139,7 @@ #define RSN_SUITE "%02x-%02x-%02x-%d" #define RSN_SUITE_ARG(s) \ -@@ -5480,7 +5481,7 @@ int wpa_get_mib_sta(struct wpa_state_mac +@@ -5735,7 +5736,7 @@ int wpa_get_mib_sta(struct wpa_state_mac return len; } @@ -209,7 +150,7 @@ { --- a/src/rsn_supp/wpa.c +++ b/src/rsn_supp/wpa.c -@@ -3834,6 +3834,8 @@ static u32 wpa_key_mgmt_suite(struct wpa +@@ -3943,6 +3943,8 @@ static u32 wpa_key_mgmt_suite(struct wpa } @@ -218,7 +159,7 @@ #define RSN_SUITE "%02x-%02x-%02x-%d" #define RSN_SUITE_ARG(s) \ ((s) >> 24) & 0xff, ((s) >> 16) & 0xff, ((s) >> 8) & 0xff, (s) & 0xff -@@ -3915,6 +3917,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch +@@ -4024,6 +4026,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch return (int) len; } @@ -226,9 +167,21 @@ #endif /* CONFIG_CTRL_IFACE */ +--- a/wpa_supplicant/Makefile ++++ b/wpa_supplicant/Makefile +@@ -1038,6 +1038,9 @@ ifdef CONFIG_FILS + OBJS += ../src/ap/fils_hlp.o + endif + ifdef CONFIG_CTRL_IFACE ++ifdef CONFIG_CTRL_IFACE_MIB ++CFLAGS += -DCONFIG_CTRL_IFACE_MIB ++endif + OBJS += ../src/ap/ctrl_iface_ap.o + endif + --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c -@@ -1499,7 +1499,7 @@ int wpas_ap_wps_nfc_report_handover(stru +@@ -1520,7 +1520,7 @@ int wpas_ap_wps_nfc_report_handover(stru #endif /* CONFIG_WPS */ @@ -237,3 +190,54 @@ int ap_ctrl_iface_sta_first(struct wpa_supplicant *wpa_s, char *buf, size_t buflen) +--- a/wpa_supplicant/ctrl_iface.c ++++ b/wpa_supplicant/ctrl_iface.c +@@ -2355,7 +2355,7 @@ static int wpa_supplicant_ctrl_iface_sta + pos += ret; + } + +-#ifdef CONFIG_AP ++#if defined(CONFIG_AP) && defined(CONFIG_CTRL_IFACE_MIB) + if (wpa_s->ap_iface) { + pos += ap_ctrl_iface_wpa_get_status(wpa_s, pos, + end - pos, +@@ -12542,6 +12542,7 @@ char * wpa_supplicant_ctrl_iface_process + reply_len = -1; + } else if (os_strncmp(buf, "NOTE ", 5) == 0) { + wpa_printf(MSG_INFO, "NOTE: %s", buf + 5); ++#ifdef CONFIG_CTRL_IFACE_MIB + } else if (os_strcmp(buf, "MIB") == 0) { + reply_len = wpa_sm_get_mib(wpa_s->wpa, reply, reply_size); + if (reply_len >= 0) { +@@ -12554,6 +12555,7 @@ char * wpa_supplicant_ctrl_iface_process + reply_size - reply_len); + #endif /* CONFIG_MACSEC */ + } ++#endif + } else if (os_strncmp(buf, "STATUS", 6) == 0) { + reply_len = wpa_supplicant_ctrl_iface_status( + wpa_s, buf + 6, reply, reply_size); +@@ -13042,6 +13044,7 @@ char * wpa_supplicant_ctrl_iface_process + reply_len = wpa_supplicant_ctrl_iface_bss( + wpa_s, buf + 4, reply, reply_size); + #ifdef CONFIG_AP ++#ifdef CONFIG_CTRL_IFACE_MIB + } else if (os_strcmp(buf, "STA-FIRST") == 0) { + reply_len = ap_ctrl_iface_sta_first(wpa_s, reply, reply_size); + } else if (os_strncmp(buf, "STA ", 4) == 0) { +@@ -13050,12 +13053,15 @@ char * wpa_supplicant_ctrl_iface_process + } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) { + reply_len = ap_ctrl_iface_sta_next(wpa_s, buf + 9, reply, + reply_size); ++#endif ++#ifdef CONFIG_CTRL_IFACE_MIB + } else if (os_strncmp(buf, "DEAUTHENTICATE ", 15) == 0) { + if (ap_ctrl_iface_sta_deauthenticate(wpa_s, buf + 15)) + reply_len = -1; + } else if (os_strncmp(buf, "DISASSOCIATE ", 13) == 0) { + if (ap_ctrl_iface_sta_disassociate(wpa_s, buf + 13)) + reply_len = -1; ++#endif + } else if (os_strncmp(buf, "CHAN_SWITCH ", 12) == 0) { + if (ap_ctrl_iface_chanswitch(wpa_s, buf + 12)) + reply_len = -1; diff --git a/package/network/services/hostapd/patches/750-qos_map_set_without_interworking.patch b/package/network/services/hostapd/patches/253-qos_map_set_without_interworking.patch similarity index 75% rename from package/network/services/hostapd/patches/750-qos_map_set_without_interworking.patch rename to package/network/services/hostapd/patches/253-qos_map_set_without_interworking.patch index 97c32df7044646..4072ff5664567c 100644 --- a/package/network/services/hostapd/patches/750-qos_map_set_without_interworking.patch +++ b/package/network/services/hostapd/patches/253-qos_map_set_without_interworking.patch @@ -1,6 +1,12 @@ +From: Felix Fietkau +Date: Thu, 4 Nov 2021 11:45:18 +0100 +Subject: [PATCH] hostapd: support qos_map_set without CONFIG_INTERWORKING + +This feature is useful on its own even without full interworking support + --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -1604,6 +1604,8 @@ static int parse_anqp_elem(struct hostap +@@ -1680,6 +1680,8 @@ static int parse_anqp_elem(struct hostap return 0; } @@ -9,7 +15,7 @@ static int parse_qos_map_set(struct hostapd_bss_config *bss, char *buf, int line) -@@ -1645,8 +1647,6 @@ static int parse_qos_map_set(struct host +@@ -1721,8 +1723,6 @@ static int parse_qos_map_set(struct host return 0; } @@ -18,7 +24,7 @@ #ifdef CONFIG_HS20 static int hs20_parse_conn_capab(struct hostapd_bss_config *bss, char *buf, -@@ -4062,10 +4062,10 @@ static int hostapd_config_fill(struct ho +@@ -4260,10 +4260,10 @@ static int hostapd_config_fill(struct ho bss->gas_frag_limit = val; } else if (os_strcmp(buf, "gas_comeback_delay") == 0) { bss->gas_comeback_delay = atoi(pos); @@ -32,7 +38,7 @@ os_free(bss->dump_msk_file); --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -1486,6 +1486,7 @@ int hostapd_setup_bss(struct hostapd_dat +@@ -1548,6 +1548,7 @@ static int hostapd_setup_bss(struct host wpa_printf(MSG_ERROR, "GAS server initialization failed"); return -1; } @@ -40,7 +46,7 @@ if (conf->qos_map_set_len && hostapd_drv_set_qos_map(hapd, conf->qos_map_set, -@@ -1493,7 +1494,6 @@ int hostapd_setup_bss(struct hostapd_dat +@@ -1555,7 +1556,6 @@ static int hostapd_setup_bss(struct host wpa_printf(MSG_ERROR, "Failed to initialize QoS Map"); return -1; } @@ -48,9 +54,25 @@ if (conf->bss_load_update_period && bss_load_update_init(hapd)) { wpa_printf(MSG_ERROR, "BSS Load initialization failed"); +--- a/src/ap/ieee802_11_shared.c ++++ b/src/ap/ieee802_11_shared.c +@@ -1138,13 +1138,11 @@ u8 * hostapd_eid_rsnxe(struct hostapd_da + u16 check_ext_capab(struct hostapd_data *hapd, struct sta_info *sta, + const u8 *ext_capab_ie, size_t ext_capab_ie_len) + { +-#ifdef CONFIG_INTERWORKING + /* check for QoS Map support */ + if (ext_capab_ie_len >= 5) { + if (ext_capab_ie[4] & 0x01) + sta->qos_map_enabled = 1; + } +-#endif /* CONFIG_INTERWORKING */ + + if (ext_capab_ie_len > 0) { + sta->ecsa_supported = !!(ext_capab_ie[0] & BIT(2)); --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c -@@ -2683,8 +2683,6 @@ void wnm_bss_keep_alive_deinit(struct wp +@@ -2935,8 +2935,6 @@ void wnm_bss_keep_alive_deinit(struct wp } @@ -59,7 +81,7 @@ static int wpas_qos_map_set(struct wpa_supplicant *wpa_s, const u8 *qos_map, size_t len) { -@@ -2717,8 +2715,6 @@ static void interworking_process_assoc_r +@@ -2969,8 +2967,6 @@ static void interworking_process_assoc_r } } @@ -68,7 +90,7 @@ static void wpa_supplicant_set_4addr_mode(struct wpa_supplicant *wpa_s) { -@@ -3098,10 +3094,8 @@ static int wpa_supplicant_event_associnf +@@ -3350,10 +3346,8 @@ static int wpa_supplicant_event_associnf wnm_process_assoc_resp(wpa_s, data->assoc_info.resp_ies, data->assoc_info.resp_ies_len); #endif /* CONFIG_WNM */ @@ -79,19 +101,3 @@ if (wpa_s->hw_capab == CAPAB_VHT && get_ie(data->assoc_info.resp_ies, data->assoc_info.resp_ies_len, WLAN_EID_VHT_CAP)) ---- a/src/ap/ieee802_11_shared.c -+++ b/src/ap/ieee802_11_shared.c -@@ -1116,13 +1116,11 @@ u8 * hostapd_eid_rsnxe(struct hostapd_da - u16 check_ext_capab(struct hostapd_data *hapd, struct sta_info *sta, - const u8 *ext_capab_ie, size_t ext_capab_ie_len) - { --#ifdef CONFIG_INTERWORKING - /* check for QoS Map support */ - if (ext_capab_ie_len >= 5) { - if (ext_capab_ie[4] & 0x01) - sta->qos_map_enabled = 1; - } --#endif /* CONFIG_INTERWORKING */ - - if (ext_capab_ie_len > 0) { - sta->ecsa_supported = !!(ext_capab_ie[0] & BIT(2)); diff --git a/package/network/services/hostapd/patches/300-noscan.patch b/package/network/services/hostapd/patches/300-noscan.patch index 3b5f4325de0c96..9b3f401b035348 100644 --- a/package/network/services/hostapd/patches/300-noscan.patch +++ b/package/network/services/hostapd/patches/300-noscan.patch @@ -1,6 +1,11 @@ +From c61daab867671af884a7bb707f9bc0f086241bcd Mon Sep 17 00:00:00 2001 +From: Felix Fietkau +Date: Wed, 20 Jan 2010 02:26:00 +0000 +Subject: [PATCH] Add noscan, no_ht_coex config options + --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -3448,6 +3448,10 @@ static int hostapd_config_fill(struct ho +@@ -3656,6 +3656,10 @@ static int hostapd_config_fill(struct ho if (bss->ocv && !bss->ieee80211w) bss->ieee80211w = 1; #endif /* CONFIG_OCV */ @@ -13,7 +18,7 @@ } else if (os_strcmp(buf, "ht_capab") == 0) { --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h -@@ -1075,6 +1075,8 @@ struct hostapd_config { +@@ -1093,6 +1093,8 @@ struct hostapd_config { int ht_op_mode_fixed; u16 ht_capab; @@ -24,7 +29,7 @@ int no_pri_sec_switch; --- a/src/ap/hw_features.c +++ b/src/ap/hw_features.c -@@ -546,7 +546,8 @@ static int ieee80211n_check_40mhz(struct +@@ -544,7 +544,8 @@ static int ieee80211n_check_40mhz(struct int ret; /* Check that HT40 is used and PRI / SEC switch is allowed */ diff --git a/package/network/services/hostapd/patches/301-mesh-noscan.patch b/package/network/services/hostapd/patches/301-mesh-noscan.patch index ceb6d0c161f50b..64a2eed30e522f 100644 --- a/package/network/services/hostapd/patches/301-mesh-noscan.patch +++ b/package/network/services/hostapd/patches/301-mesh-noscan.patch @@ -1,6 +1,11 @@ +From: Daniel Golle +Date: Fri, 20 Apr 2018 07:41:03 +0200 +Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also + skips secondary channel scan just like noscan works in AP mode. + --- a/wpa_supplicant/config.c +++ b/wpa_supplicant/config.c -@@ -2600,6 +2600,7 @@ static const struct parse_data ssid_fiel +@@ -2639,6 +2639,7 @@ static const struct parse_data ssid_fiel #else /* CONFIG_MESH */ { INT_RANGE(mode, 0, 4) }, #endif /* CONFIG_MESH */ @@ -18,6 +23,17 @@ INT(mesh_fwding); INT(frequency); INT(enable_edmg); +--- a/wpa_supplicant/config_ssid.h ++++ b/wpa_supplicant/config_ssid.h +@@ -1035,6 +1035,8 @@ struct wpa_ssid { + */ + int no_auto_peer; + ++ int noscan; ++ + /** + * mesh_rssi_threshold - Set mesh parameter mesh_rssi_threshold (dBm) + * --- a/wpa_supplicant/mesh.c +++ b/wpa_supplicant/mesh.c @@ -506,6 +506,8 @@ static int wpa_supplicant_mesh_init(stru @@ -31,7 +47,7 @@ /* --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -2710,7 +2710,7 @@ static bool ibss_mesh_can_use_vht(struct +@@ -2770,7 +2770,7 @@ static bool ibss_mesh_can_use_vht(struct const struct wpa_ssid *ssid, struct hostapd_hw_modes *mode) { @@ -40,25 +56,25 @@ return false; if (!drv_supports_vht(wpa_s, ssid)) -@@ -2783,7 +2783,7 @@ static void ibss_mesh_select_40mhz(struc +@@ -2843,7 +2843,7 @@ static void ibss_mesh_select_40mhz(struc int i, res; unsigned int j; static const int ht40plus[] = { -- 36, 44, 52, 60, 100, 108, 116, 124, 132, 149, 157, 165, 173, -+ 1, 2, 3, 4, 5, 6, 7, 36, 44, 52, 60, 100, 108, 116, 124, 132, 149, 157, 165, 173, - 184, 192 +- 36, 44, 52, 60, 100, 108, 116, 124, 132, 140, ++ 1, 2, 3, 4, 5, 6, 7, 36, 44, 52, 60, 100, 108, 116, 124, 132, 140, + 149, 157, 165, 173, 184, 192 }; int ht40 = -1; -@@ -3033,7 +3033,7 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3093,7 +3093,7 @@ void ibss_mesh_setup_freq(struct wpa_sup int ieee80211_mode = wpas_mode_to_ieee80211_mode(ssid->mode); enum hostapd_hw_mode hw_mode; struct hostapd_hw_modes *mode = NULL; - int i, obss_scan = 1; + int i, obss_scan = !(ssid->noscan); u8 channel; - bool is_6ghz; + bool is_6ghz, is_24ghz; bool dfs_enabled = wpa_s->conf->country[0] && (wpa_s->drv_flags & WPA_DRIVER_FLAGS_RADAR); -@@ -3080,6 +3080,8 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3143,6 +3143,8 @@ void ibss_mesh_setup_freq(struct wpa_sup freq->he_enabled = ibss_mesh_can_use_he(wpa_s, ssid, mode, ieee80211_mode); freq->channel = channel; @@ -67,14 +83,3 @@ /* Setup higher BW only for 5 GHz */ if (mode->mode == HOSTAPD_MODE_IEEE80211A) { ibss_mesh_select_40mhz(wpa_s, ssid, mode, freq, obss_scan, dfs_enabled); ---- a/wpa_supplicant/config_ssid.h -+++ b/wpa_supplicant/config_ssid.h -@@ -1035,6 +1035,8 @@ struct wpa_ssid { - */ - int no_auto_peer; - -+ int noscan; -+ - /** - * mesh_rssi_threshold - Set mesh parameter mesh_rssi_threshold (dBm) - * diff --git a/package/network/services/hostapd/patches/310-rescan_immediately.patch b/package/network/services/hostapd/patches/310-rescan_immediately.patch index 6e0244bca29236..57e13dec8bd8c9 100644 --- a/package/network/services/hostapd/patches/310-rescan_immediately.patch +++ b/package/network/services/hostapd/patches/310-rescan_immediately.patch @@ -1,6 +1,11 @@ +From 64268c716596edbad395cfa82ff30eb84a2f8488 Mon Sep 17 00:00:00 2001 +From: Felix Fietkau +Date: Sat, 23 Jan 2010 08:28:26 +0000 +Subject: [PATCH] rescan_immediately.patch + --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -5769,7 +5769,7 @@ wpa_supplicant_alloc(struct wpa_supplica +@@ -5870,7 +5870,7 @@ wpa_supplicant_alloc(struct wpa_supplica if (wpa_s == NULL) return NULL; wpa_s->scan_req = INITIAL_SCAN_REQ; diff --git a/package/network/services/hostapd/patches/320-optional_rfkill.patch b/package/network/services/hostapd/patches/320-optional_rfkill.patch index 01537790e052a3..dd6fa1d05302b8 100644 --- a/package/network/services/hostapd/patches/320-optional_rfkill.patch +++ b/package/network/services/hostapd/patches/320-optional_rfkill.patch @@ -1,3 +1,7 @@ +From: Felix Fietkau +Date: Thu, 8 Jul 2010 18:36:22 +0000 +Subject: [PATCH] hostapd: make rfkill support optional + --- a/src/drivers/drivers.mak +++ b/src/drivers/drivers.mak @@ -54,7 +54,6 @@ NEED_SME=y diff --git a/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch b/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch index c11c9572169ffe..70ec6dc63b0dd2 100644 --- a/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch +++ b/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch @@ -1,6 +1,11 @@ +From ee68734929edb30f90a95bc3150038333b345476 Mon Sep 17 00:00:00 2001 +From: Felix Fietkau +Date: Sun, 30 Jun 2013 21:01:13 +0000 +Subject: [PATCH] nl80211_fix_set_freq.patch + --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -5407,7 +5407,7 @@ static int nl80211_set_channel(struct i8 +@@ -5483,7 +5483,7 @@ static int nl80211_set_channel(struct i8 freq->he_enabled, freq->eht_enabled, freq->bandwidth, freq->center_freq1, freq->center_freq2); diff --git a/package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch b/package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch index 8784452876b22e..4a5852af2e4558 100644 --- a/package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch +++ b/package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch @@ -1,6 +1,11 @@ +From: Felix Fietkau +Date: Mon, 28 Jan 2019 21:36:44 +0100 +Subject: [PATCH] wpa_supplicant: fix calling channel switch via wpa_cli on + mesh interfaces + --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c -@@ -1825,15 +1825,35 @@ int ap_switch_channel(struct wpa_supplic +@@ -1846,17 +1846,37 @@ int ap_switch_channel(struct wpa_supplic #ifdef CONFIG_CTRL_IFACE @@ -24,15 +29,19 @@ struct csa_settings settings; int ret = hostapd_parse_csa_settings(pos, &settings); +- if (ret) +- return ret; + if (!(wpa_s->ap_iface && wpa_s->ap_iface->bss[0]) && + !(wpa_s->ifmsh && wpa_s->ifmsh->bss[0])) + return -1; -+ -+ ret = __ap_ctrl_iface_chanswitch(wpa_s->ap_iface, &settings); - if (ret) - return ret; + + settings.link_id = -1; - return ap_switch_channel(wpa_s, &settings); ++ ret = __ap_ctrl_iface_chanswitch(wpa_s->ap_iface, &settings); ++ if (ret) ++ return ret; ++ + return __ap_ctrl_iface_chanswitch(wpa_s->ifmsh, &settings); } #endif /* CONFIG_CTRL_IFACE */ diff --git a/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch b/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch index 647ca2cbf9751e..5ad4d6387fb633 100644 --- a/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch +++ b/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch @@ -1,6 +1,10 @@ +From: Felix Fietkau +Date: Sat, 23 Oct 2010 23:39:54 +0000 +Subject: [PATCH] nl80211_del_beacon_bss.patch + --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -3008,12 +3008,12 @@ static int wpa_driver_nl80211_del_beacon +@@ -3075,12 +3075,12 @@ static int wpa_driver_nl80211_del_beacon return 0; wpa_printf(MSG_DEBUG, "nl80211: Remove beacon (ifindex=%d)", @@ -15,16 +19,17 @@ if (!msg) return -ENOBUFS; -@@ -6100,7 +6100,7 @@ static void nl80211_teardown_ap(struct i +@@ -6176,8 +6176,7 @@ static void nl80211_teardown_ap(struct i nl80211_mgmt_unsubscribe(bss, "AP teardown"); nl80211_put_wiphy_data_ap(bss); -- bss->flink->beacon_set = 0; +- if (bss->flink) +- bss->flink->beacon_set = 0; + wpa_driver_nl80211_del_beacon_all(bss); } -@@ -8859,8 +8859,6 @@ static int wpa_driver_nl80211_if_remove( +@@ -8977,8 +8976,6 @@ static int wpa_driver_nl80211_if_remove( } else { wpa_printf(MSG_DEBUG, "nl80211: First BSS - reassign context"); nl80211_teardown_ap(bss); diff --git a/package/network/services/hostapd/patches/381-hostapd_cli_UNKNOWN-COMMAND.patch b/package/network/services/hostapd/patches/381-hostapd_cli_UNKNOWN-COMMAND.patch index e9083f6ecc6d58..e68edacb44062c 100644 --- a/package/network/services/hostapd/patches/381-hostapd_cli_UNKNOWN-COMMAND.patch +++ b/package/network/services/hostapd/patches/381-hostapd_cli_UNKNOWN-COMMAND.patch @@ -1,6 +1,17 @@ +From: Denton Gentry +Date: Wed, 30 May 2018 15:05:42 +0000 +Subject: [PATCH] hostapd: make cli treat UNKNOWN COMMAND as failing + +Avoid infinite loop at 100% CPU when running hostapd_cli +if CONFIG_CTRL_IFACE_MIB is not defined. + + _newselect(4, [3], NULL, NULL, ...) + recvfrom(3, "UNKNOWN COMMAND\n", 4095, 0, NULL, NULL) = 16 + sendto(3, "STA-NEXT UNKNOWN COMMAND", 24, 0, NULL, 0) = 24 + --- a/hostapd/hostapd_cli.c +++ b/hostapd/hostapd_cli.c -@@ -757,7 +757,7 @@ static int wpa_ctrl_command_sta(struct w +@@ -753,7 +753,7 @@ static int wpa_ctrl_command_sta(struct w } buf[len] = '\0'; diff --git a/package/network/services/hostapd/patches/390-wpa_ie_cap_workaround.patch b/package/network/services/hostapd/patches/390-wpa_ie_cap_workaround.patch deleted file mode 100644 index 4592c341277ed4..00000000000000 --- a/package/network/services/hostapd/patches/390-wpa_ie_cap_workaround.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- a/src/common/wpa_common.c -+++ b/src/common/wpa_common.c -@@ -2841,6 +2841,31 @@ u32 wpa_akm_to_suite(int akm) - } - - -+static void wpa_fixup_wpa_ie_rsn(u8 *assoc_ie, const u8 *wpa_msg_ie, -+ size_t rsn_ie_len) -+{ -+ int pos, count; -+ -+ pos = sizeof(struct rsn_ie_hdr) + RSN_SELECTOR_LEN; -+ if (rsn_ie_len < pos + 2) -+ return; -+ -+ count = WPA_GET_LE16(wpa_msg_ie + pos); -+ pos += 2 + count * RSN_SELECTOR_LEN; -+ if (rsn_ie_len < pos + 2) -+ return; -+ -+ count = WPA_GET_LE16(wpa_msg_ie + pos); -+ pos += 2 + count * RSN_SELECTOR_LEN; -+ if (rsn_ie_len < pos + 2) -+ return; -+ -+ if (!assoc_ie[pos] && !assoc_ie[pos + 1] && -+ (wpa_msg_ie[pos] || wpa_msg_ie[pos + 1])) -+ memcpy(&assoc_ie[pos], &wpa_msg_ie[pos], 2); -+} -+ -+ - int wpa_compare_rsn_ie(int ft_initial_assoc, - const u8 *ie1, size_t ie1len, - const u8 *ie2, size_t ie2len) -@@ -2848,8 +2873,19 @@ int wpa_compare_rsn_ie(int ft_initial_as - if (ie1 == NULL || ie2 == NULL) - return -1; - -- if (ie1len == ie2len && os_memcmp(ie1, ie2, ie1len) == 0) -- return 0; /* identical IEs */ -+ if (ie1len == ie2len) { -+ u8 *ie_tmp; -+ -+ if (os_memcmp(ie1, ie2, ie1len) == 0) -+ return 0; /* identical IEs */ -+ -+ ie_tmp = alloca(ie1len); -+ memcpy(ie_tmp, ie1, ie1len); -+ wpa_fixup_wpa_ie_rsn(ie_tmp, ie2, ie1len); -+ -+ if (os_memcmp(ie_tmp, ie2, ie1len) == 0) -+ return 0; /* only mismatch in RSN capabilties */ -+ } - - #ifdef CONFIG_IEEE80211R - if (ft_initial_assoc) { diff --git a/package/network/services/hostapd/patches/400-wps_single_auth_enc_type.patch b/package/network/services/hostapd/patches/400-wps_single_auth_enc_type.patch index edcd98525743ed..65452a7c407967 100644 --- a/package/network/services/hostapd/patches/400-wps_single_auth_enc_type.patch +++ b/package/network/services/hostapd/patches/400-wps_single_auth_enc_type.patch @@ -1,3 +1,10 @@ +From: Felix Fietkau +Date: Sat, 9 Jul 2011 07:19:55 +0000 +Subject: [PATCH] hostapd: only advertise a single encryption type via WPS if + multiple are supported + +Fixes windows 7 interop issues + --- a/src/ap/wps_hostapd.c +++ b/src/ap/wps_hostapd.c @@ -394,9 +394,8 @@ static int hapd_wps_reconfig_in_memory(s diff --git a/package/network/services/hostapd/patches/410-limit_debug_messages.patch b/package/network/services/hostapd/patches/410-limit_debug_messages.patch index 48a5589200f198..58dd415f0969cb 100644 --- a/package/network/services/hostapd/patches/410-limit_debug_messages.patch +++ b/package/network/services/hostapd/patches/410-limit_debug_messages.patch @@ -1,3 +1,8 @@ +From: Felix Fietkau +Date: Mon, 20 Feb 2012 23:41:52 +0000 +Subject: [PATCH] hostapd: add configurable debug message minimum priority to + cut down on bloat generated by excessive debug messages + --- a/src/utils/wpa_debug.c +++ b/src/utils/wpa_debug.c @@ -206,7 +206,7 @@ void wpa_debug_close_linux_tracing(void) diff --git a/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch b/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch index dc19553e26ea87..ac1c9280b75656 100644 --- a/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch +++ b/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch @@ -14,15 +14,7 @@ Signed-hostap: Antonio Quartulli --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -19,6 +19,7 @@ - - #define WPA_SUPPLICANT_DRIVER_VERSION 4 - -+#include "ap/sta_info.h" - #include "common/defs.h" - #include "common/ieee802_11_defs.h" - #include "common/wpa_common.h" -@@ -953,6 +954,9 @@ struct wpa_driver_associate_params { +@@ -971,6 +971,9 @@ struct wpa_driver_associate_params { * responsible for selecting with which BSS to associate. */ const u8 *bssid; @@ -42,7 +34,7 @@ Signed-hostap: Antonio Quartulli #include "config.h" -@@ -2389,6 +2390,97 @@ static char * wpa_config_write_mac_value +@@ -2421,6 +2422,97 @@ static char * wpa_config_write_mac_value #endif /* NO_CONFIG_WRITE */ @@ -140,7 +132,7 @@ Signed-hostap: Antonio Quartulli /* Helper macros for network block parser */ #ifdef OFFSET -@@ -2674,6 +2766,8 @@ static const struct parse_data ssid_fiel +@@ -2713,6 +2805,8 @@ static const struct parse_data ssid_fiel { INT(ap_max_inactivity) }, { INT(dtim_period) }, { INT(beacon_int) }, @@ -151,18 +143,7 @@ Signed-hostap: Antonio Quartulli { INT_RANGE(macsec_integ_only, 0, 1) }, --- a/wpa_supplicant/config_ssid.h +++ b/wpa_supplicant/config_ssid.h -@@ -10,8 +10,10 @@ - #define CONFIG_SSID_H - - #include "common/defs.h" -+#include "ap/sta_info.h" - #include "utils/list.h" - #include "eap_peer/eap_config.h" -+#include "drivers/nl80211_copy.h" - - - #define DEFAULT_EAP_WORKAROUND ((unsigned int) -1) -@@ -879,6 +881,9 @@ struct wpa_ssid { +@@ -879,6 +879,9 @@ struct wpa_ssid { */ void *parent_cred; @@ -174,7 +155,7 @@ Signed-hostap: Antonio Quartulli * macsec_policy - Determines the policy for MACsec secure session --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -4177,6 +4177,12 @@ static void wpas_start_assoc_cb(struct w +@@ -4249,6 +4249,12 @@ static void wpas_start_assoc_cb(struct w params.beacon_int = ssid->beacon_int; else params.beacon_int = wpa_s->conf->beacon_int; diff --git a/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch b/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch index daa36c2f35cbb9..c24ca46e969faf 100644 --- a/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch +++ b/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch @@ -19,7 +19,7 @@ Tested-by: Simon Wunderlich --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -1827,6 +1827,7 @@ struct wpa_driver_mesh_join_params { +@@ -1876,6 +1876,7 @@ struct wpa_driver_mesh_join_params { #define WPA_DRIVER_MESH_FLAG_AMPE 0x00000008 unsigned int flags; bool handle_dfs; @@ -29,7 +29,7 @@ Tested-by: Simon Wunderlich struct wpa_driver_set_key_params { --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -11667,6 +11667,18 @@ static int nl80211_put_mesh_id(struct nl +@@ -11850,6 +11850,18 @@ static int nl80211_put_mesh_id(struct nl } @@ -48,7 +48,7 @@ Tested-by: Simon Wunderlich static int nl80211_put_mesh_config(struct nl_msg *msg, struct wpa_driver_mesh_bss_params *params) { -@@ -11728,6 +11740,7 @@ static int nl80211_join_mesh(struct i802 +@@ -11911,6 +11923,7 @@ static int nl80211_join_mesh(struct i802 nl80211_put_basic_rates(msg, params->basic_rates) || nl80211_put_mesh_id(msg, params->meshid, params->meshid_len) || nl80211_put_beacon_int(msg, params->beacon_int) || diff --git a/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch b/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch index 4d7d85f4ab8ea5..664f27bd63ad64 100644 --- a/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch +++ b/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch @@ -1,6 +1,11 @@ +From: Felix Fietkau +Date: Tue, 14 Nov 2017 12:38:08 +0100 +Subject: [PATCH] Fix issues with disabling obss scan when using fixed_freq on + mesh + --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -3040,6 +3040,10 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3100,6 +3100,10 @@ void ibss_mesh_setup_freq(struct wpa_sup freq->freq = ssid->frequency; diff --git a/package/network/services/hostapd/patches/465-hostapd-config-support-random-BSS-color.patch b/package/network/services/hostapd/patches/465-hostapd-config-support-random-BSS-color.patch index 7d3d94648e1930..8da7a2948eaca9 100644 --- a/package/network/services/hostapd/patches/465-hostapd-config-support-random-BSS-color.patch +++ b/package/network/services/hostapd/patches/465-hostapd-config-support-random-BSS-color.patch @@ -13,7 +13,7 @@ Signed-off-by: David Bauer --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -3500,6 +3500,8 @@ static int hostapd_config_fill(struct ho +@@ -3708,6 +3708,8 @@ static int hostapd_config_fill(struct ho } else if (os_strcmp(buf, "he_bss_color") == 0) { conf->he_op.he_bss_color = atoi(pos) & 0x3f; conf->he_op.he_bss_color_disabled = 0; diff --git a/package/network/services/hostapd/patches/470-survey_data_fallback.patch b/package/network/services/hostapd/patches/470-survey_data_fallback.patch index 79ab48c5c27486..1ae2c599ebb0a7 100644 --- a/package/network/services/hostapd/patches/470-survey_data_fallback.patch +++ b/package/network/services/hostapd/patches/470-survey_data_fallback.patch @@ -1,6 +1,10 @@ +From: Felix Fietkau +Date: Wed, 15 Jun 2016 17:31:48 +0200 +Subject: [PATCH] hostapd: implement fallback for incomplete survey data + --- a/src/ap/acs.c +++ b/src/ap/acs.c -@@ -455,17 +455,17 @@ static int acs_get_bw_center_chan(int fr +@@ -467,17 +467,17 @@ static int acs_get_bw_center_chan(int fr static int acs_survey_is_sufficient(struct freq_survey *survey) { if (!(survey->filled & SURVEY_HAS_NF)) { @@ -20,7 +24,7 @@ } if (!(survey->filled & SURVEY_HAS_CHAN_TIME_BUSY) && -@@ -473,7 +473,6 @@ static int acs_survey_is_sufficient(stru +@@ -485,7 +485,6 @@ static int acs_survey_is_sufficient(stru wpa_printf(MSG_INFO, "ACS: Survey for freq %d is missing RX and busy time (at least one is required)", survey->freq); diff --git a/package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch b/package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch index 0efa6db9085f2b..e1bb37ea55f109 100644 --- a/package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch +++ b/package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch @@ -1,3 +1,13 @@ +From: David Bauer +Date: Sat, 27 Nov 2021 22:08:28 +0100 +Subject: [PATCH] hostapd: add OpenWrt specific statistic counters + +This adds a new struct for storing statistics not (yet) tracked by +hostapd regarding RRM and WNM activity. + +These statistics can be read using the get_status hostapd interface ubus +method. + --- a/src/ap/hostapd.h +++ b/src/ap/hostapd.h @@ -163,6 +163,21 @@ struct hostapd_sae_commit_queue { @@ -32,9 +42,20 @@ int num_sta; /* number of entries in sta_list */ struct sta_info *sta_list; /* STA info list head */ #define STA_HASH_SIZE 256 +--- a/src/ap/rrm.c ++++ b/src/ap/rrm.c +@@ -269,6 +269,8 @@ static void hostapd_send_nei_report_resp + } + } + ++ hapd->openwrt_stats.rrm.neighbor_report_tx++; ++ + hostapd_drv_send_action(hapd, hapd->iface->freq, 0, addr, + wpabuf_head(buf), wpabuf_len(buf)); + wpabuf_free(buf); --- a/src/ap/wnm_ap.c +++ b/src/ap/wnm_ap.c -@@ -386,6 +386,7 @@ static int ieee802_11_send_bss_trans_mgm +@@ -410,6 +410,7 @@ static int ieee802_11_send_bss_trans_mgm mgmt->u.action.u.bss_tm_req.validity_interval = 1; pos = mgmt->u.action.u.bss_tm_req.variable; @@ -42,7 +63,7 @@ wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request to " MACSTR " dialog_token=%u req_mode=0x%x disassoc_timer=%u " "validity_interval=%u", -@@ -790,10 +791,12 @@ int ieee802_11_rx_wnm_action_ap(struct h +@@ -814,10 +815,12 @@ int ieee802_11_rx_wnm_action_ap(struct h plen); return 0; case WNM_BSS_TRANS_MGMT_QUERY: @@ -55,7 +76,7 @@ ieee802_11_rx_bss_trans_mgmt_resp(hapd, mgmt->sa, payload, plen); return 0; -@@ -840,6 +843,7 @@ int wnm_send_disassoc_imminent(struct ho +@@ -865,6 +868,7 @@ int wnm_send_disassoc_imminent(struct ho pos = mgmt->u.action.u.bss_tm_req.variable; @@ -63,7 +84,7 @@ wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request frame to indicate imminent disassociation (disassoc_timer=%d) to " MACSTR, disassoc_timer, MAC2STR(sta->addr)); if (hostapd_drv_send_mlme(hapd, buf, pos - buf, 0, NULL, 0, 0) < 0) { -@@ -921,6 +925,7 @@ int wnm_send_ess_disassoc_imminent(struc +@@ -947,6 +951,7 @@ int wnm_send_ess_disassoc_imminent(struc return -1; } @@ -71,22 +92,11 @@ if (disassoc_timer) { /* send disassociation frame after time-out */ set_disassoc_timer(hapd, sta, disassoc_timer); -@@ -1001,6 +1006,7 @@ int wnm_send_bss_tm_req(struct hostapd_d +@@ -1028,6 +1033,7 @@ int wnm_send_bss_tm_req(struct hostapd_d } os_free(buf); + hapd->openwrt_stats.wnm.bss_transition_request_tx++; if (disassoc_timer) { - /* send disassociation frame after time-out */ - set_disassoc_timer(hapd, sta, disassoc_timer); ---- a/src/ap/rrm.c -+++ b/src/ap/rrm.c -@@ -269,6 +269,8 @@ static void hostapd_send_nei_report_resp - } - } - -+ hapd->openwrt_stats.rrm.neighbor_report_tx++; -+ - hostapd_drv_send_action(hapd, hapd->iface->freq, 0, addr, - wpabuf_head(buf), wpabuf_len(buf)); - wpabuf_free(buf); + #ifdef CONFIG_IEEE80211BE + if (ap_sta_is_mld(hapd, sta)) { diff --git a/package/network/services/hostapd/patches/599-wpa_supplicant-fix-warnings.patch b/package/network/services/hostapd/patches/599-wpa_supplicant-fix-warnings.patch deleted file mode 100644 index e70dc61419daf4..00000000000000 --- a/package/network/services/hostapd/patches/599-wpa_supplicant-fix-warnings.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/wpa_supplicant/wps_supplicant.h -+++ b/wpa_supplicant/wps_supplicant.h -@@ -9,6 +9,7 @@ - #ifndef WPS_SUPPLICANT_H - #define WPS_SUPPLICANT_H - -+struct wpa_bss; - struct wpa_scan_results; - - #ifdef CONFIG_WPS -@@ -16,8 +17,6 @@ struct wpa_scan_results; - #include "wps/wps.h" - #include "wps/wps_defs.h" - --struct wpa_bss; -- - struct wps_new_ap_settings { - const char *ssid_hex; - const char *auth; diff --git a/package/network/services/hostapd/patches/600-ubus_support.patch b/package/network/services/hostapd/patches/600-ubus_support.patch index a6ccf83331fe3e..0457f37f74c982 100644 --- a/package/network/services/hostapd/patches/600-ubus_support.patch +++ b/package/network/services/hostapd/patches/600-ubus_support.patch @@ -1,3 +1,10 @@ +From: Felix Fietkau +Date: Sun, 17 Mar 2013 20:47:18 +0000 +Subject: [PATCH] hostapd: initial prototype of an ubus binding + +Supports listing, removing and banning clients, and hooking into +probe/assoc/auth requests via object subscribe. + --- a/hostapd/Makefile +++ b/hostapd/Makefile @@ -166,6 +166,12 @@ OBJS += ../src/common/hw_features_common @@ -12,36 +19,106 @@ +endif ifdef CONFIG_CODE_COVERAGE - CFLAGS += -O0 -fprofile-arcs -ftest-coverage ---- a/src/ap/hostapd.h -+++ b/src/ap/hostapd.h -@@ -18,6 +18,7 @@ - #include "utils/list.h" - #include "ap_config.h" - #include "drivers/driver.h" -+#include "ubus.h" + CFLAGS += -O0 -fprofile-arcs -ftest-coverage -U_FORTIFY_SOURCE +--- a/src/ap/airtime_policy.c ++++ b/src/ap/airtime_policy.c +@@ -112,8 +112,14 @@ static void set_sta_weights(struct hosta + { + struct sta_info *sta; - #define OCE_STA_CFON_ENABLED(hapd) \ - ((hapd->conf->oce & OCE_STA_CFON) && \ -@@ -184,6 +185,7 @@ struct hostapd_data { - struct hostapd_iface *iface; - struct hostapd_config *iconf; - struct hostapd_bss_config *conf; -+ struct hostapd_ubus_bss ubus; - int interface_added; /* virtual interface added for this BSS */ - unsigned int started:1; - unsigned int disabled:1; -@@ -695,6 +697,7 @@ hostapd_alloc_bss_data(struct hostapd_if - struct hostapd_bss_config *bss); - int hostapd_setup_interface(struct hostapd_iface *iface); - int hostapd_setup_interface_complete(struct hostapd_iface *iface, int err); -+void hostapd_set_own_neighbor_report(struct hostapd_data *hapd); - void hostapd_interface_deinit(struct hostapd_iface *iface); - void hostapd_interface_free(struct hostapd_iface *iface); - struct hostapd_iface * hostapd_alloc_iface(void); +- for (sta = hapd->sta_list; sta; sta = sta->next) +- sta_set_airtime_weight(hapd, sta, weight); ++ for (sta = hapd->sta_list; sta; sta = sta->next) { ++ unsigned int sta_weight = weight; ++ ++ if (sta->dyn_airtime_weight) ++ sta_weight = (weight * sta->dyn_airtime_weight) / 256; ++ ++ sta_set_airtime_weight(hapd, sta, sta_weight); ++ } + } + + +@@ -244,7 +250,10 @@ int airtime_policy_new_sta(struct hostap + unsigned int weight; + + if (hapd->iconf->airtime_mode == AIRTIME_MODE_STATIC) { +- weight = get_weight_for_sta(hapd, sta->addr); ++ if (sta->dyn_airtime_weight) ++ weight = sta->dyn_airtime_weight; ++ else ++ weight = get_weight_for_sta(hapd, sta->addr); + if (weight) + return sta_set_airtime_weight(hapd, sta, weight); + } +--- a/src/ap/beacon.c ++++ b/src/ap/beacon.c +@@ -1351,6 +1351,12 @@ void handle_probe_req(struct hostapd_dat + int mld_id; + u16 links; + #endif /* CONFIG_IEEE80211BE */ ++ struct hostapd_ubus_request req = { ++ .type = HOSTAPD_UBUS_PROBE_REQ, ++ .mgmt_frame = mgmt, ++ .ssi_signal = ssi_signal, ++ .elems = &elems, ++ }; + + if (hapd->iconf->rssi_ignore_probe_request && ssi_signal && + ssi_signal < hapd->iconf->rssi_ignore_probe_request) +@@ -1537,6 +1543,12 @@ void handle_probe_req(struct hostapd_dat + } + #endif /* CONFIG_P2P */ + ++ if (hostapd_ubus_handle_event(hapd, &req)) { ++ wpa_printf(MSG_DEBUG, "Probe request for " MACSTR " rejected by ubus handler.\n", ++ MAC2STR(mgmt->sa)); ++ return; ++ } ++ + /* TODO: verify that supp_rates contains at least one matching rate + * with AP configuration */ + +--- a/src/ap/dfs.c ++++ b/src/ap/dfs.c +@@ -1225,6 +1225,8 @@ int hostapd_dfs_pre_cac_expired(struct h + "freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d", + freq, ht_enabled, chan_offset, chan_width, cf1, cf2); + ++ hostapd_ubus_notify_radar_detected(iface, freq, chan_width, cf1, cf2); ++ + /* Proceed only if DFS is not offloaded to the driver */ + if (iface->drv_flags & WPA_DRIVER_FLAGS_DFS_OFFLOAD) + return 0; +--- a/src/ap/drv_callbacks.c ++++ b/src/ap/drv_callbacks.c +@@ -268,6 +268,10 @@ int hostapd_notif_assoc(struct hostapd_d + struct hostapd_iface *iface = hapd->iface; + #endif /* CONFIG_OWE */ + bool updated = false; ++ struct hostapd_ubus_request req = { ++ .type = HOSTAPD_UBUS_ASSOC_REQ, ++ .addr = addr, ++ }; + + if (addr == NULL) { + /* +@@ -412,6 +416,12 @@ int hostapd_notif_assoc(struct hostapd_d + goto fail; + } + ++ if (hostapd_ubus_handle_event(hapd, &req)) { ++ wpa_printf(MSG_DEBUG, "Station " MACSTR " assoc rejected by ubus handler.\n", ++ MAC2STR(req.addr)); ++ goto fail; ++ } ++ + #ifdef CONFIG_P2P + if (elems.p2p) { + wpabuf_free(sta->p2p_ie); --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -435,6 +435,7 @@ void hostapd_free_hapd_data(struct hosta +@@ -493,6 +493,7 @@ void hostapd_free_hapd_data(struct hosta hapd->beacon_set_done = 0; wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface); @@ -49,7 +126,7 @@ accounting_deinit(hapd); hostapd_deinit_wpa(hapd); vlan_deinit(hapd); -@@ -1187,6 +1188,8 @@ static int hostapd_start_beacon(struct h +@@ -1274,6 +1275,8 @@ static int hostapd_start_beacon(struct h if (hapd->driver && hapd->driver->set_operstate) hapd->driver->set_operstate(hapd->drv_priv, 1); @@ -58,7 +135,7 @@ return 0; } -@@ -2275,6 +2278,7 @@ static int hostapd_setup_interface_compl +@@ -2367,6 +2370,7 @@ static int hostapd_setup_interface_compl if (err) goto fail; @@ -66,7 +143,7 @@ wpa_printf(MSG_DEBUG, "Completing interface initialization"); if (iface->freq) { #ifdef NEED_AP_MLME -@@ -2494,6 +2498,7 @@ dfs_offload: +@@ -2586,6 +2590,7 @@ dfs_offload: fail: wpa_printf(MSG_ERROR, "Interface initialization failed"); @@ -74,7 +151,7 @@ if (iface->is_no_ir) { hostapd_set_state(iface, HAPD_IFACE_NO_IR); -@@ -2984,6 +2989,7 @@ void hostapd_interface_deinit_free(struc +@@ -3076,6 +3081,7 @@ void hostapd_interface_deinit_free(struc (unsigned int) iface->conf->num_bss); driver = iface->bss[0]->driver; drv_priv = iface->bss[0]->drv_priv; @@ -82,9 +159,35 @@ hostapd_interface_deinit(iface); wpa_printf(MSG_DEBUG, "%s: driver=%p drv_priv=%p -> hapd_deinit", __func__, driver, drv_priv); +--- a/src/ap/hostapd.h ++++ b/src/ap/hostapd.h +@@ -18,6 +18,7 @@ + #include "utils/list.h" + #include "ap_config.h" + #include "drivers/driver.h" ++#include "ubus.h" + + #define OCE_STA_CFON_ENABLED(hapd) \ + ((hapd->conf->oce & OCE_STA_CFON) && \ +@@ -184,6 +185,7 @@ struct hostapd_data { + struct hostapd_iface *iface; + struct hostapd_config *iconf; + struct hostapd_bss_config *conf; ++ struct hostapd_ubus_bss ubus; + int interface_added; /* virtual interface added for this BSS */ + unsigned int started:1; + unsigned int disabled:1; +@@ -707,6 +709,7 @@ hostapd_alloc_bss_data(struct hostapd_if + struct hostapd_bss_config *bss); + int hostapd_setup_interface(struct hostapd_iface *iface); + int hostapd_setup_interface_complete(struct hostapd_iface *iface, int err); ++void hostapd_set_own_neighbor_report(struct hostapd_data *hapd); + void hostapd_interface_deinit(struct hostapd_iface *iface); + void hostapd_interface_free(struct hostapd_iface *iface); + struct hostapd_iface * hostapd_alloc_iface(void); --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c -@@ -2786,7 +2786,7 @@ static void handle_auth(struct hostapd_d +@@ -2798,7 +2798,7 @@ static void handle_auth(struct hostapd_d u16 auth_alg, auth_transaction, status_code; u16 resp = WLAN_STATUS_SUCCESS; struct sta_info *sta = NULL; @@ -93,7 +196,7 @@ u16 fc; const u8 *challenge = NULL; u8 resp_ies[2 + WLAN_AUTH_CHALLENGE_LEN]; -@@ -2795,6 +2795,11 @@ static void handle_auth(struct hostapd_d +@@ -2807,6 +2807,11 @@ static void handle_auth(struct hostapd_d struct radius_sta rad_info; const u8 *dst, *sa, *bssid; bool mld_sta = false; @@ -105,7 +208,7 @@ if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) { wpa_printf(MSG_INFO, "handle_auth - too short payload (len=%lu)", -@@ -2986,6 +2991,13 @@ static void handle_auth(struct hostapd_d +@@ -2998,6 +3003,13 @@ static void handle_auth(struct hostapd_d resp = WLAN_STATUS_UNSPECIFIED_FAILURE; goto fail; } @@ -119,7 +222,7 @@ if (res == HOSTAPD_ACL_PENDING) return; -@@ -5161,7 +5173,7 @@ static void handle_assoc(struct hostapd_ +@@ -5242,7 +5254,7 @@ static void handle_assoc(struct hostapd_ int resp = WLAN_STATUS_SUCCESS; u16 reply_res = WLAN_STATUS_UNSPECIFIED_FAILURE; const u8 *pos; @@ -128,7 +231,7 @@ struct sta_info *sta; u8 *tmp = NULL; #ifdef CONFIG_FILS -@@ -5374,6 +5386,11 @@ static void handle_assoc(struct hostapd_ +@@ -5484,6 +5496,11 @@ static void handle_assoc(struct hostapd_ left = res; } #endif /* CONFIG_FILS */ @@ -140,9 +243,9 @@ /* followed by SSID and Supported rates; and HT capabilities if 802.11n * is used */ -@@ -5472,6 +5489,13 @@ static void handle_assoc(struct hostapd_ - } - #endif /* CONFIG_FILS */ +@@ -5586,6 +5603,13 @@ static void handle_assoc(struct hostapd_ + if (set_beacon) + ieee802_11_set_beacons(hapd->iface); + ubus_resp = hostapd_ubus_handle_event(hapd, &req); + if (ubus_resp) { @@ -154,7 +257,7 @@ fail: /* -@@ -5753,6 +5777,7 @@ static void handle_disassoc(struct hosta +@@ -5836,6 +5860,7 @@ static void handle_disassoc(struct hosta (unsigned long) len); return; } @@ -162,7 +265,7 @@ sta = ap_get_sta(hapd, mgmt->sa); if (!sta) { -@@ -5784,6 +5809,8 @@ static void handle_deauth(struct hostapd +@@ -5867,6 +5892,8 @@ static void handle_deauth(struct hostapd /* Clear the PTKSA cache entries for PASN */ ptksa_cache_flush(hapd->ptksa, mgmt->sa, WPA_CIPHER_NONE); @@ -171,63 +274,31 @@ sta = ap_get_sta(hapd, mgmt->sa); if (!sta) { wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR ---- a/src/ap/beacon.c -+++ b/src/ap/beacon.c -@@ -1036,6 +1036,12 @@ void handle_probe_req(struct hostapd_dat - u16 csa_offs[2]; - size_t csa_offs_len; - struct radius_sta rad_info; -+ struct hostapd_ubus_request req = { -+ .type = HOSTAPD_UBUS_PROBE_REQ, -+ .mgmt_frame = mgmt, -+ .ssi_signal = ssi_signal, -+ .elems = &elems, -+ }; - - if (hapd->iconf->rssi_ignore_probe_request && ssi_signal && - ssi_signal < hapd->iconf->rssi_ignore_probe_request) -@@ -1222,6 +1228,12 @@ void handle_probe_req(struct hostapd_dat - } - #endif /* CONFIG_P2P */ - -+ if (hostapd_ubus_handle_event(hapd, &req)) { -+ wpa_printf(MSG_DEBUG, "Probe request for " MACSTR " rejected by ubus handler.\n", -+ MAC2STR(mgmt->sa)); +--- a/src/ap/rrm.c ++++ b/src/ap/rrm.c +@@ -89,6 +89,9 @@ static void hostapd_handle_beacon_report + return; + wpa_msg(hapd->msg_ctx, MSG_INFO, BEACON_RESP_RX MACSTR " %u %02x %s", + MAC2STR(addr), token, rep_mode, report); ++ if (len < sizeof(struct rrm_measurement_beacon_report)) + return; -+ } -+ - /* TODO: verify that supp_rates contains at least one matching rate - * with AP configuration */ ++ hostapd_ubus_notify_beacon_report(hapd, addr, token, rep_mode, (struct rrm_measurement_beacon_report*) pos, len); + } ---- a/src/ap/drv_callbacks.c -+++ b/src/ap/drv_callbacks.c -@@ -260,6 +260,10 @@ int hostapd_notif_assoc(struct hostapd_d - u16 reason = WLAN_REASON_UNSPECIFIED; - int status = WLAN_STATUS_SUCCESS; - const u8 *p2p_dev_addr = NULL; -+ struct hostapd_ubus_request req = { -+ .type = HOSTAPD_UBUS_ASSOC_REQ, -+ .addr = addr, -+ }; - if (addr == NULL) { - /* -@@ -396,6 +400,12 @@ int hostapd_notif_assoc(struct hostapd_d - goto fail; - } +@@ -352,6 +355,9 @@ void hostapd_handle_radio_measurement(st + mgmt->u.action.u.rrm.action, MAC2STR(mgmt->sa)); -+ if (hostapd_ubus_handle_event(hapd, &req)) { -+ wpa_printf(MSG_DEBUG, "Station " MACSTR " assoc rejected by ubus handler.\n", -+ MAC2STR(req.addr)); -+ goto fail; -+ } -+ - #ifdef CONFIG_P2P - if (elems.p2p) { - wpabuf_free(sta->p2p_ie); + switch (mgmt->u.action.u.rrm.action) { ++ case WLAN_RRM_LINK_MEASUREMENT_REPORT: ++ hostapd_ubus_handle_link_measurement(hapd, buf, len); ++ break; + case WLAN_RRM_RADIO_MEASUREMENT_REPORT: + hostapd_handle_radio_msmt_report(hapd, buf, len); + break; --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c -@@ -471,6 +471,7 @@ void ap_handle_timer(void *eloop_ctx, vo +@@ -476,6 +476,7 @@ void ap_handle_timer(void *eloop_ctx, vo hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_INFO, "deauthenticated due to " "local deauth request"); @@ -235,7 +306,7 @@ ap_free_sta(hapd, sta); return; } -@@ -626,6 +627,7 @@ skip_poll: +@@ -631,6 +632,7 @@ skip_poll: mlme_deauthenticate_indication( hapd, sta, WLAN_REASON_PREV_AUTH_NOT_VALID); @@ -243,8 +314,8 @@ ap_free_sta(hapd, sta); break; } -@@ -1344,15 +1346,28 @@ void ap_sta_set_authorized(struct hostap - sta->addr, authorized, dev_addr); +@@ -1448,15 +1450,28 @@ void ap_sta_set_authorized_event(struct + os_snprintf(buf, sizeof(buf), MACSTR, MAC2STR(sta->addr)); if (authorized) { + static const char * const auth_algs[] = { @@ -272,202 +343,54 @@ #ifdef CONFIG_P2P if (wpa_auth_get_ip_addr(sta->wpa_sm, ip_addr_buf) == 0) { os_snprintf(ip_addr, sizeof(ip_addr), -@@ -1362,6 +1377,13 @@ void ap_sta_set_authorized(struct hostap - } - #endif /* CONFIG_P2P */ - -+ if (sta->auth_alg < ARRAY_SIZE(auth_algs)) -+ auth_alg = auth_algs[sta->auth_alg]; -+ -+ if (auth_alg) -+ os_snprintf(alg_buf, sizeof(alg_buf), -+ " auth_alg=%s", auth_alg); -+ - keyid = ap_sta_wpa_get_keyid(hapd, sta); - if (keyid) { - os_snprintf(keyid_buf, sizeof(keyid_buf), -@@ -1380,17 +1402,19 @@ void ap_sta_set_authorized(struct hostap - dpp_pkhash, SHA256_MAC_LEN); - } - -- wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_CONNECTED "%s%s%s%s", -- buf, ip_addr, keyid_buf, dpp_pkhash_buf); -+ hostapd_ubus_notify_authorized(hapd, sta, auth_alg); -+ wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_CONNECTED "%s%s%s%s%s", -+ buf, ip_addr, keyid_buf, dpp_pkhash_buf, alg_buf); - - if (hapd->msg_ctx_parent && - hapd->msg_ctx_parent != hapd->msg_ctx) - wpa_msg_no_global(hapd->msg_ctx_parent, MSG_INFO, -- AP_STA_CONNECTED "%s%s%s%s", -+ AP_STA_CONNECTED "%s%s%s%s%s", - buf, ip_addr, keyid_buf, -- dpp_pkhash_buf); -+ dpp_pkhash_buf, alg_buf); - } else { - wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_DISCONNECTED "%s", buf); -+ hostapd_ubus_notify(hapd, "disassoc", sta->addr); - - if (hapd->msg_ctx_parent && - hapd->msg_ctx_parent != hapd->msg_ctx) ---- a/src/ap/wpa_auth_glue.c -+++ b/src/ap/wpa_auth_glue.c -@@ -269,6 +269,7 @@ static void hostapd_wpa_auth_psk_failure - struct hostapd_data *hapd = ctx; - wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_POSSIBLE_PSK_MISMATCH MACSTR, - MAC2STR(addr)); -+ hostapd_ubus_notify(hapd, "key-mismatch", addr); - } - - ---- a/wpa_supplicant/Makefile -+++ b/wpa_supplicant/Makefile -@@ -192,6 +192,13 @@ ifdef CONFIG_EAPOL_TEST - CFLAGS += -Werror -DEAPOL_TEST - endif - -+ifdef CONFIG_UBUS -+CFLAGS += -DUBUS_SUPPORT -+OBJS += ubus.o -+OBJS += ../src/utils/uloop.o -+LIBS += -lubox -lubus -+endif -+ - ifdef CONFIG_CODE_COVERAGE - CFLAGS += -O0 -fprofile-arcs -ftest-coverage - LIBS += -lgcov -@@ -987,6 +994,9 @@ ifdef CONFIG_CTRL_IFACE_MIB - CFLAGS += -DCONFIG_CTRL_IFACE_MIB - endif - OBJS += ../src/ap/ctrl_iface_ap.o -+ifdef CONFIG_UBUS -+OBJS += ../src/ap/ubus.o -+endif - endif - - CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY ---- a/wpa_supplicant/wpa_supplicant.c -+++ b/wpa_supplicant/wpa_supplicant.c -@@ -7595,6 +7595,8 @@ struct wpa_supplicant * wpa_supplicant_a - } - #endif /* CONFIG_P2P */ - -+ wpas_ubus_add_bss(wpa_s); -+ - return wpa_s; - } - -@@ -7621,6 +7623,8 @@ int wpa_supplicant_remove_iface(struct w - struct wpa_supplicant *parent = wpa_s->parent; - #endif /* CONFIG_MESH */ - -+ wpas_ubus_free_bss(wpa_s); -+ - /* Remove interface from the global list of interfaces */ - prev = global->ifaces; - if (prev == wpa_s) { -@@ -7967,8 +7971,12 @@ int wpa_supplicant_run(struct wpa_global - eloop_register_signal_terminate(wpa_supplicant_terminate, global); - eloop_register_signal_reconfig(wpa_supplicant_reconfig, global); - -+ wpas_ubus_add(global); -+ - eloop_run(); - -+ wpas_ubus_free(global); -+ - return 0; - } - ---- a/wpa_supplicant/wpa_supplicant_i.h -+++ b/wpa_supplicant/wpa_supplicant_i.h -@@ -21,6 +21,7 @@ - #include "config_ssid.h" - #include "wmm_ac.h" - #include "pasn/pasn_common.h" -+#include "ubus.h" - - extern const char *const wpa_supplicant_version; - extern const char *const wpa_supplicant_license; -@@ -319,6 +320,8 @@ struct wpa_global { - #endif /* CONFIG_WIFI_DISPLAY */ - - struct psk_list_entry *add_psk; /* From group formation */ -+ -+ struct ubus_object ubus_global; - }; - - -@@ -685,6 +688,7 @@ struct wpa_supplicant { - unsigned char own_addr[ETH_ALEN]; - unsigned char perm_addr[ETH_ALEN]; - char ifname[100]; -+ struct wpas_ubus_bss ubus; - #ifdef CONFIG_MATCH_IFACE - int matched; - #endif /* CONFIG_MATCH_IFACE */ ---- a/wpa_supplicant/wps_supplicant.c -+++ b/wpa_supplicant/wps_supplicant.c -@@ -33,6 +33,7 @@ - #include "p2p/p2p.h" - #include "p2p_supplicant.h" - #include "wps_supplicant.h" -+#include "ubus.h" - - - #ifndef WPS_PIN_SCAN_IGNORE_SEL_REG -@@ -402,6 +403,8 @@ static int wpa_supplicant_wps_cred(void - wpa_hexdump_key(MSG_DEBUG, "WPS: Received Credential attribute", - cred->cred_attr, cred->cred_attr_len); - -+ wpas_ubus_notify(wpa_s, cred); -+ - if (wpa_s->conf->wps_cred_processing == 1) - return 0; +@@ -1467,6 +1482,13 @@ void ap_sta_set_authorized_event(struct + } + #endif /* CONFIG_P2P */ ---- a/wpa_supplicant/main.c -+++ b/wpa_supplicant/main.c -@@ -203,7 +203,7 @@ int main(int argc, char *argv[]) ++ if (sta->auth_alg < ARRAY_SIZE(auth_algs)) ++ auth_alg = auth_algs[sta->auth_alg]; ++ ++ if (auth_alg) ++ os_snprintf(alg_buf, sizeof(alg_buf), ++ " auth_alg=%s", auth_alg); ++ + keyid = ap_sta_wpa_get_keyid(hapd, sta); + if (keyid) { + os_snprintf(keyid_buf, sizeof(keyid_buf), +@@ -1485,17 +1507,19 @@ void ap_sta_set_authorized_event(struct + dpp_pkhash, SHA256_MAC_LEN); + } - for (;;) { - c = getopt(argc, argv, -- "b:Bc:C:D:de:f:g:G:hi:I:KLMm:No:O:p:P:qsTtuv::W"); -+ "b:Bc:C:D:de:f:g:G:hi:I:KLMm:nNo:O:p:P:qsTtuv::W"); - if (c < 0) - break; - switch (c) { -@@ -268,6 +268,9 @@ int main(int argc, char *argv[]) - params.conf_p2p_dev = optarg; - break; - #endif /* CONFIG_P2P */ -+ case 'n': -+ iface_count = 0; -+ break; - case 'o': - params.override_driver = optarg; - break; ---- a/src/ap/rrm.c -+++ b/src/ap/rrm.c -@@ -89,6 +89,9 @@ static void hostapd_handle_beacon_report - return; - wpa_msg(hapd->msg_ctx, MSG_INFO, BEACON_RESP_RX MACSTR " %u %02x %s", - MAC2STR(addr), token, rep_mode, report); -+ if (len < sizeof(struct rrm_measurement_beacon_report)) -+ return; -+ hostapd_ubus_notify_beacon_report(hapd, addr, token, rep_mode, (struct rrm_measurement_beacon_report*) pos, len); - } +- wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_CONNECTED "%s%s%s%s", +- buf, ip_addr, keyid_buf, dpp_pkhash_buf); ++ hostapd_ubus_notify_authorized(hapd, sta, auth_alg); ++ wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_CONNECTED "%s%s%s%s%s", ++ buf, ip_addr, keyid_buf, dpp_pkhash_buf, alg_buf); + if (hapd->msg_ctx_parent && + hapd->msg_ctx_parent != hapd->msg_ctx) + wpa_msg_no_global(hapd->msg_ctx_parent, MSG_INFO, +- AP_STA_CONNECTED "%s%s%s%s", ++ AP_STA_CONNECTED "%s%s%s%s%s", + buf, ip_addr, keyid_buf, +- dpp_pkhash_buf); ++ dpp_pkhash_buf, alg_buf); + } else { + wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_DISCONNECTED "%s", buf); ++ hostapd_ubus_notify(hapd, "disassoc", sta->addr); -@@ -352,6 +355,9 @@ void hostapd_handle_radio_measurement(st - mgmt->u.action.u.rrm.action, MAC2STR(mgmt->sa)); + if (hapd->msg_ctx_parent && + hapd->msg_ctx_parent != hapd->msg_ctx) +--- a/src/ap/sta_info.h ++++ b/src/ap/sta_info.h +@@ -319,6 +319,7 @@ struct sta_info { + #endif /* CONFIG_TESTING_OPTIONS */ + #ifdef CONFIG_AIRTIME_POLICY + unsigned int airtime_weight; ++ unsigned int dyn_airtime_weight; + struct os_reltime backlogged_until; + #endif /* CONFIG_AIRTIME_POLICY */ - switch (mgmt->u.action.u.rrm.action) { -+ case WLAN_RRM_LINK_MEASUREMENT_REPORT: -+ hostapd_ubus_handle_link_measurement(hapd, buf, len); -+ break; - case WLAN_RRM_RADIO_MEASUREMENT_REPORT: - hostapd_handle_radio_msmt_report(hapd, buf, len); - break; --- a/src/ap/vlan_init.c +++ b/src/ap/vlan_init.c @@ -22,6 +22,7 @@ @@ -506,61 +429,9 @@ return hostapd_vlan_if_remove(hapd, vlan->ifname); } ---- a/src/ap/dfs.c -+++ b/src/ap/dfs.c -@@ -1216,6 +1216,8 @@ int hostapd_dfs_pre_cac_expired(struct h - "freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d", - freq, ht_enabled, chan_offset, chan_width, cf1, cf2); - -+ hostapd_ubus_notify_radar_detected(iface, freq, chan_width, cf1, cf2); -+ - /* Proceed only if DFS is not offloaded to the driver */ - if (iface->drv_flags & WPA_DRIVER_FLAGS_DFS_OFFLOAD) - return 0; ---- a/src/ap/airtime_policy.c -+++ b/src/ap/airtime_policy.c -@@ -112,8 +112,14 @@ static void set_sta_weights(struct hosta - { - struct sta_info *sta; - -- for (sta = hapd->sta_list; sta; sta = sta->next) -- sta_set_airtime_weight(hapd, sta, weight); -+ for (sta = hapd->sta_list; sta; sta = sta->next) { -+ unsigned int sta_weight = weight; -+ -+ if (sta->dyn_airtime_weight) -+ sta_weight = (weight * sta->dyn_airtime_weight) / 256; -+ -+ sta_set_airtime_weight(hapd, sta, sta_weight); -+ } - } - - -@@ -244,7 +250,10 @@ int airtime_policy_new_sta(struct hostap - unsigned int weight; - - if (hapd->iconf->airtime_mode == AIRTIME_MODE_STATIC) { -- weight = get_weight_for_sta(hapd, sta->addr); -+ if (sta->dyn_airtime_weight) -+ weight = sta->dyn_airtime_weight; -+ else -+ weight = get_weight_for_sta(hapd, sta->addr); - if (weight) - return sta_set_airtime_weight(hapd, sta, weight); - } ---- a/src/ap/sta_info.h -+++ b/src/ap/sta_info.h -@@ -322,6 +322,7 @@ struct sta_info { - #endif /* CONFIG_TESTING_OPTIONS */ - #ifdef CONFIG_AIRTIME_POLICY - unsigned int airtime_weight; -+ unsigned int dyn_airtime_weight; - struct os_reltime backlogged_until; - #endif /* CONFIG_AIRTIME_POLICY */ - --- a/src/ap/wnm_ap.c +++ b/src/ap/wnm_ap.c -@@ -455,7 +455,8 @@ static void ieee802_11_rx_bss_trans_mgmt +@@ -479,7 +479,8 @@ static void ieee802_11_rx_bss_trans_mgmt MAC2STR(addr), reason, hex ? " neighbor=" : "", hex); os_free(hex); @@ -570,7 +441,7 @@ } -@@ -477,7 +478,7 @@ static void ieee802_11_rx_bss_trans_mgmt +@@ -501,7 +502,7 @@ static void ieee802_11_rx_bss_trans_mgmt size_t len) { u8 dialog_token, status_code, bss_termination_delay; @@ -579,7 +450,7 @@ int enabled = hapd->conf->bss_transition; struct sta_info *sta; -@@ -524,6 +525,7 @@ static void ieee802_11_rx_bss_trans_mgmt +@@ -548,6 +549,7 @@ static void ieee802_11_rx_bss_trans_mgmt wpa_printf(MSG_DEBUG, "WNM: not enough room for Target BSSID field"); return; } @@ -587,7 +458,7 @@ sta->agreed_to_steer = 1; eloop_cancel_timeout(ap_sta_reset_steer_flag_timer, hapd, sta); eloop_register_timeout(2, 0, ap_sta_reset_steer_flag_timer, -@@ -543,6 +545,10 @@ static void ieee802_11_rx_bss_trans_mgmt +@@ -567,6 +569,10 @@ static void ieee802_11_rx_bss_trans_mgmt MAC2STR(addr), status_code, bss_termination_delay); } @@ -598,6 +469,16 @@ wpa_hexdump(MSG_DEBUG, "WNM: BSS Transition Candidate List Entries", pos, end - pos); } +--- a/src/ap/wpa_auth_glue.c ++++ b/src/ap/wpa_auth_glue.c +@@ -275,6 +275,7 @@ static void hostapd_wpa_auth_psk_failure + struct hostapd_data *hapd = ctx; + wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_POSSIBLE_PSK_MISMATCH MACSTR, + MAC2STR(addr)); ++ hostapd_ubus_notify(hapd, "key-mismatch", addr); + } + + --- a/src/utils/eloop.c +++ b/src/utils/eloop.c @@ -77,6 +77,9 @@ struct eloop_sock_table { @@ -746,3 +627,129 @@ + + eloop_register_cb(uloop_poll_handler, uloop_timeout_poll_handler); +} +--- a/wpa_supplicant/Makefile ++++ b/wpa_supplicant/Makefile +@@ -189,6 +189,13 @@ ifdef CONFIG_EAPOL_TEST + CFLAGS += -Werror -DEAPOL_TEST + endif + ++ifdef CONFIG_UBUS ++CFLAGS += -DUBUS_SUPPORT ++OBJS += ubus.o ++OBJS += ../src/utils/uloop.o ++LIBS += -lubox -lubus ++endif ++ + ifdef CONFIG_CODE_COVERAGE + CFLAGS += -O0 -fprofile-arcs -ftest-coverage -U_FORTIFY_SOURCE + LIBS += -lgcov +@@ -1042,6 +1049,9 @@ ifdef CONFIG_CTRL_IFACE_MIB + CFLAGS += -DCONFIG_CTRL_IFACE_MIB + endif + OBJS += ../src/ap/ctrl_iface_ap.o ++ifdef CONFIG_UBUS ++OBJS += ../src/ap/ubus.o ++endif + endif + + CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY +--- a/wpa_supplicant/main.c ++++ b/wpa_supplicant/main.c +@@ -203,7 +203,7 @@ int main(int argc, char *argv[]) + + for (;;) { + c = getopt(argc, argv, +- "b:Bc:C:D:de:f:g:G:hi:I:KLMm:No:O:p:P:qsTtuv::W"); ++ "b:Bc:C:D:de:f:g:G:hi:I:KLMm:nNo:O:p:P:qsTtuv::W"); + if (c < 0) + break; + switch (c) { +@@ -268,6 +268,9 @@ int main(int argc, char *argv[]) + params.conf_p2p_dev = optarg; + break; + #endif /* CONFIG_P2P */ ++ case 'n': ++ iface_count = 0; ++ break; + case 'o': + params.override_driver = optarg; + break; +--- a/wpa_supplicant/wpa_supplicant.c ++++ b/wpa_supplicant/wpa_supplicant.c +@@ -7716,6 +7716,8 @@ struct wpa_supplicant * wpa_supplicant_a + } + #endif /* CONFIG_P2P */ + ++ wpas_ubus_add_bss(wpa_s); ++ + return wpa_s; + } + +@@ -7742,6 +7744,8 @@ int wpa_supplicant_remove_iface(struct w + struct wpa_supplicant *parent = wpa_s->parent; + #endif /* CONFIG_MESH */ + ++ wpas_ubus_free_bss(wpa_s); ++ + /* Remove interface from the global list of interfaces */ + prev = global->ifaces; + if (prev == wpa_s) { +@@ -8088,8 +8092,12 @@ int wpa_supplicant_run(struct wpa_global + eloop_register_signal_terminate(wpa_supplicant_terminate, global); + eloop_register_signal_reconfig(wpa_supplicant_reconfig, global); + ++ wpas_ubus_add(global); ++ + eloop_run(); + ++ wpas_ubus_free(global); ++ + return 0; + } + +--- a/wpa_supplicant/wpa_supplicant_i.h ++++ b/wpa_supplicant/wpa_supplicant_i.h +@@ -21,6 +21,7 @@ + #include "config_ssid.h" + #include "wmm_ac.h" + #include "pasn/pasn_common.h" ++#include "ubus.h" + + extern const char *const wpa_supplicant_version; + extern const char *const wpa_supplicant_license; +@@ -319,6 +320,8 @@ struct wpa_global { + #endif /* CONFIG_WIFI_DISPLAY */ + + struct psk_list_entry *add_psk; /* From group formation */ ++ ++ struct ubus_object ubus_global; + }; + + +@@ -693,6 +696,7 @@ struct wpa_supplicant { + unsigned char own_addr[ETH_ALEN]; + unsigned char perm_addr[ETH_ALEN]; + char ifname[100]; ++ struct wpas_ubus_bss ubus; + #ifdef CONFIG_MATCH_IFACE + int matched; + #endif /* CONFIG_MATCH_IFACE */ +--- a/wpa_supplicant/wps_supplicant.c ++++ b/wpa_supplicant/wps_supplicant.c +@@ -33,6 +33,7 @@ + #include "p2p/p2p.h" + #include "p2p_supplicant.h" + #include "wps_supplicant.h" ++#include "ubus.h" + + + #ifndef WPS_PIN_SCAN_IGNORE_SEL_REG +@@ -401,6 +402,8 @@ static int wpa_supplicant_wps_cred(void + wpa_hexdump_key(MSG_DEBUG, "WPS: Received Credential attribute", + cred->cred_attr, cred->cred_attr_len); + ++ wpas_ubus_notify(wpa_s, cred); ++ + if (wpa_s->conf->wps_cred_processing == 1) + return 0; + diff --git a/package/network/services/hostapd/patches/601-ucode_support.patch b/package/network/services/hostapd/patches/601-ucode_support.patch index cfdb51f356cc1b..b826363248a640 100644 --- a/package/network/services/hostapd/patches/601-ucode_support.patch +++ b/package/network/services/hostapd/patches/601-ucode_support.patch @@ -1,3 +1,11 @@ +From: Felix Fietkau +Date: Fri, 26 May 2023 10:23:59 +0200 +Subject: [PATCH] Add ucode support, use ucode for the main ubus object + +This implements vastly improved dynamic configuration reload support. +It can handle configuration changes on individual wifi interfaces, as well +as adding/removing interfaces. + --- a/hostapd/Makefile +++ b/hostapd/Makefile @@ -168,9 +168,21 @@ OBJS += ../src/eapol_auth/eapol_auth_sm. @@ -24,9 +32,27 @@ endif ifdef CONFIG_CODE_COVERAGE +--- a/hostapd/ctrl_iface.c ++++ b/hostapd/ctrl_iface.c +@@ -5487,6 +5487,7 @@ try_again: + return -1; + } + ++ interface->ctrl_iface_recv = hostapd_ctrl_iface_receive_process; + wpa_msg_register_cb(hostapd_ctrl_iface_msg_cb); + + return 0; +@@ -5588,6 +5589,7 @@ fail: + os_free(fname); + + interface->global_ctrl_sock = s; ++ interface->ctrl_iface_recv = hostapd_ctrl_iface_receive_process; + eloop_register_read_sock(s, hostapd_global_ctrl_iface_receive, + interface, NULL); + --- a/hostapd/main.c +++ b/hostapd/main.c -@@ -1007,6 +1007,7 @@ int main(int argc, char *argv[]) +@@ -1014,6 +1014,7 @@ int main(int argc, char *argv[]) } hostapd_global_ctrl_iface_init(&interfaces); @@ -34,7 +60,7 @@ if (hostapd_global_run(&interfaces, daemonize, pid_file)) { wpa_printf(MSG_ERROR, "Failed to start eloop"); -@@ -1016,6 +1017,7 @@ int main(int argc, char *argv[]) +@@ -1023,6 +1024,7 @@ int main(int argc, char *argv[]) ret = 0; out: @@ -42,55 +68,35 @@ hostapd_global_ctrl_iface_deinit(&interfaces); /* Deinitialize all interfaces */ for (i = 0; i < interfaces.count; i++) { ---- a/src/ap/hostapd.h -+++ b/src/ap/hostapd.h -@@ -19,6 +19,7 @@ - #include "ap_config.h" - #include "drivers/driver.h" - #include "ubus.h" -+#include "ucode.h" +--- a/src/ap/ap_drv_ops.h ++++ b/src/ap/ap_drv_ops.h +@@ -399,6 +399,23 @@ static inline int hostapd_drv_stop_ap(st + return hapd->driver->stop_ap(hapd->drv_priv, link_id); + } - #define OCE_STA_CFON_ENABLED(hapd) \ - ((hapd->conf->oce & OCE_STA_CFON) && \ -@@ -51,6 +52,10 @@ struct hapd_interfaces { - struct hostapd_config * (*config_read_cb)(const char *config_fname); - int (*ctrl_iface_init)(struct hostapd_data *hapd); - void (*ctrl_iface_deinit)(struct hostapd_data *hapd); -+ int (*ctrl_iface_recv)(struct hostapd_data *hapd, -+ char *buf, char *reply, int reply_size, -+ struct sockaddr_storage *from, -+ socklen_t fromlen); - int (*for_each_interface)(struct hapd_interfaces *interfaces, - int (*cb)(struct hostapd_iface *iface, - void *ctx), void *ctx); -@@ -186,6 +191,7 @@ struct hostapd_data { - struct hostapd_config *iconf; - struct hostapd_bss_config *conf; - struct hostapd_ubus_bss ubus; -+ struct hostapd_ucode_bss ucode; - int interface_added; /* virtual interface added for this BSS */ - unsigned int started:1; - unsigned int disabled:1; -@@ -506,6 +512,7 @@ struct hostapd_sta_info { - */ - struct hostapd_iface { - struct hapd_interfaces *interfaces; -+ struct hostapd_ucode_iface ucode; - void *owner; - char *config_fname; - struct hostapd_config *conf; -@@ -706,6 +713,8 @@ struct hostapd_iface * hostapd_init(stru - struct hostapd_iface * - hostapd_interface_init_bss(struct hapd_interfaces *interfaces, const char *phy, - const char *config_fname, int debug); -+int hostapd_setup_bss(struct hostapd_data *hapd, int first, bool start_beacon); -+void hostapd_bss_deinit(struct hostapd_data *hapd); - void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta, - int reassoc); - void hostapd_interface_deinit_free(struct hostapd_iface *iface); ++static inline int hostapd_drv_if_rename(struct hostapd_data *hapd, ++ enum wpa_driver_if_type type, ++ const char *ifname, ++ const char *new_name) ++{ ++ if (!hapd->driver || !hapd->driver->if_rename || !hapd->drv_priv) ++ return -1; ++ return hapd->driver->if_rename(hapd->drv_priv, type, ifname, new_name); ++} ++ ++static inline int hostapd_drv_set_first_bss(struct hostapd_data *hapd) ++{ ++ if (!hapd->driver || !hapd->driver->set_first_bss || !hapd->drv_priv) ++ return 0; ++ return hapd->driver->set_first_bss(hapd->drv_priv); ++} ++ + static inline int hostapd_drv_channel_info(struct hostapd_data *hapd, + struct wpa_channel_info *ci) + { --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -252,6 +252,8 @@ int hostapd_reload_config(struct hostapd +@@ -255,6 +255,8 @@ int hostapd_reload_config(struct hostapd struct hostapd_config *newconf, *oldconf; size_t j; @@ -99,7 +105,7 @@ if (iface->config_fname == NULL) { /* Only in-memory config in use - assume it has been updated */ hostapd_clear_old(iface); -@@ -435,6 +437,7 @@ void hostapd_free_hapd_data(struct hosta +@@ -493,6 +495,7 @@ void hostapd_free_hapd_data(struct hosta hapd->beacon_set_done = 0; wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface); @@ -107,7 +113,7 @@ hostapd_ubus_free_bss(hapd); accounting_deinit(hapd); hostapd_deinit_wpa(hapd); -@@ -600,6 +603,7 @@ void hostapd_cleanup_iface_partial(struc +@@ -687,6 +690,7 @@ void hostapd_cleanup_iface_partial(struc static void hostapd_cleanup_iface(struct hostapd_iface *iface) { wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface); @@ -115,7 +121,7 @@ eloop_cancel_timeout(hostapd_interface_setup_failure_handler, iface, NULL); -@@ -1189,6 +1193,7 @@ static int hostapd_start_beacon(struct h +@@ -1276,6 +1280,7 @@ static int hostapd_start_beacon(struct h hapd->driver->set_operstate(hapd->drv_priv, 1); hostapd_ubus_add_bss(hapd); @@ -123,7 +129,7 @@ return 0; } -@@ -1211,8 +1216,7 @@ static int hostapd_start_beacon(struct h +@@ -1298,8 +1303,7 @@ static int hostapd_start_beacon(struct h * initialized. Most of the modules that are initialized here will be * deinitialized in hostapd_cleanup(). */ @@ -133,7 +139,7 @@ { struct hostapd_bss_config *conf = hapd->conf; u8 ssid[SSID_MAX_LEN + 1]; -@@ -2698,7 +2702,7 @@ hostapd_alloc_bss_data(struct hostapd_if +@@ -2790,7 +2794,7 @@ hostapd_alloc_bss_data(struct hostapd_if } @@ -142,7 +148,7 @@ { if (!hapd) return; -@@ -3491,7 +3495,8 @@ int hostapd_remove_iface(struct hapd_int +@@ -3608,7 +3612,8 @@ int hostapd_remove_iface(struct hapd_int hapd_iface = interfaces->iface[i]; if (hapd_iface == NULL) return -1; @@ -152,135 +158,55 @@ wpa_printf(MSG_INFO, "Remove interface '%s'", buf); hapd_iface->driver_ap_teardown = !!(hapd_iface->drv_flags & ---- a/wpa_supplicant/Makefile -+++ b/wpa_supplicant/Makefile -@@ -195,8 +195,20 @@ endif - ifdef CONFIG_UBUS - CFLAGS += -DUBUS_SUPPORT - OBJS += ubus.o -+LIBS += -lubus -+NEED_ULOOP:=y -+endif -+ -+ifdef CONFIG_UCODE -+CFLAGS += -DUCODE_SUPPORT -+OBJS += ../src/utils/ucode.o -+OBJS += ucode.o -+NEED_ULOOP:=y -+endif -+ -+ifdef NEED_ULOOP - OBJS += ../src/utils/uloop.o --LIBS += -lubox -lubus -+LIBS += -lubox - endif - - ifdef CONFIG_CODE_COVERAGE -@@ -997,6 +1009,9 @@ OBJS += ../src/ap/ctrl_iface_ap.o - ifdef CONFIG_UBUS - OBJS += ../src/ap/ubus.o - endif -+ifdef CONFIG_UCODE -+OBJS += ../src/ap/ucode.o -+endif - endif - - CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY ---- a/wpa_supplicant/wpa_supplicant.c -+++ b/wpa_supplicant/wpa_supplicant.c -@@ -1044,6 +1044,7 @@ void wpa_supplicant_set_state(struct wpa - sme_sched_obss_scan(wpa_s, 0); - } - wpa_s->wpa_state = state; -+ wpas_ucode_update_state(wpa_s); - - #ifdef CONFIG_BGSCAN - if (state == WPA_COMPLETED && wpa_s->current_ssid != wpa_s->bgscan_ssid) -@@ -7594,6 +7595,7 @@ struct wpa_supplicant * wpa_supplicant_a - #endif /* CONFIG_P2P */ - - wpas_ubus_add_bss(wpa_s); -+ wpas_ucode_add_bss(wpa_s); - - return wpa_s; - } -@@ -7621,6 +7623,7 @@ int wpa_supplicant_remove_iface(struct w - struct wpa_supplicant *parent = wpa_s->parent; - #endif /* CONFIG_MESH */ - -+ wpas_ucode_free_bss(wpa_s); - wpas_ubus_free_bss(wpa_s); - - /* Remove interface from the global list of interfaces */ -@@ -7931,6 +7934,7 @@ struct wpa_global * wpa_supplicant_init( - - eloop_register_timeout(WPA_SUPPLICANT_CLEANUP_INTERVAL, 0, - wpas_periodic, global, NULL); -+ wpas_ucode_init(global); - - return global; - } -@@ -7969,12 +7973,8 @@ int wpa_supplicant_run(struct wpa_global - eloop_register_signal_terminate(wpa_supplicant_terminate, global); - eloop_register_signal_reconfig(wpa_supplicant_reconfig, global); - -- wpas_ubus_add(global); -- - eloop_run(); - -- wpas_ubus_free(global); -- - return 0; - } - -@@ -8007,6 +8007,8 @@ void wpa_supplicant_deinit(struct wpa_gl - - wpas_notify_supplicant_deinitialized(global); - -+ wpas_ucode_free(); -+ - eap_peer_unregister_methods(); - #ifdef CONFIG_AP - eap_server_unregister_methods(); ---- a/wpa_supplicant/wpa_supplicant_i.h -+++ b/wpa_supplicant/wpa_supplicant_i.h -@@ -22,6 +22,7 @@ - #include "wmm_ac.h" - #include "pasn/pasn_common.h" +--- a/src/ap/hostapd.h ++++ b/src/ap/hostapd.h +@@ -19,6 +19,7 @@ + #include "ap_config.h" + #include "drivers/driver.h" #include "ubus.h" +#include "ucode.h" - extern const char *const wpa_supplicant_version; - extern const char *const wpa_supplicant_license; -@@ -689,6 +690,7 @@ struct wpa_supplicant { - unsigned char perm_addr[ETH_ALEN]; - char ifname[100]; - struct wpas_ubus_bss ubus; -+ struct wpas_ucode_bss ucode; - #ifdef CONFIG_MATCH_IFACE - int matched; - #endif /* CONFIG_MATCH_IFACE */ ---- a/hostapd/ctrl_iface.c -+++ b/hostapd/ctrl_iface.c -@@ -4856,6 +4856,7 @@ try_again: - return -1; - } - -+ interface->ctrl_iface_recv = hostapd_ctrl_iface_receive_process; - wpa_msg_register_cb(hostapd_ctrl_iface_msg_cb); - - return 0; -@@ -4957,6 +4958,7 @@ fail: - os_free(fname); - - interface->global_ctrl_sock = s; -+ interface->ctrl_iface_recv = hostapd_ctrl_iface_receive_process; - eloop_register_read_sock(s, hostapd_global_ctrl_iface_receive, - interface, NULL); - + #define OCE_STA_CFON_ENABLED(hapd) \ + ((hapd->conf->oce & OCE_STA_CFON) && \ +@@ -51,6 +52,10 @@ struct hapd_interfaces { + struct hostapd_config * (*config_read_cb)(const char *config_fname); + int (*ctrl_iface_init)(struct hostapd_data *hapd); + void (*ctrl_iface_deinit)(struct hostapd_data *hapd); ++ int (*ctrl_iface_recv)(struct hostapd_data *hapd, ++ char *buf, char *reply, int reply_size, ++ struct sockaddr_storage *from, ++ socklen_t fromlen); + int (*for_each_interface)(struct hapd_interfaces *interfaces, + int (*cb)(struct hostapd_iface *iface, + void *ctx), void *ctx); +@@ -186,6 +191,7 @@ struct hostapd_data { + struct hostapd_config *iconf; + struct hostapd_bss_config *conf; + struct hostapd_ubus_bss ubus; ++ struct hostapd_ucode_bss ucode; + int interface_added; /* virtual interface added for this BSS */ + unsigned int started:1; + unsigned int disabled:1; +@@ -518,6 +524,7 @@ struct hostapd_sta_info { + */ + struct hostapd_iface { + struct hapd_interfaces *interfaces; ++ struct hostapd_ucode_iface ucode; + void *owner; + char *config_fname; + struct hostapd_config *conf; +@@ -718,6 +725,8 @@ struct hostapd_iface * hostapd_init(stru + struct hostapd_iface * + hostapd_interface_init_bss(struct hapd_interfaces *interfaces, const char *phy, + const char *config_fname, int debug); ++int hostapd_setup_bss(struct hostapd_data *hapd, int first, bool start_beacon); ++void hostapd_bss_deinit(struct hostapd_data *hapd); + void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta, + int reassoc); + void hostapd_interface_deinit_free(struct hostapd_iface *iface); --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -3787,6 +3787,25 @@ struct wpa_driver_ops { +@@ -3856,6 +3856,25 @@ struct wpa_driver_ops { const char *ifname); /** @@ -306,7 +232,7 @@ * set_sta_vlan - Bind a station into a specific interface (AP only) * @priv: Private driver interface data * @ifname: Interface (main or virtual BSS or VLAN) -@@ -6440,6 +6459,7 @@ union wpa_event_data { +@@ -6510,6 +6529,7 @@ union wpa_event_data { /** * struct ch_switch @@ -314,7 +240,7 @@ * @freq: Frequency of new channel in MHz * @ht_enabled: Whether this is an HT channel * @ch_offset: Secondary channel offset -@@ -6450,6 +6470,7 @@ union wpa_event_data { +@@ -6520,6 +6540,7 @@ union wpa_event_data { * @punct_bitmap: Puncturing bitmap */ struct ch_switch { @@ -322,80 +248,9 @@ int freq; int ht_enabled; int ch_offset; ---- a/src/drivers/driver_nl80211_event.c -+++ b/src/drivers/driver_nl80211_event.c -@@ -1202,6 +1202,7 @@ static void mlme_event_ch_switch(struct - struct nlattr *bw, struct nlattr *cf1, - struct nlattr *cf2, - struct nlattr *punct_bitmap, -+ struct nlattr *count, - int finished) - { - struct i802_bss *bss; -@@ -1265,6 +1266,8 @@ static void mlme_event_ch_switch(struct - data.ch_switch.cf1 = nla_get_u32(cf1); - if (cf2) - data.ch_switch.cf2 = nla_get_u32(cf2); -+ if (count) -+ data.ch_switch.count = nla_get_u32(count); - - if (finished) - bss->flink->freq = data.ch_switch.freq; -@@ -3912,6 +3915,7 @@ static void do_process_drv_event(struct - tb[NL80211_ATTR_CENTER_FREQ1], - tb[NL80211_ATTR_CENTER_FREQ2], - tb[NL80211_ATTR_PUNCT_BITMAP], -+ tb[NL80211_ATTR_CH_SWITCH_COUNT], - 0); - break; - case NL80211_CMD_CH_SWITCH_NOTIFY: -@@ -3924,6 +3928,7 @@ static void do_process_drv_event(struct - tb[NL80211_ATTR_CENTER_FREQ1], - tb[NL80211_ATTR_CENTER_FREQ2], - tb[NL80211_ATTR_PUNCT_BITMAP], -+ NULL, - 1); - break; - case NL80211_CMD_DISCONNECT: ---- a/wpa_supplicant/events.c -+++ b/wpa_supplicant/events.c -@@ -5389,6 +5389,7 @@ void supplicant_event(void *ctx, enum wp - event_to_string(event), event); - #endif /* CONFIG_NO_STDOUT_DEBUG */ - -+ wpas_ucode_event(wpa_s, event, data); - switch (event) { - case EVENT_AUTH: - #ifdef CONFIG_FST ---- a/src/ap/ap_drv_ops.h -+++ b/src/ap/ap_drv_ops.h -@@ -393,6 +393,23 @@ static inline int hostapd_drv_stop_ap(st - return hapd->driver->stop_ap(hapd->drv_priv); - } - -+static inline int hostapd_drv_if_rename(struct hostapd_data *hapd, -+ enum wpa_driver_if_type type, -+ const char *ifname, -+ const char *new_name) -+{ -+ if (!hapd->driver || !hapd->driver->if_rename || !hapd->drv_priv) -+ return -1; -+ return hapd->driver->if_rename(hapd->drv_priv, type, ifname, new_name); -+} -+ -+static inline int hostapd_drv_set_first_bss(struct hostapd_data *hapd) -+{ -+ if (!hapd->driver || !hapd->driver->set_first_bss || !hapd->drv_priv) -+ return 0; -+ return hapd->driver->set_first_bss(hapd->drv_priv); -+} -+ - static inline int hostapd_drv_channel_info(struct hostapd_data *hapd, - struct wpa_channel_info *ci) - { --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -73,6 +73,16 @@ enum nlmsgerr_attrs { +@@ -75,6 +75,16 @@ enum nlmsgerr_attrs { #endif /* ANDROID */ @@ -412,7 +267,7 @@ static struct nl_sock * nl_create_handle(struct nl_cb *cb, const char *dbg) { -@@ -379,6 +389,11 @@ static int no_seq_check(struct nl_msg *m +@@ -429,6 +439,11 @@ static int no_seq_check(struct nl_msg *m return NL_OK; } @@ -424,23 +279,24 @@ static void nl80211_nlmsg_clear(struct nl_msg *msg) { -@@ -415,6 +430,7 @@ static int send_and_recv(struct nl80211_ +@@ -502,6 +517,8 @@ int send_and_recv(struct nl80211_global if (!msg) return -ENOMEM; + handle_nl_debug_hook(msg, 1); - cb = nl_cb_clone(global->nl_cb); - if (!cb) - goto out; -@@ -443,6 +459,7 @@ static int send_and_recv(struct nl80211_ ++ + err.err = -ENOMEM; - err = 1; + s_nl_cb = nl_socket_get_cb(nl_handle); +@@ -536,6 +553,7 @@ int send_and_recv(struct nl80211_global + err.orig_msg = msg; + err.err_info = err_info; + nl_cb_set(cb, NL_CB_MSG_IN, NL_CB_CUSTOM, debug_handler, NULL); nl_cb_err(cb, NL_CB_CUSTOM, error_handler, &err); - nl_cb_set(cb, NL_CB_FINISH, NL_CB_CUSTOM, finish_handler, &err); + nl_cb_set(cb, NL_CB_FINISH, NL_CB_CUSTOM, finish_handler, &err.err); if (ack_handler_custom) { -@@ -919,6 +936,7 @@ nl80211_get_wiphy_data_ap(struct i802_bs +@@ -939,6 +957,7 @@ nl80211_get_wiphy_data_ap(struct i802_bs os_free(w); return NULL; } @@ -448,7 +304,7 @@ nl_cb_set(w->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM, no_seq_check, NULL); nl_cb_set(w->nl_cb, NL_CB_VALID, NL_CB_CUSTOM, -@@ -1333,7 +1351,7 @@ static void wpa_driver_nl80211_event_rtm +@@ -1353,7 +1372,7 @@ static void wpa_driver_nl80211_event_rtm } wpa_printf(MSG_DEBUG, "nl80211: Interface down (%s/%s)", namebuf, ifname); @@ -457,7 +313,7 @@ wpa_printf(MSG_DEBUG, "nl80211: Not the main interface (%s) - do not indicate interface down", drv->first_bss->ifname); -@@ -1369,7 +1387,7 @@ static void wpa_driver_nl80211_event_rtm +@@ -1389,7 +1408,7 @@ static void wpa_driver_nl80211_event_rtm } wpa_printf(MSG_DEBUG, "nl80211: Interface up (%s/%s)", namebuf, ifname); @@ -466,15 +322,15 @@ wpa_printf(MSG_DEBUG, "nl80211: Not the main interface (%s) - do not indicate interface up", drv->first_bss->ifname); -@@ -1992,6 +2010,7 @@ static int wpa_driver_nl80211_init_nl_gl - /* Continue without vendor events */ - } +@@ -2035,6 +2054,7 @@ static int wpa_driver_nl80211_init_nl_gl + genl_family_put(family); + nl_cache_free(cache); + nl_cb_set(global->nl_cb, NL_CB_MSG_IN, NL_CB_CUSTOM, debug_handler, NULL); nl_cb_set(global->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM, no_seq_check, NULL); nl_cb_set(global->nl_cb, NL_CB_VALID, NL_CB_CUSTOM, -@@ -2160,6 +2179,7 @@ static int nl80211_init_bss(struct i802_ +@@ -2205,6 +2225,7 @@ static int nl80211_init_bss(struct i802_ if (!bss->nl_cb) return -1; @@ -482,7 +338,7 @@ nl_cb_set(bss->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM, no_seq_check, NULL); nl_cb_set(bss->nl_cb, NL_CB_VALID, NL_CB_CUSTOM, -@@ -8432,6 +8452,7 @@ static void *i802_init(struct hostapd_da +@@ -8554,6 +8575,7 @@ static void *i802_init(struct hostapd_da char master_ifname[IFNAMSIZ]; int ifindex, br_ifindex = 0; int br_added = 0; @@ -490,7 +346,7 @@ bss = wpa_driver_nl80211_drv_init(hapd, params->ifname, params->global_priv, 1, -@@ -8491,21 +8512,17 @@ static void *i802_init(struct hostapd_da +@@ -8613,21 +8635,17 @@ static void *i802_init(struct hostapd_da (params->num_bridge == 0 || !params->bridge[0])) add_ifidx(drv, br_ifindex, drv->ifindex); @@ -522,7 +378,7 @@ } if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_RX) { -@@ -8875,6 +8892,50 @@ static int wpa_driver_nl80211_if_remove( +@@ -8992,6 +9010,50 @@ static int wpa_driver_nl80211_if_remove( return 0; } @@ -573,7 +429,7 @@ static int cookie_handler(struct nl_msg *msg, void *arg) { -@@ -10513,6 +10574,37 @@ static int driver_nl80211_if_remove(void +@@ -10688,6 +10750,37 @@ static int driver_nl80211_if_remove(void } @@ -611,7 +467,7 @@ static int driver_nl80211_send_mlme(void *priv, const u8 *data, size_t data_len, int noack, unsigned int freq, -@@ -13697,6 +13789,8 @@ const struct wpa_driver_ops wpa_driver_n +@@ -13881,6 +13974,8 @@ const struct wpa_driver_ops wpa_driver_n .set_acl = wpa_driver_nl80211_set_acl, .if_add = wpa_driver_nl80211_if_add, .if_remove = driver_nl80211_if_remove, @@ -620,6 +476,41 @@ .send_mlme = driver_nl80211_send_mlme, .get_hw_feature_data = nl80211_get_hw_feature_data, .sta_add = wpa_driver_nl80211_sta_add, +--- a/src/drivers/driver_nl80211_event.c ++++ b/src/drivers/driver_nl80211_event.c +@@ -1196,6 +1196,7 @@ static void mlme_event_ch_switch(struct + struct nlattr *bw, struct nlattr *cf1, + struct nlattr *cf2, + struct nlattr *punct_bitmap, ++ struct nlattr *count, + int finished) + { + struct i802_bss *bss; +@@ -1259,6 +1260,8 @@ static void mlme_event_ch_switch(struct + data.ch_switch.cf1 = nla_get_u32(cf1); + if (cf2) + data.ch_switch.cf2 = nla_get_u32(cf2); ++ if (count) ++ data.ch_switch.count = nla_get_u32(count); + + if (finished) + bss->flink->freq = data.ch_switch.freq; +@@ -3961,6 +3964,7 @@ static void do_process_drv_event(struct + tb[NL80211_ATTR_CENTER_FREQ1], + tb[NL80211_ATTR_CENTER_FREQ2], + tb[NL80211_ATTR_PUNCT_BITMAP], ++ tb[NL80211_ATTR_CH_SWITCH_COUNT], + 0); + break; + case NL80211_CMD_CH_SWITCH_NOTIFY: +@@ -3973,6 +3977,7 @@ static void do_process_drv_event(struct + tb[NL80211_ATTR_CENTER_FREQ1], + tb[NL80211_ATTR_CENTER_FREQ2], + tb[NL80211_ATTR_PUNCT_BITMAP], ++ NULL, + 1); + break; + case NL80211_CMD_DISCONNECT: --- a/src/utils/wpa_debug.c +++ b/src/utils/wpa_debug.c @@ -26,6 +26,10 @@ static FILE *wpa_debug_tracing_file = NU @@ -669,3 +560,121 @@ extern int wpa_debug_level; extern int wpa_debug_show_keys; extern int wpa_debug_timestamp; +--- a/wpa_supplicant/Makefile ++++ b/wpa_supplicant/Makefile +@@ -192,8 +192,20 @@ endif + ifdef CONFIG_UBUS + CFLAGS += -DUBUS_SUPPORT + OBJS += ubus.o ++LIBS += -lubus ++NEED_ULOOP:=y ++endif ++ ++ifdef CONFIG_UCODE ++CFLAGS += -DUCODE_SUPPORT ++OBJS += ../src/utils/ucode.o ++OBJS += ucode.o ++NEED_ULOOP:=y ++endif ++ ++ifdef NEED_ULOOP + OBJS += ../src/utils/uloop.o +-LIBS += -lubox -lubus ++LIBS += -lubox + endif + + ifdef CONFIG_CODE_COVERAGE +@@ -1052,6 +1064,9 @@ OBJS += ../src/ap/ctrl_iface_ap.o + ifdef CONFIG_UBUS + OBJS += ../src/ap/ubus.o + endif ++ifdef CONFIG_UCODE ++OBJS += ../src/ap/ucode.o ++endif + endif + + CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY +--- a/wpa_supplicant/events.c ++++ b/wpa_supplicant/events.c +@@ -5949,6 +5949,7 @@ void supplicant_event(void *ctx, enum wp + event_to_string(event), event); + #endif /* CONFIG_NO_STDOUT_DEBUG */ + ++ wpas_ucode_event(wpa_s, event, data); + switch (event) { + case EVENT_AUTH: + #ifdef CONFIG_FST +--- a/wpa_supplicant/wpa_supplicant.c ++++ b/wpa_supplicant/wpa_supplicant.c +@@ -1060,6 +1060,7 @@ void wpa_supplicant_set_state(struct wpa + sme_sched_obss_scan(wpa_s, 0); + } + wpa_s->wpa_state = state; ++ wpas_ucode_update_state(wpa_s); + + #ifdef CONFIG_BGSCAN + if (state == WPA_COMPLETED && wpa_s->current_ssid != wpa_s->bgscan_ssid) +@@ -7717,6 +7718,7 @@ struct wpa_supplicant * wpa_supplicant_a + #endif /* CONFIG_P2P */ + + wpas_ubus_add_bss(wpa_s); ++ wpas_ucode_add_bss(wpa_s); + + return wpa_s; + } +@@ -7744,6 +7746,7 @@ int wpa_supplicant_remove_iface(struct w + struct wpa_supplicant *parent = wpa_s->parent; + #endif /* CONFIG_MESH */ + ++ wpas_ucode_free_bss(wpa_s); + wpas_ubus_free_bss(wpa_s); + + /* Remove interface from the global list of interfaces */ +@@ -8054,6 +8057,7 @@ struct wpa_global * wpa_supplicant_init( + + eloop_register_timeout(WPA_SUPPLICANT_CLEANUP_INTERVAL, 0, + wpas_periodic, global, NULL); ++ wpas_ucode_init(global); + + return global; + } +@@ -8092,12 +8096,8 @@ int wpa_supplicant_run(struct wpa_global + eloop_register_signal_terminate(wpa_supplicant_terminate, global); + eloop_register_signal_reconfig(wpa_supplicant_reconfig, global); + +- wpas_ubus_add(global); +- + eloop_run(); + +- wpas_ubus_free(global); +- + return 0; + } + +@@ -8130,6 +8130,8 @@ void wpa_supplicant_deinit(struct wpa_gl + + wpas_notify_supplicant_deinitialized(global); + ++ wpas_ucode_free(); ++ + eap_peer_unregister_methods(); + #ifdef CONFIG_AP + eap_server_unregister_methods(); +--- a/wpa_supplicant/wpa_supplicant_i.h ++++ b/wpa_supplicant/wpa_supplicant_i.h +@@ -22,6 +22,7 @@ + #include "wmm_ac.h" + #include "pasn/pasn_common.h" + #include "ubus.h" ++#include "ucode.h" + + extern const char *const wpa_supplicant_version; + extern const char *const wpa_supplicant_license; +@@ -697,6 +698,7 @@ struct wpa_supplicant { + unsigned char perm_addr[ETH_ALEN]; + char ifname[100]; + struct wpas_ubus_bss ubus; ++ struct wpas_ucode_bss ucode; + #ifdef CONFIG_MATCH_IFACE + int matched; + #endif /* CONFIG_MATCH_IFACE */ diff --git a/package/network/services/hostapd/patches/610-hostapd_cli_ujail_permission.patch b/package/network/services/hostapd/patches/610-hostapd_cli_ujail_permission.patch index a03fcc9f92be6a..30f675573a324a 100644 --- a/package/network/services/hostapd/patches/610-hostapd_cli_ujail_permission.patch +++ b/package/network/services/hostapd/patches/610-hostapd_cli_ujail_permission.patch @@ -1,3 +1,43 @@ +From: Mark Mentovai +Date: Tue, 23 Nov 2021 12:28:55 -0500 +Subject: [PATCH] hostapd: allow hostapd under ujail to communicate with + hostapd_cli + +When procd-ujail is available, 1f78538 runs hostapd as user +"network", with only limited additional capabilities (CAP_NET_ADMIN and +CAP_NET_RAW). + +hostapd_cli (CONFIG_PACKAGE_hostapd-utils) communicates with hostapd +over a named UNIX-domain socket. hostapd_cli is responsible for creating +this socket at /tmp/wpa_ctrl_$pid_$counter. Since it typically runs as +root, this endpoint is normally created with uid root, gid root, mode +0755. As a result, hostapd running as uid network is able to receive +control messages sent through this interface, but is not able to respond +to them. If debug-level logging is enabled (CONFIG_WPA_MSG_MIN_PRIORITY +<= 2 at build, and log_level <= 2 in /etc/config/wireless wifi-device), +this message will appear from hostapd: + +CTRL: sendto failed: Permission denied + +As a fix, hostapd_cli should create the socket node in the filesystem +with uid network, gid network, mode 0770. This borrows the presently +Android-only strategy already in hostapd intended to solve the same +problem on Android. + +If procd-ujail is not available and hostapd falls back to running as +root, it will still be able to read from and write to the socket even if +the node in the filesystem has been restricted to the network user and +group. This matches the logic in +package/network/services/hostapd/files/wpad.init, which sets the uid and +gid of /var/run/hostapd to network regardless of whether procd-ujail is +available. + +As it appears that the "network" user and group are statically allocated +uid 101 and gid 101, respectively, per +package/base-files/files/etc/passwd and USERID in +package/network/services/hostapd/Makefile, this patch also uses a +constant 101 for the uid and gid. + --- a/src/common/wpa_ctrl.c +++ b/src/common/wpa_ctrl.c @@ -135,7 +135,7 @@ try_again: diff --git a/package/network/services/hostapd/patches/701-reload_config_inline.patch b/package/network/services/hostapd/patches/701-reload_config_inline.patch index 3c62bf670f5bc5..260e832ddba7a3 100644 --- a/package/network/services/hostapd/patches/701-reload_config_inline.patch +++ b/package/network/services/hostapd/patches/701-reload_config_inline.patch @@ -1,6 +1,14 @@ +From: Felix Fietkau +Date: Fri, 26 May 2023 10:23:59 +0200 +Subject: [PATCH] Add ucode support, use ucode for the main ubus object #2 + +This implements vastly improved dynamic configuration reload support. +It can handle configuration changes on individual wifi interfaces, as well +as adding/removing interfaces. + --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -4816,7 +4816,12 @@ struct hostapd_config * hostapd_config_r +@@ -5065,7 +5065,12 @@ struct hostapd_config * hostapd_config_r int errors = 0; size_t i; diff --git a/package/network/services/hostapd/patches/710-vlan_no_bridge.patch b/package/network/services/hostapd/patches/710-vlan_no_bridge.patch index 63d1b8a3b83533..d3f797ed35abf6 100644 --- a/package/network/services/hostapd/patches/710-vlan_no_bridge.patch +++ b/package/network/services/hostapd/patches/710-vlan_no_bridge.patch @@ -1,3 +1,22 @@ +From: Felix Fietkau +Date: Tue, 18 May 2021 12:50:17 +0200 +Subject: [PATCH] hostapd: add patch for disabling automatic bridging of vlan + interfaces + +netifd is responsible for handling that, except if the vlan bridge +was provided by the config + +--- a/hostapd/config_file.c ++++ b/hostapd/config_file.c +@@ -3559,6 +3559,8 @@ static int hostapd_config_fill(struct ho + #ifndef CONFIG_NO_VLAN + } else if (os_strcmp(buf, "dynamic_vlan") == 0) { + bss->ssid.dynamic_vlan = atoi(pos); ++ } else if (os_strcmp(buf, "vlan_no_bridge") == 0) { ++ bss->ssid.vlan_no_bridge = atoi(pos); + } else if (os_strcmp(buf, "per_sta_vif") == 0) { + bss->ssid.per_sta_vif = atoi(pos); + } else if (os_strcmp(buf, "vlan_file") == 0) { --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h @@ -121,6 +121,7 @@ struct hostapd_ssid { @@ -28,14 +47,3 @@ ifconfig_up(ifname); } ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c -@@ -3351,6 +3351,8 @@ static int hostapd_config_fill(struct ho - #ifndef CONFIG_NO_VLAN - } else if (os_strcmp(buf, "dynamic_vlan") == 0) { - bss->ssid.dynamic_vlan = atoi(pos); -+ } else if (os_strcmp(buf, "vlan_no_bridge") == 0) { -+ bss->ssid.vlan_no_bridge = atoi(pos); - } else if (os_strcmp(buf, "per_sta_vif") == 0) { - bss->ssid.per_sta_vif = atoi(pos); - } else if (os_strcmp(buf, "vlan_file") == 0) { diff --git a/package/network/services/hostapd/patches/711-wds_bridge_force.patch b/package/network/services/hostapd/patches/711-wds_bridge_force.patch index c0f2c31c4482a0..dbd75658ae4a94 100644 --- a/package/network/services/hostapd/patches/711-wds_bridge_force.patch +++ b/package/network/services/hostapd/patches/711-wds_bridge_force.patch @@ -1,6 +1,17 @@ +From: Felix Fietkau +Date: Wed, 20 Oct 2021 21:13:10 +0200 +Subject: [PATCH] hostpad: fix a race condition on adding AP mode wds sta + interfaces + +Both hostapd and netifd attempt to add a VLAN device to a bridge. +Depending on which one wins the race, bridge vlan settings might be incomplete, +or hostapd might run into an error and refuse to service the client. +Fix this by preventing hostapd from adding interfaces to the bridge and +instead rely entirely on netifd handling this properly + --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -2318,6 +2318,8 @@ static int hostapd_config_fill(struct ho +@@ -2447,6 +2447,8 @@ static int hostapd_config_fill(struct ho sizeof(conf->bss[0]->iface)); } else if (os_strcmp(buf, "bridge") == 0) { os_strlcpy(bss->bridge, pos, sizeof(bss->bridge)); @@ -11,7 +22,7 @@ } else if (os_strcmp(buf, "vlan_bridge") == 0) { --- a/src/ap/ap_drv_ops.c +++ b/src/ap/ap_drv_ops.c -@@ -348,8 +348,6 @@ int hostapd_set_wds_sta(struct hostapd_d +@@ -387,8 +387,6 @@ int hostapd_set_wds_sta(struct hostapd_d return -1; if (hapd->conf->wds_bridge[0]) bridge = hapd->conf->wds_bridge; diff --git a/package/network/services/hostapd/patches/720-iface_max_num_sta.patch b/package/network/services/hostapd/patches/720-iface_max_num_sta.patch index 089c1ddc2461ba..fb00313f3d9198 100644 --- a/package/network/services/hostapd/patches/720-iface_max_num_sta.patch +++ b/package/network/services/hostapd/patches/720-iface_max_num_sta.patch @@ -1,6 +1,14 @@ +From: Felix Fietkau +Date: Wed, 26 May 2021 14:34:46 +0200 +Subject: [PATCH] hostapd: add support for specifying the maxassoc parameter as + a device option + +It allows enforcing a limit on associated stations to be enforced for the +full device, e.g. in order to deal with hardware/driver limitations + --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -2848,6 +2848,14 @@ static int hostapd_config_fill(struct ho +@@ -3041,6 +3041,14 @@ static int hostapd_config_fill(struct ho line, bss->max_num_sta, MAX_STA_COUNT); return 1; } @@ -15,19 +23,31 @@ } else if (os_strcmp(buf, "wpa") == 0) { bss->wpa = atoi(pos); } else if (os_strcmp(buf, "extended_key_id") == 0) { ---- a/src/ap/hostapd.h -+++ b/src/ap/hostapd.h -@@ -742,6 +742,7 @@ void hostapd_cleanup_cs_params(struct ho - void hostapd_periodic_iface(struct hostapd_iface *iface); - int hostapd_owe_trans_get_info(struct hostapd_data *hapd); - void hostapd_ocv_check_csa_sa_query(void *eloop_ctx, void *timeout_ctx); -+int hostapd_check_max_sta(struct hostapd_data *hapd); +--- a/src/ap/ap_config.h ++++ b/src/ap/ap_config.h +@@ -1057,6 +1057,8 @@ struct hostapd_config { + unsigned int track_sta_max_num; + unsigned int track_sta_max_age; - void hostapd_switch_color(struct hostapd_data *hapd, u64 bitmap); - void hostapd_cleanup_cca_params(struct hostapd_data *hapd); ++ int max_num_sta; ++ + char country[3]; /* first two octets: country code as described in + * ISO/IEC 3166-1. Third octet: + * ' ' (ascii 32): all environments +--- a/src/ap/beacon.c ++++ b/src/ap/beacon.c +@@ -1567,7 +1567,7 @@ void handle_probe_req(struct hostapd_dat + if (hapd->conf->no_probe_resp_if_max_sta && + is_multicast_ether_addr(mgmt->da) && + is_multicast_ether_addr(mgmt->bssid) && +- hapd->num_sta >= hapd->conf->max_num_sta && ++ hostapd_check_max_sta(hapd) && + !ap_get_sta(hapd, mgmt->sa)) { + wpa_printf(MSG_MSGDUMP, "%s: Ignore Probe Request from " MACSTR + " since no room for additional STA", --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -244,6 +244,29 @@ static int hostapd_iface_conf_changed(st +@@ -247,6 +247,29 @@ static int hostapd_iface_conf_changed(st return 0; } @@ -57,25 +77,13 @@ int hostapd_reload_config(struct hostapd_iface *iface) { ---- a/src/ap/beacon.c -+++ b/src/ap/beacon.c -@@ -1252,7 +1252,7 @@ void handle_probe_req(struct hostapd_dat - if (hapd->conf->no_probe_resp_if_max_sta && - is_multicast_ether_addr(mgmt->da) && - is_multicast_ether_addr(mgmt->bssid) && -- hapd->num_sta >= hapd->conf->max_num_sta && -+ hostapd_check_max_sta(hapd) && - !ap_get_sta(hapd, mgmt->sa)) { - wpa_printf(MSG_MSGDUMP, "%s: Ignore Probe Request from " MACSTR - " since no room for additional STA", ---- a/src/ap/ap_config.h -+++ b/src/ap/ap_config.h -@@ -1039,6 +1039,8 @@ struct hostapd_config { - unsigned int track_sta_max_num; - unsigned int track_sta_max_age; +--- a/src/ap/hostapd.h ++++ b/src/ap/hostapd.h +@@ -754,6 +754,7 @@ void hostapd_cleanup_cs_params(struct ho + void hostapd_periodic_iface(struct hostapd_iface *iface); + int hostapd_owe_trans_get_info(struct hostapd_data *hapd); + void hostapd_ocv_check_csa_sa_query(void *eloop_ctx, void *timeout_ctx); ++int hostapd_check_max_sta(struct hostapd_data *hapd); -+ int max_num_sta; -+ - char country[3]; /* first two octets: country code as described in - * ISO/IEC 3166-1. Third octet: - * ' ' (ascii 32): all environments + void hostapd_switch_color(struct hostapd_data *hapd, u64 bitmap); + void hostapd_cleanup_cca_params(struct hostapd_data *hapd); diff --git a/package/network/services/hostapd/patches/730-ft_iface.patch b/package/network/services/hostapd/patches/730-ft_iface.patch index 0795ed15a1402b..2f47f17d969574 100644 --- a/package/network/services/hostapd/patches/730-ft_iface.patch +++ b/package/network/services/hostapd/patches/730-ft_iface.patch @@ -1,6 +1,14 @@ +From: Felix Fietkau +Date: Fri, 4 Jun 2021 09:12:07 +0200 +Subject: [PATCH] hostapd: configure inter-AP communication interface for + 802.11r + +In setups using VLAN bridge filtering, hostapd may need to communicate using +a VLAN interface on top of the bridge, instead of using the bridge directly + --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -3007,6 +3007,8 @@ static int hostapd_config_fill(struct ho +@@ -3200,6 +3200,8 @@ static int hostapd_config_fill(struct ho wpa_printf(MSG_INFO, "Line %d: Obsolete peerkey parameter ignored", line); #ifdef CONFIG_IEEE80211R_AP @@ -21,7 +29,7 @@ int bridge_hairpin; /* hairpin_mode on bridge members */ --- a/src/ap/wpa_auth_glue.c +++ b/src/ap/wpa_auth_glue.c -@@ -1727,8 +1727,12 @@ int hostapd_setup_wpa(struct hostapd_dat +@@ -1777,8 +1777,12 @@ int hostapd_setup_wpa(struct hostapd_dat wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt)) { const char *ft_iface; diff --git a/package/network/services/hostapd/patches/740-snoop_iface.patch b/package/network/services/hostapd/patches/740-snoop_iface.patch index ce64513a421b42..f4b3ac33b10369 100644 --- a/package/network/services/hostapd/patches/740-snoop_iface.patch +++ b/package/network/services/hostapd/patches/740-snoop_iface.patch @@ -1,3 +1,22 @@ +From: Felix Fietkau +Date: Tue, 27 Jul 2021 20:28:58 +0200 +Subject: [PATCH] hostapd: make the snooping interface (for proxyarp) + configurable + +Use the VLAN interface instead of the bridge, to ensure that hostapd receives +untagged DHCP packets + +--- a/hostapd/config_file.c ++++ b/hostapd/config_file.c +@@ -2451,6 +2451,8 @@ static int hostapd_config_fill(struct ho + os_strlcpy(bss->wds_bridge, pos, sizeof(bss->wds_bridge)); + } else if (os_strcmp(buf, "bridge_hairpin") == 0) { + bss->bridge_hairpin = atoi(pos); ++ } else if (os_strcmp(buf, "snoop_iface") == 0) { ++ os_strlcpy(bss->snoop_iface, pos, sizeof(bss->snoop_iface)); + } else if (os_strcmp(buf, "vlan_bridge") == 0) { + os_strlcpy(bss->vlan_bridge, pos, sizeof(bss->vlan_bridge)); + } else if (os_strcmp(buf, "wds_bridge") == 0) { --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h @@ -284,6 +284,7 @@ struct hostapd_bss_config { @@ -8,6 +27,23 @@ char vlan_bridge[IFNAMSIZ + 1]; char wds_bridge[IFNAMSIZ + 1]; int bridge_hairpin; /* hairpin_mode on bridge members */ +--- a/src/ap/ap_drv_ops.h ++++ b/src/ap/ap_drv_ops.h +@@ -366,12 +366,12 @@ static inline int hostapd_drv_br_port_se + + static inline int hostapd_drv_br_set_net_param(struct hostapd_data *hapd, + enum drv_br_net_param param, +- unsigned int val) ++ const char *ifname, unsigned int val) + { + if (hapd->driver == NULL || hapd->drv_priv == NULL || + hapd->driver->br_set_net_param == NULL) + return -1; +- return hapd->driver->br_set_net_param(hapd->drv_priv, param, val); ++ return hapd->driver->br_set_net_param(hapd->drv_priv, param, ifname, val); + } + + static inline int hostapd_drv_vendor_cmd(struct hostapd_data *hapd, --- a/src/ap/x_snoop.c +++ b/src/ap/x_snoop.c @@ -33,28 +33,31 @@ int x_snoop_init(struct hostapd_data *ha @@ -74,37 +110,9 @@ hostapd_drv_br_port_set_attr(hapd, DRV_BR_PORT_ATTR_PROXYARP, 0); hostapd_drv_br_port_set_attr(hapd, DRV_BR_PORT_ATTR_HAIRPIN_MODE, 0); hapd->x_snoop_initialized = false; ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c -@@ -2322,6 +2322,8 @@ static int hostapd_config_fill(struct ho - os_strlcpy(bss->wds_bridge, pos, sizeof(bss->wds_bridge)); - } else if (os_strcmp(buf, "bridge_hairpin") == 0) { - bss->bridge_hairpin = atoi(pos); -+ } else if (os_strcmp(buf, "snoop_iface") == 0) { -+ os_strlcpy(bss->snoop_iface, pos, sizeof(bss->snoop_iface)); - } else if (os_strcmp(buf, "vlan_bridge") == 0) { - os_strlcpy(bss->vlan_bridge, pos, sizeof(bss->vlan_bridge)); - } else if (os_strcmp(buf, "wds_bridge") == 0) { ---- a/src/ap/ap_drv_ops.h -+++ b/src/ap/ap_drv_ops.h -@@ -366,12 +366,12 @@ static inline int hostapd_drv_br_port_se - - static inline int hostapd_drv_br_set_net_param(struct hostapd_data *hapd, - enum drv_br_net_param param, -- unsigned int val) -+ const char *ifname, unsigned int val) - { - if (hapd->driver == NULL || hapd->drv_priv == NULL || - hapd->driver->br_set_net_param == NULL) - return -1; -- return hapd->driver->br_set_net_param(hapd->drv_priv, param, val); -+ return hapd->driver->br_set_net_param(hapd->drv_priv, param, ifname, val); - } - - static inline int hostapd_drv_vendor_cmd(struct hostapd_data *hapd, --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -4209,7 +4209,7 @@ struct wpa_driver_ops { +@@ -4278,7 +4278,7 @@ struct wpa_driver_ops { * Returns: 0 on success, negative (<0) on failure */ int (*br_set_net_param)(void *priv, enum drv_br_net_param param, @@ -115,7 +123,7 @@ * get_wowlan - Get wake-on-wireless status --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -12168,7 +12168,7 @@ static const char * drv_br_net_param_str +@@ -12376,7 +12376,7 @@ static const char * drv_br_net_param_str static int wpa_driver_br_set_net_param(void *priv, enum drv_br_net_param param, @@ -124,7 +132,7 @@ { struct i802_bss *bss = priv; char path[128]; -@@ -12194,8 +12194,11 @@ static int wpa_driver_br_set_net_param(v +@@ -12402,8 +12402,11 @@ static int wpa_driver_br_set_net_param(v return -EINVAL; } diff --git a/package/network/services/hostapd/patches/751-qos_map_ignore_when_unsupported.patch b/package/network/services/hostapd/patches/751-qos_map_ignore_when_unsupported.patch index f5ebab70d1db36..86394d78a4db5d 100644 --- a/package/network/services/hostapd/patches/751-qos_map_ignore_when_unsupported.patch +++ b/package/network/services/hostapd/patches/751-qos_map_ignore_when_unsupported.patch @@ -1,6 +1,13 @@ +From: Felix Fietkau +Date: Thu, 23 Dec 2021 19:18:33 +0100 +Subject: [PATCH] hostapd: only attempt to set qos map if supported by the + driver + +Fixes issues with brcmfmac + --- a/src/ap/ap_drv_ops.c +++ b/src/ap/ap_drv_ops.c -@@ -927,7 +927,8 @@ int hostapd_start_dfs_cac(struct hostapd +@@ -998,7 +998,8 @@ int hostapd_start_dfs_cac(struct hostapd int hostapd_drv_set_qos_map(struct hostapd_data *hapd, const u8 *qos_map_set, u8 qos_map_set_len) { diff --git a/package/network/services/hostapd/patches/760-dynamic_own_ip.patch b/package/network/services/hostapd/patches/760-dynamic_own_ip.patch index 2c705a68cf0acf..c4b14d41b00942 100644 --- a/package/network/services/hostapd/patches/760-dynamic_own_ip.patch +++ b/package/network/services/hostapd/patches/760-dynamic_own_ip.patch @@ -1,3 +1,21 @@ +From: Felix Fietkau +Date: Thu, 15 Dec 2022 13:57:04 +0100 +Subject: [PATCH] hostapd: add support for automatically setting RADIUS own-ip + dynamically + +Some servers use the NAS-IP-Address attribute as a destination address + +--- a/hostapd/config_file.c ++++ b/hostapd/config_file.c +@@ -2819,6 +2819,8 @@ static int hostapd_config_fill(struct ho + } else if (os_strcmp(buf, "iapp_interface") == 0) { + wpa_printf(MSG_INFO, "DEPRECATED: iapp_interface not used"); + #endif /* CONFIG_IAPP */ ++ } else if (os_strcmp(buf, "dynamic_own_ip_addr") == 0) { ++ bss->dynamic_own_ip_addr = atoi(pos); + } else if (os_strcmp(buf, "own_ip_addr") == 0) { + if (hostapd_parse_ip_addr(pos, &bss->own_ip_addr)) { + wpa_printf(MSG_ERROR, --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h @@ -310,6 +310,7 @@ struct hostapd_bss_config { @@ -8,9 +26,22 @@ char *nas_identifier; struct hostapd_radius_servers *radius; int acct_interim_interval; +--- a/src/ap/ieee802_1x.c ++++ b/src/ap/ieee802_1x.c +@@ -601,6 +601,10 @@ int add_common_radius_attr(struct hostap + struct hostapd_radius_attr *attr; + int len; + ++ if (hapd->conf->dynamic_own_ip_addr) ++ radius_client_get_local_addr(hapd->radius, ++ &hapd->conf->own_ip_addr); ++ + if (!hostapd_config_get_radius_attr(req_attr, + RADIUS_ATTR_NAS_IP_ADDRESS) && + hapd->conf->own_ip_addr.af == AF_INET && --- a/src/radius/radius_client.c +++ b/src/radius/radius_client.c -@@ -163,6 +163,8 @@ struct radius_client_data { +@@ -165,6 +165,8 @@ struct radius_client_data { */ void *ctx; @@ -19,7 +50,7 @@ /** * conf - RADIUS client configuration (list of RADIUS servers to use) */ -@@ -720,6 +722,30 @@ static void radius_client_list_add(struc +@@ -819,6 +821,30 @@ static void radius_close_acct_socket(str /** @@ -50,7 +81,7 @@ * radius_client_send - Send a RADIUS request * @radius: RADIUS client context from radius_client_init() * @msg: RADIUS message to be sent -@@ -1238,6 +1264,10 @@ radius_change_server(struct radius_clien +@@ -1711,6 +1737,10 @@ radius_change_server(struct radius_clien wpa_printf(MSG_DEBUG, "RADIUS local address: %s:%u", inet_ntoa(claddr.sin_addr), ntohs(claddr.sin_port)); @@ -61,7 +92,7 @@ } break; #ifdef CONFIG_IPV6 -@@ -1249,6 +1279,10 @@ radius_change_server(struct radius_clien +@@ -1722,6 +1752,10 @@ radius_change_server(struct radius_clien inet_ntop(AF_INET6, &claddr6.sin6_addr, abuf, sizeof(abuf)), ntohs(claddr6.sin6_port)); @@ -74,7 +105,7 @@ } --- a/src/radius/radius_client.h +++ b/src/radius/radius_client.h -@@ -249,6 +249,8 @@ int radius_client_register(struct radius +@@ -274,6 +274,8 @@ int radius_client_register(struct radius void radius_client_set_interim_error_cb(struct radius_client_data *radius, void (*cb)(const u8 *addr, void *ctx), void *ctx); @@ -83,27 +114,3 @@ int radius_client_send(struct radius_client_data *radius, struct radius_msg *msg, RadiusType msg_type, const u8 *addr); ---- a/src/ap/ieee802_1x.c -+++ b/src/ap/ieee802_1x.c -@@ -598,6 +598,10 @@ int add_common_radius_attr(struct hostap - struct hostapd_radius_attr *attr; - int len; - -+ if (hapd->conf->dynamic_own_ip_addr) -+ radius_client_get_local_addr(hapd->radius, -+ &hapd->conf->own_ip_addr); -+ - if (!hostapd_config_get_radius_attr(req_attr, - RADIUS_ATTR_NAS_IP_ADDRESS) && - hapd->conf->own_ip_addr.af == AF_INET && ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c -@@ -2688,6 +2688,8 @@ static int hostapd_config_fill(struct ho - } else if (os_strcmp(buf, "iapp_interface") == 0) { - wpa_printf(MSG_INFO, "DEPRECATED: iapp_interface not used"); - #endif /* CONFIG_IAPP */ -+ } else if (os_strcmp(buf, "dynamic_own_ip_addr") == 0) { -+ bss->dynamic_own_ip_addr = atoi(pos); - } else if (os_strcmp(buf, "own_ip_addr") == 0) { - if (hostapd_parse_ip_addr(pos, &bss->own_ip_addr)) { - wpa_printf(MSG_ERROR, diff --git a/package/network/services/hostapd/patches/761-shared_das_port.patch b/package/network/services/hostapd/patches/761-shared_das_port.patch index cbb2a1be3c4718..5ca10d23bdb664 100644 --- a/package/network/services/hostapd/patches/761-shared_das_port.patch +++ b/package/network/services/hostapd/patches/761-shared_das_port.patch @@ -1,16 +1,13 @@ ---- a/src/radius/radius_das.h -+++ b/src/radius/radius_das.h -@@ -44,6 +44,7 @@ struct radius_das_attrs { - struct radius_das_conf { - int port; - const u8 *shared_secret; -+ const u8 *nas_identifier; - size_t shared_secret_len; - const struct hostapd_ip_addr *client_addr; - unsigned int time_window; +From: Felix Fietkau +Date: Fri, 16 Dec 2022 13:32:48 +0100 +Subject: [PATCH] hostapd: allow sharing the incoming DAS port across multiple + interfaces + +Use the NAS identifier to find the right receiver context on incoming messages + --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -1423,6 +1423,7 @@ int hostapd_setup_bss(struct hostapd_dat +@@ -1510,6 +1510,7 @@ int hostapd_setup_bss(struct hostapd_dat os_memset(&das_conf, 0, sizeof(das_conf)); das_conf.port = conf->radius_das_port; @@ -296,3 +293,13 @@ os_free(das->shared_secret); os_free(das); } +--- a/src/radius/radius_das.h ++++ b/src/radius/radius_das.h +@@ -44,6 +44,7 @@ struct radius_das_attrs { + struct radius_das_conf { + int port; + const u8 *shared_secret; ++ const u8 *nas_identifier; + size_t shared_secret_len; + const struct hostapd_ip_addr *client_addr; + unsigned int time_window; diff --git a/package/network/services/hostapd/patches/770-radius_server.patch b/package/network/services/hostapd/patches/770-radius_server.patch index 8837a26257b3d9..73b2c8643ba2c7 100644 --- a/package/network/services/hostapd/patches/770-radius_server.patch +++ b/package/network/services/hostapd/patches/770-radius_server.patch @@ -1,3 +1,11 @@ +From: Felix Fietkau +Date: Thu, 16 Mar 2023 11:35:50 +0100 +Subject: [PATCH] hostapd: add experimental radius server + +This can be used to run a standalone EAP server that can be used from +other APs. It uses json as user database format and can automatically +handle reload. + --- a/hostapd/Makefile +++ b/hostapd/Makefile @@ -63,6 +63,10 @@ endif @@ -21,7 +29,7 @@ #ifndef CONFIG_NO_HOSTAPD_LOGGER static void hostapd_logger_cb(void *ctx, const u8 *addr, unsigned int module, -@@ -771,6 +772,11 @@ int main(int argc, char *argv[]) +@@ -778,6 +779,11 @@ int main(int argc, char *argv[]) if (os_program_init()) return -1; diff --git a/package/network/services/hostapd/patches/993-2023-10-28-ACS-Fix-typo-in-bw_40-frequency-array.patch b/package/network/services/hostapd/patches/993-2023-10-28-ACS-Fix-typo-in-bw_40-frequency-array.patch deleted file mode 100644 index 948c51b196beb3..00000000000000 --- a/package/network/services/hostapd/patches/993-2023-10-28-ACS-Fix-typo-in-bw_40-frequency-array.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7a733993211ad46cf3032038c1e7e6bdc2322336 Mon Sep 17 00:00:00 2001 -From: Michael-CY Lee -Date: Tue, 5 Sep 2023 09:43:25 +0800 -Subject: [PATCH] ACS: Fix typo in bw_40 frequency array - -The range for the 5 GHz channel 118 was encoded with an incorrect -channel number. - -Fixes: ed8e13decc71 (ACS: Extract bw40/80/160 freqs out of acs_usable_bwXXX_chan()) -Signed-off-by: Michael Lee ---- - src/ap/acs.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/src/ap/acs.c -+++ b/src/ap/acs.c -@@ -256,7 +256,7 @@ struct bw_item { - static const struct bw_item bw_40[] = { - { 5180, 5200, 38 }, { 5220, 5240, 46 }, { 5260, 5280, 54 }, - { 5300, 5320, 62 }, { 5500, 5520, 102 }, { 5540, 5560, 110 }, -- { 5580, 5600, 110 }, { 5620, 5640, 126}, { 5660, 5680, 134 }, -+ { 5580, 5600, 118 }, { 5620, 5640, 126 }, { 5660, 5680, 134 }, - { 5700, 5720, 142 }, { 5745, 5765, 151 }, { 5785, 5805, 159 }, - { 5825, 5845, 167 }, { 5865, 5885, 175 }, - { 5955, 5975, 3 }, { 5995, 6015, 11 }, { 6035, 6055, 19 }, diff --git a/package/network/services/hostapd/src/src/ap/ubus.c b/package/network/services/hostapd/src/src/ap/ubus.c index 66eba999017268..8689494bcff3e5 100644 --- a/package/network/services/hostapd/src/src/ap/ubus.c +++ b/package/network/services/hostapd/src/src/ap/ubus.c @@ -774,7 +774,8 @@ hostapd_switch_chan(struct ubus_context *ctx, struct ubus_object *obj, mode ? &mode->he_capab[IEEE80211_MODE_AP] : NULL, mode ? &mode->eht_capab[IEEE80211_MODE_AP] : - NULL); + NULL, + hostapd_get_punct_bitmap(hapd)); for (i = 0; i < hapd->iface->num_bss; i++) { struct hostapd_data *bss = hapd->iface->bss[i]; diff --git a/package/network/services/hostapd/src/src/ap/ubus.h b/package/network/services/hostapd/src/src/ap/ubus.h index b0f7c44ab5f49a..22767d67ee7564 100644 --- a/package/network/services/hostapd/src/src/ap/ubus.h +++ b/package/network/services/hostapd/src/src/ap/ubus.h @@ -8,6 +8,8 @@ #ifndef __HOSTAPD_UBUS_H #define __HOSTAPD_UBUS_H +#include "sta_info.h" + enum hostapd_ubus_event_type { HOSTAPD_UBUS_PROBE_REQ, HOSTAPD_UBUS_AUTH_REQ, @@ -27,6 +29,7 @@ struct hostapd_iface; struct hostapd_data; struct hapd_interfaces; struct rrm_measurement_beacon_report; +struct sta_info; #ifdef UBUS_SUPPORT diff --git a/package/network/services/ipset-dns/Makefile b/package/network/services/ipset-dns/Makefile index f55281ef427e31..b3b557ce49ff66 100644 --- a/package/network/services/ipset-dns/Makefile +++ b/package/network/services/ipset-dns/Makefile @@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://git.zx2c4.com/ipset-dns PKG_SOURCE_DATE:=2017-10-08 PKG_SOURCE_VERSION:=ade2cf88e933f4f90451e0a6171f0aa4a523f989 -PKG_MIRROR_HASH:=34ad1f5c7d2eab90b795f2a512102891428216e3d439d918a8992846550e9697 +PKG_MIRROR_HASH:=94478078566bb8ddd76063607780f899646eacd2414e60d799231ff9391ce540 PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=GPL-2.0 diff --git a/package/network/services/lldpd/Makefile b/package/network/services/lldpd/Makefile index 1f8d1e546b0d5c..18cdda33ce725e 100644 --- a/package/network/services/lldpd/Makefile +++ b/package/network/services/lldpd/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=lldpd PKG_VERSION:=1.0.17 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/lldpd/lldpd/releases/download/$(PKG_VERSION)/ @@ -31,7 +31,7 @@ define Package/lldpd CATEGORY:=Network SUBMENU:=Routing and Redirection TITLE:=Link Layer Discovery Protocol daemon - URL:=https://vincentbernat.github.io/lldpd/ + URL:=https://lldpd.github.io/ DEPENDS:=+libcap +libevent2 +USE_GLIBC:libbsd +LLDPD_WITH_JSON:libjson-c +LLDPD_WITH_SNMP:libnetsnmp USERID:=lldp=121:lldp=129 MENU:=1 diff --git a/package/network/services/lldpd/files/lldpd.config b/package/network/services/lldpd/files/lldpd.config index 5e7c51ba7e593c..6df3f73bf727e5 100644 --- a/package/network/services/lldpd/files/lldpd.config +++ b/package/network/services/lldpd/files/lldpd.config @@ -7,7 +7,9 @@ config lldpd config option agentxsocket /var/run/agentx.sock option lldp_class 4 - option lldp_location "2:FR:6:Commercial Rd:3:Roseville:19:4" + # lldp_policy only needed for lldp_class 2-3 + # option lldp_policy 'application streaming-video unknown' + option lldp_location "address country EU" # if empty, the distribution description is sent #option lldp_description "OpenWrt System" diff --git a/package/network/services/lldpd/files/lldpd.init b/package/network/services/lldpd/files/lldpd.init index f90b4a237cd0b6..67ee011ae23541 100644 --- a/package/network/services/lldpd/files/lldpd.init +++ b/package/network/services/lldpd/files/lldpd.init @@ -1,5 +1,6 @@ #!/bin/sh /etc/rc.common # Copyright (C) 2008-2015 OpenWrt.org +# shellcheck disable=1091,2034,3037,3043,3045 START=90 STOP=01 @@ -39,43 +40,44 @@ get_config_restart_hash() { config_load 'lldpd' config_get v 'config' 'lldp_class'; append _string "$v" "," - if [ "$CONFIG_LLDPD_WITH_SNMP" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_SNMP" = "y" ]; then config_get v 'config' 'agentxsocket'; append _string "$v" "," fi config_get v 'config' 'cid_interface'; append _string "$v" "," config_get v 'config' 'filter'; append _string "$v" "," config_get_bool v 'config' 'readonly_mode'; append _string "$v" "," config_get_bool v 'config' 'lldp_no_version'; append _string "$v" "," - if [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_LLDPMED" = "y" ]; then config_get_bool v 'config' 'lldpmed_no_inventory'; append _string "$v" "," fi config_get_bool v 'config' 'enable_lldp' 1; append _string "$v" "," config_get_bool v 'config' 'force_lldp'; append _string "$v" "," - if [ "$CONFIG_LLDPD_WITH_CDP" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_CDP" = "y" ]; then config_get_bool v 'config' 'enable_cdp'; append _string "$v" "," config_get v 'config' 'cdp_version'; append _string "$v" "," config_get_bool v 'config' 'force_cdp'; append _string "$v" "," config_get_bool v 'config' 'force_cdpv2'; append _string "$v" "," fi - if [ "$CONFIG_LLDPD_WITH_EDP" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_EDP" = "y" ]; then config_get_bool v 'config' 'enable_edp'; append _string "$v" "," config_get_bool v 'config' 'force_edp'; append _string "$v" "," fi - if [ "$CONFIG_LLDPD_WITH_FDP" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_FDP" = "y" ]; then config_get_bool v 'config' 'enable_fdp'; append _string "$v" "," config_get_bool v 'config' 'force_fdp'; append _string "$v" "," fi - if [ "$CONFIG_LLDPD_WITH_SONMP" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_SONMP" = "y" ]; then config_get_bool v 'config' 'enable_sonmp'; append _string "$v" "," config_get_bool v 'config' 'force_sonmp'; append _string "$v" "," fi - _hash=`echo -n "${_string}" | md5sum | awk '{ print \$1 }'` + _hash=$(echo -n "${_string}" | md5sum | awk '{ print $1 }') export -n "$var=$_hash" } get_config_cid_ifaces() { - local _ifacesCONFIG_LLDPD_WITH_FDP + local _ifaces + config_get _ifaces 'config' "$2" local _iface _ifnames="" for _iface in $_ifaces; do @@ -98,16 +100,8 @@ write_lldpd_conf() local lldp_hostname config_get lldp_hostname 'config' 'lldp_hostname' "$(cat /proc/sys/kernel/hostname)" - local ifaces - config_get ifaces 'config' 'interface' - - local iface ifnames="" - for iface in $ifaces; do - local ifname="" - if network_get_device ifname "$iface" || [ -e "/sys/class/net/$iface" ]; then - append ifnames "${ifname:-$iface}" "," - fi - done + local ifnames + get_config_cid_ifaces ifnames "interface" local lldp_mgmt_ip config_get lldp_mgmt_ip 'config' 'lldp_mgmt_ip' @@ -115,12 +109,22 @@ write_lldpd_conf() local lldp_syscapabilities config_get lldp_syscapabilities 'config' 'lldp_syscapabilities' - if [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_LLDPMED" = "y" ]; then local lldpmed_fast_start config_get_bool lldpmed_fast_start 'config' 'lldpmed_fast_start' 0 local lldpmed_fast_start_tx_interval config_get lldpmed_fast_start_tx_interval 'config' 'lldpmed_fast_start_tx_interval' 0 + + local lldp_location + config_get lldp_location 'config' 'lldp_location' + + local lldp_class + config_get lldp_class 'config' 'lldp_class' + + local lldp_policy + config_get lldp_policy 'config' 'lldp_policy' + fi local lldp_agenttype @@ -140,26 +144,39 @@ write_lldpd_conf() # Clear out the config file first echo -n > "$LLDPD_CONF" - [ -n "$ifnames" ] && echo "configure system interface pattern" "$ifnames" >> "$LLDPD_CONF" + [ -n "$ifnames" ] && echo "configure system interface pattern $ifnames" >> "$LLDPD_CONF" [ -n "$lldp_description" ] && echo "configure system description" "\"$lldp_description\"" >> "$LLDPD_CONF" [ -n "$lldp_hostname" ] && echo "configure system hostname" "\"$lldp_hostname\"" >> "$LLDPD_CONF" [ -n "$lldp_mgmt_ip" ] && echo "configure system ip management pattern" "\"$lldp_mgmt_ip\"" >> "$LLDPD_CONF" - [ -n "$lldp_syscapabilities" ] && echo "configure system capabilities enabled" "\"$lldp_syscapabilities\"" >> "$LLDPD_CONF" - if [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ] && [ $lldpmed_fast_start -gt 0 ]; then - if [ $lldpmed_fast_start_tx_interval -gt 0 ]; then - echo "configure med fast-start tx-interval" "\"$lldpmed_fast_start_tx_interval\"" >> "$LLDPD_CONF" + [ -n "$lldp_syscapabilities" ] && echo "configure system capabilities enabled $lldp_syscapabilities" >> "$LLDPD_CONF" + if [ "$CONFIG_LLDPD_WITH_LLDPMED" = "y" ] && [ "$lldpmed_fast_start" -gt 0 ]; then + if [ "$lldpmed_fast_start_tx_interval" -gt 0 ]; then + echo "configure med fast-start tx-interval $lldpmed_fast_start_tx_interval" >> "$LLDPD_CONF" else - echo "configure med fast-start" "enable" >> "$LLDPD_CONF" + echo "configure med fast-start enable" >> "$LLDPD_CONF" fi fi + if [ "$CONFIG_LLDPD_WITH_LLDPMED" = "y" ]; then + # other 'configure med xxx' statements go here + + [ -n "$lldp_location" ] && echo "configure med location" "$lldp_location" >> "$LLDPD_CONF" + + # Manual states that if Class (-M) is 2 or 3, at least one network policy must be defined + case "$lldp_class" in + 2 | 3 ) [ -n "$lldp_policy" ] && echo "configure med policy $lldp_policy" >> "$LLDPD_CONF" + ;; + esac + + fi + [ -n "$lldp_agenttype" ] && echo "configure lldp agent-type" "\"$lldp_agenttype\"" >> "$LLDPD_CONF" [ -n "$lldp_portidsubtype" ] && echo "configure lldp portidsubtype" "\"$lldp_portidsubtype\"" >> "$LLDPD_CONF" [ -n "$lldp_platform" ] && echo "configure system platform" "\"$lldp_platform\"" >> "$LLDPD_CONF" - [ $lldp_tx_interval -gt 0 ] && echo "configure lldp tx-interval" "$lldp_tx_interval" >> "$LLDPD_CONF" - [ $lldp_tx_hold -gt 0 ] && echo "configure lldp tx-hold" "$lldp_tx_hold" >> "$LLDPD_CONF" + [ -n "$lldp_tx_interval" ] && echo "configure lldp tx-interval $lldp_tx_interval" >> "$LLDPD_CONF" + [ "$lldp_tx_hold" -gt 0 ] && echo "configure lldp tx-hold $lldp_tx_hold" >> "$LLDPD_CONF" # Since lldpd's sysconfdir is /tmp, we'll symlink /etc/lldpd.d to /tmp/$LLDPD_CONFS_DIR - [ -e $LLDPD_CONFS_DIR ] || ln -s /etc/lldpd.d $LLDPD_CONFS_DIR + [ -e "$LLDPD_CONFS_DIR" ] || ln -s /etc/lldpd.d "$LLDPD_CONFS_DIR" } start_service() { @@ -177,7 +194,6 @@ start_service() { local enable_edp local force_edp local lldp_class - local lldp_location local lldp_no_version local lldpmed_no_inventory local readonly_mode @@ -187,32 +203,31 @@ start_service() { config_load 'lldpd' config_get_bool enable_lldp 'config' 'enable_lldp' 1 config_get_bool force_lldp 'config' 'force_lldp' 0 - if [ "$CONFIG_LLDPD_WITH_CDP" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_CDP" = "y" ]; then config_get_bool enable_cdp 'config' 'enable_cdp' 0 config_get cdp_version 'config' 'cdp_version' 'cdpv1v2' config_get_bool force_cdp 'config' 'force_cdp' 0 config_get_bool force_cdpv2 'config' 'force_cdpv2' 0 fi - if [ "$CONFIG_LLDPD_WITH_FDP" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_FDP" = "y" ]; then config_get_bool enable_fdp 'config' 'enable_fdp' 0 config_get_bool force_fdp 'config' 'force_fdp' 0 fi - if [ "$CONFIG_LLDPD_WITH_SONMP" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_SONMP" = "y" ]; then config_get_bool enable_sonmp 'config' 'enable_sonmp' 0 config_get_bool force_sonmp 'config' 'force_sonmp' 0 fi - if [ "$CONFIG_LLDPD_WITH_EDP" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_EDP" = "y" ]; then config_get_bool enable_edp 'config' 'enable_edp' 0 config_get_bool force_edp 'config' 'force_edp' 0 fi config_get lldp_class 'config' 'lldp_class' - config_get lldp_location 'config' 'lldp_location' config_get_bool lldp_no_version 'config' 'lldp_no_version' 0 - if [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_LLDPMED" = "y" ]; then config_get_bool lldpmed_no_inventory 'config' 'lldpmed_no_inventory' 0 fi config_get_bool readonly_mode 'config' 'readonly_mode' 0 - if [ "$CONFIG_LLDPD_WITH_SNMP" == "y" ]; then + if [ "$CONFIG_LLDPD_WITH_SNMP" = "y" ]; then config_get agentxsocket 'config' 'agentxsocket' fi config_get filter 'config' 'filter' 15 @@ -227,8 +242,8 @@ start_service() { procd_set_param command ${LLDPDBIN} procd_append_param command -d - if [ $enable_lldp -gt 0 ]; then - if [ $force_lldp -gt 0 ]; then + if [ "$enable_lldp" -gt 0 ]; then + if [ "$force_lldp" -gt 0 ]; then procd_append_param command '-l' fi else @@ -236,20 +251,20 @@ start_service() { procd_append_param command '-ll' fi - if [ "$CONFIG_LLDPD_WITH_CDP" == "y" ] && [ $enable_cdp -gt 0 ]; then - if [ $cdp_version == "cdpv2" ]; then - if [ $force_cdp -gt 0 ]; then + if [ "$CONFIG_LLDPD_WITH_CDP" = "y" ] && [ "$enable_cdp" -gt 0 ]; then + if [ "$cdp_version" = "cdpv2" ]; then + if [ "$force_cdp" -gt 0 ]; then # CDPv1 disabled, CDPv2 forced procd_append_param command '-ccccc' else # CDPv1 disabled, CDPv2 enabled procd_append_param command '-cccc' fi - elif [ $cdp_version == "cdpv1v2" ]; then - if [ $force_cdp -gt 0 ] && [ $force_cdpv2 -gt 0 ]; then + elif [ "$cdp_version" = "cdpv1v2" ]; then + if [ "$force_cdp" -gt 0 ] && [ "$force_cdpv2" -gt 0 ]; then # CDPv1 enabled, CDPv2 forced procd_append_param command '-ccc' - elif [ $force_cdp -gt 0 ]; then + elif [ "$force_cdp" -gt 0 ]; then # CDPv1 forced, CDPv2 enabled procd_append_param command '-cc' else @@ -259,9 +274,9 @@ start_service() { fi fi - if [ "$CONFIG_LLDPD_WITH_FDP" == "y" ] && [ $enable_fdp -gt 0 ]; then - if [ $force_fdp -gt 0 ]; then - # FDP enbled and forced + if [ "$CONFIG_LLDPD_WITH_FDP" = "y" ] && [ "$enable_fdp" -gt 0 ]; then + if [ "$force_fdp" -gt 0 ]; then + # FDP enabled and forced procd_append_param command '-ff' else # FDP enabled @@ -269,8 +284,8 @@ start_service() { fi fi - if [ "$CONFIG_LLDPD_WITH_SONMP" == "y" ] && [ $enable_sonmp -gt 0 ]; then - if [ $force_sonmp -gt 0 ]; then + if [ "$CONFIG_LLDPD_WITH_SONMP" = "y" ] && [ "$enable_sonmp" -gt 0 ]; then + if [ "$force_sonmp" -gt 0 ]; then # SONMP enabled and forced procd_append_param command '-ss' else @@ -279,26 +294,27 @@ start_service() { fi fi - if [ "$CONFIG_LLDPD_WITH_EDP" == "y" ] && [ $enable_edp -gt 0 ]; then - if [ $force_edp -gt 0 ]; then - # EDP enbled and forced + if [ "$CONFIG_LLDPD_WITH_EDP" = "y" ] && [ "$enable_edp" -gt 0 ]; then + if [ "$force_edp" -gt 0 ]; then + # EDP enabled and forced procd_append_param command '-ee' else - # EDP enbled + # EDP enabled procd_append_param command '-e' fi fi - [ $readonly_mode -gt 0 ] && procd_append_param command '-r' - [ $lldp_no_version -gt 0 ] && procd_append_param commanpackage/network/services/lldpd/Makefile package/network/services/lldpd/files/lldpd.initd '-k' - [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ] && [ $lldpmed_no_inventory -gt 0 ] && procd_append_param command '-i' + [ "$readonly_mode" -gt 0 ] && procd_append_param command '-r' + [ "$lldp_no_version" -gt 0 ] && procd_append_param command '-k' + [ "$CONFIG_LLDPD_WITH_LLDPMED" = "y" ] && [ "$lldpmed_no_inventory" -gt 0 ] && procd_append_param command '-i' [ -n "$lldp_class" ] && procd_append_param command -M "$lldp_class" - [ "$CONFIG_LLDPD_WITH_SNMP" == "y" ] && [ -n "$agentxsocket" ] && procd_append_param command -x -X "$agentxsocket" + [ "$CONFIG_LLDPD_WITH_SNMP" = "y" ] && [ -n "$agentxsocket" ] && procd_append_param command -x -X "$agentxsocket" [ -n "$filter" ] && procd_append_param command -H "$filter" # ChassisID interfaces local ifnames - get_config_cid_ifaces ifnames + get_config_cid_ifaces ifnames "cid_interface" + [ -n "$ifnames" ] && procd_append_param command -C "$ifnames" # Overwrite default configuration locations processed by lldpcli at start @@ -306,7 +322,7 @@ start_service() { local restart_hash get_config_restart_hash restart_hash - echo -n "$restart_hash" > $LLDPD_RESTART_HASH + echo -n "$restart_hash" > "$LLDPD_RESTART_HASH" # set auto respawn behavior procd_set_param respawn @@ -324,7 +340,7 @@ reload_service() { local config_hash="" get_config_restart_hash config_hash - if [ -f ${LLDPD_RESTART_HASH} ]; then running_hash=`cat $LLDPD_RESTART_HASH`; fi + [ -f ${LLDPD_RESTART_HASH} ] && running_hash=$(cat "$LLDPD_RESTART_HASH") if [ "x$running_hash" != "x$config_hash" ]; then # Restart LLDPd @@ -333,7 +349,7 @@ reload_service() { return 0 fi - $LLDPCLI -u $LLDPSOCKET &> /dev/null <<-EOF + $LLDPCLI -u "$LLDPSOCKET" 2>&1 /dev/null <<-EOF pause unconfigure lldp custom-tlv unconfigure system interface pattern @@ -342,8 +358,8 @@ reload_service() { unconfigure system ip management pattern unconfigure system platform EOF - if [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ]; then - $LLDPCLI -u $LLDPSOCKET &> /dev/null <<-EOF + if [ "$CONFIG_LLDPD_WITH_LLDPMED" = "y" ]; then + $LLDPCLI -u "$LLDPSOCKET" 2>&1 /dev/null <<-EOF unconfigure med fast-start EOF @@ -351,9 +367,9 @@ reload_service() { # Rewrite lldpd.conf # If something changed it should be included by the lldpcli call write_lldpd_conf - $LLDPCLI -u $LLDPSOCKET -c $LLDPD_CONF -c $LLDPD_CONFS_DIR &> /dev/null + $LLDPCLI -u "$LLDPSOCKET" -c "$LLDPD_CONF" -c "$LLDPD_CONFS_DIR" 2>&1 /dev/null # Broadcast update over the wire - $LLDPCLI -u $LLDPSOCKET &> /dev/null <<-EOF + $LLDPCLI -u "$LLDPSOCKET" 2>&1 /dev/null <<-EOF resume update EOF @@ -361,6 +377,6 @@ reload_service() { } stop_service() { - rm -rf ${LLDPD_RUN} $LLDPSOCKET 2>/dev/null + rm -rf ${LLDPD_RUN} "$LLDPSOCKET" 2> /dev/null } diff --git a/package/network/services/odhcpd/Makefile b/package/network/services/odhcpd/Makefile index ba6358f7795a86..55a24a90e532cb 100644 --- a/package/network/services/odhcpd/Makefile +++ b/package/network/services/odhcpd/Makefile @@ -12,7 +12,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcpd.git -PKG_MIRROR_HASH:=9936331b64880260cf969cc5656e1e1a8b7dc0e0843d64621242c500a330b4d6 +PKG_MIRROR_HASH:=08fddf4294929d1713e0c3f7b258f8c7bf4abe731d5f34fceb797faa411f7a58 PKG_SOURCE_DATE:=2023-10-24 PKG_SOURCE_VERSION:=d8118f6e76e5519881f9a37137c3a06b3cb60fd2 diff --git a/package/network/services/omcproxy/Makefile b/package/network/services/omcproxy/Makefile index c5b2f3e67f453a..0ca0970af2b9f1 100644 --- a/package/network/services/omcproxy/Makefile +++ b/package/network/services/omcproxy/Makefile @@ -12,7 +12,7 @@ PKG_RELEASE:=9 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/omcproxy.git -PKG_MIRROR_HASH:=6443276368dc7d45ee58bd7067da6c3a85396d9996039232cae3bdd426382f0c +PKG_MIRROR_HASH:=61f03d76b14149e417360b6aaa630e920b75a31a6a497353b7160b3a374b20b2 PKG_SOURCE_DATE:=2021-11-04 PKG_SOURCE_VERSION:=bfba2aa75802ff1a70ef2fd3eba53409a8c6e93a PKG_MAINTAINER:=Steven Barth diff --git a/package/network/services/ppp/Makefile b/package/network/services/ppp/Makefile index 40ec5c5cf12da7..3ed43e9a5a4182 100644 --- a/package/network/services/ppp/Makefile +++ b/package/network/services/ppp/Makefile @@ -15,13 +15,13 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/paulusmack/ppp PKG_SOURCE_DATE:=2021-01-04 PKG_SOURCE_VERSION:=4fb319056f168bb8379865b91b4fd3e1ada73f1e -PKG_MIRROR_HASH:=429cb5fcff36e1d8698766130711d4764347f08b83233dfb4831bea21616efef +PKG_MIRROR_HASH:=58b415e17bdcac81bb9594a1b2ba65ec90598817850d22e98c1690e8ed0cd3d8 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=BSD-4-Clause PKG_CPE_ID:=cpe:/a:samba:ppp PKG_RELEASE_VERSION:=2.4.9 -PKG_VERSION:=$(PKG_RELEASE_VERSION).git-$(PKG_SOURCE_DATE) +PKG_VERSION:=$(PKG_RELEASE_VERSION)_git$(subst -,,$(PKG_SOURCE_DATE)) PKG_BUILD_DEPENDS:=libpcap diff --git a/package/network/services/relayd/Makefile b/package/network/services/relayd/Makefile index aba69399556b07..9e275bbc5dd870 100644 --- a/package/network/services/relayd/Makefile +++ b/package/network/services/relayd/Makefile @@ -14,7 +14,7 @@ PKG_SOURCE_URL=$(PROJECT_GIT)/project/relayd.git PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2023-01-28 PKG_SOURCE_VERSION:=f646ba40489371e69f624f2dee2fc4e19ceec00e -PKG_MIRROR_HASH:=672d3115728d40ee6897a9f633d269d127496699a7bd45eba11844aa771f2501 +PKG_MIRROR_HASH:=658a09a1a947c148c2827335c7bbe126f4bcf361d2de6d9de7cca432c9fe04d3 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 diff --git a/package/network/services/uhttpd/Makefile b/package/network/services/uhttpd/Makefile index 2a6ad535b41420..a373e62820e7c7 100644 --- a/package/network/services/uhttpd/Makefile +++ b/package/network/services/uhttpd/Makefile @@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/uhttpd.git PKG_SOURCE_DATE:=2023-06-25 PKG_SOURCE_VERSION:=34a8a74dbdec3c0de38abc1b08f6a73c51263792 -PKG_MIRROR_HASH:=8206885eebed5d1827763bcc5bcf9ca3510ae22b0ad1f6432114f1136c32dde2 +PKG_MIRROR_HASH:=0603019dabb89b1b207d0f7916616c95ce8194a7ff9fd71f0ddd845dd2de944e PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=ISC diff --git a/package/network/services/umdns/Makefile b/package/network/services/umdns/Makefile index 5689a6d78d24fa..2491126bf6c3e1 100644 --- a/package/network/services/umdns/Makefile +++ b/package/network/services/umdns/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=1 PKG_SOURCE_URL=$(PROJECT_GIT)/project/mdnsd.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2023-11-21 -PKG_SOURCE_VERSION:=b1e023eda3584da4a5dfbc33016839f977a02040 -PKG_MIRROR_HASH:=e0619afc3b8e1b8a627b35bbe0734746303db02e6d62fd8a3ff047d4fbaa0522 +PKG_SOURCE_DATE:=2024-01-08 +PKG_SOURCE_VERSION:=e91ed406ecebb4bc08c346929e25f1b819c19edd +PKG_MIRROR_HASH:=f667e939520f0ce27b63ddcab64eb079d84fd2c61beaad5399bfc5f9276ca62e PKG_MAINTAINER:=John Crispin PKG_LICENSE:=LGPL-2.1 diff --git a/package/network/services/umdns/files/umdns.init b/package/network/services/umdns/files/umdns.init index 7f25595f2493aa..e9a2c05e093e30 100644 --- a/package/network/services/umdns/files/umdns.init +++ b/package/network/services/umdns/files/umdns.init @@ -42,7 +42,10 @@ start_service() { done procd_add_raw_trigger "instance.update" 5000 "/bin/ubus" "call" "umdns" "reload" procd_close_trigger - [ "$(uci -q get umdns.@umdns[-1].jail)" = 1 ] && procd_add_jail umdns ubus log + [ "$(uci get umdns.@umdns[-1].jail)" = 1 ] && { + procd_add_jail umdns ubus log + [ -d /etc/umdns ] && procd_add_jail_mount "/etc/umdns" + } procd_close_instance } diff --git a/package/network/services/unetd/Makefile b/package/network/services/unetd/Makefile index 7d8ed9a144caa9..018f6b8ea9707e 100644 --- a/package/network/services/unetd/Makefile +++ b/package/network/services/unetd/Makefile @@ -10,9 +10,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=unetd PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/unetd.git -PKG_SOURCE_DATE:=2023-05-31 -PKG_SOURCE_VERSION:=7d3986b7a5a20b9af0dacd053b2657210385e7bb -PKG_MIRROR_HASH:=07f0a4cbae3e80c6309bb8aa27fcef19fbc56093a9c7e426e0d527227af09429 +PKG_SOURCE_DATE:=2024-03-31 +PKG_SOURCE_VERSION:=806457664ab6e952a7f4febb82e891f596fe577c +PKG_MIRROR_HASH:=f469d65fd83721a8da0e5253d1ba871a6734233da6f23b631009b17b3af82455 PKG_LICENSE:=GPL-2.0 PKG_MAINTAINER:=Felix Fietkau diff --git a/package/network/services/ustp/Makefile b/package/network/services/ustp/Makefile index 2cdd033754922c..baf45288dd4dfb 100644 --- a/package/network/services/ustp/Makefile +++ b/package/network/services/ustp/Makefile @@ -14,7 +14,7 @@ PKG_SOURCE_URL=$(PROJECT_GIT)/project/ustp.git PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2021-09-21 PKG_SOURCE_VERSION:=462b3a491347e452c15220861949b1d6371fa59e -PKG_MIRROR_HASH:=0e96edc983cf437b95874e5715d743f30bb826d8757dc3771ff872ab9cf18f35 +PKG_MIRROR_HASH:=c3373b369b127c26d4a79425631cb5db83ef479ab21d164da879b35942539dfb PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 diff --git a/package/network/utils/bpftool/Makefile b/package/network/utils/bpftool/Makefile index 2782a307353ae9..d81cf95102bf4f 100644 --- a/package/network/utils/bpftool/Makefile +++ b/package/network/utils/bpftool/Makefile @@ -12,7 +12,7 @@ PKG_VERSION:=7.3.0 PKG_RELEASE:=1 PKG_SOURCE_URL:=https://github.com/libbpf/bpftool -PKG_MIRROR_HASH:=c8fe336005019fee4d4fd416ce68a749fb479786dead69d6a0b3b04bcd903b98 +PKG_MIRROR_HASH:=42030a007714aa075fbd402ccb0196e4892344fb7215b4f51a99b633cc5104fa PKG_SOURCE_PROTO:=git PKG_SOURCE_VERSION:=v7.3.0 diff --git a/package/network/utils/ebtables/Makefile b/package/network/utils/ebtables/Makefile index f35b768b43754d..32a452b06868b5 100644 --- a/package/network/utils/ebtables/Makefile +++ b/package/network/utils/ebtables/Makefile @@ -14,7 +14,7 @@ PKG_RELEASE:=1 PKG_SOURCE_URL:=https://git.netfilter.org/ebtables PKG_SOURCE_PROTO:=git PKG_SOURCE_VERSION:=48cff25dfea5b37e16ba5dc6601e98ab140f5f99 -PKG_MIRROR_HASH:=1327cdc3402e5e3056819e4e9b6f9d4a5bfd401f2c4f58447afb2c3c73fc8aac +PKG_MIRROR_HASH:=1ee560498e1a047b329eab3dad8425ae51e7f0527e4495efb99481ca11206b37 PKG_LICENSE:=GPL-2.0 PKG_CPE_ID:=cpe:/a:netfilter:ebtables diff --git a/package/network/utils/iwinfo/Makefile b/package/network/utils/iwinfo/Makefile index 4fef2babbb2ac9..33661941a67e69 100644 --- a/package/network/utils/iwinfo/Makefile +++ b/package/network/utils/iwinfo/Makefile @@ -11,9 +11,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/iwinfo.git -PKG_SOURCE_DATE:=2023-11-19 -PKG_SOURCE_VERSION:=a34977c0760c93480491c8eb94da656b57d7f4cc -PKG_MIRROR_HASH:=cb01671a2a9155f8ba55751ab1fe28488c5821212dd97ba5b79653640abb787e +PKG_SOURCE_DATE:=2024-03-23 +PKG_SOURCE_VERSION:=79a96150647110fb03852bc321bd37159d63ae1a +PKG_MIRROR_HASH:=0bf6230019f80a05ae2a49722f3ecb2a9000da7ae0d398fd0e163d168ee8b494 PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=GPL-2.0 diff --git a/package/network/utils/layerscape/restool/Makefile b/package/network/utils/layerscape/restool/Makefile index 5919f42ff2afa2..bca78fbda85d30 100644 --- a/package/network/utils/layerscape/restool/Makefile +++ b/package/network/utils/layerscape/restool/Makefile @@ -14,7 +14,7 @@ PKG_RELEASE:=4 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/nxp-qoriq/restool PKG_SOURCE_VERSION:=LSDK-21.08 -PKG_MIRROR_HASH:=0396644927b8f3da20183227562f695c8063d3d4c6bb606e8f31dda450e962e4 +PKG_MIRROR_HASH:=3c289e6c9adc2c61445473ecd8b1b1a7b6dfd19a66d3c65f3b83b669e4c3e25b PKG_FLAGS:=nonshared diff --git a/package/network/utils/umbim/Makefile b/package/network/utils/umbim/Makefile index 56e1a6f3785786..5b0a5a8f7d11b9 100644 --- a/package/network/utils/umbim/Makefile +++ b/package/network/utils/umbim/Makefile @@ -7,7 +7,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/umbim.git PKG_SOURCE_DATE:=2022-08-13 PKG_SOURCE_VERSION:=146bc77c98ace3d1cc672986669650d2e1da71f3 -PKG_MIRROR_HASH:=3cf04858ff5c3f529904f9789b094aa9645ad41c91f553e6fc3fcd3cb341d359 +PKG_MIRROR_HASH:=9eae9f191e9c4a8132dba32e356047b8dfd62556f06800f05a283630cfed472a PKG_MAINTAINER:=John Crispin PKG_LICENSE:=GPL-2.0 diff --git a/package/network/utils/uqmi/Makefile b/package/network/utils/uqmi/Makefile index 6753e47cdb7ae6..90ba080a6f8192 100644 --- a/package/network/utils/uqmi/Makefile +++ b/package/network/utils/uqmi/Makefile @@ -7,7 +7,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/uqmi.git PKG_SOURCE_DATE:=2024-01-16 PKG_SOURCE_VERSION:=c3488b831ce6285c8107704156b9b8ed7d59deb3 -PKG_MIRROR_HASH:=3ca47f2ae22bc1adcb05560e6dbea824063fa914670c13f107e7e78f33399779 +PKG_MIRROR_HASH:=1aa576e46dfb6528ef12f5fd1b626585d565bbcf9119cde302cc34d732c75076 PKG_MAINTAINER:=Matti Laakso PKG_LICENSE:=GPL-2.0 diff --git a/package/network/utils/wwan/Makefile b/package/network/utils/wwan/Makefile index 19404383cb71f1..b02f9e11a43c4c 100644 --- a/package/network/utils/wwan/Makefile +++ b/package/network/utils/wwan/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=wwan -PKG_VERSION:=2019-04-29 +PKG_VERSION:=2019.04.29 PKG_RELEASE=6 PKG_LICENSE:=GPL-2.0 diff --git a/package/system/ca-certificates/Makefile b/package/system/ca-certificates/Makefile index 06418cebfa6d27..254d7b5178d89e 100644 --- a/package/system/ca-certificates/Makefile +++ b/package/system/ca-certificates/Makefile @@ -11,6 +11,9 @@ PKG_VERSION:=20240203 PKG_RELEASE:=1 PKG_MAINTAINER:= +PKG_LICENSE:=GPL-2.0-or-later MPL-2.0 +PKG_LICENSE_FILES:=debian/copyright + PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@DEBIAN/pool/main/c/ca-certificates PKG_HASH:=3286d3fc42c4d11b7086711a85f865b44065ce05cf1fb5376b2abed07622a9c6 diff --git a/package/system/fstools/Makefile b/package/system/fstools/Makefile index 717e59f836fb0d..29d4726af7dff3 100644 --- a/package/system/fstools/Makefile +++ b/package/system/fstools/Makefile @@ -12,7 +12,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/fstools.git -PKG_MIRROR_HASH:=32e39891455b602e9deb367c9ce2d099dc72353fad0bf0433307416925f7b393 +PKG_MIRROR_HASH:=cf9e09885954e0e43b58126ce4b6f5552462cf1495b89330ce4e66056249787e PKG_SOURCE_DATE:=2024-01-22 PKG_SOURCE_VERSION:=08cd7083cac4bddf88459efa0881ee52858e7d0a CMAKE_INSTALL:=1 diff --git a/package/system/fwtool/Makefile b/package/system/fwtool/Makefile index 00f0339b026dcf..e1fa1c86d0e5a7 100644 --- a/package/system/fwtool/Makefile +++ b/package/system/fwtool/Makefile @@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/fwtool.git PKG_SOURCE_DATE:=2019-11-12 PKG_SOURCE_VERSION:=8f7fe925ca205c8e8e2d0d1b16218c1e148d5173 -PKG_MIRROR_HASH:=ff68e77397a7ba8f497aae9a6d1f89e196c89391a8d5ed0b81c4eafb889ba744 +PKG_MIRROR_HASH:=fe00ac98103645d20a211732ebbbd3d46acb1e5b29392dddca2df56531e54a2e CMAKE_INSTALL:=1 PKG_FLAGS:=nonshared diff --git a/package/system/gpio-cdev/nu801/Makefile b/package/system/gpio-cdev/nu801/Makefile index 67b2a771ec83fe..82c04ccb415d1e 100644 --- a/package/system/gpio-cdev/nu801/Makefile +++ b/package/system/gpio-cdev/nu801/Makefile @@ -8,7 +8,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/chunkeey/nu801.git PKG_SOURCE_VERSION:=f623879a393d0315f29095fe46b19cd2246d10d7 -PKG_MIRROR_HASH:=db21671a1c14f0bfeb65525cbfd0576d2d5bbebf3901e35e64f9bf92a9a53b0d +PKG_MIRROR_HASH:=8bf2de78e078b7305178577530ff51e7373f94d39629653ea7efc8e485d0fdbd PKG_MAINTAINER:=Christian Lamparter PKG_LICENSE:=GPL-3.0-or-later PKG_LICENSE_FILES:=LICENSE diff --git a/package/system/openwrt-keyring/Makefile b/package/system/openwrt-keyring/Makefile index 4f8a20734a1d86..d8b15d46e47c74 100644 --- a/package/system/openwrt-keyring/Makefile +++ b/package/system/openwrt-keyring/Makefile @@ -9,7 +9,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/keyring.git PKG_SOURCE_DATE:=2022-03-25 PKG_SOURCE_VERSION:=62471e693b4f9f19dd88afa6827fc3a2cf121d9a -PKG_MIRROR_HASH:=9e1c85c83b61c91f467d8df9bdf94e8a94a85ffbddfcbf3b3dc38a56e98e2516 +PKG_MIRROR_HASH:=dbc6cf709f702f92f6aabcd9f981a14901ec61c9b340bd506986f8b438503632 PKG_MAINTAINER:=John Crispin PKG_LICENSE:=GPL-2.0 diff --git a/package/system/opkg/Makefile b/package/system/opkg/Makefile index 3510e7435d1460..047d7237508e9d 100644 --- a/package/system/opkg/Makefile +++ b/package/system/opkg/Makefile @@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/opkg-lede.git PKG_SOURCE_DATE:=2022-02-24 PKG_SOURCE_VERSION:=d038e5b6d155784575f62a66a8bb7e874173e92e -PKG_MIRROR_HASH:=e5ec4ae93f6529f7f0b9acc22a9a63c1b2f27d3b30b4a82041fcd58b9bc7cdf3 +PKG_MIRROR_HASH:=6889f7d322996f9291f42d7d6a5877d256b91d4a01d6015cebaae9227702eb43 PKG_LICENSE:=GPL-2.0 PKG_LICENSE_FILES:=COPYING diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile index 5cbc44f0c060cd..dca6684df8e8c0 100644 --- a/package/system/procd/Makefile +++ b/package/system/procd/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git -PKG_MIRROR_HASH:=fc7ea415ebb1946661c1204a16b2a2b129014d39521da5883524e5ced8c3c9b4 -PKG_SOURCE_DATE:=2024-02-24 -PKG_SOURCE_VERSION:=1901aba90b6841ec1a99a25224a92d2519c603fd +PKG_MIRROR_HASH:=ad1e0d6c2549b2ebec57705c33b231e7c02042dd65c3134f62bf528cf2516efb +PKG_SOURCE_DATE:=2024-03-30 +PKG_SOURCE_VERSION:=946552a7b598a0b88db6101e864679554ec4f221 CMAKE_INSTALL:=1 PKG_LICENSE:=GPL-2.0 diff --git a/package/system/rpcd/Makefile b/package/system/rpcd/Makefile index ef360a2c12b2c3..2db014f2df34ef 100644 --- a/package/system/rpcd/Makefile +++ b/package/system/rpcd/Makefile @@ -12,7 +12,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/rpcd.git -PKG_MIRROR_HASH:=cf77c8aca75f893315620e2e3abf7fa02d8c8a21f54808b238973e43c66d0059 +PKG_MIRROR_HASH:=4b4c0a15180a4e39a5af5a6b9c7cf663bcef53d40df780e4da6edd6e63966006 PKG_SOURCE_DATE:=2024-02-22 PKG_SOURCE_VERSION:=8ef4c2587ac0041049c67befed281a70cf240769 PKG_MAINTAINER:=Jo-Philipp Wich diff --git a/package/system/selinux-policy/Makefile b/package/system/selinux-policy/Makefile index 8e36b267bb4fb3..2834e94cc56fb8 100644 --- a/package/system/selinux-policy/Makefile +++ b/package/system/selinux-policy/Makefile @@ -9,7 +9,7 @@ PKG_NAME:=selinux-policy PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://git.defensec.nl/selinux-policy.git PKG_VERSION:=1.2.5 -PKG_MIRROR_HASH:=81ac6e31d2f1febddbe594f3578a9c40444fc0e349075ab6abd3d3ee014a988e +PKG_MIRROR_HASH:=0b485aefed7ecc1ba3c5f5843cb3b10e9d7c55c09b361cd56933081c0dbdc223 PKG_SOURCE_VERSION:=v$(PKG_VERSION) PKG_BUILD_DEPENDS:=secilc/host policycoreutils/host diff --git a/package/system/ubox/Makefile b/package/system/ubox/Makefile index e74ae00b3f08f5..024532f34bc1ca 100644 --- a/package/system/ubox/Makefile +++ b/package/system/ubox/Makefile @@ -1,13 +1,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ubox -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/ubox.git PKG_SOURCE_DATE:=2024-01-24 PKG_SOURCE_VERSION:=2c5887cb46883a28d69071c4349c3dabbbe3972c -PKG_MIRROR_HASH:=0ded95382fd3a2e9751ea5fdd16c2afb7dcc52499f6ab47951c5db9525a4faa9 +PKG_MIRROR_HASH:=5b7b00c358cc53b842c25e6f6dd21bf429d4913204a8186a72b13447658927cf CMAKE_INSTALL:=1 PKG_LICENSE:=GPL-2.0 @@ -47,6 +47,7 @@ define Package/logd DEPENDS:=+libubox +libubus +libblobmsg-json +libudebug TITLE:=OpenWrt system log implementation USERID:=logd=514:logd=514 + ALTERNATIVES:=200:/sbin/logread:/usr/libexec/logread-ubox endef define Package/getrandom/install @@ -63,9 +64,10 @@ define Package/ubox/install endef define Package/logd/install - $(INSTALL_DIR) $(1)/sbin $(1)/etc/init.d/ $(1)/usr/share/acl.d + $(INSTALL_DIR) $(1)/sbin $(1)/usr/libexec/ $(1)/etc/init.d/ $(1)/usr/share/acl.d - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/{logd,logread} $(1)/sbin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/logd $(1)/sbin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/logread $(1)/usr/libexec/logread-ubox $(INSTALL_BIN) ./files/log.init $(1)/etc/init.d/log $(INSTALL_DATA) ./files/logd.json $(1)/usr/share/acl.d endef diff --git a/package/system/ubus/Makefile b/package/system/ubus/Makefile index fdf16cfeeef2fa..49958c24289f07 100644 --- a/package/system/ubus/Makefile +++ b/package/system/ubus/Makefile @@ -7,7 +7,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/ubus.git PKG_SOURCE_DATE:=2023-11-28 PKG_SOURCE_VERSION:=f84eb5998c6ea2d34989ca2d3254e56c66139313 -PKG_MIRROR_HASH:=d0c15a0275fa3d35accddb84611700bf601745ad68462bc18905bb65da931f21 +PKG_MIRROR_HASH:=c9f6118b98550802893c7c0b497f2215dbfd863d819fabc9df2aa57ce29a5fd2 PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_SOURCE_DATE)) CMAKE_INSTALL:=1 diff --git a/package/system/ucert/Makefile b/package/system/ucert/Makefile index 950f2b64d36e61..1ad1b95d7097ed 100644 --- a/package/system/ucert/Makefile +++ b/package/system/ucert/Makefile @@ -7,7 +7,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/ucert.git PKG_SOURCE_DATE:=2020-05-24 PKG_SOURCE_VERSION:=00b921d80ac0dc47339305d803f865ff43c56d63 -PKG_MIRROR_HASH:=839fda1811a58a495ac7bbc41db75222dd5a15e4d72110ca6acc4cdad56908fe +PKG_MIRROR_HASH:=45391983bd5ec9bf03004f31388f01b84ad1a564e16b71acf1b1b26a6055e721 CMAKE_INSTALL:=1 PKG_CHECK_FORMAT_SECURITY:=1 diff --git a/package/system/uci/Makefile b/package/system/uci/Makefile index 86bfdfb978365d..c8f661c68434f8 100644 --- a/package/system/uci/Makefile +++ b/package/system/uci/Makefile @@ -11,11 +11,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=uci PKG_RELEASE:=1 -PKG_SOURCE_URL:=$(PROJECT_GIT)/project/uci.git +PKG_SOURCE_URL=$(PROJECT_GIT)/project/uci.git PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2023-08-10 PKG_SOURCE_VERSION:=5781664d5087ccc4b5ab58505883231212dbedbc -PKG_MIRROR_HASH:=2d60a8543fa00cfc75df6417354b004abf58f672c91bf0a3bffe3ea1dbf84a4b +PKG_MIRROR_HASH:=0ca4a29c077e85a7cfe69916c3ceb2bee98662b6268befc3c02519939647f984 PKG_LICENSE:=LGPL-2.1 PKG_LICENSE_FILES:= diff --git a/package/system/urngd/Makefile b/package/system/urngd/Makefile index 477c5f24059dac..2745b8fc2998a8 100644 --- a/package/system/urngd/Makefile +++ b/package/system/urngd/Makefile @@ -7,7 +7,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/urngd.git PKG_SOURCE_DATE:=2023-11-01 PKG_SOURCE_VERSION:=44365eb1e1165f2a44cb31f404b04cf85031718e -PKG_MIRROR_HASH:=743bdfacf1f1e779047a55fe8f388aaf31f6e55e8a4d0a00fcabffb68af2202e +PKG_MIRROR_HASH:=b153530c4e66d1b0fe7d98b0ec24df580964f24a756e754323e3fa297eed1229 PKG_LICENSE:=GPL-2.0 BSD-3-Clause PKG_LICENSE_FILES:= diff --git a/package/system/usign/Makefile b/package/system/usign/Makefile index 3c28318028c1e0..2bcae7f523b4fa 100644 --- a/package/system/usign/Makefile +++ b/package/system/usign/Makefile @@ -7,7 +7,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/usign.git PKG_SOURCE_DATE:=2020-05-23 PKG_SOURCE_VERSION:=f1f65026a94137c91b5466b149ef3ea3f20091e9 -PKG_MIRROR_HASH:=3f6569a5e63fdfd032976ac0f79d736d3935101ac1b97fb370514b013c5e6bb6 +PKG_MIRROR_HASH:=3157ad9e0ebe0512644fbd00191d97a91809f03c3deca67200845a5d07aa721f CMAKE_INSTALL:=1 PKG_CHECK_FORMAT_SECURITY:=1 PKG_BUILD_FLAGS:=no-mips16 lto diff --git a/package/utils/bcm27xx-utils/Makefile b/package/utils/bcm27xx-utils/Makefile index ec41b70c306bbe..9e113914e7bd84 100644 --- a/package/utils/bcm27xx-utils/Makefile +++ b/package/utils/bcm27xx-utils/Makefile @@ -9,7 +9,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/raspberrypi/utils.git PKG_SOURCE_VERSION:=e65f5ec102e74218cda7da9fdc8b1caa0fd1127d -PKG_MIRROR_HASH:=14f4aa1a8115240d702251bc399b53cbfa0928813f70a73ca27b22da94b696d2 +PKG_MIRROR_HASH:=ea946fc4a86875c5d1efc35b2bc80f6b5482afc3d1ea13853b69abc2b4a2eee6 PKG_FLAGS:=nonshared PKG_BUILD_FLAGS:=no-lto diff --git a/package/utils/debugcc/Makefile b/package/utils/debugcc/Makefile index 2a72f1773064e8..3e26cea7e510c0 100644 --- a/package/utils/debugcc/Makefile +++ b/package/utils/debugcc/Makefile @@ -7,7 +7,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/linux-msm/debugcc.git PKG_SOURCE_DATE:=2023-11-10 PKG_SOURCE_VERSION:=d15bea7c05f224a85dd1fcec24b0f153dbad9f6e -PKG_MIRROR_HASH:=b6bd181db4992cf429343cd7d0fdde0f937a8f1811f5fe9e7855a0d76b0d88a0 +PKG_MIRROR_HASH:=4cd7a770a05db28f496a60eb9fe015a4af677bba05053b4d4be21adcf95e52e5 PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE diff --git a/package/utils/dtc/Makefile b/package/utils/dtc/Makefile index afec6fbae54085..ea970e200a6813 100644 --- a/package/utils/dtc/Makefile +++ b/package/utils/dtc/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dtc PKG_VERSION:=1.7.0 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_HASH:=29edce3d302a15563d8663198bbc398c5a0554765c83830d0d4c0409d21a16c4 diff --git a/package/utils/dtc/patches/010-both-libraries.patch b/package/utils/dtc/patches/010-both-libraries.patch new file mode 100644 index 00000000000000..ccc547b349214e --- /dev/null +++ b/package/utils/dtc/patches/010-both-libraries.patch @@ -0,0 +1,48 @@ +From da39ee0e68b6d9293133a7c41c6cf73354dce337 Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Wed, 21 Feb 2024 13:57:56 -0800 +Subject: [PATCH] libfdt: rework shared/static libraries + +Instead of creating 2 libraries manualy, just call both_libraries and +link to the appropriate one as requested. + +Fixes compilation when passing -Ddefault_libraries=both as the +static_library name is duplicated. + +Signed-off-by: Rosen Penev +Signed-off-by: David Gibson +--- + libfdt/meson.build | 17 +++++------------ + 1 file changed, 5 insertions(+), 12 deletions(-) + +--- a/libfdt/meson.build ++++ b/libfdt/meson.build +@@ -16,7 +16,7 @@ sources = files( + 'fdt_wip.c', + ) + +-libfdt = library( ++libfdt = both_libraries( + 'fdt', sources, + version: '1.6.0', + link_args: ['-Wl,--no-undefined', version_script], +@@ -24,17 +24,12 @@ libfdt = library( + install: true, + ) + +-libfdt_a = static_library( +- 'fdt', sources, +- install: true, +-) +- + libfdt_inc = include_directories('.') + + if static_build +- link_with = libfdt_a ++ link_with = libfdt.get_static_lib() + else +- link_with = libfdt ++ link_with = libfdt.get_shared_lib() + endif + + libfdt_dep = declare_dependency( diff --git a/package/utils/firmware-utils/Makefile b/package/utils/firmware-utils/Makefile index 5e5f57e5a073d8..3a6467503c0aef 100644 --- a/package/utils/firmware-utils/Makefile +++ b/package/utils/firmware-utils/Makefile @@ -7,9 +7,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware-utils.git -PKG_SOURCE_DATE:=2023-11-22 -PKG_SOURCE_VERSION:=d87b6c4b6423201e595459840f51d0dced04a4eb -PKG_MIRROR_HASH:=f34fbf4dc4bd13d18ea94e6e25090b57cde11b3dc7133e46f6ce3bb9164ab8fb +PKG_SOURCE_DATE:=2024-03-23 +PKG_SOURCE_VERSION:=6b242991a995c41769977efb010dc9f4e4ec3da2 +PKG_MIRROR_HASH:=00ff2661fda2eb299ccbfaa07dff8fbcf46b3441a6e9f6f46eaa119e66dbe142 PKG_BUILD_DEPENDS:=openssl zlib diff --git a/package/utils/jsonfilter/Makefile b/package/utils/jsonfilter/Makefile index fda66bbfb4b958..d249ea1a369da7 100644 --- a/package/utils/jsonfilter/Makefile +++ b/package/utils/jsonfilter/Makefile @@ -7,7 +7,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/jsonpath.git PKG_SOURCE_DATE:=2024-01-23 PKG_SOURCE_VERSION:=594cfa86469c005972ba750614f5b3f1af84d0f6 -PKG_MIRROR_HASH:=70d2e0870b746920af4569631218c38c1dddfee4f5d029ec8ea0a67999bdafcd +PKG_MIRROR_HASH:=2f455f04fbfcdb4c81cccd23475b47395f847db44aa4bd9a1007b9aa0ab7fd19 CMAKE_INSTALL:=1 PKG_MAINTAINER:=Jo-Philipp Wich diff --git a/package/utils/ravpower-mcu/Makefile b/package/utils/ravpower-mcu/Makefile index 949ccfcce13c6c..8139e1bf87d350 100644 --- a/package/utils/ravpower-mcu/Makefile +++ b/package/utils/ravpower-mcu/Makefile @@ -5,7 +5,7 @@ PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/blocktrron/ravpower-mcu.git -PKG_MIRROR_HASH:=edde0fda3fc708eac65baff46b5b6f1290ab733d3f4bd7fc027ef45c3d1b5814 +PKG_MIRROR_HASH:=683c04c85c6f973d3e9a0c9d0f77e2dde4e89ff0d40a28ad6682bc2550022b3c PKG_SOURCE_DATE:=2020-06-19 PKG_SOURCE_VERSION:=1665d9e9212dcd118629a74fbe658841f81036f7 PKG_MAINTAINER:=David Bauer diff --git a/package/utils/ucode/Makefile b/package/utils/ucode/Makefile index e18f53ea322d63..fdaafdddcc827f 100644 --- a/package/utils/ucode/Makefile +++ b/package/utils/ucode/Makefile @@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/jow-/ucode.git PKG_SOURCE_DATE:=2024-02-21 PKG_SOURCE_VERSION:=ba3855ae3775197f3594fc2615cac539075bd2fb -PKG_MIRROR_HASH:=82b8a73417575b58a234586354eba4d0b10180a80b441cd87a9a554227304d34 +PKG_MIRROR_HASH:=f585447ebbb5ef56ada3a9f8dbe71d5310cc8185d0e90676b512849eaf60f77c PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC diff --git a/package/utils/ugps/Makefile b/package/utils/ugps/Makefile index 66d42dca89df4e..aa91b606dbbfb3 100644 --- a/package/utils/ugps/Makefile +++ b/package/utils/ugps/Makefile @@ -14,7 +14,7 @@ PKG_SOURCE_URL=$(PROJECT_GIT)/project/ugps.git PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2024-02-14 PKG_SOURCE_VERSION:=69561a074d6f50f63b82608b19041e5eb2c605a9 -PKG_MIRROR_HASH:=6a9ea235665babc22393df53e6945030a2e2264d92afccf2e9cd61fa01aa3b11 +PKG_MIRROR_HASH:=87f9634c5e940523808391886fde504237ac2f7f62224733120a06fba4f7e952 PKG_MAINTAINER:=John Crispin PKG_LICENSE:=GPL-2.0+ diff --git a/package/utils/usbmode/Makefile b/package/utils/usbmode/Makefile index 1aa1980ce27b8e..33362d33c87edc 100644 --- a/package/utils/usbmode/Makefile +++ b/package/utils/usbmode/Makefile @@ -7,7 +7,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/usbmode.git PKG_SOURCE_DATE:=2022-02-24 PKG_SOURCE_VERSION:=3c8595a4e75510f58fa231b145d5506768dcafc9 -PKG_MIRROR_HASH:=5f0234945f61639080f039522172151452180dd4aec33bafc8a61b60131c3bed +PKG_MIRROR_HASH:=e8a40ed3b849c3b9ba9c9823a4631731dcf261d3529f173ff5973f7cc08add15 CMAKE_INSTALL:=1 PKG_LICENSE:=GPL-2.0 diff --git a/package/utils/yafut/Makefile b/package/utils/yafut/Makefile index ef16404c3369da..37df2d81723260 100644 --- a/package/utils/yafut/Makefile +++ b/package/utils/yafut/Makefile @@ -5,7 +5,7 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/kempniu/yafut.git -PKG_MIRROR_HASH:=6eece622d1df99ffee1a18d162d36292f32bf2d5e514663a6b61fd82c2ecbcba +PKG_MIRROR_HASH:=591eb3ffa334aaebf9f8155ade90b674896223bcabc1039deda57c2aeafb0525 PKG_SOURCE_DATE:=2023-03-31 PKG_SOURCE_VERSION:=16435e89d449f953712983315e1a89cdb678620d diff --git a/scripts/dl_cleanup.py b/scripts/dl_cleanup.py index cdbcb83f2028d9..6d4f96c9d8600b 100755 --- a/scripts/dl_cleanup.py +++ b/scripts/dl_cleanup.py @@ -100,6 +100,7 @@ def parseVer_GIT(match, filepath): ".tar.gz", ".tar.bz2", ".tar.xz", + ".tar.zst", ".orig.tar.gz", ".orig.tar.bz2", ".orig.tar.xz", diff --git a/scripts/dl_github_archive.py b/scripts/dl_github_archive.py index 580b7cba38aaf4..744c441ca70676 100755 --- a/scripts/dl_github_archive.py +++ b/scripts/dl_github_archive.py @@ -138,7 +138,11 @@ def tar(path, subdir, into=None, ts=None): envs = os.environ.copy() if ts is not None: args.append('--mtime=@%d' % ts) - if into.endswith('.xz'): + if into.endswith('.zst'): + envs['ZSTD_CLEVEL'] = '20' + envs['ZSTD_NBTHREADS'] = '0' + args.append('--zstd') + elif into.endswith('.xz'): envs['XZ_OPT'] = '-7e' args.append('-J') elif into.endswith('.bz2'): diff --git a/scripts/kernel_bump.sh b/scripts/kernel_bump.sh new file mode 100755 index 00000000000000..5896bfc48fb252 --- /dev/null +++ b/scripts/kernel_bump.sh @@ -0,0 +1,225 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0-or-later +# +# Copyright (C) 2024 Olliver Schinagl + +set -eu +if [ -n "${DEBUG_TRACE_SH:-}" ] && \ + [ "${DEBUG_TRACE_SH:-}" != "${DEBUG_TRACE_SH#*"$(basename "${0}")"*}" ] || \ + [ "${DEBUG_TRACE_SH:-}" = 'all' ]; then + set -x +fi + +REQUIRED_COMMANDS=' + [ + basename + command + echo + exit + git + printf + set + shift +' + +_msg() +{ + _level="${1:?Missing argument to function}" + shift + + if [ "${#}" -le 0 ]; then + echo "${_level}: No content for this message ..." + return + fi + + echo "${_level}: ${*}" +} + +e_err() +{ + _msg 'err' "${*}" >&2 +} + +e_warn() +{ + _msg 'warning' "${*}" +} + +e_notice() +{ + _msg 'notice' "${*}" +} + +usage() +{ + echo "Usage: ${0}" + echo 'Helper script to bump the target kernel version, whilst keeping history.' + echo " -p Optional Platform name (e.g. 'ath79' [PLATFORM_NAME]" + echo " -s Source version of kernel (e.g. 'v6.1' [SOURCE_VERSION])" + echo " -t Target version of kernel (e.g. 'v6.6' [TARGET_VERSION]')" + echo + echo 'All options can also be passed in environment variables (listed between [BRACKETS]).' + echo 'Example: scripts/kernel_bump.sh -p realtek -s v6.1 -t v6.6' +} + +cleanup() +{ + trap - EXIT HUP INT QUIT ABRT ALRM TERM + + if [ -n "${initial_branch:-}" ] && \ + [ "$(git rev-parse --abbrev-ref HEAD)" != "${initial_branch:-}" ]; then + git switch "${initial_branch}" + fi +} + +init() +{ + initial_branch="$(git rev-parse --abbrev-ref HEAD)" + initial_commitish="$(git rev-parse HEAD)" + + trap cleanup EXIT HUP INT QUIT ABRT ALRM TERM +} + +do_source_target() +{ + _target_dir="${1:?Missing argument to function}" + _op="${2:?Missing argument to function}" + +} + +bump_kernel() +{ + platform_name="${platform_name##*'/'}" + + if [ -z "${platform_name:-}" ]; then + platform_name="${PWD##*'/'}" + fi + + if [ "${PWD##*'/'}" = "${platform_name}" ]; then + _target_dir='./' + else + _target_dir="target/linux/${platform_name}" + fi + + if [ ! -d "${_target_dir}/image" ]; then + e_err 'Cannot find target linux directory.' + exit 1 + fi + + git switch --force-create '__openwrt_kernel_files_mover' + + for _path in "${_target_dir}/"*; do + if [ ! -s "${_path}" ] || \ + [ "${_path}" = "${_path%%"-${source_version}"}" ]; then + continue + fi + + _target_path="${_path%%"-${source_version}"}-${target_version}" + if [ -s "${_target_path}" ]; then + e_err "Target '${_target_path}' already exists!" + exit 1 + fi + + git mv \ + "${_path}" \ + "${_target_path}" + done + + find "${_target_dir}" -iname "config-${source_version}" | while read -r _config; do + _path="${_config%%"/config-${source_version}"}" + git mv "${_config}" "${_path}/config-${target_version}" + done + + git commit \ + --signoff \ + --message "kernel/${platform_name}: Create kernel files for v${target_version} (from v${source_version})" \ + --message 'This is an automatically generated commit.' \ + --message 'During a `git bisect` session, `git bisect --skip` is recommended.' + + git checkout 'HEAD~' "${_target_dir}" + git commit \ + --signoff \ + --message "kernel/${platform_name}: Restore kernel files for v${source_version}" \ + --message "$(printf "This is an automatically generated commit which aids following Kernel patch history,\nas git will see the move and copy as a rename thus defeating the purpose.\n\nSee: https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html\nfor the original discussion.")" + git switch "${initial_branch:?Unable to switch back to original branch. Quitting.}" + GIT_EDITOR=true git merge --no-ff '__openwrt_kernel_files_mover' + git branch --delete '__openwrt_kernel_files_mover' + + echo "Original commitish was '${initial_commitish}'." + echo 'Kernel bump complete. Remember to use `git log --follow`.' +} + +check_requirements() +{ + for _cmd in ${REQUIRED_COMMANDS}; do + if ! _test_result="$(command -V "${_cmd}")"; then + _test_result_fail="${_test_result_fail:-}${_test_result}\n" + else + _test_result_pass="${_test_result_pass:-}${_test_result}\n" + fi + done + + echo 'Available commands:' + # As the results contain \n, we expect these to be interpreted. + # shellcheck disable=SC2059 + printf "${_test_result_pass:-none\n}" + echo + echo 'Missing commands:' + # shellcheck disable=SC2059 + printf "${_test_result_fail:-none\n}" + echo + + if [ -n "${_test_result_fail:-}" ]; then + echo 'Command test failed, missing programs.' + test_failed=1 + fi +} + +main() +{ + while getopts 'hp:s:t:' _options; do + case "${_options}" in + 'h') + usage + exit 0 + ;; + 'p') + platform_name="${OPTARG}" + ;; + 's') + source_version="${OPTARG#v}" + ;; + 't') + target_version="${OPTARG#v}" + ;; + ':') + e_err "Option -${OPTARG} requires an argument." + exit 1 + ;; + *) + e_err "Invalid option: -${OPTARG}" + exit 1 + ;; + esac + done + shift "$((OPTIND - 1))" + + platform_name="${platform_name:-${PLATFORM_NAME:-}}" + source_version="${source_version:-${SOURCE_VERSION:-}}" + target_version="${target_version:-${TARGET_VERSION:-}}" + + if [ -z "${source_version:-}" ] || [ -z "${target_version:-}" ]; then + e_err "Source (${source_version}) and target (${target_version}) versions need to be defined." + exit 1 + fi + + check_requirements + + init + bump_kernel + cleanup +} + +main "${@}" + +exit 0 diff --git a/target/linux/generic/backport-5.15/020-v6.1-02-mm-x86-add-CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG.patch b/target/linux/generic/backport-5.15/020-v6.1-02-mm-x86-add-CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG.patch index 27c85a333b3eea..2ea2e2497acc75 100644 --- a/target/linux/generic/backport-5.15/020-v6.1-02-mm-x86-add-CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG.patch +++ b/target/linux/generic/backport-5.15/020-v6.1-02-mm-x86-add-CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG.patch @@ -73,7 +73,7 @@ Signed-off-by: Andrew Morton --- a/arch/Kconfig +++ b/arch/Kconfig -@@ -1298,6 +1298,14 @@ config ARCH_HAS_ELFCORE_COMPAT +@@ -1299,6 +1299,14 @@ config ARCH_HAS_ELFCORE_COMPAT config ARCH_HAS_PARANOID_L1D_FLUSH bool diff --git a/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch b/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch index 769384f500f301..969d721da61523 100644 --- a/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch +++ b/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch @@ -538,7 +538,7 @@ Signed-off-by: Andrew Morton (1UL << PG_private | 1UL << PG_private_2) --- a/include/linux/sched.h +++ b/include/linux/sched.h -@@ -911,6 +911,10 @@ struct task_struct { +@@ -907,6 +907,10 @@ struct task_struct { #ifdef CONFIG_MEMCG unsigned in_user_fault:1; #endif diff --git a/target/linux/generic/backport-5.15/081-v5.17-regmap-allow-to-define-reg_update_bits-for-no-bus.patch b/target/linux/generic/backport-5.15/081-v5.17-regmap-allow-to-define-reg_update_bits-for-no-bus.patch deleted file mode 100644 index e4c0833ae75f35..00000000000000 --- a/target/linux/generic/backport-5.15/081-v5.17-regmap-allow-to-define-reg_update_bits-for-no-bus.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 02d6fdecb9c38de19065f6bed8d5214556fd061d Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 4 Nov 2021 16:00:40 +0100 -Subject: regmap: allow to define reg_update_bits for no bus configuration - -Some device requires a special handling for reg_update_bits and can't use -the normal regmap read write logic. An example is when locking is -handled by the device and rmw operations requires to do atomic operations. -Allow to declare a dedicated function in regmap_config for -reg_update_bits in no bus configuration. - -Signed-off-by: Ansuel Smith -Link: https://lore.kernel.org/r/20211104150040.1260-1-ansuelsmth@gmail.com -Signed-off-by: Mark Brown ---- - drivers/base/regmap/regmap.c | 1 + - include/linux/regmap.h | 7 +++++++ - 2 files changed, 8 insertions(+) - ---- a/drivers/base/regmap/regmap.c -+++ b/drivers/base/regmap/regmap.c -@@ -877,6 +877,7 @@ struct regmap *__regmap_init(struct devi - if (!bus) { - map->reg_read = config->reg_read; - map->reg_write = config->reg_write; -+ map->reg_update_bits = config->reg_update_bits; - - map->defer_caching = false; - goto skip_format_initialization; ---- a/include/linux/regmap.h -+++ b/include/linux/regmap.h -@@ -290,6 +290,11 @@ typedef void (*regmap_unlock)(void *); - * read operation on a bus such as SPI, I2C, etc. Most of the - * devices do not need this. - * @reg_write: Same as above for writing. -+ * @reg_update_bits: Optional callback that if filled will be used to perform -+ * all the update_bits(rmw) operation. Should only be provided -+ * if the function require special handling with lock and reg -+ * handling and the operation cannot be represented as a simple -+ * update_bits operation on a bus such as SPI, I2C, etc. - * @fast_io: Register IO is fast. Use a spinlock instead of a mutex - * to perform locking. This field is ignored if custom lock/unlock - * functions are used (see fields lock/unlock of struct regmap_config). -@@ -372,6 +377,8 @@ struct regmap_config { - - int (*reg_read)(void *context, unsigned int reg, unsigned int *val); - int (*reg_write)(void *context, unsigned int reg, unsigned int val); -+ int (*reg_update_bits)(void *context, unsigned int reg, -+ unsigned int mask, unsigned int val); - - bool fast_io; - diff --git a/target/linux/generic/backport-5.15/346-v5.18-01-Revert-ata-ahci-mvebu-Make-SATA-PHY-optional-for-Arm.patch b/target/linux/generic/backport-5.15/346-v5.18-01-Revert-ata-ahci-mvebu-Make-SATA-PHY-optional-for-Arm.patch index f225a210570194..35bc19c1ef5d6c 100644 --- a/target/linux/generic/backport-5.15/346-v5.18-01-Revert-ata-ahci-mvebu-Make-SATA-PHY-optional-for-Arm.patch +++ b/target/linux/generic/backport-5.15/346-v5.18-01-Revert-ata-ahci-mvebu-Make-SATA-PHY-optional-for-Arm.patch @@ -31,15 +31,15 @@ Signed-off-by: Vinod Koul --- a/drivers/ata/ahci.h +++ b/drivers/ata/ahci.h -@@ -241,8 +241,6 @@ enum { +@@ -240,8 +240,6 @@ enum { as default lpm_policy */ AHCI_HFLAG_SUSPEND_PHYS = BIT(26), /* handle PHYs during suspend/resume */ - AHCI_HFLAG_IGN_NOTSUPP_POWER_ON = BIT(27), /* ignore -EOPNOTSUPP - from phy_power_on() */ AHCI_HFLAG_NO_SXS = BIT(28), /* SXS not supported */ + AHCI_HFLAG_43BIT_ONLY = BIT(29), /* 43bit DMA addr limit */ - /* ap->flags bits */ --- a/drivers/ata/ahci_mvebu.c +++ b/drivers/ata/ahci_mvebu.c @@ -227,7 +227,7 @@ static const struct ahci_mvebu_plat_data diff --git a/target/linux/generic/backport-5.15/346-v5.18-02-Revert-usb-host-xhci-mvebu-make-USB-3.0-PHY-optional.patch b/target/linux/generic/backport-5.15/346-v5.18-02-Revert-usb-host-xhci-mvebu-make-USB-3.0-PHY-optional.patch index 1e8afb7bbf574f..8cd86e0fcb55b3 100644 --- a/target/linux/generic/backport-5.15/346-v5.18-02-Revert-usb-host-xhci-mvebu-make-USB-3.0-PHY-optional.patch +++ b/target/linux/generic/backport-5.15/346-v5.18-02-Revert-usb-host-xhci-mvebu-make-USB-3.0-PHY-optional.patch @@ -138,7 +138,7 @@ Signed-off-by: Vinod Koul .init_quirk = xhci_mvebu_a3700_init_quirk, }; -@@ -341,14 +330,7 @@ static int xhci_plat_probe(struct platfo +@@ -344,14 +333,7 @@ static int xhci_plat_probe(struct platfo hcd->tpl_support = of_usb_host_tpl_support(sysdev->of_node); xhci->shared_hcd->tpl_support = hcd->tpl_support; diff --git a/target/linux/generic/backport-5.15/350-v5.18-regmap-add-configurable-downshift-for-addresses.patch b/target/linux/generic/backport-5.15/350-v5.18-regmap-add-configurable-downshift-for-addresses.patch index 7bb328f3a6de9a..175df150cccdfd 100644 --- a/target/linux/generic/backport-5.15/350-v5.18-regmap-add-configurable-downshift-for-addresses.patch +++ b/target/linux/generic/backport-5.15/350-v5.18-regmap-add-configurable-downshift-for-addresses.patch @@ -37,7 +37,7 @@ Signed-off-by: Mark Brown map->format.val_bytes = DIV_ROUND_UP(config->val_bits, 8); map->format.buf_size = DIV_ROUND_UP(config->reg_bits + config->val_bits + config->pad_bits, 8); -@@ -1737,6 +1738,7 @@ static int _regmap_raw_write_impl(struct +@@ -1750,6 +1751,7 @@ static int _regmap_raw_write_impl(struct return ret; } @@ -45,7 +45,7 @@ Signed-off-by: Mark Brown map->format.format_reg(map->work_buf, reg, map->reg_shift); regmap_set_work_buf_flag_mask(map, map->format.reg_bytes, map->write_flag_mask); -@@ -1907,6 +1909,7 @@ static int _regmap_bus_formatted_write(v +@@ -1920,6 +1922,7 @@ static int _regmap_bus_formatted_write(v return ret; } @@ -53,7 +53,7 @@ Signed-off-by: Mark Brown map->format.format_write(map, reg, val); trace_regmap_hw_write_start(map, reg, 1); -@@ -2348,6 +2351,7 @@ static int _regmap_raw_multi_reg_write(s +@@ -2360,6 +2363,7 @@ static int _regmap_raw_multi_reg_write(s unsigned int reg = regs[i].reg; unsigned int val = regs[i].def; trace_regmap_hw_write_start(map, reg, 1); @@ -61,7 +61,7 @@ Signed-off-by: Mark Brown map->format.format_reg(u8, reg, map->reg_shift); u8 += reg_bytes + pad_bytes; map->format.format_val(u8, val, 0); -@@ -2675,6 +2679,7 @@ static int _regmap_raw_read(struct regma +@@ -2685,6 +2689,7 @@ static int _regmap_raw_read(struct regma return ret; } @@ -80,7 +80,7 @@ Signed-off-by: Mark Brown * @pad_bits: Number of bits of padding between register and value. * @val_bits: Number of bits in a register value, mandatory. * -@@ -360,6 +362,7 @@ struct regmap_config { +@@ -366,6 +368,7 @@ struct regmap_config { int reg_bits; int reg_stride; diff --git a/target/linux/generic/backport-5.15/351-v5.18-regmap-allow-a-defined-reg_base-to-be-added-to-every.patch b/target/linux/generic/backport-5.15/351-v5.18-regmap-allow-a-defined-reg_base-to-be-added-to-every.patch index 841f8d45286fe0..df716c4b651c26 100644 --- a/target/linux/generic/backport-5.15/351-v5.18-regmap-allow-a-defined-reg_base-to-be-added-to-every.patch +++ b/target/linux/generic/backport-5.15/351-v5.18-regmap-allow-a-defined-reg_base-to-be-added-to-every.patch @@ -42,7 +42,7 @@ Signed-off-by: Mark Brown map->format.reg_bytes = DIV_ROUND_UP(config->reg_bits, 8); map->format.pad_bytes = config->pad_bits / 8; map->format.reg_downshift = config->reg_downshift; -@@ -1738,6 +1740,7 @@ static int _regmap_raw_write_impl(struct +@@ -1751,6 +1753,7 @@ static int _regmap_raw_write_impl(struct return ret; } @@ -50,7 +50,7 @@ Signed-off-by: Mark Brown reg >>= map->format.reg_downshift; map->format.format_reg(map->work_buf, reg, map->reg_shift); regmap_set_work_buf_flag_mask(map, map->format.reg_bytes, -@@ -1909,6 +1912,7 @@ static int _regmap_bus_formatted_write(v +@@ -1922,6 +1925,7 @@ static int _regmap_bus_formatted_write(v return ret; } @@ -58,7 +58,7 @@ Signed-off-by: Mark Brown reg >>= map->format.reg_downshift; map->format.format_write(map, reg, val); -@@ -2351,6 +2355,7 @@ static int _regmap_raw_multi_reg_write(s +@@ -2363,6 +2367,7 @@ static int _regmap_raw_multi_reg_write(s unsigned int reg = regs[i].reg; unsigned int val = regs[i].def; trace_regmap_hw_write_start(map, reg, 1); @@ -66,7 +66,7 @@ Signed-off-by: Mark Brown reg >>= map->format.reg_downshift; map->format.format_reg(u8, reg, map->reg_shift); u8 += reg_bytes + pad_bytes; -@@ -2679,6 +2684,7 @@ static int _regmap_raw_read(struct regma +@@ -2689,6 +2694,7 @@ static int _regmap_raw_read(struct regma return ret; } @@ -85,7 +85,7 @@ Signed-off-by: Mark Brown * @pad_bits: Number of bits of padding between register and value. * @val_bits: Number of bits in a register value, mandatory. * -@@ -363,6 +365,7 @@ struct regmap_config { +@@ -369,6 +371,7 @@ struct regmap_config { int reg_bits; int reg_stride; int reg_downshift; diff --git a/target/linux/generic/backport-5.15/352-v6.3-regmap-apply-reg_base-and-reg_downshift-for-single-r.patch b/target/linux/generic/backport-5.15/352-v6.3-regmap-apply-reg_base-and-reg_downshift-for-single-r.patch index bc3865c75b92af..33de94cb17b25e 100644 --- a/target/linux/generic/backport-5.15/352-v6.3-regmap-apply-reg_base-and-reg_downshift-for-single-r.patch +++ b/target/linux/generic/backport-5.15/352-v6.3-regmap-apply-reg_base-and-reg_downshift-for-single-r.patch @@ -28,7 +28,7 @@ Signed-off-by: Mark Brown --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c -@@ -1931,6 +1931,8 @@ static int _regmap_bus_reg_write(void *c +@@ -1943,6 +1943,8 @@ static int _regmap_bus_reg_write(void *c { struct regmap *map = context; @@ -37,7 +37,7 @@ Signed-off-by: Mark Brown return map->bus->reg_write(map->bus_context, reg, val); } -@@ -2705,6 +2707,8 @@ static int _regmap_bus_reg_read(void *co +@@ -2715,6 +2717,8 @@ static int _regmap_bus_reg_read(void *co { struct regmap *map = context; @@ -46,7 +46,7 @@ Signed-off-by: Mark Brown return map->bus->reg_read(map->bus_context, reg, val); } -@@ -3080,6 +3084,8 @@ static int _regmap_update_bits(struct re +@@ -3084,6 +3088,8 @@ static int _regmap_update_bits(struct re *change = false; if (regmap_volatile(map, reg) && map->reg_update_bits) { diff --git a/target/linux/generic/backport-5.15/411-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch b/target/linux/generic/backport-5.15/411-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch new file mode 100644 index 00000000000000..dce2c91fd37d0f --- /dev/null +++ b/target/linux/generic/backport-5.15/411-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch @@ -0,0 +1,36 @@ +From 8e7daa85641c9559c113f6b217bdc923397de77c Mon Sep 17 00:00:00 2001 +From: William Zhang +Date: Thu, 22 Feb 2024 19:47:58 -0800 +Subject: [PATCH] mtd: rawnand: brcmnand: Support write protection setting from + dts + +The write protection feature is controlled by the module parameter wp_on +with default set to enabled. But not all the board use this feature +especially in BCMBCA broadband board. And module parameter is not +sufficient as different board can have different option. Add a device +tree property and allow this feature to be configured through the board +dts on per board basis. + +Signed-off-by: William Zhang +Reviewed-by: Florian Fainelli +Reviewed-by: Kamal Dasu +Reviewed-by: David Regan +Signed-off-by: Miquel Raynal +Link: https://lore.kernel.org/linux-mtd/20240223034758.13753-14-william.zhang@broadcom.com +--- + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +@@ -3184,6 +3184,10 @@ int brcmnand_probe(struct platform_devic + /* Disable XOR addressing */ + brcmnand_rmw_reg(ctrl, BRCMNAND_CS_XOR, 0xff, 0, 0); + ++ /* Check if the board connects the WP pin */ ++ if (of_property_read_bool(dn, "brcm,wp-not-connected")) ++ wp_on = 0; ++ + if (ctrl->features & BRCMNAND_HAS_WP) { + /* Permanently disable write protection */ + if (wp_on == 2) diff --git a/target/linux/generic/backport-5.15/420-v5.19-02-mtd-spinand-gigadevice-add-support-for-GD5FxGQ4xExxG.patch b/target/linux/generic/backport-5.15/420-v5.19-02-mtd-spinand-gigadevice-add-support-for-GD5FxGQ4xExxG.patch index 181c912fbfcfc3..94863b891c6c26 100644 --- a/target/linux/generic/backport-5.15/420-v5.19-02-mtd-spinand-gigadevice-add-support-for-GD5FxGQ4xExxG.patch +++ b/target/linux/generic/backport-5.15/420-v5.19-02-mtd-spinand-gigadevice-add-support-for-GD5FxGQ4xExxG.patch @@ -19,7 +19,7 @@ Link: https://lore.kernel.org/linux-mtd/20220320100001.247905-3-gch981213@gmail. --- a/drivers/mtd/nand/spi/gigadevice.c +++ b/drivers/mtd/nand/spi/gigadevice.c -@@ -333,6 +333,36 @@ static const struct spinand_info gigadev +@@ -335,6 +335,36 @@ static const struct spinand_info gigadev SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, gd5fxgq4uexxg_ecc_get_status)), diff --git a/target/linux/generic/backport-5.15/420-v5.19-03-mtd-spinand-gigadevice-add-support-for-GD5F1GQ5RExxG.patch b/target/linux/generic/backport-5.15/420-v5.19-03-mtd-spinand-gigadevice-add-support-for-GD5F1GQ5RExxG.patch index 3a1cc9efcfbcd1..287a062aaca8cc 100644 --- a/target/linux/generic/backport-5.15/420-v5.19-03-mtd-spinand-gigadevice-add-support-for-GD5F1GQ5RExxG.patch +++ b/target/linux/generic/backport-5.15/420-v5.19-03-mtd-spinand-gigadevice-add-support-for-GD5F1GQ5RExxG.patch @@ -14,7 +14,7 @@ Link: https://lore.kernel.org/linux-mtd/20220320100001.247905-4-gch981213@gmail. --- a/drivers/mtd/nand/spi/gigadevice.c +++ b/drivers/mtd/nand/spi/gigadevice.c -@@ -383,6 +383,16 @@ static const struct spinand_info gigadev +@@ -385,6 +385,16 @@ static const struct spinand_info gigadev SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, gd5fxgq5xexxg_ecc_get_status)), diff --git a/target/linux/generic/backport-5.15/420-v5.19-04-mtd-spinand-gigadevice-add-support-for-GD5F-2-4-GQ5x.patch b/target/linux/generic/backport-5.15/420-v5.19-04-mtd-spinand-gigadevice-add-support-for-GD5F-2-4-GQ5x.patch index cee9d9db3eb43c..b1cf47678e014a 100644 --- a/target/linux/generic/backport-5.15/420-v5.19-04-mtd-spinand-gigadevice-add-support-for-GD5F-2-4-GQ5x.patch +++ b/target/linux/generic/backport-5.15/420-v5.19-04-mtd-spinand-gigadevice-add-support-for-GD5F-2-4-GQ5x.patch @@ -35,7 +35,7 @@ Link: https://lore.kernel.org/linux-mtd/20220320100001.247905-5-gch981213@gmail. static SPINAND_OP_VARIANTS(write_cache_variants, SPINAND_PROG_LOAD_X4(true, 0, NULL, 0), SPINAND_PROG_LOAD(true, 0, NULL, 0)); -@@ -391,6 +399,46 @@ static const struct spinand_info gigadev +@@ -393,6 +401,46 @@ static const struct spinand_info gigadev &write_cache_variants, &update_cache_variants), SPINAND_HAS_QE_BIT, diff --git a/target/linux/generic/backport-5.15/420-v5.19-05-mtd-spinand-gigadevice-add-support-for-GD5FxGM7xExxG.patch b/target/linux/generic/backport-5.15/420-v5.19-05-mtd-spinand-gigadevice-add-support-for-GD5FxGM7xExxG.patch index d63113e1a66f08..5e342a29fbf51d 100644 --- a/target/linux/generic/backport-5.15/420-v5.19-05-mtd-spinand-gigadevice-add-support-for-GD5FxGM7xExxG.patch +++ b/target/linux/generic/backport-5.15/420-v5.19-05-mtd-spinand-gigadevice-add-support-for-GD5FxGM7xExxG.patch @@ -22,7 +22,7 @@ Link: https://lore.kernel.org/linux-mtd/20220320100001.247905-6-gch981213@gmail. --- a/drivers/mtd/nand/spi/gigadevice.c +++ b/drivers/mtd/nand/spi/gigadevice.c -@@ -441,6 +441,66 @@ static const struct spinand_info gigadev +@@ -443,6 +443,66 @@ static const struct spinand_info gigadev SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, gd5fxgq5xexxg_ecc_get_status)), diff --git a/target/linux/generic/backport-5.15/609-v5.18-veth-Allow-jumbo-frames-in-xdp-mode.patch b/target/linux/generic/backport-5.15/609-v5.18-veth-Allow-jumbo-frames-in-xdp-mode.patch index cab980a6dceef8..fd583e80f4eb61 100644 --- a/target/linux/generic/backport-5.15/609-v5.18-veth-Allow-jumbo-frames-in-xdp-mode.patch +++ b/target/linux/generic/backport-5.15/609-v5.18-veth-Allow-jumbo-frames-in-xdp-mode.patch @@ -20,7 +20,7 @@ Link: https://lore.kernel.org/bpf/d5dc039c3d4123426e7023a488c449181a7bc57f.16469 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c -@@ -1473,9 +1473,14 @@ static int veth_xdp_set(struct net_devic +@@ -1455,9 +1455,14 @@ static int veth_xdp_set(struct net_devic goto err; } diff --git a/target/linux/generic/backport-5.15/702-v5.19-00-net-ethernet-mtk_eth_soc-add-support-for-coherent-DM.patch b/target/linux/generic/backport-5.15/702-v5.19-00-net-ethernet-mtk_eth_soc-add-support-for-coherent-DM.patch index 3e7612b0d90c17..2bace3baac87b3 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-00-net-ethernet-mtk_eth_soc-add-support-for-coherent-DM.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-00-net-ethernet-mtk_eth_soc-add-support-for-coherent-DM.patch @@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau #include #include #include -@@ -840,7 +841,7 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -850,7 +851,7 @@ static int mtk_init_fq_dma(struct mtk_et dma_addr_t dma_addr; int i; @@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau cnt * sizeof(struct mtk_tx_dma), ð->phy_scratch_ring, GFP_ATOMIC); -@@ -852,10 +853,10 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -862,10 +863,10 @@ static int mtk_init_fq_dma(struct mtk_et if (unlikely(!eth->scratch_head)) return -ENOMEM; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau return -ENOMEM; phy_ring_tail = eth->phy_scratch_ring + -@@ -909,26 +910,26 @@ static void mtk_tx_unmap(struct mtk_eth +@@ -919,26 +920,26 @@ static void mtk_tx_unmap(struct mtk_eth { if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA)) { if (tx_buf->flags & MTK_TX_FLAGS_SINGLE0) { @@ -73,7 +73,7 @@ Signed-off-by: Felix Fietkau dma_unmap_addr(tx_buf, dma_addr1), dma_unmap_len(tx_buf, dma_len1), DMA_TO_DEVICE); -@@ -1006,9 +1007,9 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1016,9 +1017,9 @@ static int mtk_tx_map(struct sk_buff *sk if (skb_vlan_tag_present(skb)) txd4 |= TX_DMA_INS_VLAN | skb_vlan_tag_get(skb); @@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau return -ENOMEM; WRITE_ONCE(itxd->txd1, mapped_addr); -@@ -1047,10 +1048,10 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1057,10 +1058,10 @@ static int mtk_tx_map(struct sk_buff *sk frag_map_size = min(frag_size, MTK_TX_DMA_BUF_LEN); @@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau goto err_dma; if (i == nr_frags - 1 && -@@ -1331,18 +1332,18 @@ static int mtk_poll_rx(struct napi_struc +@@ -1341,18 +1342,18 @@ static int mtk_poll_rx(struct napi_struc netdev->stats.rx_dropped++; goto release_desc; } @@ -120,7 +120,7 @@ Signed-off-by: Felix Fietkau ring->buf_size, DMA_FROM_DEVICE); /* receive data */ -@@ -1615,7 +1616,7 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -1625,7 +1626,7 @@ static int mtk_tx_alloc(struct mtk_eth * if (!ring->buf) goto no_tx_mem; @@ -129,7 +129,7 @@ Signed-off-by: Felix Fietkau &ring->phys, GFP_ATOMIC); if (!ring->dma) goto no_tx_mem; -@@ -1633,7 +1634,7 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -1643,7 +1644,7 @@ static int mtk_tx_alloc(struct mtk_eth * * descriptors in ring->dma_pdma. */ if (!MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA)) { @@ -138,7 +138,7 @@ Signed-off-by: Felix Fietkau &ring->phys_pdma, GFP_ATOMIC); if (!ring->dma_pdma) -@@ -1692,7 +1693,7 @@ static void mtk_tx_clean(struct mtk_eth +@@ -1702,7 +1703,7 @@ static void mtk_tx_clean(struct mtk_eth } if (ring->dma) { @@ -147,7 +147,7 @@ Signed-off-by: Felix Fietkau MTK_DMA_SIZE * sizeof(*ring->dma), ring->dma, ring->phys); -@@ -1700,7 +1701,7 @@ static void mtk_tx_clean(struct mtk_eth +@@ -1710,7 +1711,7 @@ static void mtk_tx_clean(struct mtk_eth } if (ring->dma_pdma) { @@ -156,7 +156,7 @@ Signed-off-by: Felix Fietkau MTK_DMA_SIZE * sizeof(*ring->dma_pdma), ring->dma_pdma, ring->phys_pdma); -@@ -1748,18 +1749,18 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1758,18 +1759,18 @@ static int mtk_rx_alloc(struct mtk_eth * return -ENOMEM; } @@ -178,7 +178,7 @@ Signed-off-by: Felix Fietkau return -ENOMEM; ring->dma[i].rxd1 = (unsigned int)dma_addr; -@@ -1795,7 +1796,7 @@ static void mtk_rx_clean(struct mtk_eth +@@ -1805,7 +1806,7 @@ static void mtk_rx_clean(struct mtk_eth continue; if (!ring->dma[i].rxd1) continue; @@ -187,7 +187,7 @@ Signed-off-by: Felix Fietkau ring->dma[i].rxd1, ring->buf_size, DMA_FROM_DEVICE); -@@ -1806,7 +1807,7 @@ static void mtk_rx_clean(struct mtk_eth +@@ -1816,7 +1817,7 @@ static void mtk_rx_clean(struct mtk_eth } if (ring->dma) { @@ -196,7 +196,7 @@ Signed-off-by: Felix Fietkau ring->dma_size * sizeof(*ring->dma), ring->dma, ring->phys); -@@ -2165,7 +2166,7 @@ static void mtk_dma_free(struct mtk_eth +@@ -2175,7 +2176,7 @@ static void mtk_dma_free(struct mtk_eth if (eth->netdev[i]) netdev_reset_queue(eth->netdev[i]); if (eth->scratch_ring) { @@ -205,7 +205,7 @@ Signed-off-by: Felix Fietkau MTK_DMA_SIZE * sizeof(struct mtk_tx_dma), eth->scratch_ring, eth->phy_scratch_ring); -@@ -2517,6 +2518,8 @@ static void mtk_dim_tx(struct work_struc +@@ -2527,6 +2528,8 @@ static void mtk_dim_tx(struct work_struc static int mtk_hw_init(struct mtk_eth *eth) { @@ -214,7 +214,7 @@ Signed-off-by: Felix Fietkau int i, val, ret; if (test_and_set_bit(MTK_HW_INIT, ð->state)) -@@ -2529,6 +2532,10 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -2539,6 +2542,10 @@ static int mtk_hw_init(struct mtk_eth *e if (ret) goto err_disable_pm; @@ -225,7 +225,7 @@ Signed-off-by: Felix Fietkau if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) { ret = device_reset(eth->dev); if (ret) { -@@ -3075,6 +3082,35 @@ free_netdev: +@@ -3085,6 +3092,35 @@ free_netdev: return err; } @@ -261,7 +261,7 @@ Signed-off-by: Felix Fietkau static int mtk_probe(struct platform_device *pdev) { struct device_node *mac_np; -@@ -3088,6 +3124,7 @@ static int mtk_probe(struct platform_dev +@@ -3098,6 +3134,7 @@ static int mtk_probe(struct platform_dev eth->soc = of_device_get_match_data(&pdev->dev); eth->dev = &pdev->dev; @@ -269,7 +269,7 @@ Signed-off-by: Felix Fietkau eth->base = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(eth->base)) return PTR_ERR(eth->base); -@@ -3136,6 +3173,16 @@ static int mtk_probe(struct platform_dev +@@ -3146,6 +3183,16 @@ static int mtk_probe(struct platform_dev } } diff --git a/target/linux/generic/backport-5.15/702-v5.19-02-net-ethernet-mtk_eth_soc-add-support-for-Wireless-Et.patch b/target/linux/generic/backport-5.15/702-v5.19-02-net-ethernet-mtk_eth_soc-add-support-for-Wireless-Et.patch index ba72a796ee3f74..85dc9ad6fc6139 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-02-net-ethernet-mtk_eth_soc-add-support-for-Wireless-Et.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-02-net-ethernet-mtk_eth_soc-add-support-for-Wireless-Et.patch @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau static int mtk_msg_level = -1; module_param_named(msg_level, mtk_msg_level, int, 0); -@@ -3205,6 +3206,22 @@ static int mtk_probe(struct platform_dev +@@ -3215,6 +3216,22 @@ static int mtk_probe(struct platform_dev } } diff --git a/target/linux/generic/backport-5.15/702-v5.19-07-net-ethernet-mtk_eth_soc-allocate-struct-mtk_ppe-sep.patch b/target/linux/generic/backport-5.15/702-v5.19-07-net-ethernet-mtk_eth_soc-allocate-struct-mtk_ppe-sep.patch index 030a3346768afc..488a79924f15e5 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-07-net-ethernet-mtk_eth_soc-allocate-struct-mtk_ppe-sep.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-07-net-ethernet-mtk_eth_soc-allocate-struct-mtk_ppe-sep.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -2338,7 +2338,7 @@ static int mtk_open(struct net_device *d +@@ -2348,7 +2348,7 @@ static int mtk_open(struct net_device *d return err; } @@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau gdm_config = MTK_GDMA_TO_PPE; mtk_gdm_config(eth, gdm_config); -@@ -2412,7 +2412,7 @@ static int mtk_stop(struct net_device *d +@@ -2422,7 +2422,7 @@ static int mtk_stop(struct net_device *d mtk_dma_free(eth); if (eth->soc->offload_version) @@ -28,7 +28,7 @@ Signed-off-by: Felix Fietkau return 0; } -@@ -3297,10 +3297,11 @@ static int mtk_probe(struct platform_dev +@@ -3307,10 +3307,11 @@ static int mtk_probe(struct platform_dev } if (eth->soc->offload_version) { diff --git a/target/linux/generic/backport-5.15/702-v5.19-08-net-ethernet-mtk_eth_soc-rework-hardware-flow-table-.patch b/target/linux/generic/backport-5.15/702-v5.19-08-net-ethernet-mtk_eth_soc-rework-hardware-flow-table-.patch index 0bb3f906accfe5..182c6afb78d3a8 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-08-net-ethernet-mtk_eth_soc-rework-hardware-flow-table-.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-08-net-ethernet-mtk_eth_soc-rework-hardware-flow-table-.patch @@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau #include #include "mtk_eth_soc.h" -@@ -1293,7 +1294,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1303,7 +1304,7 @@ static int mtk_poll_rx(struct napi_struc struct net_device *netdev; unsigned int pktlen; dma_addr_t dma_addr; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau int mac; ring = mtk_get_rx_ring(eth); -@@ -1372,6 +1373,11 @@ static int mtk_poll_rx(struct napi_struc +@@ -1382,6 +1383,11 @@ static int mtk_poll_rx(struct napi_struc skb_set_hash(skb, hash, PKT_HASH_TYPE_L4); } @@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX && (trxd.rxd2 & RX_DMA_VTAG)) __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), -@@ -3297,7 +3303,7 @@ static int mtk_probe(struct platform_dev +@@ -3307,7 +3313,7 @@ static int mtk_probe(struct platform_dev } if (eth->soc->offload_version) { diff --git a/target/linux/generic/backport-5.15/702-v5.19-13-net-ethernet-mtk_eth_soc-use-standard-property-for-c.patch b/target/linux/generic/backport-5.15/702-v5.19-13-net-ethernet-mtk_eth_soc-use-standard-property-for-c.patch index fe5b9263df9a58..70d46c16cdb7cc 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-13-net-ethernet-mtk_eth_soc-use-standard-property-for-c.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-13-net-ethernet-mtk_eth_soc-use-standard-property-for-c.patch @@ -24,7 +24,7 @@ Signed-off-by: David S. Miller mediatek,hifsys = <&hifsys>; --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3184,7 +3184,7 @@ static int mtk_probe(struct platform_dev +@@ -3194,7 +3194,7 @@ static int mtk_probe(struct platform_dev struct regmap *cci; cci = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, diff --git a/target/linux/generic/backport-5.15/702-v5.19-17-net-ethernet-mtk_eth_soc-rely-on-GFP_KERNEL-for-dma_.patch b/target/linux/generic/backport-5.15/702-v5.19-17-net-ethernet-mtk_eth_soc-rely-on-GFP_KERNEL-for-dma_.patch index 9b6321f1dafbdd..268b372388f98e 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-17-net-ethernet-mtk_eth_soc-rely-on-GFP_KERNEL-for-dma_.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-17-net-ethernet-mtk_eth_soc-rely-on-GFP_KERNEL-for-dma_.patch @@ -13,7 +13,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -846,7 +846,7 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -856,7 +856,7 @@ static int mtk_init_fq_dma(struct mtk_et eth->scratch_ring = dma_alloc_coherent(eth->dma_dev, cnt * sizeof(struct mtk_tx_dma), ð->phy_scratch_ring, @@ -22,7 +22,7 @@ Signed-off-by: David S. Miller if (unlikely(!eth->scratch_ring)) return -ENOMEM; -@@ -1624,7 +1624,7 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -1634,7 +1634,7 @@ static int mtk_tx_alloc(struct mtk_eth * goto no_tx_mem; ring->dma = dma_alloc_coherent(eth->dma_dev, MTK_DMA_SIZE * sz, @@ -31,7 +31,7 @@ Signed-off-by: David S. Miller if (!ring->dma) goto no_tx_mem; -@@ -1642,8 +1642,7 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -1652,8 +1652,7 @@ static int mtk_tx_alloc(struct mtk_eth * */ if (!MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA)) { ring->dma_pdma = dma_alloc_coherent(eth->dma_dev, MTK_DMA_SIZE * sz, @@ -41,7 +41,7 @@ Signed-off-by: David S. Miller if (!ring->dma_pdma) goto no_tx_mem; -@@ -1758,7 +1757,7 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1768,7 +1767,7 @@ static int mtk_rx_alloc(struct mtk_eth * ring->dma = dma_alloc_coherent(eth->dma_dev, rx_dma_size * sizeof(*ring->dma), diff --git a/target/linux/generic/backport-5.15/702-v5.19-18-net-ethernet-mtk_eth_soc-move-tx-dma-desc-configurat.patch b/target/linux/generic/backport-5.15/702-v5.19-18-net-ethernet-mtk_eth_soc-move-tx-dma-desc-configurat.patch index 8e16ea2556695c..dc85786be29470 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-18-net-ethernet-mtk_eth_soc-move-tx-dma-desc-configurat.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-18-net-ethernet-mtk_eth_soc-move-tx-dma-desc-configurat.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -972,18 +972,51 @@ static void setup_tx_buf(struct mtk_eth +@@ -982,18 +982,51 @@ static void setup_tx_buf(struct mtk_eth } } @@ -69,7 +69,7 @@ Signed-off-by: David S. Miller int k = 0; itxd = ring->next_free; -@@ -991,49 +1024,32 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1001,49 +1034,32 @@ static int mtk_tx_map(struct sk_buff *sk if (itxd == ring->last_free) return -ENOMEM; @@ -126,7 +126,7 @@ Signed-off-by: David S. Miller bool new_desc = true; if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA) || -@@ -1048,23 +1064,17 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1058,23 +1074,17 @@ static int mtk_tx_map(struct sk_buff *sk new_desc = false; } @@ -159,7 +159,7 @@ Signed-off-by: David S. Miller tx_buf = mtk_desc_to_tx_buf(ring, txd); if (new_desc) -@@ -1074,20 +1084,17 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1084,20 +1094,17 @@ static int mtk_tx_map(struct sk_buff *sk tx_buf->flags |= (!mac->id) ? MTK_TX_FLAGS_FPORT0 : MTK_TX_FLAGS_FPORT1; diff --git a/target/linux/generic/backport-5.15/702-v5.19-19-net-ethernet-mtk_eth_soc-add-txd_size-to-mtk_soc_dat.patch b/target/linux/generic/backport-5.15/702-v5.19-19-net-ethernet-mtk_eth_soc-add-txd_size-to-mtk_soc_dat.patch index cadebbfa7551ec..7e05181b5e39e5 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-19-net-ethernet-mtk_eth_soc-add-txd_size-to-mtk_soc_dat.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-19-net-ethernet-mtk_eth_soc-add-txd_size-to-mtk_soc_dat.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -838,20 +838,20 @@ static void *mtk_max_lro_buf_alloc(gfp_t +@@ -848,20 +848,20 @@ static void *mtk_max_lro_buf_alloc(gfp_t /* the qdma core needs scratch memory to be setup */ static int mtk_init_fq_dma(struct mtk_eth *eth) { @@ -38,7 +38,7 @@ Signed-off-by: David S. Miller if (unlikely(!eth->scratch_head)) return -ENOMEM; -@@ -861,16 +861,19 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -871,16 +871,19 @@ static int mtk_init_fq_dma(struct mtk_et if (unlikely(dma_mapping_error(eth->dma_dev, dma_addr))) return -ENOMEM; @@ -65,7 +65,7 @@ Signed-off-by: David S. Miller } mtk_w32(eth, eth->phy_scratch_ring, MTK_QDMA_FQ_HEAD); -@@ -2173,6 +2176,7 @@ static int mtk_dma_init(struct mtk_eth * +@@ -2183,6 +2186,7 @@ static int mtk_dma_init(struct mtk_eth * static void mtk_dma_free(struct mtk_eth *eth) { @@ -73,7 +73,7 @@ Signed-off-by: David S. Miller int i; for (i = 0; i < MTK_MAC_COUNT; i++) -@@ -2180,9 +2184,8 @@ static void mtk_dma_free(struct mtk_eth +@@ -2190,9 +2194,8 @@ static void mtk_dma_free(struct mtk_eth netdev_reset_queue(eth->netdev[i]); if (eth->scratch_ring) { dma_free_coherent(eth->dma_dev, @@ -85,7 +85,7 @@ Signed-off-by: David S. Miller eth->scratch_ring = NULL; eth->phy_scratch_ring = 0; } -@@ -3387,6 +3390,9 @@ static const struct mtk_soc_data mt2701_ +@@ -3397,6 +3400,9 @@ static const struct mtk_soc_data mt2701_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7623_CLKS_BITMAP, .required_pctl = true, @@ -95,7 +95,7 @@ Signed-off-by: David S. Miller }; static const struct mtk_soc_data mt7621_data = { -@@ -3395,6 +3401,9 @@ static const struct mtk_soc_data mt7621_ +@@ -3405,6 +3411,9 @@ static const struct mtk_soc_data mt7621_ .required_clks = MT7621_CLKS_BITMAP, .required_pctl = false, .offload_version = 2, @@ -105,7 +105,7 @@ Signed-off-by: David S. Miller }; static const struct mtk_soc_data mt7622_data = { -@@ -3404,6 +3413,9 @@ static const struct mtk_soc_data mt7622_ +@@ -3414,6 +3423,9 @@ static const struct mtk_soc_data mt7622_ .required_clks = MT7622_CLKS_BITMAP, .required_pctl = false, .offload_version = 2, @@ -115,7 +115,7 @@ Signed-off-by: David S. Miller }; static const struct mtk_soc_data mt7623_data = { -@@ -3412,6 +3424,9 @@ static const struct mtk_soc_data mt7623_ +@@ -3422,6 +3434,9 @@ static const struct mtk_soc_data mt7623_ .required_clks = MT7623_CLKS_BITMAP, .required_pctl = true, .offload_version = 2, @@ -125,7 +125,7 @@ Signed-off-by: David S. Miller }; static const struct mtk_soc_data mt7629_data = { -@@ -3420,6 +3435,9 @@ static const struct mtk_soc_data mt7629_ +@@ -3430,6 +3445,9 @@ static const struct mtk_soc_data mt7629_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7629_CLKS_BITMAP, .required_pctl = false, @@ -135,7 +135,7 @@ Signed-off-by: David S. Miller }; static const struct mtk_soc_data rt5350_data = { -@@ -3427,6 +3445,9 @@ static const struct mtk_soc_data rt5350_ +@@ -3437,6 +3455,9 @@ static const struct mtk_soc_data rt5350_ .hw_features = MTK_HW_FEATURES_MT7628, .required_clks = MT7628_CLKS_BITMAP, .required_pctl = false, diff --git a/target/linux/generic/backport-5.15/702-v5.19-20-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-mtk_tx_.patch b/target/linux/generic/backport-5.15/702-v5.19-20-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-mtk_tx_.patch index ebe1ee3d59a45c..0547d7874f3d10 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-20-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-mtk_tx_.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-20-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-mtk_tx_.patch @@ -12,7 +12,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1625,8 +1625,10 @@ static int mtk_napi_rx(struct napi_struc +@@ -1635,8 +1635,10 @@ static int mtk_napi_rx(struct napi_struc static int mtk_tx_alloc(struct mtk_eth *eth) { @@ -24,7 +24,7 @@ Signed-off-by: David S. Miller ring->buf = kcalloc(MTK_DMA_SIZE, sizeof(*ring->buf), GFP_KERNEL); -@@ -1642,8 +1644,10 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -1652,8 +1654,10 @@ static int mtk_tx_alloc(struct mtk_eth * int next = (i + 1) % MTK_DMA_SIZE; u32 next_ptr = ring->phys + next * sz; @@ -37,7 +37,7 @@ Signed-off-by: David S. Miller } /* On MT7688 (PDMA only) this driver uses the ring->dma structs -@@ -1665,7 +1669,7 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -1675,7 +1679,7 @@ static int mtk_tx_alloc(struct mtk_eth * ring->dma_size = MTK_DMA_SIZE; atomic_set(&ring->free_count, MTK_DMA_SIZE - 2); ring->next_free = &ring->dma[0]; @@ -46,7 +46,7 @@ Signed-off-by: David S. Miller ring->last_free_ptr = (u32)(ring->phys + ((MTK_DMA_SIZE - 1) * sz)); ring->thresh = MAX_SKB_FRAGS; -@@ -1698,6 +1702,7 @@ no_tx_mem: +@@ -1708,6 +1712,7 @@ no_tx_mem: static void mtk_tx_clean(struct mtk_eth *eth) { @@ -54,7 +54,7 @@ Signed-off-by: David S. Miller struct mtk_tx_ring *ring = ð->tx_ring; int i; -@@ -1710,17 +1715,15 @@ static void mtk_tx_clean(struct mtk_eth +@@ -1720,17 +1725,15 @@ static void mtk_tx_clean(struct mtk_eth if (ring->dma) { dma_free_coherent(eth->dma_dev, diff --git a/target/linux/generic/backport-5.15/702-v5.19-21-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-mtk_des.patch b/target/linux/generic/backport-5.15/702-v5.19-21-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-mtk_des.patch index 053412e7490a7c..b76d69c50e4da2 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-21-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-mtk_des.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-21-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-mtk_des.patch @@ -12,7 +12,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -891,10 +891,11 @@ static inline void *mtk_qdma_phys_to_vir +@@ -901,10 +901,11 @@ static inline void *mtk_qdma_phys_to_vir return ret + (desc - ring->phys); } @@ -27,7 +27,7 @@ Signed-off-by: David S. Miller return &ring->buf[idx]; } -@@ -1016,6 +1017,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1026,6 +1027,7 @@ static int mtk_tx_map(struct sk_buff *sk }; struct mtk_mac *mac = netdev_priv(dev); struct mtk_eth *eth = mac->hw; @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller struct mtk_tx_dma *itxd, *txd; struct mtk_tx_dma *itxd_pdma, *txd_pdma; struct mtk_tx_buf *itx_buf, *tx_buf; -@@ -1027,7 +1029,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1037,7 +1039,7 @@ static int mtk_tx_map(struct sk_buff *sk if (itxd == ring->last_free) return -ENOMEM; @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller memset(itx_buf, 0, sizeof(*itx_buf)); txd_info.addr = dma_map_single(eth->dma_dev, skb->data, txd_info.size, -@@ -1055,7 +1057,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1065,7 +1067,7 @@ static int mtk_tx_map(struct sk_buff *sk while (frag_size) { bool new_desc = true; @@ -53,7 +53,7 @@ Signed-off-by: David S. Miller (i & 0x1)) { txd = mtk_qdma_phys_to_virt(ring, txd->txd2); txd_pdma = qdma_to_pdma(ring, txd); -@@ -1079,7 +1081,8 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1089,7 +1091,8 @@ static int mtk_tx_map(struct sk_buff *sk mtk_tx_set_dma_desc(dev, txd, &txd_info); @@ -63,7 +63,7 @@ Signed-off-by: David S. Miller if (new_desc) memset(tx_buf, 0, sizeof(*tx_buf)); tx_buf->skb = (struct sk_buff *)MTK_DMA_DUMMY_DESC; -@@ -1098,7 +1101,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1108,7 +1111,7 @@ static int mtk_tx_map(struct sk_buff *sk /* store skb to cleanup */ itx_buf->skb = skb; @@ -72,7 +72,7 @@ Signed-off-by: David S. Miller if (k & 0x1) txd_pdma->txd2 |= TX_DMA_LS0; else -@@ -1116,7 +1119,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1126,7 +1129,7 @@ static int mtk_tx_map(struct sk_buff *sk */ wmb(); @@ -81,7 +81,7 @@ Signed-off-by: David S. Miller if (netif_xmit_stopped(netdev_get_tx_queue(dev, 0)) || !netdev_xmit_more()) mtk_w32(eth, txd->txd2, MTK_QTX_CTX_PTR); -@@ -1130,13 +1133,13 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1140,13 +1143,13 @@ static int mtk_tx_map(struct sk_buff *sk err_dma: do { @@ -97,7 +97,7 @@ Signed-off-by: David S. Miller itxd_pdma->txd2 = TX_DMA_DESP2_DEF; itxd = mtk_qdma_phys_to_virt(ring, itxd->txd2); -@@ -1450,7 +1453,8 @@ static int mtk_poll_tx_qdma(struct mtk_e +@@ -1460,7 +1463,8 @@ static int mtk_poll_tx_qdma(struct mtk_e if ((desc->txd3 & TX_DMA_OWNER_CPU) == 0) break; diff --git a/target/linux/generic/backport-5.15/702-v5.19-22-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-txd_to_.patch b/target/linux/generic/backport-5.15/702-v5.19-22-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-txd_to_.patch index 251d583f2966e9..99ee2c5cf913b0 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-22-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-txd_to_.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-22-net-ethernet-mtk_eth_soc-rely-on-txd_size-in-txd_to_.patch @@ -11,7 +11,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -906,9 +906,10 @@ static struct mtk_tx_dma *qdma_to_pdma(s +@@ -916,9 +916,10 @@ static struct mtk_tx_dma *qdma_to_pdma(s return ring->dma_pdma - ring->dma + dma; } @@ -24,7 +24,7 @@ Signed-off-by: David S. Miller } static void mtk_tx_unmap(struct mtk_eth *eth, struct mtk_tx_buf *tx_buf, -@@ -1124,8 +1125,10 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1134,8 +1135,10 @@ static int mtk_tx_map(struct sk_buff *sk !netdev_xmit_more()) mtk_w32(eth, txd->txd2, MTK_QTX_CTX_PTR); } else { diff --git a/target/linux/generic/backport-5.15/702-v5.19-23-net-ethernet-mtk_eth_soc-add-rxd_size-to-mtk_soc_dat.patch b/target/linux/generic/backport-5.15/702-v5.19-23-net-ethernet-mtk_eth_soc-add-rxd_size-to-mtk_soc_dat.patch index 525882c956b2df..27bf69b58c14e1 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-23-net-ethernet-mtk_eth_soc-add-rxd_size-to-mtk_soc_dat.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-23-net-ethernet-mtk_eth_soc-add-rxd_size-to-mtk_soc_dat.patch @@ -13,7 +13,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1776,7 +1776,7 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1786,7 +1786,7 @@ static int mtk_rx_alloc(struct mtk_eth * } ring->dma = dma_alloc_coherent(eth->dma_dev, @@ -22,7 +22,7 @@ Signed-off-by: David S. Miller &ring->phys, GFP_KERNEL); if (!ring->dma) return -ENOMEM; -@@ -1834,9 +1834,8 @@ static void mtk_rx_clean(struct mtk_eth +@@ -1844,9 +1844,8 @@ static void mtk_rx_clean(struct mtk_eth if (ring->dma) { dma_free_coherent(eth->dma_dev, @@ -34,7 +34,7 @@ Signed-off-by: David S. Miller ring->dma = NULL; } } -@@ -3402,6 +3401,7 @@ static const struct mtk_soc_data mt2701_ +@@ -3412,6 +3411,7 @@ static const struct mtk_soc_data mt2701_ .required_pctl = true, .txrx = { .txd_size = sizeof(struct mtk_tx_dma), @@ -42,7 +42,7 @@ Signed-off-by: David S. Miller }, }; -@@ -3413,6 +3413,7 @@ static const struct mtk_soc_data mt7621_ +@@ -3423,6 +3423,7 @@ static const struct mtk_soc_data mt7621_ .offload_version = 2, .txrx = { .txd_size = sizeof(struct mtk_tx_dma), @@ -50,7 +50,7 @@ Signed-off-by: David S. Miller }, }; -@@ -3425,6 +3426,7 @@ static const struct mtk_soc_data mt7622_ +@@ -3435,6 +3436,7 @@ static const struct mtk_soc_data mt7622_ .offload_version = 2, .txrx = { .txd_size = sizeof(struct mtk_tx_dma), @@ -58,7 +58,7 @@ Signed-off-by: David S. Miller }, }; -@@ -3436,6 +3438,7 @@ static const struct mtk_soc_data mt7623_ +@@ -3446,6 +3448,7 @@ static const struct mtk_soc_data mt7623_ .offload_version = 2, .txrx = { .txd_size = sizeof(struct mtk_tx_dma), @@ -66,7 +66,7 @@ Signed-off-by: David S. Miller }, }; -@@ -3447,6 +3450,7 @@ static const struct mtk_soc_data mt7629_ +@@ -3457,6 +3460,7 @@ static const struct mtk_soc_data mt7629_ .required_pctl = false, .txrx = { .txd_size = sizeof(struct mtk_tx_dma), @@ -74,7 +74,7 @@ Signed-off-by: David S. Miller }, }; -@@ -3457,6 +3461,7 @@ static const struct mtk_soc_data rt5350_ +@@ -3467,6 +3471,7 @@ static const struct mtk_soc_data rt5350_ .required_pctl = false, .txrx = { .txd_size = sizeof(struct mtk_tx_dma), diff --git a/target/linux/generic/backport-5.15/702-v5.19-24-net-ethernet-mtk_eth_soc-rely-on-txd_size-field-in-m.patch b/target/linux/generic/backport-5.15/702-v5.19-24-net-ethernet-mtk_eth_soc-rely-on-txd_size-field-in-m.patch index eb92b8c7a22e8d..393faf65534583 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-24-net-ethernet-mtk_eth_soc-rely-on-txd_size-field-in-m.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-24-net-ethernet-mtk_eth_soc-rely-on-txd_size-field-in-m.patch @@ -12,7 +12,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1265,9 +1265,12 @@ static struct mtk_rx_ring *mtk_get_rx_ri +@@ -1275,9 +1275,12 @@ static struct mtk_rx_ring *mtk_get_rx_ri return ð->rx_ring[0]; for (i = 0; i < MTK_MAX_RX_RING_NUM; i++) { @@ -26,7 +26,7 @@ Signed-off-by: David S. Miller ring->calc_idx_update = true; return ring; } -@@ -1318,7 +1321,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1328,7 +1331,7 @@ static int mtk_poll_rx(struct napi_struc goto rx_done; idx = NEXT_DESP_IDX(ring->calc_idx, ring->dma_size); @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller data = ring->data[idx]; if (!mtk_rx_get_desc(&trxd, rxd)) -@@ -1510,7 +1513,7 @@ static int mtk_poll_tx_pdma(struct mtk_e +@@ -1520,7 +1523,7 @@ static int mtk_poll_tx_pdma(struct mtk_e mtk_tx_unmap(eth, tx_buf, true); diff --git a/target/linux/generic/backport-5.15/702-v5.19-25-net-ethernet-mtk_eth_soc-rely-on-rxd_size-field-in-m.patch b/target/linux/generic/backport-5.15/702-v5.19-25-net-ethernet-mtk_eth_soc-rely-on-rxd_size-field-in-m.patch index 456eec247c59a4..fdfa8b99c0abbc 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-25-net-ethernet-mtk_eth_soc-rely-on-rxd_size-field-in-m.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-25-net-ethernet-mtk_eth_soc-rely-on-rxd_size-field-in-m.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1785,18 +1785,25 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1795,18 +1795,25 @@ static int mtk_rx_alloc(struct mtk_eth * return -ENOMEM; for (i = 0; i < rx_dma_size; i++) { @@ -43,7 +43,7 @@ Signed-off-by: David S. Miller } ring->dma_size = rx_dma_size; ring->calc_idx_update = false; -@@ -1821,14 +1828,17 @@ static void mtk_rx_clean(struct mtk_eth +@@ -1831,14 +1838,17 @@ static void mtk_rx_clean(struct mtk_eth if (ring->data && ring->dma) { for (i = 0; i < ring->dma_size; i++) { diff --git a/target/linux/generic/backport-5.15/702-v5.19-26-net-ethernet-mtk_eth_soc-introduce-device-register-m.patch b/target/linux/generic/backport-5.15/702-v5.19-26-net-ethernet-mtk_eth_soc-introduce-device-register-m.patch index 11941d5c37436c..c4c337a3ceb8d9 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-26-net-ethernet-mtk_eth_soc-introduce-device-register-m.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-26-net-ethernet-mtk_eth_soc-introduce-device-register-m.patch @@ -73,7 +73,7 @@ Signed-off-by: David S. Miller /* strings used by ethtool */ static const struct mtk_ethtool_stats { char str[ETH_GSTRING_LEN]; -@@ -619,8 +672,8 @@ static inline void mtk_tx_irq_disable(st +@@ -629,8 +682,8 @@ static inline void mtk_tx_irq_disable(st u32 val; spin_lock_irqsave(ð->tx_irq_lock, flags); @@ -84,7 +84,7 @@ Signed-off-by: David S. Miller spin_unlock_irqrestore(ð->tx_irq_lock, flags); } -@@ -630,8 +683,8 @@ static inline void mtk_tx_irq_enable(str +@@ -640,8 +693,8 @@ static inline void mtk_tx_irq_enable(str u32 val; spin_lock_irqsave(ð->tx_irq_lock, flags); @@ -95,7 +95,7 @@ Signed-off-by: David S. Miller spin_unlock_irqrestore(ð->tx_irq_lock, flags); } -@@ -641,8 +694,8 @@ static inline void mtk_rx_irq_disable(st +@@ -651,8 +704,8 @@ static inline void mtk_rx_irq_disable(st u32 val; spin_lock_irqsave(ð->rx_irq_lock, flags); @@ -106,7 +106,7 @@ Signed-off-by: David S. Miller spin_unlock_irqrestore(ð->rx_irq_lock, flags); } -@@ -652,8 +705,8 @@ static inline void mtk_rx_irq_enable(str +@@ -662,8 +715,8 @@ static inline void mtk_rx_irq_enable(str u32 val; spin_lock_irqsave(ð->rx_irq_lock, flags); @@ -117,7 +117,7 @@ Signed-off-by: David S. Miller spin_unlock_irqrestore(ð->rx_irq_lock, flags); } -@@ -704,39 +757,39 @@ void mtk_stats_update_mac(struct mtk_mac +@@ -714,39 +767,39 @@ void mtk_stats_update_mac(struct mtk_mac hw_stats->rx_checksum_errors += mtk_r32(mac->hw, MT7628_SDM_CS_ERR); } else { @@ -172,7 +172,7 @@ Signed-off-by: David S. Miller } u64_stats_update_end(&hw_stats->syncp); -@@ -876,10 +929,10 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -886,10 +939,10 @@ static int mtk_init_fq_dma(struct mtk_et txd->txd4 = 0; } @@ -187,7 +187,7 @@ Signed-off-by: David S. Miller return 0; } -@@ -1123,7 +1176,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1133,7 +1186,7 @@ static int mtk_tx_map(struct sk_buff *sk if (MTK_HAS_CAPS(soc->caps, MTK_QDMA)) { if (netif_xmit_stopped(netdev_get_tx_queue(dev, 0)) || !netdev_xmit_more()) @@ -196,7 +196,7 @@ Signed-off-by: David S. Miller } else { int next_idx; -@@ -1440,6 +1493,7 @@ rx_done: +@@ -1450,6 +1503,7 @@ rx_done: static int mtk_poll_tx_qdma(struct mtk_eth *eth, int budget, unsigned int *done, unsigned int *bytes) { @@ -204,7 +204,7 @@ Signed-off-by: David S. Miller struct mtk_tx_ring *ring = ð->tx_ring; struct mtk_tx_dma *desc; struct sk_buff *skb; -@@ -1447,7 +1501,7 @@ static int mtk_poll_tx_qdma(struct mtk_e +@@ -1457,7 +1511,7 @@ static int mtk_poll_tx_qdma(struct mtk_e u32 cpu, dma; cpu = ring->last_free_ptr; @@ -213,7 +213,7 @@ Signed-off-by: David S. Miller desc = mtk_qdma_phys_to_virt(ring, cpu); -@@ -1482,7 +1536,7 @@ static int mtk_poll_tx_qdma(struct mtk_e +@@ -1492,7 +1546,7 @@ static int mtk_poll_tx_qdma(struct mtk_e } ring->last_free_ptr = cpu; @@ -222,7 +222,7 @@ Signed-off-by: David S. Miller return budget; } -@@ -1575,24 +1629,25 @@ static void mtk_handle_status_irq(struct +@@ -1585,24 +1639,25 @@ static void mtk_handle_status_irq(struct static int mtk_napi_tx(struct napi_struct *napi, int budget) { struct mtk_eth *eth = container_of(napi, struct mtk_eth, tx_napi); @@ -252,7 +252,7 @@ Signed-off-by: David S. Miller return budget; if (napi_complete_done(napi, tx_done)) -@@ -1604,6 +1659,7 @@ static int mtk_napi_tx(struct napi_struc +@@ -1614,6 +1669,7 @@ static int mtk_napi_tx(struct napi_struc static int mtk_napi_rx(struct napi_struct *napi, int budget) { struct mtk_eth *eth = container_of(napi, struct mtk_eth, rx_napi); @@ -260,7 +260,7 @@ Signed-off-by: David S. Miller int rx_done_total = 0; mtk_handle_status_irq(eth); -@@ -1611,21 +1667,21 @@ static int mtk_napi_rx(struct napi_struc +@@ -1621,21 +1677,21 @@ static int mtk_napi_rx(struct napi_struc do { int rx_done; @@ -286,7 +286,7 @@ Signed-off-by: David S. Miller if (napi_complete_done(napi, rx_done_total)) mtk_rx_irq_enable(eth, MTK_RX_DONE_INT); -@@ -1688,20 +1744,20 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -1698,20 +1754,20 @@ static int mtk_tx_alloc(struct mtk_eth * */ wmb(); @@ -314,7 +314,7 @@ Signed-off-by: David S. Miller } return 0; -@@ -1740,6 +1796,7 @@ static void mtk_tx_clean(struct mtk_eth +@@ -1750,6 +1806,7 @@ static void mtk_tx_clean(struct mtk_eth static int mtk_rx_alloc(struct mtk_eth *eth, int ring_no, int rx_flag) { @@ -322,7 +322,7 @@ Signed-off-by: David S. Miller struct mtk_rx_ring *ring; int rx_data_len, rx_dma_size; int i; -@@ -1808,16 +1865,18 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1818,16 +1875,18 @@ static int mtk_rx_alloc(struct mtk_eth * ring->dma_size = rx_dma_size; ring->calc_idx_update = false; ring->calc_idx = rx_dma_size - 1; @@ -345,7 +345,7 @@ Signed-off-by: David S. Miller return 0; } -@@ -2129,9 +2188,9 @@ static int mtk_dma_busy_wait(struct mtk_ +@@ -2139,9 +2198,9 @@ static int mtk_dma_busy_wait(struct mtk_ u32 val; if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA)) @@ -357,7 +357,7 @@ Signed-off-by: David S. Miller ret = readx_poll_timeout_atomic(__raw_readl, eth->base + reg, val, !(val & (MTK_RX_DMA_BUSY | MTK_TX_DMA_BUSY)), -@@ -2189,8 +2248,8 @@ static int mtk_dma_init(struct mtk_eth * +@@ -2199,8 +2258,8 @@ static int mtk_dma_init(struct mtk_eth * * automatically */ mtk_w32(eth, FC_THRES_DROP_MODE | FC_THRES_DROP_EN | @@ -368,7 +368,7 @@ Signed-off-by: David S. Miller } return 0; -@@ -2264,13 +2323,14 @@ static irqreturn_t mtk_handle_irq_tx(int +@@ -2274,13 +2333,14 @@ static irqreturn_t mtk_handle_irq_tx(int static irqreturn_t mtk_handle_irq(int irq, void *_eth) { struct mtk_eth *eth = _eth; @@ -387,7 +387,7 @@ Signed-off-by: David S. Miller mtk_handle_irq_tx(irq, _eth); } -@@ -2294,6 +2354,7 @@ static void mtk_poll_controller(struct n +@@ -2304,6 +2364,7 @@ static void mtk_poll_controller(struct n static int mtk_start_dma(struct mtk_eth *eth) { u32 rx_2b_offset = (NET_IP_ALIGN == 2) ? MTK_RX_2B_OFFSET : 0; @@ -395,7 +395,7 @@ Signed-off-by: David S. Miller int err; err = mtk_dma_init(eth); -@@ -2308,16 +2369,15 @@ static int mtk_start_dma(struct mtk_eth +@@ -2318,16 +2379,15 @@ static int mtk_start_dma(struct mtk_eth MTK_TX_BT_32DWORDS | MTK_NDP_CO_PRO | MTK_RX_DMA_EN | MTK_RX_2B_OFFSET | MTK_RX_BT_32DWORDS, @@ -415,7 +415,7 @@ Signed-off-by: David S. Miller } return 0; -@@ -2443,8 +2503,8 @@ static int mtk_stop(struct net_device *d +@@ -2453,8 +2513,8 @@ static int mtk_stop(struct net_device *d cancel_work_sync(ð->tx_dim.work); if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA)) @@ -426,7 +426,7 @@ Signed-off-by: David S. Miller mtk_dma_free(eth); -@@ -2498,6 +2558,7 @@ static void mtk_dim_rx(struct work_struc +@@ -2508,6 +2568,7 @@ static void mtk_dim_rx(struct work_struc { struct dim *dim = container_of(work, struct dim, work); struct mtk_eth *eth = container_of(dim, struct mtk_eth, rx_dim); @@ -434,7 +434,7 @@ Signed-off-by: David S. Miller struct dim_cq_moder cur_profile; u32 val, cur; -@@ -2505,7 +2566,7 @@ static void mtk_dim_rx(struct work_struc +@@ -2515,7 +2576,7 @@ static void mtk_dim_rx(struct work_struc dim->profile_ix); spin_lock_bh(ð->dim_lock); @@ -443,7 +443,7 @@ Signed-off-by: David S. Miller val &= MTK_PDMA_DELAY_TX_MASK; val |= MTK_PDMA_DELAY_RX_EN; -@@ -2515,9 +2576,9 @@ static void mtk_dim_rx(struct work_struc +@@ -2525,9 +2586,9 @@ static void mtk_dim_rx(struct work_struc cur = min_t(u32, cur_profile.pkts, MTK_PDMA_DELAY_PINT_MASK); val |= cur << MTK_PDMA_DELAY_RX_PINT_SHIFT; @@ -455,7 +455,7 @@ Signed-off-by: David S. Miller spin_unlock_bh(ð->dim_lock); -@@ -2528,6 +2589,7 @@ static void mtk_dim_tx(struct work_struc +@@ -2538,6 +2599,7 @@ static void mtk_dim_tx(struct work_struc { struct dim *dim = container_of(work, struct dim, work); struct mtk_eth *eth = container_of(dim, struct mtk_eth, tx_dim); @@ -463,7 +463,7 @@ Signed-off-by: David S. Miller struct dim_cq_moder cur_profile; u32 val, cur; -@@ -2535,7 +2597,7 @@ static void mtk_dim_tx(struct work_struc +@@ -2545,7 +2607,7 @@ static void mtk_dim_tx(struct work_struc dim->profile_ix); spin_lock_bh(ð->dim_lock); @@ -472,7 +472,7 @@ Signed-off-by: David S. Miller val &= MTK_PDMA_DELAY_RX_MASK; val |= MTK_PDMA_DELAY_TX_EN; -@@ -2545,9 +2607,9 @@ static void mtk_dim_tx(struct work_struc +@@ -2555,9 +2617,9 @@ static void mtk_dim_tx(struct work_struc cur = min_t(u32, cur_profile.pkts, MTK_PDMA_DELAY_PINT_MASK); val |= cur << MTK_PDMA_DELAY_TX_PINT_SHIFT; @@ -484,7 +484,7 @@ Signed-off-by: David S. Miller spin_unlock_bh(ð->dim_lock); -@@ -2558,6 +2620,7 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -2568,6 +2630,7 @@ static int mtk_hw_init(struct mtk_eth *e { u32 dma_mask = ETHSYS_DMA_AG_MAP_PDMA | ETHSYS_DMA_AG_MAP_QDMA | ETHSYS_DMA_AG_MAP_PPE; @@ -492,7 +492,7 @@ Signed-off-by: David S. Miller int i, val, ret; if (test_and_set_bit(MTK_HW_INIT, ð->state)) -@@ -2632,10 +2695,10 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -2642,10 +2705,10 @@ static int mtk_hw_init(struct mtk_eth *e mtk_rx_irq_disable(eth, ~0); /* FE int grouping */ @@ -507,7 +507,7 @@ Signed-off-by: David S. Miller mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP); return 0; -@@ -3167,14 +3230,6 @@ static int mtk_probe(struct platform_dev +@@ -3177,14 +3240,6 @@ static int mtk_probe(struct platform_dev if (IS_ERR(eth->base)) return PTR_ERR(eth->base); @@ -522,7 +522,7 @@ Signed-off-by: David S. Miller if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) { eth->rx_dma_l4_valid = RX_DMA_L4_VALID_PDMA; eth->ip_align = NET_IP_ALIGN; -@@ -3408,6 +3463,7 @@ static int mtk_remove(struct platform_de +@@ -3418,6 +3473,7 @@ static int mtk_remove(struct platform_de } static const struct mtk_soc_data mt2701_data = { @@ -530,7 +530,7 @@ Signed-off-by: David S. Miller .caps = MT7623_CAPS | MTK_HWLRO, .hw_features = MTK_HW_FEATURES, .required_clks = MT7623_CLKS_BITMAP, -@@ -3419,6 +3475,7 @@ static const struct mtk_soc_data mt2701_ +@@ -3429,6 +3485,7 @@ static const struct mtk_soc_data mt2701_ }; static const struct mtk_soc_data mt7621_data = { @@ -538,7 +538,7 @@ Signed-off-by: David S. Miller .caps = MT7621_CAPS, .hw_features = MTK_HW_FEATURES, .required_clks = MT7621_CLKS_BITMAP, -@@ -3431,6 +3488,7 @@ static const struct mtk_soc_data mt7621_ +@@ -3441,6 +3498,7 @@ static const struct mtk_soc_data mt7621_ }; static const struct mtk_soc_data mt7622_data = { @@ -546,7 +546,7 @@ Signed-off-by: David S. Miller .ana_rgc3 = 0x2028, .caps = MT7622_CAPS | MTK_HWLRO, .hw_features = MTK_HW_FEATURES, -@@ -3444,6 +3502,7 @@ static const struct mtk_soc_data mt7622_ +@@ -3454,6 +3512,7 @@ static const struct mtk_soc_data mt7622_ }; static const struct mtk_soc_data mt7623_data = { @@ -554,7 +554,7 @@ Signed-off-by: David S. Miller .caps = MT7623_CAPS | MTK_HWLRO, .hw_features = MTK_HW_FEATURES, .required_clks = MT7623_CLKS_BITMAP, -@@ -3456,6 +3515,7 @@ static const struct mtk_soc_data mt7623_ +@@ -3466,6 +3525,7 @@ static const struct mtk_soc_data mt7623_ }; static const struct mtk_soc_data mt7629_data = { @@ -562,7 +562,7 @@ Signed-off-by: David S. Miller .ana_rgc3 = 0x128, .caps = MT7629_CAPS | MTK_HWLRO, .hw_features = MTK_HW_FEATURES, -@@ -3468,6 +3528,7 @@ static const struct mtk_soc_data mt7629_ +@@ -3478,6 +3538,7 @@ static const struct mtk_soc_data mt7629_ }; static const struct mtk_soc_data rt5350_data = { diff --git a/target/linux/generic/backport-5.15/702-v5.19-27-net-ethernet-mtk_eth_soc-introduce-MTK_NETSYS_V2-sup.patch b/target/linux/generic/backport-5.15/702-v5.19-27-net-ethernet-mtk_eth_soc-introduce-MTK_NETSYS_V2-sup.patch index 91739ddd34162a..d55ab772119013 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-27-net-ethernet-mtk_eth_soc-introduce-MTK_NETSYS_V2-sup.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-27-net-ethernet-mtk_eth_soc-introduce-MTK_NETSYS_V2-sup.patch @@ -13,7 +13,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -863,8 +863,8 @@ static inline int mtk_max_buf_size(int f +@@ -873,8 +873,8 @@ static inline int mtk_max_buf_size(int f return buf_size; } @@ -24,7 +24,7 @@ Signed-off-by: David S. Miller { rxd->rxd2 = READ_ONCE(dma_rxd->rxd2); if (!(rxd->rxd2 & RX_DMA_DONE)) -@@ -873,6 +873,10 @@ static inline bool mtk_rx_get_desc(struc +@@ -883,6 +883,10 @@ static inline bool mtk_rx_get_desc(struc rxd->rxd1 = READ_ONCE(dma_rxd->rxd1); rxd->rxd3 = READ_ONCE(dma_rxd->rxd3); rxd->rxd4 = READ_ONCE(dma_rxd->rxd4); @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller return true; } -@@ -917,7 +921,7 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -927,7 +931,7 @@ static int mtk_init_fq_dma(struct mtk_et phy_ring_tail = eth->phy_scratch_ring + soc->txrx.txd_size * (cnt - 1); for (i = 0; i < cnt; i++) { @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller txd = (void *)eth->scratch_ring + i * soc->txrx.txd_size; txd->txd1 = dma_addr + i * MTK_QDMA_PAGE_SIZE; -@@ -927,6 +931,12 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -937,6 +941,12 @@ static int mtk_init_fq_dma(struct mtk_et txd->txd3 = TX_DMA_PLEN0(MTK_QDMA_PAGE_SIZE); txd->txd4 = 0; @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller } mtk_w32(eth, eth->phy_scratch_ring, soc->reg_map->qdma.fq_head); -@@ -1030,10 +1040,12 @@ static void setup_tx_buf(struct mtk_eth +@@ -1040,10 +1050,12 @@ static void setup_tx_buf(struct mtk_eth } } @@ -72,7 +72,7 @@ Signed-off-by: David S. Miller u32 data; WRITE_ONCE(desc->txd1, info->addr); -@@ -1057,6 +1069,59 @@ static void mtk_tx_set_dma_desc(struct n +@@ -1067,6 +1079,59 @@ static void mtk_tx_set_dma_desc(struct n WRITE_ONCE(desc->txd4, data); } @@ -132,7 +132,7 @@ Signed-off-by: David S. Miller static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev, int tx_num, struct mtk_tx_ring *ring, bool gso) { -@@ -1065,6 +1130,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1075,6 +1140,7 @@ static int mtk_tx_map(struct sk_buff *sk .gso = gso, .csum = skb->ip_summed == CHECKSUM_PARTIAL, .vlan = skb_vlan_tag_present(skb), @@ -140,7 +140,7 @@ Signed-off-by: David S. Miller .vlan_tci = skb_vlan_tag_get(skb), .first = true, .last = !skb_is_nonlinear(skb), -@@ -1124,7 +1190,9 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1134,7 +1200,9 @@ static int mtk_tx_map(struct sk_buff *sk } memset(&txd_info, 0, sizeof(struct mtk_tx_dma_desc_info)); @@ -151,7 +151,7 @@ Signed-off-by: David S. Miller txd_info.last = i == skb_shinfo(skb)->nr_frags - 1 && !(frag_size - txd_info.size); txd_info.addr = skb_frag_dma_map(eth->dma_dev, frag, -@@ -1205,17 +1273,16 @@ err_dma: +@@ -1215,17 +1283,16 @@ err_dma: return -ENOMEM; } @@ -172,7 +172,7 @@ Signed-off-by: David S. Miller } } else { nfrags += skb_shinfo(skb)->nr_frags; -@@ -1267,7 +1334,7 @@ static netdev_tx_t mtk_start_xmit(struct +@@ -1277,7 +1344,7 @@ static netdev_tx_t mtk_start_xmit(struct if (unlikely(test_bit(MTK_RESETTING, ð->state))) goto drop; @@ -181,7 +181,7 @@ Signed-off-by: David S. Miller if (unlikely(atomic_read(&ring->free_count) <= tx_num)) { netif_stop_queue(dev); netif_err(eth, tx_queued, dev, -@@ -1359,7 +1426,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1369,7 +1436,7 @@ static int mtk_poll_rx(struct napi_struc int idx; struct sk_buff *skb; u8 *data, *new_data; @@ -190,7 +190,7 @@ Signed-off-by: David S. Miller int done = 0, bytes = 0; while (done < budget) { -@@ -1367,7 +1434,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1377,7 +1444,7 @@ static int mtk_poll_rx(struct napi_struc unsigned int pktlen; dma_addr_t dma_addr; u32 hash, reason; @@ -199,7 +199,7 @@ Signed-off-by: David S. Miller ring = mtk_get_rx_ring(eth); if (unlikely(!ring)) -@@ -1377,16 +1444,15 @@ static int mtk_poll_rx(struct napi_struc +@@ -1387,16 +1454,15 @@ static int mtk_poll_rx(struct napi_struc rxd = (void *)ring->dma + idx * eth->soc->txrx.rxd_size; data = ring->data[idx]; @@ -222,7 +222,7 @@ Signed-off-by: David S. Miller if (unlikely(mac < 0 || mac >= MTK_MAC_COUNT || !eth->netdev[mac])) -@@ -1432,7 +1498,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1442,7 +1508,7 @@ static int mtk_poll_rx(struct napi_struc pktlen = RX_DMA_GET_PLEN0(trxd.rxd2); skb->dev = netdev; skb_put(skb, pktlen); @@ -231,7 +231,7 @@ Signed-off-by: David S. Miller skb->ip_summed = CHECKSUM_UNNECESSARY; else skb_checksum_none_assert(skb); -@@ -1450,10 +1516,25 @@ static int mtk_poll_rx(struct napi_struc +@@ -1460,10 +1526,25 @@ static int mtk_poll_rx(struct napi_struc mtk_ppe_check_skb(eth->ppe, skb, trxd.rxd4 & MTK_RXD4_FOE_ENTRY); @@ -261,7 +261,7 @@ Signed-off-by: David S. Miller skb_record_rx_queue(skb, 0); napi_gro_receive(napi, skb); -@@ -1465,7 +1546,7 @@ release_desc: +@@ -1475,7 +1556,7 @@ release_desc: if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) rxd->rxd2 = RX_DMA_LSO; else @@ -270,7 +270,7 @@ Signed-off-by: David S. Miller ring->calc_idx = idx; -@@ -1667,7 +1748,8 @@ static int mtk_napi_rx(struct napi_struc +@@ -1677,7 +1758,8 @@ static int mtk_napi_rx(struct napi_struc do { int rx_done; @@ -280,7 +280,7 @@ Signed-off-by: David S. Miller rx_done = mtk_poll_rx(napi, budget - rx_done_total, eth); rx_done_total += rx_done; -@@ -1681,10 +1763,11 @@ static int mtk_napi_rx(struct napi_struc +@@ -1691,10 +1773,11 @@ static int mtk_napi_rx(struct napi_struc if (rx_done_total == budget) return budget; @@ -294,7 +294,7 @@ Signed-off-by: David S. Miller return rx_done_total; } -@@ -1694,7 +1777,7 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -1704,7 +1787,7 @@ static int mtk_tx_alloc(struct mtk_eth * const struct mtk_soc_data *soc = eth->soc; struct mtk_tx_ring *ring = ð->tx_ring; int i, sz = soc->txrx.txd_size; @@ -303,7 +303,7 @@ Signed-off-by: David S. Miller ring->buf = kcalloc(MTK_DMA_SIZE, sizeof(*ring->buf), GFP_KERNEL); -@@ -1714,13 +1797,19 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -1724,13 +1807,19 @@ static int mtk_tx_alloc(struct mtk_eth * txd->txd2 = next_ptr; txd->txd3 = TX_DMA_LS0 | TX_DMA_OWNER_CPU; txd->txd4 = 0; @@ -324,7 +324,7 @@ Signed-off-by: David S. Miller ring->dma_pdma = dma_alloc_coherent(eth->dma_dev, MTK_DMA_SIZE * sz, &ring->phys_pdma, GFP_KERNEL); if (!ring->dma_pdma) -@@ -1800,13 +1889,11 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1810,13 +1899,11 @@ static int mtk_rx_alloc(struct mtk_eth * struct mtk_rx_ring *ring; int rx_data_len, rx_dma_size; int i; @@ -338,7 +338,7 @@ Signed-off-by: David S. Miller } else { ring = ð->rx_ring[ring_no]; } -@@ -1842,7 +1929,7 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1852,7 +1939,7 @@ static int mtk_rx_alloc(struct mtk_eth * return -ENOMEM; for (i = 0; i < rx_dma_size; i++) { @@ -347,7 +347,7 @@ Signed-off-by: David S. Miller dma_addr_t dma_addr = dma_map_single(eth->dma_dev, ring->data[i] + NET_SKB_PAD + eth->ip_align, -@@ -1857,26 +1944,47 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1867,26 +1954,47 @@ static int mtk_rx_alloc(struct mtk_eth * if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) rxd->rxd2 = RX_DMA_LSO; else @@ -403,7 +403,7 @@ Signed-off-by: David S. Miller return 0; } -@@ -2301,7 +2409,7 @@ static irqreturn_t mtk_handle_irq_rx(int +@@ -2311,7 +2419,7 @@ static irqreturn_t mtk_handle_irq_rx(int eth->rx_events++; if (likely(napi_schedule_prep(ð->rx_napi))) { __napi_schedule(ð->rx_napi); @@ -412,7 +412,7 @@ Signed-off-by: David S. Miller } return IRQ_HANDLED; -@@ -2325,8 +2433,10 @@ static irqreturn_t mtk_handle_irq(int ir +@@ -2335,8 +2443,10 @@ static irqreturn_t mtk_handle_irq(int ir struct mtk_eth *eth = _eth; const struct mtk_reg_map *reg_map = eth->soc->reg_map; @@ -425,7 +425,7 @@ Signed-off-by: David S. Miller mtk_handle_irq_rx(irq, _eth); } if (mtk_r32(eth, reg_map->tx_irq_mask) & MTK_TX_DONE_INT) { -@@ -2344,16 +2454,16 @@ static void mtk_poll_controller(struct n +@@ -2354,16 +2464,16 @@ static void mtk_poll_controller(struct n struct mtk_eth *eth = mac->hw; mtk_tx_irq_disable(eth, MTK_TX_DONE_INT); @@ -445,7 +445,7 @@ Signed-off-by: David S. Miller const struct mtk_reg_map *reg_map = eth->soc->reg_map; int err; -@@ -2364,12 +2474,19 @@ static int mtk_start_dma(struct mtk_eth +@@ -2374,12 +2484,19 @@ static int mtk_start_dma(struct mtk_eth } if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA)) { @@ -471,7 +471,7 @@ Signed-off-by: David S. Miller mtk_w32(eth, MTK_RX_DMA_EN | rx_2b_offset | MTK_RX_BT_32DWORDS | MTK_MULTI_EN, -@@ -2443,7 +2560,7 @@ static int mtk_open(struct net_device *d +@@ -2453,7 +2570,7 @@ static int mtk_open(struct net_device *d napi_enable(ð->tx_napi); napi_enable(ð->rx_napi); mtk_tx_irq_enable(eth, MTK_TX_DONE_INT); @@ -480,7 +480,7 @@ Signed-off-by: David S. Miller refcount_set(ð->dma_refcnt, 1); } else -@@ -2495,7 +2612,7 @@ static int mtk_stop(struct net_device *d +@@ -2505,7 +2622,7 @@ static int mtk_stop(struct net_device *d mtk_gdm_config(eth, MTK_GDMA_DROP_ALL); mtk_tx_irq_disable(eth, MTK_TX_DONE_INT); @@ -489,7 +489,7 @@ Signed-off-by: David S. Miller napi_disable(ð->tx_napi); napi_disable(ð->rx_napi); -@@ -2655,9 +2772,25 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -2665,9 +2782,25 @@ static int mtk_hw_init(struct mtk_eth *e return 0; } @@ -518,7 +518,7 @@ Signed-off-by: David S. Miller if (eth->pctl) { /* Set GE2 driving and slew rate */ -@@ -2696,11 +2829,47 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -2706,11 +2839,47 @@ static int mtk_hw_init(struct mtk_eth *e /* FE int grouping */ mtk_w32(eth, MTK_TX_DONE_INT, reg_map->pdma.int_grp); @@ -568,7 +568,7 @@ Signed-off-by: David S. Miller return 0; err_disable_pm: -@@ -3230,12 +3399,8 @@ static int mtk_probe(struct platform_dev +@@ -3240,12 +3409,8 @@ static int mtk_probe(struct platform_dev if (IS_ERR(eth->base)) return PTR_ERR(eth->base); @@ -582,7 +582,7 @@ Signed-off-by: David S. Miller spin_lock_init(ð->page_lock); spin_lock_init(ð->tx_irq_lock); -@@ -3471,6 +3636,10 @@ static const struct mtk_soc_data mt2701_ +@@ -3481,6 +3646,10 @@ static const struct mtk_soc_data mt2701_ .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), @@ -593,7 +593,7 @@ Signed-off-by: David S. Miller }, }; -@@ -3484,6 +3653,10 @@ static const struct mtk_soc_data mt7621_ +@@ -3494,6 +3663,10 @@ static const struct mtk_soc_data mt7621_ .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), @@ -604,7 +604,7 @@ Signed-off-by: David S. Miller }, }; -@@ -3498,6 +3671,10 @@ static const struct mtk_soc_data mt7622_ +@@ -3508,6 +3681,10 @@ static const struct mtk_soc_data mt7622_ .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), @@ -615,7 +615,7 @@ Signed-off-by: David S. Miller }, }; -@@ -3511,6 +3688,10 @@ static const struct mtk_soc_data mt7623_ +@@ -3521,6 +3698,10 @@ static const struct mtk_soc_data mt7623_ .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), @@ -626,7 +626,7 @@ Signed-off-by: David S. Miller }, }; -@@ -3524,6 +3705,10 @@ static const struct mtk_soc_data mt7629_ +@@ -3534,6 +3715,10 @@ static const struct mtk_soc_data mt7629_ .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), @@ -637,7 +637,7 @@ Signed-off-by: David S. Miller }, }; -@@ -3536,6 +3721,10 @@ static const struct mtk_soc_data rt5350_ +@@ -3546,6 +3731,10 @@ static const struct mtk_soc_data rt5350_ .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), diff --git a/target/linux/generic/backport-5.15/702-v5.19-28-net-ethernet-mtk_eth_soc-convert-ring-dma-pointer-to.patch b/target/linux/generic/backport-5.15/702-v5.19-28-net-ethernet-mtk_eth_soc-convert-ring-dma-pointer-to.patch index 1ecb5e71b3a700..1ee9bb52a77695 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-28-net-ethernet-mtk_eth_soc-convert-ring-dma-pointer-to.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-28-net-ethernet-mtk_eth_soc-convert-ring-dma-pointer-to.patch @@ -10,7 +10,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -947,18 +947,15 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -957,18 +957,15 @@ static int mtk_init_fq_dma(struct mtk_et return 0; } @@ -33,7 +33,7 @@ Signed-off-by: David S. Miller return &ring->buf[idx]; } -@@ -966,13 +963,12 @@ static struct mtk_tx_buf *mtk_desc_to_tx +@@ -976,13 +973,12 @@ static struct mtk_tx_buf *mtk_desc_to_tx static struct mtk_tx_dma *qdma_to_pdma(struct mtk_tx_ring *ring, struct mtk_tx_dma *dma) { @@ -50,7 +50,7 @@ Signed-off-by: David S. Miller } static void mtk_tx_unmap(struct mtk_eth *eth, struct mtk_tx_buf *tx_buf, -@@ -1389,7 +1385,7 @@ static struct mtk_rx_ring *mtk_get_rx_ri +@@ -1399,7 +1395,7 @@ static struct mtk_rx_ring *mtk_get_rx_ri ring = ð->rx_ring[i]; idx = NEXT_DESP_IDX(ring->calc_idx, ring->dma_size); @@ -59,7 +59,7 @@ Signed-off-by: David S. Miller if (rxd->rxd2 & RX_DMA_DONE) { ring->calc_idx_update = true; return ring; -@@ -1441,7 +1437,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1451,7 +1447,7 @@ static int mtk_poll_rx(struct napi_struc goto rx_done; idx = NEXT_DESP_IDX(ring->calc_idx, ring->dma_size); @@ -68,7 +68,7 @@ Signed-off-by: David S. Miller data = ring->data[idx]; if (!mtk_rx_get_desc(eth, &trxd, rxd)) -@@ -1648,7 +1644,7 @@ static int mtk_poll_tx_pdma(struct mtk_e +@@ -1658,7 +1654,7 @@ static int mtk_poll_tx_pdma(struct mtk_e mtk_tx_unmap(eth, tx_buf, true); @@ -77,7 +77,7 @@ Signed-off-by: David S. Miller ring->last_free = desc; atomic_inc(&ring->free_count); -@@ -1793,7 +1789,7 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -1803,7 +1799,7 @@ static int mtk_tx_alloc(struct mtk_eth * int next = (i + 1) % MTK_DMA_SIZE; u32 next_ptr = ring->phys + next * sz; @@ -86,7 +86,7 @@ Signed-off-by: David S. Miller txd->txd2 = next_ptr; txd->txd3 = TX_DMA_LS0 | TX_DMA_OWNER_CPU; txd->txd4 = 0; -@@ -1823,7 +1819,7 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -1833,7 +1829,7 @@ static int mtk_tx_alloc(struct mtk_eth * ring->dma_size = MTK_DMA_SIZE; atomic_set(&ring->free_count, MTK_DMA_SIZE - 2); @@ -95,7 +95,7 @@ Signed-off-by: David S. Miller ring->last_free = (void *)txd; ring->last_free_ptr = (u32)(ring->phys + ((MTK_DMA_SIZE - 1) * sz)); ring->thresh = MAX_SKB_FRAGS; -@@ -1938,7 +1934,7 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1948,7 +1944,7 @@ static int mtk_rx_alloc(struct mtk_eth * if (unlikely(dma_mapping_error(eth->dma_dev, dma_addr))) return -ENOMEM; @@ -104,7 +104,7 @@ Signed-off-by: David S. Miller rxd->rxd1 = (unsigned int)dma_addr; if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) -@@ -2000,7 +1996,7 @@ static void mtk_rx_clean(struct mtk_eth +@@ -2010,7 +2006,7 @@ static void mtk_rx_clean(struct mtk_eth if (!ring->data[i]) continue; diff --git a/target/linux/generic/backport-5.15/702-v5.19-29-net-ethernet-mtk_eth_soc-convert-scratch_ring-pointe.patch b/target/linux/generic/backport-5.15/702-v5.19-29-net-ethernet-mtk_eth_soc-convert-scratch_ring-pointe.patch index f7318e68bbdd17..af77ee39e1afaa 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-29-net-ethernet-mtk_eth_soc-convert-scratch_ring-pointe.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-29-net-ethernet-mtk_eth_soc-convert-scratch_ring-pointe.patch @@ -11,7 +11,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -923,7 +923,7 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -933,7 +933,7 @@ static int mtk_init_fq_dma(struct mtk_et for (i = 0; i < cnt; i++) { struct mtk_tx_dma_v2 *txd; diff --git a/target/linux/generic/backport-5.15/702-v5.19-30-net-ethernet-mtk_eth_soc-introduce-support-for-mt798.patch b/target/linux/generic/backport-5.15/702-v5.19-30-net-ethernet-mtk_eth_soc-introduce-support-for-mt798.patch index 713d24b3c99108..cceb79ba27f3ad 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-30-net-ethernet-mtk_eth_soc-introduce-support-for-mt798.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-30-net-ethernet-mtk_eth_soc-introduce-support-for-mt798.patch @@ -65,7 +65,7 @@ Signed-off-by: David S. Miller }; void mtk_w32(struct mtk_eth *eth, u32 val, unsigned reg) -@@ -3708,6 +3745,21 @@ static const struct mtk_soc_data mt7629_ +@@ -3718,6 +3755,21 @@ static const struct mtk_soc_data mt7629_ }, }; @@ -87,7 +87,7 @@ Signed-off-by: David S. Miller static const struct mtk_soc_data rt5350_data = { .reg_map = &mt7628_reg_map, .caps = MT7628_CAPS, -@@ -3730,6 +3782,7 @@ const struct of_device_id of_mtk_match[] +@@ -3740,6 +3792,7 @@ const struct of_device_id of_mtk_match[] { .compatible = "mediatek,mt7622-eth", .data = &mt7622_data}, { .compatible = "mediatek,mt7623-eth", .data = &mt7623_data}, { .compatible = "mediatek,mt7629-eth", .data = &mt7629_data}, diff --git a/target/linux/generic/backport-5.15/702-v5.19-33-net-ethernet-mtk_eth_soc-enable-rx-cksum-offload-for.patch b/target/linux/generic/backport-5.15/702-v5.19-33-net-ethernet-mtk_eth_soc-enable-rx-cksum-offload-for.patch index b05faa9c4b7b95..cfb6ca48661f08 100644 --- a/target/linux/generic/backport-5.15/702-v5.19-33-net-ethernet-mtk_eth_soc-enable-rx-cksum-offload-for.patch +++ b/target/linux/generic/backport-5.15/702-v5.19-33-net-ethernet-mtk_eth_soc-enable-rx-cksum-offload-for.patch @@ -12,7 +12,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1463,8 +1463,8 @@ static int mtk_poll_rx(struct napi_struc +@@ -1473,8 +1473,8 @@ static int mtk_poll_rx(struct napi_struc int done = 0, bytes = 0; while (done < budget) { @@ -22,7 +22,7 @@ Signed-off-by: Jakub Kicinski dma_addr_t dma_addr; u32 hash, reason; int mac = 0; -@@ -1531,7 +1531,13 @@ static int mtk_poll_rx(struct napi_struc +@@ -1541,7 +1541,13 @@ static int mtk_poll_rx(struct napi_struc pktlen = RX_DMA_GET_PLEN0(trxd.rxd2); skb->dev = netdev; skb_put(skb, pktlen); @@ -37,7 +37,7 @@ Signed-off-by: Jakub Kicinski skb->ip_summed = CHECKSUM_UNNECESSARY; else skb_checksum_none_assert(skb); -@@ -3755,6 +3761,7 @@ static const struct mtk_soc_data mt7986_ +@@ -3765,6 +3771,7 @@ static const struct mtk_soc_data mt7986_ .txd_size = sizeof(struct mtk_tx_dma_v2), .rxd_size = sizeof(struct mtk_rx_dma_v2), .rx_irq_done_mask = MTK_RX_DONE_INT_V2, diff --git a/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch b/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch index eca3c7ff9fd187..5737da6e10f97c 100644 --- a/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch +++ b/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch @@ -726,7 +726,7 @@ Signed-off-by: David S. Miller * to advertise both, only report advertising at 2500BaseX. --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c -@@ -6352,15 +6352,14 @@ static void mvpp2_phylink_validate(struc +@@ -6377,15 +6377,14 @@ static void mvpp2_phylink_validate(struc goto empty_set; } diff --git a/target/linux/generic/backport-5.15/704-01-v5.17-net-mtk_eth_soc-populate-supported_interfaces-member.patch b/target/linux/generic/backport-5.15/704-01-v5.17-net-mtk_eth_soc-populate-supported_interfaces-member.patch index b26b15e60d4af3..affb87b47bc2f0 100644 --- a/target/linux/generic/backport-5.15/704-01-v5.17-net-mtk_eth_soc-populate-supported_interfaces-member.patch +++ b/target/linux/generic/backport-5.15/704-01-v5.17-net-mtk_eth_soc-populate-supported_interfaces-member.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3351,6 +3351,26 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -3361,6 +3361,26 @@ static int mtk_add_mac(struct mtk_eth *e mac->phylink_config.dev = ð->netdev[id]->dev; mac->phylink_config.type = PHYLINK_NETDEV; diff --git a/target/linux/generic/backport-5.15/704-02-v5.17-net-mtk_eth_soc-remove-interface-checks-in-mtk_valid.patch b/target/linux/generic/backport-5.15/704-02-v5.17-net-mtk_eth_soc-remove-interface-checks-in-mtk_valid.patch index 0a33ab0093406c..432e23d0a0c5a0 100644 --- a/target/linux/generic/backport-5.15/704-02-v5.17-net-mtk_eth_soc-remove-interface-checks-in-mtk_valid.patch +++ b/target/linux/generic/backport-5.15/704-02-v5.17-net-mtk_eth_soc-remove-interface-checks-in-mtk_valid.patch @@ -16,7 +16,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -568,24 +568,8 @@ static void mtk_validate(struct phylink_ +@@ -577,24 +577,8 @@ static void mtk_validate(struct phylink_ unsigned long *supported, struct phylink_link_state *state) { @@ -41,7 +41,7 @@ Signed-off-by: David S. Miller phylink_set_port_modes(mask); phylink_set(mask, Autoneg); -@@ -612,7 +596,6 @@ static void mtk_validate(struct phylink_ +@@ -621,7 +605,6 @@ static void mtk_validate(struct phylink_ case PHY_INTERFACE_MODE_MII: case PHY_INTERFACE_MODE_RMII: case PHY_INTERFACE_MODE_REVMII: @@ -49,7 +49,7 @@ Signed-off-by: David S. Miller default: phylink_set(mask, 10baseT_Half); phylink_set(mask, 10baseT_Full); -@@ -621,23 +604,6 @@ static void mtk_validate(struct phylink_ +@@ -630,23 +613,6 @@ static void mtk_validate(struct phylink_ break; } diff --git a/target/linux/generic/backport-5.15/704-03-v5.17-net-mtk_eth_soc-drop-use-of-phylink_helper_basex_spe.patch b/target/linux/generic/backport-5.15/704-03-v5.17-net-mtk_eth_soc-drop-use-of-phylink_helper_basex_spe.patch index f8cc8105a4c06b..7585f7c1eb8d3c 100644 --- a/target/linux/generic/backport-5.15/704-03-v5.17-net-mtk_eth_soc-drop-use-of-phylink_helper_basex_spe.patch +++ b/target/linux/generic/backport-5.15/704-03-v5.17-net-mtk_eth_soc-drop-use-of-phylink_helper_basex_spe.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -578,8 +578,9 @@ static void mtk_validate(struct phylink_ +@@ -587,8 +587,9 @@ static void mtk_validate(struct phylink_ phylink_set(mask, 1000baseT_Full); break; case PHY_INTERFACE_MODE_1000BASEX: @@ -28,7 +28,7 @@ Signed-off-by: David S. Miller phylink_set(mask, 2500baseX_Full); break; case PHY_INTERFACE_MODE_GMII: -@@ -609,11 +610,6 @@ static void mtk_validate(struct phylink_ +@@ -618,11 +619,6 @@ static void mtk_validate(struct phylink_ linkmode_and(supported, supported, mask); linkmode_and(state->advertising, state->advertising, mask); diff --git a/target/linux/generic/backport-5.15/704-04-v5.17-net-mtk_eth_soc-use-phylink_generic_validate.patch b/target/linux/generic/backport-5.15/704-04-v5.17-net-mtk_eth_soc-use-phylink_generic_validate.patch index 6d52e4e37fec63..69b6906b7a5af1 100644 --- a/target/linux/generic/backport-5.15/704-04-v5.17-net-mtk_eth_soc-use-phylink_generic_validate.patch +++ b/target/linux/generic/backport-5.15/704-04-v5.17-net-mtk_eth_soc-use-phylink_generic_validate.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -564,56 +564,8 @@ static void mtk_mac_link_up(struct phyli +@@ -573,56 +573,8 @@ static void mtk_mac_link_up(struct phyli mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id)); } @@ -72,7 +72,7 @@ Signed-off-by: David S. Miller .mac_pcs_get_state = mtk_mac_pcs_get_state, .mac_an_restart = mtk_mac_an_restart, .mac_config = mtk_mac_config, -@@ -3313,6 +3265,9 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -3323,6 +3275,9 @@ static int mtk_add_mac(struct mtk_eth *e mac->phylink_config.dev = ð->netdev[id]->dev; mac->phylink_config.type = PHYLINK_NETDEV; diff --git a/target/linux/generic/backport-5.15/704-05-v5.17-net-mtk_eth_soc-mark-as-a-legacy_pre_march2020-drive.patch b/target/linux/generic/backport-5.15/704-05-v5.17-net-mtk_eth_soc-mark-as-a-legacy_pre_march2020-drive.patch index 381c51b81ae3a1..680d20b9437553 100644 --- a/target/linux/generic/backport-5.15/704-05-v5.17-net-mtk_eth_soc-mark-as-a-legacy_pre_march2020-drive.patch +++ b/target/linux/generic/backport-5.15/704-05-v5.17-net-mtk_eth_soc-mark-as-a-legacy_pre_march2020-drive.patch @@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3265,6 +3265,10 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -3275,6 +3275,10 @@ static int mtk_add_mac(struct mtk_eth *e mac->phylink_config.dev = ð->netdev[id]->dev; mac->phylink_config.type = PHYLINK_NETDEV; diff --git a/target/linux/generic/backport-5.15/704-06-v5.19-eth-mtk_eth_soc-remove-a-copy-of-the-NAPI_POLL_WEIGH.patch b/target/linux/generic/backport-5.15/704-06-v5.19-eth-mtk_eth_soc-remove-a-copy-of-the-NAPI_POLL_WEIGH.patch index 887ff565784a05..4cdd03aa0542c3 100644 --- a/target/linux/generic/backport-5.15/704-06-v5.19-eth-mtk_eth_soc-remove-a-copy-of-the-NAPI_POLL_WEIGH.patch +++ b/target/linux/generic/backport-5.15/704-06-v5.19-eth-mtk_eth_soc-remove-a-copy-of-the-NAPI_POLL_WEIGH.patch @@ -16,7 +16,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3564,9 +3564,9 @@ static int mtk_probe(struct platform_dev +@@ -3574,9 +3574,9 @@ static int mtk_probe(struct platform_dev */ init_dummy_netdev(ð->dummy_dev); netif_napi_add(ð->dummy_dev, ð->tx_napi, mtk_napi_tx, diff --git a/target/linux/generic/backport-5.15/704-07-v5.19-mtk_eth_soc-remove-unused-mac-mode.patch b/target/linux/generic/backport-5.15/704-07-v5.19-mtk_eth_soc-remove-unused-mac-mode.patch index 58aa54f4e53c9f..fd6bd1b87dd85c 100644 --- a/target/linux/generic/backport-5.15/704-07-v5.19-mtk_eth_soc-remove-unused-mac-mode.patch +++ b/target/linux/generic/backport-5.15/704-07-v5.19-mtk_eth_soc-remove-unused-mac-mode.patch @@ -15,7 +15,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3260,7 +3260,6 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -3270,7 +3270,6 @@ static int mtk_add_mac(struct mtk_eth *e /* mac config is not set */ mac->interface = PHY_INTERFACE_MODE_NA; diff --git a/target/linux/generic/backport-5.15/704-11-v5.19-net-mtk_eth_soc-correct-802.3z-duplex-setting.patch b/target/linux/generic/backport-5.15/704-11-v5.19-net-mtk_eth_soc-correct-802.3z-duplex-setting.patch index 951c8fea84d85c..93743ad3ffca02 100644 --- a/target/linux/generic/backport-5.15/704-11-v5.19-net-mtk_eth_soc-correct-802.3z-duplex-setting.patch +++ b/target/linux/generic/backport-5.15/704-11-v5.19-net-mtk_eth_soc-correct-802.3z-duplex-setting.patch @@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -533,8 +533,18 @@ static void mtk_mac_link_up(struct phyli +@@ -542,8 +542,18 @@ static void mtk_mac_link_up(struct phyli { struct mtk_mac *mac = container_of(config, struct mtk_mac, phylink_config); @@ -38,7 +38,7 @@ Signed-off-by: Jakub Kicinski mcr &= ~(MAC_MCR_SPEED_100 | MAC_MCR_SPEED_1000 | MAC_MCR_FORCE_DPX | MAC_MCR_FORCE_TX_FC | MAC_MCR_FORCE_RX_FC); -@@ -3264,9 +3274,7 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -3274,9 +3284,7 @@ static int mtk_add_mac(struct mtk_eth *e mac->phylink_config.dev = ð->netdev[id]->dev; mac->phylink_config.type = PHYLINK_NETDEV; diff --git a/target/linux/generic/backport-5.15/704-15-v5.19-net-mtk_eth_soc-move-MAC_MCR-setting-to-mac_finish.patch b/target/linux/generic/backport-5.15/704-15-v5.19-net-mtk_eth_soc-move-MAC_MCR-setting-to-mac_finish.patch deleted file mode 100644 index 337c6112d66f68..00000000000000 --- a/target/linux/generic/backport-5.15/704-15-v5.19-net-mtk_eth_soc-move-MAC_MCR-setting-to-mac_finish.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 0e37ad71b2ff772009595002da2860999e98e14e Mon Sep 17 00:00:00 2001 -From: "Russell King (Oracle)" -Date: Wed, 18 May 2022 15:55:12 +0100 -Subject: [PATCH 09/12] net: mtk_eth_soc: move MAC_MCR setting to mac_finish() - -Move the setting of the MTK_MAC_MCR register from the end of mac_config -into the phylink mac_finish() method, to keep it as the very last write -that is done during configuration. - -Signed-off-by: Russell King (Oracle) -Signed-off-by: Jakub Kicinski ---- - drivers/net/ethernet/mediatek/mtk_eth_soc.c | 33 ++++++++++++++------- - 1 file changed, 22 insertions(+), 11 deletions(-) - ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -316,8 +316,8 @@ static void mtk_mac_config(struct phylin - struct mtk_mac *mac = container_of(config, struct mtk_mac, - phylink_config); - struct mtk_eth *eth = mac->hw; -- u32 mcr_cur, mcr_new, sid, i; - int val, ge_mode, err = 0; -+ u32 sid, i; - - /* MT76x8 has no hardware settings between for the MAC */ - if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) && -@@ -455,6 +455,25 @@ static void mtk_mac_config(struct phylin - return; - } - -+ return; -+ -+err_phy: -+ dev_err(eth->dev, "%s: GMAC%d mode %s not supported!\n", __func__, -+ mac->id, phy_modes(state->interface)); -+ return; -+ -+init_err: -+ dev_err(eth->dev, "%s: GMAC%d mode %s err: %d!\n", __func__, -+ mac->id, phy_modes(state->interface), err); -+} -+ -+static int mtk_mac_finish(struct phylink_config *config, unsigned int mode, -+ phy_interface_t interface) -+{ -+ struct mtk_mac *mac = container_of(config, struct mtk_mac, -+ phylink_config); -+ u32 mcr_cur, mcr_new; -+ - /* Setup gmac */ - mcr_cur = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); - mcr_new = mcr_cur; -@@ -466,16 +485,7 @@ static void mtk_mac_config(struct phylin - if (mcr_new != mcr_cur) - mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id)); - -- return; -- --err_phy: -- dev_err(eth->dev, "%s: GMAC%d mode %s not supported!\n", __func__, -- mac->id, phy_modes(state->interface)); -- return; -- --init_err: -- dev_err(eth->dev, "%s: GMAC%d mode %s err: %d!\n", __func__, -- mac->id, phy_modes(state->interface), err); -+ return 0; - } - - static void mtk_mac_pcs_get_state(struct phylink_config *config, -@@ -582,6 +592,7 @@ static const struct phylink_mac_ops mtk_ - .mac_pcs_get_state = mtk_mac_pcs_get_state, - .mac_an_restart = mtk_mac_an_restart, - .mac_config = mtk_mac_config, -+ .mac_finish = mtk_mac_finish, - .mac_link_down = mtk_mac_link_down, - .mac_link_up = mtk_mac_link_up, - }; diff --git a/target/linux/generic/backport-5.15/704-18-v5.19-net-mtk_eth_soc-partially-convert-to-phylink_pcs.patch b/target/linux/generic/backport-5.15/704-18-v5.19-net-mtk_eth_soc-partially-convert-to-phylink_pcs.patch index b585867935e324..0f7e451245907a 100644 --- a/target/linux/generic/backport-5.15/704-18-v5.19-net-mtk_eth_soc-partially-convert-to-phylink_pcs.patch +++ b/target/linux/generic/backport-5.15/704-18-v5.19-net-mtk_eth_soc-partially-convert-to-phylink_pcs.patch @@ -69,7 +69,7 @@ Signed-off-by: Jakub Kicinski /* Save the syscfg0 value for mac_finish */ mac->syscfg0 = val; } else if (phylink_autoneg_inband(mode)) { -@@ -527,14 +537,6 @@ static void mtk_mac_pcs_get_state(struct +@@ -526,14 +536,6 @@ static void mtk_mac_pcs_get_state(struct state->pause |= MLO_PAUSE_TX; } @@ -84,7 +84,7 @@ Signed-off-by: Jakub Kicinski static void mtk_mac_link_down(struct phylink_config *config, unsigned int mode, phy_interface_t interface) { -@@ -555,15 +557,6 @@ static void mtk_mac_link_up(struct phyli +@@ -554,15 +556,6 @@ static void mtk_mac_link_up(struct phyli phylink_config); u32 mcr; @@ -100,7 +100,7 @@ Signed-off-by: Jakub Kicinski mcr = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); mcr &= ~(MAC_MCR_SPEED_100 | MAC_MCR_SPEED_1000 | MAC_MCR_FORCE_DPX | MAC_MCR_FORCE_TX_FC | -@@ -596,8 +589,8 @@ static void mtk_mac_link_up(struct phyli +@@ -595,8 +588,8 @@ static void mtk_mac_link_up(struct phyli static const struct phylink_mac_ops mtk_phylink_ops = { .validate = phylink_generic_validate, diff --git a/target/linux/generic/backport-5.15/705-01-v5.17-net-dsa-mt7530-iterate-using-dsa_switch_for_each_use.patch b/target/linux/generic/backport-5.15/705-01-v5.17-net-dsa-mt7530-iterate-using-dsa_switch_for_each_use.patch index d54819120ea0d5..3f7f3282473912 100644 --- a/target/linux/generic/backport-5.15/705-01-v5.17-net-dsa-mt7530-iterate-using-dsa_switch_for_each_use.patch +++ b/target/linux/generic/backport-5.15/705-01-v5.17-net-dsa-mt7530-iterate-using-dsa_switch_for_each_use.patch @@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -1198,27 +1198,31 @@ static int +@@ -1243,27 +1243,31 @@ static int mt7530_port_bridge_join(struct dsa_switch *ds, int port, struct net_device *bridge) { @@ -65,7 +65,7 @@ Signed-off-by: Jakub Kicinski } /* Add the all other ports to this port matrix. */ -@@ -1323,24 +1327,28 @@ static void +@@ -1368,24 +1372,28 @@ static void mt7530_port_bridge_leave(struct dsa_switch *ds, int port, struct net_device *bridge) { diff --git a/target/linux/generic/backport-5.15/705-02-v5.19-net-dsa-mt7530-populate-supported_interfaces-and-mac.patch b/target/linux/generic/backport-5.15/705-02-v5.19-net-dsa-mt7530-populate-supported_interfaces-and-mac.patch index 391934a30af825..c3902bb9c5ff0d 100644 --- a/target/linux/generic/backport-5.15/705-02-v5.19-net-dsa-mt7530-populate-supported_interfaces-and-mac.patch +++ b/target/linux/generic/backport-5.15/705-02-v5.19-net-dsa-mt7530-populate-supported_interfaces-and-mac.patch @@ -23,7 +23,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2454,6 +2454,32 @@ mt7531_setup(struct dsa_switch *ds) +@@ -2499,6 +2499,32 @@ mt7531_setup(struct dsa_switch *ds) return 0; } @@ -56,7 +56,7 @@ Signed-off-by: Paolo Abeni static bool mt7530_phy_mode_supported(struct dsa_switch *ds, int port, const struct phylink_link_state *state) -@@ -2490,6 +2516,37 @@ static bool mt7531_is_rgmii_port(struct +@@ -2535,6 +2561,37 @@ static bool mt7531_is_rgmii_port(struct return (port == 5) && (priv->p5_intf_sel != P5_INTF_SEL_GMAC5_SGMII); } @@ -94,7 +94,7 @@ Signed-off-by: Paolo Abeni static bool mt7531_phy_mode_supported(struct dsa_switch *ds, int port, const struct phylink_link_state *state) -@@ -2966,6 +3023,18 @@ mt7531_cpu_port_config(struct dsa_switch +@@ -3011,6 +3068,18 @@ mt7531_cpu_port_config(struct dsa_switch return 0; } @@ -113,7 +113,7 @@ Signed-off-by: Paolo Abeni static void mt7530_mac_port_validate(struct dsa_switch *ds, int port, unsigned long *supported) -@@ -3201,6 +3270,7 @@ static const struct dsa_switch_ops mt753 +@@ -3246,6 +3315,7 @@ static const struct dsa_switch_ops mt753 .port_vlan_del = mt7530_port_vlan_del, .port_mirror_add = mt753x_port_mirror_add, .port_mirror_del = mt753x_port_mirror_del, @@ -121,7 +121,7 @@ Signed-off-by: Paolo Abeni .phylink_validate = mt753x_phylink_validate, .phylink_mac_link_state = mt753x_phylink_mac_link_state, .phylink_mac_config = mt753x_phylink_mac_config, -@@ -3218,6 +3288,7 @@ static const struct mt753x_info mt753x_t +@@ -3263,6 +3333,7 @@ static const struct mt753x_info mt753x_t .phy_read = mt7530_phy_read, .phy_write = mt7530_phy_write, .pad_setup = mt7530_pad_clk_setup, @@ -129,7 +129,7 @@ Signed-off-by: Paolo Abeni .phy_mode_supported = mt7530_phy_mode_supported, .mac_port_validate = mt7530_mac_port_validate, .mac_port_get_state = mt7530_phylink_mac_link_state, -@@ -3229,6 +3300,7 @@ static const struct mt753x_info mt753x_t +@@ -3274,6 +3345,7 @@ static const struct mt753x_info mt753x_t .phy_read = mt7530_phy_read, .phy_write = mt7530_phy_write, .pad_setup = mt7530_pad_clk_setup, @@ -137,7 +137,7 @@ Signed-off-by: Paolo Abeni .phy_mode_supported = mt7530_phy_mode_supported, .mac_port_validate = mt7530_mac_port_validate, .mac_port_get_state = mt7530_phylink_mac_link_state, -@@ -3241,6 +3313,7 @@ static const struct mt753x_info mt753x_t +@@ -3286,6 +3358,7 @@ static const struct mt753x_info mt753x_t .phy_write = mt7531_ind_phy_write, .pad_setup = mt7531_pad_setup, .cpu_port_config = mt7531_cpu_port_config, @@ -145,7 +145,7 @@ Signed-off-by: Paolo Abeni .phy_mode_supported = mt7531_phy_mode_supported, .mac_port_validate = mt7531_mac_port_validate, .mac_port_get_state = mt7531_phylink_mac_link_state, -@@ -3303,6 +3376,7 @@ mt7530_probe(struct mdio_device *mdiodev +@@ -3348,6 +3421,7 @@ mt7530_probe(struct mdio_device *mdiodev */ if (!priv->info->sw_setup || !priv->info->pad_setup || !priv->info->phy_read || !priv->info->phy_write || @@ -155,7 +155,7 @@ Signed-off-by: Paolo Abeni !priv->info->mac_port_get_state || !priv->info->mac_port_config) --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h -@@ -769,6 +769,8 @@ struct mt753x_info { +@@ -796,6 +796,8 @@ struct mt753x_info { int (*phy_write)(struct mt7530_priv *priv, int port, int regnum, u16 val); int (*pad_setup)(struct dsa_switch *ds, phy_interface_t interface); int (*cpu_port_config)(struct dsa_switch *ds, int port); diff --git a/target/linux/generic/backport-5.15/705-03-v5.19-net-dsa-mt7530-remove-interface-checks.patch b/target/linux/generic/backport-5.15/705-03-v5.19-net-dsa-mt7530-remove-interface-checks.patch index ac1916331053df..d1d56f5aa8e72d 100644 --- a/target/linux/generic/backport-5.15/705-03-v5.19-net-dsa-mt7530-remove-interface-checks.patch +++ b/target/linux/generic/backport-5.15/705-03-v5.19-net-dsa-mt7530-remove-interface-checks.patch @@ -21,7 +21,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2480,37 +2480,6 @@ static void mt7530_mac_port_get_caps(str +@@ -2525,37 +2525,6 @@ static void mt7530_mac_port_get_caps(str } } @@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni static bool mt7531_is_rgmii_port(struct mt7530_priv *priv, u32 port) { return (port == 5) && (priv->p5_intf_sel != P5_INTF_SEL_GMAC5_SGMII); -@@ -2547,44 +2516,6 @@ static void mt7531_mac_port_get_caps(str +@@ -2592,44 +2561,6 @@ static void mt7531_mac_port_get_caps(str } } @@ -104,7 +104,7 @@ Signed-off-by: Paolo Abeni static int mt753x_pad_setup(struct dsa_switch *ds, const struct phylink_link_state *state) { -@@ -2839,9 +2770,6 @@ mt753x_phylink_mac_config(struct dsa_swi +@@ -2884,9 +2815,6 @@ mt753x_phylink_mac_config(struct dsa_swi struct mt7530_priv *priv = ds->priv; u32 mcr_cur, mcr_new; @@ -114,7 +114,7 @@ Signed-off-by: Paolo Abeni switch (port) { case 0 ... 4: /* Internal phy */ if (state->interface != PHY_INTERFACE_MODE_GMII) -@@ -3057,12 +2985,6 @@ mt753x_phylink_validate(struct dsa_switc +@@ -3102,12 +3030,6 @@ mt753x_phylink_validate(struct dsa_switc __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, }; struct mt7530_priv *priv = ds->priv; @@ -127,7 +127,7 @@ Signed-off-by: Paolo Abeni phylink_set_port_modes(mask); if (state->interface != PHY_INTERFACE_MODE_TRGMII && -@@ -3289,7 +3211,6 @@ static const struct mt753x_info mt753x_t +@@ -3334,7 +3256,6 @@ static const struct mt753x_info mt753x_t .phy_write = mt7530_phy_write, .pad_setup = mt7530_pad_clk_setup, .mac_port_get_caps = mt7530_mac_port_get_caps, @@ -135,7 +135,7 @@ Signed-off-by: Paolo Abeni .mac_port_validate = mt7530_mac_port_validate, .mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_config = mt7530_mac_config, -@@ -3301,7 +3222,6 @@ static const struct mt753x_info mt753x_t +@@ -3346,7 +3267,6 @@ static const struct mt753x_info mt753x_t .phy_write = mt7530_phy_write, .pad_setup = mt7530_pad_clk_setup, .mac_port_get_caps = mt7530_mac_port_get_caps, @@ -143,7 +143,7 @@ Signed-off-by: Paolo Abeni .mac_port_validate = mt7530_mac_port_validate, .mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_config = mt7530_mac_config, -@@ -3314,7 +3234,6 @@ static const struct mt753x_info mt753x_t +@@ -3359,7 +3279,6 @@ static const struct mt753x_info mt753x_t .pad_setup = mt7531_pad_setup, .cpu_port_config = mt7531_cpu_port_config, .mac_port_get_caps = mt7531_mac_port_get_caps, @@ -151,7 +151,7 @@ Signed-off-by: Paolo Abeni .mac_port_validate = mt7531_mac_port_validate, .mac_port_get_state = mt7531_phylink_mac_link_state, .mac_port_config = mt7531_mac_config, -@@ -3377,7 +3296,6 @@ mt7530_probe(struct mdio_device *mdiodev +@@ -3422,7 +3341,6 @@ mt7530_probe(struct mdio_device *mdiodev if (!priv->info->sw_setup || !priv->info->pad_setup || !priv->info->phy_read || !priv->info->phy_write || !priv->info->mac_port_get_caps || @@ -161,7 +161,7 @@ Signed-off-by: Paolo Abeni return -EINVAL; --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h -@@ -771,8 +771,6 @@ struct mt753x_info { +@@ -798,8 +798,6 @@ struct mt753x_info { int (*cpu_port_config)(struct dsa_switch *ds, int port); void (*mac_port_get_caps)(struct dsa_switch *ds, int port, struct phylink_config *config); diff --git a/target/linux/generic/backport-5.15/705-04-v5.19-net-dsa-mt7530-drop-use-of-phylink_helper_basex_spee.patch b/target/linux/generic/backport-5.15/705-04-v5.19-net-dsa-mt7530-drop-use-of-phylink_helper_basex_spee.patch index 63f6e9b9547baf..19b44d35edd8ad 100644 --- a/target/linux/generic/backport-5.15/705-04-v5.19-net-dsa-mt7530-drop-use-of-phylink_helper_basex_spee.patch +++ b/target/linux/generic/backport-5.15/705-04-v5.19-net-dsa-mt7530-drop-use-of-phylink_helper_basex_spee.patch @@ -20,7 +20,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -3009,11 +3009,6 @@ mt753x_phylink_validate(struct dsa_switc +@@ -3054,11 +3054,6 @@ mt753x_phylink_validate(struct dsa_switc linkmode_and(supported, supported, mask); linkmode_and(state->advertising, state->advertising, mask); diff --git a/target/linux/generic/backport-5.15/705-05-v5.19-net-dsa-mt7530-only-indicate-linkmodes-that-can-be-s.patch b/target/linux/generic/backport-5.15/705-05-v5.19-net-dsa-mt7530-only-indicate-linkmodes-that-can-be-s.patch index 5a3098ade3ee8e..5e55f92fc777f9 100644 --- a/target/linux/generic/backport-5.15/705-05-v5.19-net-dsa-mt7530-only-indicate-linkmodes-that-can-be-s.patch +++ b/target/linux/generic/backport-5.15/705-05-v5.19-net-dsa-mt7530-only-indicate-linkmodes-that-can-be-s.patch @@ -23,7 +23,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2587,12 +2587,13 @@ static int mt7531_rgmii_setup(struct mt7 +@@ -2632,12 +2632,13 @@ static int mt7531_rgmii_setup(struct mt7 } static void mt7531_sgmii_validate(struct mt7530_priv *priv, int port, @@ -38,7 +38,7 @@ Signed-off-by: Paolo Abeni phylink_set(supported, 2500baseX_Full); phylink_set(supported, 2500baseT_Full); } -@@ -2965,16 +2966,18 @@ static void mt753x_phylink_get_caps(stru +@@ -3010,16 +3011,18 @@ static void mt753x_phylink_get_caps(stru static void mt7530_mac_port_validate(struct dsa_switch *ds, int port, @@ -58,7 +58,7 @@ Signed-off-by: Paolo Abeni } static void -@@ -2997,12 +3000,13 @@ mt753x_phylink_validate(struct dsa_switc +@@ -3042,12 +3045,13 @@ mt753x_phylink_validate(struct dsa_switc } /* This switch only supports 1G full-duplex. */ @@ -76,7 +76,7 @@ Signed-off-by: Paolo Abeni phylink_set(mask, Asym_Pause); --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h -@@ -772,6 +772,7 @@ struct mt753x_info { +@@ -799,6 +799,7 @@ struct mt753x_info { void (*mac_port_get_caps)(struct dsa_switch *ds, int port, struct phylink_config *config); void (*mac_port_validate)(struct dsa_switch *ds, int port, diff --git a/target/linux/generic/backport-5.15/705-06-v5.19-net-dsa-mt7530-switch-to-use-phylink_get_linkmodes.patch b/target/linux/generic/backport-5.15/705-06-v5.19-net-dsa-mt7530-switch-to-use-phylink_get_linkmodes.patch index c779cb141ef478..ddf368fa1af3f0 100644 --- a/target/linux/generic/backport-5.15/705-06-v5.19-net-dsa-mt7530-switch-to-use-phylink_get_linkmodes.patch +++ b/target/linux/generic/backport-5.15/705-06-v5.19-net-dsa-mt7530-switch-to-use-phylink_get_linkmodes.patch @@ -20,7 +20,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2586,19 +2586,6 @@ static int mt7531_rgmii_setup(struct mt7 +@@ -2631,19 +2631,6 @@ static int mt7531_rgmii_setup(struct mt7 return 0; } @@ -40,7 +40,7 @@ Signed-off-by: Paolo Abeni static void mt7531_sgmii_link_up_force(struct dsa_switch *ds, int port, unsigned int mode, phy_interface_t interface, -@@ -2965,51 +2952,21 @@ static void mt753x_phylink_get_caps(stru +@@ -3010,51 +2997,21 @@ static void mt753x_phylink_get_caps(stru } static void @@ -97,7 +97,7 @@ Signed-off-by: Paolo Abeni linkmode_and(supported, supported, mask); linkmode_and(state->advertising, state->advertising, mask); -@@ -3210,7 +3167,6 @@ static const struct mt753x_info mt753x_t +@@ -3255,7 +3212,6 @@ static const struct mt753x_info mt753x_t .phy_write = mt7530_phy_write, .pad_setup = mt7530_pad_clk_setup, .mac_port_get_caps = mt7530_mac_port_get_caps, @@ -105,7 +105,7 @@ Signed-off-by: Paolo Abeni .mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_config = mt7530_mac_config, }, -@@ -3221,7 +3177,6 @@ static const struct mt753x_info mt753x_t +@@ -3266,7 +3222,6 @@ static const struct mt753x_info mt753x_t .phy_write = mt7530_phy_write, .pad_setup = mt7530_pad_clk_setup, .mac_port_get_caps = mt7530_mac_port_get_caps, @@ -113,7 +113,7 @@ Signed-off-by: Paolo Abeni .mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_config = mt7530_mac_config, }, -@@ -3233,7 +3188,6 @@ static const struct mt753x_info mt753x_t +@@ -3278,7 +3233,6 @@ static const struct mt753x_info mt753x_t .pad_setup = mt7531_pad_setup, .cpu_port_config = mt7531_cpu_port_config, .mac_port_get_caps = mt7531_mac_port_get_caps, @@ -121,7 +121,7 @@ Signed-off-by: Paolo Abeni .mac_port_get_state = mt7531_phylink_mac_link_state, .mac_port_config = mt7531_mac_config, .mac_pcs_an_restart = mt7531_sgmii_restart_an, -@@ -3295,7 +3249,6 @@ mt7530_probe(struct mdio_device *mdiodev +@@ -3340,7 +3294,6 @@ mt7530_probe(struct mdio_device *mdiodev if (!priv->info->sw_setup || !priv->info->pad_setup || !priv->info->phy_read || !priv->info->phy_write || !priv->info->mac_port_get_caps || diff --git a/target/linux/generic/backport-5.15/705-07-v5.19-net-dsa-mt7530-partially-convert-to-phylink_pcs.patch b/target/linux/generic/backport-5.15/705-07-v5.19-net-dsa-mt7530-partially-convert-to-phylink_pcs.patch index 3854d0e6d52cc4..7f69ea2fb4dc0b 100644 --- a/target/linux/generic/backport-5.15/705-07-v5.19-net-dsa-mt7530-partially-convert-to-phylink_pcs.patch +++ b/target/linux/generic/backport-5.15/705-07-v5.19-net-dsa-mt7530-partially-convert-to-phylink_pcs.patch @@ -21,7 +21,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -24,6 +24,11 @@ +@@ -25,6 +25,11 @@ #include "mt7530.h" @@ -33,7 +33,7 @@ Signed-off-by: Paolo Abeni /* String, offset, and register size in bytes if different from 4 bytes */ static const struct mt7530_mib_desc mt7530_mib[] = { MIB_DESC(1, 0x00, "TxDrop"), -@@ -2586,12 +2591,11 @@ static int mt7531_rgmii_setup(struct mt7 +@@ -2631,12 +2636,11 @@ static int mt7531_rgmii_setup(struct mt7 return 0; } @@ -50,7 +50,7 @@ Signed-off-by: Paolo Abeni unsigned int val; /* For adjusting speed and duplex of SGMII force mode. */ -@@ -2617,6 +2621,9 @@ mt7531_sgmii_link_up_force(struct dsa_sw +@@ -2662,6 +2666,9 @@ mt7531_sgmii_link_up_force(struct dsa_sw /* MT7531 SGMII 1G force mode can only work in full duplex mode, * no matter MT7531_SGMII_FORCE_HALF_DUPLEX is set or not. @@ -60,7 +60,7 @@ Signed-off-by: Paolo Abeni */ if ((speed == SPEED_10 || speed == SPEED_100) && duplex != DUPLEX_FULL) -@@ -2692,9 +2699,10 @@ static int mt7531_sgmii_setup_mode_an(st +@@ -2737,9 +2744,10 @@ static int mt7531_sgmii_setup_mode_an(st return 0; } @@ -73,7 +73,7 @@ Signed-off-by: Paolo Abeni u32 val; /* Only restart AN when AN is enabled */ -@@ -2751,6 +2759,24 @@ mt753x_mac_config(struct dsa_switch *ds, +@@ -2796,6 +2804,24 @@ mt753x_mac_config(struct dsa_switch *ds, return priv->info->mac_port_config(ds, port, mode, state->interface); } @@ -98,7 +98,7 @@ Signed-off-by: Paolo Abeni static void mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, const struct phylink_link_state *state) -@@ -2812,17 +2838,6 @@ unsupported: +@@ -2857,17 +2883,6 @@ unsupported: mt7530_write(priv, MT7530_PMCR_P(port), mcr_new); } @@ -116,7 +116,7 @@ Signed-off-by: Paolo Abeni static void mt753x_phylink_mac_link_down(struct dsa_switch *ds, int port, unsigned int mode, phy_interface_t interface) -@@ -2832,16 +2847,13 @@ static void mt753x_phylink_mac_link_down +@@ -2877,16 +2892,13 @@ static void mt753x_phylink_mac_link_down mt7530_clear(priv, MT7530_PMCR_P(port), PMCR_LINK_SETTINGS_MASK); } @@ -139,7 +139,7 @@ Signed-off-by: Paolo Abeni } static void mt753x_phylink_mac_link_up(struct dsa_switch *ds, int port, -@@ -2854,8 +2866,6 @@ static void mt753x_phylink_mac_link_up(s +@@ -2899,8 +2911,6 @@ static void mt753x_phylink_mac_link_up(s struct mt7530_priv *priv = ds->priv; u32 mcr; @@ -148,7 +148,7 @@ Signed-off-by: Paolo Abeni mcr = PMCR_RX_EN | PMCR_TX_EN | PMCR_FORCE_LNK; /* MT753x MAC works in 1G full duplex mode for all up-clocked -@@ -2933,6 +2943,8 @@ mt7531_cpu_port_config(struct dsa_switch +@@ -2978,6 +2988,8 @@ mt7531_cpu_port_config(struct dsa_switch return ret; mt7530_write(priv, MT7530_PMCR_P(port), PMCR_CPU_PORT_SETTING(priv->id)); @@ -157,7 +157,7 @@ Signed-off-by: Paolo Abeni mt753x_phylink_mac_link_up(ds, port, MLO_AN_FIXED, interface, NULL, speed, DUPLEX_FULL, true, true); -@@ -2972,16 +2984,13 @@ mt753x_phylink_validate(struct dsa_switc +@@ -3017,16 +3029,13 @@ mt753x_phylink_validate(struct dsa_switc linkmode_and(state->advertising, state->advertising, mask); } @@ -178,7 +178,7 @@ Signed-off-by: Paolo Abeni pmsr = mt7530_read(priv, MT7530_PMSR_P(port)); state->link = (pmsr & PMSR_LINK); -@@ -3008,8 +3017,6 @@ mt7530_phylink_mac_link_state(struct dsa +@@ -3053,8 +3062,6 @@ mt7530_phylink_mac_link_state(struct dsa state->pause |= MLO_PAUSE_RX; if (pmsr & PMSR_TX_FC) state->pause |= MLO_PAUSE_TX; @@ -187,7 +187,7 @@ Signed-off-by: Paolo Abeni } static int -@@ -3051,32 +3058,49 @@ mt7531_sgmii_pcs_get_state_an(struct mt7 +@@ -3096,32 +3103,49 @@ mt7531_sgmii_pcs_get_state_an(struct mt7 return 0; } @@ -249,7 +249,7 @@ Signed-off-by: Paolo Abeni if (ret) return ret; -@@ -3089,6 +3113,13 @@ mt753x_setup(struct dsa_switch *ds) +@@ -3134,6 +3158,13 @@ mt753x_setup(struct dsa_switch *ds) if (ret && priv->irq) mt7530_free_irq_common(priv); @@ -263,7 +263,7 @@ Signed-off-by: Paolo Abeni return ret; } -@@ -3150,9 +3181,8 @@ static const struct dsa_switch_ops mt753 +@@ -3195,9 +3226,8 @@ static const struct dsa_switch_ops mt753 .port_mirror_del = mt753x_port_mirror_del, .phylink_get_caps = mt753x_phylink_get_caps, .phylink_validate = mt753x_phylink_validate, @@ -274,7 +274,7 @@ Signed-off-by: Paolo Abeni .phylink_mac_link_down = mt753x_phylink_mac_link_down, .phylink_mac_link_up = mt753x_phylink_mac_link_up, .get_mac_eee = mt753x_get_mac_eee, -@@ -3162,36 +3192,34 @@ static const struct dsa_switch_ops mt753 +@@ -3207,36 +3237,34 @@ static const struct dsa_switch_ops mt753 static const struct mt753x_info mt753x_table[] = { [ID_MT7621] = { .id = ID_MT7621, @@ -314,7 +314,7 @@ Signed-off-by: Paolo Abeni }, }; -@@ -3249,7 +3277,7 @@ mt7530_probe(struct mdio_device *mdiodev +@@ -3294,7 +3322,7 @@ mt7530_probe(struct mdio_device *mdiodev if (!priv->info->sw_setup || !priv->info->pad_setup || !priv->info->phy_read || !priv->info->phy_write || !priv->info->mac_port_get_caps || @@ -325,7 +325,7 @@ Signed-off-by: Paolo Abeni priv->id = priv->info->id; --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h -@@ -741,6 +741,12 @@ static const char *p5_intf_modes(unsigne +@@ -768,6 +768,12 @@ static const char *p5_intf_modes(unsigne struct mt7530_priv; @@ -338,7 +338,7 @@ Signed-off-by: Paolo Abeni /* struct mt753x_info - This is the main data structure for holding the specific * part for each supported device * @sw_setup: Holding the handler to a device initialization -@@ -752,18 +758,14 @@ struct mt7530_priv; +@@ -779,18 +785,14 @@ struct mt7530_priv; * port * @mac_port_validate: Holding the way to set addition validate type for a * certan MAC port @@ -359,7 +359,7 @@ Signed-off-by: Paolo Abeni int (*sw_setup)(struct dsa_switch *ds); int (*phy_read)(struct mt7530_priv *priv, int port, int regnum); int (*phy_write)(struct mt7530_priv *priv, int port, int regnum, u16 val); -@@ -774,15 +776,9 @@ struct mt753x_info { +@@ -801,15 +803,9 @@ struct mt753x_info { void (*mac_port_validate)(struct dsa_switch *ds, int port, phy_interface_t interface, unsigned long *supported); @@ -375,7 +375,7 @@ Signed-off-by: Paolo Abeni }; /* struct mt7530_priv - This is the main data structure for holding the state -@@ -824,6 +820,7 @@ struct mt7530_priv { +@@ -851,6 +847,7 @@ struct mt7530_priv { u8 mirror_tx; struct mt7530_port ports[MT7530_NUM_PORTS]; diff --git a/target/linux/generic/backport-5.15/705-08-v5.19-net-dsa-mt7530-move-autoneg-handling-to-PCS-validati.patch b/target/linux/generic/backport-5.15/705-08-v5.19-net-dsa-mt7530-move-autoneg-handling-to-PCS-validati.patch index 220e34d1dfb2c2..565a5d0bc5406f 100644 --- a/target/linux/generic/backport-5.15/705-08-v5.19-net-dsa-mt7530-move-autoneg-handling-to-PCS-validati.patch +++ b/target/linux/generic/backport-5.15/705-08-v5.19-net-dsa-mt7530-move-autoneg-handling-to-PCS-validati.patch @@ -20,7 +20,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2963,25 +2963,16 @@ static void mt753x_phylink_get_caps(stru +@@ -3008,25 +3008,16 @@ static void mt753x_phylink_get_caps(stru priv->info->mac_port_get_caps(ds, port, config); } @@ -55,7 +55,7 @@ Signed-off-by: Paolo Abeni } static void mt7530_pcs_get_state(struct phylink_pcs *pcs, -@@ -3083,12 +3074,14 @@ static void mt7530_pcs_an_restart(struct +@@ -3128,12 +3119,14 @@ static void mt7530_pcs_an_restart(struct } static const struct phylink_pcs_ops mt7530_pcs_ops = { @@ -70,7 +70,7 @@ Signed-off-by: Paolo Abeni .pcs_get_state = mt7531_pcs_get_state, .pcs_config = mt753x_pcs_config, .pcs_an_restart = mt7531_pcs_an_restart, -@@ -3180,7 +3173,6 @@ static const struct dsa_switch_ops mt753 +@@ -3225,7 +3218,6 @@ static const struct dsa_switch_ops mt753 .port_mirror_add = mt753x_port_mirror_add, .port_mirror_del = mt753x_port_mirror_del, .phylink_get_caps = mt753x_phylink_get_caps, diff --git a/target/linux/generic/backport-5.15/705-09-v5.19-net-dsa-mt7530-mark-as-non-legacy.patch b/target/linux/generic/backport-5.15/705-09-v5.19-net-dsa-mt7530-mark-as-non-legacy.patch index 71ececd074bc93..da9fe699e3eca6 100644 --- a/target/linux/generic/backport-5.15/705-09-v5.19-net-dsa-mt7530-mark-as-non-legacy.patch +++ b/target/linux/generic/backport-5.15/705-09-v5.19-net-dsa-mt7530-mark-as-non-legacy.patch @@ -19,7 +19,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2960,6 +2960,12 @@ static void mt753x_phylink_get_caps(stru +@@ -3005,6 +3005,12 @@ static void mt753x_phylink_get_caps(stru config->mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE | MAC_10 | MAC_100 | MAC_1000FD; diff --git a/target/linux/generic/backport-5.15/705-10-v5.19-net-dsa-mt753x-fix-pcs-conversion-regression.patch b/target/linux/generic/backport-5.15/705-10-v5.19-net-dsa-mt753x-fix-pcs-conversion-regression.patch index 26c465d67e5749..eea598a7f4b6a8 100644 --- a/target/linux/generic/backport-5.15/705-10-v5.19-net-dsa-mt753x-fix-pcs-conversion-regression.patch +++ b/target/linux/generic/backport-5.15/705-10-v5.19-net-dsa-mt753x-fix-pcs-conversion-regression.patch @@ -81,7 +81,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -3098,9 +3098,16 @@ static int +@@ -3143,9 +3143,16 @@ static int mt753x_setup(struct dsa_switch *ds) { struct mt7530_priv *priv = ds->priv; @@ -100,7 +100,7 @@ Signed-off-by: Jakub Kicinski if (ret) return ret; -@@ -3112,13 +3119,6 @@ mt753x_setup(struct dsa_switch *ds) +@@ -3157,13 +3164,6 @@ mt753x_setup(struct dsa_switch *ds) if (ret && priv->irq) mt7530_free_irq_common(priv); diff --git a/target/linux/generic/backport-5.15/705-11-v6.0-net-dsa-mt7530-rework-mt7530_hw_vlan_-add-del.patch b/target/linux/generic/backport-5.15/705-11-v6.0-net-dsa-mt7530-rework-mt7530_hw_vlan_-add-del.patch index 4adb167199995d..c0dce51a2a2271 100644 --- a/target/linux/generic/backport-5.15/705-11-v6.0-net-dsa-mt7530-rework-mt7530_hw_vlan_-add-del.patch +++ b/target/linux/generic/backport-5.15/705-11-v6.0-net-dsa-mt7530-rework-mt7530_hw_vlan_-add-del.patch @@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -1544,11 +1544,11 @@ static void +@@ -1589,11 +1589,11 @@ static void mt7530_hw_vlan_add(struct mt7530_priv *priv, struct mt7530_hw_vlan_entry *entry) { @@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski /* Validate the entry with independent learning, create egress tag per * VLAN and joining the port as one of the port members. -@@ -1559,22 +1559,20 @@ mt7530_hw_vlan_add(struct mt7530_priv *p +@@ -1604,22 +1604,20 @@ mt7530_hw_vlan_add(struct mt7530_priv *p /* Decide whether adding tag or not for those outgoing packets from the * port inside the VLAN. @@ -72,7 +72,7 @@ Signed-off-by: Jakub Kicinski } static void -@@ -1593,11 +1591,7 @@ mt7530_hw_vlan_del(struct mt7530_priv *p +@@ -1638,11 +1636,7 @@ mt7530_hw_vlan_del(struct mt7530_priv *p return; } diff --git a/target/linux/generic/backport-5.15/705-13-v6.0-net-dsa-mt7530-get-cpu-port-via-dp-cpu_dp-instead-of.patch b/target/linux/generic/backport-5.15/705-13-v6.0-net-dsa-mt7530-get-cpu-port-via-dp-cpu_dp-instead-of.patch index 276251f509ea73..7a4ee56cf9f9ce 100644 --- a/target/linux/generic/backport-5.15/705-13-v6.0-net-dsa-mt7530-get-cpu-port-via-dp-cpu_dp-instead-of.patch +++ b/target/linux/generic/backport-5.15/705-13-v6.0-net-dsa-mt7530-get-cpu-port-via-dp-cpu_dp-instead-of.patch @@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -1048,6 +1048,7 @@ static int +@@ -1093,6 +1093,7 @@ static int mt7530_port_enable(struct dsa_switch *ds, int port, struct phy_device *phy) { @@ -29,7 +29,7 @@ Signed-off-by: Jakub Kicinski struct mt7530_priv *priv = ds->priv; mutex_lock(&priv->reg_mutex); -@@ -1056,7 +1057,11 @@ mt7530_port_enable(struct dsa_switch *ds +@@ -1101,7 +1102,11 @@ mt7530_port_enable(struct dsa_switch *ds * restore the port matrix if the port is the member of a certain * bridge. */ @@ -42,7 +42,7 @@ Signed-off-by: Jakub Kicinski priv->ports[port].enable = true; mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK, priv->ports[port].pm); -@@ -1204,7 +1209,8 @@ mt7530_port_bridge_join(struct dsa_switc +@@ -1249,7 +1254,8 @@ mt7530_port_bridge_join(struct dsa_switc struct net_device *bridge) { struct dsa_port *dp = dsa_to_port(ds, port), *other_dp; @@ -52,7 +52,7 @@ Signed-off-by: Jakub Kicinski struct mt7530_priv *priv = ds->priv; mutex_lock(&priv->reg_mutex); -@@ -1281,9 +1287,12 @@ mt7530_port_set_vlan_unaware(struct dsa_ +@@ -1326,9 +1332,12 @@ mt7530_port_set_vlan_unaware(struct dsa_ * the CPU port get out of VLAN filtering mode. */ if (all_user_ports_removed) { @@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski | PVC_EG_TAG(MT7530_VLAN_EG_CONSISTENT)); } } -@@ -1333,6 +1342,7 @@ mt7530_port_bridge_leave(struct dsa_swit +@@ -1378,6 +1387,7 @@ mt7530_port_bridge_leave(struct dsa_swit struct net_device *bridge) { struct dsa_port *dp = dsa_to_port(ds, port), *other_dp; @@ -75,7 +75,7 @@ Signed-off-by: Jakub Kicinski struct mt7530_priv *priv = ds->priv; mutex_lock(&priv->reg_mutex); -@@ -1361,8 +1371,8 @@ mt7530_port_bridge_leave(struct dsa_swit +@@ -1406,8 +1416,8 @@ mt7530_port_bridge_leave(struct dsa_swit */ if (priv->ports[port].enable) mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK, @@ -86,7 +86,7 @@ Signed-off-by: Jakub Kicinski /* When a port is removed from the bridge, the port would be set up * back to the default as is at initial boot which is a VLAN-unaware -@@ -1525,6 +1535,9 @@ static int +@@ -1570,6 +1580,9 @@ static int mt7530_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering, struct netlink_ext_ack *extack) { @@ -96,7 +96,7 @@ Signed-off-by: Jakub Kicinski if (vlan_filtering) { /* The port is being kept as VLAN-unaware port when bridge is * set up with vlan_filtering not being set, Otherwise, the -@@ -1532,7 +1545,7 @@ mt7530_port_vlan_filtering(struct dsa_sw +@@ -1577,7 +1590,7 @@ mt7530_port_vlan_filtering(struct dsa_sw * for becoming a VLAN-aware port. */ mt7530_port_set_vlan_aware(ds, port); diff --git a/target/linux/generic/backport-5.15/706-00-v6.0-net-ethernet-mtk_eth_soc-rely-on-page_pool-for-singl.patch b/target/linux/generic/backport-5.15/706-00-v6.0-net-ethernet-mtk_eth_soc-rely-on-page_pool-for-singl.patch index c5501fb04023da..f022f7bf540f57 100644 --- a/target/linux/generic/backport-5.15/706-00-v6.0-net-ethernet-mtk_eth_soc-rely-on-page_pool-for-singl.patch +++ b/target/linux/generic/backport-5.15/706-00-v6.0-net-ethernet-mtk_eth_soc-rely-on-page_pool-for-singl.patch @@ -27,7 +27,7 @@ Signed-off-by: David S. Miller MediaTek SoC family. --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1389,6 +1389,68 @@ static void mtk_update_rx_cpu_idx(struct +@@ -1388,6 +1388,68 @@ static void mtk_update_rx_cpu_idx(struct } } @@ -96,7 +96,7 @@ Signed-off-by: David S. Miller static int mtk_poll_rx(struct napi_struct *napi, int budget, struct mtk_eth *eth) { -@@ -1402,9 +1464,9 @@ static int mtk_poll_rx(struct napi_struc +@@ -1401,9 +1463,9 @@ static int mtk_poll_rx(struct napi_struc while (done < budget) { unsigned int pktlen, *rxdcsum; @@ -107,7 +107,7 @@ Signed-off-by: David S. Miller int mac = 0; ring = mtk_get_rx_ring(eth); -@@ -1435,36 +1497,54 @@ static int mtk_poll_rx(struct napi_struc +@@ -1434,36 +1496,54 @@ static int mtk_poll_rx(struct napi_struc goto release_desc; /* alloc new buffer */ @@ -184,7 +184,7 @@ Signed-off-by: David S. Miller pktlen = RX_DMA_GET_PLEN0(trxd.rxd2); skb->dev = netdev; -@@ -1518,7 +1598,6 @@ static int mtk_poll_rx(struct napi_struc +@@ -1517,7 +1597,6 @@ static int mtk_poll_rx(struct napi_struc skip_rx: ring->data[idx] = new_data; rxd->rxd1 = (unsigned int)dma_addr; @@ -192,7 +192,7 @@ Signed-off-by: David S. Miller release_desc: if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) rxd->rxd2 = RX_DMA_LSO; -@@ -1526,7 +1605,6 @@ release_desc: +@@ -1525,7 +1604,6 @@ release_desc: rxd->rxd2 = RX_DMA_PREP_PLEN0(ring->buf_size); ring->calc_idx = idx; @@ -200,7 +200,7 @@ Signed-off-by: David S. Miller done++; } -@@ -1890,13 +1968,15 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1889,13 +1967,15 @@ static int mtk_rx_alloc(struct mtk_eth * if (!ring->data) return -ENOMEM; @@ -223,7 +223,7 @@ Signed-off-by: David S. Miller } ring->dma = dma_alloc_coherent(eth->dma_dev, -@@ -1907,16 +1987,33 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1906,16 +1986,33 @@ static int mtk_rx_alloc(struct mtk_eth * for (i = 0; i < rx_dma_size; i++) { struct mtk_rx_dma_v2 *rxd; @@ -264,7 +264,7 @@ Signed-off-by: David S. Miller if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) rxd->rxd2 = RX_DMA_LSO; -@@ -1932,6 +2029,7 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1931,6 +2028,7 @@ static int mtk_rx_alloc(struct mtk_eth * rxd->rxd8 = 0; } } @@ -272,7 +272,7 @@ Signed-off-by: David S. Miller ring->dma_size = rx_dma_size; ring->calc_idx_update = false; ring->calc_idx = rx_dma_size - 1; -@@ -1983,7 +2081,7 @@ static void mtk_rx_clean(struct mtk_eth +@@ -1982,7 +2080,7 @@ static void mtk_rx_clean(struct mtk_eth dma_unmap_single(eth->dma_dev, rxd->rxd1, ring->buf_size, DMA_FROM_DEVICE); @@ -281,7 +281,7 @@ Signed-off-by: David S. Miller } kfree(ring->data); ring->data = NULL; -@@ -1995,6 +2093,13 @@ static void mtk_rx_clean(struct mtk_eth +@@ -1994,6 +2092,13 @@ static void mtk_rx_clean(struct mtk_eth ring->dma, ring->phys); ring->dma = NULL; } diff --git a/target/linux/generic/backport-5.15/706-01-v6.0-net-ethernet-mtk_eth_soc-add-basic-XDP-support.patch b/target/linux/generic/backport-5.15/706-01-v6.0-net-ethernet-mtk_eth_soc-add-basic-XDP-support.patch index 49b2355ce40848..94efa929860025 100644 --- a/target/linux/generic/backport-5.15/706-01-v6.0-net-ethernet-mtk_eth_soc-add-basic-XDP-support.patch +++ b/target/linux/generic/backport-5.15/706-01-v6.0-net-ethernet-mtk_eth_soc-add-basic-XDP-support.patch @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1389,6 +1389,11 @@ static void mtk_update_rx_cpu_idx(struct +@@ -1388,6 +1388,11 @@ static void mtk_update_rx_cpu_idx(struct } } @@ -30,7 +30,7 @@ Signed-off-by: David S. Miller static struct page_pool *mtk_create_page_pool(struct mtk_eth *eth, struct xdp_rxq_info *xdp_q, int id, int size) -@@ -1451,11 +1456,52 @@ static void mtk_rx_put_buff(struct mtk_r +@@ -1450,11 +1455,52 @@ static void mtk_rx_put_buff(struct mtk_r skb_free_frag(data); } @@ -83,7 +83,7 @@ Signed-off-by: David S. Miller int idx; struct sk_buff *skb; u8 *data, *new_data; -@@ -1464,9 +1510,9 @@ static int mtk_poll_rx(struct napi_struc +@@ -1463,9 +1509,9 @@ static int mtk_poll_rx(struct napi_struc while (done < budget) { unsigned int pktlen, *rxdcsum; @@ -94,7 +94,7 @@ Signed-off-by: David S. Miller int mac = 0; ring = mtk_get_rx_ring(eth); -@@ -1496,8 +1542,14 @@ static int mtk_poll_rx(struct napi_struc +@@ -1495,8 +1541,14 @@ static int mtk_poll_rx(struct napi_struc if (unlikely(test_bit(MTK_RESETTING, ð->state))) goto release_desc; @@ -109,7 +109,7 @@ Signed-off-by: David S. Miller new_data = mtk_page_pool_get_buff(ring->page_pool, &dma_addr, GFP_ATOMIC); -@@ -1505,6 +1557,34 @@ static int mtk_poll_rx(struct napi_struc +@@ -1504,6 +1556,34 @@ static int mtk_poll_rx(struct napi_struc netdev->stats.rx_dropped++; goto release_desc; } @@ -144,7 +144,7 @@ Signed-off-by: David S. Miller } else { if (ring->frag_size <= PAGE_SIZE) new_data = napi_alloc_frag(ring->frag_size); -@@ -1528,27 +1608,20 @@ static int mtk_poll_rx(struct napi_struc +@@ -1527,27 +1607,20 @@ static int mtk_poll_rx(struct napi_struc dma_unmap_single(eth->dma_dev, trxd.rxd1, ring->buf_size, DMA_FROM_DEVICE); @@ -181,7 +181,7 @@ Signed-off-by: David S. Miller if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) rxdcsum = &trxd.rxd3; -@@ -1560,7 +1633,6 @@ static int mtk_poll_rx(struct napi_struc +@@ -1559,7 +1632,6 @@ static int mtk_poll_rx(struct napi_struc else skb_checksum_none_assert(skb); skb->protocol = eth_type_trans(skb, netdev); @@ -189,7 +189,7 @@ Signed-off-by: David S. Miller hash = trxd.rxd4 & MTK_RXD4_FOE_ENTRY; if (hash != MTK_RXD4_FOE_ENTRY) { -@@ -1623,6 +1695,9 @@ rx_done: +@@ -1622,6 +1694,9 @@ rx_done: &dim_sample); net_dim(ð->rx_dim, dim_sample); @@ -199,7 +199,7 @@ Signed-off-by: David S. Miller return done; } -@@ -1968,7 +2043,7 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -1967,7 +2042,7 @@ static int mtk_rx_alloc(struct mtk_eth * if (!ring->data) return -ENOMEM; @@ -208,7 +208,7 @@ Signed-off-by: David S. Miller struct page_pool *pp; pp = mtk_create_page_pool(eth, &ring->xdp_q, ring_no, -@@ -2713,6 +2788,48 @@ static int mtk_stop(struct net_device *d +@@ -2712,6 +2787,48 @@ static int mtk_stop(struct net_device *d return 0; } @@ -257,7 +257,7 @@ Signed-off-by: David S. Miller static void ethsys_reset(struct mtk_eth *eth, u32 reset_bits) { regmap_update_bits(eth->ethsys, ETHSYS_RSTCTRL, -@@ -2991,6 +3108,12 @@ static int mtk_change_mtu(struct net_dev +@@ -2990,6 +3107,12 @@ static int mtk_change_mtu(struct net_dev struct mtk_eth *eth = mac->hw; u32 mcr_cur, mcr_new; @@ -270,7 +270,7 @@ Signed-off-by: David S. Miller if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) { mcr_cur = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); mcr_new = mcr_cur & ~MAC_MCR_MAX_RX_MASK; -@@ -3317,6 +3440,7 @@ static const struct net_device_ops mtk_n +@@ -3316,6 +3439,7 @@ static const struct net_device_ops mtk_n .ndo_poll_controller = mtk_poll_controller, #endif .ndo_setup_tc = mtk_eth_setup_tc, diff --git a/target/linux/generic/backport-5.15/706-02-v6.0-net-ethernet-mtk_eth_soc-introduce-xdp-ethtool-count.patch b/target/linux/generic/backport-5.15/706-02-v6.0-net-ethernet-mtk_eth_soc-introduce-xdp-ethtool-count.patch index cf4d658684ba82..7bb4222fef5413 100644 --- a/target/linux/generic/backport-5.15/706-02-v6.0-net-ethernet-mtk_eth_soc-introduce-xdp-ethtool-count.patch +++ b/target/linux/generic/backport-5.15/706-02-v6.0-net-ethernet-mtk_eth_soc-introduce-xdp-ethtool-count.patch @@ -39,7 +39,7 @@ Signed-off-by: David S. Miller }; static const char * const mtk_clks_source_name[] = { -@@ -1459,6 +1470,9 @@ static void mtk_rx_put_buff(struct mtk_r +@@ -1458,6 +1469,9 @@ static void mtk_rx_put_buff(struct mtk_r static u32 mtk_xdp_run(struct mtk_eth *eth, struct mtk_rx_ring *ring, struct xdp_buff *xdp, struct net_device *dev) { @@ -49,7 +49,7 @@ Signed-off-by: David S. Miller struct bpf_prog *prog; u32 act = XDP_PASS; -@@ -1471,13 +1485,16 @@ static u32 mtk_xdp_run(struct mtk_eth *e +@@ -1470,13 +1484,16 @@ static u32 mtk_xdp_run(struct mtk_eth *e act = bpf_prog_run_xdp(prog, xdp); switch (act) { case XDP_PASS: @@ -68,7 +68,7 @@ Signed-off-by: David S. Miller default: bpf_warn_invalid_xdp_action(act); fallthrough; -@@ -1490,6 +1507,11 @@ static u32 mtk_xdp_run(struct mtk_eth *e +@@ -1489,6 +1506,11 @@ static u32 mtk_xdp_run(struct mtk_eth *e page_pool_put_full_page(ring->page_pool, virt_to_head_page(xdp->data), true); diff --git a/target/linux/generic/backport-5.15/706-03-v6.0-net-ethernet-mtk_eth_soc-add-xmit-XDP-support.patch b/target/linux/generic/backport-5.15/706-03-v6.0-net-ethernet-mtk_eth_soc-add-xmit-XDP-support.patch index f774f9875d9dea..deb06d489265b4 100644 --- a/target/linux/generic/backport-5.15/706-03-v6.0-net-ethernet-mtk_eth_soc-add-xmit-XDP-support.patch +++ b/target/linux/generic/backport-5.15/706-03-v6.0-net-ethernet-mtk_eth_soc-add-xmit-XDP-support.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -988,15 +988,26 @@ static void mtk_tx_unmap(struct mtk_eth +@@ -987,15 +987,26 @@ static void mtk_tx_unmap(struct mtk_eth } } @@ -49,7 +49,7 @@ Signed-off-by: David S. Miller } static void setup_tx_buf(struct mtk_eth *eth, struct mtk_tx_buf *tx_buf, -@@ -1013,7 +1024,7 @@ static void setup_tx_buf(struct mtk_eth +@@ -1012,7 +1023,7 @@ static void setup_tx_buf(struct mtk_eth dma_unmap_addr_set(tx_buf, dma_addr1, mapped_addr); dma_unmap_len_set(tx_buf, dma_len1, size); } else { @@ -58,7 +58,7 @@ Signed-off-by: David S. Miller txd->txd1 = mapped_addr; txd->txd2 = TX_DMA_PLEN0(size); dma_unmap_addr_set(tx_buf, dma_addr0, mapped_addr); -@@ -1189,7 +1200,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1188,7 +1199,7 @@ static int mtk_tx_map(struct sk_buff *sk soc->txrx.txd_size); if (new_desc) memset(tx_buf, 0, sizeof(*tx_buf)); @@ -67,7 +67,7 @@ Signed-off-by: David S. Miller tx_buf->flags |= MTK_TX_FLAGS_PAGE0; tx_buf->flags |= (!mac->id) ? MTK_TX_FLAGS_FPORT0 : MTK_TX_FLAGS_FPORT1; -@@ -1203,7 +1214,8 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1202,7 +1213,8 @@ static int mtk_tx_map(struct sk_buff *sk } /* store skb to cleanup */ @@ -77,7 +77,7 @@ Signed-off-by: David S. Miller if (!MTK_HAS_CAPS(soc->caps, MTK_QDMA)) { if (k & 0x1) -@@ -1415,13 +1427,14 @@ static struct page_pool *mtk_create_page +@@ -1414,13 +1426,14 @@ static struct page_pool *mtk_create_page .pool_size = size, .nid = NUMA_NO_NODE, .dev = eth->dma_dev, @@ -93,7 +93,7 @@ Signed-off-by: David S. Miller pp = page_pool_create(&pp_params); if (IS_ERR(pp)) return pp; -@@ -1467,6 +1480,122 @@ static void mtk_rx_put_buff(struct mtk_r +@@ -1466,6 +1479,122 @@ static void mtk_rx_put_buff(struct mtk_r skb_free_frag(data); } @@ -216,7 +216,7 @@ Signed-off-by: David S. Miller static u32 mtk_xdp_run(struct mtk_eth *eth, struct mtk_rx_ring *ring, struct xdp_buff *xdp, struct net_device *dev) { -@@ -1495,6 +1624,18 @@ static u32 mtk_xdp_run(struct mtk_eth *e +@@ -1494,6 +1623,18 @@ static u32 mtk_xdp_run(struct mtk_eth *e count = &hw_stats->xdp_stats.rx_xdp_redirect; goto update_stats; @@ -235,7 +235,7 @@ Signed-off-by: David S. Miller default: bpf_warn_invalid_xdp_action(act); fallthrough; -@@ -1728,9 +1869,8 @@ static int mtk_poll_tx_qdma(struct mtk_e +@@ -1727,9 +1868,8 @@ static int mtk_poll_tx_qdma(struct mtk_e { const struct mtk_reg_map *reg_map = eth->soc->reg_map; struct mtk_tx_ring *ring = ð->tx_ring; @@ -246,7 +246,7 @@ Signed-off-by: David S. Miller u32 cpu, dma; cpu = ring->last_free_ptr; -@@ -1751,15 +1891,21 @@ static int mtk_poll_tx_qdma(struct mtk_e +@@ -1750,15 +1890,21 @@ static int mtk_poll_tx_qdma(struct mtk_e if (tx_buf->flags & MTK_TX_FLAGS_FPORT1) mac = 1; @@ -271,7 +271,7 @@ Signed-off-by: David S. Miller mtk_tx_unmap(eth, tx_buf, true); ring->last_free = desc; -@@ -1778,9 +1924,8 @@ static int mtk_poll_tx_pdma(struct mtk_e +@@ -1777,9 +1923,8 @@ static int mtk_poll_tx_pdma(struct mtk_e unsigned int *done, unsigned int *bytes) { struct mtk_tx_ring *ring = ð->tx_ring; @@ -282,7 +282,7 @@ Signed-off-by: David S. Miller u32 cpu, dma; cpu = ring->cpu_idx; -@@ -1788,14 +1933,18 @@ static int mtk_poll_tx_pdma(struct mtk_e +@@ -1787,14 +1932,18 @@ static int mtk_poll_tx_pdma(struct mtk_e while ((cpu != dma) && budget) { tx_buf = &ring->buf[cpu]; @@ -304,7 +304,7 @@ Signed-off-by: David S. Miller } mtk_tx_unmap(eth, tx_buf, true); -@@ -3463,6 +3612,7 @@ static const struct net_device_ops mtk_n +@@ -3462,6 +3611,7 @@ static const struct net_device_ops mtk_n #endif .ndo_setup_tc = mtk_eth_setup_tc, .ndo_bpf = mtk_xdp, diff --git a/target/linux/generic/backport-5.15/706-04-v6.0-net-ethernet-mtk_eth_soc-add-support-for-page_pool_g.patch b/target/linux/generic/backport-5.15/706-04-v6.0-net-ethernet-mtk_eth_soc-add-support-for-page_pool_g.patch index d3d95a34b80f0d..4707aacd9d3269 100644 --- a/target/linux/generic/backport-5.15/706-04-v6.0-net-ethernet-mtk_eth_soc-add-support-for-page_pool_g.patch +++ b/target/linux/generic/backport-5.15/706-04-v6.0-net-ethernet-mtk_eth_soc-add-support-for-page_pool_g.patch @@ -26,7 +26,7 @@ Signed-off-by: David S. Miller MediaTek SoC family. --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3474,11 +3474,18 @@ static void mtk_get_strings(struct net_d +@@ -3473,11 +3473,18 @@ static void mtk_get_strings(struct net_d int i; switch (stringset) { @@ -46,7 +46,7 @@ Signed-off-by: David S. Miller break; } } -@@ -3486,13 +3493,35 @@ static void mtk_get_strings(struct net_d +@@ -3485,13 +3492,35 @@ static void mtk_get_strings(struct net_d static int mtk_get_sset_count(struct net_device *dev, int sset) { switch (sset) { @@ -84,7 +84,7 @@ Signed-off-by: David S. Miller static void mtk_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats, u64 *data) { -@@ -3520,6 +3549,8 @@ static void mtk_get_ethtool_stats(struct +@@ -3519,6 +3548,8 @@ static void mtk_get_ethtool_stats(struct for (i = 0; i < ARRAY_SIZE(mtk_ethtool_stats); i++) *data_dst++ = *(data_src + mtk_ethtool_stats[i].offset); diff --git a/target/linux/generic/backport-5.15/706-05-v6.0-net-ethernet-mtk_eth_soc-introduce-mtk_xdp_frame_map.patch b/target/linux/generic/backport-5.15/706-05-v6.0-net-ethernet-mtk_eth_soc-introduce-mtk_xdp_frame_map.patch index 8e6895fe97fcf6..33a76166521af7 100644 --- a/target/linux/generic/backport-5.15/706-05-v6.0-net-ethernet-mtk_eth_soc-introduce-mtk_xdp_frame_map.patch +++ b/target/linux/generic/backport-5.15/706-05-v6.0-net-ethernet-mtk_eth_soc-introduce-mtk_xdp_frame_map.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1480,6 +1480,41 @@ static void mtk_rx_put_buff(struct mtk_r +@@ -1479,6 +1479,41 @@ static void mtk_rx_put_buff(struct mtk_r skb_free_frag(data); } @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller static int mtk_xdp_submit_frame(struct mtk_eth *eth, struct xdp_frame *xdpf, struct net_device *dev, bool dma_map) { -@@ -1490,9 +1525,8 @@ static int mtk_xdp_submit_frame(struct m +@@ -1489,9 +1524,8 @@ static int mtk_xdp_submit_frame(struct m .first = true, .last = true, }; @@ -68,7 +68,7 @@ Signed-off-by: David S. Miller struct mtk_tx_buf *tx_buf; if (unlikely(test_bit(MTK_RESETTING, ð->state))) -@@ -1512,36 +1546,18 @@ static int mtk_xdp_submit_frame(struct m +@@ -1511,36 +1545,18 @@ static int mtk_xdp_submit_frame(struct m tx_buf = mtk_desc_to_tx_buf(ring, txd, soc->txrx.txd_size); memset(tx_buf, 0, sizeof(*tx_buf)); diff --git a/target/linux/generic/backport-5.15/706-06-v6.0-net-ethernet-mtk_eth_soc-introduce-xdp-multi-frag-su.patch b/target/linux/generic/backport-5.15/706-06-v6.0-net-ethernet-mtk_eth_soc-introduce-xdp-multi-frag-su.patch index 23e4a4dfcbf412..e75861bc829344 100644 --- a/target/linux/generic/backport-5.15/706-06-v6.0-net-ethernet-mtk_eth_soc-introduce-xdp-multi-frag-su.patch +++ b/target/linux/generic/backport-5.15/706-06-v6.0-net-ethernet-mtk_eth_soc-introduce-xdp-multi-frag-su.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -988,23 +988,22 @@ static void mtk_tx_unmap(struct mtk_eth +@@ -987,23 +987,22 @@ static void mtk_tx_unmap(struct mtk_eth } } @@ -47,7 +47,7 @@ Signed-off-by: David S. Miller } tx_buf->flags = 0; tx_buf->data = NULL; -@@ -1507,6 +1506,8 @@ static int mtk_xdp_frame_map(struct mtk_ +@@ -1506,6 +1505,8 @@ static int mtk_xdp_frame_map(struct mtk_ mtk_tx_set_dma_desc(dev, txd, txd_info); tx_buf->flags |= !mac->id ? MTK_TX_FLAGS_FPORT0 : MTK_TX_FLAGS_FPORT1; @@ -56,7 +56,7 @@ Signed-off-by: David S. Miller txd_pdma = qdma_to_pdma(ring, txd); setup_tx_buf(eth, tx_buf, txd_pdma, txd_info->addr, txd_info->size, -@@ -1518,43 +1519,69 @@ static int mtk_xdp_frame_map(struct mtk_ +@@ -1517,43 +1518,69 @@ static int mtk_xdp_frame_map(struct mtk_ static int mtk_xdp_submit_frame(struct mtk_eth *eth, struct xdp_frame *xdpf, struct net_device *dev, bool dma_map) { @@ -140,7 +140,7 @@ Signed-off-by: David S. Miller if (!MTK_HAS_CAPS(soc->caps, MTK_QDMA)) { txd_pdma = qdma_to_pdma(ring, txd); -@@ -1581,7 +1608,24 @@ static int mtk_xdp_submit_frame(struct m +@@ -1580,7 +1607,24 @@ static int mtk_xdp_submit_frame(struct m mtk_w32(eth, NEXT_DESP_IDX(idx, ring->dma_size), MT7628_TX_CTX_IDX0); } @@ -166,7 +166,7 @@ Signed-off-by: David S. Miller spin_unlock(ð->page_lock); return err; -@@ -1910,18 +1954,15 @@ static int mtk_poll_tx_qdma(struct mtk_e +@@ -1909,18 +1953,15 @@ static int mtk_poll_tx_qdma(struct mtk_e if (!tx_buf->data) break; @@ -191,7 +191,7 @@ Signed-off-by: David S. Miller mtk_tx_unmap(eth, tx_buf, true); ring->last_free = desc; -@@ -1952,17 +1993,15 @@ static int mtk_poll_tx_pdma(struct mtk_e +@@ -1951,17 +1992,15 @@ static int mtk_poll_tx_pdma(struct mtk_e if (!tx_buf->data) break; diff --git a/target/linux/generic/backport-5.15/710-v6.0-net-ethernet-mtk_eth_soc-fix-hw-hash-reporting-for-M.patch b/target/linux/generic/backport-5.15/710-v6.0-net-ethernet-mtk_eth_soc-fix-hw-hash-reporting-for-M.patch index 817b3e10fdf155..a3842d35f56e95 100644 --- a/target/linux/generic/backport-5.15/710-v6.0-net-ethernet-mtk_eth_soc-fix-hw-hash-reporting-for-M.patch +++ b/target/linux/generic/backport-5.15/710-v6.0-net-ethernet-mtk_eth_soc-fix-hw-hash-reporting-for-M.patch @@ -18,7 +18,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1846,10 +1846,19 @@ static int mtk_poll_rx(struct napi_struc +@@ -1845,10 +1845,19 @@ static int mtk_poll_rx(struct napi_struc skb->dev = netdev; bytes += skb->len; @@ -40,7 +40,7 @@ Signed-off-by: Paolo Abeni if (*rxdcsum & eth->soc->txrx.rx_dma_l4_valid) skb->ip_summed = CHECKSUM_UNNECESSARY; -@@ -1857,16 +1866,9 @@ static int mtk_poll_rx(struct napi_struc +@@ -1856,16 +1865,9 @@ static int mtk_poll_rx(struct napi_struc skb_checksum_none_assert(skb); skb->protocol = eth_type_trans(skb, netdev); diff --git a/target/linux/generic/backport-5.15/712-v6.0-net-ethernet-mtk_eth_soc-enable-XDP-support-just-for.patch b/target/linux/generic/backport-5.15/712-v6.0-net-ethernet-mtk_eth_soc-enable-XDP-support-just-for.patch index f6fc7340794bcd..f4eb030ef69462 100644 --- a/target/linux/generic/backport-5.15/712-v6.0-net-ethernet-mtk_eth_soc-enable-XDP-support-just-for.patch +++ b/target/linux/generic/backport-5.15/712-v6.0-net-ethernet-mtk_eth_soc-enable-XDP-support-just-for.patch @@ -24,7 +24,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1413,7 +1413,7 @@ static void mtk_update_rx_cpu_idx(struct +@@ -1412,7 +1412,7 @@ static void mtk_update_rx_cpu_idx(struct static bool mtk_page_pool_enabled(struct mtk_eth *eth) { diff --git a/target/linux/generic/backport-5.15/713-v6.0-net-ethernet-mtk_eth_soc-move-gdma_to_ppe-and-ppe_ba.patch b/target/linux/generic/backport-5.15/713-v6.0-net-ethernet-mtk_eth_soc-move-gdma_to_ppe-and-ppe_ba.patch index 66e2778709dd30..be6da9b4af0207 100644 --- a/target/linux/generic/backport-5.15/713-v6.0-net-ethernet-mtk_eth_soc-move-gdma_to_ppe-and-ppe_ba.patch +++ b/target/linux/generic/backport-5.15/713-v6.0-net-ethernet-mtk_eth_soc-move-gdma_to_ppe-and-ppe_ba.patch @@ -57,7 +57,7 @@ Signed-off-by: Lorenzo Bianconi }; /* strings used by ethtool */ -@@ -2928,6 +2932,7 @@ static int mtk_open(struct net_device *d +@@ -2927,6 +2931,7 @@ static int mtk_open(struct net_device *d /* we run 2 netdevs on the same dma ring so we only bring it up once */ if (!refcount_read(ð->dma_refcnt)) { @@ -65,7 +65,7 @@ Signed-off-by: Lorenzo Bianconi u32 gdm_config = MTK_GDMA_TO_PDMA; int err; -@@ -2937,15 +2942,15 @@ static int mtk_open(struct net_device *d +@@ -2936,15 +2941,15 @@ static int mtk_open(struct net_device *d return err; } @@ -84,7 +84,7 @@ Signed-off-by: Lorenzo Bianconi refcount_set(ð->dma_refcnt, 1); } else -@@ -4044,7 +4049,9 @@ static int mtk_probe(struct platform_dev +@@ -4043,7 +4048,9 @@ static int mtk_probe(struct platform_dev } if (eth->soc->offload_version) { diff --git a/target/linux/generic/backport-5.15/714-v6.0-net-ethernet-mtk_eth_soc-move-ppe-table-hash-offset-.patch b/target/linux/generic/backport-5.15/714-v6.0-net-ethernet-mtk_eth_soc-move-ppe-table-hash-offset-.patch index 1dfcc862d611c4..76f954f6266407 100644 --- a/target/linux/generic/backport-5.15/714-v6.0-net-ethernet-mtk_eth_soc-move-ppe-table-hash-offset-.patch +++ b/target/linux/generic/backport-5.15/714-v6.0-net-ethernet-mtk_eth_soc-move-ppe-table-hash-offset-.patch @@ -44,7 +44,7 @@ Signed-off-by: Lorenzo Bianconi --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4147,6 +4147,7 @@ static const struct mtk_soc_data mt7621_ +@@ -4146,6 +4146,7 @@ static const struct mtk_soc_data mt7621_ .required_clks = MT7621_CLKS_BITMAP, .required_pctl = false, .offload_version = 2, @@ -52,7 +52,7 @@ Signed-off-by: Lorenzo Bianconi .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4165,6 +4166,7 @@ static const struct mtk_soc_data mt7622_ +@@ -4164,6 +4165,7 @@ static const struct mtk_soc_data mt7622_ .required_clks = MT7622_CLKS_BITMAP, .required_pctl = false, .offload_version = 2, @@ -60,7 +60,7 @@ Signed-off-by: Lorenzo Bianconi .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4182,6 +4184,7 @@ static const struct mtk_soc_data mt7623_ +@@ -4181,6 +4183,7 @@ static const struct mtk_soc_data mt7623_ .required_clks = MT7623_CLKS_BITMAP, .required_pctl = true, .offload_version = 2, @@ -68,7 +68,7 @@ Signed-off-by: Lorenzo Bianconi .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4215,6 +4218,7 @@ static const struct mtk_soc_data mt7986_ +@@ -4214,6 +4217,7 @@ static const struct mtk_soc_data mt7986_ .caps = MT7986_CAPS, .required_clks = MT7986_CLKS_BITMAP, .required_pctl = false, diff --git a/target/linux/generic/backport-5.15/715-v6.0-net-ethernet-mtk_eth_soc-add-the-capability-to-run-m.patch b/target/linux/generic/backport-5.15/715-v6.0-net-ethernet-mtk_eth_soc-add-the-capability-to-run-m.patch index e779d3b344e8f8..fb64da3d7a6a40 100644 --- a/target/linux/generic/backport-5.15/715-v6.0-net-ethernet-mtk_eth_soc-add-the-capability-to-run-m.patch +++ b/target/linux/generic/backport-5.15/715-v6.0-net-ethernet-mtk_eth_soc-add-the-capability-to-run-m.patch @@ -48,7 +48,7 @@ Signed-off-by: Lorenzo Bianconi --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1872,7 +1872,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1871,7 +1871,7 @@ static int mtk_poll_rx(struct napi_struc reason = FIELD_GET(MTK_RXD4_PPE_CPU_REASON, trxd.rxd4); if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED) @@ -57,7 +57,7 @@ Signed-off-by: Lorenzo Bianconi if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) { if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { -@@ -2933,7 +2933,8 @@ static int mtk_open(struct net_device *d +@@ -2932,7 +2932,8 @@ static int mtk_open(struct net_device *d /* we run 2 netdevs on the same dma ring so we only bring it up once */ if (!refcount_read(ð->dma_refcnt)) { const struct mtk_soc_data *soc = eth->soc; @@ -67,7 +67,7 @@ Signed-off-by: Lorenzo Bianconi int err; err = mtk_start_dma(eth); -@@ -2942,8 +2943,11 @@ static int mtk_open(struct net_device *d +@@ -2941,8 +2942,11 @@ static int mtk_open(struct net_device *d return err; } @@ -81,7 +81,7 @@ Signed-off-by: Lorenzo Bianconi mtk_gdm_config(eth, gdm_config); -@@ -2988,6 +2992,7 @@ static int mtk_stop(struct net_device *d +@@ -2987,6 +2991,7 @@ static int mtk_stop(struct net_device *d { struct mtk_mac *mac = netdev_priv(dev); struct mtk_eth *eth = mac->hw; @@ -89,7 +89,7 @@ Signed-off-by: Lorenzo Bianconi phylink_stop(mac->phylink); -@@ -3015,8 +3020,8 @@ static int mtk_stop(struct net_device *d +@@ -3014,8 +3019,8 @@ static int mtk_stop(struct net_device *d mtk_dma_free(eth); @@ -100,7 +100,7 @@ Signed-off-by: Lorenzo Bianconi return 0; } -@@ -4049,12 +4054,19 @@ static int mtk_probe(struct platform_dev +@@ -4048,12 +4053,19 @@ static int mtk_probe(struct platform_dev } if (eth->soc->offload_version) { diff --git a/target/linux/generic/backport-5.15/716-v6.0-net-ethernet-mtk_eth_soc-move-wdma_base-definitions-.patch b/target/linux/generic/backport-5.15/716-v6.0-net-ethernet-mtk_eth_soc-move-wdma_base-definitions-.patch index f93285642d1c59..6a58334c328ece 100644 --- a/target/linux/generic/backport-5.15/716-v6.0-net-ethernet-mtk_eth_soc-move-wdma_base-definitions-.patch +++ b/target/linux/generic/backport-5.15/716-v6.0-net-ethernet-mtk_eth_soc-move-wdma_base-definitions-.patch @@ -39,7 +39,7 @@ Signed-off-by: Lorenzo Bianconi }; /* strings used by ethtool */ -@@ -3966,16 +3974,12 @@ static int mtk_probe(struct platform_dev +@@ -3965,16 +3973,12 @@ static int mtk_probe(struct platform_dev for (i = 0;; i++) { struct device_node *np = of_parse_phandle(pdev->dev.of_node, "mediatek,wed", i); diff --git a/target/linux/generic/backport-5.15/717-v6.0-net-ethernet-mtk_eth_soc-add-foe_entry_size-to-mtk_e.patch b/target/linux/generic/backport-5.15/717-v6.0-net-ethernet-mtk_eth_soc-add-foe_entry_size-to-mtk_e.patch index 656a60b15a2ed6..de1f21727204b5 100644 --- a/target/linux/generic/backport-5.15/717-v6.0-net-ethernet-mtk_eth_soc-add-foe_entry_size-to-mtk_e.patch +++ b/target/linux/generic/backport-5.15/717-v6.0-net-ethernet-mtk_eth_soc-add-foe_entry_size-to-mtk_e.patch @@ -21,7 +21,7 @@ Signed-off-by: Lorenzo Bianconi --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4164,6 +4164,7 @@ static const struct mtk_soc_data mt7621_ +@@ -4163,6 +4163,7 @@ static const struct mtk_soc_data mt7621_ .required_pctl = false, .offload_version = 2, .hash_offset = 2, @@ -29,7 +29,7 @@ Signed-off-by: Lorenzo Bianconi .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4183,6 +4184,7 @@ static const struct mtk_soc_data mt7622_ +@@ -4182,6 +4183,7 @@ static const struct mtk_soc_data mt7622_ .required_pctl = false, .offload_version = 2, .hash_offset = 2, @@ -37,7 +37,7 @@ Signed-off-by: Lorenzo Bianconi .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4201,6 +4203,7 @@ static const struct mtk_soc_data mt7623_ +@@ -4200,6 +4202,7 @@ static const struct mtk_soc_data mt7623_ .required_pctl = true, .offload_version = 2, .hash_offset = 2, diff --git a/target/linux/generic/backport-5.15/721-v6.0-net-ethernet-mtk_eth_wed-add-wed-support-for-mt7986-.patch b/target/linux/generic/backport-5.15/721-v6.0-net-ethernet-mtk_eth_wed-add-wed-support-for-mt7986-.patch index f28997c7b2d5dc..00255cdcf6d7ac 100644 --- a/target/linux/generic/backport-5.15/721-v6.0-net-ethernet-mtk_eth_wed-add-wed-support-for-mt7986-.patch +++ b/target/linux/generic/backport-5.15/721-v6.0-net-ethernet-mtk_eth_wed-add-wed-support-for-mt7986-.patch @@ -26,7 +26,7 @@ Signed-off-by: Lorenzo Bianconi --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3891,6 +3891,7 @@ void mtk_eth_set_dma_device(struct mtk_e +@@ -3890,6 +3890,7 @@ void mtk_eth_set_dma_device(struct mtk_e static int mtk_probe(struct platform_device *pdev) { @@ -34,7 +34,7 @@ Signed-off-by: Lorenzo Bianconi struct device_node *mac_np; struct mtk_eth *eth; int err, i; -@@ -3971,16 +3972,31 @@ static int mtk_probe(struct platform_dev +@@ -3970,16 +3971,31 @@ static int mtk_probe(struct platform_dev } } diff --git a/target/linux/generic/backport-5.15/723-v6.0-net-ethernet-mtk_eth_soc-introduce-flow-offloading-s.patch b/target/linux/generic/backport-5.15/723-v6.0-net-ethernet-mtk_eth_soc-introduce-flow-offloading-s.patch index f10878da43a856..56d63b1e3502ae 100644 --- a/target/linux/generic/backport-5.15/723-v6.0-net-ethernet-mtk_eth_soc-introduce-flow-offloading-s.patch +++ b/target/linux/generic/backport-5.15/723-v6.0-net-ethernet-mtk_eth_soc-introduce-flow-offloading-s.patch @@ -26,7 +26,7 @@ Signed-off-by: Lorenzo Bianconi --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1859,12 +1859,14 @@ static int mtk_poll_rx(struct napi_struc +@@ -1858,12 +1858,14 @@ static int mtk_poll_rx(struct napi_struc bytes += skb->len; if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { @@ -41,7 +41,7 @@ Signed-off-by: Lorenzo Bianconi hash = trxd.rxd4 & MTK_RXD4_FOE_ENTRY; if (hash != MTK_RXD4_FOE_ENTRY) skb_set_hash(skb, jhash_1word(hash, 0), -@@ -1878,7 +1880,6 @@ static int mtk_poll_rx(struct napi_struc +@@ -1877,7 +1879,6 @@ static int mtk_poll_rx(struct napi_struc skb_checksum_none_assert(skb); skb->protocol = eth_type_trans(skb, netdev); @@ -49,7 +49,7 @@ Signed-off-by: Lorenzo Bianconi if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED) mtk_ppe_check_skb(eth->ppe[0], skb, hash); -@@ -4180,7 +4181,7 @@ static const struct mtk_soc_data mt7621_ +@@ -4179,7 +4180,7 @@ static const struct mtk_soc_data mt7621_ .required_pctl = false, .offload_version = 2, .hash_offset = 2, @@ -58,7 +58,7 @@ Signed-off-by: Lorenzo Bianconi .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4200,7 +4201,7 @@ static const struct mtk_soc_data mt7622_ +@@ -4199,7 +4200,7 @@ static const struct mtk_soc_data mt7622_ .required_pctl = false, .offload_version = 2, .hash_offset = 2, @@ -67,7 +67,7 @@ Signed-off-by: Lorenzo Bianconi .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4219,7 +4220,7 @@ static const struct mtk_soc_data mt7623_ +@@ -4218,7 +4219,7 @@ static const struct mtk_soc_data mt7623_ .required_pctl = true, .offload_version = 2, .hash_offset = 2, @@ -76,7 +76,7 @@ Signed-off-by: Lorenzo Bianconi .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4251,9 +4252,11 @@ static const struct mtk_soc_data mt7986_ +@@ -4250,9 +4251,11 @@ static const struct mtk_soc_data mt7986_ .reg_map = &mt7986_reg_map, .ana_rgc3 = 0x128, .caps = MT7986_CAPS, @@ -576,7 +576,7 @@ Signed-off-by: Lorenzo Bianconi entry->hash = 0xffff; continue; @@ -771,6 +805,8 @@ void mtk_ppe_start(struct mtk_ppe *ppe) - MTK_PPE_SCAN_MODE_KEEPALIVE_AGE) | + MTK_PPE_SCAN_MODE_CHECK_AGE) | FIELD_PREP(MTK_PPE_TB_CFG_ENTRY_NUM, MTK_PPE_ENTRIES_SHIFT); + if (MTK_HAS_CAPS(ppe->eth->soc->caps, MTK_NETSYS_V2)) diff --git a/target/linux/generic/backport-5.15/724-v6.2-net-ethernet-mtk_eth_soc-enable-flow-offloading-supp.patch b/target/linux/generic/backport-5.15/724-v6.2-net-ethernet-mtk_eth_soc-enable-flow-offloading-supp.patch index aba5673b76d875..58314a8fc0d214 100644 --- a/target/linux/generic/backport-5.15/724-v6.2-net-ethernet-mtk_eth_soc-enable-flow-offloading-supp.patch +++ b/target/linux/generic/backport-5.15/724-v6.2-net-ethernet-mtk_eth_soc-enable-flow-offloading-supp.patch @@ -16,7 +16,7 @@ Signed-off-by: Lorenzo Bianconi --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4255,6 +4255,7 @@ static const struct mtk_soc_data mt7986_ +@@ -4254,6 +4254,7 @@ static const struct mtk_soc_data mt7986_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7986_CLKS_BITMAP, .required_pctl = false, diff --git a/target/linux/generic/backport-5.15/728-v6.1-01-net-ethernet-mtk_eth_soc-fix-possible-memory-leak-in.patch b/target/linux/generic/backport-5.15/728-v6.1-01-net-ethernet-mtk_eth_soc-fix-possible-memory-leak-in.patch index 7ebe8566a041d2..cad32043541ebc 100644 --- a/target/linux/generic/backport-5.15/728-v6.1-01-net-ethernet-mtk_eth_soc-fix-possible-memory-leak-in.patch +++ b/target/linux/generic/backport-5.15/728-v6.1-01-net-ethernet-mtk_eth_soc-fix-possible-memory-leak-in.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4007,19 +4007,23 @@ static int mtk_probe(struct platform_dev +@@ -4006,19 +4006,23 @@ static int mtk_probe(struct platform_dev eth->irq[i] = platform_get_irq(pdev, i); if (eth->irq[i] < 0) { dev_err(&pdev->dev, "no IRQ%d resource found\n", i); @@ -45,7 +45,7 @@ Signed-off-by: David S. Miller } eth->clks[i] = NULL; } -@@ -4030,7 +4034,7 @@ static int mtk_probe(struct platform_dev +@@ -4029,7 +4033,7 @@ static int mtk_probe(struct platform_dev err = mtk_hw_init(eth); if (err) @@ -54,7 +54,7 @@ Signed-off-by: David S. Miller eth->hwlro = MTK_HAS_CAPS(eth->soc->caps, MTK_HWLRO); -@@ -4128,6 +4132,8 @@ err_free_dev: +@@ -4127,6 +4131,8 @@ err_free_dev: mtk_free_dev(eth); err_deinit_hw: mtk_hw_deinit(eth); @@ -63,7 +63,7 @@ Signed-off-by: David S. Miller return err; } -@@ -4147,6 +4153,7 @@ static int mtk_remove(struct platform_de +@@ -4146,6 +4152,7 @@ static int mtk_remove(struct platform_de phylink_disconnect_phy(mac->phylink); } diff --git a/target/linux/generic/backport-5.15/728-v6.1-04-net-ethernet-mtk_eth_soc-fix-resource-leak-in-error-.patch b/target/linux/generic/backport-5.15/728-v6.1-04-net-ethernet-mtk_eth_soc-fix-resource-leak-in-error-.patch index 9c526ecec93ad7..e2a2046442ebc5 100644 --- a/target/linux/generic/backport-5.15/728-v6.1-04-net-ethernet-mtk_eth_soc-fix-resource-leak-in-error-.patch +++ b/target/linux/generic/backport-5.15/728-v6.1-04-net-ethernet-mtk_eth_soc-fix-resource-leak-in-error-.patch @@ -17,7 +17,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4090,13 +4090,13 @@ static int mtk_probe(struct platform_dev +@@ -4089,13 +4089,13 @@ static int mtk_probe(struct platform_dev eth->soc->offload_version, i); if (!eth->ppe[i]) { err = -ENOMEM; diff --git a/target/linux/generic/backport-5.15/728-v6.1-05-net-ethernet-mtk_eth_soc-fix-memory-leak-in-error-pa.patch b/target/linux/generic/backport-5.15/728-v6.1-05-net-ethernet-mtk_eth_soc-fix-memory-leak-in-error-pa.patch index 55c9b35238b735..13f0ed5a5d9973 100644 --- a/target/linux/generic/backport-5.15/728-v6.1-05-net-ethernet-mtk_eth_soc-fix-memory-leak-in-error-pa.patch +++ b/target/linux/generic/backport-5.15/728-v6.1-05-net-ethernet-mtk_eth_soc-fix-memory-leak-in-error-pa.patch @@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4090,13 +4090,13 @@ static int mtk_probe(struct platform_dev +@@ -4089,13 +4089,13 @@ static int mtk_probe(struct platform_dev eth->soc->offload_version, i); if (!eth->ppe[i]) { err = -ENOMEM; @@ -37,7 +37,7 @@ Signed-off-by: Jakub Kicinski } for (i = 0; i < MTK_MAX_DEVS; i++) { -@@ -4106,7 +4106,7 @@ static int mtk_probe(struct platform_dev +@@ -4105,7 +4105,7 @@ static int mtk_probe(struct platform_dev err = register_netdev(eth->netdev[i]); if (err) { dev_err(eth->dev, "error bringing up device\n"); @@ -46,7 +46,7 @@ Signed-off-by: Jakub Kicinski } else netif_info(eth, probe, eth->netdev[i], "mediatek frame engine at 0x%08lx, irq %d\n", -@@ -4126,7 +4126,8 @@ static int mtk_probe(struct platform_dev +@@ -4125,7 +4125,8 @@ static int mtk_probe(struct platform_dev return 0; diff --git a/target/linux/generic/backport-5.15/729-06-v6.1-net-ethernet-mtk_eth_soc-do-not-overwrite-mtu-config.patch b/target/linux/generic/backport-5.15/729-06-v6.1-net-ethernet-mtk_eth_soc-do-not-overwrite-mtu-config.patch index 9206be370f818c..7f76e9b4975cc3 100644 --- a/target/linux/generic/backport-5.15/729-06-v6.1-net-ethernet-mtk_eth_soc-do-not-overwrite-mtu-config.patch +++ b/target/linux/generic/backport-5.15/729-06-v6.1-net-ethernet-mtk_eth_soc-do-not-overwrite-mtu-config.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3179,6 +3179,30 @@ static void mtk_dim_tx(struct work_struc +@@ -3178,6 +3178,30 @@ static void mtk_dim_tx(struct work_struc dim->state = DIM_START_MEASURE; } @@ -45,7 +45,7 @@ Signed-off-by: David S. Miller static int mtk_hw_init(struct mtk_eth *eth) { u32 dma_mask = ETHSYS_DMA_AG_MAP_PDMA | ETHSYS_DMA_AG_MAP_QDMA | -@@ -3253,8 +3277,16 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3252,8 +3276,16 @@ static int mtk_hw_init(struct mtk_eth *e * up with the more appropriate value when mtk_mac_config call is being * invoked. */ @@ -63,7 +63,7 @@ Signed-off-by: David S. Miller /* Indicates CDM to parse the MTK special tag from CPU * which also is working out for untag packets. -@@ -3353,7 +3385,6 @@ static int mtk_change_mtu(struct net_dev +@@ -3352,7 +3384,6 @@ static int mtk_change_mtu(struct net_dev int length = new_mtu + MTK_RX_ETH_HLEN; struct mtk_mac *mac = netdev_priv(dev); struct mtk_eth *eth = mac->hw; @@ -71,7 +71,7 @@ Signed-off-by: David S. Miller if (rcu_access_pointer(eth->prog) && length > MTK_PP_MAX_BUF_SIZE) { -@@ -3361,23 +3392,7 @@ static int mtk_change_mtu(struct net_dev +@@ -3360,23 +3391,7 @@ static int mtk_change_mtu(struct net_dev return -EINVAL; } diff --git a/target/linux/generic/backport-5.15/729-07-v6.1-net-ethernet-mtk_eth_soc-remove-cpu_relax-in-mtk_pen.patch b/target/linux/generic/backport-5.15/729-07-v6.1-net-ethernet-mtk_eth_soc-remove-cpu_relax-in-mtk_pen.patch index 063415c618195d..65d9621e2fdfea 100644 --- a/target/linux/generic/backport-5.15/729-07-v6.1-net-ethernet-mtk_eth_soc-remove-cpu_relax-in-mtk_pen.patch +++ b/target/linux/generic/backport-5.15/729-07-v6.1-net-ethernet-mtk_eth_soc-remove-cpu_relax-in-mtk_pen.patch @@ -12,7 +12,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3423,11 +3423,8 @@ static void mtk_pending_work(struct work +@@ -3422,11 +3422,8 @@ static void mtk_pending_work(struct work rtnl_lock(); dev_dbg(eth->dev, "[%s][%d] reset\n", __func__, __LINE__); @@ -25,7 +25,7 @@ Signed-off-by: David S. Miller /* stop all devices to make sure that dma is properly shut down */ for (i = 0; i < MTK_MAC_COUNT; i++) { if (!eth->netdev[i]) -@@ -3461,7 +3458,7 @@ static void mtk_pending_work(struct work +@@ -3460,7 +3457,7 @@ static void mtk_pending_work(struct work dev_dbg(eth->dev, "[%s][%d] reset done\n", __func__, __LINE__); diff --git a/target/linux/generic/backport-5.15/729-08-v6.2-net-ethernet-mtk_eth_soc-fix-RSTCTRL_PPE-0-1-definit.patch b/target/linux/generic/backport-5.15/729-08-v6.2-net-ethernet-mtk_eth_soc-fix-RSTCTRL_PPE-0-1-definit.patch index 30be5b392bf6d3..4eca30dbfd80c9 100644 --- a/target/linux/generic/backport-5.15/729-08-v6.2-net-ethernet-mtk_eth_soc-fix-RSTCTRL_PPE-0-1-definit.patch +++ b/target/linux/generic/backport-5.15/729-08-v6.2-net-ethernet-mtk_eth_soc-fix-RSTCTRL_PPE-0-1-definit.patch @@ -13,7 +13,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3242,16 +3242,17 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3241,16 +3241,17 @@ static int mtk_hw_init(struct mtk_eth *e return 0; } diff --git a/target/linux/generic/backport-5.15/729-18-v6.3-net-ethernet-mtk_eth_soc-introduce-mtk_hw_reset-util.patch b/target/linux/generic/backport-5.15/729-18-v6.3-net-ethernet-mtk_eth_soc-introduce-mtk_hw_reset-util.patch index 3ab5dba434ecf0..33f2b5b0a5ecb0 100644 --- a/target/linux/generic/backport-5.15/729-18-v6.3-net-ethernet-mtk_eth_soc-introduce-mtk_hw_reset-util.patch +++ b/target/linux/generic/backport-5.15/729-18-v6.3-net-ethernet-mtk_eth_soc-introduce-mtk_hw_reset-util.patch @@ -16,7 +16,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3203,6 +3203,27 @@ static void mtk_set_mcr_max_rx(struct mt +@@ -3202,6 +3202,27 @@ static void mtk_set_mcr_max_rx(struct mt mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id)); } @@ -44,7 +44,7 @@ Signed-off-by: Paolo Abeni static int mtk_hw_init(struct mtk_eth *eth) { u32 dma_mask = ETHSYS_DMA_AG_MAP_PDMA | ETHSYS_DMA_AG_MAP_QDMA | -@@ -3242,22 +3263,9 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3241,22 +3262,9 @@ static int mtk_hw_init(struct mtk_eth *e return 0; } diff --git a/target/linux/generic/backport-5.15/729-19-v6.3-net-ethernet-mtk_eth_soc-introduce-mtk_hw_warm_reset.patch b/target/linux/generic/backport-5.15/729-19-v6.3-net-ethernet-mtk_eth_soc-introduce-mtk_hw_warm_reset.patch index deb39477ec73fb..84209fccd55e0e 100644 --- a/target/linux/generic/backport-5.15/729-19-v6.3-net-ethernet-mtk_eth_soc-introduce-mtk_hw_warm_reset.patch +++ b/target/linux/generic/backport-5.15/729-19-v6.3-net-ethernet-mtk_eth_soc-introduce-mtk_hw_warm_reset.patch @@ -17,7 +17,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3224,7 +3224,54 @@ static void mtk_hw_reset(struct mtk_eth +@@ -3223,7 +3223,54 @@ static void mtk_hw_reset(struct mtk_eth 0x3ffffff); } @@ -73,7 +73,7 @@ Signed-off-by: Paolo Abeni { u32 dma_mask = ETHSYS_DMA_AG_MAP_PDMA | ETHSYS_DMA_AG_MAP_QDMA | ETHSYS_DMA_AG_MAP_PPE; -@@ -3263,7 +3310,12 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3262,7 +3309,12 @@ static int mtk_hw_init(struct mtk_eth *e return 0; } @@ -87,7 +87,7 @@ Signed-off-by: Paolo Abeni if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { /* Set FE to PDMAv2 if necessary */ -@@ -3451,7 +3503,7 @@ static void mtk_pending_work(struct work +@@ -3450,7 +3502,7 @@ static void mtk_pending_work(struct work if (eth->dev->pins) pinctrl_select_state(eth->dev->pins->p, eth->dev->pins->default_state); @@ -96,7 +96,7 @@ Signed-off-by: Paolo Abeni /* restart DMA and enable IRQs */ for (i = 0; i < MTK_MAC_COUNT; i++) { -@@ -4053,7 +4105,7 @@ static int mtk_probe(struct platform_dev +@@ -4052,7 +4104,7 @@ static int mtk_probe(struct platform_dev eth->msg_enable = netif_msg_init(mtk_msg_level, MTK_DEFAULT_MSG_ENABLE); INIT_WORK(ð->pending_work, mtk_pending_work); diff --git a/target/linux/generic/backport-5.15/729-20-v6.3-net-ethernet-mtk_eth_soc-align-reset-procedure-to-ve.patch b/target/linux/generic/backport-5.15/729-20-v6.3-net-ethernet-mtk_eth_soc-align-reset-procedure-to-ve.patch index b3812cccbbdbde..e75a4cc0d060e7 100644 --- a/target/linux/generic/backport-5.15/729-20-v6.3-net-ethernet-mtk_eth_soc-align-reset-procedure-to-ve.patch +++ b/target/linux/generic/backport-5.15/729-20-v6.3-net-ethernet-mtk_eth_soc-align-reset-procedure-to-ve.patch @@ -16,7 +16,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -2789,14 +2789,29 @@ static void mtk_dma_free(struct mtk_eth +@@ -2788,14 +2788,29 @@ static void mtk_dma_free(struct mtk_eth kfree(eth->scratch_head); } @@ -48,7 +48,7 @@ Signed-off-by: Paolo Abeni schedule_work(ð->pending_work); } -@@ -3278,15 +3293,17 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3277,15 +3292,17 @@ static int mtk_hw_init(struct mtk_eth *e const struct mtk_reg_map *reg_map = eth->soc->reg_map; int i, val, ret; @@ -72,7 +72,7 @@ Signed-off-by: Paolo Abeni if (eth->ethsys) regmap_update_bits(eth->ethsys, ETHSYS_DMA_AG_MAP, dma_mask, -@@ -3412,8 +3429,10 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3411,8 +3428,10 @@ static int mtk_hw_init(struct mtk_eth *e return 0; err_disable_pm: @@ -85,7 +85,7 @@ Signed-off-by: Paolo Abeni return ret; } -@@ -3475,30 +3494,53 @@ static int mtk_do_ioctl(struct net_devic +@@ -3474,30 +3493,53 @@ static int mtk_do_ioctl(struct net_devic return -EOPNOTSUPP; } @@ -148,7 +148,7 @@ Signed-off-by: Paolo Abeni if (eth->dev->pins) pinctrl_select_state(eth->dev->pins->p, -@@ -3509,15 +3551,19 @@ static void mtk_pending_work(struct work +@@ -3508,15 +3550,19 @@ static void mtk_pending_work(struct work for (i = 0; i < MTK_MAC_COUNT; i++) { if (!test_bit(i, &restart)) continue; diff --git a/target/linux/generic/backport-5.15/729-21-v6.3-net-ethernet-mtk_eth_soc-add-dma-checks-to-mtk_hw_re.patch b/target/linux/generic/backport-5.15/729-21-v6.3-net-ethernet-mtk_eth_soc-add-dma-checks-to-mtk_hw_re.patch index 633c66f1c2f6c8..898785ece2c7cb 100644 --- a/target/linux/generic/backport-5.15/729-21-v6.3-net-ethernet-mtk_eth_soc-add-dma-checks-to-mtk_hw_re.patch +++ b/target/linux/generic/backport-5.15/729-21-v6.3-net-ethernet-mtk_eth_soc-add-dma-checks-to-mtk_hw_re.patch @@ -49,7 +49,7 @@ Signed-off-by: Paolo Abeni }; /* strings used by ethtool */ -@@ -3286,6 +3292,102 @@ static void mtk_hw_warm_reset(struct mtk +@@ -3285,6 +3291,102 @@ static void mtk_hw_warm_reset(struct mtk val, rst_mask); } @@ -152,7 +152,7 @@ Signed-off-by: Paolo Abeni static int mtk_hw_init(struct mtk_eth *eth, bool reset) { u32 dma_mask = ETHSYS_DMA_AG_MAP_PDMA | ETHSYS_DMA_AG_MAP_QDMA | -@@ -3601,6 +3703,7 @@ static int mtk_cleanup(struct mtk_eth *e +@@ -3600,6 +3702,7 @@ static int mtk_cleanup(struct mtk_eth *e mtk_unreg_dev(eth); mtk_free_dev(eth); cancel_work_sync(ð->pending_work); @@ -160,7 +160,7 @@ Signed-off-by: Paolo Abeni return 0; } -@@ -4038,6 +4141,7 @@ static int mtk_probe(struct platform_dev +@@ -4037,6 +4140,7 @@ static int mtk_probe(struct platform_dev eth->rx_dim.mode = DIM_CQ_PERIOD_MODE_START_FROM_EQE; INIT_WORK(ð->rx_dim.work, mtk_dim_rx); @@ -168,7 +168,7 @@ Signed-off-by: Paolo Abeni eth->tx_dim.mode = DIM_CQ_PERIOD_MODE_START_FROM_EQE; INIT_WORK(ð->tx_dim.work, mtk_dim_tx); -@@ -4242,6 +4346,8 @@ static int mtk_probe(struct platform_dev +@@ -4241,6 +4345,8 @@ static int mtk_probe(struct platform_dev NAPI_POLL_WEIGHT); platform_set_drvdata(pdev, eth); diff --git a/target/linux/generic/backport-5.15/729-22-v6.3-net-ethernet-mtk_wed-add-reset-reset_complete-callba.patch b/target/linux/generic/backport-5.15/729-22-v6.3-net-ethernet-mtk_wed-add-reset-reset_complete-callba.patch index 1f61be0a1fb8a7..cc9aaaf0b84142 100644 --- a/target/linux/generic/backport-5.15/729-22-v6.3-net-ethernet-mtk_wed-add-reset-reset_complete-callba.patch +++ b/target/linux/generic/backport-5.15/729-22-v6.3-net-ethernet-mtk_wed-add-reset-reset_complete-callba.patch @@ -14,7 +14,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3632,6 +3632,11 @@ static void mtk_pending_work(struct work +@@ -3631,6 +3631,11 @@ static void mtk_pending_work(struct work set_bit(MTK_RESETTING, ð->state); mtk_prepare_for_reset(eth); @@ -26,7 +26,7 @@ Signed-off-by: Paolo Abeni /* stop all devices to make sure that dma is properly shut down */ for (i = 0; i < MTK_MAC_COUNT; i++) { -@@ -3669,6 +3674,8 @@ static void mtk_pending_work(struct work +@@ -3668,6 +3673,8 @@ static void mtk_pending_work(struct work clear_bit(MTK_RESETTING, ð->state); diff --git a/target/linux/generic/backport-5.15/730-02-v6.3-net-ethernet-mtk_eth_soc-increase-tx-ring-side-for-Q.patch b/target/linux/generic/backport-5.15/730-02-v6.3-net-ethernet-mtk_eth_soc-increase-tx-ring-side-for-Q.patch index 8b6d9e908f2e1a..908b2d88f3ca05 100644 --- a/target/linux/generic/backport-5.15/730-02-v6.3-net-ethernet-mtk_eth_soc-increase-tx-ring-side-for-Q.patch +++ b/target/linux/generic/backport-5.15/730-02-v6.3-net-ethernet-mtk_eth_soc-increase-tx-ring-side-for-Q.patch @@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -901,7 +901,7 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -900,7 +900,7 @@ static int mtk_init_fq_dma(struct mtk_et { const struct mtk_soc_data *soc = eth->soc; dma_addr_t phy_ring_tail; @@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau dma_addr_t dma_addr; int i; -@@ -2155,19 +2155,25 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -2154,19 +2154,25 @@ static int mtk_tx_alloc(struct mtk_eth * struct mtk_tx_ring *ring = ð->tx_ring; int i, sz = soc->txrx.txd_size; struct mtk_tx_dma_v2 *txd; @@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau u32 next_ptr = ring->phys + next * sz; txd = ring->dma + i * sz; -@@ -2187,22 +2193,22 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -2186,22 +2192,22 @@ static int mtk_tx_alloc(struct mtk_eth * * descriptors in ring->dma_pdma. */ if (!MTK_HAS_CAPS(soc->caps, MTK_QDMA)) { @@ -79,7 +79,7 @@ Signed-off-by: Felix Fietkau ring->thresh = MAX_SKB_FRAGS; /* make sure that all changes to the dma ring are flushed before we -@@ -2214,14 +2220,14 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -2213,14 +2219,14 @@ static int mtk_tx_alloc(struct mtk_eth * mtk_w32(eth, ring->phys, soc->reg_map->qdma.ctx_ptr); mtk_w32(eth, ring->phys, soc->reg_map->qdma.dtx_ptr); mtk_w32(eth, @@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau mtk_w32(eth, 0, MT7628_TX_CTX_IDX0); mtk_w32(eth, MT7628_PST_DTX_IDX0, soc->reg_map->pdma.rst_idx); } -@@ -2239,7 +2245,7 @@ static void mtk_tx_clean(struct mtk_eth +@@ -2238,7 +2244,7 @@ static void mtk_tx_clean(struct mtk_eth int i; if (ring->buf) { @@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau mtk_tx_unmap(eth, &ring->buf[i], false); kfree(ring->buf); ring->buf = NULL; -@@ -2247,14 +2253,14 @@ static void mtk_tx_clean(struct mtk_eth +@@ -2246,14 +2252,14 @@ static void mtk_tx_clean(struct mtk_eth if (ring->dma) { dma_free_coherent(eth->dma_dev, @@ -122,7 +122,7 @@ Signed-off-by: Felix Fietkau ring->dma_pdma, ring->phys_pdma); ring->dma_pdma = NULL; } -@@ -2777,7 +2783,7 @@ static void mtk_dma_free(struct mtk_eth +@@ -2776,7 +2782,7 @@ static void mtk_dma_free(struct mtk_eth netdev_reset_queue(eth->netdev[i]); if (eth->scratch_ring) { dma_free_coherent(eth->dma_dev, diff --git a/target/linux/generic/backport-5.15/730-03-v6.3-net-ethernet-mtk_eth_soc-avoid-port_mg-assignment-on.patch b/target/linux/generic/backport-5.15/730-03-v6.3-net-ethernet-mtk_eth_soc-avoid-port_mg-assignment-on.patch index 391727b30d3f4d..34aa7b14cdf2ef 100644 --- a/target/linux/generic/backport-5.15/730-03-v6.3-net-ethernet-mtk_eth_soc-avoid-port_mg-assignment-on.patch +++ b/target/linux/generic/backport-5.15/730-03-v6.3-net-ethernet-mtk_eth_soc-avoid-port_mg-assignment-on.patch @@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4425,7 +4425,7 @@ static const struct mtk_soc_data mt7621_ +@@ -4424,7 +4424,7 @@ static const struct mtk_soc_data mt7621_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7621_CLKS_BITMAP, .required_pctl = false, @@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau .hash_offset = 2, .foe_entry_size = sizeof(struct mtk_foe_entry) - 16, .txrx = { -@@ -4464,7 +4464,7 @@ static const struct mtk_soc_data mt7623_ +@@ -4463,7 +4463,7 @@ static const struct mtk_soc_data mt7623_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7623_CLKS_BITMAP, .required_pctl = true, diff --git a/target/linux/generic/backport-5.15/730-04-v6.3-net-ethernet-mtk_eth_soc-implement-multi-queue-suppo.patch b/target/linux/generic/backport-5.15/730-04-v6.3-net-ethernet-mtk_eth_soc-implement-multi-queue-suppo.patch index 8e743dd02a374e..765666602e4afe 100644 --- a/target/linux/generic/backport-5.15/730-04-v6.3-net-ethernet-mtk_eth_soc-implement-multi-queue-suppo.patch +++ b/target/linux/generic/backport-5.15/730-04-v6.3-net-ethernet-mtk_eth_soc-implement-multi-queue-suppo.patch @@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau }, .gdm1_cnt = 0x1c00, .gdma_to_ppe0 = 0x3333, -@@ -577,6 +581,75 @@ static void mtk_mac_link_down(struct phy +@@ -576,6 +580,75 @@ static void mtk_mac_link_down(struct phy mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id)); } @@ -130,7 +130,7 @@ Signed-off-by: Felix Fietkau static void mtk_mac_link_up(struct phylink_config *config, struct phy_device *phy, unsigned int mode, phy_interface_t interface, -@@ -602,6 +675,8 @@ static void mtk_mac_link_up(struct phyli +@@ -601,6 +674,8 @@ static void mtk_mac_link_up(struct phyli break; } @@ -139,7 +139,7 @@ Signed-off-by: Felix Fietkau /* Configure duplex */ if (duplex == DUPLEX_FULL) mcr |= MAC_MCR_FORCE_DPX; -@@ -1060,7 +1135,8 @@ static void mtk_tx_set_dma_desc_v1(struc +@@ -1059,7 +1134,8 @@ static void mtk_tx_set_dma_desc_v1(struc WRITE_ONCE(desc->txd1, info->addr); @@ -149,7 +149,7 @@ Signed-off-by: Felix Fietkau if (info->last) data |= TX_DMA_LS0; WRITE_ONCE(desc->txd3, data); -@@ -1094,9 +1170,6 @@ static void mtk_tx_set_dma_desc_v2(struc +@@ -1093,9 +1169,6 @@ static void mtk_tx_set_dma_desc_v2(struc data |= TX_DMA_LS0; WRITE_ONCE(desc->txd3, data); @@ -159,7 +159,7 @@ Signed-off-by: Felix Fietkau data = (mac->id + 1) << TX_DMA_FPORT_SHIFT_V2; /* forward port */ data |= TX_DMA_SWC_V2 | QID_BITS_V2(info->qid); WRITE_ONCE(desc->txd4, data); -@@ -1140,11 +1213,12 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1139,11 +1212,12 @@ static int mtk_tx_map(struct sk_buff *sk .gso = gso, .csum = skb->ip_summed == CHECKSUM_PARTIAL, .vlan = skb_vlan_tag_present(skb), @@ -173,7 +173,7 @@ Signed-off-by: Felix Fietkau struct mtk_mac *mac = netdev_priv(dev); struct mtk_eth *eth = mac->hw; const struct mtk_soc_data *soc = eth->soc; -@@ -1152,8 +1226,10 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1151,8 +1225,10 @@ static int mtk_tx_map(struct sk_buff *sk struct mtk_tx_dma *itxd_pdma, *txd_pdma; struct mtk_tx_buf *itx_buf, *tx_buf; int i, n_desc = 1; @@ -184,7 +184,7 @@ Signed-off-by: Felix Fietkau itxd = ring->next_free; itxd_pdma = qdma_to_pdma(ring, itxd); if (itxd == ring->last_free) -@@ -1202,7 +1278,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1201,7 +1277,7 @@ static int mtk_tx_map(struct sk_buff *sk memset(&txd_info, 0, sizeof(struct mtk_tx_dma_desc_info)); txd_info.size = min_t(unsigned int, frag_size, soc->txrx.dma_max_len); @@ -193,7 +193,7 @@ Signed-off-by: Felix Fietkau txd_info.last = i == skb_shinfo(skb)->nr_frags - 1 && !(frag_size - txd_info.size); txd_info.addr = skb_frag_dma_map(eth->dma_dev, frag, -@@ -1241,7 +1317,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1240,7 +1316,7 @@ static int mtk_tx_map(struct sk_buff *sk txd_pdma->txd2 |= TX_DMA_LS1; } @@ -202,7 +202,7 @@ Signed-off-by: Felix Fietkau skb_tx_timestamp(skb); ring->next_free = mtk_qdma_phys_to_virt(ring, txd->txd2); -@@ -1253,8 +1329,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1252,8 +1328,7 @@ static int mtk_tx_map(struct sk_buff *sk wmb(); if (MTK_HAS_CAPS(soc->caps, MTK_QDMA)) { @@ -212,7 +212,7 @@ Signed-off-by: Felix Fietkau mtk_w32(eth, txd->txd2, soc->reg_map->qdma.ctx_ptr); } else { int next_idx; -@@ -1323,7 +1398,7 @@ static void mtk_wake_queue(struct mtk_et +@@ -1322,7 +1397,7 @@ static void mtk_wake_queue(struct mtk_et for (i = 0; i < MTK_MAC_COUNT; i++) { if (!eth->netdev[i]) continue; @@ -221,7 +221,7 @@ Signed-off-by: Felix Fietkau } } -@@ -1347,7 +1422,7 @@ static netdev_tx_t mtk_start_xmit(struct +@@ -1346,7 +1421,7 @@ static netdev_tx_t mtk_start_xmit(struct tx_num = mtk_cal_txd_req(eth, skb); if (unlikely(atomic_read(&ring->free_count) <= tx_num)) { @@ -230,7 +230,7 @@ Signed-off-by: Felix Fietkau netif_err(eth, tx_queued, dev, "Tx Ring full when queue awake!\n"); spin_unlock(ð->page_lock); -@@ -1373,7 +1448,7 @@ static netdev_tx_t mtk_start_xmit(struct +@@ -1372,7 +1447,7 @@ static netdev_tx_t mtk_start_xmit(struct goto drop; if (unlikely(atomic_read(&ring->free_count) <= ring->thresh)) @@ -239,7 +239,7 @@ Signed-off-by: Felix Fietkau spin_unlock(ð->page_lock); -@@ -1540,10 +1615,12 @@ static int mtk_xdp_submit_frame(struct m +@@ -1539,10 +1614,12 @@ static int mtk_xdp_submit_frame(struct m struct skb_shared_info *sinfo = xdp_get_shared_info_from_frame(xdpf); const struct mtk_soc_data *soc = eth->soc; struct mtk_tx_ring *ring = ð->tx_ring; @@ -252,7 +252,7 @@ Signed-off-by: Felix Fietkau }; int err, index = 0, n_desc = 1, nr_frags; struct mtk_tx_dma *htxd, *txd, *txd_pdma; -@@ -1594,6 +1671,7 @@ static int mtk_xdp_submit_frame(struct m +@@ -1593,6 +1670,7 @@ static int mtk_xdp_submit_frame(struct m memset(&txd_info, 0, sizeof(struct mtk_tx_dma_desc_info)); txd_info.size = skb_frag_size(&sinfo->frags[index]); txd_info.last = index + 1 == nr_frags; @@ -260,7 +260,7 @@ Signed-off-by: Felix Fietkau data = skb_frag_address(&sinfo->frags[index]); index++; -@@ -1945,8 +2023,46 @@ rx_done: +@@ -1944,8 +2022,46 @@ rx_done: return done; } @@ -308,7 +308,7 @@ Signed-off-by: Felix Fietkau { const struct mtk_reg_map *reg_map = eth->soc->reg_map; struct mtk_tx_ring *ring = ð->tx_ring; -@@ -1976,12 +2092,9 @@ static int mtk_poll_tx_qdma(struct mtk_e +@@ -1975,12 +2091,9 @@ static int mtk_poll_tx_qdma(struct mtk_e break; if (tx_buf->data != (void *)MTK_DMA_DUMMY_DESC) { @@ -323,7 +323,7 @@ Signed-off-by: Felix Fietkau budget--; } mtk_tx_unmap(eth, tx_buf, true); -@@ -1999,7 +2112,7 @@ static int mtk_poll_tx_qdma(struct mtk_e +@@ -1998,7 +2111,7 @@ static int mtk_poll_tx_qdma(struct mtk_e } static int mtk_poll_tx_pdma(struct mtk_eth *eth, int budget, @@ -332,7 +332,7 @@ Signed-off-by: Felix Fietkau { struct mtk_tx_ring *ring = ð->tx_ring; struct mtk_tx_buf *tx_buf; -@@ -2015,12 +2128,8 @@ static int mtk_poll_tx_pdma(struct mtk_e +@@ -2014,12 +2127,8 @@ static int mtk_poll_tx_pdma(struct mtk_e break; if (tx_buf->data != (void *)MTK_DMA_DUMMY_DESC) { @@ -347,7 +347,7 @@ Signed-off-by: Felix Fietkau budget--; } mtk_tx_unmap(eth, tx_buf, true); -@@ -2041,26 +2150,15 @@ static int mtk_poll_tx(struct mtk_eth *e +@@ -2040,26 +2149,15 @@ static int mtk_poll_tx(struct mtk_eth *e { struct mtk_tx_ring *ring = ð->tx_ring; struct dim_sample dim_sample = {}; @@ -379,7 +379,7 @@ Signed-off-by: Felix Fietkau dim_update_sample(eth->tx_events, eth->tx_packets, eth->tx_bytes, &dim_sample); -@@ -2070,7 +2168,7 @@ static int mtk_poll_tx(struct mtk_eth *e +@@ -2069,7 +2167,7 @@ static int mtk_poll_tx(struct mtk_eth *e (atomic_read(&ring->free_count) > ring->thresh)) mtk_wake_queue(eth); @@ -388,7 +388,7 @@ Signed-off-by: Felix Fietkau } static void mtk_handle_status_irq(struct mtk_eth *eth) -@@ -2156,6 +2254,7 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -2155,6 +2253,7 @@ static int mtk_tx_alloc(struct mtk_eth * int i, sz = soc->txrx.txd_size; struct mtk_tx_dma_v2 *txd; int ring_size; @@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau if (MTK_HAS_CAPS(soc->caps, MTK_QDMA)) ring_size = MTK_QDMA_RING_SIZE; -@@ -2223,8 +2322,25 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -2222,8 +2321,25 @@ static int mtk_tx_alloc(struct mtk_eth * ring->phys + ((ring_size - 1) * sz), soc->reg_map->qdma.crx_ptr); mtk_w32(eth, ring->last_free_ptr, soc->reg_map->qdma.drx_ptr); @@ -424,7 +424,7 @@ Signed-off-by: Felix Fietkau } else { mtk_w32(eth, ring->phys_pdma, MT7628_TX_BASE_PTR0); mtk_w32(eth, ring_size, MT7628_TX_MAX_CNT0); -@@ -2907,7 +3023,7 @@ static int mtk_start_dma(struct mtk_eth +@@ -2906,7 +3022,7 @@ static int mtk_start_dma(struct mtk_eth if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) val |= MTK_MUTLI_CNT | MTK_RESV_BUF | MTK_WCOMP_EN | MTK_DMAD_WR_WDONE | @@ -433,7 +433,7 @@ Signed-off-by: Felix Fietkau else val |= MTK_RX_BT_32DWORDS; mtk_w32(eth, val, reg_map->qdma.glo_cfg); -@@ -2953,6 +3069,45 @@ static void mtk_gdm_config(struct mtk_et +@@ -2952,6 +3068,45 @@ static void mtk_gdm_config(struct mtk_et mtk_w32(eth, 0, MTK_RST_GL); } @@ -479,7 +479,7 @@ Signed-off-by: Felix Fietkau static int mtk_open(struct net_device *dev) { struct mtk_mac *mac = netdev_priv(dev); -@@ -2997,7 +3152,8 @@ static int mtk_open(struct net_device *d +@@ -2996,7 +3151,8 @@ static int mtk_open(struct net_device *d refcount_inc(ð->dma_refcnt); phylink_start(mac->phylink); @@ -489,7 +489,7 @@ Signed-off-by: Felix Fietkau return 0; } -@@ -3703,8 +3859,12 @@ static int mtk_unreg_dev(struct mtk_eth +@@ -3702,8 +3858,12 @@ static int mtk_unreg_dev(struct mtk_eth int i; for (i = 0; i < MTK_MAC_COUNT; i++) { @@ -502,7 +502,7 @@ Signed-off-by: Felix Fietkau unregister_netdev(eth->netdev[i]); } -@@ -3921,6 +4081,23 @@ static int mtk_set_rxnfc(struct net_devi +@@ -3920,6 +4080,23 @@ static int mtk_set_rxnfc(struct net_devi return ret; } @@ -526,7 +526,7 @@ Signed-off-by: Felix Fietkau static const struct ethtool_ops mtk_ethtool_ops = { .get_link_ksettings = mtk_get_link_ksettings, .set_link_ksettings = mtk_set_link_ksettings, -@@ -3955,6 +4132,7 @@ static const struct net_device_ops mtk_n +@@ -3954,6 +4131,7 @@ static const struct net_device_ops mtk_n .ndo_setup_tc = mtk_eth_setup_tc, .ndo_bpf = mtk_xdp, .ndo_xdp_xmit = mtk_xdp_xmit, @@ -534,7 +534,7 @@ Signed-off-by: Felix Fietkau }; static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np) -@@ -3964,6 +4142,7 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -3963,6 +4141,7 @@ static int mtk_add_mac(struct mtk_eth *e struct phylink *phylink; struct mtk_mac *mac; int id, err; @@ -542,7 +542,7 @@ Signed-off-by: Felix Fietkau if (!_id) { dev_err(eth->dev, "missing mac id\n"); -@@ -3981,7 +4160,10 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -3980,7 +4159,10 @@ static int mtk_add_mac(struct mtk_eth *e return -EINVAL; } @@ -554,7 +554,7 @@ Signed-off-by: Felix Fietkau if (!eth->netdev[id]) { dev_err(eth->dev, "alloc_etherdev failed\n"); return -ENOMEM; -@@ -4089,6 +4271,11 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4088,6 +4270,11 @@ static int mtk_add_mac(struct mtk_eth *e else eth->netdev[id]->max_mtu = MTK_MAX_RX_LENGTH_2K - MTK_RX_ETH_HLEN; diff --git a/target/linux/generic/backport-5.15/730-09-v6.3-net-ethernet-mtk_eth_soc-fix-VLAN-rx-hardware-accele.patch b/target/linux/generic/backport-5.15/730-09-v6.3-net-ethernet-mtk_eth_soc-fix-VLAN-rx-hardware-accele.patch index 3733b7279f91b6..b64f434365f68b 100644 --- a/target/linux/generic/backport-5.15/730-09-v6.3-net-ethernet-mtk_eth_soc-fix-VLAN-rx-hardware-accele.patch +++ b/target/linux/generic/backport-5.15/730-09-v6.3-net-ethernet-mtk_eth_soc-fix-VLAN-rx-hardware-accele.patch @@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau #include "mtk_eth_soc.h" #include "mtk_wed.h" -@@ -1974,16 +1975,22 @@ static int mtk_poll_rx(struct napi_struc +@@ -1973,16 +1974,22 @@ static int mtk_poll_rx(struct napi_struc htons(RX_DMA_VPID(trxd.rxd4)), RX_DMA_VID(trxd.rxd4)); } else if (trxd.rxd2 & RX_DMA_VTAG) { @@ -52,7 +52,7 @@ Signed-off-by: Felix Fietkau } skb_record_rx_queue(skb, 0); -@@ -2803,15 +2810,30 @@ static netdev_features_t mtk_fix_feature +@@ -2802,15 +2809,30 @@ static netdev_features_t mtk_fix_feature static int mtk_set_features(struct net_device *dev, netdev_features_t features) { @@ -88,7 +88,7 @@ Signed-off-by: Felix Fietkau } /* wait for DMA to finish whatever it is doing before we start using it again */ -@@ -3108,11 +3130,45 @@ found: +@@ -3107,11 +3129,45 @@ found: return NOTIFY_DONE; } @@ -135,7 +135,7 @@ Signed-off-by: Felix Fietkau err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0); if (err) { -@@ -3635,6 +3691,10 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3634,6 +3690,10 @@ static int mtk_hw_init(struct mtk_eth *e */ val = mtk_r32(eth, MTK_CDMQ_IG_CTRL); mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL); @@ -146,7 +146,7 @@ Signed-off-by: Felix Fietkau /* Enable RX VLan Offloading */ mtk_w32(eth, 1, MTK_CDMP_EG_CTRL); -@@ -3851,6 +3911,12 @@ static int mtk_free_dev(struct mtk_eth * +@@ -3850,6 +3910,12 @@ static int mtk_free_dev(struct mtk_eth * free_netdev(eth->netdev[i]); } diff --git a/target/linux/generic/backport-5.15/730-10-v6.3-net-ethernet-mtk_eth_soc-drop-packets-to-WDMA-if-the.patch b/target/linux/generic/backport-5.15/730-10-v6.3-net-ethernet-mtk_eth_soc-drop-packets-to-WDMA-if-the.patch index 9c2843a6c9c34d..b8c786505f419a 100644 --- a/target/linux/generic/backport-5.15/730-10-v6.3-net-ethernet-mtk_eth_soc-drop-packets-to-WDMA-if-the.patch +++ b/target/linux/generic/backport-5.15/730-10-v6.3-net-ethernet-mtk_eth_soc-drop-packets-to-WDMA-if-the.patch @@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3715,9 +3715,12 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3714,9 +3714,12 @@ static int mtk_hw_init(struct mtk_eth *e mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP); if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { diff --git a/target/linux/generic/backport-5.15/730-12-v6.3-net-ethernet-mtk_eth_soc-disable-hardware-DSA-untagg.patch b/target/linux/generic/backport-5.15/730-12-v6.3-net-ethernet-mtk_eth_soc-disable-hardware-DSA-untagg.patch index 5a4d343a72cf39..346db89911ec12 100644 --- a/target/linux/generic/backport-5.15/730-12-v6.3-net-ethernet-mtk_eth_soc-disable-hardware-DSA-untagg.patch +++ b/target/linux/generic/backport-5.15/730-12-v6.3-net-ethernet-mtk_eth_soc-disable-hardware-DSA-untagg.patch @@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3146,7 +3146,8 @@ static int mtk_open(struct net_device *d +@@ -3145,7 +3145,8 @@ static int mtk_open(struct net_device *d struct mtk_eth *eth = mac->hw; int i, err; @@ -30,7 +30,7 @@ Signed-off-by: Jakub Kicinski for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) { struct metadata_dst *md_dst = eth->dsa_meta[i]; -@@ -3163,7 +3164,8 @@ static int mtk_open(struct net_device *d +@@ -3162,7 +3163,8 @@ static int mtk_open(struct net_device *d } } else { /* Hardware special tag parsing needs to be disabled if at least diff --git a/target/linux/generic/backport-5.15/730-13-v6.3-net-ethernet-mtk_eth_soc-enable-special-tag-when-any.patch b/target/linux/generic/backport-5.15/730-13-v6.3-net-ethernet-mtk_eth_soc-enable-special-tag-when-any.patch index e93e62125d458a..ec5dc49f5e5fac 100644 --- a/target/linux/generic/backport-5.15/730-13-v6.3-net-ethernet-mtk_eth_soc-enable-special-tag-when-any.patch +++ b/target/linux/generic/backport-5.15/730-13-v6.3-net-ethernet-mtk_eth_soc-enable-special-tag-when-any.patch @@ -23,7 +23,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3081,7 +3081,7 @@ static void mtk_gdm_config(struct mtk_et +@@ -3080,7 +3080,7 @@ static void mtk_gdm_config(struct mtk_et val |= config; @@ -32,7 +32,7 @@ Signed-off-by: David S. Miller val |= MTK_GDMA_SPECIAL_TAG; mtk_w32(eth, val, MTK_GDMA_FWD_CFG(i)); -@@ -3146,8 +3146,7 @@ static int mtk_open(struct net_device *d +@@ -3145,8 +3145,7 @@ static int mtk_open(struct net_device *d struct mtk_eth *eth = mac->hw; int i, err; @@ -42,7 +42,7 @@ Signed-off-by: David S. Miller for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) { struct metadata_dst *md_dst = eth->dsa_meta[i]; -@@ -3164,8 +3163,7 @@ static int mtk_open(struct net_device *d +@@ -3163,8 +3162,7 @@ static int mtk_open(struct net_device *d } } else { /* Hardware special tag parsing needs to be disabled if at least diff --git a/target/linux/generic/backport-5.15/730-14-v6.3-net-ethernet-mtk_eth_soc-fix-DSA-TX-tag-hwaccel-for-.patch b/target/linux/generic/backport-5.15/730-14-v6.3-net-ethernet-mtk_eth_soc-fix-DSA-TX-tag-hwaccel-for-.patch index c392429b887478..e75459696b6c95 100644 --- a/target/linux/generic/backport-5.15/730-14-v6.3-net-ethernet-mtk_eth_soc-fix-DSA-TX-tag-hwaccel-for-.patch +++ b/target/linux/generic/backport-5.15/730-14-v6.3-net-ethernet-mtk_eth_soc-fix-DSA-TX-tag-hwaccel-for-.patch @@ -77,7 +77,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1830,7 +1830,9 @@ static int mtk_poll_rx(struct napi_struc +@@ -1829,7 +1829,9 @@ static int mtk_poll_rx(struct napi_struc while (done < budget) { unsigned int pktlen, *rxdcsum; @@ -87,7 +87,7 @@ Signed-off-by: David S. Miller dma_addr_t dma_addr; u32 hash, reason; int mac = 0; -@@ -1970,27 +1972,29 @@ static int mtk_poll_rx(struct napi_struc +@@ -1969,27 +1971,29 @@ static int mtk_poll_rx(struct napi_struc if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) { if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { diff --git a/target/linux/generic/backport-5.15/730-18-v6.3-net-ethernet-mtk_eth_soc-fix-tx-throughput-regressio.patch b/target/linux/generic/backport-5.15/730-18-v6.3-net-ethernet-mtk_eth_soc-fix-tx-throughput-regressio.patch index e633f6f1fb809a..4ba492014a5f56 100644 --- a/target/linux/generic/backport-5.15/730-18-v6.3-net-ethernet-mtk_eth_soc-fix-tx-throughput-regressio.patch +++ b/target/linux/generic/backport-5.15/730-18-v6.3-net-ethernet-mtk_eth_soc-fix-tx-throughput-regressio.patch @@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -676,8 +676,6 @@ static void mtk_mac_link_up(struct phyli +@@ -675,8 +675,6 @@ static void mtk_mac_link_up(struct phyli break; } diff --git a/target/linux/generic/backport-5.15/733-v6.3-18-net-ethernet-mtk_eth_soc-add-support-for-MT7981.patch b/target/linux/generic/backport-5.15/733-v6.3-18-net-ethernet-mtk_eth_soc-add-support-for-MT7981.patch index b59638e772b80c..741831f6967f8a 100644 --- a/target/linux/generic/backport-5.15/733-v6.3-18-net-ethernet-mtk_eth_soc-add-support-for-MT7981.patch +++ b/target/linux/generic/backport-5.15/733-v6.3-18-net-ethernet-mtk_eth_soc-add-support-for-MT7981.patch @@ -51,7 +51,7 @@ Signed-off-by: Jakub Kicinski mtk_eth_path_name(path), __func__, updated); --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4752,6 +4752,26 @@ static const struct mtk_soc_data mt7629_ +@@ -4751,6 +4751,26 @@ static const struct mtk_soc_data mt7629_ }, }; @@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski static const struct mtk_soc_data mt7986_data = { .reg_map = &mt7986_reg_map, .ana_rgc3 = 0x128, -@@ -4794,6 +4814,7 @@ const struct of_device_id of_mtk_match[] +@@ -4793,6 +4813,7 @@ const struct of_device_id of_mtk_match[] { .compatible = "mediatek,mt7622-eth", .data = &mt7622_data}, { .compatible = "mediatek,mt7623-eth", .data = &mt7623_data}, { .compatible = "mediatek,mt7629-eth", .data = &mt7629_data}, diff --git a/target/linux/generic/backport-5.15/733-v6.3-19-net-ethernet-mtk_eth_soc-set-MDIO-bus-clock-frequenc.patch b/target/linux/generic/backport-5.15/733-v6.3-19-net-ethernet-mtk_eth_soc-set-MDIO-bus-clock-frequenc.patch index 9def19d67eb303..d4c1ecf22cc86a 100644 --- a/target/linux/generic/backport-5.15/733-v6.3-19-net-ethernet-mtk_eth_soc-set-MDIO-bus-clock-frequenc.patch +++ b/target/linux/generic/backport-5.15/733-v6.3-19-net-ethernet-mtk_eth_soc-set-MDIO-bus-clock-frequenc.patch @@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -702,8 +702,10 @@ static const struct phylink_mac_ops mtk_ +@@ -701,8 +701,10 @@ static const struct phylink_mac_ops mtk_ static int mtk_mdio_init(struct mtk_eth *eth) { @@ -32,7 +32,7 @@ Signed-off-by: Jakub Kicinski mii_np = of_get_child_by_name(eth->dev->of_node, "mdio-bus"); if (!mii_np) { -@@ -729,6 +731,25 @@ static int mtk_mdio_init(struct mtk_eth +@@ -728,6 +730,25 @@ static int mtk_mdio_init(struct mtk_eth eth->mii_bus->parent = eth->dev; snprintf(eth->mii_bus->id, MII_BUS_ID_SIZE, "%pOFn", mii_np); diff --git a/target/linux/generic/backport-5.15/733-v6.3-20-net-ethernet-mtk_eth_soc-switch-to-external-PCS-driv.patch b/target/linux/generic/backport-5.15/733-v6.3-20-net-ethernet-mtk_eth_soc-switch-to-external-PCS-driv.patch index c55d6b6428caf1..8f7620616756c1 100644 --- a/target/linux/generic/backport-5.15/733-v6.3-20-net-ethernet-mtk_eth_soc-switch-to-external-PCS-driv.patch +++ b/target/linux/generic/backport-5.15/733-v6.3-20-net-ethernet-mtk_eth_soc-switch-to-external-PCS-driv.patch @@ -60,7 +60,7 @@ Signed-off-by: Jakub Kicinski } return NULL; -@@ -3963,8 +3964,17 @@ static int mtk_unreg_dev(struct mtk_eth +@@ -3962,8 +3963,17 @@ static int mtk_unreg_dev(struct mtk_eth return 0; } @@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski mtk_unreg_dev(eth); mtk_free_dev(eth); cancel_work_sync(ð->pending_work); -@@ -4404,6 +4414,36 @@ void mtk_eth_set_dma_device(struct mtk_e +@@ -4403,6 +4413,36 @@ void mtk_eth_set_dma_device(struct mtk_e rtnl_unlock(); } @@ -115,7 +115,7 @@ Signed-off-by: Jakub Kicinski static int mtk_probe(struct platform_device *pdev) { struct resource *res = NULL; -@@ -4467,13 +4507,7 @@ static int mtk_probe(struct platform_dev +@@ -4466,13 +4506,7 @@ static int mtk_probe(struct platform_dev } if (MTK_HAS_CAPS(eth->soc->caps, MTK_SGMII)) { @@ -130,7 +130,7 @@ Signed-off-by: Jakub Kicinski if (err) return err; -@@ -4484,14 +4518,17 @@ static int mtk_probe(struct platform_dev +@@ -4483,14 +4517,17 @@ static int mtk_probe(struct platform_dev "mediatek,pctl"); if (IS_ERR(eth->pctl)) { dev_err(&pdev->dev, "no pctl regmap found\n"); @@ -151,7 +151,7 @@ Signed-off-by: Jakub Kicinski } if (eth->soc->offload_version) { -@@ -4652,6 +4689,8 @@ err_deinit_hw: +@@ -4651,6 +4688,8 @@ err_deinit_hw: mtk_hw_deinit(eth); err_wed_exit: mtk_wed_exit(); diff --git a/target/linux/generic/backport-5.15/733-v6.4-24-net-ethernet-mtk_eth_soc-ppe-add-support-for-flow-ac.patch b/target/linux/generic/backport-5.15/733-v6.4-24-net-ethernet-mtk_eth_soc-ppe-add-support-for-flow-ac.patch index 1c804f29b67e58..e4022ffbdf7c18 100644 --- a/target/linux/generic/backport-5.15/733-v6.4-24-net-ethernet-mtk_eth_soc-ppe-add-support-for-flow-ac.patch +++ b/target/linux/generic/backport-5.15/733-v6.4-24-net-ethernet-mtk_eth_soc-ppe-add-support-for-flow-ac.patch @@ -53,7 +53,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4638,8 +4638,8 @@ static int mtk_probe(struct platform_dev +@@ -4637,8 +4637,8 @@ static int mtk_probe(struct platform_dev for (i = 0; i < num_ppe; i++) { u32 ppe_addr = eth->soc->reg_map->ppe_base + i * 0x400; @@ -64,7 +64,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov if (!eth->ppe[i]) { err = -ENOMEM; goto err_deinit_ppe; -@@ -4765,6 +4765,7 @@ static const struct mtk_soc_data mt7622_ +@@ -4764,6 +4764,7 @@ static const struct mtk_soc_data mt7622_ .required_pctl = false, .offload_version = 2, .hash_offset = 2, @@ -72,7 +72,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov .foe_entry_size = sizeof(struct mtk_foe_entry) - 16, .txrx = { .txd_size = sizeof(struct mtk_tx_dma), -@@ -4802,6 +4803,7 @@ static const struct mtk_soc_data mt7629_ +@@ -4801,6 +4802,7 @@ static const struct mtk_soc_data mt7629_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7629_CLKS_BITMAP, .required_pctl = false, @@ -80,7 +80,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4822,6 +4824,7 @@ static const struct mtk_soc_data mt7981_ +@@ -4821,6 +4823,7 @@ static const struct mtk_soc_data mt7981_ .offload_version = 2, .hash_offset = 4, .foe_entry_size = sizeof(struct mtk_foe_entry), @@ -88,7 +88,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov .txrx = { .txd_size = sizeof(struct mtk_tx_dma_v2), .rxd_size = sizeof(struct mtk_rx_dma_v2), -@@ -4842,6 +4845,7 @@ static const struct mtk_soc_data mt7986_ +@@ -4841,6 +4844,7 @@ static const struct mtk_soc_data mt7986_ .offload_version = 2, .hash_offset = 4, .foe_entry_size = sizeof(struct mtk_foe_entry), diff --git a/target/linux/generic/backport-5.15/733-v6.4-26-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch b/target/linux/generic/backport-5.15/733-v6.4-26-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch index 6126dfeadc2e94..8be6a699214e4b 100644 --- a/target/linux/generic/backport-5.15/733-v6.4-26-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch +++ b/target/linux/generic/backport-5.15/733-v6.4-26-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1850,9 +1850,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1849,9 +1849,7 @@ static int mtk_poll_rx(struct napi_struc while (done < budget) { unsigned int pktlen, *rxdcsum; @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau dma_addr_t dma_addr; u32 hash, reason; int mac = 0; -@@ -1987,36 +1985,21 @@ static int mtk_poll_rx(struct napi_struc +@@ -1986,36 +1984,21 @@ static int mtk_poll_rx(struct napi_struc skb_checksum_none_assert(skb); skb->protocol = eth_type_trans(skb, netdev); @@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau skb_record_rx_queue(skb, 0); napi_gro_receive(napi, skb); -@@ -2834,29 +2817,11 @@ static netdev_features_t mtk_fix_feature +@@ -2833,29 +2816,11 @@ static netdev_features_t mtk_fix_feature static int mtk_set_features(struct net_device *dev, netdev_features_t features) { @@ -100,7 +100,7 @@ Signed-off-by: Felix Fietkau return 0; } -@@ -3170,30 +3135,6 @@ static int mtk_open(struct net_device *d +@@ -3169,30 +3134,6 @@ static int mtk_open(struct net_device *d struct mtk_eth *eth = mac->hw; int i, err; @@ -131,7 +131,7 @@ Signed-off-by: Felix Fietkau err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0); if (err) { netdev_err(dev, "%s: could not attach PHY: %d\n", __func__, -@@ -3234,6 +3175,35 @@ static int mtk_open(struct net_device *d +@@ -3233,6 +3174,35 @@ static int mtk_open(struct net_device *d phylink_start(mac->phylink); netif_tx_start_all_queues(dev); @@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau return 0; } -@@ -3718,10 +3688,9 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3717,10 +3687,9 @@ static int mtk_hw_init(struct mtk_eth *e if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { val = mtk_r32(eth, MTK_CDMP_IG_CTRL); mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL); @@ -180,7 +180,7 @@ Signed-off-by: Felix Fietkau /* set interrupt delays based on current Net DIM sample */ mtk_dim_rx(ð->rx_dim.work); -@@ -4361,7 +4330,7 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4360,7 +4329,7 @@ static int mtk_add_mac(struct mtk_eth *e eth->netdev[id]->hw_features |= NETIF_F_LRO; eth->netdev[id]->vlan_features = eth->soc->hw_features & diff --git a/target/linux/generic/backport-5.15/750-v6.5-01-net-ethernet-mtk_ppe-add-MTK_FOE_ENTRY_V-1-2-_SIZE-m.patch b/target/linux/generic/backport-5.15/750-v6.5-01-net-ethernet-mtk_ppe-add-MTK_FOE_ENTRY_V-1-2-_SIZE-m.patch index ad63dd61963626..25ac8db9124494 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-01-net-ethernet-mtk_ppe-add-MTK_FOE_ENTRY_V-1-2-_SIZE-m.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-01-net-ethernet-mtk_ppe-add-MTK_FOE_ENTRY_V-1-2-_SIZE-m.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4714,7 +4714,7 @@ static const struct mtk_soc_data mt7621_ +@@ -4713,7 +4713,7 @@ static const struct mtk_soc_data mt7621_ .required_pctl = false, .offload_version = 1, .hash_offset = 2, @@ -26,7 +26,7 @@ Signed-off-by: David S. Miller .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4735,7 +4735,7 @@ static const struct mtk_soc_data mt7622_ +@@ -4734,7 +4734,7 @@ static const struct mtk_soc_data mt7622_ .offload_version = 2, .hash_offset = 2, .has_accounting = true, @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4754,7 +4754,7 @@ static const struct mtk_soc_data mt7623_ +@@ -4753,7 +4753,7 @@ static const struct mtk_soc_data mt7623_ .required_pctl = true, .offload_version = 1, .hash_offset = 2, @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4792,8 +4792,8 @@ static const struct mtk_soc_data mt7981_ +@@ -4791,8 +4791,8 @@ static const struct mtk_soc_data mt7981_ .required_pctl = false, .offload_version = 2, .hash_offset = 4, @@ -54,7 +54,7 @@ Signed-off-by: David S. Miller .txrx = { .txd_size = sizeof(struct mtk_tx_dma_v2), .rxd_size = sizeof(struct mtk_rx_dma_v2), -@@ -4813,8 +4813,8 @@ static const struct mtk_soc_data mt7986_ +@@ -4812,8 +4812,8 @@ static const struct mtk_soc_data mt7986_ .required_pctl = false, .offload_version = 2, .hash_offset = 4, diff --git a/target/linux/generic/backport-5.15/750-v6.5-02-net-ethernet-mtk_eth_soc-remove-incorrect-PLL-config.patch b/target/linux/generic/backport-5.15/750-v6.5-02-net-ethernet-mtk_eth_soc-remove-incorrect-PLL-config.patch index c502c4c28c4ac4..97209958afcdc3 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-02-net-ethernet-mtk_eth_soc-remove-incorrect-PLL-config.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-02-net-ethernet-mtk_eth_soc-remove-incorrect-PLL-config.patch @@ -95,7 +95,7 @@ Signed-off-by: Paolo Abeni /* mt7623_pad_clk_setup */ for (i = 0 ; i < NUM_TRGMII_CTRL; i++) -@@ -4289,13 +4261,19 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4288,13 +4260,19 @@ static int mtk_add_mac(struct mtk_eth *e mac->phylink_config.mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE | MAC_10 | MAC_100 | MAC_1000 | MAC_2500FD; @@ -121,7 +121,7 @@ Signed-off-by: Paolo Abeni if (MTK_HAS_CAPS(mac->hw->soc->caps, MTK_TRGMII) && !mac->id) __set_bit(PHY_INTERFACE_MODE_TRGMII, -@@ -4755,6 +4733,7 @@ static const struct mtk_soc_data mt7623_ +@@ -4754,6 +4732,7 @@ static const struct mtk_soc_data mt7623_ .offload_version = 1, .hash_offset = 2, .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE, diff --git a/target/linux/generic/backport-5.15/750-v6.5-03-net-ethernet-mtk_eth_soc-remove-mac_pcs_get_state-an.patch b/target/linux/generic/backport-5.15/750-v6.5-03-net-ethernet-mtk_eth_soc-remove-mac_pcs_get_state-an.patch index 21ca0b1c08ca78..e1b12725b50a07 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-03-net-ethernet-mtk_eth_soc-remove-mac_pcs_get_state-an.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-03-net-ethernet-mtk_eth_soc-remove-mac_pcs_get_state-an.patch @@ -23,7 +23,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -512,38 +512,6 @@ static int mtk_mac_finish(struct phylink +@@ -511,38 +511,6 @@ static int mtk_mac_finish(struct phylink return 0; } @@ -62,7 +62,7 @@ Signed-off-by: Paolo Abeni static void mtk_mac_link_down(struct phylink_config *config, unsigned int mode, phy_interface_t interface) { -@@ -666,7 +634,6 @@ static void mtk_mac_link_up(struct phyli +@@ -665,7 +633,6 @@ static void mtk_mac_link_up(struct phyli static const struct phylink_mac_ops mtk_phylink_ops = { .validate = phylink_generic_validate, .mac_select_pcs = mtk_mac_select_pcs, @@ -70,7 +70,7 @@ Signed-off-by: Paolo Abeni .mac_config = mtk_mac_config, .mac_finish = mtk_mac_finish, .mac_link_down = mtk_mac_link_down, -@@ -4256,8 +4223,6 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4255,8 +4222,6 @@ static int mtk_add_mac(struct mtk_eth *e mac->phylink_config.dev = ð->netdev[id]->dev; mac->phylink_config.type = PHYLINK_NETDEV; diff --git a/target/linux/generic/backport-5.15/750-v6.5-05-net-ethernet-mtk_eth_soc-add-version-in-mtk_soc_data.patch b/target/linux/generic/backport-5.15/750-v6.5-05-net-ethernet-mtk_eth_soc-add-version-in-mtk_soc_data.patch index 40f27d4febfc61..e4be17c9cbcfe4 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-05-net-ethernet-mtk_eth_soc-add-version-in-mtk_soc_data.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-05-net-ethernet-mtk_eth_soc-add-version-in-mtk_soc_data.patch @@ -23,7 +23,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -537,7 +537,7 @@ static void mtk_set_queue_speed(struct m +@@ -536,7 +536,7 @@ static void mtk_set_queue_speed(struct m FIELD_PREP(MTK_QTX_SCH_MIN_RATE_MAN, 1) | FIELD_PREP(MTK_QTX_SCH_MIN_RATE_EXP, 4) | MTK_QTX_SCH_LEAKY_BUCKET_SIZE; @@ -32,7 +32,7 @@ Signed-off-by: Jakub Kicinski val |= MTK_QTX_SCH_LEAKY_BUCKET_EN; if (IS_ENABLED(CONFIG_SOC_MT7621)) { -@@ -912,7 +912,7 @@ static bool mtk_rx_get_desc(struct mtk_e +@@ -911,7 +911,7 @@ static bool mtk_rx_get_desc(struct mtk_e rxd->rxd1 = READ_ONCE(dma_rxd->rxd1); rxd->rxd3 = READ_ONCE(dma_rxd->rxd3); rxd->rxd4 = READ_ONCE(dma_rxd->rxd4); @@ -41,7 +41,7 @@ Signed-off-by: Jakub Kicinski rxd->rxd5 = READ_ONCE(dma_rxd->rxd5); rxd->rxd6 = READ_ONCE(dma_rxd->rxd6); } -@@ -970,7 +970,7 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -969,7 +969,7 @@ static int mtk_init_fq_dma(struct mtk_et txd->txd3 = TX_DMA_PLEN0(MTK_QDMA_PAGE_SIZE); txd->txd4 = 0; @@ -50,7 +50,7 @@ Signed-off-by: Jakub Kicinski txd->txd5 = 0; txd->txd6 = 0; txd->txd7 = 0; -@@ -1159,7 +1159,7 @@ static void mtk_tx_set_dma_desc(struct n +@@ -1158,7 +1158,7 @@ static void mtk_tx_set_dma_desc(struct n struct mtk_mac *mac = netdev_priv(dev); struct mtk_eth *eth = mac->hw; @@ -59,7 +59,7 @@ Signed-off-by: Jakub Kicinski mtk_tx_set_dma_desc_v2(dev, txd, info); else mtk_tx_set_dma_desc_v1(dev, txd, info); -@@ -1466,7 +1466,7 @@ static void mtk_update_rx_cpu_idx(struct +@@ -1465,7 +1465,7 @@ static void mtk_update_rx_cpu_idx(struct static bool mtk_page_pool_enabled(struct mtk_eth *eth) { @@ -68,7 +68,7 @@ Signed-off-by: Jakub Kicinski } static struct page_pool *mtk_create_page_pool(struct mtk_eth *eth, -@@ -1806,7 +1806,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1805,7 +1805,7 @@ static int mtk_poll_rx(struct napi_struc break; /* find out which mac the packet come from. values start at 1 */ @@ -77,7 +77,7 @@ Signed-off-by: Jakub Kicinski mac = RX_DMA_GET_SPORT_V2(trxd.rxd5) - 1; else if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) && !(trxd.rxd4 & RX_DMA_SPECIAL_TAG)) -@@ -1902,7 +1902,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1901,7 +1901,7 @@ static int mtk_poll_rx(struct napi_struc skb->dev = netdev; bytes += skb->len; @@ -86,7 +86,7 @@ Signed-off-by: Jakub Kicinski reason = FIELD_GET(MTK_RXD5_PPE_CPU_REASON, trxd.rxd5); hash = trxd.rxd5 & MTK_RXD5_FOE_ENTRY; if (hash != MTK_RXD5_FOE_ENTRY) -@@ -1927,8 +1927,8 @@ static int mtk_poll_rx(struct napi_struc +@@ -1926,8 +1926,8 @@ static int mtk_poll_rx(struct napi_struc /* When using VLAN untagging in combination with DSA, the * hardware treats the MTK special tag as a VLAN and untags it. */ @@ -97,7 +97,7 @@ Signed-off-by: Jakub Kicinski unsigned int port = RX_DMA_VPID(trxd.rxd3) & GENMASK(2, 0); if (port < ARRAY_SIZE(eth->dsa_meta) && -@@ -2232,7 +2232,7 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -2231,7 +2231,7 @@ static int mtk_tx_alloc(struct mtk_eth * txd->txd2 = next_ptr; txd->txd3 = TX_DMA_LS0 | TX_DMA_OWNER_CPU; txd->txd4 = 0; @@ -106,7 +106,7 @@ Signed-off-by: Jakub Kicinski txd->txd5 = 0; txd->txd6 = 0; txd->txd7 = 0; -@@ -2285,14 +2285,14 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -2284,14 +2284,14 @@ static int mtk_tx_alloc(struct mtk_eth * FIELD_PREP(MTK_QTX_SCH_MIN_RATE_MAN, 1) | FIELD_PREP(MTK_QTX_SCH_MIN_RATE_EXP, 4) | MTK_QTX_SCH_LEAKY_BUCKET_SIZE; @@ -123,7 +123,7 @@ Signed-off-by: Jakub Kicinski mtk_w32(eth, val, soc->reg_map->qdma.tx_sch_rate + 4); } else { mtk_w32(eth, ring->phys_pdma, MT7628_TX_BASE_PTR0); -@@ -2419,7 +2419,7 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -2418,7 +2418,7 @@ static int mtk_rx_alloc(struct mtk_eth * rxd->rxd3 = 0; rxd->rxd4 = 0; @@ -132,7 +132,7 @@ Signed-off-by: Jakub Kicinski rxd->rxd5 = 0; rxd->rxd6 = 0; rxd->rxd7 = 0; -@@ -2970,7 +2970,7 @@ static int mtk_start_dma(struct mtk_eth +@@ -2969,7 +2969,7 @@ static int mtk_start_dma(struct mtk_eth MTK_TX_BT_32DWORDS | MTK_NDP_CO_PRO | MTK_RX_2B_OFFSET | MTK_TX_WB_DDONE; @@ -141,7 +141,7 @@ Signed-off-by: Jakub Kicinski val |= MTK_MUTLI_CNT | MTK_RESV_BUF | MTK_WCOMP_EN | MTK_DMAD_WR_WDONE | MTK_CHK_DDONE_EN | MTK_LEAKY_BUCKET_EN; -@@ -3114,7 +3114,7 @@ static int mtk_open(struct net_device *d +@@ -3113,7 +3113,7 @@ static int mtk_open(struct net_device *d phylink_start(mac->phylink); netif_tx_start_all_queues(dev); @@ -150,7 +150,7 @@ Signed-off-by: Jakub Kicinski return 0; if (mtk_uses_dsa(dev) && !eth->prog) { -@@ -3379,7 +3379,7 @@ static void mtk_hw_reset(struct mtk_eth +@@ -3378,7 +3378,7 @@ static void mtk_hw_reset(struct mtk_eth { u32 val; @@ -159,7 +159,7 @@ Signed-off-by: Jakub Kicinski regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN, 0); val = RSTCTRL_PPE0_V2; } else { -@@ -3391,7 +3391,7 @@ static void mtk_hw_reset(struct mtk_eth +@@ -3390,7 +3390,7 @@ static void mtk_hw_reset(struct mtk_eth ethsys_reset(eth, RSTCTRL_ETH | RSTCTRL_FE | val); @@ -168,7 +168,7 @@ Signed-off-by: Jakub Kicinski regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN, 0x3ffffff); } -@@ -3417,7 +3417,7 @@ static void mtk_hw_warm_reset(struct mtk +@@ -3416,7 +3416,7 @@ static void mtk_hw_warm_reset(struct mtk return; } @@ -177,7 +177,7 @@ Signed-off-by: Jakub Kicinski rst_mask = RSTCTRL_ETH | RSTCTRL_PPE0_V2; else rst_mask = RSTCTRL_ETH | RSTCTRL_PPE0; -@@ -3587,7 +3587,7 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3586,7 +3586,7 @@ static int mtk_hw_init(struct mtk_eth *e else mtk_hw_reset(eth); @@ -186,7 +186,7 @@ Signed-off-by: Jakub Kicinski /* Set FE to PDMAv2 if necessary */ val = mtk_r32(eth, MTK_FE_GLO_MISC); mtk_w32(eth, val | BIT(4), MTK_FE_GLO_MISC); -@@ -3624,7 +3624,7 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3623,7 +3623,7 @@ static int mtk_hw_init(struct mtk_eth *e */ val = mtk_r32(eth, MTK_CDMQ_IG_CTRL); mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL); @@ -195,7 +195,7 @@ Signed-off-by: Jakub Kicinski val = mtk_r32(eth, MTK_CDMP_IG_CTRL); mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL); -@@ -3646,7 +3646,7 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3645,7 +3645,7 @@ static int mtk_hw_init(struct mtk_eth *e mtk_w32(eth, eth->soc->txrx.rx_irq_done_mask, reg_map->qdma.int_grp + 4); mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP); @@ -204,7 +204,7 @@ Signed-off-by: Jakub Kicinski /* PSE should not drop port8 and port9 packets from WDMA Tx */ mtk_w32(eth, 0x00000300, PSE_DROP_CFG); -@@ -4435,7 +4435,7 @@ static int mtk_probe(struct platform_dev +@@ -4434,7 +4434,7 @@ static int mtk_probe(struct platform_dev } } @@ -213,7 +213,7 @@ Signed-off-by: Jakub Kicinski res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { err = -EINVAL; -@@ -4543,9 +4543,8 @@ static int mtk_probe(struct platform_dev +@@ -4542,9 +4542,8 @@ static int mtk_probe(struct platform_dev } if (eth->soc->offload_version) { @@ -224,7 +224,7 @@ Signed-off-by: Jakub Kicinski num_ppe = min_t(u32, ARRAY_SIZE(eth->ppe), num_ppe); for (i = 0; i < num_ppe; i++) { u32 ppe_addr = eth->soc->reg_map->ppe_base + i * 0x400; -@@ -4639,6 +4638,7 @@ static const struct mtk_soc_data mt2701_ +@@ -4638,6 +4637,7 @@ static const struct mtk_soc_data mt2701_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7623_CLKS_BITMAP, .required_pctl = true, @@ -232,7 +232,7 @@ Signed-off-by: Jakub Kicinski .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4655,6 +4655,7 @@ static const struct mtk_soc_data mt7621_ +@@ -4654,6 +4654,7 @@ static const struct mtk_soc_data mt7621_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7621_CLKS_BITMAP, .required_pctl = false, @@ -240,7 +240,7 @@ Signed-off-by: Jakub Kicinski .offload_version = 1, .hash_offset = 2, .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE, -@@ -4675,6 +4676,7 @@ static const struct mtk_soc_data mt7622_ +@@ -4674,6 +4675,7 @@ static const struct mtk_soc_data mt7622_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7622_CLKS_BITMAP, .required_pctl = false, @@ -248,7 +248,7 @@ Signed-off-by: Jakub Kicinski .offload_version = 2, .hash_offset = 2, .has_accounting = true, -@@ -4695,6 +4697,7 @@ static const struct mtk_soc_data mt7623_ +@@ -4694,6 +4696,7 @@ static const struct mtk_soc_data mt7623_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7623_CLKS_BITMAP, .required_pctl = true, @@ -256,7 +256,7 @@ Signed-off-by: Jakub Kicinski .offload_version = 1, .hash_offset = 2, .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE, -@@ -4717,6 +4720,7 @@ static const struct mtk_soc_data mt7629_ +@@ -4716,6 +4719,7 @@ static const struct mtk_soc_data mt7629_ .required_clks = MT7629_CLKS_BITMAP, .required_pctl = false, .has_accounting = true, @@ -264,7 +264,7 @@ Signed-off-by: Jakub Kicinski .txrx = { .txd_size = sizeof(struct mtk_tx_dma), .rxd_size = sizeof(struct mtk_rx_dma), -@@ -4734,6 +4738,7 @@ static const struct mtk_soc_data mt7981_ +@@ -4733,6 +4737,7 @@ static const struct mtk_soc_data mt7981_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7981_CLKS_BITMAP, .required_pctl = false, @@ -272,7 +272,7 @@ Signed-off-by: Jakub Kicinski .offload_version = 2, .hash_offset = 4, .has_accounting = true, -@@ -4755,6 +4760,7 @@ static const struct mtk_soc_data mt7986_ +@@ -4754,6 +4759,7 @@ static const struct mtk_soc_data mt7986_ .hw_features = MTK_HW_FEATURES, .required_clks = MT7986_CLKS_BITMAP, .required_pctl = false, @@ -280,7 +280,7 @@ Signed-off-by: Jakub Kicinski .offload_version = 2, .hash_offset = 4, .has_accounting = true, -@@ -4775,6 +4781,7 @@ static const struct mtk_soc_data rt5350_ +@@ -4774,6 +4780,7 @@ static const struct mtk_soc_data rt5350_ .hw_features = MTK_HW_FEATURES_MT7628, .required_clks = MT7628_CLKS_BITMAP, .required_pctl = false, @@ -491,7 +491,7 @@ Signed-off-by: Jakub Kicinski else val = MTK_FOE_IB2_MIB_CNT; @@ -971,7 +971,7 @@ void mtk_ppe_start(struct mtk_ppe *ppe) - MTK_PPE_SCAN_MODE_KEEPALIVE_AGE) | + MTK_PPE_SCAN_MODE_CHECK_AGE) | FIELD_PREP(MTK_PPE_TB_CFG_ENTRY_NUM, MTK_PPE_ENTRIES_SHIFT); - if (MTK_HAS_CAPS(ppe->eth->soc->caps, MTK_NETSYS_V2)) diff --git a/target/linux/generic/backport-5.15/750-v6.5-07-net-ethernet-mtk_eth_soc-rely-on-MTK_MAX_DEVS-and-re.patch b/target/linux/generic/backport-5.15/750-v6.5-07-net-ethernet-mtk_eth_soc-rely-on-MTK_MAX_DEVS-and-re.patch index 281291252b45a5..faa8734c24b4f0 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-07-net-ethernet-mtk_eth_soc-rely-on-MTK_MAX_DEVS-and-re.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-07-net-ethernet-mtk_eth_soc-rely-on-MTK_MAX_DEVS-and-re.patch @@ -17,7 +17,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -838,7 +838,7 @@ static void mtk_stats_update(struct mtk_ +@@ -837,7 +837,7 @@ static void mtk_stats_update(struct mtk_ { int i; @@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski if (!eth->mac[i] || !eth->mac[i]->hw_stats) continue; if (spin_trylock(ð->mac[i]->hw_stats->stats_lock)) { -@@ -1341,7 +1341,7 @@ static int mtk_queue_stopped(struct mtk_ +@@ -1340,7 +1340,7 @@ static int mtk_queue_stopped(struct mtk_ { int i; @@ -35,7 +35,7 @@ Signed-off-by: Jakub Kicinski if (!eth->netdev[i]) continue; if (netif_queue_stopped(eth->netdev[i])) -@@ -1355,7 +1355,7 @@ static void mtk_wake_queue(struct mtk_et +@@ -1354,7 +1354,7 @@ static void mtk_wake_queue(struct mtk_et { int i; @@ -44,7 +44,7 @@ Signed-off-by: Jakub Kicinski if (!eth->netdev[i]) continue; netif_tx_wake_all_queues(eth->netdev[i]); -@@ -1812,7 +1812,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1811,7 +1811,7 @@ static int mtk_poll_rx(struct napi_struc !(trxd.rxd4 & RX_DMA_SPECIAL_TAG)) mac = RX_DMA_GET_SPORT(trxd.rxd4) - 1; @@ -53,7 +53,7 @@ Signed-off-by: Jakub Kicinski !eth->netdev[mac])) goto release_desc; -@@ -2844,7 +2844,7 @@ static void mtk_dma_free(struct mtk_eth +@@ -2843,7 +2843,7 @@ static void mtk_dma_free(struct mtk_eth const struct mtk_soc_data *soc = eth->soc; int i; @@ -62,7 +62,7 @@ Signed-off-by: Jakub Kicinski if (eth->netdev[i]) netdev_reset_queue(eth->netdev[i]); if (eth->scratch_ring) { -@@ -2998,8 +2998,13 @@ static void mtk_gdm_config(struct mtk_et +@@ -2997,8 +2997,13 @@ static void mtk_gdm_config(struct mtk_et if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) return; @@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski /* default setup the forward port to send frame to PDMA */ val &= ~0xffff; -@@ -3009,7 +3014,7 @@ static void mtk_gdm_config(struct mtk_et +@@ -3008,7 +3013,7 @@ static void mtk_gdm_config(struct mtk_et val |= config; @@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski val |= MTK_GDMA_SPECIAL_TAG; mtk_w32(eth, val, MTK_GDMA_FWD_CFG(i)); -@@ -3608,15 +3613,15 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3607,15 +3612,15 @@ static int mtk_hw_init(struct mtk_eth *e * up with the more appropriate value when mtk_mac_config call is being * invoked. */ @@ -109,7 +109,7 @@ Signed-off-by: Jakub Kicinski } /* Indicates CDM to parse the MTK special tag from CPU -@@ -3796,7 +3801,7 @@ static void mtk_pending_work(struct work +@@ -3795,7 +3800,7 @@ static void mtk_pending_work(struct work mtk_prepare_for_reset(eth); /* stop all devices to make sure that dma is properly shut down */ @@ -118,7 +118,7 @@ Signed-off-by: Jakub Kicinski if (!eth->netdev[i] || !netif_running(eth->netdev[i])) continue; -@@ -3812,8 +3817,8 @@ static void mtk_pending_work(struct work +@@ -3811,8 +3816,8 @@ static void mtk_pending_work(struct work mtk_hw_init(eth, true); /* restart DMA and enable IRQs */ @@ -129,7 +129,7 @@ Signed-off-by: Jakub Kicinski continue; if (mtk_open(eth->netdev[i])) { -@@ -3840,7 +3845,7 @@ static int mtk_free_dev(struct mtk_eth * +@@ -3839,7 +3844,7 @@ static int mtk_free_dev(struct mtk_eth * { int i; @@ -138,7 +138,7 @@ Signed-off-by: Jakub Kicinski if (!eth->netdev[i]) continue; free_netdev(eth->netdev[i]); -@@ -3859,7 +3864,7 @@ static int mtk_unreg_dev(struct mtk_eth +@@ -3858,7 +3863,7 @@ static int mtk_unreg_dev(struct mtk_eth { int i; @@ -147,7 +147,7 @@ Signed-off-by: Jakub Kicinski struct mtk_mac *mac; if (!eth->netdev[i]) continue; -@@ -4160,7 +4165,7 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4159,7 +4164,7 @@ static int mtk_add_mac(struct mtk_eth *e } id = be32_to_cpup(_id); @@ -156,7 +156,7 @@ Signed-off-by: Jakub Kicinski dev_err(eth->dev, "%d is not a valid mac id\n", id); return -EINVAL; } -@@ -4305,7 +4310,7 @@ void mtk_eth_set_dma_device(struct mtk_e +@@ -4304,7 +4309,7 @@ void mtk_eth_set_dma_device(struct mtk_e rtnl_lock(); @@ -165,7 +165,7 @@ Signed-off-by: Jakub Kicinski dev = eth->netdev[i]; if (!dev || !(dev->flags & IFF_UP)) -@@ -4613,7 +4618,7 @@ static int mtk_remove(struct platform_de +@@ -4612,7 +4617,7 @@ static int mtk_remove(struct platform_de int i; /* stop all devices to make sure that dma is properly shut down */ diff --git a/target/linux/generic/backport-5.15/750-v6.5-08-net-ethernet-mtk_eth_soc-add-NETSYS_V3-version-suppo.patch b/target/linux/generic/backport-5.15/750-v6.5-08-net-ethernet-mtk_eth_soc-add-NETSYS_V3-version-suppo.patch index abfda59339a186..c22b55c6f13ddb 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-08-net-ethernet-mtk_eth_soc-add-NETSYS_V3-version-suppo.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-08-net-ethernet-mtk_eth_soc-add-NETSYS_V3-version-suppo.patch @@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -818,17 +818,32 @@ void mtk_stats_update_mac(struct mtk_mac +@@ -817,17 +817,32 @@ void mtk_stats_update_mac(struct mtk_mac mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x20 + offs); hw_stats->rx_flow_control_packets += mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x24 + offs); @@ -62,7 +62,7 @@ Signed-off-by: Jakub Kicinski } u64_stats_update_end(&hw_stats->syncp); -@@ -1130,7 +1145,10 @@ static void mtk_tx_set_dma_desc_v2(struc +@@ -1129,7 +1144,10 @@ static void mtk_tx_set_dma_desc_v2(struc data |= TX_DMA_LS0; WRITE_ONCE(desc->txd3, data); @@ -74,7 +74,7 @@ Signed-off-by: Jakub Kicinski data |= TX_DMA_SWC_V2 | QID_BITS_V2(info->qid); WRITE_ONCE(desc->txd4, data); -@@ -1141,6 +1159,8 @@ static void mtk_tx_set_dma_desc_v2(struc +@@ -1140,6 +1158,8 @@ static void mtk_tx_set_dma_desc_v2(struc /* tx checksum offload */ if (info->csum) data |= TX_DMA_CHKSUM_V2; @@ -83,7 +83,7 @@ Signed-off-by: Jakub Kicinski } WRITE_ONCE(desc->txd5, data); -@@ -1206,8 +1226,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1205,8 +1225,7 @@ static int mtk_tx_map(struct sk_buff *sk mtk_tx_set_dma_desc(dev, itxd, &txd_info); itx_buf->flags |= MTK_TX_FLAGS_SINGLE0; @@ -93,7 +93,7 @@ Signed-off-by: Jakub Kicinski setup_tx_buf(eth, itx_buf, itxd_pdma, txd_info.addr, txd_info.size, k++); -@@ -1255,8 +1274,7 @@ static int mtk_tx_map(struct sk_buff *sk +@@ -1254,8 +1273,7 @@ static int mtk_tx_map(struct sk_buff *sk memset(tx_buf, 0, sizeof(*tx_buf)); tx_buf->data = (void *)MTK_DMA_DUMMY_DESC; tx_buf->flags |= MTK_TX_FLAGS_PAGE0; @@ -103,7 +103,7 @@ Signed-off-by: Jakub Kicinski setup_tx_buf(eth, tx_buf, txd_pdma, txd_info.addr, txd_info.size, k++); -@@ -1558,7 +1576,7 @@ static int mtk_xdp_frame_map(struct mtk_ +@@ -1557,7 +1575,7 @@ static int mtk_xdp_frame_map(struct mtk_ } mtk_tx_set_dma_desc(dev, txd, txd_info); @@ -112,7 +112,7 @@ Signed-off-by: Jakub Kicinski tx_buf->type = dma_map ? MTK_TYPE_XDP_NDO : MTK_TYPE_XDP_TX; tx_buf->data = (void *)MTK_DMA_DUMMY_DESC; -@@ -1806,11 +1824,24 @@ static int mtk_poll_rx(struct napi_struc +@@ -1805,11 +1823,24 @@ static int mtk_poll_rx(struct napi_struc break; /* find out which mac the packet come from. values start at 1 */ @@ -141,7 +141,7 @@ Signed-off-by: Jakub Kicinski if (unlikely(mac < 0 || mac >= MTK_MAX_DEVS || !eth->netdev[mac])) -@@ -2030,7 +2061,6 @@ static int mtk_poll_tx_qdma(struct mtk_e +@@ -2029,7 +2060,6 @@ static int mtk_poll_tx_qdma(struct mtk_e while ((cpu != dma) && budget) { u32 next_cpu = desc->txd2; @@ -149,7 +149,7 @@ Signed-off-by: Jakub Kicinski desc = mtk_qdma_phys_to_virt(ring, desc->txd2); if ((desc->txd3 & TX_DMA_OWNER_CPU) == 0) -@@ -2038,15 +2068,13 @@ static int mtk_poll_tx_qdma(struct mtk_e +@@ -2037,15 +2067,13 @@ static int mtk_poll_tx_qdma(struct mtk_e tx_buf = mtk_desc_to_tx_buf(ring, desc, eth->soc->txrx.txd_size); @@ -167,7 +167,7 @@ Signed-off-by: Jakub Kicinski budget--; } -@@ -3651,7 +3679,24 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3650,7 +3678,24 @@ static int mtk_hw_init(struct mtk_eth *e mtk_w32(eth, eth->soc->txrx.rx_irq_done_mask, reg_map->qdma.int_grp + 4); mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP); @@ -193,7 +193,7 @@ Signed-off-by: Jakub Kicinski /* PSE should not drop port8 and port9 packets from WDMA Tx */ mtk_w32(eth, 0x00000300, PSE_DROP_CFG); -@@ -4213,7 +4258,11 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4212,7 +4257,11 @@ static int mtk_add_mac(struct mtk_eth *e } spin_lock_init(&mac->hw_stats->stats_lock); u64_stats_init(&mac->hw_stats->syncp); diff --git a/target/linux/generic/backport-5.15/750-v6.5-11-net-ethernet-mtk_eth_soc-add-basic-support-for-MT798.patch b/target/linux/generic/backport-5.15/750-v6.5-11-net-ethernet-mtk_eth_soc-add-basic-support-for-MT798.patch index cc08ef133882b5..58b9cec626a3f5 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-11-net-ethernet-mtk_eth_soc-add-basic-support-for-MT798.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-11-net-ethernet-mtk_eth_soc-add-basic-support-for-MT798.patch @@ -219,7 +219,7 @@ Signed-off-by: Jakub Kicinski return; err_phy: -@@ -682,11 +798,15 @@ static int mtk_mdio_init(struct mtk_eth +@@ -681,11 +797,15 @@ static int mtk_mdio_init(struct mtk_eth } divider = min_t(unsigned int, DIV_ROUND_UP(MDC_MAX_FREQ, max_clk), 63); @@ -239,7 +239,7 @@ Signed-off-by: Jakub Kicinski dev_dbg(eth->dev, "MDC is running on %d Hz\n", MDC_MAX_FREQ / divider); -@@ -1145,10 +1265,19 @@ static void mtk_tx_set_dma_desc_v2(struc +@@ -1144,10 +1264,19 @@ static void mtk_tx_set_dma_desc_v2(struc data |= TX_DMA_LS0; WRITE_ONCE(desc->txd3, data); @@ -263,7 +263,7 @@ Signed-off-by: Jakub Kicinski data |= TX_DMA_SWC_V2 | QID_BITS_V2(info->qid); WRITE_ONCE(desc->txd4, data); -@@ -4307,6 +4436,17 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4306,6 +4435,17 @@ static int mtk_add_mac(struct mtk_eth *e mac->phylink_config.supported_interfaces); } @@ -281,7 +281,7 @@ Signed-off-by: Jakub Kicinski phylink = phylink_create(&mac->phylink_config, of_fwnode_handle(mac->of_node), phy_mode, &mtk_phylink_ops); -@@ -4829,6 +4969,24 @@ static const struct mtk_soc_data mt7986_ +@@ -4828,6 +4968,24 @@ static const struct mtk_soc_data mt7986_ }, }; @@ -306,7 +306,7 @@ Signed-off-by: Jakub Kicinski static const struct mtk_soc_data rt5350_data = { .reg_map = &mt7628_reg_map, .caps = MT7628_CAPS, -@@ -4847,14 +5005,15 @@ static const struct mtk_soc_data rt5350_ +@@ -4846,14 +5004,15 @@ static const struct mtk_soc_data rt5350_ }; const struct of_device_id of_mtk_match[] = { diff --git a/target/linux/generic/backport-5.15/750-v6.5-12-net-ethernet-mtk_eth_soc-enable-page_pool-support-fo.patch b/target/linux/generic/backport-5.15/750-v6.5-12-net-ethernet-mtk_eth_soc-enable-page_pool-support-fo.patch index 0a2bc6ae783c65..95bf60da808f0a 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-12-net-ethernet-mtk_eth_soc-enable-page_pool-support-fo.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-12-net-ethernet-mtk_eth_soc-enable-page_pool-support-fo.patch @@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1613,7 +1613,7 @@ static void mtk_update_rx_cpu_idx(struct +@@ -1612,7 +1612,7 @@ static void mtk_update_rx_cpu_idx(struct static bool mtk_page_pool_enabled(struct mtk_eth *eth) { diff --git a/target/linux/generic/backport-5.15/750-v6.5-13-net-ethernet-mtk_eth_soc-enable-nft-hw-flowtable_off.patch b/target/linux/generic/backport-5.15/750-v6.5-13-net-ethernet-mtk_eth_soc-enable-nft-hw-flowtable_off.patch index ebfb1f0c35c45e..5205914c4ff0d7 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-13-net-ethernet-mtk_eth_soc-enable-nft-hw-flowtable_off.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-13-net-ethernet-mtk_eth_soc-enable-nft-hw-flowtable_off.patch @@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4977,6 +4977,9 @@ static const struct mtk_soc_data mt7988_ +@@ -4976,6 +4976,9 @@ static const struct mtk_soc_data mt7988_ .required_clks = MT7988_CLKS_BITMAP, .required_pctl = false, .version = 3, diff --git a/target/linux/generic/backport-5.15/750-v6.5-14-net-ethernet-mtk_eth_soc-support-per-flow-accounting.patch b/target/linux/generic/backport-5.15/750-v6.5-14-net-ethernet-mtk_eth_soc-support-per-flow-accounting.patch index aab3b848a6c7f8..8a48976126a945 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-14-net-ethernet-mtk_eth_soc-support-per-flow-accounting.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-14-net-ethernet-mtk_eth_soc-support-per-flow-accounting.patch @@ -20,7 +20,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4979,6 +4979,7 @@ static const struct mtk_soc_data mt7988_ +@@ -4978,6 +4978,7 @@ static const struct mtk_soc_data mt7988_ .version = 3, .offload_version = 2, .hash_offset = 4, diff --git a/target/linux/generic/backport-5.15/750-v6.5-17-net-ethernet-mtk_eth_soc-add-reset-bits-for-MT7988.patch b/target/linux/generic/backport-5.15/750-v6.5-17-net-ethernet-mtk_eth_soc-add-reset-bits-for-MT7988.patch index 2d750abb45ab85..963807aa45455c 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-17-net-ethernet-mtk_eth_soc-add-reset-bits-for-MT7988.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-17-net-ethernet-mtk_eth_soc-add-reset-bits-for-MT7988.patch @@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3541,19 +3541,34 @@ static void mtk_hw_reset(struct mtk_eth +@@ -3540,19 +3540,34 @@ static void mtk_hw_reset(struct mtk_eth { u32 val; @@ -56,7 +56,7 @@ Signed-off-by: Jakub Kicinski regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN, 0x3ffffff); } -@@ -3579,13 +3594,21 @@ static void mtk_hw_warm_reset(struct mtk +@@ -3578,13 +3593,21 @@ static void mtk_hw_warm_reset(struct mtk return; } @@ -83,7 +83,7 @@ Signed-off-by: Jakub Kicinski regmap_update_bits(eth->ethsys, ETHSYS_RSTCTRL, rst_mask, rst_mask); -@@ -3937,11 +3960,17 @@ static void mtk_prepare_for_reset(struct +@@ -3936,11 +3959,17 @@ static void mtk_prepare_for_reset(struct u32 val; int i; @@ -106,7 +106,7 @@ Signed-off-by: Jakub Kicinski /* adjust PPE configurations to prepare for reset */ for (i = 0; i < ARRAY_SIZE(eth->ppe); i++) -@@ -4002,11 +4031,18 @@ static void mtk_pending_work(struct work +@@ -4001,11 +4030,18 @@ static void mtk_pending_work(struct work } } diff --git a/target/linux/generic/backport-5.15/750-v6.5-18-net-ethernet-mtk_eth_soc-add-support-for-in-SoC-SRAM.patch b/target/linux/generic/backport-5.15/750-v6.5-18-net-ethernet-mtk_eth_soc-add-support-for-in-SoC-SRAM.patch index 52bd017300836b..e224443e439538 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-18-net-ethernet-mtk_eth_soc-add-support-for-in-SoC-SRAM.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-18-net-ethernet-mtk_eth_soc-add-support-for-in-SoC-SRAM.patch @@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1075,10 +1075,13 @@ static int mtk_init_fq_dma(struct mtk_et +@@ -1074,10 +1074,13 @@ static int mtk_init_fq_dma(struct mtk_et dma_addr_t dma_addr; int i; @@ -38,7 +38,7 @@ Signed-off-by: Jakub Kicinski if (unlikely(!eth->scratch_ring)) return -ENOMEM; -@@ -2376,8 +2379,14 @@ static int mtk_tx_alloc(struct mtk_eth * +@@ -2375,8 +2378,14 @@ static int mtk_tx_alloc(struct mtk_eth * if (!ring->buf) goto no_tx_mem; @@ -55,7 +55,7 @@ Signed-off-by: Jakub Kicinski if (!ring->dma) goto no_tx_mem; -@@ -2476,8 +2485,7 @@ static void mtk_tx_clean(struct mtk_eth +@@ -2475,8 +2484,7 @@ static void mtk_tx_clean(struct mtk_eth kfree(ring->buf); ring->buf = NULL; } @@ -65,7 +65,7 @@ Signed-off-by: Jakub Kicinski dma_free_coherent(eth->dma_dev, ring->dma_size * soc->txrx.txd_size, ring->dma, ring->phys); -@@ -2496,9 +2504,14 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -2495,9 +2503,14 @@ static int mtk_rx_alloc(struct mtk_eth * { const struct mtk_reg_map *reg_map = eth->soc->reg_map; struct mtk_rx_ring *ring; @@ -81,7 +81,7 @@ Signed-off-by: Jakub Kicinski if (rx_flag == MTK_RX_FLAGS_QDMA) { if (ring_no) return -EINVAL; -@@ -2533,9 +2546,20 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -2532,9 +2545,20 @@ static int mtk_rx_alloc(struct mtk_eth * ring->page_pool = pp; } @@ -105,7 +105,7 @@ Signed-off-by: Jakub Kicinski if (!ring->dma) return -ENOMEM; -@@ -2618,7 +2642,7 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -2617,7 +2641,7 @@ static int mtk_rx_alloc(struct mtk_eth * return 0; } @@ -114,7 +114,7 @@ Signed-off-by: Jakub Kicinski { int i; -@@ -2641,7 +2665,7 @@ static void mtk_rx_clean(struct mtk_eth +@@ -2640,7 +2664,7 @@ static void mtk_rx_clean(struct mtk_eth ring->data = NULL; } @@ -123,7 +123,7 @@ Signed-off-by: Jakub Kicinski dma_free_coherent(eth->dma_dev, ring->dma_size * eth->soc->txrx.rxd_size, ring->dma, ring->phys); -@@ -3004,7 +3028,7 @@ static void mtk_dma_free(struct mtk_eth +@@ -3003,7 +3027,7 @@ static void mtk_dma_free(struct mtk_eth for (i = 0; i < MTK_MAX_DEVS; i++) if (eth->netdev[i]) netdev_reset_queue(eth->netdev[i]); @@ -132,7 +132,7 @@ Signed-off-by: Jakub Kicinski dma_free_coherent(eth->dma_dev, MTK_QDMA_RING_SIZE * soc->txrx.txd_size, eth->scratch_ring, eth->phy_scratch_ring); -@@ -3012,13 +3036,13 @@ static void mtk_dma_free(struct mtk_eth +@@ -3011,13 +3035,13 @@ static void mtk_dma_free(struct mtk_eth eth->phy_scratch_ring = 0; } mtk_tx_clean(eth); @@ -149,7 +149,7 @@ Signed-off-by: Jakub Kicinski } kfree(eth->scratch_head); -@@ -4588,7 +4612,7 @@ static int mtk_sgmii_init(struct mtk_eth +@@ -4587,7 +4611,7 @@ static int mtk_sgmii_init(struct mtk_eth static int mtk_probe(struct platform_device *pdev) { @@ -158,7 +158,7 @@ Signed-off-by: Jakub Kicinski struct device_node *mac_np; struct mtk_eth *eth; int err, i; -@@ -4608,6 +4632,20 @@ static int mtk_probe(struct platform_dev +@@ -4607,6 +4631,20 @@ static int mtk_probe(struct platform_dev if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) eth->ip_align = NET_IP_ALIGN; @@ -179,7 +179,7 @@ Signed-off-by: Jakub Kicinski spin_lock_init(ð->page_lock); spin_lock_init(ð->tx_irq_lock); spin_lock_init(ð->rx_irq_lock); -@@ -4671,6 +4709,18 @@ static int mtk_probe(struct platform_dev +@@ -4670,6 +4708,18 @@ static int mtk_probe(struct platform_dev err = -EINVAL; goto err_destroy_sgmii; } diff --git a/target/linux/generic/backport-5.15/750-v6.5-19-net-ethernet-mtk_eth_soc-support-36-bit-DMA-addressi.patch b/target/linux/generic/backport-5.15/750-v6.5-19-net-ethernet-mtk_eth_soc-support-36-bit-DMA-addressi.patch index 26c5889545459b..528f9a3e5c6ebc 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-19-net-ethernet-mtk_eth_soc-support-36-bit-DMA-addressi.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-19-net-ethernet-mtk_eth_soc-support-36-bit-DMA-addressi.patch @@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1266,6 +1266,10 @@ static void mtk_tx_set_dma_desc_v2(struc +@@ -1265,6 +1265,10 @@ static void mtk_tx_set_dma_desc_v2(struc data = TX_DMA_PLEN0(info->size); if (info->last) data |= TX_DMA_LS0; @@ -30,7 +30,7 @@ Signed-off-by: Jakub Kicinski WRITE_ONCE(desc->txd3, data); /* set forward port */ -@@ -1933,6 +1937,7 @@ static int mtk_poll_rx(struct napi_struc +@@ -1932,6 +1936,7 @@ static int mtk_poll_rx(struct napi_struc bool xdp_flush = false; int idx; struct sk_buff *skb; @@ -38,7 +38,7 @@ Signed-off-by: Jakub Kicinski u8 *data, *new_data; struct mtk_rx_dma_v2 *rxd, trxd; int done = 0, bytes = 0; -@@ -2048,7 +2053,10 @@ static int mtk_poll_rx(struct napi_struc +@@ -2047,7 +2052,10 @@ static int mtk_poll_rx(struct napi_struc goto release_desc; } @@ -50,7 +50,7 @@ Signed-off-by: Jakub Kicinski ring->buf_size, DMA_FROM_DEVICE); skb = build_skb(data, ring->frag_size); -@@ -2114,6 +2122,9 @@ release_desc: +@@ -2113,6 +2121,9 @@ release_desc: else rxd->rxd2 = RX_DMA_PREP_PLEN0(ring->buf_size); @@ -60,7 +60,7 @@ Signed-off-by: Jakub Kicinski ring->calc_idx = idx; done++; } -@@ -2598,6 +2609,9 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -2597,6 +2608,9 @@ static int mtk_rx_alloc(struct mtk_eth * else rxd->rxd2 = RX_DMA_PREP_PLEN0(ring->buf_size); @@ -70,7 +70,7 @@ Signed-off-by: Jakub Kicinski rxd->rxd3 = 0; rxd->rxd4 = 0; if (mtk_is_netsys_v2_or_greater(eth)) { -@@ -2644,6 +2658,7 @@ static int mtk_rx_alloc(struct mtk_eth * +@@ -2643,6 +2657,7 @@ static int mtk_rx_alloc(struct mtk_eth * static void mtk_rx_clean(struct mtk_eth *eth, struct mtk_rx_ring *ring, bool in_sram) { @@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski int i; if (ring->data && ring->dma) { -@@ -2657,7 +2672,10 @@ static void mtk_rx_clean(struct mtk_eth +@@ -2656,7 +2671,10 @@ static void mtk_rx_clean(struct mtk_eth if (!rxd->rxd1) continue; @@ -90,7 +90,7 @@ Signed-off-by: Jakub Kicinski ring->buf_size, DMA_FROM_DEVICE); mtk_rx_put_buff(ring, ring->data[i], false); } -@@ -4646,6 +4664,14 @@ static int mtk_probe(struct platform_dev +@@ -4645,6 +4663,14 @@ static int mtk_probe(struct platform_dev } } diff --git a/target/linux/generic/backport-5.15/750-v6.5-20-net-ethernet-mtk_eth_soc-fix-uninitialized-variable.patch b/target/linux/generic/backport-5.15/750-v6.5-20-net-ethernet-mtk_eth_soc-fix-uninitialized-variable.patch index 7ea0707d9d0b83..959add1954c98f 100644 --- a/target/linux/generic/backport-5.15/750-v6.5-20-net-ethernet-mtk_eth_soc-fix-uninitialized-variable.patch +++ b/target/linux/generic/backport-5.15/750-v6.5-20-net-ethernet-mtk_eth_soc-fix-uninitialized-variable.patch @@ -19,7 +19,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1941,11 +1941,11 @@ static int mtk_poll_rx(struct napi_struc +@@ -1940,11 +1940,11 @@ static int mtk_poll_rx(struct napi_struc u8 *data, *new_data; struct mtk_rx_dma_v2 *rxd, trxd; int done = 0, bytes = 0; @@ -32,7 +32,7 @@ Signed-off-by: David S. Miller u32 hash, reason; int mac = 0; -@@ -2122,7 +2122,8 @@ release_desc: +@@ -2121,7 +2121,8 @@ release_desc: else rxd->rxd2 = RX_DMA_PREP_PLEN0(ring->buf_size); diff --git a/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch b/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch index 931c589cfa3908..43fc3b15235d5c 100644 --- a/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch +++ b/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch @@ -71,7 +71,7 @@ Signed-off-by: Jakub Kicinski ret = stmmac_hw_setup(dev, true); if (ret < 0) { netdev_err(priv->dev, "%s: Hw setup failed\n", __func__); -@@ -6430,6 +6423,7 @@ void stmmac_enable_rx_queue(struct stmma +@@ -6412,6 +6405,7 @@ void stmmac_enable_rx_queue(struct stmma return; } @@ -79,7 +79,7 @@ Signed-off-by: Jakub Kicinski stmmac_clear_rx_descriptors(priv, queue); stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, -@@ -6491,6 +6485,7 @@ void stmmac_enable_tx_queue(struct stmma +@@ -6473,6 +6467,7 @@ void stmmac_enable_tx_queue(struct stmma return; } @@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski stmmac_clear_tx_descriptors(priv, queue); stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, -@@ -7415,6 +7410,25 @@ int stmmac_suspend(struct device *dev) +@@ -7400,6 +7395,25 @@ int stmmac_suspend(struct device *dev) } EXPORT_SYMBOL_GPL(stmmac_suspend); @@ -113,7 +113,7 @@ Signed-off-by: Jakub Kicinski /** * stmmac_reset_queues_param - reset queue parameters * @priv: device pointer -@@ -7425,22 +7439,11 @@ static void stmmac_reset_queues_param(st +@@ -7410,22 +7424,11 @@ static void stmmac_reset_queues_param(st u32 tx_cnt = priv->plat->tx_queues_to_use; u32 queue; diff --git a/target/linux/generic/backport-5.15/775-v6.0-02-net-ethernet-stmicro-stmmac-first-disable-all-queues.patch b/target/linux/generic/backport-5.15/775-v6.0-02-net-ethernet-stmicro-stmmac-first-disable-all-queues.patch index 8bdeef7a696f71..0940d3d799c9fa 100644 --- a/target/linux/generic/backport-5.15/775-v6.0-02-net-ethernet-stmicro-stmmac-first-disable-all-queues.patch +++ b/target/linux/generic/backport-5.15/775-v6.0-02-net-ethernet-stmicro-stmmac-first-disable-all-queues.patch @@ -17,7 +17,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c -@@ -3835,8 +3835,6 @@ static int stmmac_release(struct net_dev +@@ -3837,8 +3837,6 @@ static int stmmac_release(struct net_dev struct stmmac_priv *priv = netdev_priv(dev); u32 chan; @@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski if (device_may_wakeup(priv->device)) phylink_speed_down(priv->phylink, false); /* Stop and disconnect the PHY */ -@@ -3848,6 +3846,8 @@ static int stmmac_release(struct net_dev +@@ -3850,6 +3848,8 @@ static int stmmac_release(struct net_dev for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) hrtimer_cancel(&priv->tx_queue[chan].txtimer); diff --git a/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch b/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch index c59a5d1fe1782d..1b5a8a700be9cf 100644 --- a/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch +++ b/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch @@ -775,7 +775,7 @@ Signed-off-by: Jakub Kicinski stmmac_hw_teardown(dev); init_error: -@@ -3844,7 +3844,7 @@ static int stmmac_release(struct net_dev +@@ -3846,7 +3846,7 @@ static int stmmac_release(struct net_dev stmmac_disable_all_queues(priv); for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) @@ -784,7 +784,7 @@ Signed-off-by: Jakub Kicinski netif_tx_disable(dev); -@@ -3908,7 +3908,7 @@ static bool stmmac_vlan_insert(struct st +@@ -3910,7 +3910,7 @@ static bool stmmac_vlan_insert(struct st return false; stmmac_set_tx_owner(priv, p); @@ -793,7 +793,7 @@ Signed-off-by: Jakub Kicinski return true; } -@@ -3926,7 +3926,7 @@ static bool stmmac_vlan_insert(struct st +@@ -3928,7 +3928,7 @@ static bool stmmac_vlan_insert(struct st static void stmmac_tso_allocator(struct stmmac_priv *priv, dma_addr_t des, int total_len, bool last_segment, u32 queue) { @@ -802,7 +802,7 @@ Signed-off-by: Jakub Kicinski struct dma_desc *desc; u32 buff_size; int tmp_len; -@@ -3937,7 +3937,7 @@ static void stmmac_tso_allocator(struct +@@ -3939,7 +3939,7 @@ static void stmmac_tso_allocator(struct dma_addr_t curr_addr; tx_q->cur_tx = STMMAC_GET_ENTRY(tx_q->cur_tx, @@ -811,7 +811,7 @@ Signed-off-by: Jakub Kicinski WARN_ON(tx_q->tx_skbuff[tx_q->cur_tx]); if (tx_q->tbs & STMMAC_TBS_AVAIL) -@@ -3965,7 +3965,7 @@ static void stmmac_tso_allocator(struct +@@ -3967,7 +3967,7 @@ static void stmmac_tso_allocator(struct static void stmmac_flush_tx_descriptors(struct stmmac_priv *priv, int queue) { @@ -820,7 +820,7 @@ Signed-off-by: Jakub Kicinski int desc_size; if (likely(priv->extend_desc)) -@@ -4027,7 +4027,7 @@ static netdev_tx_t stmmac_tso_xmit(struc +@@ -4029,7 +4029,7 @@ static netdev_tx_t stmmac_tso_xmit(struc dma_addr_t des; int i; @@ -829,7 +829,7 @@ Signed-off-by: Jakub Kicinski first_tx = tx_q->cur_tx; /* Compute header lengths */ -@@ -4067,7 +4067,7 @@ static netdev_tx_t stmmac_tso_xmit(struc +@@ -4069,7 +4069,7 @@ static netdev_tx_t stmmac_tso_xmit(struc stmmac_set_mss(priv, mss_desc, mss); tx_q->mss = mss; tx_q->cur_tx = STMMAC_GET_ENTRY(tx_q->cur_tx, @@ -838,7 +838,7 @@ Signed-off-by: Jakub Kicinski WARN_ON(tx_q->tx_skbuff[tx_q->cur_tx]); } -@@ -4179,7 +4179,7 @@ static netdev_tx_t stmmac_tso_xmit(struc +@@ -4181,7 +4181,7 @@ static netdev_tx_t stmmac_tso_xmit(struc * ndo_start_xmit will fill this descriptor the next time it's * called and stmmac_tx_clean may clean up to this descriptor. */ @@ -847,7 +847,7 @@ Signed-off-by: Jakub Kicinski if (unlikely(stmmac_tx_avail(priv, queue) <= (MAX_SKB_FRAGS + 1))) { netif_dbg(priv, hw, priv->dev, "%s: stop transmitted packets\n", -@@ -4267,7 +4267,7 @@ static netdev_tx_t stmmac_xmit(struct sk +@@ -4269,7 +4269,7 @@ static netdev_tx_t stmmac_xmit(struct sk int entry, first_tx; dma_addr_t des; @@ -856,7 +856,7 @@ Signed-off-by: Jakub Kicinski first_tx = tx_q->cur_tx; if (priv->tx_path_in_lpi_mode && priv->eee_sw_timer_en) -@@ -4330,7 +4330,7 @@ static netdev_tx_t stmmac_xmit(struct sk +@@ -4332,7 +4332,7 @@ static netdev_tx_t stmmac_xmit(struct sk int len = skb_frag_size(frag); bool last_segment = (i == (nfrags - 1)); @@ -865,7 +865,7 @@ Signed-off-by: Jakub Kicinski WARN_ON(tx_q->tx_skbuff[entry]); if (likely(priv->extend_desc)) -@@ -4401,7 +4401,7 @@ static netdev_tx_t stmmac_xmit(struct sk +@@ -4403,7 +4403,7 @@ static netdev_tx_t stmmac_xmit(struct sk * ndo_start_xmit will fill this descriptor the next time it's * called and stmmac_tx_clean may clean up to this descriptor. */ @@ -874,7 +874,7 @@ Signed-off-by: Jakub Kicinski tx_q->cur_tx = entry; if (netif_msg_pktdata(priv)) { -@@ -4513,7 +4513,7 @@ static void stmmac_rx_vlan(struct net_de +@@ -4515,7 +4515,7 @@ static void stmmac_rx_vlan(struct net_de */ static inline void stmmac_rx_refill(struct stmmac_priv *priv, u32 queue) { @@ -883,7 +883,7 @@ Signed-off-by: Jakub Kicinski int dirty = stmmac_rx_dirty(priv, queue); unsigned int entry = rx_q->dirty_rx; -@@ -4563,7 +4563,7 @@ static inline void stmmac_rx_refill(stru +@@ -4565,7 +4565,7 @@ static inline void stmmac_rx_refill(stru dma_wmb(); stmmac_set_rx_owner(priv, p, use_rx_wd); @@ -892,7 +892,7 @@ Signed-off-by: Jakub Kicinski } rx_q->dirty_rx = entry; rx_q->rx_tail_addr = rx_q->dma_rx_phy + -@@ -4591,12 +4591,12 @@ static unsigned int stmmac_rx_buf1_len(s +@@ -4593,12 +4593,12 @@ static unsigned int stmmac_rx_buf1_len(s /* First descriptor, not last descriptor and not split header */ if (status & rx_not_ls) @@ -907,7 +907,7 @@ Signed-off-by: Jakub Kicinski } static unsigned int stmmac_rx_buf2_len(struct stmmac_priv *priv, -@@ -4612,7 +4612,7 @@ static unsigned int stmmac_rx_buf2_len(s +@@ -4614,7 +4614,7 @@ static unsigned int stmmac_rx_buf2_len(s /* Not last descriptor */ if (status & rx_not_ls) @@ -916,7 +916,7 @@ Signed-off-by: Jakub Kicinski plen = stmmac_get_rx_frame_len(priv, p, coe); -@@ -4623,7 +4623,7 @@ static unsigned int stmmac_rx_buf2_len(s +@@ -4625,7 +4625,7 @@ static unsigned int stmmac_rx_buf2_len(s static int stmmac_xdp_xmit_xdpf(struct stmmac_priv *priv, int queue, struct xdp_frame *xdpf, bool dma_map) { @@ -925,7 +925,7 @@ Signed-off-by: Jakub Kicinski unsigned int entry = tx_q->cur_tx; struct dma_desc *tx_desc; dma_addr_t dma_addr; -@@ -4686,7 +4686,7 @@ static int stmmac_xdp_xmit_xdpf(struct s +@@ -4688,7 +4688,7 @@ static int stmmac_xdp_xmit_xdpf(struct s stmmac_enable_dma_transmission(priv, priv->ioaddr); @@ -934,7 +934,7 @@ Signed-off-by: Jakub Kicinski tx_q->cur_tx = entry; return STMMAC_XDP_TX; -@@ -4860,7 +4860,7 @@ static void stmmac_dispatch_skb_zc(struc +@@ -4862,7 +4862,7 @@ static void stmmac_dispatch_skb_zc(struc static bool stmmac_rx_refill_zc(struct stmmac_priv *priv, u32 queue, u32 budget) { @@ -943,7 +943,7 @@ Signed-off-by: Jakub Kicinski unsigned int entry = rx_q->dirty_rx; struct dma_desc *rx_desc = NULL; bool ret = true; -@@ -4903,7 +4903,7 @@ static bool stmmac_rx_refill_zc(struct s +@@ -4905,7 +4905,7 @@ static bool stmmac_rx_refill_zc(struct s dma_wmb(); stmmac_set_rx_owner(priv, rx_desc, use_rx_wd); @@ -952,7 +952,7 @@ Signed-off-by: Jakub Kicinski } if (rx_desc) { -@@ -4918,7 +4918,7 @@ static bool stmmac_rx_refill_zc(struct s +@@ -4920,7 +4920,7 @@ static bool stmmac_rx_refill_zc(struct s static int stmmac_rx_zc(struct stmmac_priv *priv, int limit, u32 queue) { @@ -961,7 +961,7 @@ Signed-off-by: Jakub Kicinski unsigned int count = 0, error = 0, len = 0; int dirty = stmmac_rx_dirty(priv, queue); unsigned int next_entry = rx_q->cur_rx; -@@ -4940,7 +4940,7 @@ static int stmmac_rx_zc(struct stmmac_pr +@@ -4942,7 +4942,7 @@ static int stmmac_rx_zc(struct stmmac_pr desc_size = sizeof(struct dma_desc); } @@ -970,7 +970,7 @@ Signed-off-by: Jakub Kicinski rx_q->dma_rx_phy, desc_size); } while (count < limit) { -@@ -4987,7 +4987,7 @@ read_again: +@@ -4989,7 +4989,7 @@ read_again: /* Prefetch the next RX descriptor */ rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx, @@ -979,7 +979,7 @@ Signed-off-by: Jakub Kicinski next_entry = rx_q->cur_rx; if (priv->extend_desc) -@@ -5108,7 +5108,7 @@ read_again: +@@ -5110,7 +5110,7 @@ read_again: */ static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue) { @@ -988,7 +988,7 @@ Signed-off-by: Jakub Kicinski struct stmmac_channel *ch = &priv->channel[queue]; unsigned int count = 0, error = 0, len = 0; int status = 0, coe = priv->hw->rx_csum; -@@ -5121,7 +5121,7 @@ static int stmmac_rx(struct stmmac_priv +@@ -5123,7 +5123,7 @@ static int stmmac_rx(struct stmmac_priv int buf_sz; dma_dir = page_pool_get_dma_dir(rx_q->page_pool); @@ -997,7 +997,7 @@ Signed-off-by: Jakub Kicinski if (netif_msg_rx_status(priv)) { void *rx_head; -@@ -5135,7 +5135,7 @@ static int stmmac_rx(struct stmmac_priv +@@ -5137,7 +5137,7 @@ static int stmmac_rx(struct stmmac_priv desc_size = sizeof(struct dma_desc); } @@ -1006,7 +1006,7 @@ Signed-off-by: Jakub Kicinski rx_q->dma_rx_phy, desc_size); } while (count < limit) { -@@ -5179,7 +5179,7 @@ read_again: +@@ -5181,7 +5181,7 @@ read_again: break; rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx, @@ -1015,7 +1015,7 @@ Signed-off-by: Jakub Kicinski next_entry = rx_q->cur_rx; if (priv->extend_desc) -@@ -5313,7 +5313,7 @@ read_again: +@@ -5315,7 +5315,7 @@ read_again: buf1_len, dma_dir); skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, buf->page, buf->page_offset, buf1_len, @@ -1024,7 +1024,7 @@ Signed-off-by: Jakub Kicinski /* Data payload appended into SKB */ page_pool_release_page(rx_q->page_pool, buf->page); -@@ -5325,7 +5325,7 @@ read_again: +@@ -5327,7 +5327,7 @@ read_again: buf2_len, dma_dir); skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, buf->sec_page, 0, buf2_len, @@ -1033,7 +1033,7 @@ Signed-off-by: Jakub Kicinski /* Data payload appended into SKB */ page_pool_release_page(rx_q->page_pool, buf->sec_page); -@@ -5768,11 +5768,13 @@ static irqreturn_t stmmac_safety_interru +@@ -5760,11 +5760,13 @@ static irqreturn_t stmmac_safety_interru static irqreturn_t stmmac_msi_intr_tx(int irq, void *data) { struct stmmac_tx_queue *tx_q = (struct stmmac_tx_queue *)data; @@ -1046,9 +1046,9 @@ Signed-off-by: Jakub Kicinski + dma_conf = container_of(tx_q, struct stmmac_dma_conf, tx_queue[chan]); + priv = container_of(dma_conf, struct stmmac_priv, dma_conf); - if (unlikely(!data)) { - netdev_err(priv->dev, "%s: invalid dev pointer\n", __func__); -@@ -5812,10 +5814,12 @@ static irqreturn_t stmmac_msi_intr_tx(in + /* Check if adapter is up */ + if (test_bit(STMMAC_DOWN, &priv->state)) +@@ -5799,10 +5801,12 @@ static irqreturn_t stmmac_msi_intr_tx(in static irqreturn_t stmmac_msi_intr_rx(int irq, void *data) { struct stmmac_rx_queue *rx_q = (struct stmmac_rx_queue *)data; @@ -1060,9 +1060,9 @@ Signed-off-by: Jakub Kicinski + dma_conf = container_of(rx_q, struct stmmac_dma_conf, rx_queue[chan]); + priv = container_of(dma_conf, struct stmmac_priv, dma_conf); - if (unlikely(!data)) { - netdev_err(priv->dev, "%s: invalid dev pointer\n", __func__); -@@ -5846,10 +5850,10 @@ static void stmmac_poll_controller(struc + /* Check if adapter is up */ + if (test_bit(STMMAC_DOWN, &priv->state)) +@@ -5828,10 +5832,10 @@ static void stmmac_poll_controller(struc if (priv->plat->multi_msi_en) { for (i = 0; i < priv->plat->rx_queues_to_use; i++) @@ -1075,7 +1075,7 @@ Signed-off-by: Jakub Kicinski } else { disable_irq(dev->irq); stmmac_interrupt(dev->irq, dev); -@@ -6030,34 +6034,34 @@ static int stmmac_rings_status_show(stru +@@ -6012,34 +6016,34 @@ static int stmmac_rings_status_show(stru return 0; for (queue = 0; queue < rx_count; queue++) { @@ -1116,7 +1116,7 @@ Signed-off-by: Jakub Kicinski } } -@@ -6404,7 +6408,7 @@ void stmmac_disable_rx_queue(struct stmm +@@ -6386,7 +6390,7 @@ void stmmac_disable_rx_queue(struct stmm void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue) { @@ -1125,7 +1125,7 @@ Signed-off-by: Jakub Kicinski struct stmmac_channel *ch = &priv->channel[queue]; unsigned long flags; u32 buf_size; -@@ -6441,7 +6445,7 @@ void stmmac_enable_rx_queue(struct stmma +@@ -6423,7 +6427,7 @@ void stmmac_enable_rx_queue(struct stmma rx_q->queue_index); } else { stmmac_set_dma_bfsize(priv, priv->ioaddr, @@ -1134,7 +1134,7 @@ Signed-off-by: Jakub Kicinski rx_q->queue_index); } -@@ -6467,7 +6471,7 @@ void stmmac_disable_tx_queue(struct stmm +@@ -6449,7 +6453,7 @@ void stmmac_disable_tx_queue(struct stmm void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue) { @@ -1143,7 +1143,7 @@ Signed-off-by: Jakub Kicinski struct stmmac_channel *ch = &priv->channel[queue]; unsigned long flags; int ret; -@@ -6517,7 +6521,7 @@ void stmmac_xdp_release(struct net_devic +@@ -6499,7 +6503,7 @@ void stmmac_xdp_release(struct net_devic stmmac_disable_all_queues(priv); for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) @@ -1152,7 +1152,7 @@ Signed-off-by: Jakub Kicinski /* Free the IRQ lines */ stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0); -@@ -6576,7 +6580,7 @@ int stmmac_xdp_open(struct net_device *d +@@ -6558,7 +6562,7 @@ int stmmac_xdp_open(struct net_device *d /* DMA RX Channel Configuration */ for (chan = 0; chan < rx_cnt; chan++) { @@ -1161,7 +1161,7 @@ Signed-off-by: Jakub Kicinski stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, rx_q->dma_rx_phy, chan); -@@ -6594,7 +6598,7 @@ int stmmac_xdp_open(struct net_device *d +@@ -6576,7 +6580,7 @@ int stmmac_xdp_open(struct net_device *d rx_q->queue_index); } else { stmmac_set_dma_bfsize(priv, priv->ioaddr, @@ -1170,7 +1170,7 @@ Signed-off-by: Jakub Kicinski rx_q->queue_index); } -@@ -6603,7 +6607,7 @@ int stmmac_xdp_open(struct net_device *d +@@ -6585,7 +6589,7 @@ int stmmac_xdp_open(struct net_device *d /* DMA TX Channel Configuration */ for (chan = 0; chan < tx_cnt; chan++) { @@ -1179,7 +1179,7 @@ Signed-off-by: Jakub Kicinski stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, tx_q->dma_tx_phy, chan); -@@ -6636,7 +6640,7 @@ int stmmac_xdp_open(struct net_device *d +@@ -6618,7 +6622,7 @@ int stmmac_xdp_open(struct net_device *d irq_error: for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) @@ -1188,7 +1188,7 @@ Signed-off-by: Jakub Kicinski stmmac_hw_teardown(dev); init_error: -@@ -6663,8 +6667,8 @@ int stmmac_xsk_wakeup(struct net_device +@@ -6645,8 +6649,8 @@ int stmmac_xsk_wakeup(struct net_device queue >= priv->plat->tx_queues_to_use) return -EINVAL; @@ -1199,7 +1199,7 @@ Signed-off-by: Jakub Kicinski ch = &priv->channel[queue]; if (!rx_q->xsk_pool && !tx_q->xsk_pool) -@@ -6924,8 +6928,8 @@ int stmmac_reinit_ringparam(struct net_d +@@ -6906,8 +6910,8 @@ int stmmac_reinit_ringparam(struct net_d if (netif_running(dev)) stmmac_release(dev); @@ -1210,7 +1210,7 @@ Signed-off-by: Jakub Kicinski if (netif_running(dev)) ret = stmmac_open(dev); -@@ -7360,7 +7364,7 @@ int stmmac_suspend(struct device *dev) +@@ -7345,7 +7349,7 @@ int stmmac_suspend(struct device *dev) stmmac_disable_all_queues(priv); for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) @@ -1219,7 +1219,7 @@ Signed-off-by: Jakub Kicinski if (priv->eee_enabled) { priv->tx_path_in_lpi_mode = false; -@@ -7412,7 +7416,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend); +@@ -7397,7 +7401,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend); static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue) { @@ -1228,7 +1228,7 @@ Signed-off-by: Jakub Kicinski rx_q->cur_rx = 0; rx_q->dirty_rx = 0; -@@ -7420,7 +7424,7 @@ static void stmmac_reset_rx_queue(struct +@@ -7405,7 +7409,7 @@ static void stmmac_reset_rx_queue(struct static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue) { diff --git a/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch b/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch index bdf8b8585e214e..87da2af5624fec 100644 --- a/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch +++ b/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch @@ -1036,7 +1036,7 @@ Signed-off-by: Jakub Kicinski static void stmmac_fpe_stop_wq(struct stmmac_priv *priv) { set_bit(__FPE_REMOVING, &priv->fpe_task_state); -@@ -3860,7 +3976,7 @@ static int stmmac_release(struct net_dev +@@ -3862,7 +3978,7 @@ static int stmmac_release(struct net_dev stmmac_stop_all_dma(priv); /* Release and free the Rx/Tx resources */ @@ -1045,7 +1045,7 @@ Signed-off-by: Jakub Kicinski /* Disable the MAC Rx/Tx */ stmmac_mac_set(priv, priv->ioaddr, false); -@@ -6403,7 +6519,7 @@ void stmmac_disable_rx_queue(struct stmm +@@ -6385,7 +6501,7 @@ void stmmac_disable_rx_queue(struct stmm spin_unlock_irqrestore(&ch->lock, flags); stmmac_stop_rx_dma(priv, queue); @@ -1054,7 +1054,7 @@ Signed-off-by: Jakub Kicinski } void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue) -@@ -6414,21 +6530,21 @@ void stmmac_enable_rx_queue(struct stmma +@@ -6396,21 +6512,21 @@ void stmmac_enable_rx_queue(struct stmma u32 buf_size; int ret; @@ -1080,7 +1080,7 @@ Signed-off-by: Jakub Kicinski stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, rx_q->dma_rx_phy, rx_q->queue_index); -@@ -6466,7 +6582,7 @@ void stmmac_disable_tx_queue(struct stmm +@@ -6448,7 +6564,7 @@ void stmmac_disable_tx_queue(struct stmm spin_unlock_irqrestore(&ch->lock, flags); stmmac_stop_tx_dma(priv, queue); @@ -1089,7 +1089,7 @@ Signed-off-by: Jakub Kicinski } void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue) -@@ -6476,21 +6592,21 @@ void stmmac_enable_tx_queue(struct stmma +@@ -6458,21 +6574,21 @@ void stmmac_enable_tx_queue(struct stmma unsigned long flags; int ret; @@ -1115,7 +1115,7 @@ Signed-off-by: Jakub Kicinski stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg, tx_q->dma_tx_phy, tx_q->queue_index); -@@ -6530,7 +6646,7 @@ void stmmac_xdp_release(struct net_devic +@@ -6512,7 +6628,7 @@ void stmmac_xdp_release(struct net_devic stmmac_stop_all_dma(priv); /* Release and free the Rx/Tx resources */ @@ -1124,7 +1124,7 @@ Signed-off-by: Jakub Kicinski /* Disable the MAC Rx/Tx */ stmmac_mac_set(priv, priv->ioaddr, false); -@@ -6555,14 +6671,14 @@ int stmmac_xdp_open(struct net_device *d +@@ -6537,14 +6653,14 @@ int stmmac_xdp_open(struct net_device *d u32 chan; int ret; @@ -1141,7 +1141,7 @@ Signed-off-by: Jakub Kicinski if (ret < 0) { netdev_err(dev, "%s: DMA descriptors initialization failed\n", __func__); -@@ -6644,7 +6760,7 @@ irq_error: +@@ -6626,7 +6742,7 @@ irq_error: stmmac_hw_teardown(dev); init_error: @@ -1150,7 +1150,7 @@ Signed-off-by: Jakub Kicinski dma_desc_error: return ret; } -@@ -7507,7 +7623,7 @@ int stmmac_resume(struct device *dev) +@@ -7492,7 +7608,7 @@ int stmmac_resume(struct device *dev) stmmac_reset_queues_param(priv); stmmac_free_tx_skbufs(priv); diff --git a/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch b/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch index 2576df45224db1..e1d46f03a94be7 100644 --- a/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch +++ b/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch @@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c -@@ -5625,18 +5625,15 @@ static int stmmac_change_mtu(struct net_ +@@ -5627,18 +5627,15 @@ static int stmmac_change_mtu(struct net_ { struct stmmac_priv *priv = netdev_priv(dev); int txfifosz = priv->plat->tx_fifo_size; @@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski if (stmmac_xdp_is_enabled(priv) && new_mtu > ETH_DATA_LEN) { netdev_dbg(priv->dev, "Jumbo frames not supported for XDP\n"); return -EINVAL; -@@ -5648,8 +5645,29 @@ static int stmmac_change_mtu(struct net_ +@@ -5650,8 +5647,29 @@ static int stmmac_change_mtu(struct net_ if ((txfifosz < new_mtu) || (new_mtu > BUF_SIZE_16KiB)) return -EINVAL; diff --git a/target/linux/generic/backport-5.15/782-v6.1-net-dsa-mt7530-add-support-for-in-band-link-status.patch b/target/linux/generic/backport-5.15/782-v6.1-net-dsa-mt7530-add-support-for-in-band-link-status.patch index 8d55ffb8b688fb..7b89dbc20671d1 100644 --- a/target/linux/generic/backport-5.15/782-v6.1-net-dsa-mt7530-add-support-for-in-band-link-status.patch +++ b/target/linux/generic/backport-5.15/782-v6.1-net-dsa-mt7530-add-support-for-in-band-link-status.patch @@ -19,7 +19,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2746,9 +2746,6 @@ mt7531_mac_config(struct dsa_switch *ds, +@@ -2791,9 +2791,6 @@ mt7531_mac_config(struct dsa_switch *ds, case PHY_INTERFACE_MODE_NA: case PHY_INTERFACE_MODE_1000BASEX: case PHY_INTERFACE_MODE_2500BASEX: @@ -29,7 +29,7 @@ Signed-off-by: David S. Miller return mt7531_sgmii_setup_mode_force(priv, port, interface); default: return -EINVAL; -@@ -2824,13 +2821,6 @@ unsupported: +@@ -2869,13 +2866,6 @@ unsupported: return; } @@ -43,7 +43,7 @@ Signed-off-by: David S. Miller mcr_cur = mt7530_read(priv, MT7530_PMCR_P(port)); mcr_new = mcr_cur; mcr_new &= ~PMCR_LINK_SETTINGS_MASK; -@@ -2967,6 +2957,9 @@ static void mt753x_phylink_get_caps(stru +@@ -3012,6 +3002,9 @@ static void mt753x_phylink_get_caps(stru config->mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE | MAC_10 | MAC_100 | MAC_1000FD; @@ -53,7 +53,7 @@ Signed-off-by: David S. Miller /* This driver does not make use of the speed, duplex, pause or the * advertisement in its mac_config, so it is safe to mark this driver * as non-legacy. -@@ -3032,6 +3025,7 @@ mt7531_sgmii_pcs_get_state_an(struct mt7 +@@ -3077,6 +3070,7 @@ mt7531_sgmii_pcs_get_state_an(struct mt7 status = mt7530_read(priv, MT7531_PCS_CONTROL_1(port)); state->link = !!(status & MT7531_SGMII_LINK_STATUS); @@ -61,7 +61,7 @@ Signed-off-by: David S. Miller if (state->interface == PHY_INTERFACE_MODE_SGMII && (status & MT7531_SGMII_AN_ENABLE)) { val = mt7530_read(priv, MT7531_PCS_SPEED_ABILITY(port)); -@@ -3062,16 +3056,44 @@ mt7531_sgmii_pcs_get_state_an(struct mt7 +@@ -3107,16 +3101,44 @@ mt7531_sgmii_pcs_get_state_an(struct mt7 return 0; } @@ -109,7 +109,7 @@ Signed-off-by: David S. Miller } static int mt753x_pcs_config(struct phylink_pcs *pcs, unsigned int mode, -@@ -3112,6 +3134,8 @@ mt753x_setup(struct dsa_switch *ds) +@@ -3157,6 +3179,8 @@ mt753x_setup(struct dsa_switch *ds) priv->pcs[i].pcs.ops = priv->info->pcs_ops; priv->pcs[i].priv = priv; priv->pcs[i].port = i; @@ -120,7 +120,7 @@ Signed-off-by: David S. Miller ret = priv->info->sw_setup(ds); --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h -@@ -373,6 +373,7 @@ enum mt7530_vlan_port_acc_frm { +@@ -400,6 +400,7 @@ enum mt7530_vlan_port_acc_frm { #define MT7531_SGMII_LINK_STATUS BIT(18) #define MT7531_SGMII_AN_ENABLE BIT(12) #define MT7531_SGMII_AN_RESTART BIT(9) diff --git a/target/linux/generic/backport-5.15/788-v6.3-net-dsa-mt7530-use-external-PCS-driver.patch b/target/linux/generic/backport-5.15/788-v6.3-net-dsa-mt7530-use-external-PCS-driver.patch index 2642cd4fafcd15..b9d3018f1195c4 100644 --- a/target/linux/generic/backport-5.15/788-v6.3-net-dsa-mt7530-use-external-PCS-driver.patch +++ b/target/linux/generic/backport-5.15/788-v6.3-net-dsa-mt7530-use-external-PCS-driver.patch @@ -81,7 +81,7 @@ Tested-by: Frank Wunderlich #include #include #include -@@ -2598,128 +2599,11 @@ static int mt7531_rgmii_setup(struct mt7 +@@ -2643,128 +2644,11 @@ static int mt7531_rgmii_setup(struct mt7 return 0; } @@ -210,7 +210,7 @@ Tested-by: Frank Wunderlich static int mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode, phy_interface_t interface) -@@ -2742,11 +2626,11 @@ mt7531_mac_config(struct dsa_switch *ds, +@@ -2787,11 +2671,11 @@ mt7531_mac_config(struct dsa_switch *ds, phydev = dp->slave->phydev; return mt7531_rgmii_setup(priv, port, interface, phydev); case PHY_INTERFACE_MODE_SGMII: @@ -224,7 +224,7 @@ Tested-by: Frank Wunderlich default: return -EINVAL; } -@@ -2771,11 +2655,11 @@ mt753x_phylink_mac_select_pcs(struct dsa +@@ -2816,11 +2700,11 @@ mt753x_phylink_mac_select_pcs(struct dsa switch (interface) { case PHY_INTERFACE_MODE_TRGMII: @@ -238,7 +238,7 @@ Tested-by: Frank Wunderlich default: return NULL; } -@@ -3016,86 +2900,6 @@ static void mt7530_pcs_get_state(struct +@@ -3061,86 +2945,6 @@ static void mt7530_pcs_get_state(struct state->pause |= MLO_PAUSE_TX; } @@ -325,7 +325,7 @@ Tested-by: Frank Wunderlich static int mt753x_pcs_config(struct phylink_pcs *pcs, unsigned int mode, phy_interface_t interface, const unsigned long *advertising, -@@ -3115,18 +2919,57 @@ static const struct phylink_pcs_ops mt75 +@@ -3160,18 +2964,57 @@ static const struct phylink_pcs_ops mt75 .pcs_an_restart = mt7530_pcs_an_restart, }; @@ -389,7 +389,7 @@ Tested-by: Frank Wunderlich int i, ret; /* Initialise the PCS devices */ -@@ -3134,8 +2977,6 @@ mt753x_setup(struct dsa_switch *ds) +@@ -3179,8 +3022,6 @@ mt753x_setup(struct dsa_switch *ds) priv->pcs[i].pcs.ops = priv->info->pcs_ops; priv->pcs[i].priv = priv; priv->pcs[i].port = i; @@ -398,7 +398,7 @@ Tested-by: Frank Wunderlich } ret = priv->info->sw_setup(ds); -@@ -3150,6 +2991,16 @@ mt753x_setup(struct dsa_switch *ds) +@@ -3195,6 +3036,16 @@ mt753x_setup(struct dsa_switch *ds) if (ret && priv->irq) mt7530_free_irq_common(priv); @@ -415,7 +415,7 @@ Tested-by: Frank Wunderlich return ret; } -@@ -3241,7 +3092,7 @@ static const struct mt753x_info mt753x_t +@@ -3286,7 +3137,7 @@ static const struct mt753x_info mt753x_t }, [ID_MT7531] = { .id = ID_MT7531, @@ -424,7 +424,7 @@ Tested-by: Frank Wunderlich .sw_setup = mt7531_setup, .phy_read = mt7531_ind_phy_read, .phy_write = mt7531_ind_phy_write, -@@ -3349,7 +3200,7 @@ static void +@@ -3394,7 +3245,7 @@ static void mt7530_remove(struct mdio_device *mdiodev) { struct mt7530_priv *priv = dev_get_drvdata(&mdiodev->dev); @@ -433,7 +433,7 @@ Tested-by: Frank Wunderlich if (!priv) return; -@@ -3368,6 +3219,10 @@ mt7530_remove(struct mdio_device *mdiode +@@ -3413,6 +3264,10 @@ mt7530_remove(struct mdio_device *mdiode mt7530_free_irq(priv); dsa_unregister_switch(priv->ds); @@ -446,7 +446,7 @@ Tested-by: Frank Wunderlich dev_set_drvdata(&mdiodev->dev, NULL); --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h -@@ -364,47 +364,8 @@ enum mt7530_vlan_port_acc_frm { +@@ -391,47 +391,8 @@ enum mt7530_vlan_port_acc_frm { CCR_TX_OCT_CNT_BAD) /* MT7531 SGMII register group */ @@ -496,7 +496,7 @@ Tested-by: Frank Wunderlich /* Register for system reset */ #define MT7530_SYS_CTRL 0x7000 -@@ -703,13 +664,13 @@ struct mt7530_fdb { +@@ -730,13 +691,13 @@ struct mt7530_fdb { * @pm: The matrix used to show all connections with the port. * @pvid: The VLAN specified is to be considered a PVID at ingress. Any * untagged frames will be assigned to the related VLAN. diff --git a/target/linux/generic/backport-5.15/790-v6.4-0001-net-dsa-mt7530-make-some-noise-if-register-read-fail.patch b/target/linux/generic/backport-5.15/790-v6.4-0001-net-dsa-mt7530-make-some-noise-if-register-read-fail.patch index ffbdde5a5772ea..cfd0034ee637d9 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0001-net-dsa-mt7530-make-some-noise-if-register-read-fail.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0001-net-dsa-mt7530-make-some-noise-if-register-read-fail.patch @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -224,9 +224,10 @@ mt7530_mii_read(struct mt7530_priv *priv +@@ -225,9 +225,10 @@ mt7530_mii_read(struct mt7530_priv *priv /* MT7530 uses 31 as the pseudo port */ ret = bus->write(bus, 0x1f, 0x1f, page); if (ret < 0) { diff --git a/target/linux/generic/backport-5.15/790-v6.4-0002-net-dsa-mt7530-refactor-SGMII-PCS-creation.patch b/target/linux/generic/backport-5.15/790-v6.4-0002-net-dsa-mt7530-refactor-SGMII-PCS-creation.patch index 983423aaff6a11..34db4fce0bbaf2 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0002-net-dsa-mt7530-refactor-SGMII-PCS-creation.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0002-net-dsa-mt7530-refactor-SGMII-PCS-creation.patch @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2951,26 +2951,56 @@ static const struct regmap_bus mt7531_re +@@ -2996,26 +2996,56 @@ static const struct regmap_bus mt7531_re .reg_update_bits = mt7530_regmap_update_bits, }; @@ -88,7 +88,7 @@ Signed-off-by: David S. Miller int i, ret; /* Initialise the PCS devices */ -@@ -2992,15 +3022,11 @@ mt753x_setup(struct dsa_switch *ds) +@@ -3037,15 +3067,11 @@ mt753x_setup(struct dsa_switch *ds) if (ret && priv->irq) mt7530_free_irq_common(priv); diff --git a/target/linux/generic/backport-5.15/790-v6.4-0003-net-dsa-mt7530-use-unlocked-regmap-accessors.patch b/target/linux/generic/backport-5.15/790-v6.4-0003-net-dsa-mt7530-use-unlocked-regmap-accessors.patch index 9d8f67ba957f39..04060b48ba4e12 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0003-net-dsa-mt7530-use-unlocked-regmap-accessors.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0003-net-dsa-mt7530-use-unlocked-regmap-accessors.patch @@ -19,7 +19,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2924,7 +2924,7 @@ static int mt7530_regmap_read(void *cont +@@ -2969,7 +2969,7 @@ static int mt7530_regmap_read(void *cont { struct mt7530_priv *priv = context; @@ -28,7 +28,7 @@ Signed-off-by: David S. Miller return 0; }; -@@ -2932,23 +2932,25 @@ static int mt7530_regmap_write(void *con +@@ -2977,23 +2977,25 @@ static int mt7530_regmap_write(void *con { struct mt7530_priv *priv = context; @@ -62,7 +62,7 @@ Signed-off-by: David S. Miller }; static int -@@ -2974,6 +2976,9 @@ mt7531_create_sgmii(struct mt7530_priv * +@@ -3019,6 +3021,9 @@ mt7531_create_sgmii(struct mt7530_priv * mt7531_pcs_config[i]->reg_stride = 4; mt7531_pcs_config[i]->reg_base = MT7531_SGMII_REG_BASE(5 + i); mt7531_pcs_config[i]->max_register = 0x17c; diff --git a/target/linux/generic/backport-5.15/790-v6.4-0004-net-dsa-mt7530-use-regmap-to-access-switch-register-.patch b/target/linux/generic/backport-5.15/790-v6.4-0004-net-dsa-mt7530-use-regmap-to-access-switch-register-.patch index bd1d5c98a7ce3c..48854fd23444fb 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0004-net-dsa-mt7530-use-regmap-to-access-switch-register-.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0004-net-dsa-mt7530-use-regmap-to-access-switch-register-.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -183,9 +183,9 @@ core_clear(struct mt7530_priv *priv, u32 +@@ -184,9 +184,9 @@ core_clear(struct mt7530_priv *priv, u32 } static int @@ -27,7 +27,7 @@ Signed-off-by: David S. Miller u16 page, r, lo, hi; int ret; -@@ -197,24 +197,34 @@ mt7530_mii_write(struct mt7530_priv *pri +@@ -198,24 +198,34 @@ mt7530_mii_write(struct mt7530_priv *pri /* MT7530 uses 31 as the pseudo port */ ret = bus->write(bus, 0x1f, 0x1f, page); if (ret < 0) @@ -69,7 +69,7 @@ Signed-off-by: David S. Miller u16 page, r, lo, hi; int ret; -@@ -223,17 +233,32 @@ mt7530_mii_read(struct mt7530_priv *priv +@@ -224,17 +234,32 @@ mt7530_mii_read(struct mt7530_priv *priv /* MT7530 uses 31 as the pseudo port */ ret = bus->write(bus, 0x1f, 0x1f, page); @@ -108,7 +108,7 @@ Signed-off-by: David S. Miller } static void -@@ -283,14 +308,10 @@ mt7530_rmw(struct mt7530_priv *priv, u32 +@@ -284,14 +309,10 @@ mt7530_rmw(struct mt7530_priv *priv, u32 u32 mask, u32 set) { struct mii_bus *bus = priv->bus; @@ -124,7 +124,7 @@ Signed-off-by: David S. Miller mutex_unlock(&bus->mdio_lock); } -@@ -298,7 +319,7 @@ mt7530_rmw(struct mt7530_priv *priv, u32 +@@ -299,7 +320,7 @@ mt7530_rmw(struct mt7530_priv *priv, u32 static void mt7530_set(struct mt7530_priv *priv, u32 reg, u32 val) { @@ -133,7 +133,7 @@ Signed-off-by: David S. Miller } static void -@@ -2920,22 +2941,6 @@ static const struct phylink_pcs_ops mt75 +@@ -2965,22 +2986,6 @@ static const struct phylink_pcs_ops mt75 .pcs_an_restart = mt7530_pcs_an_restart, }; @@ -156,7 +156,7 @@ Signed-off-by: David S. Miller static void mt7530_mdio_regmap_lock(void *mdio_lock) { -@@ -2948,7 +2953,7 @@ mt7530_mdio_regmap_unlock(void *mdio_loc +@@ -2993,7 +2998,7 @@ mt7530_mdio_regmap_unlock(void *mdio_loc mutex_unlock(mdio_lock); } @@ -165,7 +165,7 @@ Signed-off-by: David S. Miller .reg_write = mt7530_regmap_write, .reg_read = mt7530_regmap_read, }; -@@ -2981,7 +2986,7 @@ mt7531_create_sgmii(struct mt7530_priv * +@@ -3026,7 +3031,7 @@ mt7531_create_sgmii(struct mt7530_priv * mt7531_pcs_config[i]->lock_arg = &priv->bus->mdio_lock; regmap = devm_regmap_init(priv->dev, @@ -174,7 +174,7 @@ Signed-off-by: David S. Miller mt7531_pcs_config[i]); if (IS_ERR(regmap)) { ret = PTR_ERR(regmap); -@@ -3146,6 +3151,7 @@ MODULE_DEVICE_TABLE(of, mt7530_of_match) +@@ -3191,6 +3196,7 @@ MODULE_DEVICE_TABLE(of, mt7530_of_match) static int mt7530_probe(struct mdio_device *mdiodev) { @@ -182,7 +182,7 @@ Signed-off-by: David S. Miller struct mt7530_priv *priv; struct device_node *dn; -@@ -3225,6 +3231,21 @@ mt7530_probe(struct mdio_device *mdiodev +@@ -3270,6 +3276,21 @@ mt7530_probe(struct mdio_device *mdiodev mutex_init(&priv->reg_mutex); dev_set_drvdata(&mdiodev->dev, priv); @@ -206,7 +206,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h -@@ -747,6 +747,7 @@ struct mt753x_info { +@@ -774,6 +774,7 @@ struct mt753x_info { * @dev: The device pointer * @ds: The pointer to the dsa core structure * @bus: The bus used for the device and built-in PHY @@ -214,7 +214,7 @@ Signed-off-by: David S. Miller * @rstc: The pointer to reset control used by MCM * @core_pwr: The power supplied into the core * @io_pwr: The power supplied into the I/O -@@ -767,6 +768,7 @@ struct mt7530_priv { +@@ -794,6 +795,7 @@ struct mt7530_priv { struct device *dev; struct dsa_switch *ds; struct mii_bus *bus; diff --git a/target/linux/generic/backport-5.15/790-v6.4-0005-net-dsa-mt7530-move-SGMII-PCS-creation-to-mt7530_pro.patch b/target/linux/generic/backport-5.15/790-v6.4-0005-net-dsa-mt7530-move-SGMII-PCS-creation-to-mt7530_pro.patch index 8c11bc3733ec57..b4bcdd0c9dffb6 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0005-net-dsa-mt7530-move-SGMII-PCS-creation-to-mt7530_pro.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0005-net-dsa-mt7530-move-SGMII-PCS-creation-to-mt7530_pro.patch @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -3032,12 +3032,6 @@ mt753x_setup(struct dsa_switch *ds) +@@ -3077,12 +3077,6 @@ mt753x_setup(struct dsa_switch *ds) if (ret && priv->irq) mt7530_free_irq_common(priv); @@ -31,7 +31,7 @@ Signed-off-by: David S. Miller return ret; } -@@ -3154,6 +3148,7 @@ mt7530_probe(struct mdio_device *mdiodev +@@ -3199,6 +3193,7 @@ mt7530_probe(struct mdio_device *mdiodev static struct regmap_config *regmap_config; struct mt7530_priv *priv; struct device_node *dn; @@ -39,7 +39,7 @@ Signed-off-by: David S. Miller dn = mdiodev->dev.of_node; -@@ -3246,6 +3241,12 @@ mt7530_probe(struct mdio_device *mdiodev +@@ -3291,6 +3286,12 @@ mt7530_probe(struct mdio_device *mdiodev if (IS_ERR(priv->regmap)) return PTR_ERR(priv->regmap); diff --git a/target/linux/generic/backport-5.15/790-v6.4-0006-net-dsa-mt7530-introduce-mutex-helpers.patch b/target/linux/generic/backport-5.15/790-v6.4-0006-net-dsa-mt7530-introduce-mutex-helpers.patch index 4d75c55647c150..b9507e6d9bb148 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0006-net-dsa-mt7530-introduce-mutex-helpers.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0006-net-dsa-mt7530-introduce-mutex-helpers.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -143,31 +143,40 @@ err: +@@ -144,31 +144,40 @@ err: } static void @@ -65,7 +65,7 @@ Signed-off-by: David S. Miller } static void -@@ -264,13 +273,11 @@ mt7530_mii_read(struct mt7530_priv *priv +@@ -265,13 +274,11 @@ mt7530_mii_read(struct mt7530_priv *priv static void mt7530_write(struct mt7530_priv *priv, u32 reg, u32 val) { @@ -81,7 +81,7 @@ Signed-off-by: David S. Miller } static u32 -@@ -282,14 +289,13 @@ _mt7530_unlocked_read(struct mt7530_dumm +@@ -283,14 +290,13 @@ _mt7530_unlocked_read(struct mt7530_dumm static u32 _mt7530_read(struct mt7530_dummy_poll *p) { @@ -98,7 +98,7 @@ Signed-off-by: David S. Miller return val; } -@@ -307,13 +313,11 @@ static void +@@ -308,13 +314,11 @@ static void mt7530_rmw(struct mt7530_priv *priv, u32 reg, u32 mask, u32 set) { @@ -114,7 +114,7 @@ Signed-off-by: David S. Miller } static void -@@ -645,14 +649,13 @@ static int +@@ -646,14 +650,13 @@ static int mt7531_ind_c45_phy_read(struct mt7530_priv *priv, int port, int devad, int regnum) { @@ -130,7 +130,7 @@ Signed-off-by: David S. Miller ret = readx_poll_timeout(_mt7530_unlocked_read, &p, val, !(val & MT7531_PHY_ACS_ST), 20, 100000); -@@ -685,7 +688,7 @@ mt7531_ind_c45_phy_read(struct mt7530_pr +@@ -686,7 +689,7 @@ mt7531_ind_c45_phy_read(struct mt7530_pr ret = val & MT7531_MDIO_RW_DATA_MASK; out: @@ -139,7 +139,7 @@ Signed-off-by: David S. Miller return ret; } -@@ -694,14 +697,13 @@ static int +@@ -695,14 +698,13 @@ static int mt7531_ind_c45_phy_write(struct mt7530_priv *priv, int port, int devad, int regnum, u32 data) { @@ -155,7 +155,7 @@ Signed-off-by: David S. Miller ret = readx_poll_timeout(_mt7530_unlocked_read, &p, val, !(val & MT7531_PHY_ACS_ST), 20, 100000); -@@ -733,7 +735,7 @@ mt7531_ind_c45_phy_write(struct mt7530_p +@@ -734,7 +736,7 @@ mt7531_ind_c45_phy_write(struct mt7530_p } out: @@ -164,7 +164,7 @@ Signed-off-by: David S. Miller return ret; } -@@ -741,14 +743,13 @@ out: +@@ -742,14 +744,13 @@ out: static int mt7531_ind_c22_phy_read(struct mt7530_priv *priv, int port, int regnum) { @@ -180,7 +180,7 @@ Signed-off-by: David S. Miller ret = readx_poll_timeout(_mt7530_unlocked_read, &p, val, !(val & MT7531_PHY_ACS_ST), 20, 100000); -@@ -771,7 +772,7 @@ mt7531_ind_c22_phy_read(struct mt7530_pr +@@ -772,7 +773,7 @@ mt7531_ind_c22_phy_read(struct mt7530_pr ret = val & MT7531_MDIO_RW_DATA_MASK; out: @@ -189,7 +189,7 @@ Signed-off-by: David S. Miller return ret; } -@@ -780,14 +781,13 @@ static int +@@ -781,14 +782,13 @@ static int mt7531_ind_c22_phy_write(struct mt7530_priv *priv, int port, int regnum, u16 data) { @@ -205,7 +205,7 @@ Signed-off-by: David S. Miller ret = readx_poll_timeout(_mt7530_unlocked_read, &p, reg, !(reg & MT7531_PHY_ACS_ST), 20, 100000); -@@ -809,7 +809,7 @@ mt7531_ind_c22_phy_write(struct mt7530_p +@@ -810,7 +810,7 @@ mt7531_ind_c22_phy_write(struct mt7530_p } out: @@ -214,7 +214,7 @@ Signed-off-by: David S. Miller return ret; } -@@ -1117,7 +1117,6 @@ static int +@@ -1162,7 +1162,6 @@ static int mt7530_port_change_mtu(struct dsa_switch *ds, int port, int new_mtu) { struct mt7530_priv *priv = ds->priv; @@ -222,7 +222,7 @@ Signed-off-by: David S. Miller int length; u32 val; -@@ -1128,7 +1127,7 @@ mt7530_port_change_mtu(struct dsa_switch +@@ -1173,7 +1172,7 @@ mt7530_port_change_mtu(struct dsa_switch if (!dsa_is_cpu_port(ds, port)) return 0; @@ -231,7 +231,7 @@ Signed-off-by: David S. Miller val = mt7530_mii_read(priv, MT7530_GMACCR); val &= ~MAX_RX_PKT_LEN_MASK; -@@ -1149,7 +1148,7 @@ mt7530_port_change_mtu(struct dsa_switch +@@ -1194,7 +1193,7 @@ mt7530_port_change_mtu(struct dsa_switch mt7530_mii_write(priv, MT7530_GMACCR, val); @@ -240,7 +240,7 @@ Signed-off-by: David S. Miller return 0; } -@@ -1945,10 +1944,10 @@ mt7530_irq_thread_fn(int irq, void *dev_ +@@ -1990,10 +1989,10 @@ mt7530_irq_thread_fn(int irq, void *dev_ u32 val; int p; @@ -253,7 +253,7 @@ Signed-off-by: David S. Miller for (p = 0; p < MT7530_NUM_PHYS; p++) { if (BIT(p) & val) { -@@ -1984,7 +1983,7 @@ mt7530_irq_bus_lock(struct irq_data *d) +@@ -2029,7 +2028,7 @@ mt7530_irq_bus_lock(struct irq_data *d) { struct mt7530_priv *priv = irq_data_get_irq_chip_data(d); @@ -262,7 +262,7 @@ Signed-off-by: David S. Miller } static void -@@ -1993,7 +1992,7 @@ mt7530_irq_bus_sync_unlock(struct irq_da +@@ -2038,7 +2037,7 @@ mt7530_irq_bus_sync_unlock(struct irq_da struct mt7530_priv *priv = irq_data_get_irq_chip_data(d); mt7530_mii_write(priv, MT7530_SYS_INT_EN, priv->irq_enable); diff --git a/target/linux/generic/backport-5.15/790-v6.4-0007-net-dsa-mt7530-move-p5_intf_modes-function-to-mt7530.patch b/target/linux/generic/backport-5.15/790-v6.4-0007-net-dsa-mt7530-move-p5_intf_modes-function-to-mt7530.patch index bd7ca33f6eddb2..b04a84965b47e1 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0007-net-dsa-mt7530-move-p5_intf_modes-function-to-mt7530.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0007-net-dsa-mt7530-move-p5_intf_modes-function-to-mt7530.patch @@ -21,7 +21,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -950,6 +950,24 @@ mt7530_set_ageing_time(struct dsa_switch +@@ -951,6 +951,24 @@ mt7530_set_ageing_time(struct dsa_switch return 0; } @@ -48,7 +48,7 @@ Signed-off-by: David S. Miller struct mt7530_priv *priv = ds->priv; --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h -@@ -682,24 +682,6 @@ enum p5_interface_select { +@@ -709,24 +709,6 @@ enum p5_interface_select { P5_INTF_SEL_GMAC5_SGMII, }; diff --git a/target/linux/generic/backport-5.15/790-v6.4-0008-net-dsa-mt7530-introduce-mt7530_probe_common-helper-.patch b/target/linux/generic/backport-5.15/790-v6.4-0008-net-dsa-mt7530-introduce-mt7530_probe_common-helper-.patch index 00dd91bbc957fb..3f656c7a67ca40 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0008-net-dsa-mt7530-introduce-mt7530_probe_common-helper-.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0008-net-dsa-mt7530-introduce-mt7530_probe_common-helper-.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -3160,44 +3160,21 @@ static const struct of_device_id mt7530_ +@@ -3205,44 +3205,21 @@ static const struct of_device_id mt7530_ MODULE_DEVICE_TABLE(of, mt7530_of_match); static int @@ -67,7 +67,7 @@ Signed-off-by: David S. Miller if (!priv->info) return -EINVAL; -@@ -3211,23 +3188,53 @@ mt7530_probe(struct mdio_device *mdiodev +@@ -3256,23 +3233,53 @@ mt7530_probe(struct mdio_device *mdiodev return -EINVAL; priv->id = priv->info->id; @@ -131,7 +131,7 @@ Signed-off-by: David S. Miller priv->reset = devm_gpiod_get_optional(&mdiodev->dev, "reset", GPIOD_OUT_LOW); if (IS_ERR(priv->reset)) { -@@ -3236,12 +3243,15 @@ mt7530_probe(struct mdio_device *mdiodev +@@ -3281,12 +3288,15 @@ mt7530_probe(struct mdio_device *mdiodev } } diff --git a/target/linux/generic/backport-5.15/790-v6.4-0009-net-dsa-mt7530-introduce-mt7530_remove_common-helper.patch b/target/linux/generic/backport-5.15/790-v6.4-0009-net-dsa-mt7530-introduce-mt7530_remove_common-helper.patch index be73b67c948ce5..efbabf668c82e3 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0009-net-dsa-mt7530-introduce-mt7530_remove_common-helper.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0009-net-dsa-mt7530-introduce-mt7530_remove_common-helper.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -3278,6 +3278,17 @@ mt7530_probe(struct mdio_device *mdiodev +@@ -3323,6 +3323,17 @@ mt7530_probe(struct mdio_device *mdiodev } static void @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller mt7530_remove(struct mdio_device *mdiodev) { struct mt7530_priv *priv = dev_get_drvdata(&mdiodev->dev); -@@ -3296,16 +3307,11 @@ mt7530_remove(struct mdio_device *mdiode +@@ -3341,16 +3352,11 @@ mt7530_remove(struct mdio_device *mdiode dev_err(priv->dev, "Failed to disable io pwr: %d\n", ret); diff --git a/target/linux/generic/backport-5.15/790-v6.4-0011-net-dsa-mt7530-introduce-separate-MDIO-driver.patch b/target/linux/generic/backport-5.15/790-v6.4-0011-net-dsa-mt7530-introduce-separate-MDIO-driver.patch index 2cebac1f8c6471..b04ec4555173c8 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0011-net-dsa-mt7530-introduce-separate-MDIO-driver.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0011-net-dsa-mt7530-introduce-separate-MDIO-driver.patch @@ -354,7 +354,7 @@ Signed-off-by: David S. Miller #include #include #include -@@ -192,31 +191,6 @@ core_clear(struct mt7530_priv *priv, u32 +@@ -193,31 +192,6 @@ core_clear(struct mt7530_priv *priv, u32 } static int @@ -386,7 +386,7 @@ Signed-off-by: David S. Miller mt7530_mii_write(struct mt7530_priv *priv, u32 reg, u32 val) { int ret; -@@ -230,29 +204,6 @@ mt7530_mii_write(struct mt7530_priv *pri +@@ -231,29 +205,6 @@ mt7530_mii_write(struct mt7530_priv *pri return ret; } @@ -416,7 +416,7 @@ Signed-off-by: David S. Miller static u32 mt7530_mii_read(struct mt7530_priv *priv, u32 reg) { -@@ -2958,72 +2909,6 @@ static const struct phylink_pcs_ops mt75 +@@ -3003,72 +2954,6 @@ static const struct phylink_pcs_ops mt75 .pcs_an_restart = mt7530_pcs_an_restart, }; @@ -489,7 +489,7 @@ Signed-off-by: David S. Miller static int mt753x_setup(struct dsa_switch *ds) { -@@ -3082,7 +2967,7 @@ static int mt753x_set_mac_eee(struct dsa +@@ -3127,7 +3012,7 @@ static int mt753x_set_mac_eee(struct dsa return 0; } @@ -498,7 +498,7 @@ Signed-off-by: David S. Miller .get_tag_protocol = mtk_get_tag_protocol, .setup = mt753x_setup, .get_strings = mt7530_get_strings, -@@ -3116,8 +3001,9 @@ static const struct dsa_switch_ops mt753 +@@ -3161,8 +3046,9 @@ static const struct dsa_switch_ops mt753 .get_mac_eee = mt753x_get_mac_eee, .set_mac_eee = mt753x_set_mac_eee, }; @@ -509,7 +509,7 @@ Signed-off-by: David S. Miller [ID_MT7621] = { .id = ID_MT7621, .pcs_ops = &mt7530_pcs_ops, -@@ -3150,16 +3036,9 @@ static const struct mt753x_info mt753x_t +@@ -3195,16 +3081,9 @@ static const struct mt753x_info mt753x_t .mac_port_config = mt7531_mac_config, }, }; @@ -528,7 +528,7 @@ Signed-off-by: David S. Miller mt7530_probe_common(struct mt7530_priv *priv) { struct device *dev = priv->dev; -@@ -3196,88 +3075,9 @@ mt7530_probe_common(struct mt7530_priv * +@@ -3241,88 +3120,9 @@ mt7530_probe_common(struct mt7530_priv * return 0; } @@ -619,7 +619,7 @@ Signed-off-by: David S. Miller mt7530_remove_common(struct mt7530_priv *priv) { if (priv->irq) -@@ -3288,57 +3088,6 @@ mt7530_remove_common(struct mt7530_priv +@@ -3333,57 +3133,6 @@ mt7530_remove_common(struct mt7530_priv mutex_destroy(&priv->reg_mutex); } @@ -679,7 +679,7 @@ Signed-off-by: David S. Miller MODULE_LICENSE("GPL"); --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h -@@ -807,4 +807,10 @@ static inline void INIT_MT7530_DUMMY_POL +@@ -834,4 +834,10 @@ static inline void INIT_MT7530_DUMMY_POL p->reg = reg; } diff --git a/target/linux/generic/backport-5.15/790-v6.4-0012-net-dsa-mt7530-skip-locking-if-MDIO-bus-isn-t-presen.patch b/target/linux/generic/backport-5.15/790-v6.4-0012-net-dsa-mt7530-skip-locking-if-MDIO-bus-isn-t-presen.patch index 95b7cc6afe5112..59e193f9f61224 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0012-net-dsa-mt7530-skip-locking-if-MDIO-bus-isn-t-presen.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0012-net-dsa-mt7530-skip-locking-if-MDIO-bus-isn-t-presen.patch @@ -27,7 +27,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -144,13 +144,15 @@ err: +@@ -145,13 +145,15 @@ err: static void mt7530_mutex_lock(struct mt7530_priv *priv) { diff --git a/target/linux/generic/backport-5.15/790-v6.4-0013-net-dsa-mt7530-introduce-driver-for-MT7988-built-in-.patch b/target/linux/generic/backport-5.15/790-v6.4-0013-net-dsa-mt7530-introduce-driver-for-MT7988-built-in-.patch index 889a13e0149bb4..2fad8f2b413c6a 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0013-net-dsa-mt7530-introduce-driver-for-MT7988-built-in-.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0013-net-dsa-mt7530-introduce-driver-for-MT7988-built-in-.patch @@ -184,7 +184,7 @@ Signed-off-by: David S. Miller +MODULE_LICENSE("GPL"); --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -1992,6 +1992,47 @@ static const struct irq_domain_ops mt753 +@@ -2037,6 +2037,47 @@ static const struct irq_domain_ops mt753 }; static void @@ -232,7 +232,7 @@ Signed-off-by: David S. Miller mt7530_setup_mdio_irq(struct mt7530_priv *priv) { struct dsa_switch *ds = priv->ds; -@@ -2025,8 +2066,15 @@ mt7530_setup_irq(struct mt7530_priv *pri +@@ -2070,8 +2111,15 @@ mt7530_setup_irq(struct mt7530_priv *pri return priv->irq ? : -EINVAL; } @@ -250,7 +250,7 @@ Signed-off-by: David S. Miller if (!priv->irq_domain) { dev_err(dev, "failed to create IRQ domain\n"); return -ENOMEM; -@@ -2521,6 +2569,25 @@ static void mt7531_mac_port_get_caps(str +@@ -2566,6 +2614,25 @@ static void mt7531_mac_port_get_caps(str } } @@ -276,7 +276,7 @@ Signed-off-by: David S. Miller static int mt753x_pad_setup(struct dsa_switch *ds, const struct phylink_link_state *state) { -@@ -2597,6 +2664,17 @@ static bool mt753x_is_mac_port(u32 port) +@@ -2642,6 +2709,17 @@ static bool mt753x_is_mac_port(u32 port) } static int @@ -294,7 +294,7 @@ Signed-off-by: David S. Miller mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode, phy_interface_t interface) { -@@ -2666,7 +2744,8 @@ mt753x_phylink_mac_config(struct dsa_swi +@@ -2711,7 +2789,8 @@ mt753x_phylink_mac_config(struct dsa_swi switch (port) { case 0 ... 4: /* Internal phy */ @@ -304,7 +304,7 @@ Signed-off-by: David S. Miller goto unsupported; break; case 5: /* 2nd cpu port with phy of port 0 or 4 / external phy */ -@@ -2744,7 +2823,8 @@ static void mt753x_phylink_mac_link_up(s +@@ -2789,7 +2868,8 @@ static void mt753x_phylink_mac_link_up(s /* MT753x MAC works in 1G full duplex mode for all up-clocked * variants. */ @@ -314,7 +314,7 @@ Signed-off-by: David S. Miller (phy_interface_mode_is_8023z(interface))) { speed = SPEED_1000; duplex = DUPLEX_FULL; -@@ -2824,6 +2904,21 @@ mt7531_cpu_port_config(struct dsa_switch +@@ -2869,6 +2949,21 @@ mt7531_cpu_port_config(struct dsa_switch return 0; } @@ -336,7 +336,7 @@ Signed-off-by: David S. Miller static void mt753x_phylink_get_caps(struct dsa_switch *ds, int port, struct phylink_config *config) { -@@ -2969,6 +3064,27 @@ static int mt753x_set_mac_eee(struct dsa +@@ -3014,6 +3109,27 @@ static int mt753x_set_mac_eee(struct dsa return 0; } @@ -364,7 +364,7 @@ Signed-off-by: David S. Miller const struct dsa_switch_ops mt7530_switch_ops = { .get_tag_protocol = mtk_get_tag_protocol, .setup = mt753x_setup, -@@ -3037,6 +3153,17 @@ const struct mt753x_info mt753x_table[] +@@ -3082,6 +3198,17 @@ const struct mt753x_info mt753x_table[] .mac_port_get_caps = mt7531_mac_port_get_caps, .mac_port_config = mt7531_mac_config, }, @@ -407,7 +407,7 @@ Signed-off-by: David S. Miller MT7531_MIRROR_MASK : MIRROR_MASK) /* Registers for BPDU and PAE frame control*/ -@@ -295,9 +296,8 @@ enum mt7530_vlan_port_acc_frm { +@@ -322,9 +323,8 @@ enum mt7530_vlan_port_acc_frm { MT7531_FORCE_DPX | \ MT7531_FORCE_RX_FC | \ MT7531_FORCE_TX_FC) diff --git a/target/linux/generic/backport-5.15/790-v6.4-0014-net-dsa-mt7530-fix-support-for-MT7531BE.patch b/target/linux/generic/backport-5.15/790-v6.4-0014-net-dsa-mt7530-fix-support-for-MT7531BE.patch index 40e18167267d2d..071680f100d223 100644 --- a/target/linux/generic/backport-5.15/790-v6.4-0014-net-dsa-mt7530-fix-support-for-MT7531BE.patch +++ b/target/linux/generic/backport-5.15/790-v6.4-0014-net-dsa-mt7530-fix-support-for-MT7531BE.patch @@ -73,7 +73,7 @@ Signed-off-by: Jakub Kicinski } --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -3031,6 +3031,12 @@ mt753x_setup(struct dsa_switch *ds) +@@ -3076,6 +3076,12 @@ mt753x_setup(struct dsa_switch *ds) if (ret && priv->irq) mt7530_free_irq_common(priv); @@ -88,7 +88,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h -@@ -741,10 +741,10 @@ struct mt753x_info { +@@ -768,10 +768,10 @@ struct mt753x_info { * registers * @p6_interface Holding the current port 6 interface * @p5_intf_sel: Holding the current port 5 interface select @@ -100,7 +100,7 @@ Signed-off-by: Jakub Kicinski */ struct mt7530_priv { struct device *dev; -@@ -763,7 +763,6 @@ struct mt7530_priv { +@@ -790,7 +790,6 @@ struct mt7530_priv { unsigned int p5_intf_sel; u8 mirror_rx; u8 mirror_tx; @@ -108,7 +108,7 @@ Signed-off-by: Jakub Kicinski struct mt7530_port ports[MT7530_NUM_PORTS]; struct mt753x_pcs pcs[MT7530_NUM_PORTS]; /* protect among processes for registers access*/ -@@ -771,6 +770,7 @@ struct mt7530_priv { +@@ -798,6 +797,7 @@ struct mt7530_priv { int irq; struct irq_domain *irq_domain; u32 irq_enable; diff --git a/target/linux/generic/backport-5.15/835-v6.9-0001-dt-bindings-leds-Add-FUNCTION-defines-for-per-band-W.patch b/target/linux/generic/backport-5.15/835-v6.9-0001-dt-bindings-leds-Add-FUNCTION-defines-for-per-band-W.patch new file mode 100644 index 00000000000000..8b6d3e79e74193 --- /dev/null +++ b/target/linux/generic/backport-5.15/835-v6.9-0001-dt-bindings-leds-Add-FUNCTION-defines-for-per-band-W.patch @@ -0,0 +1,34 @@ +From ec18a2a83b8b9f7e39c80105ea148c769c46227b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Wed, 17 Jan 2024 16:17:36 +0100 +Subject: [PATCH] dt-bindings: leds: Add FUNCTION defines for per-band WLANs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Most wireless routers and access points can operate in multiple bands +simultaneously. Vendors often equip their devices with per-band LEDs. + +Add defines for those very common functions to allow cleaner & clearer +bindings. + +Signed-off-by: Rafał Miłecki +Acked-by: Rob Herring +Link: https://lore.kernel.org/r/20240117151736.27440-1-zajec5@gmail.com +Signed-off-by: Lee Jones +--- + include/dt-bindings/leds/common.h | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/include/dt-bindings/leds/common.h ++++ b/include/dt-bindings/leds/common.h +@@ -94,6 +94,9 @@ + #define LED_FUNCTION_USB "usb" + #define LED_FUNCTION_WAN "wan" + #define LED_FUNCTION_WLAN "wlan" ++#define LED_FUNCTION_WLAN_2GHZ "wlan-2ghz" ++#define LED_FUNCTION_WLAN_5GHZ "wlan-5ghz" ++#define LED_FUNCTION_WLAN_6GHZ "wlan-6ghz" + #define LED_FUNCTION_WPS "wps" + + #endif /* __DT_BINDINGS_LEDS_H */ diff --git a/target/linux/generic/backport-5.15/835-v6.9-0002-dt-bindings-leds-Add-LED_FUNCTION_WAN_ONLINE-for-Int.patch b/target/linux/generic/backport-5.15/835-v6.9-0002-dt-bindings-leds-Add-LED_FUNCTION_WAN_ONLINE-for-Int.patch new file mode 100644 index 00000000000000..c1399ce3079b0e --- /dev/null +++ b/target/linux/generic/backport-5.15/835-v6.9-0002-dt-bindings-leds-Add-LED_FUNCTION_WAN_ONLINE-for-Int.patch @@ -0,0 +1,35 @@ +From 64e558500d2d04878b8a6d6578850c475171d6ba Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Fri, 23 Feb 2024 12:22:23 +0100 +Subject: [PATCH] dt-bindings: leds: Add LED_FUNCTION_WAN_ONLINE for Internet + access +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It's common for routers to have LED indicating link on the WAN port. + +Some devices however have an extra LED that's meant to be used if WAN +connection is actually "online" (there is Internet access available). + +It was suggested to add #define for such use case. + +Link: https://lore.kernel.org/linux-devicetree/80e92209-5578-44e7-bd4b-603a29053ddf@collabora.com/T/#u +Signed-off-by: Rafał Miłecki +Reviewed-by: AngeloGioacchino Del Regno +Link: https://lore.kernel.org/r/20240223112223.1368-1-zajec5@gmail.com +Signed-off-by: Lee Jones +--- + include/dt-bindings/leds/common.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/include/dt-bindings/leds/common.h ++++ b/include/dt-bindings/leds/common.h +@@ -93,6 +93,7 @@ + #define LED_FUNCTION_TX "tx" + #define LED_FUNCTION_USB "usb" + #define LED_FUNCTION_WAN "wan" ++#define LED_FUNCTION_WAN_ONLINE "wan-online" + #define LED_FUNCTION_WLAN "wlan" + #define LED_FUNCTION_WLAN_2GHZ "wlan-2ghz" + #define LED_FUNCTION_WLAN_5GHZ "wlan-5ghz" diff --git a/target/linux/generic/backport-6.1/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch b/target/linux/generic/backport-6.1/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch new file mode 100644 index 00000000000000..ba01bac8d2fa1c --- /dev/null +++ b/target/linux/generic/backport-6.1/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch @@ -0,0 +1,36 @@ +From 8e7daa85641c9559c113f6b217bdc923397de77c Mon Sep 17 00:00:00 2001 +From: William Zhang +Date: Thu, 22 Feb 2024 19:47:58 -0800 +Subject: [PATCH] mtd: rawnand: brcmnand: Support write protection setting from + dts + +The write protection feature is controlled by the module parameter wp_on +with default set to enabled. But not all the board use this feature +especially in BCMBCA broadband board. And module parameter is not +sufficient as different board can have different option. Add a device +tree property and allow this feature to be configured through the board +dts on per board basis. + +Signed-off-by: William Zhang +Reviewed-by: Florian Fainelli +Reviewed-by: Kamal Dasu +Reviewed-by: David Regan +Signed-off-by: Miquel Raynal +Link: https://lore.kernel.org/linux-mtd/20240223034758.13753-14-william.zhang@broadcom.com +--- + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +@@ -3188,6 +3188,10 @@ int brcmnand_probe(struct platform_devic + /* Disable XOR addressing */ + brcmnand_rmw_reg(ctrl, BRCMNAND_CS_XOR, 0xff, 0, 0); + ++ /* Check if the board connects the WP pin */ ++ if (of_property_read_bool(dn, "brcm,wp-not-connected")) ++ wp_on = 0; ++ + if (ctrl->features & BRCMNAND_HAS_WP) { + /* Permanently disable write protection */ + if (wp_on == 2) diff --git a/target/linux/generic/backport-6.1/714-net-pcs-add-driver-for-MediaTek-SGMII-PCS.patch b/target/linux/generic/backport-6.1/714-net-pcs-add-driver-for-MediaTek-SGMII-PCS.patch index d56a142451cd86..80c870159ba810 100644 --- a/target/linux/generic/backport-6.1/714-net-pcs-add-driver-for-MediaTek-SGMII-PCS.patch +++ b/target/linux/generic/backport-6.1/714-net-pcs-add-driver-for-MediaTek-SGMII-PCS.patch @@ -32,7 +32,7 @@ Signed-off-by: Jakub Kicinski --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -12928,6 +12928,14 @@ L: netdev@vger.kernel.org +@@ -12935,6 +12935,14 @@ L: netdev@vger.kernel.org S: Maintained F: drivers/net/ethernet/mediatek/ diff --git a/target/linux/generic/backport-6.1/718-v6.9-net-phy-qcom-at803x-fix-kernel-panic-with-at8031_pro.patch b/target/linux/generic/backport-6.1/718-v6.9-net-phy-qcom-at803x-fix-kernel-panic-with-at8031_pro.patch new file mode 100644 index 00000000000000..9b9ce2a3cd01eb --- /dev/null +++ b/target/linux/generic/backport-6.1/718-v6.9-net-phy-qcom-at803x-fix-kernel-panic-with-at8031_pro.patch @@ -0,0 +1,45 @@ +From 6a4aee277740d04ac0fd54cfa17cc28261932ddc Mon Sep 17 00:00:00 2001 +From: Christian Marangi +Date: Mon, 25 Mar 2024 20:06:19 +0100 +Subject: [PATCH] net: phy: qcom: at803x: fix kernel panic with at8031_probe + +On reworking and splitting the at803x driver, in splitting function of +at803x PHYs it was added a NULL dereference bug where priv is referenced +before it's actually allocated and then is tried to write to for the +is_1000basex and is_fiber variables in the case of at8031, writing on +the wrong address. + +Fix this by correctly setting priv local variable only after +at803x_probe is called and actually allocates priv in the phydev struct. + +Reported-by: William Wortel +Cc: +Fixes: 25d2ba94005f ("net: phy: at803x: move specific at8031 probe mode check to dedicated probe") +Signed-off-by: Christian Marangi +Reviewed-by: Andrew Lunn +Link: https://lore.kernel.org/r/20240325190621.2665-1-ansuelsmth@gmail.com +Signed-off-by: Paolo Abeni +--- + drivers/net/phy/qcom/at803x.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/net/phy/qcom/at803x.c ++++ b/drivers/net/phy/qcom/at803x.c +@@ -797,7 +797,7 @@ static int at8031_parse_dt(struct phy_de + + static int at8031_probe(struct phy_device *phydev) + { +- struct at803x_priv *priv = phydev->priv; ++ struct at803x_priv *priv; + int mode_cfg; + int ccr; + int ret; +@@ -806,6 +806,8 @@ static int at8031_probe(struct phy_devic + if (ret) + return ret; + ++ priv = phydev->priv; ++ + /* Only supported on AR8031/AR8033, the AR8030/AR8035 use strapping + * options. + */ diff --git a/target/linux/generic/backport-6.1/734-v6.8-net-phy-bcm54612e-add-suspend-resume.patch b/target/linux/generic/backport-6.1/734-v6.8-net-phy-bcm54612e-add-suspend-resume.patch new file mode 100644 index 00000000000000..64d1b160d3d3e4 --- /dev/null +++ b/target/linux/generic/backport-6.1/734-v6.8-net-phy-bcm54612e-add-suspend-resume.patch @@ -0,0 +1,27 @@ +From 380b50ae3a04222334a3779b3787eba844b1177f Mon Sep 17 00:00:00 2001 +From: Marco von Rosenberg +Date: Thu, 16 Nov 2023 20:32:31 +0100 +Subject: net: phy: broadcom: Wire suspend/resume for BCM54612E + +The BCM54612E ethernet PHY supports IDDQ-SR. +Therefore wire-up the suspend and resume callbacks +to point to bcm54xx_suspend() and bcm54xx_resume(). + +Signed-off-by: Marco von Rosenberg +Acked-by: Florian Fainelli +Signed-off-by: David S. Miller +--- + drivers/net/phy/broadcom.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/net/phy/broadcom.c ++++ b/drivers/net/phy/broadcom.c +@@ -942,6 +942,8 @@ static struct phy_driver broadcom_driver + .config_intr = bcm_phy_config_intr, + .handle_interrupt = bcm_phy_handle_interrupt, + .link_change_notify = bcm54xx_link_change_notify, ++ .suspend = bcm54xx_suspend, ++ .resume = bcm54xx_resume, + }, { + .phy_id = PHY_ID_BCM54616S, + .phy_id_mask = 0xfffffff0, diff --git a/target/linux/generic/backport-6.1/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch b/target/linux/generic/backport-6.1/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch index 95dd24881b6652..87361206540aad 100644 --- a/target/linux/generic/backport-6.1/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch +++ b/target/linux/generic/backport-6.1/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch @@ -42,7 +42,7 @@ Signed-off-by: Paolo Abeni __netif_tx_unlock_bh(netdev_get_tx_queue(priv->dev, queue)); -@@ -5488,12 +5492,13 @@ static int stmmac_napi_poll_tx(struct na +@@ -5490,12 +5494,13 @@ static int stmmac_napi_poll_tx(struct na struct stmmac_channel *ch = container_of(napi, struct stmmac_channel, tx_napi); struct stmmac_priv *priv = ch->priv_data; @@ -57,7 +57,7 @@ Signed-off-by: Paolo Abeni work_done = min(work_done, budget); if (work_done < budget && napi_complete_done(napi, work_done)) { -@@ -5504,6 +5509,10 @@ static int stmmac_napi_poll_tx(struct na +@@ -5506,6 +5511,10 @@ static int stmmac_napi_poll_tx(struct na spin_unlock_irqrestore(&ch->lock, flags); } @@ -68,7 +68,7 @@ Signed-off-by: Paolo Abeni return work_done; } -@@ -5512,12 +5521,13 @@ static int stmmac_napi_poll_rxtx(struct +@@ -5514,12 +5523,13 @@ static int stmmac_napi_poll_rxtx(struct struct stmmac_channel *ch = container_of(napi, struct stmmac_channel, rxtx_napi); struct stmmac_priv *priv = ch->priv_data; @@ -83,7 +83,7 @@ Signed-off-by: Paolo Abeni tx_done = min(tx_done, budget); rx_done = stmmac_rx_zc(priv, budget, chan); -@@ -5542,6 +5552,10 @@ static int stmmac_napi_poll_rxtx(struct +@@ -5544,6 +5554,10 @@ static int stmmac_napi_poll_rxtx(struct spin_unlock_irqrestore(&ch->lock, flags); } diff --git a/target/linux/generic/backport-6.1/790-v6.4-0010-net-dsa-mt7530-introduce-separate-MDIO-driver.patch b/target/linux/generic/backport-6.1/790-v6.4-0010-net-dsa-mt7530-introduce-separate-MDIO-driver.patch index d2037118849b2b..f57a1bf06abc5c 100644 --- a/target/linux/generic/backport-6.1/790-v6.4-0010-net-dsa-mt7530-introduce-separate-MDIO-driver.patch +++ b/target/linux/generic/backport-6.1/790-v6.4-0010-net-dsa-mt7530-introduce-separate-MDIO-driver.patch @@ -25,7 +25,7 @@ Signed-off-by: David S. Miller --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -13062,6 +13062,7 @@ M: Landen Chao L: netdev@vger.kernel.org S: Maintained diff --git a/target/linux/generic/backport-6.1/790-v6.4-0012-net-dsa-mt7530-introduce-driver-for-MT7988-built-in-.patch b/target/linux/generic/backport-6.1/790-v6.4-0012-net-dsa-mt7530-introduce-driver-for-MT7988-built-in-.patch index 63bf0e77fab48c..05adccf517143b 100644 --- a/target/linux/generic/backport-6.1/790-v6.4-0012-net-dsa-mt7530-introduce-driver-for-MT7988-built-in-.patch +++ b/target/linux/generic/backport-6.1/790-v6.4-0012-net-dsa-mt7530-introduce-driver-for-MT7988-built-in-.patch @@ -28,7 +28,7 @@ Signed-off-by: David S. Miller --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -13060,9 +13060,11 @@ MEDIATEK SWITCH DRIVER +@@ -13067,9 +13067,11 @@ MEDIATEK SWITCH DRIVER M: Sean Wang M: Landen Chao M: DENG Qingfang diff --git a/target/linux/generic/backport-6.1/791-v6.2-01-net-phy-Add-driver-for-Motorcomm-yt8521-gigabit-ethernet.patch b/target/linux/generic/backport-6.1/791-v6.2-01-net-phy-Add-driver-for-Motorcomm-yt8521-gigabit-ethernet.patch index 4cdd67cdcccf5b..3cf98acc85800b 100644 --- a/target/linux/generic/backport-6.1/791-v6.2-01-net-phy-Add-driver-for-Motorcomm-yt8521-gigabit-ethernet.patch +++ b/target/linux/generic/backport-6.1/791-v6.2-01-net-phy-Add-driver-for-Motorcomm-yt8521-gigabit-ethernet.patch @@ -21,7 +21,7 @@ Signed-off-by: David S. Miller --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -13964,6 +13964,7 @@ F: include/uapi/linux/meye.h +@@ -13971,6 +13971,7 @@ F: include/uapi/linux/meye.h MOTORCOMM PHY DRIVER M: Peter Geis diff --git a/target/linux/generic/backport-6.1/817-v6.9-0001-dt-bindings-leds-Add-FUNCTION-defines-for-per-band-W.patch b/target/linux/generic/backport-6.1/817-v6.9-0001-dt-bindings-leds-Add-FUNCTION-defines-for-per-band-W.patch new file mode 100644 index 00000000000000..bf36e19fcc7c37 --- /dev/null +++ b/target/linux/generic/backport-6.1/817-v6.9-0001-dt-bindings-leds-Add-FUNCTION-defines-for-per-band-W.patch @@ -0,0 +1,34 @@ +From ec18a2a83b8b9f7e39c80105ea148c769c46227b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Wed, 17 Jan 2024 16:17:36 +0100 +Subject: [PATCH] dt-bindings: leds: Add FUNCTION defines for per-band WLANs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Most wireless routers and access points can operate in multiple bands +simultaneously. Vendors often equip their devices with per-band LEDs. + +Add defines for those very common functions to allow cleaner & clearer +bindings. + +Signed-off-by: Rafał Miłecki +Acked-by: Rob Herring +Link: https://lore.kernel.org/r/20240117151736.27440-1-zajec5@gmail.com +Signed-off-by: Lee Jones +--- + include/dt-bindings/leds/common.h | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/include/dt-bindings/leds/common.h ++++ b/include/dt-bindings/leds/common.h +@@ -101,6 +101,9 @@ + #define LED_FUNCTION_USB "usb" + #define LED_FUNCTION_WAN "wan" + #define LED_FUNCTION_WLAN "wlan" ++#define LED_FUNCTION_WLAN_2GHZ "wlan-2ghz" ++#define LED_FUNCTION_WLAN_5GHZ "wlan-5ghz" ++#define LED_FUNCTION_WLAN_6GHZ "wlan-6ghz" + #define LED_FUNCTION_WPS "wps" + + #endif /* __DT_BINDINGS_LEDS_H */ diff --git a/target/linux/generic/backport-6.1/817-v6.9-0002-dt-bindings-leds-Add-LED_FUNCTION_WAN_ONLINE-for-Int.patch b/target/linux/generic/backport-6.1/817-v6.9-0002-dt-bindings-leds-Add-LED_FUNCTION_WAN_ONLINE-for-Int.patch new file mode 100644 index 00000000000000..eabb9bbe9ad54c --- /dev/null +++ b/target/linux/generic/backport-6.1/817-v6.9-0002-dt-bindings-leds-Add-LED_FUNCTION_WAN_ONLINE-for-Int.patch @@ -0,0 +1,35 @@ +From 64e558500d2d04878b8a6d6578850c475171d6ba Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Fri, 23 Feb 2024 12:22:23 +0100 +Subject: [PATCH] dt-bindings: leds: Add LED_FUNCTION_WAN_ONLINE for Internet + access +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It's common for routers to have LED indicating link on the WAN port. + +Some devices however have an extra LED that's meant to be used if WAN +connection is actually "online" (there is Internet access available). + +It was suggested to add #define for such use case. + +Link: https://lore.kernel.org/linux-devicetree/80e92209-5578-44e7-bd4b-603a29053ddf@collabora.com/T/#u +Signed-off-by: Rafał Miłecki +Reviewed-by: AngeloGioacchino Del Regno +Link: https://lore.kernel.org/r/20240223112223.1368-1-zajec5@gmail.com +Signed-off-by: Lee Jones +--- + include/dt-bindings/leds/common.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/include/dt-bindings/leds/common.h ++++ b/include/dt-bindings/leds/common.h +@@ -100,6 +100,7 @@ + #define LED_FUNCTION_TX "tx" + #define LED_FUNCTION_USB "usb" + #define LED_FUNCTION_WAN "wan" ++#define LED_FUNCTION_WAN_ONLINE "wan-online" + #define LED_FUNCTION_WLAN "wlan" + #define LED_FUNCTION_WLAN_2GHZ "wlan-2ghz" + #define LED_FUNCTION_WLAN_5GHZ "wlan-5ghz" diff --git a/target/linux/generic/backport-6.1/850-v6.2-bus-mhi-host-pci_generic-add-support-for-sc8280xp-cr.patch b/target/linux/generic/backport-6.1/850-v6.2-bus-mhi-host-pci_generic-add-support-for-sc8280xp-cr.patch new file mode 100644 index 00000000000000..1bf5196790b56a --- /dev/null +++ b/target/linux/generic/backport-6.1/850-v6.2-bus-mhi-host-pci_generic-add-support-for-sc8280xp-cr.patch @@ -0,0 +1,32 @@ +From a38a6e5d2dc41feeaa839cd61196f86c0ee223b8 Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Fri, 4 Nov 2022 10:39:13 +0100 +Subject: [PATCH 01/13] bus: mhi: host: pci_generic: add support for + sc8280xp-crd SDX55 variant + +The SC8280XP Compute Reference Design (CRD) has an on-PCB SDX55 modem +which uses MBIM. + +The exact channel configuration is not known but the Foxconn SDX55 +configuration allows the modem to be used so reuse that one for now. + +Signed-off-by: Johan Hovold +Reviewed-by: Manivannan Sadhasivam +Link: https://lore.kernel.org/r/20221104093913.23347-1-johan+linaro@kernel.org +[mani: modified the subject to format "bus: mhi: host"] +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -542,6 +542,8 @@ static const struct mhi_pci_dev_info mhi + static const struct pci_device_id mhi_pci_id_table[] = { + { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0304), + .driver_data = (kernel_ulong_t) &mhi_qcom_sdx24_info }, ++ { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, PCI_VENDOR_ID_QCOM, 0x010c), ++ .driver_data = (kernel_ulong_t) &mhi_foxconn_sdx55_info }, + /* EM919x (sdx55), use the same vid:pid as qcom-sdx55m */ + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, 0x18d7, 0x0200), + .driver_data = (kernel_ulong_t) &mhi_sierra_em919x_info }, diff --git a/target/linux/generic/backport-6.1/851-v6.2-bus-mhi-host-pci_generic-Add-HP-variant-of-T99W175.patch b/target/linux/generic/backport-6.1/851-v6.2-bus-mhi-host-pci_generic-Add-HP-variant-of-T99W175.patch new file mode 100644 index 00000000000000..0dabc48bfad84b --- /dev/null +++ b/target/linux/generic/backport-6.1/851-v6.2-bus-mhi-host-pci_generic-Add-HP-variant-of-T99W175.patch @@ -0,0 +1,34 @@ +From 6a150325917a6df9467beeaa6518ab91ada81d97 Mon Sep 17 00:00:00 2001 +From: Song Fuchang +Date: Mon, 7 Nov 2022 19:18:35 +0530 +Subject: [PATCH 02/13] bus: mhi: host: pci_generic: Add HP variant of T99W175 + +The Foxconn T99W175 modem has an HP variant, which has +the following output from lspci: + +01:00.0 Wireless controller [0d40]: Device 03f0:0a6c + +It also has some HP-specific serial numbers on the +metal case. It works well with this driver, so add +support for this to the pci_generic driver. + +Signed-off-by: Song Fuchang +Reviewed-by: Manivannan Sadhasivam +[mani: manually applied the patch] +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -596,6 +596,9 @@ static const struct pci_device_id mhi_pc + /* MV32-WB (Cinterion) */ + { PCI_DEVICE(0x1269, 0x00bb), + .driver_data = (kernel_ulong_t) &mhi_mv32_info }, ++ /* T99W175 (sdx55), HP variant */ ++ { PCI_DEVICE(0x03f0, 0x0a6c), ++ .driver_data = (kernel_ulong_t) &mhi_foxconn_sdx55_info }, + { } + }; + MODULE_DEVICE_TABLE(pci, mhi_pci_id_table); diff --git a/target/linux/generic/backport-6.1/852-v6.2-bus-mhi-host-pci_generic-Add-definition-for-some-VID.patch b/target/linux/generic/backport-6.1/852-v6.2-bus-mhi-host-pci_generic-Add-definition-for-some-VID.patch new file mode 100644 index 00000000000000..fbf6c8a5015713 --- /dev/null +++ b/target/linux/generic/backport-6.1/852-v6.2-bus-mhi-host-pci_generic-Add-definition-for-some-VID.patch @@ -0,0 +1,66 @@ +From e8bc362f158f45185778e2bec081146aeeb283b5 Mon Sep 17 00:00:00 2001 +From: Slark Xiao +Date: Mon, 7 Nov 2022 19:27:00 +0800 +Subject: [PATCH 03/13] bus: mhi: host: pci_generic: Add definition for some + VIDs + +To make code neat and for convenience purpose, add definition for some +VIDs. Adding it locally until these VIDs are used in multiple places. + +Signed-off-by: Slark Xiao +Reviewed-by: Manivannan Sadhasivam +Link: https://lore.kernel.org/r/20221107112700.773-1-slark_xiao@163.com +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 18 +++++++++++------- + 1 file changed, 11 insertions(+), 7 deletions(-) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -24,6 +24,10 @@ + + #define HEALTH_CHECK_PERIOD (HZ * 2) + ++/* PCI VID definitions */ ++#define PCI_VENDOR_ID_THALES 0x1269 ++#define PCI_VENDOR_ID_QUECTEL 0x1eac ++ + /** + * struct mhi_pci_dev_info - MHI PCI device specific information + * @config: MHI controller configuration +@@ -557,11 +561,11 @@ static const struct pci_device_id mhi_pc + .driver_data = (kernel_ulong_t) &mhi_telit_fn990_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308), + .driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info }, +- { PCI_DEVICE(0x1eac, 0x1001), /* EM120R-GL (sdx24) */ ++ { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1001), /* EM120R-GL (sdx24) */ + .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, +- { PCI_DEVICE(0x1eac, 0x1002), /* EM160R-GL (sdx24) */ ++ { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1002), /* EM160R-GL (sdx24) */ + .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, +- { PCI_DEVICE(0x1eac, 0x2001), /* EM120R-GL for FCCL (sdx24) */ ++ { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x2001), /* EM120R-GL for FCCL (sdx24) */ + .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, + /* T99W175 (sdx55), Both for eSIM and Non-eSIM */ + { PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0ab), +@@ -585,16 +589,16 @@ static const struct pci_device_id mhi_pc + { PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0d9), + .driver_data = (kernel_ulong_t) &mhi_foxconn_sdx65_info }, + /* MV31-W (Cinterion) */ +- { PCI_DEVICE(0x1269, 0x00b3), ++ { PCI_DEVICE(PCI_VENDOR_ID_THALES, 0x00b3), + .driver_data = (kernel_ulong_t) &mhi_mv31_info }, + /* MV31-W (Cinterion), based on new baseline */ +- { PCI_DEVICE(0x1269, 0x00b4), ++ { PCI_DEVICE(PCI_VENDOR_ID_THALES, 0x00b4), + .driver_data = (kernel_ulong_t) &mhi_mv31_info }, + /* MV32-WA (Cinterion) */ +- { PCI_DEVICE(0x1269, 0x00ba), ++ { PCI_DEVICE(PCI_VENDOR_ID_THALES, 0x00ba), + .driver_data = (kernel_ulong_t) &mhi_mv32_info }, + /* MV32-WB (Cinterion) */ +- { PCI_DEVICE(0x1269, 0x00bb), ++ { PCI_DEVICE(PCI_VENDOR_ID_THALES, 0x00bb), + .driver_data = (kernel_ulong_t) &mhi_mv32_info }, + /* T99W175 (sdx55), HP variant */ + { PCI_DEVICE(0x03f0, 0x0a6c), diff --git a/target/linux/generic/backport-6.1/853-v6.2-bus-mhi-host-pci_generic-Drop-redundant-pci_enable_p.patch b/target/linux/generic/backport-6.1/853-v6.2-bus-mhi-host-pci_generic-Drop-redundant-pci_enable_p.patch new file mode 100644 index 00000000000000..2f5a0ac11dadf9 --- /dev/null +++ b/target/linux/generic/backport-6.1/853-v6.2-bus-mhi-host-pci_generic-Drop-redundant-pci_enable_p.patch @@ -0,0 +1,68 @@ +From 6c00e1e4e9817e85b8ba83024cfa88382f898841 Mon Sep 17 00:00:00 2001 +From: Bjorn Helgaas +Date: Tue, 7 Mar 2023 14:16:25 -0600 +Subject: [PATCH 04/13] bus: mhi: host: pci_generic: Drop redundant + pci_enable_pcie_error_reporting() + +pci_enable_pcie_error_reporting() enables the device to send ERR_* +Messages. Since commit ("PCI/AER: Enable error reporting +when AER is native"), the PCI core does this for all devices during +enumeration, so the driver doesn't need to do it itself. + +Remove the redundant pci_enable_pcie_error_reporting() call from the +driver. Also remove the corresponding pci_disable_pcie_error_reporting() +from the driver .remove() path. + +Note that this only controls ERR_* Messages from the device. An ERR_* +Message may cause the Root Port to generate an interrupt, depending on the +AER Root Error Command register managed by the AER service driver. + +Signed-off-by: Bjorn Helgaas +Reviewed-by: Manivannan Sadhasivam +Reviewed-by: Jeffrey Hugo +Link: https://lore.kernel.org/r/20230307201625.879567-1-helgaas@kernel.org +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 8 +------- + 1 file changed, 1 insertion(+), 7 deletions(-) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -8,7 +8,6 @@ + * Copyright (C) 2020 Linaro Ltd + */ + +-#include + #include + #include + #include +@@ -901,11 +900,9 @@ static int mhi_pci_probe(struct pci_dev + mhi_pdev->pci_state = pci_store_saved_state(pdev); + pci_load_saved_state(pdev, NULL); + +- pci_enable_pcie_error_reporting(pdev); +- + err = mhi_register_controller(mhi_cntrl, mhi_cntrl_config); + if (err) +- goto err_disable_reporting; ++ return err; + + /* MHI bus does not power up the controller by default */ + err = mhi_prepare_for_power_up(mhi_cntrl); +@@ -939,8 +936,6 @@ err_unprepare: + mhi_unprepare_after_power_down(mhi_cntrl); + err_unregister: + mhi_unregister_controller(mhi_cntrl); +-err_disable_reporting: +- pci_disable_pcie_error_reporting(pdev); + + return err; + } +@@ -963,7 +958,6 @@ static void mhi_pci_remove(struct pci_de + pm_runtime_get_noresume(&pdev->dev); + + mhi_unregister_controller(mhi_cntrl); +- pci_disable_pcie_error_reporting(pdev); + } + + static void mhi_pci_shutdown(struct pci_dev *pdev) diff --git a/target/linux/generic/backport-6.1/854-v6.4-bus-mhi-pci_generic-Add-Foxconn-T99W510.patch b/target/linux/generic/backport-6.1/854-v6.4-bus-mhi-pci_generic-Add-Foxconn-T99W510.patch new file mode 100644 index 00000000000000..f757ca28e5e533 --- /dev/null +++ b/target/linux/generic/backport-6.1/854-v6.4-bus-mhi-pci_generic-Add-Foxconn-T99W510.patch @@ -0,0 +1,49 @@ +From 537350abfcc6b639884d1ef7bff35d31a624549b Mon Sep 17 00:00:00 2001 +From: Slark Xiao +Date: Wed, 29 Mar 2023 15:22:39 +0800 +Subject: [PATCH 05/13] bus: mhi: pci_generic: Add Foxconn T99W510 + +The Foxconn T99W510 device is designed based on Qualcomm +SDX24. Add 3 variants for different potential customer. + +Signed-off-by: Slark Xiao +Link: https://lore.kernel.org/r/20230329072239.93632-1-slark_xiao@163.com +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -363,6 +363,15 @@ static const struct mhi_controller_confi + .event_cfg = mhi_foxconn_sdx55_events, + }; + ++static const struct mhi_pci_dev_info mhi_foxconn_sdx24_info = { ++ .name = "foxconn-sdx24", ++ .config = &modem_foxconn_sdx55_config, ++ .bar_num = MHI_PCI_DEFAULT_BAR_NUM, ++ .dma_data_width = 32, ++ .mru_default = 32768, ++ .sideband_wake = false, ++}; ++ + static const struct mhi_pci_dev_info mhi_foxconn_sdx55_info = { + .name = "foxconn-sdx55", + .fw = "qcom/sdx55m/sbl1.mbn", +@@ -587,6 +596,15 @@ static const struct pci_device_id mhi_pc + /* T99W373 (sdx62) */ + { PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0d9), + .driver_data = (kernel_ulong_t) &mhi_foxconn_sdx65_info }, ++ /* T99W510 (sdx24), variant 1 */ ++ { PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0f0), ++ .driver_data = (kernel_ulong_t) &mhi_foxconn_sdx24_info }, ++ /* T99W510 (sdx24), variant 2 */ ++ { PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0f1), ++ .driver_data = (kernel_ulong_t) &mhi_foxconn_sdx24_info }, ++ /* T99W510 (sdx24), variant 3 */ ++ { PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0f2), ++ .driver_data = (kernel_ulong_t) &mhi_foxconn_sdx24_info }, + /* MV31-W (Cinterion) */ + { PCI_DEVICE(PCI_VENDOR_ID_THALES, 0x00b3), + .driver_data = (kernel_ulong_t) &mhi_mv31_info }, diff --git a/target/linux/generic/backport-6.1/855-v6.6-bus-mhi-host-pci_generic-Add-support-for-IP_SW0-chan.patch b/target/linux/generic/backport-6.1/855-v6.6-bus-mhi-host-pci_generic-Add-support-for-IP_SW0-chan.patch new file mode 100644 index 00000000000000..8c319ebeb7a408 --- /dev/null +++ b/target/linux/generic/backport-6.1/855-v6.6-bus-mhi-host-pci_generic-Add-support-for-IP_SW0-chan.patch @@ -0,0 +1,67 @@ +From 440b01a2a9a62352cfa355354d3a4de6c5d96adf Mon Sep 17 00:00:00 2001 +From: Manivannan Sadhasivam +Date: Fri, 19 May 2023 19:28:03 +0530 +Subject: [PATCH 06/13] bus: mhi: host: pci_generic: Add support for IP_SW0 + channels + +IP_SW0 channels are used to transfer data over the networking interface +between MHI endpoint and the host. Define the channels in the MHI v1 +channel config along with dedicated event rings. + +Reviewed-by: Loic Poulain +Link: https://lore.kernel.org/r/20230519135803.13850-1-manivannan.sadhasivam@linaro.org +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 26 ++++++++++++++++++++++---- + 1 file changed, 22 insertions(+), 4 deletions(-) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -212,6 +212,19 @@ struct mhi_pci_dev_info { + .offload_channel = false, \ + } + ++#define MHI_EVENT_CONFIG_SW_DATA(ev_ring, el_count) \ ++ { \ ++ .num_elements = el_count, \ ++ .irq_moderation_ms = 0, \ ++ .irq = (ev_ring) + 1, \ ++ .priority = 1, \ ++ .mode = MHI_DB_BRST_DISABLE, \ ++ .data_type = MHI_ER_DATA, \ ++ .hardware_event = false, \ ++ .client_managed = false, \ ++ .offload_channel = false, \ ++ } ++ + #define MHI_EVENT_CONFIG_HW_DATA(ev_ring, el_count, ch_num) \ + { \ + .num_elements = el_count, \ +@@ -237,8 +250,10 @@ static const struct mhi_channel_config m + MHI_CHANNEL_CONFIG_DL_AUTOQUEUE(21, "IPCR", 8, 0), + MHI_CHANNEL_CONFIG_UL_FP(34, "FIREHOSE", 32, 0), + MHI_CHANNEL_CONFIG_DL_FP(35, "FIREHOSE", 32, 0), +- MHI_CHANNEL_CONFIG_HW_UL(100, "IP_HW0", 128, 2), +- MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0", 128, 3), ++ MHI_CHANNEL_CONFIG_UL(46, "IP_SW0", 64, 2), ++ MHI_CHANNEL_CONFIG_DL(47, "IP_SW0", 64, 3), ++ MHI_CHANNEL_CONFIG_HW_UL(100, "IP_HW0", 128, 4), ++ MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0", 128, 5), + }; + + static struct mhi_event_config modem_qcom_v1_mhi_events[] = { +@@ -246,9 +261,12 @@ static struct mhi_event_config modem_qco + MHI_EVENT_CONFIG_CTRL(0, 64), + /* DIAG dedicated event ring */ + MHI_EVENT_CONFIG_DATA(1, 128), ++ /* Software channels dedicated event ring */ ++ MHI_EVENT_CONFIG_SW_DATA(2, 64), ++ MHI_EVENT_CONFIG_SW_DATA(3, 64), + /* Hardware channels request dedicated hardware event rings */ +- MHI_EVENT_CONFIG_HW_DATA(2, 1024, 100), +- MHI_EVENT_CONFIG_HW_DATA(3, 2048, 101) ++ MHI_EVENT_CONFIG_HW_DATA(4, 1024, 100), ++ MHI_EVENT_CONFIG_HW_DATA(5, 2048, 101) + }; + + static const struct mhi_controller_config modem_qcom_v1_mhiv_config = { diff --git a/target/linux/generic/backport-6.1/856-v6.6-bus-mhi-host-pci_generic-Add-support-for-Quectel-EM1.patch b/target/linux/generic/backport-6.1/856-v6.6-bus-mhi-host-pci_generic-Add-support-for-Quectel-EM1.patch new file mode 100644 index 00000000000000..5c15eec712c2d6 --- /dev/null +++ b/target/linux/generic/backport-6.1/856-v6.6-bus-mhi-host-pci_generic-Add-support-for-Quectel-EM1.patch @@ -0,0 +1,34 @@ +From 2dc36ddb6ca4eeda21204dc9e57750494c74c06d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Duke=20Xin=20=28=E8=BE=9B=E5=AE=89=E6=96=87=29?= + +Date: Thu, 8 Jun 2023 02:29:27 -0700 +Subject: [PATCH 07/13] bus: mhi: host: pci_generic: Add support for Quectel + EM160R-GL modem +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This modem is identical to the previous EM160R-GL modem with same product +name. But this one is designed for a specific laptop usecase, hence Quectel +got a new PID. + +Signed-off-by: Duke Xin(辛安文) +Reviewed-by: Manivannan Sadhasivam +Link: https://lore.kernel.org/r/20230608092927.2893-1-duke_xinanwen@163.com +[mani: modified the commit message and subject] +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -591,6 +591,8 @@ static const struct pci_device_id mhi_pc + .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1002), /* EM160R-GL (sdx24) */ + .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, ++ { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x100d), /* EM160R-GL (sdx24) */ ++ .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x2001), /* EM120R-GL for FCCL (sdx24) */ + .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, + /* T99W175 (sdx55), Both for eSIM and Non-eSIM */ diff --git a/target/linux/generic/backport-6.1/857-v6.6-bus-mhi-host-pci_generic-Add-support-for-Quectel-RM5.patch b/target/linux/generic/backport-6.1/857-v6.6-bus-mhi-host-pci_generic-Add-support-for-Quectel-RM5.patch new file mode 100644 index 00000000000000..5922207e294199 --- /dev/null +++ b/target/linux/generic/backport-6.1/857-v6.6-bus-mhi-host-pci_generic-Add-support-for-Quectel-RM5.patch @@ -0,0 +1,49 @@ +From 7e2f6cb11c24799b6851142c4a5ce69bdc630364 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Duke=20Xin=20=28=E8=BE=9B=E5=AE=89=E6=96=87=29?= + +Date: Thu, 29 Jun 2023 23:23:18 -0700 +Subject: [PATCH 08/13] bus: mhi: host: pci_generic: Add support for Quectel + RM520N-GL modem +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add MHI interface definition for RM520 product based on Qualcomm SDX6X chip + +Signed-off-by: Duke Xin(辛安文) +Reviewed-by: Manivannan Sadhasivam +Link: https://lore.kernel.org/r/20230630062318.12114-1-duke_xinanwen@163.com +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -352,6 +352,16 @@ static const struct mhi_pci_dev_info mhi + .sideband_wake = true, + }; + ++static const struct mhi_pci_dev_info mhi_quectel_rm5xx_info = { ++ .name = "quectel-rm5xx", ++ .edl = "qcom/prog_firehose_sdx6x.elf", ++ .config = &modem_quectel_em1xx_config, ++ .bar_num = MHI_PCI_DEFAULT_BAR_NUM, ++ .dma_data_width = 32, ++ .mru_default = 32768, ++ .sideband_wake = true, ++}; ++ + static const struct mhi_channel_config mhi_foxconn_sdx55_channels[] = { + MHI_CHANNEL_CONFIG_UL(0, "LOOPBACK", 32, 0), + MHI_CHANNEL_CONFIG_DL(1, "LOOPBACK", 32, 0), +@@ -591,6 +601,9 @@ static const struct pci_device_id mhi_pc + .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1002), /* EM160R-GL (sdx24) */ + .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, ++ /* RM520N-GL (sdx6x), eSIM */ ++ { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1004), ++ .driver_data = (kernel_ulong_t) &mhi_quectel_rm5xx_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x100d), /* EM160R-GL (sdx24) */ + .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x2001), /* EM120R-GL for FCCL (sdx24) */ diff --git a/target/linux/generic/backport-6.1/858-v6.6-bus-mhi-host-pci_generic-Add-support-for-Dell-DW5932.patch b/target/linux/generic/backport-6.1/858-v6.6-bus-mhi-host-pci_generic-Add-support-for-Dell-DW5932.patch new file mode 100644 index 00000000000000..bb7b3c3ffc7ac3 --- /dev/null +++ b/target/linux/generic/backport-6.1/858-v6.6-bus-mhi-host-pci_generic-Add-support-for-Dell-DW5932.patch @@ -0,0 +1,34 @@ +From 5e20ac8e7d3221e079e87066c4e8f4b64bd58ccb Mon Sep 17 00:00:00 2001 +From: Slark Xiao +Date: Wed, 12 Jul 2023 16:37:41 +0800 +Subject: [PATCH 09/13] bus: mhi: host: pci_generic: Add support for Dell + DW5932e + +The DW5932e has 2 variants: eSIM(DW5932e-eSIM) and non-eSIM(DW5932e). +Both of them are designed based on Qualcomm SDX62 and it will +align with the Foxconn sdx65 settings. + +Signed-off-by: Slark Xiao +Reviewed-by: Loic Poulain +Reviewed-by: Manivannan Sadhasivam +Link: https://lore.kernel.org/r/20230712083741.7615-1-slark_xiao@163.com +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -638,6 +638,12 @@ static const struct pci_device_id mhi_pc + /* T99W510 (sdx24), variant 3 */ + { PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0f2), + .driver_data = (kernel_ulong_t) &mhi_foxconn_sdx24_info }, ++ /* DW5932e-eSIM (sdx62), With eSIM */ ++ { PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0f5), ++ .driver_data = (kernel_ulong_t) &mhi_foxconn_sdx65_info }, ++ /* DW5932e (sdx62), Non-eSIM */ ++ { PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0f9), ++ .driver_data = (kernel_ulong_t) &mhi_foxconn_sdx65_info }, + /* MV31-W (Cinterion) */ + { PCI_DEVICE(PCI_VENDOR_ID_THALES, 0x00b3), + .driver_data = (kernel_ulong_t) &mhi_mv31_info }, diff --git a/target/linux/generic/backport-6.1/859-v6.6-bus-mhi-host-pci_generic-Add-support-for-Quectel-RM5.patch b/target/linux/generic/backport-6.1/859-v6.6-bus-mhi-host-pci_generic-Add-support-for-Quectel-RM5.patch new file mode 100644 index 00000000000000..c0dfe01e327d38 --- /dev/null +++ b/target/linux/generic/backport-6.1/859-v6.6-bus-mhi-host-pci_generic-Add-support-for-Quectel-RM5.patch @@ -0,0 +1,36 @@ +From 8be9e92a2c8f26fd7482acc2323c6dc2a4ad43aa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Duke=20Xin=20=28=E8=BE=9B=E5=AE=89=E6=96=87=29?= + +Date: Sun, 6 Aug 2023 20:04:54 -0700 +Subject: [PATCH 10/13] bus: mhi: host: pci_generic: Add support for Quectel + RM520N-GL Lenovo variant +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Quectel's RM520N-GL Lenovo variant is same as that of the existing +RM520N-GL modem and uses the same config. But this one is designed for +Lenovo laptop usecase, hence Quectel got a new PID. + +Signed-off-by: Duke Xin(辛安文) +Reviewed-by: Manivannan Sadhasivam +Reviewed-by: Loic Poulain +Link: https://lore.kernel.org/r/20230807030454.37255-1-duke_xinanwen@163.com +[mani: tweaked subject and commit message a bit] +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -604,6 +604,9 @@ static const struct pci_device_id mhi_pc + /* RM520N-GL (sdx6x), eSIM */ + { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1004), + .driver_data = (kernel_ulong_t) &mhi_quectel_rm5xx_info }, ++ /* RM520N-GL (sdx6x), Lenovo variant */ ++ { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1007), ++ .driver_data = (kernel_ulong_t) &mhi_quectel_rm5xx_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x100d), /* EM160R-GL (sdx24) */ + .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x2001), /* EM120R-GL for FCCL (sdx24) */ diff --git a/target/linux/generic/backport-6.1/860-v6.6-bus-mhi-host-pci_generic-add-support-for-Telit-FE990.patch b/target/linux/generic/backport-6.1/860-v6.6-bus-mhi-host-pci_generic-add-support-for-Telit-FE990.patch new file mode 100644 index 00000000000000..40fdfc613b1944 --- /dev/null +++ b/target/linux/generic/backport-6.1/860-v6.6-bus-mhi-host-pci_generic-add-support-for-Telit-FE990.patch @@ -0,0 +1,33 @@ +From 30001cf3a19a2f676a0e23c2c3a511c4a8903284 Mon Sep 17 00:00:00 2001 +From: Daniele Palmas +Date: Fri, 4 Aug 2023 11:40:39 +0200 +Subject: [PATCH 11/13] bus: mhi: host: pci_generic: add support for Telit + FE990 modem + +Add support for Telit FE990 that has the same configuration as FN990: + +$ lspci -vv +04:00.0 Unassigned class [ff00]: Qualcomm Device 0308 + Subsystem: Device 1c5d:2015 + +Signed-off-by: Daniele Palmas +Reviewed-by: Manivannan Sadhasivam +Link: https://lore.kernel.org/r/20230804094039.365102-1-dnlplm@gmail.com +[mani: minor update to commit subject and adjusted comment] +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -595,6 +595,9 @@ static const struct pci_device_id mhi_pc + /* Telit FN990 */ + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, 0x1c5d, 0x2010), + .driver_data = (kernel_ulong_t) &mhi_telit_fn990_info }, ++ /* Telit FE990 */ ++ { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, 0x1c5d, 0x2015), ++ .driver_data = (kernel_ulong_t) &mhi_telit_fn990_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308), + .driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1001), /* EM120R-GL (sdx24) */ diff --git a/target/linux/generic/backport-6.1/861-v6.8-bus-mhi-host-Add-a-separate-timeout-parameter-for-wa.patch b/target/linux/generic/backport-6.1/861-v6.8-bus-mhi-host-Add-a-separate-timeout-parameter-for-wa.patch new file mode 100644 index 00000000000000..2b83d0396a2ff9 --- /dev/null +++ b/target/linux/generic/backport-6.1/861-v6.8-bus-mhi-host-Add-a-separate-timeout-parameter-for-wa.patch @@ -0,0 +1,175 @@ +From 6ab3d50b106c9aea123a80551a6c9deace83b914 Mon Sep 17 00:00:00 2001 +From: Qiang Yu +Date: Tue, 7 Nov 2023 16:14:49 +0800 +Subject: [PATCH] bus: mhi: host: Add a separate timeout parameter for waiting + ready + +Some devices(eg. SDX75) take longer than expected (default, 8 seconds) to +set ready after reboot. Hence add optional ready timeout parameter and pass +the appropriate timeout value to mhi_poll_reg_field() to wait enough for +device ready as part of power up sequence. + +Signed-off-by: Qiang Yu +Reviewed-by: Manivannan Sadhasivam +Link: https://lore.kernel.org/r/1699344890-87076-2-git-send-email-quic_qianyu@quicinc.com +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/init.c | 1 + + drivers/bus/mhi/host/internal.h | 2 +- + drivers/bus/mhi/host/main.c | 5 +++-- + drivers/bus/mhi/host/pm.c | 24 +++++++++++++++++------- + include/linux/mhi.h | 4 ++++ + 5 files changed, 26 insertions(+), 10 deletions(-) + +--- a/drivers/bus/mhi/host/init.c ++++ b/drivers/bus/mhi/host/init.c +@@ -881,6 +881,7 @@ static int parse_config(struct mhi_contr + if (!mhi_cntrl->timeout_ms) + mhi_cntrl->timeout_ms = MHI_TIMEOUT_MS; + ++ mhi_cntrl->ready_timeout_ms = config->ready_timeout_ms; + mhi_cntrl->bounce_buf = config->use_bounce_buf; + mhi_cntrl->buffer_len = config->buf_len; + if (!mhi_cntrl->buffer_len) +--- a/drivers/bus/mhi/host/internal.h ++++ b/drivers/bus/mhi/host/internal.h +@@ -321,7 +321,7 @@ int __must_check mhi_read_reg_field(stru + u32 *out); + int __must_check mhi_poll_reg_field(struct mhi_controller *mhi_cntrl, + void __iomem *base, u32 offset, u32 mask, +- u32 val, u32 delayus); ++ u32 val, u32 delayus, u32 timeout_ms); + void mhi_write_reg(struct mhi_controller *mhi_cntrl, void __iomem *base, + u32 offset, u32 val); + int __must_check mhi_write_reg_field(struct mhi_controller *mhi_cntrl, +--- a/drivers/bus/mhi/host/main.c ++++ b/drivers/bus/mhi/host/main.c +@@ -40,10 +40,11 @@ int __must_check mhi_read_reg_field(stru + + int __must_check mhi_poll_reg_field(struct mhi_controller *mhi_cntrl, + void __iomem *base, u32 offset, +- u32 mask, u32 val, u32 delayus) ++ u32 mask, u32 val, u32 delayus, ++ u32 timeout_ms) + { + int ret; +- u32 out, retry = (mhi_cntrl->timeout_ms * 1000) / delayus; ++ u32 out, retry = (timeout_ms * 1000) / delayus; + + while (retry--) { + ret = mhi_read_reg_field(mhi_cntrl, base, offset, mask, &out); +--- a/drivers/bus/mhi/host/pm.c ++++ b/drivers/bus/mhi/host/pm.c +@@ -163,6 +163,7 @@ int mhi_ready_state_transition(struct mh + enum mhi_pm_state cur_state; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + u32 interval_us = 25000; /* poll register field every 25 milliseconds */ ++ u32 timeout_ms; + int ret, i; + + /* Check if device entered error state */ +@@ -173,14 +174,18 @@ int mhi_ready_state_transition(struct mh + + /* Wait for RESET to be cleared and READY bit to be set by the device */ + ret = mhi_poll_reg_field(mhi_cntrl, mhi_cntrl->regs, MHICTRL, +- MHICTRL_RESET_MASK, 0, interval_us); ++ MHICTRL_RESET_MASK, 0, interval_us, ++ mhi_cntrl->timeout_ms); + if (ret) { + dev_err(dev, "Device failed to clear MHI Reset\n"); + return ret; + } + ++ timeout_ms = mhi_cntrl->ready_timeout_ms ? ++ mhi_cntrl->ready_timeout_ms : mhi_cntrl->timeout_ms; + ret = mhi_poll_reg_field(mhi_cntrl, mhi_cntrl->regs, MHISTATUS, +- MHISTATUS_READY_MASK, 1, interval_us); ++ MHISTATUS_READY_MASK, 1, interval_us, ++ timeout_ms); + if (ret) { + dev_err(dev, "Device failed to enter MHI Ready\n"); + return ret; +@@ -479,7 +484,7 @@ static void mhi_pm_disable_transition(st + + /* Wait for the reset bit to be cleared by the device */ + ret = mhi_poll_reg_field(mhi_cntrl, mhi_cntrl->regs, MHICTRL, +- MHICTRL_RESET_MASK, 0, 25000); ++ MHICTRL_RESET_MASK, 0, 25000, mhi_cntrl->timeout_ms); + if (ret) + dev_err(dev, "Device failed to clear MHI Reset\n"); + +@@ -492,8 +497,8 @@ static void mhi_pm_disable_transition(st + if (!MHI_IN_PBL(mhi_get_exec_env(mhi_cntrl))) { + /* wait for ready to be set */ + ret = mhi_poll_reg_field(mhi_cntrl, mhi_cntrl->regs, +- MHISTATUS, +- MHISTATUS_READY_MASK, 1, 25000); ++ MHISTATUS, MHISTATUS_READY_MASK, ++ 1, 25000, mhi_cntrl->timeout_ms); + if (ret) + dev_err(dev, "Device failed to enter READY state\n"); + } +@@ -1111,7 +1116,8 @@ int mhi_async_power_up(struct mhi_contro + if (state == MHI_STATE_SYS_ERR) { + mhi_set_mhi_state(mhi_cntrl, MHI_STATE_RESET); + ret = mhi_poll_reg_field(mhi_cntrl, mhi_cntrl->regs, MHICTRL, +- MHICTRL_RESET_MASK, 0, interval_us); ++ MHICTRL_RESET_MASK, 0, interval_us, ++ mhi_cntrl->timeout_ms); + if (ret) { + dev_info(dev, "Failed to reset MHI due to syserr state\n"); + goto error_exit; +@@ -1202,14 +1208,18 @@ EXPORT_SYMBOL_GPL(mhi_power_down); + int mhi_sync_power_up(struct mhi_controller *mhi_cntrl) + { + int ret = mhi_async_power_up(mhi_cntrl); ++ u32 timeout_ms; + + if (ret) + return ret; + ++ /* Some devices need more time to set ready during power up */ ++ timeout_ms = mhi_cntrl->ready_timeout_ms ? ++ mhi_cntrl->ready_timeout_ms : mhi_cntrl->timeout_ms; + wait_event_timeout(mhi_cntrl->state_event, + MHI_IN_MISSION_MODE(mhi_cntrl->ee) || + MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state), +- msecs_to_jiffies(mhi_cntrl->timeout_ms)); ++ msecs_to_jiffies(timeout_ms)); + + ret = (MHI_IN_MISSION_MODE(mhi_cntrl->ee)) ? 0 : -ETIMEDOUT; + if (ret) +--- a/include/linux/mhi.h ++++ b/include/linux/mhi.h +@@ -266,6 +266,7 @@ struct mhi_event_config { + * struct mhi_controller_config - Root MHI controller configuration + * @max_channels: Maximum number of channels supported + * @timeout_ms: Timeout value for operations. 0 means use default ++ * @ready_timeout_ms: Timeout value for waiting device to be ready (optional) + * @buf_len: Size of automatically allocated buffers. 0 means use default + * @num_channels: Number of channels defined in @ch_cfg + * @ch_cfg: Array of defined channels +@@ -277,6 +278,7 @@ struct mhi_event_config { + struct mhi_controller_config { + u32 max_channels; + u32 timeout_ms; ++ u32 ready_timeout_ms; + u32 buf_len; + u32 num_channels; + const struct mhi_channel_config *ch_cfg; +@@ -326,6 +328,7 @@ struct mhi_controller_config { + * @pm_mutex: Mutex for suspend/resume operation + * @pm_lock: Lock for protecting MHI power management state + * @timeout_ms: Timeout in ms for state transitions ++ * @ready_timeout_ms: Timeout in ms for waiting device to be ready (optional) + * @pm_state: MHI power management state + * @db_access: DB access states + * @ee: MHI device execution environment +@@ -413,6 +416,7 @@ struct mhi_controller { + struct mutex pm_mutex; + rwlock_t pm_lock; + u32 timeout_ms; ++ u32 ready_timeout_ms; + u32 pm_state; + u32 db_access; + enum mhi_ee_type ee; diff --git a/target/linux/generic/backport-6.1/862-v6.8-bus-mhi-host-pci_generic-Add-SDX75-based-modem-suppo.patch b/target/linux/generic/backport-6.1/862-v6.8-bus-mhi-host-pci_generic-Add-SDX75-based-modem-suppo.patch new file mode 100644 index 00000000000000..944747ac561641 --- /dev/null +++ b/target/linux/generic/backport-6.1/862-v6.8-bus-mhi-host-pci_generic-Add-SDX75-based-modem-suppo.patch @@ -0,0 +1,62 @@ +From b2f401efbff8878be31b2bce6e8d7bdad23e6f12 Mon Sep 17 00:00:00 2001 +From: Qiang Yu +Date: Tue, 7 Nov 2023 16:14:50 +0800 +Subject: [PATCH 12/13] bus: mhi: host: pci_generic: Add SDX75 based modem + support + +Add generic info for SDX75 based modems. SDX75 takes longer to set ready +during power up. Hence use separate configuration. + +Signed-off-by: Qiang Yu +Reviewed-by: Manivannan Sadhasivam +Link: https://lore.kernel.org/r/1699344890-87076-3-git-send-email-quic_qianyu@quicinc.com +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -269,6 +269,16 @@ static struct mhi_event_config modem_qco + MHI_EVENT_CONFIG_HW_DATA(5, 2048, 101) + }; + ++static const struct mhi_controller_config modem_qcom_v2_mhiv_config = { ++ .max_channels = 128, ++ .timeout_ms = 8000, ++ .ready_timeout_ms = 50000, ++ .num_channels = ARRAY_SIZE(modem_qcom_v1_mhi_channels), ++ .ch_cfg = modem_qcom_v1_mhi_channels, ++ .num_events = ARRAY_SIZE(modem_qcom_v1_mhi_events), ++ .event_cfg = modem_qcom_v1_mhi_events, ++}; ++ + static const struct mhi_controller_config modem_qcom_v1_mhiv_config = { + .max_channels = 128, + .timeout_ms = 8000, +@@ -278,6 +288,16 @@ static const struct mhi_controller_confi + .event_cfg = modem_qcom_v1_mhi_events, + }; + ++static const struct mhi_pci_dev_info mhi_qcom_sdx75_info = { ++ .name = "qcom-sdx75m", ++ .fw = "qcom/sdx75m/xbl.elf", ++ .edl = "qcom/sdx75m/edl.mbn", ++ .config = &modem_qcom_v2_mhiv_config, ++ .bar_num = MHI_PCI_DEFAULT_BAR_NUM, ++ .dma_data_width = 32, ++ .sideband_wake = false, ++}; ++ + static const struct mhi_pci_dev_info mhi_qcom_sdx65_info = { + .name = "qcom-sdx65m", + .fw = "qcom/sdx65m/xbl.elf", +@@ -600,6 +620,8 @@ static const struct pci_device_id mhi_pc + .driver_data = (kernel_ulong_t) &mhi_telit_fn990_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308), + .driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info }, ++ { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0309), ++ .driver_data = (kernel_ulong_t) &mhi_qcom_sdx75_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1001), /* EM120R-GL (sdx24) */ + .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info }, + { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1002), /* EM160R-GL (sdx24) */ diff --git a/target/linux/generic/backport-6.1/863-stable-bus-mhi-host-pci_generic-constify-modem_telit_fn980_.patch b/target/linux/generic/backport-6.1/863-stable-bus-mhi-host-pci_generic-constify-modem_telit_fn980_.patch new file mode 100644 index 00000000000000..085e8862ae6a22 --- /dev/null +++ b/target/linux/generic/backport-6.1/863-stable-bus-mhi-host-pci_generic-constify-modem_telit_fn980_.patch @@ -0,0 +1,28 @@ +From 5f157aa89b876e82d6aafb2d009979118d0bdd2b Mon Sep 17 00:00:00 2001 +From: Jeff Johnson +Date: Thu, 22 Feb 2024 18:00:23 -0800 +Subject: [PATCH 13/13] bus: mhi: host: pci_generic: constify + modem_telit_fn980_hw_v1_config + +MHI expects the controller configs to be const, and all of the other ones +in this file already are, so constify modem_telit_fn980_hw_v1_config. + +Signed-off-by: Jeff Johnson +Reviewed-by: Manivannan Sadhasivam +Link: https://lore.kernel.org/r/20240222-mhi-const-bus-mhi-host-pci_generic-v1-1-d4c9b0b0a7a5@quicinc.com +Signed-off-by: Manivannan Sadhasivam +--- + drivers/bus/mhi/host/pci_generic.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/bus/mhi/host/pci_generic.c ++++ b/drivers/bus/mhi/host/pci_generic.c +@@ -538,7 +538,7 @@ static struct mhi_event_config mhi_telit + MHI_EVENT_CONFIG_HW_DATA(2, 2048, 101) + }; + +-static struct mhi_controller_config modem_telit_fn980_hw_v1_config = { ++static const struct mhi_controller_config modem_telit_fn980_hw_v1_config = { + .max_channels = 128, + .timeout_ms = 20000, + .num_channels = ARRAY_SIZE(mhi_telit_fn980_hw_v1_channels), diff --git a/target/linux/generic/backport-6.1/880-v6.3-mfd-axp20x-Fix-order-of-pek-rise-and-fall-events.patch b/target/linux/generic/backport-6.1/880-v6.3-mfd-axp20x-Fix-order-of-pek-rise-and-fall-events.patch new file mode 100644 index 00000000000000..23681ba93747f8 --- /dev/null +++ b/target/linux/generic/backport-6.1/880-v6.3-mfd-axp20x-Fix-order-of-pek-rise-and-fall-events.patch @@ -0,0 +1,80 @@ +From 8781ba7f45695af3ab8e8d1b55a31f527c9201a3 Mon Sep 17 00:00:00 2001 +From: Aren Moynihan +Date: Thu, 8 Dec 2022 17:02:26 -0500 +Subject: [PATCH] mfd: axp20x: Fix order of pek rise and fall events + +The power button can get "stuck" if the rising edge and falling edge irq +are read in the same pass. This can often be triggered when resuming +from suspend if the power button is released before the kernel handles +the interrupt. + +Swapping the order of the rise and fall events makes sure that the press +event is handled first, which prevents this situation. + +Signed-off-by: Aren Moynihan +Reviewed-by: Samuel Holland +Tested-by: Samuel Holland +Acked-by: Chen-Yu Tsai +Signed-off-by: Lee Jones +Link: https://lore.kernel.org/r/20221208220225.635414-1-aren@peacevolution.org +--- + include/linux/mfd/axp20x.h | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +--- a/include/linux/mfd/axp20x.h ++++ b/include/linux/mfd/axp20x.h +@@ -432,8 +432,9 @@ enum { + AXP152_IRQ_PEK_SHORT, + AXP152_IRQ_PEK_LONG, + AXP152_IRQ_TIMER, +- AXP152_IRQ_PEK_RIS_EDGE, ++ /* out of bit order to make sure the press event is handled first */ + AXP152_IRQ_PEK_FAL_EDGE, ++ AXP152_IRQ_PEK_RIS_EDGE, + AXP152_IRQ_GPIO3_INPUT, + AXP152_IRQ_GPIO2_INPUT, + AXP152_IRQ_GPIO1_INPUT, +@@ -472,8 +473,9 @@ enum { + AXP20X_IRQ_LOW_PWR_LVL1, + AXP20X_IRQ_LOW_PWR_LVL2, + AXP20X_IRQ_TIMER, +- AXP20X_IRQ_PEK_RIS_EDGE, ++ /* out of bit order to make sure the press event is handled first */ + AXP20X_IRQ_PEK_FAL_EDGE, ++ AXP20X_IRQ_PEK_RIS_EDGE, + AXP20X_IRQ_GPIO3_INPUT, + AXP20X_IRQ_GPIO2_INPUT, + AXP20X_IRQ_GPIO1_INPUT, +@@ -502,8 +504,9 @@ enum axp22x_irqs { + AXP22X_IRQ_LOW_PWR_LVL1, + AXP22X_IRQ_LOW_PWR_LVL2, + AXP22X_IRQ_TIMER, +- AXP22X_IRQ_PEK_RIS_EDGE, ++ /* out of bit order to make sure the press event is handled first */ + AXP22X_IRQ_PEK_FAL_EDGE, ++ AXP22X_IRQ_PEK_RIS_EDGE, + AXP22X_IRQ_GPIO1_INPUT, + AXP22X_IRQ_GPIO0_INPUT, + }; +@@ -571,8 +574,9 @@ enum axp803_irqs { + AXP803_IRQ_LOW_PWR_LVL1, + AXP803_IRQ_LOW_PWR_LVL2, + AXP803_IRQ_TIMER, +- AXP803_IRQ_PEK_RIS_EDGE, ++ /* out of bit order to make sure the press event is handled first */ + AXP803_IRQ_PEK_FAL_EDGE, ++ AXP803_IRQ_PEK_RIS_EDGE, + AXP803_IRQ_PEK_SHORT, + AXP803_IRQ_PEK_LONG, + AXP803_IRQ_PEK_OVER_OFF, +@@ -623,8 +627,9 @@ enum axp809_irqs { + AXP809_IRQ_LOW_PWR_LVL1, + AXP809_IRQ_LOW_PWR_LVL2, + AXP809_IRQ_TIMER, +- AXP809_IRQ_PEK_RIS_EDGE, ++ /* out of bit order to make sure the press event is handled first */ + AXP809_IRQ_PEK_FAL_EDGE, ++ AXP809_IRQ_PEK_RIS_EDGE, + AXP809_IRQ_PEK_SHORT, + AXP809_IRQ_PEK_LONG, + AXP809_IRQ_PEK_OVER_OFF, diff --git a/target/linux/generic/backport-6.1/881-v6.3-mfd-axp20x-Switch-to-the-sys-off-handler-API.patch b/target/linux/generic/backport-6.1/881-v6.3-mfd-axp20x-Switch-to-the-sys-off-handler-API.patch new file mode 100644 index 00000000000000..b742276c8ad434 --- /dev/null +++ b/target/linux/generic/backport-6.1/881-v6.3-mfd-axp20x-Switch-to-the-sys-off-handler-API.patch @@ -0,0 +1,82 @@ +From 1b1305e95e85624f538ec56db9acf88e2d3d7397 Mon Sep 17 00:00:00 2001 +From: Samuel Holland +Date: Wed, 28 Dec 2022 10:27:52 -0600 +Subject: [PATCH] mfd: axp20x: Switch to the sys-off handler API + +This removes a layer of indirection through pm_power_off() and allows +the PMIC handler to be used as a fallback when firmware power off fails. +This happens on boards like the Clockwork DevTerm R-01 where OpenSBI +does not know how to use the PMIC to power off the board. + +Move the check for AXP288 to avoid registering a dummy handler. + +Signed-off-by: Samuel Holland +[Lee: Removed superfluous new line] +Signed-off-by: Lee Jones +Link: https://lore.kernel.org/r/20221228162752.14204-1-samuel@sholland.org +--- + drivers/mfd/axp20x.c | 27 +++++++++++---------------- + 1 file changed, 11 insertions(+), 16 deletions(-) + +--- a/drivers/mfd/axp20x.c ++++ b/drivers/mfd/axp20x.c +@@ -23,7 +23,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + +@@ -832,17 +832,16 @@ static const struct mfd_cell axp813_cell + }, + }; + +-static struct axp20x_dev *axp20x_pm_power_off; +-static void axp20x_power_off(void) ++static int axp20x_power_off(struct sys_off_data *data) + { +- if (axp20x_pm_power_off->variant == AXP288_ID) +- return; ++ struct axp20x_dev *axp20x = data->cb_data; + +- regmap_write(axp20x_pm_power_off->regmap, AXP20X_OFF_CTRL, +- AXP20X_OFF); ++ regmap_write(axp20x->regmap, AXP20X_OFF_CTRL, AXP20X_OFF); + + /* Give capacitors etc. time to drain to avoid kernel panic msg. */ + mdelay(500); ++ ++ return NOTIFY_DONE; + } + + int axp20x_match_device(struct axp20x_dev *axp20x) +@@ -1009,10 +1008,11 @@ int axp20x_device_probe(struct axp20x_de + return ret; + } + +- if (!pm_power_off) { +- axp20x_pm_power_off = axp20x; +- pm_power_off = axp20x_power_off; +- } ++ if (axp20x->variant != AXP288_ID) ++ devm_register_sys_off_handler(axp20x->dev, ++ SYS_OFF_MODE_POWER_OFF, ++ SYS_OFF_PRIO_DEFAULT, ++ axp20x_power_off, axp20x); + + dev_info(axp20x->dev, "AXP20X driver loaded\n"); + +@@ -1022,11 +1022,6 @@ EXPORT_SYMBOL(axp20x_device_probe); + + void axp20x_device_remove(struct axp20x_dev *axp20x) + { +- if (axp20x == axp20x_pm_power_off) { +- axp20x_pm_power_off = NULL; +- pm_power_off = NULL; +- } +- + mfd_remove_devices(axp20x->dev); + regmap_del_irq_chip(axp20x->irq, axp20x->regmap_irqc); + } diff --git a/target/linux/generic/backport-6.1/882-v6.3-mfd-axp20x-Fix-axp288-writable-ranges.patch b/target/linux/generic/backport-6.1/882-v6.3-mfd-axp20x-Fix-axp288-writable-ranges.patch new file mode 100644 index 00000000000000..b84815e1a854cc --- /dev/null +++ b/target/linux/generic/backport-6.1/882-v6.3-mfd-axp20x-Fix-axp288-writable-ranges.patch @@ -0,0 +1,28 @@ +From 2405fbfb384ef39e9560d76d3f6e4c90519f90aa Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 29 Mar 2023 22:55:44 +0200 +Subject: [PATCH] mfd: axp20x: Fix axp288 writable-ranges + +Register AXP288_POWER_REASON is writable and needs to be written +to reset the reset- / power-on-reason bits. + +Add it to the axp288 writable-ranges so that the extcon-axp288 +driver can properly clear the reset- / power-on-reason bits. + +Signed-off-by: Hans de Goede +Signed-off-by: Lee Jones +Link: https://lore.kernel.org/r/20230329205544.1051393-1-hdegoede@redhat.com +--- + drivers/mfd/axp20x.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/mfd/axp20x.c ++++ b/drivers/mfd/axp20x.c +@@ -119,6 +119,7 @@ static const struct regmap_access_table + + /* AXP288 ranges are shared with the AXP803, as they cover the same range */ + static const struct regmap_range axp288_writeable_ranges[] = { ++ regmap_reg_range(AXP288_POWER_REASON, AXP288_POWER_REASON), + regmap_reg_range(AXP20X_DATACACHE(0), AXP20X_IRQ6_STATE), + regmap_reg_range(AXP20X_DCDC_MODE, AXP288_FG_TUNE5), + }; diff --git a/target/linux/generic/backport-6.1/883-v6.4-mfd-axp20x-Add-support-for-AXP15060-PMIC.patch b/target/linux/generic/backport-6.1/883-v6.4-mfd-axp20x-Add-support-for-AXP15060-PMIC.patch new file mode 100644 index 00000000000000..83ef60aecd7c46 --- /dev/null +++ b/target/linux/generic/backport-6.1/883-v6.4-mfd-axp20x-Add-support-for-AXP15060-PMIC.patch @@ -0,0 +1,343 @@ +From e0f8ad2a705367518b5c56bf9d6da89681467c02 Mon Sep 17 00:00:00 2001 +From: Shengyu Qu +Date: Fri, 21 Apr 2023 23:08:15 +0800 +Subject: [PATCH] mfd: axp20x: Add support for AXP15060 PMIC + +The AXP15060 is a PMIC chip produced by X-Powers, and could be connected +via an I2C bus. + +Describe the regmap and the MFD bits, along with the registers exposed +via I2C. Eventually advertise the device using a new compatible string +and add support for power off the system. + +The driver would disable PEK function if IRQ is not configured in device +tree, since some boards (For example, Starfive Visionfive 2) didn't +connect IRQ line of PMIC to SOC. + +GPIO function isn't enabled in this commit, since its configuration +operation is different from any existing AXP PMICs and needs +logic modification on existing driver. GPIO support might come in later +patches. + +Signed-off-by: Shengyu Qu +Reviewed-by: Krzysztof Kozlowski +Signed-off-by: Lee Jones +Link: https://lore.kernel.org/r/TY3P286MB261162D57695AC8164ED50E298609@TY3P286MB2611.JPNP286.PROD.OUTLOOK.COM +--- + drivers/mfd/axp20x-i2c.c | 2 + + drivers/mfd/axp20x.c | 107 +++++++++++++++++++++++++++++++++++++ + include/linux/mfd/axp20x.h | 85 +++++++++++++++++++++++++++++ + 3 files changed, 194 insertions(+) + +--- a/drivers/mfd/axp20x-i2c.c ++++ b/drivers/mfd/axp20x-i2c.c +@@ -66,6 +66,7 @@ static const struct of_device_id axp20x_ + { .compatible = "x-powers,axp223", .data = (void *)AXP223_ID }, + { .compatible = "x-powers,axp803", .data = (void *)AXP803_ID }, + { .compatible = "x-powers,axp806", .data = (void *)AXP806_ID }, ++ { .compatible = "x-powers,axp15060", .data = (void *)AXP15060_ID }, + { }, + }; + MODULE_DEVICE_TABLE(of, axp20x_i2c_of_match); +@@ -79,6 +80,7 @@ static const struct i2c_device_id axp20x + { "axp223", 0 }, + { "axp803", 0 }, + { "axp806", 0 }, ++ { "axp15060", 0 }, + { }, + }; + MODULE_DEVICE_TABLE(i2c, axp20x_i2c_id); +--- a/drivers/mfd/axp20x.c ++++ b/drivers/mfd/axp20x.c +@@ -43,6 +43,7 @@ static const char * const axp20x_model_n + "AXP806", + "AXP809", + "AXP813", ++ "AXP15060", + }; + + static const struct regmap_range axp152_writeable_ranges[] = { +@@ -169,6 +170,31 @@ static const struct regmap_access_table + .n_yes_ranges = ARRAY_SIZE(axp806_volatile_ranges), + }; + ++static const struct regmap_range axp15060_writeable_ranges[] = { ++ regmap_reg_range(AXP15060_PWR_OUT_CTRL1, AXP15060_DCDC_MODE_CTRL2), ++ regmap_reg_range(AXP15060_OUTPUT_MONITOR_DISCHARGE, AXP15060_CPUSLDO_V_CTRL), ++ regmap_reg_range(AXP15060_PWR_WAKEUP_CTRL, AXP15060_PWR_DISABLE_DOWN_SEQ), ++ regmap_reg_range(AXP15060_PEK_KEY, AXP15060_PEK_KEY), ++ regmap_reg_range(AXP15060_IRQ1_EN, AXP15060_IRQ2_EN), ++ regmap_reg_range(AXP15060_IRQ1_STATE, AXP15060_IRQ2_STATE), ++}; ++ ++static const struct regmap_range axp15060_volatile_ranges[] = { ++ regmap_reg_range(AXP15060_STARTUP_SRC, AXP15060_STARTUP_SRC), ++ regmap_reg_range(AXP15060_PWR_WAKEUP_CTRL, AXP15060_PWR_DISABLE_DOWN_SEQ), ++ regmap_reg_range(AXP15060_IRQ1_STATE, AXP15060_IRQ2_STATE), ++}; ++ ++static const struct regmap_access_table axp15060_writeable_table = { ++ .yes_ranges = axp15060_writeable_ranges, ++ .n_yes_ranges = ARRAY_SIZE(axp15060_writeable_ranges), ++}; ++ ++static const struct regmap_access_table axp15060_volatile_table = { ++ .yes_ranges = axp15060_volatile_ranges, ++ .n_yes_ranges = ARRAY_SIZE(axp15060_volatile_ranges), ++}; ++ + static const struct resource axp152_pek_resources[] = { + DEFINE_RES_IRQ_NAMED(AXP152_IRQ_PEK_RIS_EDGE, "PEK_DBR"), + DEFINE_RES_IRQ_NAMED(AXP152_IRQ_PEK_FAL_EDGE, "PEK_DBF"), +@@ -237,6 +263,11 @@ static const struct resource axp809_pek_ + DEFINE_RES_IRQ_NAMED(AXP809_IRQ_PEK_FAL_EDGE, "PEK_DBF"), + }; + ++static const struct resource axp15060_pek_resources[] = { ++ DEFINE_RES_IRQ_NAMED(AXP15060_IRQ_PEK_RIS_EDGE, "PEK_DBR"), ++ DEFINE_RES_IRQ_NAMED(AXP15060_IRQ_PEK_FAL_EDGE, "PEK_DBF"), ++}; ++ + static const struct regmap_config axp152_regmap_config = { + .reg_bits = 8, + .val_bits = 8, +@@ -282,6 +313,15 @@ static const struct regmap_config axp806 + .cache_type = REGCACHE_RBTREE, + }; + ++static const struct regmap_config axp15060_regmap_config = { ++ .reg_bits = 8, ++ .val_bits = 8, ++ .wr_table = &axp15060_writeable_table, ++ .volatile_table = &axp15060_volatile_table, ++ .max_register = AXP15060_IRQ2_STATE, ++ .cache_type = REGCACHE_RBTREE, ++}; ++ + #define INIT_REGMAP_IRQ(_variant, _irq, _off, _mask) \ + [_variant##_IRQ_##_irq] = { .reg_offset = (_off), .mask = BIT(_mask) } + +@@ -503,6 +543,23 @@ static const struct regmap_irq axp809_re + INIT_REGMAP_IRQ(AXP809, GPIO0_INPUT, 4, 0), + }; + ++static const struct regmap_irq axp15060_regmap_irqs[] = { ++ INIT_REGMAP_IRQ(AXP15060, DIE_TEMP_HIGH_LV1, 0, 0), ++ INIT_REGMAP_IRQ(AXP15060, DIE_TEMP_HIGH_LV2, 0, 1), ++ INIT_REGMAP_IRQ(AXP15060, DCDC1_V_LOW, 0, 2), ++ INIT_REGMAP_IRQ(AXP15060, DCDC2_V_LOW, 0, 3), ++ INIT_REGMAP_IRQ(AXP15060, DCDC3_V_LOW, 0, 4), ++ INIT_REGMAP_IRQ(AXP15060, DCDC4_V_LOW, 0, 5), ++ INIT_REGMAP_IRQ(AXP15060, DCDC5_V_LOW, 0, 6), ++ INIT_REGMAP_IRQ(AXP15060, DCDC6_V_LOW, 0, 7), ++ INIT_REGMAP_IRQ(AXP15060, PEK_LONG, 1, 0), ++ INIT_REGMAP_IRQ(AXP15060, PEK_SHORT, 1, 1), ++ INIT_REGMAP_IRQ(AXP15060, GPIO1_INPUT, 1, 2), ++ INIT_REGMAP_IRQ(AXP15060, PEK_FAL_EDGE, 1, 3), ++ INIT_REGMAP_IRQ(AXP15060, PEK_RIS_EDGE, 1, 4), ++ INIT_REGMAP_IRQ(AXP15060, GPIO2_INPUT, 1, 5), ++}; ++ + static const struct regmap_irq_chip axp152_regmap_irq_chip = { + .name = "axp152_irq_chip", + .status_base = AXP152_IRQ1_STATE, +@@ -589,6 +646,17 @@ static const struct regmap_irq_chip axp8 + .num_regs = 5, + }; + ++static const struct regmap_irq_chip axp15060_regmap_irq_chip = { ++ .name = "axp15060", ++ .status_base = AXP15060_IRQ1_STATE, ++ .ack_base = AXP15060_IRQ1_STATE, ++ .unmask_base = AXP15060_IRQ1_EN, ++ .init_ack_masked = true, ++ .irqs = axp15060_regmap_irqs, ++ .num_irqs = ARRAY_SIZE(axp15060_regmap_irqs), ++ .num_regs = 2, ++}; ++ + static const struct mfd_cell axp20x_cells[] = { + { + .name = "axp20x-gpio", +@@ -833,6 +901,23 @@ static const struct mfd_cell axp813_cell + }, + }; + ++static const struct mfd_cell axp15060_cells[] = { ++ { ++ .name = "axp221-pek", ++ .num_resources = ARRAY_SIZE(axp15060_pek_resources), ++ .resources = axp15060_pek_resources, ++ }, { ++ .name = "axp20x-regulator", ++ }, ++}; ++ ++/* For boards that don't have IRQ line connected to SOC. */ ++static const struct mfd_cell axp_regulator_only_cells[] = { ++ { ++ .name = "axp20x-regulator", ++ }, ++}; ++ + static int axp20x_power_off(struct sys_off_data *data) + { + struct axp20x_dev *axp20x = data->cb_data; +@@ -942,6 +1027,28 @@ int axp20x_match_device(struct axp20x_de + */ + axp20x->regmap_irq_chip = &axp803_regmap_irq_chip; + break; ++ case AXP15060_ID: ++ /* ++ * Don't register the power key part if there is no interrupt ++ * line. ++ * ++ * Since most use cases of AXP PMICs are Allwinner SOCs, board ++ * designers follow Allwinner's reference design and connects ++ * IRQ line to SOC, there's no need for those variants to deal ++ * with cases that IRQ isn't connected. However, AXP15660 is ++ * used by some other vendors' SOCs that didn't connect IRQ ++ * line, we need to deal with this case. ++ */ ++ if (axp20x->irq > 0) { ++ axp20x->nr_cells = ARRAY_SIZE(axp15060_cells); ++ axp20x->cells = axp15060_cells; ++ } else { ++ axp20x->nr_cells = ARRAY_SIZE(axp_regulator_only_cells); ++ axp20x->cells = axp_regulator_only_cells; ++ } ++ axp20x->regmap_cfg = &axp15060_regmap_config; ++ axp20x->regmap_irq_chip = &axp15060_regmap_irq_chip; ++ break; + default: + dev_err(dev, "unsupported AXP20X ID %lu\n", axp20x->variant); + return -EINVAL; +--- a/include/linux/mfd/axp20x.h ++++ b/include/linux/mfd/axp20x.h +@@ -21,6 +21,7 @@ enum axp20x_variants { + AXP806_ID, + AXP809_ID, + AXP813_ID, ++ AXP15060_ID, + NR_AXP20X_VARIANTS, + }; + +@@ -131,6 +132,39 @@ enum axp20x_variants { + /* Other DCDC regulator control registers are the same as AXP803 */ + #define AXP813_DCDC7_V_OUT 0x26 + ++#define AXP15060_STARTUP_SRC 0x00 ++#define AXP15060_PWR_OUT_CTRL1 0x10 ++#define AXP15060_PWR_OUT_CTRL2 0x11 ++#define AXP15060_PWR_OUT_CTRL3 0x12 ++#define AXP15060_DCDC1_V_CTRL 0x13 ++#define AXP15060_DCDC2_V_CTRL 0x14 ++#define AXP15060_DCDC3_V_CTRL 0x15 ++#define AXP15060_DCDC4_V_CTRL 0x16 ++#define AXP15060_DCDC5_V_CTRL 0x17 ++#define AXP15060_DCDC6_V_CTRL 0x18 ++#define AXP15060_ALDO1_V_CTRL 0x19 ++#define AXP15060_DCDC_MODE_CTRL1 0x1a ++#define AXP15060_DCDC_MODE_CTRL2 0x1b ++#define AXP15060_OUTPUT_MONITOR_DISCHARGE 0x1e ++#define AXP15060_IRQ_PWROK_VOFF 0x1f ++#define AXP15060_ALDO2_V_CTRL 0x20 ++#define AXP15060_ALDO3_V_CTRL 0x21 ++#define AXP15060_ALDO4_V_CTRL 0x22 ++#define AXP15060_ALDO5_V_CTRL 0x23 ++#define AXP15060_BLDO1_V_CTRL 0x24 ++#define AXP15060_BLDO2_V_CTRL 0x25 ++#define AXP15060_BLDO3_V_CTRL 0x26 ++#define AXP15060_BLDO4_V_CTRL 0x27 ++#define AXP15060_BLDO5_V_CTRL 0x28 ++#define AXP15060_CLDO1_V_CTRL 0x29 ++#define AXP15060_CLDO2_V_CTRL 0x2a ++#define AXP15060_CLDO3_V_CTRL 0x2b ++#define AXP15060_CLDO4_V_CTRL 0x2d ++#define AXP15060_CPUSLDO_V_CTRL 0x2e ++#define AXP15060_PWR_WAKEUP_CTRL 0x31 ++#define AXP15060_PWR_DISABLE_DOWN_SEQ 0x32 ++#define AXP15060_PEK_KEY 0x36 ++ + /* Interrupt */ + #define AXP152_IRQ1_EN 0x40 + #define AXP152_IRQ2_EN 0x41 +@@ -152,6 +186,11 @@ enum axp20x_variants { + #define AXP20X_IRQ5_STATE 0x4c + #define AXP20X_IRQ6_STATE 0x4d + ++#define AXP15060_IRQ1_EN 0x40 ++#define AXP15060_IRQ2_EN 0x41 ++#define AXP15060_IRQ1_STATE 0x48 ++#define AXP15060_IRQ2_STATE 0x49 ++ + /* ADC */ + #define AXP20X_ACIN_V_ADC_H 0x56 + #define AXP20X_ACIN_V_ADC_L 0x57 +@@ -222,6 +261,8 @@ enum axp20x_variants { + #define AXP22X_GPIO_STATE 0x94 + #define AXP22X_GPIO_PULL_DOWN 0x95 + ++#define AXP15060_CLDO4_GPIO2_MODESET 0x2c ++ + /* Battery */ + #define AXP20X_CHRG_CC_31_24 0xb0 + #define AXP20X_CHRG_CC_23_16 0xb1 +@@ -419,6 +460,33 @@ enum { + AXP813_REG_ID_MAX, + }; + ++enum { ++ AXP15060_DCDC1 = 0, ++ AXP15060_DCDC2, ++ AXP15060_DCDC3, ++ AXP15060_DCDC4, ++ AXP15060_DCDC5, ++ AXP15060_DCDC6, ++ AXP15060_ALDO1, ++ AXP15060_ALDO2, ++ AXP15060_ALDO3, ++ AXP15060_ALDO4, ++ AXP15060_ALDO5, ++ AXP15060_BLDO1, ++ AXP15060_BLDO2, ++ AXP15060_BLDO3, ++ AXP15060_BLDO4, ++ AXP15060_BLDO5, ++ AXP15060_CLDO1, ++ AXP15060_CLDO2, ++ AXP15060_CLDO3, ++ AXP15060_CLDO4, ++ AXP15060_CPUSLDO, ++ AXP15060_SW, ++ AXP15060_RTC_LDO, ++ AXP15060_REG_ID_MAX, ++}; ++ + /* IRQs */ + enum { + AXP152_IRQ_LDO0IN_CONNECT = 1, +@@ -637,6 +705,23 @@ enum axp809_irqs { + AXP809_IRQ_GPIO0_INPUT, + }; + ++enum axp15060_irqs { ++ AXP15060_IRQ_DIE_TEMP_HIGH_LV1 = 1, ++ AXP15060_IRQ_DIE_TEMP_HIGH_LV2, ++ AXP15060_IRQ_DCDC1_V_LOW, ++ AXP15060_IRQ_DCDC2_V_LOW, ++ AXP15060_IRQ_DCDC3_V_LOW, ++ AXP15060_IRQ_DCDC4_V_LOW, ++ AXP15060_IRQ_DCDC5_V_LOW, ++ AXP15060_IRQ_DCDC6_V_LOW, ++ AXP15060_IRQ_PEK_LONG, ++ AXP15060_IRQ_PEK_SHORT, ++ AXP15060_IRQ_GPIO1_INPUT, ++ AXP15060_IRQ_PEK_FAL_EDGE, ++ AXP15060_IRQ_PEK_RIS_EDGE, ++ AXP15060_IRQ_GPIO2_INPUT, ++}; ++ + struct axp20x_dev { + struct device *dev; + int irq; diff --git a/target/linux/generic/backport-6.1/884-v6.5-mfd-axp20x-Add-support-for-AXP313a-PMIC.patch b/target/linux/generic/backport-6.1/884-v6.5-mfd-axp20x-Add-support-for-AXP313a-PMIC.patch new file mode 100644 index 00000000000000..c9470eacec73b9 --- /dev/null +++ b/target/linux/generic/backport-6.1/884-v6.5-mfd-axp20x-Add-support-for-AXP313a-PMIC.patch @@ -0,0 +1,256 @@ +From 75c8cb2f4cb218aaf4ea68cab08d6dbc96eeae15 Mon Sep 17 00:00:00 2001 +From: Martin Botka +Date: Wed, 24 May 2023 01:00:10 +0100 +Subject: [PATCH] mfd: axp20x: Add support for AXP313a PMIC + +The AXP313a is a PMIC chip produced by X-Powers, it can be connected via +an I2C bus. +The name AXP1530 seems to appear as well, and this is what is used in +the BSP driver. From all we know it's the same chip, just a different +name. However we have only seen AXP313a chips in the wild, so go with +this name. + +Compared to the other AXP PMICs it's a rather simple affair: just three +DCDC converters, three LDOs, and no battery charging support. + +Describe the regmap and the MFD bits, along with the registers exposed +via I2C. Aside from the various regulators, also describe the power key +interrupts, and adjust the shutdown handler routine to use a different +register than the other PMICs. +Eventually advertise the device using the new compatible string. + +Signed-off-by: Martin Botka +Signed-off-by: Andre Przywara +Reviewed-by: Chen-Yu Tsai +Link: https://lore.kernel.org/r/20230524000012.15028-2-andre.przywara@arm.com +Signed-off-by: Lee Jones +--- + drivers/mfd/axp20x-i2c.c | 2 + + drivers/mfd/axp20x.c | 78 +++++++++++++++++++++++++++++++++++++- + include/linux/mfd/axp20x.h | 32 ++++++++++++++++ + 3 files changed, 111 insertions(+), 1 deletion(-) + +--- a/drivers/mfd/axp20x-i2c.c ++++ b/drivers/mfd/axp20x-i2c.c +@@ -64,6 +64,7 @@ static const struct of_device_id axp20x_ + { .compatible = "x-powers,axp209", .data = (void *)AXP209_ID }, + { .compatible = "x-powers,axp221", .data = (void *)AXP221_ID }, + { .compatible = "x-powers,axp223", .data = (void *)AXP223_ID }, ++ { .compatible = "x-powers,axp313a", .data = (void *)AXP313A_ID }, + { .compatible = "x-powers,axp803", .data = (void *)AXP803_ID }, + { .compatible = "x-powers,axp806", .data = (void *)AXP806_ID }, + { .compatible = "x-powers,axp15060", .data = (void *)AXP15060_ID }, +@@ -78,6 +79,7 @@ static const struct i2c_device_id axp20x + { "axp209", 0 }, + { "axp221", 0 }, + { "axp223", 0 }, ++ { "axp313a", 0 }, + { "axp803", 0 }, + { "axp806", 0 }, + { "axp15060", 0 }, +--- a/drivers/mfd/axp20x.c ++++ b/drivers/mfd/axp20x.c +@@ -39,6 +39,7 @@ static const char * const axp20x_model_n + "AXP221", + "AXP223", + "AXP288", ++ "AXP313a", + "AXP803", + "AXP806", + "AXP809", +@@ -156,6 +157,25 @@ static const struct regmap_range axp806_ + regmap_reg_range(AXP806_REG_ADDR_EXT, AXP806_REG_ADDR_EXT), + }; + ++static const struct regmap_range axp313a_writeable_ranges[] = { ++ regmap_reg_range(AXP313A_ON_INDICATE, AXP313A_IRQ_STATE), ++}; ++ ++static const struct regmap_range axp313a_volatile_ranges[] = { ++ regmap_reg_range(AXP313A_SHUTDOWN_CTRL, AXP313A_SHUTDOWN_CTRL), ++ regmap_reg_range(AXP313A_IRQ_STATE, AXP313A_IRQ_STATE), ++}; ++ ++static const struct regmap_access_table axp313a_writeable_table = { ++ .yes_ranges = axp313a_writeable_ranges, ++ .n_yes_ranges = ARRAY_SIZE(axp313a_writeable_ranges), ++}; ++ ++static const struct regmap_access_table axp313a_volatile_table = { ++ .yes_ranges = axp313a_volatile_ranges, ++ .n_yes_ranges = ARRAY_SIZE(axp313a_volatile_ranges), ++}; ++ + static const struct regmap_range axp806_volatile_ranges[] = { + regmap_reg_range(AXP20X_IRQ1_STATE, AXP20X_IRQ2_STATE), + }; +@@ -248,6 +268,11 @@ static const struct resource axp288_fuel + DEFINE_RES_IRQ(AXP288_IRQ_WL1), + }; + ++static const struct resource axp313a_pek_resources[] = { ++ DEFINE_RES_IRQ_NAMED(AXP313A_IRQ_PEK_RIS_EDGE, "PEK_DBR"), ++ DEFINE_RES_IRQ_NAMED(AXP313A_IRQ_PEK_FAL_EDGE, "PEK_DBF"), ++}; ++ + static const struct resource axp803_pek_resources[] = { + DEFINE_RES_IRQ_NAMED(AXP803_IRQ_PEK_RIS_EDGE, "PEK_DBR"), + DEFINE_RES_IRQ_NAMED(AXP803_IRQ_PEK_FAL_EDGE, "PEK_DBF"), +@@ -304,6 +329,15 @@ static const struct regmap_config axp288 + .cache_type = REGCACHE_RBTREE, + }; + ++static const struct regmap_config axp313a_regmap_config = { ++ .reg_bits = 8, ++ .val_bits = 8, ++ .wr_table = &axp313a_writeable_table, ++ .volatile_table = &axp313a_volatile_table, ++ .max_register = AXP313A_IRQ_STATE, ++ .cache_type = REGCACHE_RBTREE, ++}; ++ + static const struct regmap_config axp806_regmap_config = { + .reg_bits = 8, + .val_bits = 8, +@@ -456,6 +490,16 @@ static const struct regmap_irq axp288_re + INIT_REGMAP_IRQ(AXP288, BC_USB_CHNG, 5, 1), + }; + ++static const struct regmap_irq axp313a_regmap_irqs[] = { ++ INIT_REGMAP_IRQ(AXP313A, PEK_RIS_EDGE, 0, 7), ++ INIT_REGMAP_IRQ(AXP313A, PEK_FAL_EDGE, 0, 6), ++ INIT_REGMAP_IRQ(AXP313A, PEK_SHORT, 0, 5), ++ INIT_REGMAP_IRQ(AXP313A, PEK_LONG, 0, 4), ++ INIT_REGMAP_IRQ(AXP313A, DCDC3_V_LOW, 0, 3), ++ INIT_REGMAP_IRQ(AXP313A, DCDC2_V_LOW, 0, 2), ++ INIT_REGMAP_IRQ(AXP313A, DIE_TEMP_HIGH, 0, 0), ++}; ++ + static const struct regmap_irq axp803_regmap_irqs[] = { + INIT_REGMAP_IRQ(AXP803, ACIN_OVER_V, 0, 7), + INIT_REGMAP_IRQ(AXP803, ACIN_PLUGIN, 0, 6), +@@ -610,6 +654,17 @@ static const struct regmap_irq_chip axp2 + + }; + ++static const struct regmap_irq_chip axp313a_regmap_irq_chip = { ++ .name = "axp313a_irq_chip", ++ .status_base = AXP313A_IRQ_STATE, ++ .ack_base = AXP313A_IRQ_STATE, ++ .unmask_base = AXP313A_IRQ_EN, ++ .init_ack_masked = true, ++ .irqs = axp313a_regmap_irqs, ++ .num_irqs = ARRAY_SIZE(axp313a_regmap_irqs), ++ .num_regs = 1, ++}; ++ + static const struct regmap_irq_chip axp803_regmap_irq_chip = { + .name = "axp803", + .status_base = AXP20X_IRQ1_STATE, +@@ -752,6 +807,11 @@ static const struct mfd_cell axp152_cell + }, + }; + ++static struct mfd_cell axp313a_cells[] = { ++ MFD_CELL_NAME("axp20x-regulator"), ++ MFD_CELL_RES("axp313a-pek", axp313a_pek_resources), ++}; ++ + static const struct resource axp288_adc_resources[] = { + DEFINE_RES_IRQ_NAMED(AXP288_IRQ_GPADC, "GPADC"), + }; +@@ -921,8 +981,18 @@ static const struct mfd_cell axp_regulat + static int axp20x_power_off(struct sys_off_data *data) + { + struct axp20x_dev *axp20x = data->cb_data; ++ unsigned int shutdown_reg; + +- regmap_write(axp20x->regmap, AXP20X_OFF_CTRL, AXP20X_OFF); ++ switch (axp20x->variant) { ++ case AXP313A_ID: ++ shutdown_reg = AXP313A_SHUTDOWN_CTRL; ++ break; ++ default: ++ shutdown_reg = AXP20X_OFF_CTRL; ++ break; ++ } ++ ++ regmap_write(axp20x->regmap, shutdown_reg, AXP20X_OFF); + + /* Give capacitors etc. time to drain to avoid kernel panic msg. */ + mdelay(500); +@@ -985,6 +1055,12 @@ int axp20x_match_device(struct axp20x_de + axp20x->regmap_irq_chip = &axp288_regmap_irq_chip; + axp20x->irq_flags = IRQF_TRIGGER_LOW; + break; ++ case AXP313A_ID: ++ axp20x->nr_cells = ARRAY_SIZE(axp313a_cells); ++ axp20x->cells = axp313a_cells; ++ axp20x->regmap_cfg = &axp313a_regmap_config; ++ axp20x->regmap_irq_chip = &axp313a_regmap_irq_chip; ++ break; + case AXP803_ID: + axp20x->nr_cells = ARRAY_SIZE(axp803_cells); + axp20x->cells = axp803_cells; +--- a/include/linux/mfd/axp20x.h ++++ b/include/linux/mfd/axp20x.h +@@ -17,6 +17,7 @@ enum axp20x_variants { + AXP221_ID, + AXP223_ID, + AXP288_ID, ++ AXP313A_ID, + AXP803_ID, + AXP806_ID, + AXP809_ID, +@@ -92,6 +93,17 @@ enum axp20x_variants { + #define AXP22X_ALDO3_V_OUT 0x2a + #define AXP22X_CHRG_CTRL3 0x35 + ++#define AXP313A_ON_INDICATE 0x00 ++#define AXP313A_OUTPUT_CONTROL 0x10 ++#define AXP313A_DCDC1_CONRTOL 0x13 ++#define AXP313A_DCDC2_CONRTOL 0x14 ++#define AXP313A_DCDC3_CONRTOL 0x15 ++#define AXP313A_ALDO1_CONRTOL 0x16 ++#define AXP313A_DLDO1_CONRTOL 0x17 ++#define AXP313A_SHUTDOWN_CTRL 0x1a ++#define AXP313A_IRQ_EN 0x20 ++#define AXP313A_IRQ_STATE 0x21 ++ + #define AXP806_STARTUP_SRC 0x00 + #define AXP806_CHIP_ID 0x03 + #define AXP806_PWR_OUT_CTRL1 0x10 +@@ -364,6 +376,16 @@ enum { + }; + + enum { ++ AXP313A_DCDC1 = 0, ++ AXP313A_DCDC2, ++ AXP313A_DCDC3, ++ AXP313A_ALDO1, ++ AXP313A_DLDO1, ++ AXP313A_RTC_LDO, ++ AXP313A_REG_ID_MAX, ++}; ++ ++enum { + AXP806_DCDCA = 0, + AXP806_DCDCB, + AXP806_DCDCC, +@@ -616,6 +638,16 @@ enum axp288_irqs { + AXP288_IRQ_BC_USB_CHNG, + }; + ++enum axp313a_irqs { ++ AXP313A_IRQ_DIE_TEMP_HIGH, ++ AXP313A_IRQ_DCDC2_V_LOW = 2, ++ AXP313A_IRQ_DCDC3_V_LOW, ++ AXP313A_IRQ_PEK_LONG, ++ AXP313A_IRQ_PEK_SHORT, ++ AXP313A_IRQ_PEK_FAL_EDGE, ++ AXP313A_IRQ_PEK_RIS_EDGE, ++}; ++ + enum axp803_irqs { + AXP803_IRQ_ACIN_OVER_V = 1, + AXP803_IRQ_ACIN_PLUGIN, diff --git a/target/linux/generic/backport-6.1/885-v6.5-regulator-axp20x-Add-support-for-AXP313a-variant.patch b/target/linux/generic/backport-6.1/885-v6.5-regulator-axp20x-Add-support-for-AXP313a-variant.patch new file mode 100644 index 00000000000000..91f1b398244a50 --- /dev/null +++ b/target/linux/generic/backport-6.1/885-v6.5-regulator-axp20x-Add-support-for-AXP313a-variant.patch @@ -0,0 +1,129 @@ +From 60fd7eb89670d2636ac3156881acbd103c6eba6a Mon Sep 17 00:00:00 2001 +From: Martin Botka +Date: Wed, 24 May 2023 01:00:11 +0100 +Subject: [PATCH] regulator: axp20x: Add support for AXP313a variant + +The AXP313a is your typical I2C controlled PMIC, although in a lighter +fashion compared to the other X-Powers PMICs: it has only three DCDC +rails, three LDOs, and no battery charging support. + +The AXP313a datasheet does not describe a register to change the DCDC +switching frequency, and talks of it being fixed at 3 MHz. Check that +the property allowing to change that frequency is absent from the DT, +and bail out otherwise. + +The third LDO, RTCLDO, is fixed, and cannot even be turned on or off, +programmatically. On top of that, its voltage is customisable (either +1.8V or 3.3V), which we cannot describe easily using the existing +regulator wrapper functions. This should be fixed properly, using +regulator-{min,max}-microvolt in the DT, but this requires more changes +to the code. As some other PMICs (AXP2xx, AXP803) seem to paper over the +same problem as well, we follow suit here and pretend it's a fixed 1.8V +regulator. A proper fix can follow later. The BSP code seems to ignore +this regulator altogether. + +Describe the AXP313A's voltage settings and switch registers, how the +voltages are encoded, and connect this to the MFD device via its +regulator ID. + +Signed-off-by: Martin Botka +Signed-off-by: Andre Przywara +Reviewed-by: Chen-Yu Tsai +Reviewed-by: Mark Brown +Tested-by: Shengyu Qu +Link: https://lore.kernel.org/r/20230524000012.15028-3-andre.przywara@arm.com +Signed-off-by: Mark Brown +--- + drivers/regulator/axp20x-regulator.c | 60 ++++++++++++++++++++++++++++ + 1 file changed, 60 insertions(+) + +--- a/drivers/regulator/axp20x-regulator.c ++++ b/drivers/regulator/axp20x-regulator.c +@@ -134,6 +134,11 @@ + #define AXP22X_PWR_OUT_DLDO4_MASK BIT_MASK(6) + #define AXP22X_PWR_OUT_ALDO3_MASK BIT_MASK(7) + ++#define AXP313A_DCDC1_NUM_VOLTAGES 107 ++#define AXP313A_DCDC23_NUM_VOLTAGES 88 ++#define AXP313A_DCDC_V_OUT_MASK GENMASK(6, 0) ++#define AXP313A_LDO_V_OUT_MASK GENMASK(4, 0) ++ + #define AXP803_PWR_OUT_DCDC1_MASK BIT_MASK(0) + #define AXP803_PWR_OUT_DCDC2_MASK BIT_MASK(1) + #define AXP803_PWR_OUT_DCDC3_MASK BIT_MASK(2) +@@ -638,6 +643,48 @@ static const struct regulator_desc axp22 + .ops = &axp20x_ops_sw, + }; + ++static const struct linear_range axp313a_dcdc1_ranges[] = { ++ REGULATOR_LINEAR_RANGE(500000, 0, 70, 10000), ++ REGULATOR_LINEAR_RANGE(1220000, 71, 87, 20000), ++ REGULATOR_LINEAR_RANGE(1600000, 88, 106, 100000), ++}; ++ ++static const struct linear_range axp313a_dcdc2_ranges[] = { ++ REGULATOR_LINEAR_RANGE(500000, 0, 70, 10000), ++ REGULATOR_LINEAR_RANGE(1220000, 71, 87, 20000), ++}; ++ ++/* ++ * This is deviating from the datasheet. The values here are taken from the ++ * BSP driver and have been confirmed by measurements. ++ */ ++static const struct linear_range axp313a_dcdc3_ranges[] = { ++ REGULATOR_LINEAR_RANGE(500000, 0, 70, 10000), ++ REGULATOR_LINEAR_RANGE(1220000, 71, 102, 20000), ++}; ++ ++static const struct regulator_desc axp313a_regulators[] = { ++ AXP_DESC_RANGES(AXP313A, DCDC1, "dcdc1", "vin1", ++ axp313a_dcdc1_ranges, AXP313A_DCDC1_NUM_VOLTAGES, ++ AXP313A_DCDC1_CONRTOL, AXP313A_DCDC_V_OUT_MASK, ++ AXP313A_OUTPUT_CONTROL, BIT(0)), ++ AXP_DESC_RANGES(AXP313A, DCDC2, "dcdc2", "vin2", ++ axp313a_dcdc2_ranges, AXP313A_DCDC23_NUM_VOLTAGES, ++ AXP313A_DCDC2_CONRTOL, AXP313A_DCDC_V_OUT_MASK, ++ AXP313A_OUTPUT_CONTROL, BIT(1)), ++ AXP_DESC_RANGES(AXP313A, DCDC3, "dcdc3", "vin3", ++ axp313a_dcdc3_ranges, AXP313A_DCDC23_NUM_VOLTAGES, ++ AXP313A_DCDC3_CONRTOL, AXP313A_DCDC_V_OUT_MASK, ++ AXP313A_OUTPUT_CONTROL, BIT(2)), ++ AXP_DESC(AXP313A, ALDO1, "aldo1", "vin1", 500, 3500, 100, ++ AXP313A_ALDO1_CONRTOL, AXP313A_LDO_V_OUT_MASK, ++ AXP313A_OUTPUT_CONTROL, BIT(3)), ++ AXP_DESC(AXP313A, DLDO1, "dldo1", "vin1", 500, 3500, 100, ++ AXP313A_DLDO1_CONRTOL, AXP313A_LDO_V_OUT_MASK, ++ AXP313A_OUTPUT_CONTROL, BIT(4)), ++ AXP_DESC_FIXED(AXP313A, RTC_LDO, "rtc-ldo", "vin1", 1800), ++}; ++ + /* DCDC ranges shared with AXP813 */ + static const struct linear_range axp803_dcdc234_ranges[] = { + REGULATOR_LINEAR_RANGE(500000, +@@ -1040,6 +1087,15 @@ static int axp20x_set_dcdc_freq(struct p + def = 3000; + step = 150; + break; ++ case AXP313A_ID: ++ /* The DCDC PWM frequency seems to be fixed to 3 MHz. */ ++ if (dcdcfreq != 0) { ++ dev_err(&pdev->dev, ++ "DCDC frequency on AXP313a is fixed to 3 MHz.\n"); ++ return -EINVAL; ++ } ++ ++ return 0; + default: + dev_err(&pdev->dev, + "Setting DCDC frequency for unsupported AXP variant\n"); +@@ -1232,6 +1288,10 @@ static int axp20x_regulator_probe(struct + drivevbus = of_property_read_bool(pdev->dev.parent->of_node, + "x-powers,drive-vbus-en"); + break; ++ case AXP313A_ID: ++ regulators = axp313a_regulators; ++ nregulators = AXP313A_REG_ID_MAX; ++ break; + case AXP803_ID: + regulators = axp803_regulators; + nregulators = AXP803_REG_ID_MAX; diff --git a/target/linux/generic/backport-6.1/886-v6.5-regulator-axp20x-Add-AXP15060-support.patch b/target/linux/generic/backport-6.1/886-v6.5-regulator-axp20x-Add-AXP15060-support.patch new file mode 100644 index 00000000000000..6af09204af2e5c --- /dev/null +++ b/target/linux/generic/backport-6.1/886-v6.5-regulator-axp20x-Add-AXP15060-support.patch @@ -0,0 +1,367 @@ +From 9e72869d0fe12aba8cd489e485d93912b3f5c248 Mon Sep 17 00:00:00 2001 +From: Shengyu Qu +Date: Wed, 24 May 2023 01:00:12 +0100 +Subject: [PATCH] regulator: axp20x: Add AXP15060 support + +The AXP15060 is a typical I2C-controlled PMIC, seen on multiple boards +with different default register value. Current driver is tested on +Starfive Visionfive 2. + +The RTCLDO is fixed, and cannot even be turned on or off. On top of +that, its voltage is customisable (either 1.8V or 3.3V). We pretend it's +a fixed 1.8V regulator since other AXP driver also do like this. Also, +BSP code ignores this regulator and it's not used according to VF2 +schematic. + +Describe the AXP15060's voltage settings and switch registers, how the +voltages are encoded, and connect this to the MFD device via its +regulator ID. + +Signed-off-by: Shengyu Qu +Signed-off-by: Andre Przywara +Reviewed-by: Mark Brown +Tested-by: Shengyu Qu +Link: https://lore.kernel.org/r/20230524000012.15028-4-andre.przywara@arm.com +Signed-off-by: Mark Brown +--- + drivers/regulator/axp20x-regulator.c | 232 +++++++++++++++++++++++++-- + 1 file changed, 223 insertions(+), 9 deletions(-) + +--- a/drivers/regulator/axp20x-regulator.c ++++ b/drivers/regulator/axp20x-regulator.c +@@ -275,6 +275,74 @@ + + #define AXP813_PWR_OUT_DCDC7_MASK BIT_MASK(6) + ++#define AXP15060_DCDC1_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_DCDC2_V_CTRL_MASK GENMASK(6, 0) ++#define AXP15060_DCDC3_V_CTRL_MASK GENMASK(6, 0) ++#define AXP15060_DCDC4_V_CTRL_MASK GENMASK(6, 0) ++#define AXP15060_DCDC5_V_CTRL_MASK GENMASK(6, 0) ++#define AXP15060_DCDC6_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_ALDO1_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_ALDO2_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_ALDO3_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_ALDO4_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_ALDO5_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_BLDO1_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_BLDO2_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_BLDO3_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_BLDO4_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_BLDO5_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_CLDO1_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_CLDO2_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_CLDO3_V_CTRL_MASK GENMASK(4, 0) ++#define AXP15060_CLDO4_V_CTRL_MASK GENMASK(5, 0) ++#define AXP15060_CPUSLDO_V_CTRL_MASK GENMASK(3, 0) ++ ++#define AXP15060_PWR_OUT_DCDC1_MASK BIT_MASK(0) ++#define AXP15060_PWR_OUT_DCDC2_MASK BIT_MASK(1) ++#define AXP15060_PWR_OUT_DCDC3_MASK BIT_MASK(2) ++#define AXP15060_PWR_OUT_DCDC4_MASK BIT_MASK(3) ++#define AXP15060_PWR_OUT_DCDC5_MASK BIT_MASK(4) ++#define AXP15060_PWR_OUT_DCDC6_MASK BIT_MASK(5) ++#define AXP15060_PWR_OUT_ALDO1_MASK BIT_MASK(0) ++#define AXP15060_PWR_OUT_ALDO2_MASK BIT_MASK(1) ++#define AXP15060_PWR_OUT_ALDO3_MASK BIT_MASK(2) ++#define AXP15060_PWR_OUT_ALDO4_MASK BIT_MASK(3) ++#define AXP15060_PWR_OUT_ALDO5_MASK BIT_MASK(4) ++#define AXP15060_PWR_OUT_BLDO1_MASK BIT_MASK(5) ++#define AXP15060_PWR_OUT_BLDO2_MASK BIT_MASK(6) ++#define AXP15060_PWR_OUT_BLDO3_MASK BIT_MASK(7) ++#define AXP15060_PWR_OUT_BLDO4_MASK BIT_MASK(0) ++#define AXP15060_PWR_OUT_BLDO5_MASK BIT_MASK(1) ++#define AXP15060_PWR_OUT_CLDO1_MASK BIT_MASK(2) ++#define AXP15060_PWR_OUT_CLDO2_MASK BIT_MASK(3) ++#define AXP15060_PWR_OUT_CLDO3_MASK BIT_MASK(4) ++#define AXP15060_PWR_OUT_CLDO4_MASK BIT_MASK(5) ++#define AXP15060_PWR_OUT_CPUSLDO_MASK BIT_MASK(6) ++#define AXP15060_PWR_OUT_SW_MASK BIT_MASK(7) ++ ++#define AXP15060_DCDC23_POLYPHASE_DUAL_MASK BIT_MASK(6) ++#define AXP15060_DCDC46_POLYPHASE_DUAL_MASK BIT_MASK(7) ++ ++#define AXP15060_DCDC234_500mV_START 0x00 ++#define AXP15060_DCDC234_500mV_STEPS 70 ++#define AXP15060_DCDC234_500mV_END \ ++ (AXP15060_DCDC234_500mV_START + AXP15060_DCDC234_500mV_STEPS) ++#define AXP15060_DCDC234_1220mV_START 0x47 ++#define AXP15060_DCDC234_1220mV_STEPS 16 ++#define AXP15060_DCDC234_1220mV_END \ ++ (AXP15060_DCDC234_1220mV_START + AXP15060_DCDC234_1220mV_STEPS) ++#define AXP15060_DCDC234_NUM_VOLTAGES 88 ++ ++#define AXP15060_DCDC5_800mV_START 0x00 ++#define AXP15060_DCDC5_800mV_STEPS 32 ++#define AXP15060_DCDC5_800mV_END \ ++ (AXP15060_DCDC5_800mV_START + AXP15060_DCDC5_800mV_STEPS) ++#define AXP15060_DCDC5_1140mV_START 0x21 ++#define AXP15060_DCDC5_1140mV_STEPS 35 ++#define AXP15060_DCDC5_1140mV_END \ ++ (AXP15060_DCDC5_1140mV_START + AXP15060_DCDC5_1140mV_STEPS) ++#define AXP15060_DCDC5_NUM_VOLTAGES 69 ++ + #define AXP_DESC_IO(_family, _id, _match, _supply, _min, _max, _step, _vreg, \ + _vmask, _ereg, _emask, _enable_val, _disable_val) \ + [_family##_##_id] = { \ +@@ -1048,6 +1116,104 @@ static const struct regulator_desc axp81 + AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DC1SW_MASK), + }; + ++static const struct linear_range axp15060_dcdc234_ranges[] = { ++ REGULATOR_LINEAR_RANGE(500000, ++ AXP15060_DCDC234_500mV_START, ++ AXP15060_DCDC234_500mV_END, ++ 10000), ++ REGULATOR_LINEAR_RANGE(1220000, ++ AXP15060_DCDC234_1220mV_START, ++ AXP15060_DCDC234_1220mV_END, ++ 20000), ++}; ++ ++static const struct linear_range axp15060_dcdc5_ranges[] = { ++ REGULATOR_LINEAR_RANGE(800000, ++ AXP15060_DCDC5_800mV_START, ++ AXP15060_DCDC5_800mV_END, ++ 10000), ++ REGULATOR_LINEAR_RANGE(1140000, ++ AXP15060_DCDC5_1140mV_START, ++ AXP15060_DCDC5_1140mV_END, ++ 20000), ++}; ++ ++static const struct regulator_desc axp15060_regulators[] = { ++ AXP_DESC(AXP15060, DCDC1, "dcdc1", "vin1", 1500, 3400, 100, ++ AXP15060_DCDC1_V_CTRL, AXP15060_DCDC1_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL1, AXP15060_PWR_OUT_DCDC1_MASK), ++ AXP_DESC_RANGES(AXP15060, DCDC2, "dcdc2", "vin2", ++ axp15060_dcdc234_ranges, AXP15060_DCDC234_NUM_VOLTAGES, ++ AXP15060_DCDC2_V_CTRL, AXP15060_DCDC2_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL1, AXP15060_PWR_OUT_DCDC2_MASK), ++ AXP_DESC_RANGES(AXP15060, DCDC3, "dcdc3", "vin3", ++ axp15060_dcdc234_ranges, AXP15060_DCDC234_NUM_VOLTAGES, ++ AXP15060_DCDC3_V_CTRL, AXP15060_DCDC3_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL1, AXP15060_PWR_OUT_DCDC3_MASK), ++ AXP_DESC_RANGES(AXP15060, DCDC4, "dcdc4", "vin4", ++ axp15060_dcdc234_ranges, AXP15060_DCDC234_NUM_VOLTAGES, ++ AXP15060_DCDC4_V_CTRL, AXP15060_DCDC4_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL1, AXP15060_PWR_OUT_DCDC4_MASK), ++ AXP_DESC_RANGES(AXP15060, DCDC5, "dcdc5", "vin5", ++ axp15060_dcdc5_ranges, AXP15060_DCDC5_NUM_VOLTAGES, ++ AXP15060_DCDC5_V_CTRL, AXP15060_DCDC5_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL1, AXP15060_PWR_OUT_DCDC5_MASK), ++ AXP_DESC(AXP15060, DCDC6, "dcdc6", "vin6", 500, 3400, 100, ++ AXP15060_DCDC6_V_CTRL, AXP15060_DCDC6_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL1, AXP15060_PWR_OUT_DCDC6_MASK), ++ AXP_DESC(AXP15060, ALDO1, "aldo1", "aldoin", 700, 3300, 100, ++ AXP15060_ALDO1_V_CTRL, AXP15060_ALDO1_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL2, AXP15060_PWR_OUT_ALDO1_MASK), ++ AXP_DESC(AXP15060, ALDO2, "aldo2", "aldoin", 700, 3300, 100, ++ AXP15060_ALDO2_V_CTRL, AXP15060_ALDO2_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL2, AXP15060_PWR_OUT_ALDO2_MASK), ++ AXP_DESC(AXP15060, ALDO3, "aldo3", "aldoin", 700, 3300, 100, ++ AXP15060_ALDO3_V_CTRL, AXP15060_ALDO3_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL2, AXP15060_PWR_OUT_ALDO3_MASK), ++ AXP_DESC(AXP15060, ALDO4, "aldo4", "aldoin", 700, 3300, 100, ++ AXP15060_ALDO4_V_CTRL, AXP15060_ALDO4_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL2, AXP15060_PWR_OUT_ALDO4_MASK), ++ AXP_DESC(AXP15060, ALDO5, "aldo5", "aldoin", 700, 3300, 100, ++ AXP15060_ALDO5_V_CTRL, AXP15060_ALDO5_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL2, AXP15060_PWR_OUT_ALDO5_MASK), ++ AXP_DESC(AXP15060, BLDO1, "bldo1", "bldoin", 700, 3300, 100, ++ AXP15060_BLDO1_V_CTRL, AXP15060_BLDO1_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL2, AXP15060_PWR_OUT_BLDO1_MASK), ++ AXP_DESC(AXP15060, BLDO2, "bldo2", "bldoin", 700, 3300, 100, ++ AXP15060_BLDO2_V_CTRL, AXP15060_BLDO2_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL2, AXP15060_PWR_OUT_BLDO2_MASK), ++ AXP_DESC(AXP15060, BLDO3, "bldo3", "bldoin", 700, 3300, 100, ++ AXP15060_BLDO3_V_CTRL, AXP15060_BLDO3_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL2, AXP15060_PWR_OUT_BLDO3_MASK), ++ AXP_DESC(AXP15060, BLDO4, "bldo4", "bldoin", 700, 3300, 100, ++ AXP15060_BLDO4_V_CTRL, AXP15060_BLDO4_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL3, AXP15060_PWR_OUT_BLDO4_MASK), ++ AXP_DESC(AXP15060, BLDO5, "bldo5", "bldoin", 700, 3300, 100, ++ AXP15060_BLDO5_V_CTRL, AXP15060_BLDO5_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL3, AXP15060_PWR_OUT_BLDO5_MASK), ++ AXP_DESC(AXP15060, CLDO1, "cldo1", "cldoin", 700, 3300, 100, ++ AXP15060_CLDO1_V_CTRL, AXP15060_CLDO1_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL3, AXP15060_PWR_OUT_CLDO1_MASK), ++ AXP_DESC(AXP15060, CLDO2, "cldo2", "cldoin", 700, 3300, 100, ++ AXP15060_CLDO2_V_CTRL, AXP15060_CLDO2_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL3, AXP15060_PWR_OUT_CLDO2_MASK), ++ AXP_DESC(AXP15060, CLDO3, "cldo3", "cldoin", 700, 3300, 100, ++ AXP15060_CLDO3_V_CTRL, AXP15060_CLDO3_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL3, AXP15060_PWR_OUT_CLDO3_MASK), ++ AXP_DESC(AXP15060, CLDO4, "cldo4", "cldoin", 700, 4200, 100, ++ AXP15060_CLDO4_V_CTRL, AXP15060_CLDO4_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL3, AXP15060_PWR_OUT_CLDO4_MASK), ++ /* Supply comes from DCDC5 */ ++ AXP_DESC(AXP15060, CPUSLDO, "cpusldo", NULL, 700, 1400, 50, ++ AXP15060_CPUSLDO_V_CTRL, AXP15060_CPUSLDO_V_CTRL_MASK, ++ AXP15060_PWR_OUT_CTRL3, AXP15060_PWR_OUT_CPUSLDO_MASK), ++ /* Supply comes from DCDC1 */ ++ AXP_DESC_SW(AXP15060, SW, "sw", NULL, ++ AXP15060_PWR_OUT_CTRL3, AXP15060_PWR_OUT_SW_MASK), ++ /* Supply comes from ALDO1 */ ++ AXP_DESC_FIXED(AXP15060, RTC_LDO, "rtc-ldo", NULL, 1800), ++}; ++ + static int axp20x_set_dcdc_freq(struct platform_device *pdev, u32 dcdcfreq) + { + struct axp20x_dev *axp20x = dev_get_drvdata(pdev->dev.parent); +@@ -1088,10 +1254,11 @@ static int axp20x_set_dcdc_freq(struct p + step = 150; + break; + case AXP313A_ID: ++ case AXP15060_ID: + /* The DCDC PWM frequency seems to be fixed to 3 MHz. */ + if (dcdcfreq != 0) { + dev_err(&pdev->dev, +- "DCDC frequency on AXP313a is fixed to 3 MHz.\n"); ++ "DCDC frequency on this PMIC is fixed to 3 MHz.\n"); + return -EINVAL; + } + +@@ -1201,6 +1368,15 @@ static int axp20x_set_dcdc_workmode(stru + workmode <<= id - AXP813_DCDC1; + break; + ++ case AXP15060_ID: ++ reg = AXP15060_DCDC_MODE_CTRL2; ++ if (id < AXP15060_DCDC1 || id > AXP15060_DCDC6) ++ return -EINVAL; ++ ++ mask = AXP22X_WORKMODE_DCDCX_MASK(id - AXP15060_DCDC1); ++ workmode <<= id - AXP15060_DCDC1; ++ break; ++ + default: + /* should not happen */ + WARN_ON(1); +@@ -1220,7 +1396,7 @@ static bool axp20x_is_polyphase_slave(st + + /* + * Currently in our supported AXP variants, only AXP803, AXP806, +- * and AXP813 have polyphase regulators. ++ * AXP813 and AXP15060 have polyphase regulators. + */ + switch (axp20x->variant) { + case AXP803_ID: +@@ -1252,6 +1428,17 @@ static bool axp20x_is_polyphase_slave(st + } + break; + ++ case AXP15060_ID: ++ regmap_read(axp20x->regmap, AXP15060_DCDC_MODE_CTRL1, ®); ++ ++ switch (id) { ++ case AXP15060_DCDC3: ++ return !!(reg & AXP15060_DCDC23_POLYPHASE_DUAL_MASK); ++ case AXP15060_DCDC6: ++ return !!(reg & AXP15060_DCDC46_POLYPHASE_DUAL_MASK); ++ } ++ break; ++ + default: + return false; + } +@@ -1273,6 +1460,7 @@ static int axp20x_regulator_probe(struct + u32 workmode; + const char *dcdc1_name = axp22x_regulators[AXP22X_DCDC1].name; + const char *dcdc5_name = axp22x_regulators[AXP22X_DCDC5].name; ++ const char *aldo1_name = axp15060_regulators[AXP15060_ALDO1].name; + bool drivevbus = false; + + switch (axp20x->variant) { +@@ -1312,6 +1500,10 @@ static int axp20x_regulator_probe(struct + drivevbus = of_property_read_bool(pdev->dev.parent->of_node, + "x-powers,drive-vbus-en"); + break; ++ case AXP15060_ID: ++ regulators = axp15060_regulators; ++ nregulators = AXP15060_REG_ID_MAX; ++ break; + default: + dev_err(&pdev->dev, "Unsupported AXP variant: %ld\n", + axp20x->variant); +@@ -1338,8 +1530,9 @@ static int axp20x_regulator_probe(struct + continue; + + /* +- * Regulators DC1SW and DC5LDO are connected internally, +- * so we have to handle their supply names separately. ++ * Regulators DC1SW, DC5LDO and RTCLDO on AXP15060 are ++ * connected internally, so we have to handle their supply ++ * names separately. + * + * We always register the regulators in proper sequence, + * so the supply names are correctly read. See the last +@@ -1348,7 +1541,8 @@ static int axp20x_regulator_probe(struct + */ + if ((regulators == axp22x_regulators && i == AXP22X_DC1SW) || + (regulators == axp803_regulators && i == AXP803_DC1SW) || +- (regulators == axp809_regulators && i == AXP809_DC1SW)) { ++ (regulators == axp809_regulators && i == AXP809_DC1SW) || ++ (regulators == axp15060_regulators && i == AXP15060_SW)) { + new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc), + GFP_KERNEL); + if (!new_desc) +@@ -1360,7 +1554,8 @@ static int axp20x_regulator_probe(struct + } + + if ((regulators == axp22x_regulators && i == AXP22X_DC5LDO) || +- (regulators == axp809_regulators && i == AXP809_DC5LDO)) { ++ (regulators == axp809_regulators && i == AXP809_DC5LDO) || ++ (regulators == axp15060_regulators && i == AXP15060_CPUSLDO)) { + new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc), + GFP_KERNEL); + if (!new_desc) +@@ -1371,6 +1566,18 @@ static int axp20x_regulator_probe(struct + desc = new_desc; + } + ++ ++ if (regulators == axp15060_regulators && i == AXP15060_RTC_LDO) { ++ new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc), ++ GFP_KERNEL); ++ if (!new_desc) ++ return -ENOMEM; ++ ++ *new_desc = regulators[i]; ++ new_desc->supply_name = aldo1_name; ++ desc = new_desc; ++ } ++ + rdev = devm_regulator_register(&pdev->dev, desc, &config); + if (IS_ERR(rdev)) { + dev_err(&pdev->dev, "Failed to register %s\n", +@@ -1389,19 +1596,26 @@ static int axp20x_regulator_probe(struct + } + + /* +- * Save AXP22X DCDC1 / DCDC5 regulator names for later. ++ * Save AXP22X DCDC1 / DCDC5 / AXP15060 ALDO1 regulator names for later. + */ + if ((regulators == axp22x_regulators && i == AXP22X_DCDC1) || +- (regulators == axp809_regulators && i == AXP809_DCDC1)) ++ (regulators == axp809_regulators && i == AXP809_DCDC1) || ++ (regulators == axp15060_regulators && i == AXP15060_DCDC1)) + of_property_read_string(rdev->dev.of_node, + "regulator-name", + &dcdc1_name); + + if ((regulators == axp22x_regulators && i == AXP22X_DCDC5) || +- (regulators == axp809_regulators && i == AXP809_DCDC5)) ++ (regulators == axp809_regulators && i == AXP809_DCDC5) || ++ (regulators == axp15060_regulators && i == AXP15060_DCDC5)) + of_property_read_string(rdev->dev.of_node, + "regulator-name", + &dcdc5_name); ++ ++ if (regulators == axp15060_regulators && i == AXP15060_ALDO1) ++ of_property_read_string(rdev->dev.of_node, ++ "regulator-name", ++ &aldo1_name); + } + + if (drivevbus) { diff --git a/target/linux/generic/backport-6.1/887-v6.5-mfd-axp20x-Add-support-for-AXP192.patch b/target/linux/generic/backport-6.1/887-v6.5-mfd-axp20x-Add-support-for-AXP192.patch new file mode 100644 index 00000000000000..d75b4e74534798 --- /dev/null +++ b/target/linux/generic/backport-6.1/887-v6.5-mfd-axp20x-Add-support-for-AXP192.patch @@ -0,0 +1,383 @@ +From 63eeabbc9dbddd7381409feccd9082e5ffabfe59 Mon Sep 17 00:00:00 2001 +From: Aidan MacDonald +Date: Thu, 11 May 2023 10:26:08 +0100 +Subject: [PATCH] mfd: axp20x: Add support for AXP192 + +The AXP192 PMIC is similar to the AXP202/AXP209, but with different +regulators, additional GPIOs, and a different IRQ register layout. + +Signed-off-by: Aidan MacDonald +Link: https://lore.kernel.org/r/20230511092609.76183-1-aidanmacdonald.0x0@gmail.com +Signed-off-by: Lee Jones +--- + drivers/mfd/axp20x-i2c.c | 2 + + drivers/mfd/axp20x.c | 141 +++++++++++++++++++++++++++++++++++++ + include/linux/mfd/axp20x.h | 84 ++++++++++++++++++++++ + 3 files changed, 227 insertions(+) + +--- a/drivers/mfd/axp20x-i2c.c ++++ b/drivers/mfd/axp20x-i2c.c +@@ -60,6 +60,7 @@ static void axp20x_i2c_remove(struct i2c + #ifdef CONFIG_OF + static const struct of_device_id axp20x_i2c_of_match[] = { + { .compatible = "x-powers,axp152", .data = (void *)AXP152_ID }, ++ { .compatible = "x-powers,axp192", .data = (void *)AXP192_ID }, + { .compatible = "x-powers,axp202", .data = (void *)AXP202_ID }, + { .compatible = "x-powers,axp209", .data = (void *)AXP209_ID }, + { .compatible = "x-powers,axp221", .data = (void *)AXP221_ID }, +@@ -75,6 +76,7 @@ MODULE_DEVICE_TABLE(of, axp20x_i2c_of_ma + + static const struct i2c_device_id axp20x_i2c_id[] = { + { "axp152", 0 }, ++ { "axp192", 0 }, + { "axp202", 0 }, + { "axp209", 0 }, + { "axp221", 0 }, +--- a/drivers/mfd/axp20x.c ++++ b/drivers/mfd/axp20x.c +@@ -34,6 +34,7 @@ + + static const char * const axp20x_model_names[] = { + "AXP152", ++ "AXP192", + "AXP202", + "AXP209", + "AXP221", +@@ -94,6 +95,35 @@ static const struct regmap_access_table + .n_yes_ranges = ARRAY_SIZE(axp20x_volatile_ranges), + }; + ++static const struct regmap_range axp192_writeable_ranges[] = { ++ regmap_reg_range(AXP192_DATACACHE(0), AXP192_DATACACHE(5)), ++ regmap_reg_range(AXP192_PWR_OUT_CTRL, AXP192_IRQ5_STATE), ++ regmap_reg_range(AXP20X_DCDC_MODE, AXP192_N_RSTO_CTRL), ++ regmap_reg_range(AXP20X_CC_CTRL, AXP20X_CC_CTRL), ++}; ++ ++static const struct regmap_range axp192_volatile_ranges[] = { ++ regmap_reg_range(AXP20X_PWR_INPUT_STATUS, AXP192_USB_OTG_STATUS), ++ regmap_reg_range(AXP192_IRQ1_STATE, AXP192_IRQ4_STATE), ++ regmap_reg_range(AXP192_IRQ5_STATE, AXP192_IRQ5_STATE), ++ regmap_reg_range(AXP20X_ACIN_V_ADC_H, AXP20X_IPSOUT_V_HIGH_L), ++ regmap_reg_range(AXP20X_TIMER_CTRL, AXP20X_TIMER_CTRL), ++ regmap_reg_range(AXP192_GPIO2_0_STATE, AXP192_GPIO2_0_STATE), ++ regmap_reg_range(AXP192_GPIO4_3_STATE, AXP192_GPIO4_3_STATE), ++ regmap_reg_range(AXP192_N_RSTO_CTRL, AXP192_N_RSTO_CTRL), ++ regmap_reg_range(AXP20X_CHRG_CC_31_24, AXP20X_CC_CTRL), ++}; ++ ++static const struct regmap_access_table axp192_writeable_table = { ++ .yes_ranges = axp192_writeable_ranges, ++ .n_yes_ranges = ARRAY_SIZE(axp192_writeable_ranges), ++}; ++ ++static const struct regmap_access_table axp192_volatile_table = { ++ .yes_ranges = axp192_volatile_ranges, ++ .n_yes_ranges = ARRAY_SIZE(axp192_volatile_ranges), ++}; ++ + /* AXP22x ranges are shared with the AXP809, as they cover the same range */ + static const struct regmap_range axp22x_writeable_ranges[] = { + regmap_reg_range(AXP20X_DATACACHE(0), AXP20X_IRQ5_STATE), +@@ -220,6 +250,19 @@ static const struct resource axp152_pek_ + DEFINE_RES_IRQ_NAMED(AXP152_IRQ_PEK_FAL_EDGE, "PEK_DBF"), + }; + ++static const struct resource axp192_ac_power_supply_resources[] = { ++ DEFINE_RES_IRQ_NAMED(AXP192_IRQ_ACIN_PLUGIN, "ACIN_PLUGIN"), ++ DEFINE_RES_IRQ_NAMED(AXP192_IRQ_ACIN_REMOVAL, "ACIN_REMOVAL"), ++ DEFINE_RES_IRQ_NAMED(AXP192_IRQ_ACIN_OVER_V, "ACIN_OVER_V"), ++}; ++ ++static const struct resource axp192_usb_power_supply_resources[] = { ++ DEFINE_RES_IRQ_NAMED(AXP192_IRQ_VBUS_PLUGIN, "VBUS_PLUGIN"), ++ DEFINE_RES_IRQ_NAMED(AXP192_IRQ_VBUS_REMOVAL, "VBUS_REMOVAL"), ++ DEFINE_RES_IRQ_NAMED(AXP192_IRQ_VBUS_VALID, "VBUS_VALID"), ++ DEFINE_RES_IRQ_NAMED(AXP192_IRQ_VBUS_NOT_VALID, "VBUS_NOT_VALID"), ++}; ++ + static const struct resource axp20x_ac_power_supply_resources[] = { + DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_ACIN_PLUGIN, "ACIN_PLUGIN"), + DEFINE_RES_IRQ_NAMED(AXP20X_IRQ_ACIN_REMOVAL, "ACIN_REMOVAL"), +@@ -302,6 +345,15 @@ static const struct regmap_config axp152 + .cache_type = REGCACHE_RBTREE, + }; + ++static const struct regmap_config axp192_regmap_config = { ++ .reg_bits = 8, ++ .val_bits = 8, ++ .wr_table = &axp192_writeable_table, ++ .volatile_table = &axp192_volatile_table, ++ .max_register = AXP20X_CC_CTRL, ++ .cache_type = REGCACHE_RBTREE, ++}; ++ + static const struct regmap_config axp20x_regmap_config = { + .reg_bits = 8, + .val_bits = 8, +@@ -379,6 +431,42 @@ static const struct regmap_irq axp152_re + INIT_REGMAP_IRQ(AXP152, GPIO0_INPUT, 2, 0), + }; + ++static const struct regmap_irq axp192_regmap_irqs[] = { ++ INIT_REGMAP_IRQ(AXP192, ACIN_OVER_V, 0, 7), ++ INIT_REGMAP_IRQ(AXP192, ACIN_PLUGIN, 0, 6), ++ INIT_REGMAP_IRQ(AXP192, ACIN_REMOVAL, 0, 5), ++ INIT_REGMAP_IRQ(AXP192, VBUS_OVER_V, 0, 4), ++ INIT_REGMAP_IRQ(AXP192, VBUS_PLUGIN, 0, 3), ++ INIT_REGMAP_IRQ(AXP192, VBUS_REMOVAL, 0, 2), ++ INIT_REGMAP_IRQ(AXP192, VBUS_V_LOW, 0, 1), ++ INIT_REGMAP_IRQ(AXP192, BATT_PLUGIN, 1, 7), ++ INIT_REGMAP_IRQ(AXP192, BATT_REMOVAL, 1, 6), ++ INIT_REGMAP_IRQ(AXP192, BATT_ENT_ACT_MODE, 1, 5), ++ INIT_REGMAP_IRQ(AXP192, BATT_EXIT_ACT_MODE, 1, 4), ++ INIT_REGMAP_IRQ(AXP192, CHARG, 1, 3), ++ INIT_REGMAP_IRQ(AXP192, CHARG_DONE, 1, 2), ++ INIT_REGMAP_IRQ(AXP192, BATT_TEMP_HIGH, 1, 1), ++ INIT_REGMAP_IRQ(AXP192, BATT_TEMP_LOW, 1, 0), ++ INIT_REGMAP_IRQ(AXP192, DIE_TEMP_HIGH, 2, 7), ++ INIT_REGMAP_IRQ(AXP192, CHARG_I_LOW, 2, 6), ++ INIT_REGMAP_IRQ(AXP192, DCDC1_V_LONG, 2, 5), ++ INIT_REGMAP_IRQ(AXP192, DCDC2_V_LONG, 2, 4), ++ INIT_REGMAP_IRQ(AXP192, DCDC3_V_LONG, 2, 3), ++ INIT_REGMAP_IRQ(AXP192, PEK_SHORT, 2, 1), ++ INIT_REGMAP_IRQ(AXP192, PEK_LONG, 2, 0), ++ INIT_REGMAP_IRQ(AXP192, N_OE_PWR_ON, 3, 7), ++ INIT_REGMAP_IRQ(AXP192, N_OE_PWR_OFF, 3, 6), ++ INIT_REGMAP_IRQ(AXP192, VBUS_VALID, 3, 5), ++ INIT_REGMAP_IRQ(AXP192, VBUS_NOT_VALID, 3, 4), ++ INIT_REGMAP_IRQ(AXP192, VBUS_SESS_VALID, 3, 3), ++ INIT_REGMAP_IRQ(AXP192, VBUS_SESS_END, 3, 2), ++ INIT_REGMAP_IRQ(AXP192, LOW_PWR_LVL, 3, 0), ++ INIT_REGMAP_IRQ(AXP192, TIMER, 4, 7), ++ INIT_REGMAP_IRQ(AXP192, GPIO2_INPUT, 4, 2), ++ INIT_REGMAP_IRQ(AXP192, GPIO1_INPUT, 4, 1), ++ INIT_REGMAP_IRQ(AXP192, GPIO0_INPUT, 4, 0), ++}; ++ + static const struct regmap_irq axp20x_regmap_irqs[] = { + INIT_REGMAP_IRQ(AXP20X, ACIN_OVER_V, 0, 7), + INIT_REGMAP_IRQ(AXP20X, ACIN_PLUGIN, 0, 6), +@@ -616,6 +704,32 @@ static const struct regmap_irq_chip axp1 + .num_regs = 3, + }; + ++static unsigned int axp192_get_irq_reg(struct regmap_irq_chip_data *data, ++ unsigned int base, int index) ++{ ++ /* linear mapping for IRQ1 to IRQ4 */ ++ if (index < 4) ++ return base + index; ++ ++ /* handle IRQ5 separately */ ++ if (base == AXP192_IRQ1_EN) ++ return AXP192_IRQ5_EN; ++ ++ return AXP192_IRQ5_STATE; ++} ++ ++static const struct regmap_irq_chip axp192_regmap_irq_chip = { ++ .name = "axp192_irq_chip", ++ .status_base = AXP192_IRQ1_STATE, ++ .ack_base = AXP192_IRQ1_STATE, ++ .unmask_base = AXP192_IRQ1_EN, ++ .init_ack_masked = true, ++ .irqs = axp192_regmap_irqs, ++ .num_irqs = ARRAY_SIZE(axp192_regmap_irqs), ++ .num_regs = 5, ++ .get_irq_reg = axp192_get_irq_reg, ++}; ++ + static const struct regmap_irq_chip axp20x_regmap_irq_chip = { + .name = "axp20x_irq_chip", + .status_base = AXP20X_IRQ1_STATE, +@@ -712,6 +826,27 @@ static const struct regmap_irq_chip axp1 + .num_regs = 2, + }; + ++static const struct mfd_cell axp192_cells[] = { ++ { ++ .name = "axp192-adc", ++ .of_compatible = "x-powers,axp192-adc", ++ }, { ++ .name = "axp20x-battery-power-supply", ++ .of_compatible = "x-powers,axp192-battery-power-supply", ++ }, { ++ .name = "axp20x-ac-power-supply", ++ .of_compatible = "x-powers,axp202-ac-power-supply", ++ .num_resources = ARRAY_SIZE(axp192_ac_power_supply_resources), ++ .resources = axp192_ac_power_supply_resources, ++ }, { ++ .name = "axp20x-usb-power-supply", ++ .of_compatible = "x-powers,axp192-usb-power-supply", ++ .num_resources = ARRAY_SIZE(axp192_usb_power_supply_resources), ++ .resources = axp192_usb_power_supply_resources, ++ }, ++ { .name = "axp20x-regulator" }, ++}; ++ + static const struct mfd_cell axp20x_cells[] = { + { + .name = "axp20x-gpio", +@@ -1029,6 +1164,12 @@ int axp20x_match_device(struct axp20x_de + axp20x->regmap_cfg = &axp152_regmap_config; + axp20x->regmap_irq_chip = &axp152_regmap_irq_chip; + break; ++ case AXP192_ID: ++ axp20x->nr_cells = ARRAY_SIZE(axp192_cells); ++ axp20x->cells = axp192_cells; ++ axp20x->regmap_cfg = &axp192_regmap_config; ++ axp20x->regmap_irq_chip = &axp192_regmap_irq_chip; ++ break; + case AXP202_ID: + case AXP209_ID: + axp20x->nr_cells = ARRAY_SIZE(axp20x_cells); +--- a/include/linux/mfd/axp20x.h ++++ b/include/linux/mfd/axp20x.h +@@ -12,6 +12,7 @@ + + enum axp20x_variants { + AXP152_ID = 0, ++ AXP192_ID, + AXP202_ID, + AXP209_ID, + AXP221_ID, +@@ -26,6 +27,7 @@ enum axp20x_variants { + NR_AXP20X_VARIANTS, + }; + ++#define AXP192_DATACACHE(m) (0x06 + (m)) + #define AXP20X_DATACACHE(m) (0x04 + (m)) + + /* Power supply */ +@@ -47,6 +49,13 @@ enum axp20x_variants { + #define AXP152_DCDC_FREQ 0x37 + #define AXP152_DCDC_MODE 0x80 + ++#define AXP192_USB_OTG_STATUS 0x04 ++#define AXP192_PWR_OUT_CTRL 0x12 ++#define AXP192_DCDC2_V_OUT 0x23 ++#define AXP192_DCDC1_V_OUT 0x26 ++#define AXP192_DCDC3_V_OUT 0x27 ++#define AXP192_LDO2_3_V_OUT 0x28 ++ + #define AXP20X_PWR_INPUT_STATUS 0x00 + #define AXP20X_PWR_OP_MODE 0x01 + #define AXP20X_USB_OTG_STATUS 0x02 +@@ -185,6 +194,17 @@ enum axp20x_variants { + #define AXP152_IRQ2_STATE 0x49 + #define AXP152_IRQ3_STATE 0x4a + ++#define AXP192_IRQ1_EN 0x40 ++#define AXP192_IRQ2_EN 0x41 ++#define AXP192_IRQ3_EN 0x42 ++#define AXP192_IRQ4_EN 0x43 ++#define AXP192_IRQ1_STATE 0x44 ++#define AXP192_IRQ2_STATE 0x45 ++#define AXP192_IRQ3_STATE 0x46 ++#define AXP192_IRQ4_STATE 0x47 ++#define AXP192_IRQ5_EN 0x4a ++#define AXP192_IRQ5_STATE 0x4d ++ + #define AXP20X_IRQ1_EN 0x40 + #define AXP20X_IRQ2_EN 0x41 + #define AXP20X_IRQ3_EN 0x42 +@@ -204,6 +224,11 @@ enum axp20x_variants { + #define AXP15060_IRQ2_STATE 0x49 + + /* ADC */ ++#define AXP192_GPIO2_V_ADC_H 0x68 ++#define AXP192_GPIO2_V_ADC_L 0x69 ++#define AXP192_GPIO3_V_ADC_H 0x6a ++#define AXP192_GPIO3_V_ADC_L 0x6b ++ + #define AXP20X_ACIN_V_ADC_H 0x56 + #define AXP20X_ACIN_V_ADC_L 0x57 + #define AXP20X_ACIN_I_ADC_H 0x58 +@@ -233,6 +258,8 @@ enum axp20x_variants { + #define AXP20X_IPSOUT_V_HIGH_L 0x7f + + /* Power supply */ ++#define AXP192_GPIO30_IN_RANGE 0x85 ++ + #define AXP20X_DCDC_MODE 0x80 + #define AXP20X_ADC_EN1 0x82 + #define AXP20X_ADC_EN2 0x83 +@@ -261,6 +288,16 @@ enum axp20x_variants { + #define AXP152_PWM1_FREQ_Y 0x9c + #define AXP152_PWM1_DUTY_CYCLE 0x9d + ++#define AXP192_GPIO0_CTRL 0x90 ++#define AXP192_LDO_IO0_V_OUT 0x91 ++#define AXP192_GPIO1_CTRL 0x92 ++#define AXP192_GPIO2_CTRL 0x93 ++#define AXP192_GPIO2_0_STATE 0x94 ++#define AXP192_GPIO4_3_CTRL 0x95 ++#define AXP192_GPIO4_3_STATE 0x96 ++#define AXP192_GPIO2_0_PULL 0x97 ++#define AXP192_N_RSTO_CTRL 0x9e ++ + #define AXP20X_GPIO0_CTRL 0x90 + #define AXP20X_LDO5_V_OUT 0x91 + #define AXP20X_GPIO1_CTRL 0x92 +@@ -341,6 +378,17 @@ enum axp20x_variants { + + /* Regulators IDs */ + enum { ++ AXP192_DCDC1 = 0, ++ AXP192_DCDC2, ++ AXP192_DCDC3, ++ AXP192_LDO1, ++ AXP192_LDO2, ++ AXP192_LDO3, ++ AXP192_LDO_IO0, ++ AXP192_REG_ID_MAX ++}; ++ ++enum { + AXP20X_LDO1 = 0, + AXP20X_LDO2, + AXP20X_LDO3, +@@ -531,6 +579,42 @@ enum { + AXP152_IRQ_GPIO0_INPUT, + }; + ++enum axp192_irqs { ++ AXP192_IRQ_ACIN_OVER_V = 1, ++ AXP192_IRQ_ACIN_PLUGIN, ++ AXP192_IRQ_ACIN_REMOVAL, ++ AXP192_IRQ_VBUS_OVER_V, ++ AXP192_IRQ_VBUS_PLUGIN, ++ AXP192_IRQ_VBUS_REMOVAL, ++ AXP192_IRQ_VBUS_V_LOW, ++ AXP192_IRQ_BATT_PLUGIN, ++ AXP192_IRQ_BATT_REMOVAL, ++ AXP192_IRQ_BATT_ENT_ACT_MODE, ++ AXP192_IRQ_BATT_EXIT_ACT_MODE, ++ AXP192_IRQ_CHARG, ++ AXP192_IRQ_CHARG_DONE, ++ AXP192_IRQ_BATT_TEMP_HIGH, ++ AXP192_IRQ_BATT_TEMP_LOW, ++ AXP192_IRQ_DIE_TEMP_HIGH, ++ AXP192_IRQ_CHARG_I_LOW, ++ AXP192_IRQ_DCDC1_V_LONG, ++ AXP192_IRQ_DCDC2_V_LONG, ++ AXP192_IRQ_DCDC3_V_LONG, ++ AXP192_IRQ_PEK_SHORT = 22, ++ AXP192_IRQ_PEK_LONG, ++ AXP192_IRQ_N_OE_PWR_ON, ++ AXP192_IRQ_N_OE_PWR_OFF, ++ AXP192_IRQ_VBUS_VALID, ++ AXP192_IRQ_VBUS_NOT_VALID, ++ AXP192_IRQ_VBUS_SESS_VALID, ++ AXP192_IRQ_VBUS_SESS_END, ++ AXP192_IRQ_LOW_PWR_LVL = 31, ++ AXP192_IRQ_TIMER, ++ AXP192_IRQ_GPIO2_INPUT = 37, ++ AXP192_IRQ_GPIO1_INPUT, ++ AXP192_IRQ_GPIO0_INPUT, ++}; ++ + enum { + AXP20X_IRQ_ACIN_OVER_V = 1, + AXP20X_IRQ_ACIN_PLUGIN, diff --git a/target/linux/generic/backport-6.6/300-v6.7-arm64-swiotlb-Reduce-the-default-size-if-no-ZONE_DMA.patch b/target/linux/generic/backport-6.6/300-v6.7-arm64-swiotlb-Reduce-the-default-size-if-no-ZONE_DMA.patch new file mode 100644 index 00000000000000..6ede4d32a1aed1 --- /dev/null +++ b/target/linux/generic/backport-6.6/300-v6.7-arm64-swiotlb-Reduce-the-default-size-if-no-ZONE_DMA.patch @@ -0,0 +1,51 @@ +From 65033574ade97afccba074d837fd269903a83a9a Mon Sep 17 00:00:00 2001 +From: Catalin Marinas +Date: Thu, 5 Oct 2023 16:40:30 +0100 +Subject: [PATCH] arm64: swiotlb: Reduce the default size if no ZONE_DMA + bouncing needed + +With CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC enabled, the arm64 kernel still +allocates the default SWIOTLB buffer (64MB) even if ZONE_DMA is disabled +or all the RAM fits into this zone. However, this potentially wastes a +non-negligible amount of memory on platforms with little RAM. + +Reduce the SWIOTLB size to 1MB per 1GB of RAM if only needed for +kmalloc() buffer bouncing. + +Signed-off-by: Catalin Marinas +Suggested-by: Ross Burton +Cc: Ross Burton +Cc: Will Deacon +Reviewed-by: Robin Murphy +--- + arch/arm64/mm/init.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +--- a/arch/arm64/mm/init.c ++++ b/arch/arm64/mm/init.c +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -493,8 +494,16 @@ void __init mem_init(void) + { + bool swiotlb = max_pfn > PFN_DOWN(arm64_dma_phys_limit); + +- if (IS_ENABLED(CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC)) ++ if (IS_ENABLED(CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC) && !swiotlb) { ++ /* ++ * If no bouncing needed for ZONE_DMA, reduce the swiotlb ++ * buffer for kmalloc() bouncing to 1MB per 1GB of RAM. ++ */ ++ unsigned long size = ++ DIV_ROUND_UP(memblock_phys_mem_size(), 1024); ++ swiotlb_adjust_size(min(swiotlb_size_or_default(), size)); + swiotlb = true; ++ } + + swiotlb_init(swiotlb, SWIOTLB_VERBOSE); + diff --git a/target/linux/generic/backport-6.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch b/target/linux/generic/backport-6.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch new file mode 100644 index 00000000000000..257624164ac6a6 --- /dev/null +++ b/target/linux/generic/backport-6.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch @@ -0,0 +1,36 @@ +From 8e7daa85641c9559c113f6b217bdc923397de77c Mon Sep 17 00:00:00 2001 +From: William Zhang +Date: Thu, 22 Feb 2024 19:47:58 -0800 +Subject: [PATCH] mtd: rawnand: brcmnand: Support write protection setting from + dts + +The write protection feature is controlled by the module parameter wp_on +with default set to enabled. But not all the board use this feature +especially in BCMBCA broadband board. And module parameter is not +sufficient as different board can have different option. Add a device +tree property and allow this feature to be configured through the board +dts on per board basis. + +Signed-off-by: William Zhang +Reviewed-by: Florian Fainelli +Reviewed-by: Kamal Dasu +Reviewed-by: David Regan +Signed-off-by: Miquel Raynal +Link: https://lore.kernel.org/linux-mtd/20240223034758.13753-14-william.zhang@broadcom.com +--- + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +@@ -3189,6 +3189,10 @@ int brcmnand_probe(struct platform_devic + /* Disable XOR addressing */ + brcmnand_rmw_reg(ctrl, BRCMNAND_CS_XOR, 0xff, 0, 0); + ++ /* Check if the board connects the WP pin */ ++ if (of_property_read_bool(dn, "brcm,wp-not-connected")) ++ wp_on = 0; ++ + if (ctrl->features & BRCMNAND_HAS_WP) { + /* Permanently disable write protection */ + if (wp_on == 2) diff --git a/target/linux/generic/backport-6.6/718-v6.9-net-phy-qcom-at803x-fix-kernel-panic-with-at8031_pro.patch b/target/linux/generic/backport-6.6/718-v6.9-net-phy-qcom-at803x-fix-kernel-panic-with-at8031_pro.patch new file mode 100644 index 00000000000000..9b9ce2a3cd01eb --- /dev/null +++ b/target/linux/generic/backport-6.6/718-v6.9-net-phy-qcom-at803x-fix-kernel-panic-with-at8031_pro.patch @@ -0,0 +1,45 @@ +From 6a4aee277740d04ac0fd54cfa17cc28261932ddc Mon Sep 17 00:00:00 2001 +From: Christian Marangi +Date: Mon, 25 Mar 2024 20:06:19 +0100 +Subject: [PATCH] net: phy: qcom: at803x: fix kernel panic with at8031_probe + +On reworking and splitting the at803x driver, in splitting function of +at803x PHYs it was added a NULL dereference bug where priv is referenced +before it's actually allocated and then is tried to write to for the +is_1000basex and is_fiber variables in the case of at8031, writing on +the wrong address. + +Fix this by correctly setting priv local variable only after +at803x_probe is called and actually allocates priv in the phydev struct. + +Reported-by: William Wortel +Cc: +Fixes: 25d2ba94005f ("net: phy: at803x: move specific at8031 probe mode check to dedicated probe") +Signed-off-by: Christian Marangi +Reviewed-by: Andrew Lunn +Link: https://lore.kernel.org/r/20240325190621.2665-1-ansuelsmth@gmail.com +Signed-off-by: Paolo Abeni +--- + drivers/net/phy/qcom/at803x.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/net/phy/qcom/at803x.c ++++ b/drivers/net/phy/qcom/at803x.c +@@ -797,7 +797,7 @@ static int at8031_parse_dt(struct phy_de + + static int at8031_probe(struct phy_device *phydev) + { +- struct at803x_priv *priv = phydev->priv; ++ struct at803x_priv *priv; + int mode_cfg; + int ccr; + int ret; +@@ -806,6 +806,8 @@ static int at8031_probe(struct phy_devic + if (ret) + return ret; + ++ priv = phydev->priv; ++ + /* Only supported on AR8031/AR8033, the AR8030/AR8035 use strapping + * options. + */ diff --git a/target/linux/generic/backport-6.6/734-v6.8-net-phy-bcm54612e-add-suspend-resume.patch b/target/linux/generic/backport-6.6/734-v6.8-net-phy-bcm54612e-add-suspend-resume.patch new file mode 100644 index 00000000000000..28524a3dcf4cd8 --- /dev/null +++ b/target/linux/generic/backport-6.6/734-v6.8-net-phy-bcm54612e-add-suspend-resume.patch @@ -0,0 +1,27 @@ +From 380b50ae3a04222334a3779b3787eba844b1177f Mon Sep 17 00:00:00 2001 +From: Marco von Rosenberg +Date: Thu, 16 Nov 2023 20:32:31 +0100 +Subject: net: phy: broadcom: Wire suspend/resume for BCM54612E + +The BCM54612E ethernet PHY supports IDDQ-SR. +Therefore wire-up the suspend and resume callbacks +to point to bcm54xx_suspend() and bcm54xx_resume(). + +Signed-off-by: Marco von Rosenberg +Acked-by: Florian Fainelli +Signed-off-by: David S. Miller +--- + drivers/net/phy/broadcom.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/net/phy/broadcom.c ++++ b/drivers/net/phy/broadcom.c +@@ -1001,6 +1001,8 @@ static struct phy_driver broadcom_driver + .config_intr = bcm_phy_config_intr, + .handle_interrupt = bcm_phy_handle_interrupt, + .link_change_notify = bcm54xx_link_change_notify, ++ .suspend = bcm54xx_suspend, ++ .resume = bcm54xx_resume, + }, { + .phy_id = PHY_ID_BCM5421, + .phy_id_mask = 0xfffffff0, diff --git a/target/linux/generic/backport-6.6/800-v6.9-0001-dt-bindings-leds-Add-FUNCTION-defines-for-per-band-W.patch b/target/linux/generic/backport-6.6/800-v6.9-0001-dt-bindings-leds-Add-FUNCTION-defines-for-per-band-W.patch new file mode 100644 index 00000000000000..bf36e19fcc7c37 --- /dev/null +++ b/target/linux/generic/backport-6.6/800-v6.9-0001-dt-bindings-leds-Add-FUNCTION-defines-for-per-band-W.patch @@ -0,0 +1,34 @@ +From ec18a2a83b8b9f7e39c80105ea148c769c46227b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Wed, 17 Jan 2024 16:17:36 +0100 +Subject: [PATCH] dt-bindings: leds: Add FUNCTION defines for per-band WLANs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Most wireless routers and access points can operate in multiple bands +simultaneously. Vendors often equip their devices with per-band LEDs. + +Add defines for those very common functions to allow cleaner & clearer +bindings. + +Signed-off-by: Rafał Miłecki +Acked-by: Rob Herring +Link: https://lore.kernel.org/r/20240117151736.27440-1-zajec5@gmail.com +Signed-off-by: Lee Jones +--- + include/dt-bindings/leds/common.h | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/include/dt-bindings/leds/common.h ++++ b/include/dt-bindings/leds/common.h +@@ -101,6 +101,9 @@ + #define LED_FUNCTION_USB "usb" + #define LED_FUNCTION_WAN "wan" + #define LED_FUNCTION_WLAN "wlan" ++#define LED_FUNCTION_WLAN_2GHZ "wlan-2ghz" ++#define LED_FUNCTION_WLAN_5GHZ "wlan-5ghz" ++#define LED_FUNCTION_WLAN_6GHZ "wlan-6ghz" + #define LED_FUNCTION_WPS "wps" + + #endif /* __DT_BINDINGS_LEDS_H */ diff --git a/target/linux/generic/backport-6.6/800-v6.9-0002-dt-bindings-leds-Add-LED_FUNCTION_WAN_ONLINE-for-Int.patch b/target/linux/generic/backport-6.6/800-v6.9-0002-dt-bindings-leds-Add-LED_FUNCTION_WAN_ONLINE-for-Int.patch new file mode 100644 index 00000000000000..eabb9bbe9ad54c --- /dev/null +++ b/target/linux/generic/backport-6.6/800-v6.9-0002-dt-bindings-leds-Add-LED_FUNCTION_WAN_ONLINE-for-Int.patch @@ -0,0 +1,35 @@ +From 64e558500d2d04878b8a6d6578850c475171d6ba Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Fri, 23 Feb 2024 12:22:23 +0100 +Subject: [PATCH] dt-bindings: leds: Add LED_FUNCTION_WAN_ONLINE for Internet + access +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It's common for routers to have LED indicating link on the WAN port. + +Some devices however have an extra LED that's meant to be used if WAN +connection is actually "online" (there is Internet access available). + +It was suggested to add #define for such use case. + +Link: https://lore.kernel.org/linux-devicetree/80e92209-5578-44e7-bd4b-603a29053ddf@collabora.com/T/#u +Signed-off-by: Rafał Miłecki +Reviewed-by: AngeloGioacchino Del Regno +Link: https://lore.kernel.org/r/20240223112223.1368-1-zajec5@gmail.com +Signed-off-by: Lee Jones +--- + include/dt-bindings/leds/common.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/include/dt-bindings/leds/common.h ++++ b/include/dt-bindings/leds/common.h +@@ -100,6 +100,7 @@ + #define LED_FUNCTION_TX "tx" + #define LED_FUNCTION_USB "usb" + #define LED_FUNCTION_WAN "wan" ++#define LED_FUNCTION_WAN_ONLINE "wan-online" + #define LED_FUNCTION_WLAN "wlan" + #define LED_FUNCTION_WLAN_2GHZ "wlan-2ghz" + #define LED_FUNCTION_WLAN_5GHZ "wlan-5ghz" diff --git a/target/linux/generic/backport-6.6/816-v6.7-0002-nvmem-add-explicit-config-option-to-read-old-syntax-.patch b/target/linux/generic/backport-6.6/816-v6.7-0002-nvmem-add-explicit-config-option-to-read-old-syntax-.patch index 80c9836010eb75..12c77c17af51c3 100644 --- a/target/linux/generic/backport-6.6/816-v6.7-0002-nvmem-add-explicit-config-option-to-read-old-syntax-.patch +++ b/target/linux/generic/backport-6.6/816-v6.7-0002-nvmem-add-explicit-config-option-to-read-old-syntax-.patch @@ -132,7 +132,7 @@ Signed-off-by: Greg Kroah-Hartman imx_ocotp_nvmem_config.priv = priv; --- a/drivers/nvmem/meson-efuse.c +++ b/drivers/nvmem/meson-efuse.c -@@ -93,6 +93,7 @@ static int meson_efuse_probe(struct plat +@@ -74,6 +74,7 @@ static int meson_efuse_probe(struct plat econfig->dev = dev; econfig->name = dev_name(dev); diff --git a/target/linux/generic/backport-6.6/838-v6.9-leds-trigger-netdev-Fix-kernel-panic-on-interface-re.patch b/target/linux/generic/backport-6.6/838-v6.9-leds-trigger-netdev-Fix-kernel-panic-on-interface-re.patch deleted file mode 100644 index 8d391678ffb7c8..00000000000000 --- a/target/linux/generic/backport-6.6/838-v6.9-leds-trigger-netdev-Fix-kernel-panic-on-interface-re.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 12ce20e02e532f101b725d71c52a36c5cc8ad1e6 Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Sun, 4 Feb 2024 00:54:01 +0100 -Subject: [PATCH] leds: trigger: netdev: Fix kernel panic on interface rename - trig notify - -Commit d5e01266e7f5 ("leds: trigger: netdev: add additional specific link -speed mode") in the various changes, reworked the way to set the LINKUP -mode in commit cee4bd16c319 ("leds: trigger: netdev: Recheck -NETDEV_LED_MODE_LINKUP on dev rename") and moved it to a generic function. - -This changed the logic where, in the previous implementation the dev -from the trigger event was used to check if the carrier was ok, but in -the new implementation with the generic function, the dev in -trigger_data is used instead. - -This is problematic and cause a possible kernel panic due to the fact -that the dev in the trigger_data still reference the old one as the -new one (passed from the trigger event) still has to be hold and saved -in the trigger_data struct (done in the NETDEV_REGISTER case). - -On calling of get_device_state(), an invalid net_dev is used and this -cause a kernel panic. - -To handle this correctly, move the call to get_device_state() after the -new net_dev is correctly set in trigger_data (in the NETDEV_REGISTER -case) and correctly parse the new dev. - -Fixes: d5e01266e7f5 ("leds: trigger: netdev: add additional specific link speed mode") -Cc: stable@vger.kernel.org -Signed-off-by: Christian Marangi -Reviewed-by: Andrew Lunn -Link: https://lore.kernel.org/r/20240203235413.1146-1-ansuelsmth@gmail.com -Signed-off-by: Lee Jones ---- - drivers/leds/trigger/ledtrig-netdev.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/leds/trigger/ledtrig-netdev.c -+++ b/drivers/leds/trigger/ledtrig-netdev.c -@@ -489,12 +489,12 @@ static int netdev_trig_notify(struct not - trigger_data->duplex = DUPLEX_UNKNOWN; - switch (evt) { - case NETDEV_CHANGENAME: -- get_device_state(trigger_data); -- fallthrough; - case NETDEV_REGISTER: - dev_put(trigger_data->net_dev); - dev_hold(dev); - trigger_data->net_dev = dev; -+ if (evt == NETDEV_CHANGENAME) -+ get_device_state(trigger_data); - break; - case NETDEV_UNREGISTER: - dev_put(trigger_data->net_dev); diff --git a/target/linux/generic/config-5.15 b/target/linux/generic/config-5.15 index 5f82f0937d48e7..cf162543a8a8dc 100644 --- a/target/linux/generic/config-5.15 +++ b/target/linux/generic/config-5.15 @@ -2092,6 +2092,7 @@ CONFIG_FORTIFY_SOURCE=y # CONFIG_FRONTSWAP is not set # CONFIG_FSCACHE is not set # CONFIG_FSI is not set +# CONFIG_FSL_DPAA2_SWITCH is not set # CONFIG_FSL_EDMA is not set # CONFIG_FSL_ENETC is not set # CONFIG_FSL_ENETC_IERB is not set @@ -4139,15 +4140,12 @@ CONFIG_NET_IPGRE_BROADCAST=y CONFIG_NET_RX_BUSY_POLL=y # CONFIG_NET_SB1000 is not set CONFIG_NET_SCHED=y -# CONFIG_NET_SCH_ATM is not set # CONFIG_NET_SCH_CAKE is not set -# CONFIG_NET_SCH_CBQ is not set # CONFIG_NET_SCH_CBS is not set # CONFIG_NET_SCH_CHOKE is not set # CONFIG_NET_SCH_CODEL is not set CONFIG_NET_SCH_DEFAULT=y # CONFIG_NET_SCH_DRR is not set -# CONFIG_NET_SCH_DSMARK is not set # CONFIG_NET_SCH_ETF is not set # CONFIG_NET_SCH_ETS is not set CONFIG_NET_SCH_FIFO=y @@ -6464,6 +6462,8 @@ CONFIG_TCP_CONG_CUBIC=y # CONFIG_TCS3414 is not set # CONFIG_TCS3472 is not set # CONFIG_TEE is not set +# CONFIG_TEGRA210_ADMA is not set +# CONFIG_TEGRA_ACONNECT is not set # CONFIG_TEGRA_AHB is not set # CONFIG_TEGRA_HOST1X is not set # CONFIG_TEHUTI is not set @@ -6836,7 +6836,10 @@ CONFIG_USB_BELKIN=y # CONFIG_USB_CATC is not set # CONFIG_USB_CDC_COMPOSITE is not set # CONFIG_USB_CDNS3 is not set +# CONFIG_USB_CDNS3_IMX is not set +# CONFIG_USB_CDNS3_PCI_WRAP is not set # CONFIG_USB_CDNS_SUPPORT is not set +# CONFIG_USB_CDNSP_PCI is not set # CONFIG_USB_CHAOSKEY is not set # CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_CHIPIDEA_GENERIC is not set diff --git a/target/linux/generic/config-6.1 b/target/linux/generic/config-6.1 index 0247cf902fe040..7487ade3080be6 100644 --- a/target/linux/generic/config-6.1 +++ b/target/linux/generic/config-6.1 @@ -2182,6 +2182,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_FORCE_NR_CPUS is not set CONFIG_FORTIFY_SOURCE=y # CONFIG_FPGA is not set +# CONFIG_FPROBE is not set # CONFIG_FRAMEBUFFER_CONSOLE is not set # CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set # CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set @@ -2190,6 +2191,7 @@ CONFIG_FORTIFY_SOURCE=y # CONFIG_FRONTSWAP is not set # CONFIG_FSCACHE is not set # CONFIG_FSI is not set +# CONFIG_FSL_DPAA2_SWITCH is not set # CONFIG_FSL_EDMA is not set # CONFIG_FSL_ENETC is not set # CONFIG_FSL_ENETC_IERB is not set @@ -4298,15 +4300,12 @@ CONFIG_NET_IPGRE_BROADCAST=y CONFIG_NET_RX_BUSY_POLL=y # CONFIG_NET_SB1000 is not set CONFIG_NET_SCHED=y -# CONFIG_NET_SCH_ATM is not set # CONFIG_NET_SCH_CAKE is not set -# CONFIG_NET_SCH_CBQ is not set # CONFIG_NET_SCH_CBS is not set # CONFIG_NET_SCH_CHOKE is not set # CONFIG_NET_SCH_CODEL is not set CONFIG_NET_SCH_DEFAULT=y # CONFIG_NET_SCH_DRR is not set -# CONFIG_NET_SCH_DSMARK is not set # CONFIG_NET_SCH_ETF is not set # CONFIG_NET_SCH_ETS is not set CONFIG_NET_SCH_FIFO=y @@ -4439,6 +4438,7 @@ CONFIG_NFS_COMMON=y # CONFIG_NFS_FSCACHE is not set # CONFIG_NFS_SWAP is not set # CONFIG_NFS_V2 is not set +# CONFIG_NFSD_V2 is not set CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set # CONFIG_NFS_V4 is not set @@ -5305,6 +5305,9 @@ CONFIG_RFKILL=y # CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_RING_BUFFER_STARTUP_TEST is not set # CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set +# CONFIG_RISCV_PMU is not set +# CONFIG_RISCV_PMU_LEGACY is not set +# CONFIG_RISCV_PMU_SBI is not set # CONFIG_RMI4_CORE is not set # CONFIG_RMNET is not set # CONFIG_ROCKCHIP_PHY is not set @@ -7119,7 +7122,10 @@ CONFIG_USB_BELKIN=y # CONFIG_USB_CATC is not set # CONFIG_USB_CDC_COMPOSITE is not set # CONFIG_USB_CDNS3 is not set +# CONFIG_USB_CDNS3_IMX is not set +# CONFIG_USB_CDNS3_PCI_WRAP is not set # CONFIG_USB_CDNS_SUPPORT is not set +# CONFIG_USB_CDNSP_PCI is not set # CONFIG_USB_CHAOSKEY is not set # CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_CHIPIDEA_GENERIC is not set diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6 index b6e3c4d2483a7b..c52b4f682fdbb6 100644 --- a/target/linux/generic/config-6.6 +++ b/target/linux/generic/config-6.6 @@ -27,7 +27,6 @@ CONFIG_64BIT_TIME=y # CONFIG_ACPI_NFIT is not set # CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set # CONFIG_ACPI_TABLE_UPGRADE is not set -# CONFIG_ACPI_TOSHIBA is not set # CONFIG_ACPI_VIDEO is not set # CONFIG_AD2S1200 is not set # CONFIG_AD2S1210 is not set @@ -1346,6 +1345,8 @@ CONFIG_CRYPTO_SKCIPHER2=y # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_SM4_ARM64_CE is not set # CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set +# CONFIG_CRYPTO_SM4_ARM64_CE_CCM is not set +# CONFIG_CRYPTO_SM4_ARM64_CE_GCM is not set # CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set # CONFIG_CRYPTO_SM4_GENERIC is not set # CONFIG_CRYPTO_SPECK is not set @@ -1652,7 +1653,6 @@ CONFIG_DQL=y # CONFIG_DRM_I2C_NXP_TDA998X is not set # CONFIG_DRM_I2C_SIL164 is not set # CONFIG_DRM_I915 is not set -# CONFIG DRM_I915_GVT_KVMGT is not set # CONFIG_DRM_IMX_LCDIF is not set # CONFIG_DRM_ITE_IT6505 is not set # CONFIG_DRM_ITE_IT66121 is not set @@ -2234,6 +2234,7 @@ CONFIG_FORTIFY_SOURCE=y # CONFIG_FRONTSWAP is not set # CONFIG_FSCACHE is not set # CONFIG_FSI is not set +# CONFIG_FSL_DPAA2_SWITCH is not set # CONFIG_FSL_EDMA is not set # CONFIG_FSL_ENETC is not set # CONFIG_FSL_ENETC_IERB is not set @@ -2543,6 +2544,7 @@ CONFIG_HARDEN_EL2_VECTORS=y # CONFIG_HID_STEAM is not set # CONFIG_HID_STEELSERIES is not set # CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_SUPPORT is not set # CONFIG_HID_THINGM is not set # CONFIG_HID_THRUSTMASTER is not set # CONFIG_HID_TIVO is not set @@ -4395,15 +4397,12 @@ CONFIG_NET_IPGRE_BROADCAST=y CONFIG_NET_RX_BUSY_POLL=y # CONFIG_NET_SB1000 is not set CONFIG_NET_SCHED=y -# CONFIG_NET_SCH_ATM is not set # CONFIG_NET_SCH_CAKE is not set -# CONFIG_NET_SCH_CBQ is not set # CONFIG_NET_SCH_CBS is not set # CONFIG_NET_SCH_CHOKE is not set # CONFIG_NET_SCH_CODEL is not set CONFIG_NET_SCH_DEFAULT=y # CONFIG_NET_SCH_DRR is not set -# CONFIG_NET_SCH_DSMARK is not set # CONFIG_NET_SCH_ETF is not set # CONFIG_NET_SCH_ETS is not set CONFIG_NET_SCH_FIFO=y @@ -5357,6 +5356,7 @@ CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set # CONFIG_REGULATOR_RT4801 is not set @@ -5428,6 +5428,9 @@ CONFIG_RFKILL=y # CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_RING_BUFFER_STARTUP_TEST is not set # CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set +# CONFIG_RISCV_PMU is not set +# CONFIG_RISCV_PMU_LEGACY is not set +# CONFIG_RISCV_PMU_SBI is not set # CONFIG_RMI4_CORE is not set # CONFIG_RMNET is not set # CONFIG_ROCKCHIP_ERRATUM_3588001 is not set @@ -6046,7 +6049,6 @@ CONFIG_SERIAL_EARLYCON=y # CONFIG_SERIAL_JSM is not set # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set -# CONFIG_SERIAL_MULTI_INSTANTIATE is not set # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_SERIAL_OF_PLATFORM is not set # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set @@ -6228,16 +6230,9 @@ CONFIG_SND_DRIVERS=y # CONFIG_SND_GUSEXTREME is not set # CONFIG_SND_GUSMAX is not set # CONFIG_SND_HDA_CODEC_CS8409 is not set -# CONFIG_SND_HDA_SCODEC_CS35L41_I2C is not set -# CONFIG_SND_HDA_SCODEC_CS35L41_SPI is not set -# CONFIG_SND_HDA_SCODEC_CS35L56_I2C is not set -# CONFIG_SND_HDA_SCODEC_CS35L56_SPI is not set -# CONFIG_SND_HDA_SND_HDA_SCODEC_CS35L56_SPI is not set -# CONFIG_SND_HDA_SCODEC_TAS2781_I2C is not set # CONFIG_SND_HDA_INTEL is not set # CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set # CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set -# CONFIG_SND_HDA_CTL_DEV_ID is not set CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDA_PREALLOC_SIZE=64 # CONFIG_SND_HDSP is not set @@ -6345,11 +6340,7 @@ CONFIG_SND_PROC_FS=y # CONFIG_SND_SOC_AMD_ACP is not set # CONFIG_SND_SOC_AMD_ACP3x is not set # CONFIG_SND_SOC_AMD_ACP5x is not set -# CONFIG_SND_SOC_AMD_ACP6x is not set -# CONFIG_SND_SOC_AMD_ACP_COMMON is not set # CONFIG_SND_SOC_AMD_RENOIR is not set -# CONFIG_SND_SOC_AMD_RPL_ACP6x is not set -# CONFIG_SND_SOC_AMD_PS is not set # CONFIG_SND_SOC_AU1XAUDIO is not set # CONFIG_SND_SOC_AU1XPSC is not set # CONFIG_SND_SOC_AUDIO_IIO_AUX is not set @@ -6426,7 +6417,6 @@ CONFIG_SND_PROC_FS=y # CONFIG_SND_SOC_IMX_WM8962 is not set # CONFIG_SND_SOC_INNO_RK3036 is not set # CONFIG_SND_SOC_INTEL_APL is not set -# CONFIG_SND_SOC_INTEL_AVS is not set # CONFIG_SND_SOC_INTEL_BAYTRAIL is not set # CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH is not set # CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH is not set @@ -6770,6 +6760,7 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB_SDIOHOST is not set # CONFIG_SSB_SILENT is not set # CONFIG_SSFDC is not set +# CONFIG_SSIF_IPMI_BMC is not set # CONFIG_STACKPROTECTOR is not set # CONFIG_STACKPROTECTOR_PER_TASK is not set # CONFIG_STACKPROTECTOR_STRONG is not set @@ -7238,6 +7229,7 @@ CONFIG_TTY=y # CONFIG_TYPEC_TCPM is not set # CONFIG_TYPEC_UCSI is not set # CONFIG_TYPHOON is not set +# CONFIG_UACCE is not set # CONFIG_UACCESS_WITH_MEMCPY is not set # CONFIG_UBIFS_ATIME_SUPPORT is not set # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set @@ -7309,7 +7301,10 @@ CONFIG_USB_BELKIN=y # CONFIG_USB_CATC is not set # CONFIG_USB_CDC_COMPOSITE is not set # CONFIG_USB_CDNS3 is not set +# CONFIG_USB_CDNS3_IMX is not set +# CONFIG_USB_CDNS3_PCI_WRAP is not set # CONFIG_USB_CDNS_SUPPORT is not set +# CONFIG_USB_CDNSP_PCI is not set # CONFIG_USB_CHAOSKEY is not set # CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_CHIPIDEA_GENERIC is not set @@ -7798,7 +7793,6 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_IR_I2C is not set # CONFIG_VIDEO_ISL7998X is not set # CONFIG_VIDEO_ISP_BCM2835 is not set -# CONFIG_VIDEO_IPU3_CIO2 is not set # CONFIG_VIDEO_IVTV is not set # CONFIG_VIDEO_KS0127 is not set # CONFIG_VIDEO_LM3560 is not set diff --git a/target/linux/generic/hack-5.15/259-regmap_dynamic.patch b/target/linux/generic/hack-5.15/259-regmap_dynamic.patch index e0820ccfc0dbf3..ea06821c4bd6fe 100644 --- a/target/linux/generic/hack-5.15/259-regmap_dynamic.patch +++ b/target/linux/generic/hack-5.15/259-regmap_dynamic.patch @@ -125,7 +125,7 @@ Signed-off-by: Felix Fietkau #include #include #include -@@ -3360,3 +3361,5 @@ static int __init regmap_initcall(void) +@@ -3364,3 +3365,5 @@ static int __init regmap_initcall(void) return 0; } postcore_initcall(regmap_initcall); diff --git a/target/linux/generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch b/target/linux/generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch index aa6c668558ab93..ec887539d5446f 100644 --- a/target/linux/generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch +++ b/target/linux/generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch @@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o --- /dev/null +++ b/net/netfilter/xt_FLOWOFFLOAD.c -@@ -0,0 +1,698 @@ +@@ -0,0 +1,701 @@ +/* + * Copyright (C) 2018-2021 Felix Fietkau + * @@ -544,9 +544,14 @@ Signed-off-by: Felix Fietkau + break; + } + ++ if (!dst_hold_safe(this_dst)) ++ return -ENOENT; ++ + nf_route(xt_net(par), &other_dst, &fl, false, xt_family(par)); -+ if (!other_dst) ++ if (!other_dst) { ++ dst_release(this_dst); + return -ENOENT; ++ } + + nf_default_forward_path(route, this_dst, dir, devs); + nf_default_forward_path(route, other_dst, !dir, devs); @@ -604,6 +609,8 @@ Signed-off-by: Felix Fietkau + if (!nf_ct_is_confirmed(ct)) + return XT_CONTINUE; + ++ dir = CTINFO2DIR(ctinfo); ++ + devs[dir] = xt_out(par); + devs[!dir] = xt_in(par); + @@ -613,8 +620,6 @@ Signed-off-by: Felix Fietkau + if (test_and_set_bit(IPS_OFFLOAD_BIT, &ct->status)) + return XT_CONTINUE; + -+ dir = CTINFO2DIR(ctinfo); -+ + if (xt_flowoffload_route(skb, ct, par, &route, dir, devs) < 0) + goto err_flow_route; + @@ -622,8 +627,7 @@ Signed-off-by: Felix Fietkau + if (!flow) + goto err_flow_alloc; + -+ if (flow_offload_route_init(flow, &route) < 0) -+ goto err_flow_add; ++ flow_offload_route_init(flow, &route); + + if (tcph) { + ct->proto.tcp.seen[0].flags |= IP_CT_TCP_FLAG_BE_LIBERAL; @@ -642,13 +646,12 @@ Signed-off-by: Felix Fietkau + xt_flowoffload_check_device(table, devs[0]); + xt_flowoffload_check_device(table, devs[1]); + -+ dst_release(route.tuple[!dir].dst); -+ + return XT_CONTINUE; + +err_flow_add: + flow_offload_free(flow); +err_flow_alloc: ++ dst_release(route.tuple[dir].dst); + dst_release(route.tuple[!dir].dst); +err_flow_route: + clear_bit(IPS_OFFLOAD_BIT, &ct->status); @@ -807,7 +810,7 @@ Signed-off-by: Felix Fietkau #include #include #include -@@ -380,8 +379,7 @@ flow_offload_lookup(struct nf_flowtable +@@ -373,8 +372,7 @@ flow_offload_lookup(struct nf_flowtable } EXPORT_SYMBOL_GPL(flow_offload_lookup); @@ -817,7 +820,7 @@ Signed-off-by: Felix Fietkau void (*iter)(struct nf_flowtable *flowtable, struct flow_offload *flow, void *data), void *data) -@@ -435,6 +433,7 @@ static void nf_flow_offload_gc_step(stru +@@ -428,6 +426,7 @@ static void nf_flow_offload_gc_step(stru nf_flow_offload_stats(flow_table, flow); } } diff --git a/target/linux/generic/hack-5.15/661-kernel-ct-size-the-hashtable-more-adequately.patch b/target/linux/generic/hack-5.15/661-kernel-ct-size-the-hashtable-more-adequately.patch index 2fa91deece4b37..89074d0a04b26d 100644 --- a/target/linux/generic/hack-5.15/661-kernel-ct-size-the-hashtable-more-adequately.patch +++ b/target/linux/generic/hack-5.15/661-kernel-ct-size-the-hashtable-more-adequately.patch @@ -14,7 +14,7 @@ Signed-off-by: Rui Salvaterra --- a/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c -@@ -2738,7 +2738,7 @@ int nf_conntrack_init_start(void) +@@ -2737,7 +2737,7 @@ int nf_conntrack_init_start(void) if (!nf_conntrack_htable_size) { nf_conntrack_htable_size diff --git a/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch b/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch index ab4d636956e3db..cf8ddea255276d 100644 --- a/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch +++ b/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch @@ -77,7 +77,7 @@ Signed-off-by: Felix Fietkau INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *, u32)); INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *, -@@ -1994,9 +2008,11 @@ static void __sk_free(struct sock *sk) +@@ -2005,9 +2019,11 @@ static void __sk_free(struct sock *sk) if (likely(sk->sk_net_refcnt)) sock_inuse_add(sock_net(sk), -1); diff --git a/target/linux/generic/hack-5.15/902-debloat_proc.patch b/target/linux/generic/hack-5.15/902-debloat_proc.patch index dcdad4ca695df4..4d82317b707ffe 100644 --- a/target/linux/generic/hack-5.15/902-debloat_proc.patch +++ b/target/linux/generic/hack-5.15/902-debloat_proc.patch @@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -3889,6 +3889,8 @@ static __net_initdata struct pernet_oper +@@ -3900,6 +3900,8 @@ static __net_initdata struct pernet_oper static int __init proto_init(void) { diff --git a/target/linux/generic/hack-6.1/212-tools_portability.patch b/target/linux/generic/hack-6.1/212-tools_portability.patch index add281991e4eee..3ee4393006f977 100644 --- a/target/linux/generic/hack-6.1/212-tools_portability.patch +++ b/target/linux/generic/hack-6.1/212-tools_portability.patch @@ -340,3 +340,21 @@ Signed-off-by: Felix Fietkau else ifneq ($(CROSS_COMPILE),) # Allow userspace to override CLANG_CROSS_FLAGS to specify their own +--- a/tools/lib/string.c ++++ b/tools/lib/string.c +@@ -100,6 +100,7 @@ int strtobool(const char *s, bool *res) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wignored-attributes" + #endif ++#ifndef __APPLE__ + size_t __weak strlcpy(char *dest, const char *src, size_t size) + { + size_t ret = strlen(src); +@@ -111,6 +112,7 @@ size_t __weak strlcpy(char *dest, const + } + return ret; + } ++#endif + #ifdef __clang__ + #pragma clang diagnostic pop + #endif diff --git a/target/linux/generic/hack-6.1/650-netfilter-add-xt_FLOWOFFLOAD-target.patch b/target/linux/generic/hack-6.1/650-netfilter-add-xt_FLOWOFFLOAD-target.patch index 59a5fb4d910460..6fdfc7920700dc 100644 --- a/target/linux/generic/hack-6.1/650-netfilter-add-xt_FLOWOFFLOAD-target.patch +++ b/target/linux/generic/hack-6.1/650-netfilter-add-xt_FLOWOFFLOAD-target.patch @@ -8,7 +8,15 @@ Signed-off-by: Felix Fietkau --- a/net/netfilter/Kconfig +++ b/net/netfilter/Kconfig -@@ -1023,6 +1023,15 @@ config NETFILTER_XT_TARGET_NOTRACK +@@ -726,7 +726,6 @@ config NF_FLOW_TABLE + tristate "Netfilter flow table module" + depends on NETFILTER_INGRESS + depends on NF_CONNTRACK +- depends on NF_TABLES + help + This option adds the flow table core infrastructure. + +@@ -1023,6 +1022,15 @@ config NETFILTER_XT_TARGET_NOTRACK depends on NETFILTER_ADVANCED select NETFILTER_XT_TARGET_CT @@ -547,6 +555,8 @@ Signed-off-by: Felix Fietkau + if (!nf_ct_is_confirmed(ct)) + return XT_CONTINUE; + ++ dir = CTINFO2DIR(ctinfo); ++ + devs[dir] = xt_out(par); + devs[!dir] = xt_in(par); + @@ -556,8 +566,6 @@ Signed-off-by: Felix Fietkau + if (test_and_set_bit(IPS_OFFLOAD_BIT, &ct->status)) + return XT_CONTINUE; + -+ dir = CTINFO2DIR(ctinfo); -+ + if (xt_flowoffload_route(skb, ct, par, &route, dir, devs) < 0) + goto err_flow_route; + diff --git a/target/linux/generic/hack-6.6/650-netfilter-add-xt_FLOWOFFLOAD-target.patch b/target/linux/generic/hack-6.6/650-netfilter-add-xt_FLOWOFFLOAD-target.patch index cb7ac007b11d12..973598321299d8 100644 --- a/target/linux/generic/hack-6.6/650-netfilter-add-xt_FLOWOFFLOAD-target.patch +++ b/target/linux/generic/hack-6.6/650-netfilter-add-xt_FLOWOFFLOAD-target.patch @@ -8,7 +8,15 @@ Signed-off-by: Felix Fietkau --- a/net/netfilter/Kconfig +++ b/net/netfilter/Kconfig -@@ -1025,6 +1025,15 @@ config NETFILTER_XT_TARGET_NOTRACK +@@ -729,7 +729,6 @@ config NF_FLOW_TABLE + tristate "Netfilter flow table module" + depends on NETFILTER_INGRESS + depends on NF_CONNTRACK +- depends on NF_TABLES + help + This option adds the flow table core infrastructure. + +@@ -1025,6 +1024,15 @@ config NETFILTER_XT_TARGET_NOTRACK depends on NETFILTER_ADVANCED select NETFILTER_XT_TARGET_CT @@ -547,6 +555,8 @@ Signed-off-by: Felix Fietkau + if (!nf_ct_is_confirmed(ct)) + return XT_CONTINUE; + ++ dir = CTINFO2DIR(ctinfo); ++ + devs[dir] = xt_out(par); + devs[!dir] = xt_in(par); + @@ -556,8 +566,6 @@ Signed-off-by: Felix Fietkau + if (test_and_set_bit(IPS_OFFLOAD_BIT, &ct->status)) + return XT_CONTINUE; + -+ dir = CTINFO2DIR(ctinfo); -+ + if (xt_flowoffload_route(skb, ct, par, &route, dir, devs) < 0) + goto err_flow_route; + diff --git a/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch b/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch index 794a28b7169879..9b2ecba1c37cd7 100644 --- a/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch +++ b/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch @@ -43,7 +43,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support #define QUECTEL_VENDOR_ID 0x2c7c /* These Quectel products use Quectel's vendor ID */ -@@ -1147,6 +1152,11 @@ static const struct usb_device_id option +@@ -1152,6 +1157,11 @@ static const struct usb_device_id option { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */ .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) }, @@ -55,7 +55,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support /* Quectel products using Qualcomm vendor ID */ { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)}, { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20), -@@ -1188,6 +1198,11 @@ static const struct usb_device_id option +@@ -1193,6 +1203,11 @@ static const struct usb_device_id option .driver_info = ZLP }, { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), .driver_info = RSVD(4) }, diff --git a/target/linux/generic/hack-6.6/902-debloat_proc.patch b/target/linux/generic/hack-6.6/902-debloat_proc.patch index ea9c20c1ab4dd5..6b59fd674f0674 100644 --- a/target/linux/generic/hack-6.6/902-debloat_proc.patch +++ b/target/linux/generic/hack-6.6/902-debloat_proc.patch @@ -385,7 +385,7 @@ Signed-off-by: Felix Fietkau --- a/net/ipv4/proc.c +++ b/net/ipv4/proc.c -@@ -556,5 +556,8 @@ static __net_initdata struct pernet_oper +@@ -557,5 +557,8 @@ static __net_initdata struct pernet_oper int __init ip_misc_proc_init(void) { diff --git a/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch b/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch index e469b7229ce979..fc4fe6d6b08d4f 100644 --- a/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch +++ b/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch @@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau } --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh -@@ -257,6 +257,10 @@ kallsyms() +@@ -262,6 +262,10 @@ kallsyms() kallsymopt="${kallsymopt} --base-relative" fi diff --git a/target/linux/generic/pending-5.15/430-mtd-add-myloader-partition-parser.patch b/target/linux/generic/pending-5.15/430-mtd-add-myloader-partition-parser.patch index 8a6e6305301dc1..c7a8d9d7b7ca9c 100644 --- a/target/linux/generic/pending-5.15/430-mtd-add-myloader-partition-parser.patch +++ b/target/linux/generic/pending-5.15/430-mtd-add-myloader-partition-parser.patch @@ -16,7 +16,7 @@ Signed-off-by: Adrian Schmutzler +config MTD_MYLOADER_PARTS + tristate "MyLoader partition parsing" -+ depends on ADM5120 || ATH25 || ATH79 ++ depends on ADM5120 || ATH79 + help + MyLoader is a bootloader which allows the user to define partitions + in flash devices, by putting a table in the second erase block diff --git a/target/linux/generic/pending-5.15/540-ksmbd-only-v2-leases-handle-the-directory.patch b/target/linux/generic/pending-5.15/540-ksmbd-only-v2-leases-handle-the-directory.patch deleted file mode 100644 index 1bc0e724188d6f..00000000000000 --- a/target/linux/generic/pending-5.15/540-ksmbd-only-v2-leases-handle-the-directory.patch +++ /dev/null @@ -1,32 +0,0 @@ -From cb1d41b99e4afa062f904339666fae2578559718 Mon Sep 17 00:00:00 2001 -From: Namjae Jeon -Date: Mon, 15 Jan 2024 10:24:54 +0900 -Subject: [PATCH] ksmbd: only v2 leases handle the directory - -When smb2 leases is disable, ksmbd can send oplock break notification -and cause wait oplock break ack timeout. It may appear like hang when -accessing a directory. This patch make only v2 leases handle the -directory. - -Cc: stable@vger.kernel.org -Signed-off-by: Namjae Jeon -Signed-off-by: Steve French ---- - fs/ksmbd/oplock.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/fs/ksmbd/oplock.c -+++ b/fs/ksmbd/oplock.c -@@ -1191,6 +1191,12 @@ int smb_grant_oplock(struct ksmbd_work * - bool prev_op_has_lease; - __le32 prev_op_state = 0; - -+ /* Only v2 leases handle the directory */ -+ if (S_ISDIR(file_inode(fp->filp)->i_mode)) { -+ if (!lctx || lctx->version != 2) -+ return 0; -+ } -+ - opinfo = alloc_opinfo(work, pid, tid); - if (!opinfo) - return -ENOMEM; diff --git a/target/linux/generic/pending-5.15/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-5.15/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch index 2f6fbd59e4365e..3931278a6df481 100644 --- a/target/linux/generic/pending-5.15/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch +++ b/target/linux/generic/pending-5.15/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch @@ -275,8 +275,8 @@ Signed-off-by: Steven Barth static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb, const struct tnl_ptk_info *tpi, struct metadata_dst *tun_dst, -@@ -843,6 +969,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl - skb_reset_network_header(skb); +@@ -857,6 +983,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl + memset(skb->cb, 0, sizeof(struct inet6_skb_parm)); + if (tpi->proto == htons(ETH_P_IP) && tunnel->parms.fmrs && @@ -303,7 +303,7 @@ Signed-off-by: Steven Barth __skb_tunnel_rx(skb, tunnel->dev, tunnel->net); err = dscp_ecn_decapsulate(tunnel, ipv6h, skb); -@@ -994,6 +1141,7 @@ static void init_tel_txopt(struct ipv6_t +@@ -1004,6 +1151,7 @@ static void init_tel_txopt(struct ipv6_t opt->ops.opt_nflen = 8; } @@ -311,7 +311,7 @@ Signed-off-by: Steven Barth /** * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own * @t: the outgoing tunnel device -@@ -1274,6 +1422,7 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str +@@ -1284,6 +1432,7 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str u8 protocol) { struct ip6_tnl *t = netdev_priv(dev); @@ -319,7 +319,7 @@ Signed-off-by: Steven Barth struct ipv6hdr *ipv6h; const struct iphdr *iph; int encap_limit = -1; -@@ -1373,6 +1522,18 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str +@@ -1383,6 +1532,18 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); dsfield = INET_ECN_encapsulate(dsfield, orig_dsfield); @@ -338,7 +338,7 @@ Signed-off-by: Steven Barth if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6)) return -1; -@@ -1526,6 +1687,14 @@ ip6_tnl_change(struct ip6_tnl *t, const +@@ -1536,6 +1697,14 @@ ip6_tnl_change(struct ip6_tnl *t, const t->parms.link = p->link; t->parms.proto = p->proto; t->parms.fwmark = p->fwmark; @@ -353,7 +353,7 @@ Signed-off-by: Steven Barth dst_cache_reset(&t->dst_cache); ip6_tnl_link_config(t); return 0; -@@ -1564,6 +1733,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ +@@ -1574,6 +1743,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ p->flowinfo = u->flowinfo; p->link = u->link; p->proto = u->proto; @@ -361,7 +361,7 @@ Signed-off-by: Steven Barth memcpy(p->name, u->name, sizeof(u->name)); } -@@ -1950,6 +2120,15 @@ static int ip6_tnl_validate(struct nlatt +@@ -1960,6 +2130,15 @@ static int ip6_tnl_validate(struct nlatt return 0; } @@ -377,7 +377,7 @@ Signed-off-by: Steven Barth static void ip6_tnl_netlink_parms(struct nlattr *data[], struct __ip6_tnl_parm *parms) { -@@ -1987,6 +2166,46 @@ static void ip6_tnl_netlink_parms(struct +@@ -1997,6 +2176,46 @@ static void ip6_tnl_netlink_parms(struct if (data[IFLA_IPTUN_FWMARK]) parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]); @@ -424,7 +424,7 @@ Signed-off-by: Steven Barth } static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[], -@@ -2102,6 +2321,12 @@ static void ip6_tnl_dellink(struct net_d +@@ -2112,6 +2331,12 @@ static void ip6_tnl_dellink(struct net_d static size_t ip6_tnl_get_size(const struct net_device *dev) { @@ -437,7 +437,7 @@ Signed-off-by: Steven Barth return /* IFLA_IPTUN_LINK */ nla_total_size(4) + -@@ -2131,6 +2356,24 @@ static size_t ip6_tnl_get_size(const str +@@ -2141,6 +2366,24 @@ static size_t ip6_tnl_get_size(const str nla_total_size(0) + /* IFLA_IPTUN_FWMARK */ nla_total_size(4) + @@ -462,7 +462,7 @@ Signed-off-by: Steven Barth 0; } -@@ -2138,6 +2381,9 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2148,6 +2391,9 @@ static int ip6_tnl_fill_info(struct sk_b { struct ip6_tnl *tunnel = netdev_priv(dev); struct __ip6_tnl_parm *parm = &tunnel->parms; @@ -472,7 +472,7 @@ Signed-off-by: Steven Barth if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) || nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) || -@@ -2147,9 +2393,27 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2157,9 +2403,27 @@ static int ip6_tnl_fill_info(struct sk_b nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) || nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) || nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) || @@ -501,7 +501,7 @@ Signed-off-by: Steven Barth if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) || nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) || nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) || -@@ -2189,6 +2453,7 @@ static const struct nla_policy ip6_tnl_p +@@ -2199,6 +2463,7 @@ static const struct nla_policy ip6_tnl_p [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 }, [IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG }, [IFLA_IPTUN_FWMARK] = { .type = NLA_U32 }, diff --git a/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 071a2ed3e5e013..4c97d8b9ec5a02 100644 --- a/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -6298,6 +6329,8 @@ static int ip6_route_dev_notify(struct n +@@ -6291,6 +6322,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -6309,6 +6342,7 @@ static int ip6_route_dev_notify(struct n +@@ -6302,6 +6335,7 @@ static int ip6_route_dev_notify(struct n in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); #ifdef CONFIG_IPV6_MULTIPLE_TABLES in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); #endif } -@@ -6500,6 +6534,8 @@ static int __net_init ip6_route_net_init +@@ -6493,6 +6527,8 @@ static int __net_init ip6_route_net_init #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.fib6_has_custom_rules = false; @@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, sizeof(*net->ipv6.ip6_prohibit_entry), GFP_KERNEL); -@@ -6510,11 +6546,21 @@ static int __net_init ip6_route_net_init +@@ -6503,11 +6539,21 @@ static int __net_init ip6_route_net_init ip6_template_metrics, true); INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached); @@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); -@@ -6541,6 +6587,8 @@ out: +@@ -6534,6 +6580,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -6560,6 +6608,7 @@ static void __net_exit ip6_route_net_exi +@@ -6553,6 +6601,7 @@ static void __net_exit ip6_route_net_exi kfree(net->ipv6.ip6_null_entry); #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); @@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski kfree(net->ipv6.ip6_blk_hole_entry); #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); -@@ -6643,6 +6692,9 @@ void __init ip6_route_init_special_entri +@@ -6636,6 +6685,9 @@ void __init ip6_route_init_special_entri init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index c6a6c6e7978e9c..66fd6efed5cecf 100644 --- a/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -8091,6 +8094,48 @@ static void __netdev_adjacent_dev_unlink +@@ -8094,6 +8097,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info, -@@ -8142,6 +8187,7 @@ static int __netdev_upper_dev_link(struc +@@ -8145,6 +8190,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -8238,6 +8284,7 @@ static void __netdev_upper_dev_unlink(st +@@ -8241,6 +8287,7 @@ static void __netdev_upper_dev_unlink(st __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); -@@ -9057,6 +9104,7 @@ int dev_set_mac_address(struct net_devic +@@ -9060,6 +9107,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-5.15/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch b/target/linux/generic/pending-5.15/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch index 606e0535137a28..8c755540338321 100644 --- a/target/linux/generic/pending-5.15/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch +++ b/target/linux/generic/pending-5.15/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch @@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso --- a/net/netfilter/nf_flow_table_core.c +++ b/net/netfilter/nf_flow_table_core.c -@@ -613,13 +613,41 @@ void nf_flow_table_free(struct nf_flowta +@@ -606,13 +606,41 @@ void nf_flow_table_free(struct nf_flowta } EXPORT_SYMBOL_GPL(nf_flow_table_free); @@ -55,7 +55,7 @@ Signed-off-by: Pablo Neira Ayuso --- a/net/netfilter/nft_flow_offload.c +++ b/net/netfilter/nft_flow_offload.c -@@ -446,47 +446,14 @@ static struct nft_expr_type nft_flow_off +@@ -455,47 +455,14 @@ static struct nft_expr_type nft_flow_off .owner = THIS_MODULE, }; diff --git a/target/linux/generic/pending-5.15/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch b/target/linux/generic/pending-5.15/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch index 892887c423663f..70aee30eb68e1c 100644 --- a/target/linux/generic/pending-5.15/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch +++ b/target/linux/generic/pending-5.15/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch @@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c -@@ -7752,7 +7752,7 @@ static int nft_register_flowtable_net_ho +@@ -7770,7 +7770,7 @@ static int nft_register_flowtable_net_ho err = flowtable->data.type->setup(&flowtable->data, hook->ops.dev, FLOW_BLOCK_BIND); diff --git a/target/linux/generic/pending-5.15/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch b/target/linux/generic/pending-5.15/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch index ca42728784e081..67cff4d22bac1b 100644 --- a/target/linux/generic/pending-5.15/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch +++ b/target/linux/generic/pending-5.15/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -3100,8 +3100,8 @@ static irqreturn_t mtk_handle_irq_rx(int +@@ -3099,8 +3099,8 @@ static irqreturn_t mtk_handle_irq_rx(int eth->rx_events++; if (likely(napi_schedule_prep(ð->rx_napi))) { @@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau } return IRQ_HANDLED; -@@ -3113,8 +3113,8 @@ static irqreturn_t mtk_handle_irq_tx(int +@@ -3112,8 +3112,8 @@ static irqreturn_t mtk_handle_irq_tx(int eth->tx_events++; if (likely(napi_schedule_prep(ð->tx_napi))) { @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau } return IRQ_HANDLED; -@@ -4888,6 +4888,8 @@ static int mtk_probe(struct platform_dev +@@ -4887,6 +4887,8 @@ static int mtk_probe(struct platform_dev * for NAPI to work */ init_dummy_netdev(ð->dummy_dev); diff --git a/target/linux/generic/pending-5.15/723-net-mt7531-ensure-all-MACs-are-powered-down-before-r.patch b/target/linux/generic/pending-5.15/723-net-mt7531-ensure-all-MACs-are-powered-down-before-r.patch index 4ff7f321de93e8..f10fa057d57f21 100644 --- a/target/linux/generic/pending-5.15/723-net-mt7531-ensure-all-MACs-are-powered-down-before-r.patch +++ b/target/linux/generic/pending-5.15/723-net-mt7531-ensure-all-MACs-are-powered-down-before-r.patch @@ -15,7 +15,7 @@ Signed-off-by: Alexander Couzens --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2422,7 +2422,7 @@ mt7531_setup(struct dsa_switch *ds) +@@ -2467,7 +2467,7 @@ mt7531_setup(struct dsa_switch *ds) struct mt7530_priv *priv = ds->priv; struct mt7530_dummy_poll p; u32 val, id; @@ -24,7 +24,7 @@ Signed-off-by: Alexander Couzens /* Reset whole chip through gpio pin or memory-mapped registers for * different type of hardware -@@ -2454,6 +2454,10 @@ mt7531_setup(struct dsa_switch *ds) +@@ -2499,6 +2499,10 @@ mt7531_setup(struct dsa_switch *ds) return -ENODEV; } diff --git a/target/linux/generic/pending-5.15/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch b/target/linux/generic/pending-5.15/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch index c9c9d13c955a12..56edb63234539e 100644 --- a/target/linux/generic/pending-5.15/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch +++ b/target/linux/generic/pending-5.15/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch @@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1517,12 +1517,28 @@ static void mtk_wake_queue(struct mtk_et +@@ -1516,12 +1516,28 @@ static void mtk_wake_queue(struct mtk_et } } @@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau bool gso = false; int tx_num; -@@ -1544,6 +1560,18 @@ static netdev_tx_t mtk_start_xmit(struct +@@ -1543,6 +1559,18 @@ static netdev_tx_t mtk_start_xmit(struct return NETDEV_TX_BUSY; } @@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau /* TSO: fill MSS info in tcp checksum field */ if (skb_is_gso(skb)) { if (skb_cow_head(skb, 0)) { -@@ -1559,8 +1587,14 @@ static netdev_tx_t mtk_start_xmit(struct +@@ -1558,8 +1586,14 @@ static netdev_tx_t mtk_start_xmit(struct } } diff --git a/target/linux/generic/pending-5.15/732-03-net-ethernet-mtk_eth_soc-fix-remaining-throughput-re.patch b/target/linux/generic/pending-5.15/732-03-net-ethernet-mtk_eth_soc-fix-remaining-throughput-re.patch index 82a76b569ea64b..cc6c9e91bf7294 100644 --- a/target/linux/generic/pending-5.15/732-03-net-ethernet-mtk_eth_soc-fix-remaining-throughput-re.patch +++ b/target/linux/generic/pending-5.15/732-03-net-ethernet-mtk_eth_soc-fix-remaining-throughput-re.patch @@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -724,6 +724,7 @@ static void mtk_mac_link_up(struct phyli +@@ -723,6 +723,7 @@ static void mtk_mac_link_up(struct phyli MAC_MCR_FORCE_RX_FC); /* Configure speed */ @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau switch (speed) { case SPEED_2500: case SPEED_1000: -@@ -3293,6 +3294,9 @@ found: +@@ -3292,6 +3293,9 @@ found: if (dp->index >= MTK_QDMA_NUM_QUEUES) return NOTIFY_DONE; diff --git a/target/linux/generic/pending-5.15/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch b/target/linux/generic/pending-5.15/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch index 29f565d312b0b7..61c23da821a491 100644 --- a/target/linux/generic/pending-5.15/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch +++ b/target/linux/generic/pending-5.15/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch @@ -387,24 +387,25 @@ Signed-off-by: Daniel Golle return; err_phy: -@@ -634,10 +698,13 @@ static void mtk_mac_link_down(struct phy +@@ -633,10 +697,14 @@ static void mtk_mac_link_down(struct phy { struct mtk_mac *mac = container_of(config, struct mtk_mac, phylink_config); - u32 mcr = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); -- mcr &= ~(MAC_MCR_TX_EN | MAC_MCR_RX_EN); +- mcr &= ~(MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK); - mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id)); + if (!mtk_interface_mode_is_xgmii(interface)) { -+ mtk_m32(mac->hw, MAC_MCR_TX_EN | MAC_MCR_RX_EN, 0, MTK_MAC_MCR(mac->id)); -+ mtk_m32(mac->hw, MTK_XGMAC_FORCE_LINK(mac->id), 0, MTK_XGMAC_STS(mac->id)); ++ mtk_m32(mac->hw, MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK, 0, MTK_MAC_MCR(mac->id)); ++ if (mtk_is_netsys_v3_or_greater(eth)) ++ mtk_m32(mac->hw, MTK_XGMAC_FORCE_LINK(mac->id), 0, MTK_XGMAC_STS(mac->id)); + } else if (mac->id != MTK_GMAC1_ID) { + mtk_m32(mac->hw, XMAC_MCR_TRX_DISABLE, XMAC_MCR_TRX_DISABLE, MTK_XMAC_MCR(mac->id)); + } } static void mtk_set_queue_speed(struct mtk_eth *eth, unsigned int idx, -@@ -709,13 +776,11 @@ static void mtk_set_queue_speed(struct m +@@ -708,13 +776,11 @@ static void mtk_set_queue_speed(struct m mtk_w32(eth, val, soc->reg_map->qdma.qtx_sch + ofs); } @@ -422,7 +423,7 @@ Signed-off-by: Daniel Golle u32 mcr; mcr = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); -@@ -749,6 +814,55 @@ static void mtk_mac_link_up(struct phyli +@@ -748,6 +814,55 @@ static void mtk_mac_link_up(struct phyli mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id)); } @@ -478,7 +479,7 @@ Signed-off-by: Daniel Golle static const struct phylink_mac_ops mtk_phylink_ops = { .validate = phylink_generic_validate, .mac_select_pcs = mtk_mac_select_pcs, -@@ -4563,8 +4677,21 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4562,8 +4677,21 @@ static int mtk_add_mac(struct mtk_eth *e phy_interface_zero(mac->phylink_config.supported_interfaces); __set_bit(PHY_INTERFACE_MODE_INTERNAL, mac->phylink_config.supported_interfaces); @@ -500,7 +501,7 @@ Signed-off-by: Daniel Golle phylink = phylink_create(&mac->phylink_config, of_fwnode_handle(mac->of_node), phy_mode, &mtk_phylink_ops); -@@ -4757,6 +4884,13 @@ static int mtk_probe(struct platform_dev +@@ -4756,6 +4884,13 @@ static int mtk_probe(struct platform_dev if (err) return err; diff --git a/target/linux/generic/pending-5.15/750-skb-Do-mix-page-pool-and-page-referenced-frags-in-GR.patch b/target/linux/generic/pending-5.15/750-skb-Do-mix-page-pool-and-page-referenced-frags-in-GR.patch index 2a57a7ef03505a..8e2f3a9475d7cb 100644 --- a/target/linux/generic/pending-5.15/750-skb-Do-mix-page-pool-and-page-referenced-frags-in-GR.patch +++ b/target/linux/generic/pending-5.15/750-skb-Do-mix-page-pool-and-page-referenced-frags-in-GR.patch @@ -17,7 +17,7 @@ Signed-off-by: Alexander Duyck --- a/net/core/skbuff.c +++ b/net/core/skbuff.c -@@ -4358,6 +4358,15 @@ int skb_gro_receive(struct sk_buff *p, s +@@ -4359,6 +4359,15 @@ int skb_gro_receive(struct sk_buff *p, s if (unlikely(p->len + len >= 65536 || NAPI_GRO_CB(skb)->flush)) return -E2BIG; diff --git a/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch b/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch index c8d0bc69f93783..a10a867d60fe4e 100644 --- a/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch +++ b/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch @@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau void netif_napi_add(struct net_device *dev, struct napi_struct *napi, int (*poll)(struct napi_struct *, int), int weight) { -@@ -11381,6 +11456,9 @@ static int dev_cpu_dead(unsigned int old +@@ -11384,6 +11459,9 @@ static int dev_cpu_dead(unsigned int old raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); @@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau #ifdef CONFIG_RPS remsd = oldsd->rps_ipi_list; oldsd->rps_ipi_list = NULL; -@@ -11720,6 +11798,7 @@ static int __init net_dev_init(void) +@@ -11723,6 +11801,7 @@ static int __init net_dev_init(void) sd->cpu = i; #endif diff --git a/target/linux/generic/pending-5.15/790-bus-mhi-core-add-SBL-state-callback.patch b/target/linux/generic/pending-5.15/790-bus-mhi-core-add-SBL-state-callback.patch index 2f728fefd73e0c..6402dd9066aad3 100644 --- a/target/linux/generic/pending-5.15/790-bus-mhi-core-add-SBL-state-callback.patch +++ b/target/linux/generic/pending-5.15/790-bus-mhi-core-add-SBL-state-callback.patch @@ -20,7 +20,7 @@ Signed-off-by: Robert Marko --- a/drivers/bus/mhi/host/main.c +++ b/drivers/bus/mhi/host/main.c -@@ -891,6 +891,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_ +@@ -896,6 +896,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_ switch (event) { case MHI_EE_SBL: st = DEV_ST_TRANSITION_SBL; diff --git a/target/linux/generic/pending-5.15/795-mt7530-register-OF-node-for-internal-MDIO-bus.patch b/target/linux/generic/pending-5.15/795-mt7530-register-OF-node-for-internal-MDIO-bus.patch index 98fd6e9c7a7c1d..b0c01853350653 100644 --- a/target/linux/generic/pending-5.15/795-mt7530-register-OF-node-for-internal-MDIO-bus.patch +++ b/target/linux/generic/pending-5.15/795-mt7530-register-OF-node-for-internal-MDIO-bus.patch @@ -16,7 +16,7 @@ Signed-off-by: David Bauer --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2129,10 +2129,13 @@ mt7530_setup_mdio(struct mt7530_priv *pr +@@ -2174,10 +2174,13 @@ mt7530_setup_mdio(struct mt7530_priv *pr { struct dsa_switch *ds = priv->ds; struct device *dev = priv->dev; @@ -30,7 +30,7 @@ Signed-off-by: David Bauer bus = devm_mdiobus_alloc(dev); if (!bus) return -ENOMEM; -@@ -2149,7 +2152,9 @@ mt7530_setup_mdio(struct mt7530_priv *pr +@@ -2194,7 +2197,9 @@ mt7530_setup_mdio(struct mt7530_priv *pr if (priv->irq) mt7530_setup_mdio_irq(priv); diff --git a/target/linux/generic/pending-5.15/796-net-dsa-mt7530-fix-10M-100M-speed-on-MT7988-switch.patch b/target/linux/generic/pending-5.15/796-net-dsa-mt7530-fix-10M-100M-speed-on-MT7988-switch.patch index f2e91d3fe5fe23..0f97033db65633 100644 --- a/target/linux/generic/pending-5.15/796-net-dsa-mt7530-fix-10M-100M-speed-on-MT7988-switch.patch +++ b/target/linux/generic/pending-5.15/796-net-dsa-mt7530-fix-10M-100M-speed-on-MT7988-switch.patch @@ -33,7 +33,7 @@ Signed-off-by: Daniel Golle --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2832,8 +2832,7 @@ static void mt753x_phylink_mac_link_up(s +@@ -2877,8 +2877,7 @@ static void mt753x_phylink_mac_link_up(s /* MT753x MAC works in 1G full duplex mode for all up-clocked * variants. */ diff --git a/target/linux/generic/pending-5.15/810-pci_disable_common_quirks.patch b/target/linux/generic/pending-5.15/810-pci_disable_common_quirks.patch index 153b5d06cfde42..f7f16ee37d7ed0 100644 --- a/target/linux/generic/pending-5.15/810-pci_disable_common_quirks.patch +++ b/target/linux/generic/pending-5.15/810-pci_disable_common_quirks.patch @@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos /* * The Mellanox Tavor device gives false positive parity errors. Disable * parity error reporting. -@@ -3365,6 +3366,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I +@@ -3368,6 +3369,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata); @@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos /* * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. * To work around this, query the size it should be configured to by the -@@ -3390,6 +3393,8 @@ static void quirk_intel_ntb(struct pci_d +@@ -3393,6 +3396,8 @@ static void quirk_intel_ntb(struct pci_d DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb); @@ -51,7 +51,7 @@ Signed-off-by: Gabor Juhos /* * Some BIOS implementations leave the Intel GPU interrupts enabled, even * though no one is handling them (e.g., if the i915 driver is never -@@ -3428,6 +3433,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN +@@ -3431,6 +3436,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); diff --git a/target/linux/generic/pending-5.15/920-mangle_bootargs.patch b/target/linux/generic/pending-5.15/920-mangle_bootargs.patch index 5f2bb8c37f446a..a8c084b98004dc 100644 --- a/target/linux/generic/pending-5.15/920-mangle_bootargs.patch +++ b/target/linux/generic/pending-5.15/920-mangle_bootargs.patch @@ -31,7 +31,7 @@ Signed-off-by: Imre Kaloz help --- a/init/main.c +++ b/init/main.c -@@ -618,6 +618,29 @@ static inline void setup_nr_cpu_ids(void +@@ -619,6 +619,29 @@ static inline void setup_nr_cpu_ids(void static inline void smp_prepare_cpus(unsigned int maxcpus) { } #endif @@ -61,7 +61,7 @@ Signed-off-by: Imre Kaloz /* * We need to store the untouched command line for future reference. * We also need to store the touched command line since the parameter -@@ -957,6 +980,7 @@ asmlinkage __visible void __init __no_sa +@@ -958,6 +981,7 @@ asmlinkage __visible void __init __no_sa pr_notice("%s", linux_banner); early_security_init(); setup_arch(&command_line); diff --git a/target/linux/generic/pending-6.1/430-mtd-add-myloader-partition-parser.patch b/target/linux/generic/pending-6.1/430-mtd-add-myloader-partition-parser.patch index c8cf3f5d3be58e..35e80d6dcc95b5 100644 --- a/target/linux/generic/pending-6.1/430-mtd-add-myloader-partition-parser.patch +++ b/target/linux/generic/pending-6.1/430-mtd-add-myloader-partition-parser.patch @@ -16,7 +16,7 @@ Signed-off-by: Adrian Schmutzler +config MTD_MYLOADER_PARTS + tristate "MyLoader partition parsing" -+ depends on ADM5120 || ATH25 || ATH79 ++ depends on ADM5120 || ATH79 + help + MyLoader is a bootloader which allows the user to define partitions + in flash devices, by putting a table in the second erase block diff --git a/target/linux/generic/pending-6.1/510-block-add-uImage.FIT-subimage-block-driver.patch b/target/linux/generic/pending-6.1/510-block-add-uImage.FIT-subimage-block-driver.patch index 54234caf949651..f88136541f7100 100644 --- a/target/linux/generic/pending-6.1/510-block-add-uImage.FIT-subimage-block-driver.patch +++ b/target/linux/generic/pending-6.1/510-block-add-uImage.FIT-subimage-block-driver.patch @@ -36,7 +36,7 @@ Signed-off-by: Daniel Golle --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -21052,6 +21052,12 @@ F: Documentation/filesystems/ubifs-authe +@@ -21059,6 +21059,12 @@ F: Documentation/filesystems/ubifs-authe F: Documentation/filesystems/ubifs.rst F: fs/ubifs/ diff --git a/target/linux/generic/pending-6.1/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-6.1/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 72e8de2f1d1c30..78000a1cd25f0e 100644 --- a/target/linux/generic/pending-6.1/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-6.1/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -6287,6 +6318,8 @@ static int ip6_route_dev_notify(struct n +@@ -6280,6 +6311,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -6298,6 +6331,7 @@ static int ip6_route_dev_notify(struct n +@@ -6291,6 +6324,7 @@ static int ip6_route_dev_notify(struct n in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); #ifdef CONFIG_IPV6_MULTIPLE_TABLES in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); #endif } -@@ -6489,6 +6523,8 @@ static int __net_init ip6_route_net_init +@@ -6482,6 +6516,8 @@ static int __net_init ip6_route_net_init #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.fib6_has_custom_rules = false; @@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, sizeof(*net->ipv6.ip6_prohibit_entry), GFP_KERNEL); -@@ -6499,11 +6535,21 @@ static int __net_init ip6_route_net_init +@@ -6492,11 +6528,21 @@ static int __net_init ip6_route_net_init ip6_template_metrics, true); INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached); @@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); -@@ -6530,6 +6576,8 @@ out: +@@ -6523,6 +6569,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -6549,6 +6597,7 @@ static void __net_exit ip6_route_net_exi +@@ -6542,6 +6590,7 @@ static void __net_exit ip6_route_net_exi kfree(net->ipv6.ip6_null_entry); #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); @@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski kfree(net->ipv6.ip6_blk_hole_entry); #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); -@@ -6632,6 +6681,9 @@ void __init ip6_route_init_special_entri +@@ -6625,6 +6674,9 @@ void __init ip6_route_init_special_entri init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/generic/pending-6.1/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch b/target/linux/generic/pending-6.1/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch index 757c0b24498ea6..4c3ac8ee0758f0 100644 --- a/target/linux/generic/pending-6.1/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch +++ b/target/linux/generic/pending-6.1/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch @@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c -@@ -7911,7 +7911,7 @@ static int nft_register_flowtable_net_ho +@@ -7918,7 +7918,7 @@ static int nft_register_flowtable_net_ho err = flowtable->data.type->setup(&flowtable->data, hook->ops.dev, FLOW_BLOCK_BIND); diff --git a/target/linux/generic/pending-6.1/735-net-mediatek-mtk_eth_soc-release-MAC_MCR_FORCE_LINK-.patch b/target/linux/generic/pending-6.1/735-net-mediatek-mtk_eth_soc-release-MAC_MCR_FORCE_LINK-.patch new file mode 100644 index 00000000000000..2f7d29b84d495a --- /dev/null +++ b/target/linux/generic/pending-6.1/735-net-mediatek-mtk_eth_soc-release-MAC_MCR_FORCE_LINK-.patch @@ -0,0 +1,50 @@ +From ef5976ae4e117fae9a61bb3c0f8319a917a425ea Mon Sep 17 00:00:00 2001 +From: Daniel Golle +Date: Mon, 11 Mar 2024 17:43:28 +0000 +Subject: [PATCH] net: mediatek: mtk_eth_soc: release MAC_MCR_FORCE_LINK only when MAC is up +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Clearing bit MAC_MCR_FORCE_LINK which forces the link down too early +can result in MAC ending up in a broken/blocked state. + +Fix this by handling this bit in the .mac_link_up and .mac_link_down +calls instead of in .mac_finish. + +Fixes: b8fc9f30821ec ("net: ethernet: mediatek: Add basic PHYLINK support") +Signed-off-by: Daniel Golle +--- + drivers/net/ethernet/mediatek/mtk_eth_soc.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c ++++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +@@ -662,8 +662,7 @@ static int mtk_mac_finish(struct phylink + mcr_cur = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); + mcr_new = mcr_cur; + mcr_new |= MAC_MCR_IPG_CFG | MAC_MCR_FORCE_MODE | +- MAC_MCR_BACKOFF_EN | MAC_MCR_BACKPR_EN | MAC_MCR_FORCE_LINK | +- MAC_MCR_RX_FIFO_CLR_DIS; ++ MAC_MCR_BACKOFF_EN | MAC_MCR_BACKPR_EN | MAC_MCR_RX_FIFO_CLR_DIS; + + /* Only update control register when needed! */ + if (mcr_new != mcr_cur) +@@ -679,7 +678,7 @@ static void mtk_mac_link_down(struct phy + phylink_config); + u32 mcr = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); + +- mcr &= ~(MAC_MCR_TX_EN | MAC_MCR_RX_EN); ++ mcr &= ~(MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK); + mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id)); + } + +@@ -788,7 +787,7 @@ static void mtk_mac_link_up(struct phyli + if (rx_pause) + mcr |= MAC_MCR_FORCE_RX_FC; + +- mcr |= MAC_MCR_TX_EN | MAC_MCR_RX_EN; ++ mcr |= MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK; + mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id)); + } + diff --git a/target/linux/generic/pending-6.1/736-net-ethernet-mtk_eth_soc-fix-PPE-hanging-issue.patch b/target/linux/generic/pending-6.1/736-net-ethernet-mtk_eth_soc-fix-PPE-hanging-issue.patch new file mode 100644 index 00000000000000..3b190c180158d7 --- /dev/null +++ b/target/linux/generic/pending-6.1/736-net-ethernet-mtk_eth_soc-fix-PPE-hanging-issue.patch @@ -0,0 +1,59 @@ +From c8262ebbf7ca546dd5ead3c0383a89eb401627ff Mon Sep 17 00:00:00 2001 +From: Daniel Golle +Date: Wed, 13 Mar 2024 17:55:02 +0000 +Subject: [PATCH] net: ethernet: mtk_eth_soc: fix PPE hanging issue + +A patch to resolve an issue was found in MediaTek's GPL-licensed SDK: +In the mtk_ppe_stop() function, the PPE scan mode is not disabled before +disabling the PPE. This can potentially lead to a hang during the process +of disabling the PPE. + +Without this patch, the PPE may experience a hang during the reboot test. + +Reference: https://git01.mediatek.com/plugins/gitiles/openwrt/feeds/mtk-openwrt-feeds/+/b40da332dfe763932a82f9f62a4709457a15dd6c + +Suggested-by: Bc-bocun Chen +Signed-off-by: Daniel Golle +--- + drivers/net/ethernet/mediatek/mtk_ppe.c | 18 +++++++++++------- + 1 file changed, 11 insertions(+), 7 deletions(-) + +--- a/drivers/net/ethernet/mediatek/mtk_ppe.c ++++ b/drivers/net/ethernet/mediatek/mtk_ppe.c +@@ -1002,7 +1002,7 @@ void mtk_ppe_start(struct mtk_ppe *ppe) + MTK_PPE_KEEPALIVE_DISABLE) | + FIELD_PREP(MTK_PPE_TB_CFG_HASH_MODE, 1) | + FIELD_PREP(MTK_PPE_TB_CFG_SCAN_MODE, +- MTK_PPE_SCAN_MODE_KEEPALIVE_AGE) | ++ MTK_PPE_SCAN_MODE_CHECK_AGE) | + FIELD_PREP(MTK_PPE_TB_CFG_ENTRY_NUM, + MTK_PPE_ENTRIES_SHIFT); + if (mtk_is_netsys_v2_or_greater(ppe->eth)) +@@ -1098,17 +1098,21 @@ int mtk_ppe_stop(struct mtk_ppe *ppe) + + mtk_ppe_cache_enable(ppe, false); + +- /* disable offload engine */ +- ppe_clear(ppe, MTK_PPE_GLO_CFG, MTK_PPE_GLO_CFG_EN); +- ppe_w32(ppe, MTK_PPE_FLOW_CFG, 0); +- + /* disable aging */ + val = MTK_PPE_TB_CFG_AGE_NON_L4 | + MTK_PPE_TB_CFG_AGE_UNBIND | + MTK_PPE_TB_CFG_AGE_TCP | + MTK_PPE_TB_CFG_AGE_UDP | +- MTK_PPE_TB_CFG_AGE_TCP_FIN; ++ MTK_PPE_TB_CFG_AGE_TCP_FIN | ++ MTK_PPE_TB_CFG_SCAN_MODE; + ppe_clear(ppe, MTK_PPE_TB_CFG, val); + +- return mtk_ppe_wait_busy(ppe); ++ if (mtk_ppe_wait_busy(ppe)) ++ return -ETIMEDOUT; ++ ++ /* disable offload engine */ ++ ppe_clear(ppe, MTK_PPE_GLO_CFG, MTK_PPE_GLO_CFG_EN); ++ ppe_w32(ppe, MTK_PPE_FLOW_CFG, 0); ++ ++ return 0; + } diff --git a/target/linux/generic/pending-6.1/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch b/target/linux/generic/pending-6.1/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch index afe561ab31f5cf..2b379c915867d9 100644 --- a/target/linux/generic/pending-6.1/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch +++ b/target/linux/generic/pending-6.1/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch @@ -1,4 +1,4 @@ -From 91bda2f441f9e37273922028ffc48ce8e91bf5bd Mon Sep 17 00:00:00 2001 +From d5e337e7aecc2e1cc9e96768062610adb95f8f72 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Tue, 12 Dec 2023 03:51:14 +0000 Subject: [PATCH] net: ethernet: mtk_eth_soc: add paths and SerDes modes for @@ -19,9 +19,9 @@ modes. Signed-off-by: Daniel Golle --- drivers/net/ethernet/mediatek/mtk_eth_path.c | 122 +++++++- - drivers/net/ethernet/mediatek/mtk_eth_soc.c | 291 +++++++++++++++++-- + drivers/net/ethernet/mediatek/mtk_eth_soc.c | 292 +++++++++++++++++-- drivers/net/ethernet/mediatek/mtk_eth_soc.h | 107 ++++++- - 3 files changed, 469 insertions(+), 51 deletions(-) + 3 files changed, 470 insertions(+), 51 deletions(-) --- a/drivers/net/ethernet/mediatek/mtk_eth_path.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_path.c @@ -390,24 +390,25 @@ Signed-off-by: Daniel Golle /* Enable SGMII */ if (interface == PHY_INTERFACE_MODE_SGMII || phy_interface_mode_is_8023z(interface)) -@@ -677,10 +762,13 @@ static void mtk_mac_link_down(struct phy +@@ -676,10 +761,14 @@ static void mtk_mac_link_down(struct phy { struct mtk_mac *mac = container_of(config, struct mtk_mac, phylink_config); - u32 mcr = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); -- mcr &= ~(MAC_MCR_TX_EN | MAC_MCR_RX_EN); +- mcr &= ~(MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK); - mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id)); + if (!mtk_interface_mode_is_xgmii(interface)) { -+ mtk_m32(mac->hw, MAC_MCR_TX_EN | MAC_MCR_RX_EN, 0, MTK_MAC_MCR(mac->id)); -+ mtk_m32(mac->hw, MTK_XGMAC_FORCE_LINK(mac->id), 0, MTK_XGMAC_STS(mac->id)); -+ } else if (mac->id != MTK_GMAC1_ID) { ++ mtk_m32(mac->hw, MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK, 0, MTK_MAC_MCR(mac->id)); ++ if (mtk_is_netsys_v3_or_greater(mac->hw)) ++ mtk_m32(mac->hw, MTK_XGMAC_FORCE_LINK(mac->id), 0, MTK_XGMAC_STS(mac->id)); ++ } else if (mtk_is_netsys_v3_or_greater(mac->hw) && mac->id != MTK_GMAC1_ID) { + mtk_m32(mac->hw, XMAC_MCR_TRX_DISABLE, XMAC_MCR_TRX_DISABLE, MTK_XMAC_MCR(mac->id)); + } } static void mtk_set_queue_speed(struct mtk_eth *eth, unsigned int idx, -@@ -752,13 +840,11 @@ static void mtk_set_queue_speed(struct m +@@ -751,13 +840,11 @@ static void mtk_set_queue_speed(struct m mtk_w32(eth, val, soc->reg_map->qdma.qtx_sch + ofs); } @@ -425,7 +426,7 @@ Signed-off-by: Daniel Golle u32 mcr; mcr = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); -@@ -792,9 +878,63 @@ static void mtk_mac_link_up(struct phyli +@@ -791,9 +878,63 @@ static void mtk_mac_link_up(struct phyli mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id)); } @@ -470,7 +471,7 @@ Signed-off-by: Daniel Golle + struct mtk_mac *mac = container_of(config, struct mtk_mac, + phylink_config); + -+ if (mtk_interface_mode_is_xgmii(interface)) ++ if (mtk_is_netsys_v3_or_greater(mac->hw) && mtk_interface_mode_is_xgmii(interface)) + mtk_xgdm_mac_link_up(mac, phy, mode, interface, speed, duplex, + tx_pause, rx_pause); + else @@ -489,7 +490,7 @@ Signed-off-by: Daniel Golle .mac_finish = mtk_mac_finish, .mac_link_down = mtk_mac_link_down, .mac_link_up = mtk_mac_link_up, -@@ -3373,6 +3513,9 @@ static int mtk_open(struct net_device *d +@@ -3372,6 +3513,9 @@ static int mtk_open(struct net_device *d struct mtk_eth *eth = mac->hw; int i, err; @@ -499,7 +500,7 @@ Signed-off-by: Daniel Golle err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0); if (err) { netdev_err(dev, "%s: could not attach PHY: %d\n", __func__, -@@ -3501,6 +3644,9 @@ static int mtk_stop(struct net_device *d +@@ -3500,6 +3644,9 @@ static int mtk_stop(struct net_device *d for (i = 0; i < ARRAY_SIZE(eth->ppe); i++) mtk_ppe_stop(eth->ppe[i]); @@ -509,7 +510,7 @@ Signed-off-by: Daniel Golle return 0; } -@@ -4498,6 +4644,7 @@ static const struct net_device_ops mtk_n +@@ -4497,6 +4644,7 @@ static const struct net_device_ops mtk_n static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np) { const __be32 *_id = of_get_property(np, "reg", NULL); @@ -517,7 +518,7 @@ Signed-off-by: Daniel Golle phy_interface_t phy_mode; struct phylink *phylink; struct mtk_mac *mac; -@@ -4533,16 +4680,41 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4532,16 +4680,41 @@ static int mtk_add_mac(struct mtk_eth *e mac->id = id; mac->hw = eth; mac->of_node = np; @@ -567,7 +568,7 @@ Signed-off-by: Daniel Golle } memset(mac->hwlro_ip, 0, sizeof(mac->hwlro_ip)); -@@ -4616,8 +4788,21 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4615,8 +4788,21 @@ static int mtk_add_mac(struct mtk_eth *e phy_interface_zero(mac->phylink_config.supported_interfaces); __set_bit(PHY_INTERFACE_MODE_INTERNAL, mac->phylink_config.supported_interfaces); @@ -589,7 +590,7 @@ Signed-off-by: Daniel Golle phylink = phylink_create(&mac->phylink_config, of_fwnode_handle(mac->of_node), phy_mode, &mtk_phylink_ops); -@@ -4662,6 +4847,26 @@ free_netdev: +@@ -4661,6 +4847,26 @@ free_netdev: return err; } @@ -616,7 +617,7 @@ Signed-off-by: Daniel Golle void mtk_eth_set_dma_device(struct mtk_eth *eth, struct device *dma_dev) { struct net_device *dev, *tmp; -@@ -4805,7 +5010,8 @@ static int mtk_probe(struct platform_dev +@@ -4804,7 +5010,8 @@ static int mtk_probe(struct platform_dev regmap_write(cci, 0, 3); } @@ -626,7 +627,7 @@ Signed-off-by: Daniel Golle err = mtk_sgmii_init(eth); if (err) -@@ -4916,6 +5122,24 @@ static int mtk_probe(struct platform_dev +@@ -4915,6 +5122,24 @@ static int mtk_probe(struct platform_dev } } @@ -651,7 +652,7 @@ Signed-off-by: Daniel Golle if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT)) { err = devm_request_irq(eth->dev, eth->irq[0], mtk_handle_irq, 0, -@@ -5018,6 +5242,11 @@ static int mtk_remove(struct platform_de +@@ -5017,6 +5242,11 @@ static int mtk_remove(struct platform_de mtk_stop(eth->netdev[i]); mac = netdev_priv(eth->netdev[i]); phylink_disconnect_phy(mac->phylink); diff --git a/target/linux/generic/pending-6.1/739-02-phy-add-driver-for-MediaTek-XFI-T-PHY.patch b/target/linux/generic/pending-6.1/739-02-phy-add-driver-for-MediaTek-XFI-T-PHY.patch index d7424020a78327..1aa36fcd3dc4f0 100644 --- a/target/linux/generic/pending-6.1/739-02-phy-add-driver-for-MediaTek-XFI-T-PHY.patch +++ b/target/linux/generic/pending-6.1/739-02-phy-add-driver-for-MediaTek-XFI-T-PHY.patch @@ -102,7 +102,7 @@ Signed-off-by: Daniel Golle phy-mtk-hdmi-drv-y += phy-mtk-hdmi-mt2701.o --- /dev/null +++ b/drivers/phy/mediatek/phy-mtk-xfi-tphy.c -@@ -0,0 +1,392 @@ +@@ -0,0 +1,393 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* MediaTek 10GE SerDes PHY driver + * @@ -272,6 +272,7 @@ Signed-off-by: Daniel Golle + XTP_PCS_PWD_ASYNC(2)); + + usleep_range(1, 5); ++ writel(XTP_LN_FRC_TX_DATA_EN, xfi_tphy->base + REG_DIG_LN_TRX_40); + + /* Setup TX DA default value */ + mtk_xfi_tphy_rmw(xfi_tphy, 0x30b0, 0x30, 0x20); diff --git a/target/linux/generic/pending-6.1/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch b/target/linux/generic/pending-6.1/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch index 5bd2850fec2397..fd1bba3089a032 100644 --- a/target/linux/generic/pending-6.1/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch +++ b/target/linux/generic/pending-6.1/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch @@ -19,7 +19,7 @@ Signed-off-by: Daniel Golle --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -12934,7 +12934,9 @@ M: Daniel Golle +@@ -12941,7 +12941,9 @@ M: Daniel Golle L: netdev@vger.kernel.org S: Maintained F: drivers/net/pcs/pcs-mtk-lynxi.c diff --git a/target/linux/generic/pending-6.1/790-bus-mhi-core-add-SBL-state-callback.patch b/target/linux/generic/pending-6.1/790-bus-mhi-core-add-SBL-state-callback.patch index f239355594ad53..fe0f260ae36c6f 100644 --- a/target/linux/generic/pending-6.1/790-bus-mhi-core-add-SBL-state-callback.patch +++ b/target/linux/generic/pending-6.1/790-bus-mhi-core-add-SBL-state-callback.patch @@ -20,7 +20,7 @@ Signed-off-by: Robert Marko --- a/drivers/bus/mhi/host/main.c +++ b/drivers/bus/mhi/host/main.c -@@ -905,6 +905,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_ +@@ -906,6 +906,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_ switch (event) { case MHI_EE_SBL: st = DEV_ST_TRANSITION_SBL; diff --git a/target/linux/generic/pending-6.6/350-mips-kernel-fix-detect_memory_region-function.patch b/target/linux/generic/pending-6.6/350-mips-kernel-fix-detect_memory_region-function.patch new file mode 100644 index 00000000000000..4654bc14ef039b --- /dev/null +++ b/target/linux/generic/pending-6.6/350-mips-kernel-fix-detect_memory_region-function.patch @@ -0,0 +1,56 @@ +From: Shiji Yang +Date: Wed, 13 Mar 2024 20:28:37 +0800 +Subject: [PATCH] mips: kernel: fix detect_memory_region() function + +1. Do not use memcmp() on unallocated memory, as the new introduced + fortify dynamic object size check[1] will report unexpected result. +2. Use a fixed pattern instead of a random function pointer as the + magic value. +3. Flip magic value and double check it. + +[1] 439a1bcac648 ("fortify: Use __builtin_dynamic_object_size() when available") +Signed-off-by: Shiji Yang +--- + arch/mips/kernel/setup.c | 16 +++++++++++----- + 1 file changed, 11 insertions(+), 5 deletions(-) + +--- a/arch/mips/kernel/setup.c ++++ b/arch/mips/kernel/setup.c +@@ -46,6 +46,8 @@ + #include + #include + ++#define MIPS_MEM_TEST_PATTERN 0xaa5555aa ++ + #ifdef CONFIG_MIPS_ELF_APPENDED_DTB + char __section(".appended_dtb") __appended_dtb[0x100000]; + #endif /* CONFIG_MIPS_ELF_APPENDED_DTB */ +@@ -90,7 +92,7 @@ static struct resource bss_resource = { + unsigned long __kaslr_offset __ro_after_init; + EXPORT_SYMBOL(__kaslr_offset); + +-static void *detect_magic __initdata = detect_memory_region; ++static u32 detect_magic __initdata; + + #ifdef CONFIG_MIPS_AUTO_PFN_OFFSET + unsigned long ARCH_PFN_OFFSET; +@@ -99,12 +101,16 @@ EXPORT_SYMBOL(ARCH_PFN_OFFSET); + + void __init detect_memory_region(phys_addr_t start, phys_addr_t sz_min, phys_addr_t sz_max) + { +- void *dm = &detect_magic; ++ void *dm = (void *)KSEG1ADDR(&detect_magic); + phys_addr_t size; + + for (size = sz_min; size < sz_max; size <<= 1) { +- if (!memcmp(dm, dm + size, sizeof(detect_magic))) +- break; ++ __raw_writel(MIPS_MEM_TEST_PATTERN, dm); ++ if (__raw_readl(dm) == __raw_readl(dm + size)) { ++ __raw_writel(~MIPS_MEM_TEST_PATTERN, dm); ++ if (__raw_readl(dm) == __raw_readl(dm + size)) ++ break; ++ } + } + + pr_debug("Memory: %lluMB of RAM detected at 0x%llx (min: %lluMB, max: %lluMB)\n", diff --git a/target/linux/generic/pending-6.6/430-mtd-add-myloader-partition-parser.patch b/target/linux/generic/pending-6.6/430-mtd-add-myloader-partition-parser.patch index c8cf3f5d3be58e..35e80d6dcc95b5 100644 --- a/target/linux/generic/pending-6.6/430-mtd-add-myloader-partition-parser.patch +++ b/target/linux/generic/pending-6.6/430-mtd-add-myloader-partition-parser.patch @@ -16,7 +16,7 @@ Signed-off-by: Adrian Schmutzler +config MTD_MYLOADER_PARTS + tristate "MyLoader partition parsing" -+ depends on ADM5120 || ATH25 || ATH79 ++ depends on ADM5120 || ATH79 + help + MyLoader is a bootloader which allows the user to define partitions + in flash devices, by putting a table in the second erase block diff --git a/target/linux/generic/pending-6.6/440-mtd-don-t-look-for-OTP-legacy-NVMEM-cells-if-proper-.patch b/target/linux/generic/pending-6.6/440-mtd-don-t-look-for-OTP-legacy-NVMEM-cells-if-proper-.patch new file mode 100644 index 00000000000000..d9d15a4048c144 --- /dev/null +++ b/target/linux/generic/pending-6.6/440-mtd-don-t-look-for-OTP-legacy-NVMEM-cells-if-proper-.patch @@ -0,0 +1,44 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Wed, 27 Mar 2024 23:18:51 +0100 +Subject: [PATCH] mtd: don't look for OTP legacy NVMEM cells if proper node + doesn't exist +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If node with "user-otp" / "factory-otp" compatible doesn't exist it's +important to prevent NVMEM core from looking for legacy NVMEM cells. +Otherwise it would look for them in the device node. + +This fixes treating NAND controller attached chips as NVMEM cell. +Problem example: +[ 0.410107] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xdc +[ 0.416531] nand: Macronix MX30LF4G18AC +[ 0.420409] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 +[ 0.428022] iproc_nand 18028000.nand-controller: detected 512MiB total, 128KiB blocks, 2KiB pages, 16B OOB, 8-bit, BCH-8 +[ 0.438991] Scanning device for bad blocks +(...) +[ 2.848418] nvmem user-otp1: nvmem: invalid reg on /nand-controller@18028000/nand@0 +[ 2.856126] iproc_nand 18028000.nand-controller: error -EINVAL: Failed to register OTP NVMEM device + +This long standing issue was exposed by the support for Macronix OTP. + +Reported-by: Christian Marangi +Fixes: 4b361cfa8624 ("mtd: core: add OTP nvmem provider support") +Fixes: e87161321a40 ("mtd: rawnand: macronix: OTP access for MX30LFxG18AC") +Signed-off-by: Rafał Miłecki +--- + drivers/mtd/mtdcore.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/mtd/mtdcore.c ++++ b/drivers/mtd/mtdcore.c +@@ -931,7 +931,7 @@ static struct nvmem_device *mtd_otp_nvme + config.name = compatible; + config.id = NVMEM_DEVID_AUTO; + config.owner = THIS_MODULE; +- config.add_legacy_fixed_of_cells = true; ++ config.add_legacy_fixed_of_cells = !!np; + config.type = NVMEM_TYPE_OTP; + config.root_only = true; + config.ignore_wp = true; diff --git a/target/linux/generic/pending-6.6/450-14-mmc-block-set-fwnode-of-disk-devices.patch b/target/linux/generic/pending-6.6/450-14-mmc-block-set-fwnode-of-disk-devices.patch index 27875b8c2c94be..d6b3df3aa0aa49 100644 --- a/target/linux/generic/pending-6.6/450-14-mmc-block-set-fwnode-of-disk-devices.patch +++ b/target/linux/generic/pending-6.6/450-14-mmc-block-set-fwnode-of-disk-devices.patch @@ -14,7 +14,7 @@ Signed-off-by: Daniel Golle --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c -@@ -2461,6 +2461,8 @@ static struct mmc_blk_data *mmc_blk_allo +@@ -2463,6 +2463,8 @@ static struct mmc_blk_data *mmc_blk_allo int area_type, unsigned int part_type) { @@ -23,7 +23,7 @@ Signed-off-by: Daniel Golle struct mmc_blk_data *md; int devidx, ret; char cap_str[10]; -@@ -2557,6 +2559,13 @@ static struct mmc_blk_data *mmc_blk_allo +@@ -2559,6 +2561,13 @@ static struct mmc_blk_data *mmc_blk_allo blk_queue_write_cache(md->queue.queue, cache_enabled, fua_enabled); diff --git a/target/linux/generic/pending-6.6/450-15-mmc-block-set-GENHD_FL_NVMEM.patch b/target/linux/generic/pending-6.6/450-15-mmc-block-set-GENHD_FL_NVMEM.patch index 308910859bb41e..d4c3cd8df837cb 100644 --- a/target/linux/generic/pending-6.6/450-15-mmc-block-set-GENHD_FL_NVMEM.patch +++ b/target/linux/generic/pending-6.6/450-15-mmc-block-set-GENHD_FL_NVMEM.patch @@ -12,7 +12,7 @@ Signed-off-by: Daniel Golle --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c -@@ -2515,6 +2515,7 @@ static struct mmc_blk_data *mmc_blk_allo +@@ -2517,6 +2517,7 @@ static struct mmc_blk_data *mmc_blk_allo md->disk->major = MMC_BLOCK_MAJOR; md->disk->minors = perdev_minors; md->disk->first_minor = devidx * perdev_minors; diff --git a/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch b/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch index 02aa8c33400933..c3d92da5f951fd 100644 --- a/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch +++ b/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch @@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c -@@ -8214,7 +8214,7 @@ static int nft_register_flowtable_net_ho +@@ -8221,7 +8221,7 @@ static int nft_register_flowtable_net_ho err = flowtable->data.type->setup(&flowtable->data, hook->ops.dev, FLOW_BLOCK_BIND); diff --git a/target/linux/generic/pending-6.6/739-02-phy-add-driver-for-MediaTek-XFI-T-PHY.patch b/target/linux/generic/pending-6.6/739-02-phy-add-driver-for-MediaTek-XFI-T-PHY.patch index d7424020a78327..1aa36fcd3dc4f0 100644 --- a/target/linux/generic/pending-6.6/739-02-phy-add-driver-for-MediaTek-XFI-T-PHY.patch +++ b/target/linux/generic/pending-6.6/739-02-phy-add-driver-for-MediaTek-XFI-T-PHY.patch @@ -102,7 +102,7 @@ Signed-off-by: Daniel Golle phy-mtk-hdmi-drv-y += phy-mtk-hdmi-mt2701.o --- /dev/null +++ b/drivers/phy/mediatek/phy-mtk-xfi-tphy.c -@@ -0,0 +1,392 @@ +@@ -0,0 +1,393 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* MediaTek 10GE SerDes PHY driver + * @@ -272,6 +272,7 @@ Signed-off-by: Daniel Golle + XTP_PCS_PWD_ASYNC(2)); + + usleep_range(1, 5); ++ writel(XTP_LN_FRC_TX_DATA_EN, xfi_tphy->base + REG_DIG_LN_TRX_40); + + /* Setup TX DA default value */ + mtk_xfi_tphy_rmw(xfi_tphy, 0x30b0, 0x30, 0x20); diff --git a/target/linux/generic/pending-6.6/834-ledtrig-libata.patch b/target/linux/generic/pending-6.6/834-ledtrig-libata.patch index 0282e337e0fa5d..f5cd5e4a5651d6 100644 --- a/target/linux/generic/pending-6.6/834-ledtrig-libata.patch +++ b/target/linux/generic/pending-6.6/834-ledtrig-libata.patch @@ -45,7 +45,7 @@ Signed-off-by: Daniel Golle depends on ACPI --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c -@@ -685,6 +685,19 @@ static inline void ata_set_tf_cdl(struct +@@ -685,6 +685,17 @@ static inline void ata_set_tf_cdl(struct qc->flags |= ATA_QCFLAG_HAS_CDL | ATA_QCFLAG_RESULT_TF; } @@ -53,19 +53,17 @@ Signed-off-by: Daniel Golle +#define LIBATA_BLINK_DELAY 20 /* ms */ +static inline void ata_led_act(struct ata_port *ap) +{ -+ unsigned long led_delay = LIBATA_BLINK_DELAY; -+ + if (unlikely(!ap->ledtrig)) + return; + -+ led_trigger_blink_oneshot(ap->ledtrig, &led_delay, &led_delay, 0); ++ led_trigger_blink_oneshot(ap->ledtrig, LIBATA_BLINK_DELAY, LIBATA_BLINK_DELAY, 0); +} +#endif + /** * ata_build_rw_tf - Build ATA taskfile for given read/write request * @qc: Metadata associated with the taskfile to build -@@ -4771,6 +4784,9 @@ void __ata_qc_complete(struct ata_queued +@@ -4771,6 +4782,9 @@ void __ata_qc_complete(struct ata_queued link->active_tag = ATA_TAG_POISON; ap->nr_active_links--; } @@ -75,7 +73,7 @@ Signed-off-by: Daniel Golle /* clear exclusive status */ if (unlikely(qc->flags & ATA_QCFLAG_CLEAR_EXCL && -@@ -5494,6 +5510,9 @@ struct ata_port *ata_port_alloc(struct a +@@ -5494,6 +5508,9 @@ struct ata_port *ata_port_alloc(struct a ap->stats.unhandled_irq = 1; ap->stats.idle_irq = 1; #endif @@ -85,7 +83,7 @@ Signed-off-by: Daniel Golle ata_sff_port_init(ap); return ap; -@@ -5530,6 +5549,12 @@ static void ata_host_release(struct kref +@@ -5530,6 +5547,12 @@ static void ata_host_release(struct kref kfree(ap->pmp_link); kfree(ap->slave_link); kfree(ap->ncq_sense_buf); @@ -98,7 +96,7 @@ Signed-off-by: Daniel Golle kfree(ap); host->ports[i] = NULL; } -@@ -5920,7 +5945,23 @@ int ata_host_register(struct ata_host *h +@@ -5920,7 +5943,23 @@ int ata_host_register(struct ata_host *h host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->local_port_no = i + 1; } @@ -134,7 +132,7 @@ Signed-off-by: Daniel Golle /* * Define if arch has non-standard setup. This is a _PCI_ standard -@@ -874,6 +877,12 @@ struct ata_port { +@@ -875,6 +878,12 @@ struct ata_port { #ifdef CONFIG_ATA_ACPI struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */ #endif diff --git a/target/linux/x86/64/config-6.6 b/target/linux/x86/64/config-6.6 index 88b6da2d59c839..922c029aa1a3a3 100644 --- a/target/linux/x86/64/config-6.6 +++ b/target/linux/x86/64/config-6.6 @@ -38,6 +38,7 @@ CONFIG_ACPI_SPCR_TABLE=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y # CONFIG_ACPI_TAD is not set CONFIG_ACPI_THERMAL=y +# CONFIG_ACPI_TOSHIBA is not set CONFIG_ACPI_VIDEO=y CONFIG_ACPI_VIOT=y CONFIG_ACPI_WMI=y @@ -520,8 +521,20 @@ CONFIG_SENSORS_K8TEMP=y # CONFIG_SENSORS_OXP is not set CONFIG_SENSORS_VIA_CPUTEMP=y CONFIG_SERIAL_8250_PNP=y +# CONFIG_SERIAL_MULTI_INSTANTIATE is not set CONFIG_SLS=y CONFIG_SMP=y +# CONFIG_SND_HDA_SCODEC_CS35L41_I2C is not set +# CONFIG_SND_HDA_SCODEC_CS35L41_SPI is not set +# CONFIG_SND_HDA_SCODEC_CS35L56_I2C is not set +# CONFIG_SND_HDA_SCODEC_CS35L56_SPI is not set +# CONFIG_SND_HDA_SCODEC_TAS2781_I2C is not set +# CONFIG_SND_HDA_CTL_DEV_ID is not set +# CONFIG_SND_SOC_AMD_ACP6x is not set +# CONFIG_SND_SOC_AMD_ACP_COMMON is not set +# CONFIG_SND_SOC_AMD_RPL_ACP6x is not set +# CONFIG_SND_SOC_AMD_PS is not set +# CONFIG_SND_SOC_INTEL_AVS is not set CONFIG_SOCK_RX_QUEUE_MAPPING=y CONFIG_SPARSEMEM=y CONFIG_SPARSEMEM_EXTREME=y @@ -558,6 +571,7 @@ CONFIG_UNACCEPTED_MEMORY=y CONFIG_USB_STORAGE=y CONFIG_USE_PERCPU_NUMA_NODE_ID=y CONFIG_VIDEO_CMDLINE=y +# CONFIG_VIDEO_IPU3_CIO2 is not set CONFIG_VIDEO_NOMODESET=y CONFIG_VIRTIO=y CONFIG_VIRTIO_ANCHOR=y diff --git a/toolchain/binutils/patches/2.38/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch b/toolchain/binutils/patches/2.38/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch new file mode 100644 index 00000000000000..94488c32905971 --- /dev/null +++ b/toolchain/binutils/patches/2.38/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch @@ -0,0 +1,2172 @@ +From af969b14aedcc0ae27dcefab4327ff2d153dec8b Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Thu, 28 Mar 2024 19:25:42 +1030 +Subject: [PATCH 1/2] PR 30569, always call elf_backend_size_dynamic_sections + +This largely mechanical patch is preparation for a followup patch. + +For quite some time I've thought that it would be useful to call +elf_backend_size_dynamic_sections even when no dynamic objects are +seen by the linker. That's what this patch does, with some renaming. +There are no functional changes to the linker, just a move of the +dynobj test in bfd_elf_size_dynamic_sections to target backend +functions, replacing the asserts/aborts already there. No doubt some +of the current always_size_sections functions could be moved to +size_dynamic_sections but I haven't made that change. + +Because both hooks are now always called, I have renamed +always_size_sections to early_size_sections and size_dynamic_sections +to late_size_sections. I condisdered calling late_size_sections plain +size_sections, since this is the usual target dynamic section sizing +hook, but decided that searching the sources for "size_sections" would +then hit early_size_sections and other functions. +--- + bfd/elf-bfd.h | 35 +++++++++++++++++------------------ + bfd/elf-m10300.c | 11 ++++++----- + bfd/elf32-arc.c | 9 +++++---- + bfd/elf32-arm.c | 15 ++++++++------- + bfd/elf32-bfin.c | 31 ++++++++++++++++--------------- + bfd/elf32-cr16.c | 11 ++++++----- + bfd/elf32-cris.c | 13 +++++++------ + bfd/elf32-csky.c | 8 ++++---- + bfd/elf32-frv.c | 23 ++++++++++++----------- + bfd/elf32-hppa.c | 8 ++++---- + bfd/elf32-i386.c | 7 +++---- + bfd/elf32-lm32.c | 15 ++++++++------- + bfd/elf32-m32c.c | 8 ++++---- + bfd/elf32-m32r.c | 11 ++++++----- + bfd/elf32-m68k.c | 16 ++++++++-------- + bfd/elf32-metag.c | 8 ++++---- + bfd/elf32-microblaze.c | 9 +++++---- + bfd/elf32-mips.c | 6 ++---- + bfd/elf32-nds32.c | 9 +++++---- + bfd/elf32-nios2.c | 15 ++++++++------- + bfd/elf32-or1k.c | 9 +++++---- + bfd/elf32-ppc.c | 11 ++++++----- + bfd/elf32-rl78.c | 8 ++++---- + bfd/elf32-s390.c | 10 +++++----- + bfd/elf32-score.c | 35 ++++++++++++++++++----------------- + bfd/elf32-score.h | 4 ++-- + bfd/elf32-score7.c | 13 +++++++------ + bfd/elf32-sh.c | 15 +++++++-------- + bfd/elf32-sparc.c | 3 +-- + bfd/elf32-tic6x.c | 14 +++++++------- + bfd/elf32-tilegx.c | 2 +- + bfd/elf32-tilepro.c | 11 +++++------ + bfd/elf32-vax.c | 16 +++++++--------- + bfd/elf32-xstormy16.c | 8 ++++---- + bfd/elf32-xtensa.c | 13 ++++++------- + bfd/elf64-alpha.c | 19 ++++++++++--------- + bfd/elf64-hppa.c | 11 ++++------- + bfd/elf64-ia64-vms.c | 13 +++++++------ + bfd/elf64-mips.c | 8 ++++---- + bfd/elf64-ppc.c | 12 ++++++------ + bfd/elf64-s390.c | 10 +++++----- + bfd/elf64-sparc.c | 4 ++-- + bfd/elf64-tilegx.c | 2 +- + bfd/elf64-x86-64.c | 7 +++---- + bfd/elflink.c | 9 ++++----- + bfd/elfn32-mips.c | 6 ++---- + bfd/elfnn-aarch64.c | 21 +++++++++++---------- + bfd/elfnn-ia64.c | 11 ++++++----- + bfd/elfnn-kvx.c | 19 +++++++++---------- + bfd/elfnn-loongarch.c | 9 +++++---- + bfd/elfnn-riscv.c | 7 ++++--- + bfd/elfxx-mips.c | 15 ++++++++------- + bfd/elfxx-mips.h | 4 ++-- + bfd/elfxx-sparc.c | 7 ++++--- + bfd/elfxx-sparc.h | 2 +- + bfd/elfxx-target.h | 12 ++++++------ + bfd/elfxx-tilegx.c | 7 ++++--- + bfd/elfxx-tilegx.h | 2 +- + bfd/elfxx-x86.c | 8 ++++---- + bfd/elfxx-x86.h | 8 ++++---- + ld/emultempl/vms.em | 7 +++---- + 61 files changed, 343 insertions(+), 337 deletions(-) + +--- a/bfd/elf-bfd.h ++++ b/bfd/elf-bfd.h +@@ -1135,7 +1135,7 @@ struct elf_backend_data + /* The ADJUST_DYNAMIC_SYMBOL function is called by the ELF backend + linker for every symbol which is defined by a dynamic object and + referenced by a regular object. This is called after all the +- input files have been seen, but before the SIZE_DYNAMIC_SECTIONS ++ input files have been seen, but before the LATE_SIZE_SECTIONS + function has been called. The hash table entry should be + bfd_link_hash_defined ore bfd_link_hash_defweak, and it should be + defined in a section from a dynamic object. Dynamic object +@@ -1147,24 +1147,23 @@ struct elf_backend_data + bool (*elf_backend_adjust_dynamic_symbol) + (struct bfd_link_info *info, struct elf_link_hash_entry *h); + +- /* The ALWAYS_SIZE_SECTIONS function is called by the backend linker +- after all the linker input files have been seen but before the +- section sizes have been set. This is called after +- ADJUST_DYNAMIC_SYMBOL, but before SIZE_DYNAMIC_SECTIONS. */ +- bool (*elf_backend_always_size_sections) ++ /* The EARLY_SIZE_SECTIONS and LATE_SIZE_SECTIONS functions are ++ called by the backend linker after all linker input files have ++ been seen and sections have been assigned to output sections, but ++ before the section sizes have been set. Both of these functions ++ are called even when no dynamic object is seen by the linker. ++ Between them, they must set the sizes of the dynamic sections and ++ other backend specific sections, and may fill in their contents. ++ Most backends need only use LATE_SIZE_SECTIONS. ++ EARLY_SIZE_SECTIONS is called before --export-dynamic makes some ++ symbols dynamic and before ADJUST_DYNAMIC_SYMBOL processes ++ dynamic symbols, LATE_SIZE_SECTIONS afterwards. The generic ELF ++ linker can handle the .dynsym, .dynstr and .hash sections. ++ Besides those, these functions must handle the .interp section ++ and any other sections created by CREATE_DYNAMIC_SECTIONS. */ ++ bool (*elf_backend_early_size_sections) + (bfd *output_bfd, struct bfd_link_info *info); +- +- /* The SIZE_DYNAMIC_SECTIONS function is called by the ELF backend +- linker after all the linker input files have been seen but before +- the sections sizes have been set. This is called after +- ADJUST_DYNAMIC_SYMBOL has been called on all appropriate symbols. +- It is only called when linking against a dynamic object. It must +- set the sizes of the dynamic sections, and may fill in their +- contents as well. The generic ELF linker can handle the .dynsym, +- .dynstr and .hash sections. This function must handle the +- .interp section and any sections created by the +- CREATE_DYNAMIC_SECTIONS entry point. */ +- bool (*elf_backend_size_dynamic_sections) ++ bool (*elf_backend_late_size_sections) + (bfd *output_bfd, struct bfd_link_info *info); + + /* The STRIP_ZERO_SIZED_DYNAMIC_SECTIONS function is called by the +--- a/bfd/elf-m10300.c ++++ b/bfd/elf-m10300.c +@@ -5003,8 +5003,8 @@ _bfd_mn10300_elf_adjust_dynamic_symbol ( + /* Set the sizes of the dynamic sections. */ + + static bool +-_bfd_mn10300_elf_size_dynamic_sections (bfd * output_bfd, +- struct bfd_link_info * info) ++_bfd_mn10300_elf_late_size_sections (bfd * output_bfd, ++ struct bfd_link_info * info) + { + struct elf32_mn10300_link_hash_table *htab = elf32_mn10300_hash_table (info); + bfd * dynobj; +@@ -5012,7 +5012,8 @@ _bfd_mn10300_elf_size_dynamic_sections ( + bool relocs; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5499,8 +5500,8 @@ mn10300_elf_mkobject (bfd *abfd) + _bfd_mn10300_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mn10300_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- _bfd_mn10300_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_mn10300_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_symbol \ + _bfd_mn10300_elf_finish_dynamic_symbol +--- a/bfd/elf32-arc.c ++++ b/bfd/elf32-arc.c +@@ -2702,8 +2702,8 @@ elf_arc_finish_dynamic_sections (bfd * o + + /* Set the sizes of the dynamic sections. */ + static bool +-elf_arc_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_arc_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -2711,7 +2711,8 @@ elf_arc_size_dynamic_sections (bfd *outp + struct elf_link_hash_table *htab = elf_hash_table (info); + + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -3126,7 +3127,7 @@ arc_elf_relax_section (bfd *abfd, asecti + #define elf_backend_finish_dynamic_symbol elf_arc_finish_dynamic_symbol + + #define elf_backend_finish_dynamic_sections elf_arc_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf_arc_size_dynamic_sections ++#define elf_backend_late_size_sections elf_arc_late_size_sections + + #define elf_backend_can_gc_sections 1 + #define elf_backend_want_got_plt 1 +--- a/bfd/elf32-arm.c ++++ b/bfd/elf32-arm.c +@@ -16709,8 +16709,8 @@ bfd_elf32_arm_set_byteswap_code (struct + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info * info) ++elf32_arm_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info * info) + { + bfd * dynobj; + asection * s; +@@ -16723,7 +16723,9 @@ elf32_arm_size_dynamic_sections (bfd * o + return false; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; ++ + check_use_blx (htab); + + if (elf_hash_table (info)->dynamic_sections_created) +@@ -17095,8 +17097,7 @@ elf32_arm_size_dynamic_sections (bfd * o + _TLS_MODULE_BASE_, if needed. */ + + static bool +-elf32_arm_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_arm_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + asection *tls_sec; + struct elf32_arm_link_hash_table *htab; +@@ -20263,8 +20264,8 @@ elf32_arm_backend_symbol_processing (bfd + #define elf_backend_create_dynamic_sections elf32_arm_create_dynamic_sections + #define elf_backend_finish_dynamic_symbol elf32_arm_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf32_arm_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf32_arm_size_dynamic_sections +-#define elf_backend_always_size_sections elf32_arm_always_size_sections ++#define elf_backend_late_size_sections elf32_arm_late_size_sections ++#define elf_backend_early_size_sections elf32_arm_early_size_sections + #define elf_backend_init_index_section _bfd_elf_init_2_index_sections + #define elf_backend_init_file_header elf32_arm_init_file_header + #define elf_backend_reloc_type_class elf32_arm_reloc_type_class +--- a/bfd/elf32-bfin.c ++++ b/bfd/elf32-bfin.c +@@ -4031,8 +4031,8 @@ _bfinfdpic_size_got_plt (bfd *output_bfd + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_bfinfdpic_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_bfinfdpic_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct elf_link_hash_table *htab; + bfd *dynobj; +@@ -4041,7 +4041,8 @@ elf32_bfinfdpic_size_dynamic_sections (b + + htab = elf_hash_table (info); + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -4090,7 +4091,7 @@ elf32_bfinfdpic_size_dynamic_sections (b + } + + static bool +-elf32_bfinfdpic_always_size_sections (bfd *output_bfd, ++elf32_bfinfdpic_early_size_sections (bfd *output_bfd, + struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info) +@@ -5128,15 +5129,16 @@ bfin_discard_copies (struct elf_link_has + } + + static bool +-bfin_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++bfin_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5428,8 +5430,7 @@ struct bfd_elf_special_section const elf + #define elf_backend_check_relocs bfin_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + bfin_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- bfin_size_dynamic_sections ++#define elf_backend_late_size_sections bfin_late_size_sections + #define elf_backend_relocate_section bfin_relocate_section + #define elf_backend_finish_dynamic_symbol \ + bfin_finish_dynamic_symbol +@@ -5475,9 +5476,9 @@ struct bfd_elf_special_section const elf + #undef bfd_elf32_bfd_link_hash_table_create + #define bfd_elf32_bfd_link_hash_table_create \ + bfinfdpic_elf_link_hash_table_create +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections \ +- elf32_bfinfdpic_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections \ ++ elf32_bfinfdpic_early_size_sections + + #undef elf_backend_create_dynamic_sections + #define elf_backend_create_dynamic_sections \ +@@ -5485,9 +5486,9 @@ struct bfd_elf_special_section const elf + #undef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol \ + elf32_bfinfdpic_adjust_dynamic_symbol +-#undef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_bfinfdpic_size_dynamic_sections ++#undef elf_backend_late_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_bfinfdpic_late_size_sections + #undef elf_backend_finish_dynamic_symbol + #define elf_backend_finish_dynamic_symbol \ + elf32_bfinfdpic_finish_dynamic_symbol +--- a/bfd/elf32-cr16.c ++++ b/bfd/elf32-cr16.c +@@ -2381,15 +2381,16 @@ _bfd_cr16_elf_adjust_dynamic_symbol (str + /* Set the sizes of the dynamic sections. */ + + static bool +-_bfd_cr16_elf_size_dynamic_sections (bfd * output_bfd, +- struct bfd_link_info * info) ++_bfd_cr16_elf_late_size_sections (bfd * output_bfd, ++ struct bfd_link_info * info) + { + bfd * dynobj; + asection * s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -2826,8 +2827,8 @@ _bfd_cr16_elf_reloc_type_class (const st + _bfd_cr16_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol \ + _bfd_cr16_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- _bfd_cr16_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_cr16_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_symbol \ + _bfd_cr16_elf_finish_dynamic_symbol +--- a/bfd/elf32-cris.c ++++ b/bfd/elf32-cris.c +@@ -2527,7 +2527,7 @@ cris_elf_plt_sym_val (bfd_vma i ATTRIBUT + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_cris_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_cris_size_dynamic_sections if no dynamic sections will be ++ or elf_cris_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static bool +@@ -3508,8 +3508,8 @@ cris_elf_check_relocs (bfd *abfd, + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_cris_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_cris_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_cris_link_hash_table * htab; + bfd *dynobj; +@@ -3521,7 +3521,8 @@ elf_cris_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -4090,8 +4091,8 @@ elf_cris_got_elt_size (bfd *abfd ATTRIBU + elf_cris_adjust_dynamic_symbol + #define elf_backend_copy_indirect_symbol \ + elf_cris_copy_indirect_symbol +-#define elf_backend_size_dynamic_sections \ +- elf_cris_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elf_cris_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_finish_dynamic_symbol \ + elf_cris_finish_dynamic_symbol +--- a/bfd/elf32-csky.c ++++ b/bfd/elf32-csky.c +@@ -1893,8 +1893,8 @@ csky_allocate_dynrelocs (struct elf_link + /* Set the sizes of the dynamic sections. */ + + static bool +-csky_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++csky_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct csky_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1907,7 +1907,7 @@ csky_elf_size_dynamic_sections (bfd *out + return false; + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- return false; ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -5344,7 +5344,7 @@ elf32_csky_obj_attrs_handle_unknown (bfd + /* Dynamic relocate related API. */ + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol csky_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections csky_elf_size_dynamic_sections ++#define elf_backend_late_size_sections csky_elf_late_size_sections + #define elf_backend_finish_dynamic_symbol csky_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections csky_elf_finish_dynamic_sections + #define elf_backend_rela_normal 1 +--- a/bfd/elf32-frv.c ++++ b/bfd/elf32-frv.c +@@ -5423,15 +5423,16 @@ _frvfdpic_size_got_plt (bfd *output_bfd, + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_frvfdpic_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_frvfdpic_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + struct _frvfdpic_dynamic_got_plt_info gpinfo; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5472,8 +5473,8 @@ elf32_frvfdpic_size_dynamic_sections (bf + } + + static bool +-elf32_frvfdpic_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_frvfdpic_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info) + && !bfd_elf_stack_segment_size (output_bfd, info, +@@ -6817,9 +6818,9 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In + #undef bfd_elf32_bfd_link_hash_table_create + #define bfd_elf32_bfd_link_hash_table_create \ + frvfdpic_elf_link_hash_table_create +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections \ +- elf32_frvfdpic_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections \ ++ elf32_frvfdpic_early_size_sections + + #undef elf_backend_create_dynamic_sections + #define elf_backend_create_dynamic_sections \ +@@ -6827,9 +6828,9 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In + #undef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol \ + elf32_frvfdpic_adjust_dynamic_symbol +-#undef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_frvfdpic_size_dynamic_sections ++#undef elf_backend_late_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_frvfdpic_late_size_sections + #undef bfd_elf32_bfd_relax_section + #define bfd_elf32_bfd_relax_section \ + elf32_frvfdpic_relax_section +--- a/bfd/elf32-hppa.c ++++ b/bfd/elf32-hppa.c +@@ -2042,8 +2042,8 @@ clobber_millicode_symbols (struct elf_li + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf32_hppa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf32_hppa_link_hash_table *htab; + bfd *dynobj; +@@ -2057,7 +2057,7 @@ elf32_hppa_size_dynamic_sections (bfd *o + + dynobj = htab->etab.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->etab.dynamic_sections_created) + { +@@ -4450,7 +4450,7 @@ elf32_hppa_elf_get_symbol_type (Elf_Inte + #define elf_backend_hide_symbol elf32_hppa_hide_symbol + #define elf_backend_finish_dynamic_symbol elf32_hppa_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf32_hppa_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf32_hppa_size_dynamic_sections ++#define elf_backend_late_size_sections elf32_hppa_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_gc_mark_hook elf32_hppa_gc_mark_hook + #define elf_backend_grok_prstatus elf32_hppa_grok_prstatus +--- a/bfd/elf32-i386.c ++++ b/bfd/elf32-i386.c +@@ -1905,8 +1905,7 @@ elf_i386_scan_relocs (bfd *abfd, + } + + static bool +-elf_i386_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_i386_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *abfd; + +@@ -1919,7 +1918,7 @@ elf_i386_always_size_sections (bfd *outp + elf_i386_scan_relocs)) + return false; + +- return _bfd_x86_elf_always_size_sections (output_bfd, info); ++ return _bfd_x86_elf_early_size_sections (output_bfd, info); + } + + /* Set the correct type for an x86 ELF section. We do this by the +@@ -4412,7 +4411,7 @@ elf_i386_link_setup_gnu_properties (stru + #define bfd_elf32_get_synthetic_symtab elf_i386_get_synthetic_symtab + + #define elf_backend_relocs_compatible _bfd_elf_relocs_compatible +-#define elf_backend_always_size_sections elf_i386_always_size_sections ++#define elf_backend_early_size_sections elf_i386_early_size_sections + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_fake_sections elf_i386_fake_sections + #define elf_backend_finish_dynamic_sections elf_i386_finish_dynamic_sections +--- a/bfd/elf32-lm32.c ++++ b/bfd/elf32-lm32.c +@@ -1906,8 +1906,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-lm32_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++lm32_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct elf_lm32_link_hash_table *htab; + bfd *dynobj; +@@ -1920,7 +1920,8 @@ lm32_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -2309,7 +2310,7 @@ lm32_elf_create_dynamic_sections (bfd *a + } + + static bool +-lm32_elf_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++lm32_elf_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info)) + { +@@ -2395,7 +2396,7 @@ lm32_elf_fdpic_copy_private_bfd_data (bf + #define bfd_elf32_bfd_link_hash_table_create lm32_elf_link_hash_table_create + #define elf_backend_check_relocs lm32_elf_check_relocs + #define elf_backend_reloc_type_class lm32_elf_reloc_type_class +-#define elf_backend_size_dynamic_sections lm32_elf_size_dynamic_sections ++#define elf_backend_late_size_sections lm32_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_create_dynamic_sections lm32_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections lm32_elf_finish_dynamic_sections +@@ -2416,8 +2417,8 @@ lm32_elf_fdpic_copy_private_bfd_data (bf + #undef elf32_bed + #define elf32_bed elf32_lm32fdpic_bed + +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections lm32_elf_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections lm32_elf_early_size_sections + #undef bfd_elf32_bfd_copy_private_bfd_data + #define bfd_elf32_bfd_copy_private_bfd_data lm32_elf_fdpic_copy_private_bfd_data + +--- a/bfd/elf32-m32c.c ++++ b/bfd/elf32-m32c.c +@@ -773,8 +773,8 @@ m32c_elf_finish_dynamic_sections (bfd *a + } + + static bool +-m32c_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++m32c_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -2131,8 +2131,8 @@ _bfd_m32c_elf_eh_frame_address_size (bfd + #define elf_backend_check_relocs m32c_elf_check_relocs + #define elf_backend_object_p m32c_elf_object_p + #define elf_symbol_leading_char ('_') +-#define elf_backend_always_size_sections \ +- m32c_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ m32c_elf_early_size_sections + #define elf_backend_finish_dynamic_sections \ + m32c_elf_finish_dynamic_sections + +--- a/bfd/elf32-m32r.c ++++ b/bfd/elf32-m32r.c +@@ -1958,8 +1958,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-m32r_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++m32r_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_link_hash_table *htab; + bfd *dynobj; +@@ -1968,7 +1968,7 @@ m32r_elf_size_dynamic_sections (bfd *out + bfd *ibfd; + + #ifdef DEBUG_PIC +- printf ("m32r_elf_size_dynamic_sections()\n"); ++ printf ("m32r_elf_late_size_sections()\n"); + #endif + + htab = m32r_elf_hash_table (info); +@@ -1976,7 +1976,8 @@ m32r_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -3658,7 +3659,7 @@ m32r_elf_reloc_type_class (const struct + + #define elf_backend_create_dynamic_sections m32r_elf_create_dynamic_sections + #define bfd_elf32_bfd_link_hash_table_create m32r_elf_link_hash_table_create +-#define elf_backend_size_dynamic_sections m32r_elf_size_dynamic_sections ++#define elf_backend_late_size_sections m32r_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_sections m32r_elf_finish_dynamic_sections + #define elf_backend_adjust_dynamic_symbol m32r_elf_adjust_dynamic_symbol +--- a/bfd/elf32-m68k.c ++++ b/bfd/elf32-m68k.c +@@ -2934,7 +2934,7 @@ elf_m68k_get_plt_info (bfd *output_bfd) + It's a convenient place to determine the PLT style. */ + + static bool +-elf_m68k_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf_m68k_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + /* Bind input BFDs to GOTs and calculate sizes of .got and .rela.got + sections. */ +@@ -3107,15 +3107,16 @@ elf_m68k_adjust_dynamic_symbol (struct b + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_m68k_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_m68k_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -4628,12 +4629,11 @@ elf_m68k_grok_psinfo (bfd *abfd, Elf_Int + #define bfd_elf32_bfd_final_link bfd_elf_final_link + + #define elf_backend_check_relocs elf_m68k_check_relocs +-#define elf_backend_always_size_sections \ +- elf_m68k_always_size_sections ++#define elf_backend_early_size_sections \ ++ elf_m68k_early_size_sections + #define elf_backend_adjust_dynamic_symbol \ + elf_m68k_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elf_m68k_size_dynamic_sections ++#define elf_backend_late_size_sections elf_m68k_late_size_sections + #define elf_backend_final_write_processing elf_m68k_final_write_processing + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section elf_m68k_relocate_section +--- a/bfd/elf32-metag.c ++++ b/bfd/elf32-metag.c +@@ -2717,8 +2717,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_metag_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_metag_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_metag_link_hash_table *htab; + bfd *dynobj; +@@ -2729,7 +2729,7 @@ elf_metag_size_dynamic_sections (bfd *ou + htab = metag_link_hash_table (info); + dynobj = htab->etab.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->etab.dynamic_sections_created) + { +@@ -4019,7 +4019,7 @@ elf_metag_plt_sym_val (bfd_vma i, const + #define elf_backend_adjust_dynamic_symbol elf_metag_adjust_dynamic_symbol + #define elf_backend_finish_dynamic_symbol elf_metag_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf_metag_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf_metag_size_dynamic_sections ++#define elf_backend_late_size_sections elf_metag_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_init_file_header elf_metag_init_file_header +--- a/bfd/elf32-microblaze.c ++++ b/bfd/elf32-microblaze.c +@@ -2901,8 +2901,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-microblaze_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++microblaze_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf32_mb_link_hash_table *htab; + bfd *dynobj; +@@ -2914,7 +2914,8 @@ microblaze_elf_size_dynamic_sections (bf + return false; + + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + /* Set up .got offsets for local syms, and space for local dynamic + relocs. */ +@@ -3431,7 +3432,7 @@ microblaze_elf_add_symbol_hook (bfd *abf + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections microblaze_elf_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol microblaze_elf_finish_dynamic_symbol +-#define elf_backend_size_dynamic_sections microblaze_elf_size_dynamic_sections ++#define elf_backend_late_size_sections microblaze_elf_late_size_sections + #define elf_backend_add_symbol_hook microblaze_elf_add_symbol_hook + + #include "elf32-target.h" +--- a/bfd/elf32-mips.c ++++ b/bfd/elf32-mips.c +@@ -2526,10 +2526,8 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf32-nds32.c ++++ b/bfd/elf32-nds32.c +@@ -4248,8 +4248,8 @@ elf32_nds32_add_dynreloc (bfd *output_bf + /* Set the sizes of the dynamic sections. */ + + static bool +-nds32_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++nds32_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_nds32_link_hash_table *htab; + bfd *dynobj; +@@ -4262,7 +4262,8 @@ nds32_elf_size_dynamic_sections (bfd *ou + return false; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -13930,7 +13931,7 @@ nds32_elf_unify_tls_model (bfd *inbfd, a + #define elf_backend_create_dynamic_sections nds32_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections nds32_elf_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol nds32_elf_finish_dynamic_symbol +-#define elf_backend_size_dynamic_sections nds32_elf_size_dynamic_sections ++#define elf_backend_late_size_sections nds32_elf_late_size_sections + #define elf_backend_relocate_section nds32_elf_relocate_section + #define elf_backend_gc_mark_hook nds32_elf_gc_mark_hook + #define elf_backend_grok_prstatus nds32_elf_grok_prstatus +--- a/bfd/elf32-nios2.c ++++ b/bfd/elf32-nios2.c +@@ -5411,7 +5411,7 @@ nios2_elf32_adjust_dynamic_symbol (struc + return true; + } + +-/* Worker function for nios2_elf32_size_dynamic_sections. */ ++/* Worker function for nios2_elf32_late_size_sections. */ + static bool + adjust_dynrelocs (struct elf_link_hash_entry *h, PTR inf) + { +@@ -5438,7 +5438,7 @@ adjust_dynrelocs (struct elf_link_hash_e + return true; + } + +-/* Another worker function for nios2_elf32_size_dynamic_sections. ++/* Another worker function for nios2_elf32_late_size_sections. + Allocate space in .plt, .got and associated reloc sections for + dynamic relocs. */ + static bool +@@ -5673,11 +5673,11 @@ allocate_dynrelocs (struct elf_link_hash + return true; + } + +-/* Implement elf_backend_size_dynamic_sections: ++/* Implement elf_backend_late_size_sections: + Set the sizes of the dynamic sections. */ + static bool +-nios2_elf32_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++nios2_elf32_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -5687,7 +5687,8 @@ nios2_elf32_size_dynamic_sections (bfd * + + htab = elf32_nios2_hash_table (info); + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + htab->res_n_size = 0; + if (htab->root.dynamic_sections_created) +@@ -6058,7 +6059,7 @@ const struct bfd_elf_special_section elf + nios2_elf32_finish_dynamic_sections + #define elf_backend_adjust_dynamic_symbol nios2_elf32_adjust_dynamic_symbol + #define elf_backend_reloc_type_class nios2_elf32_reloc_type_class +-#define elf_backend_size_dynamic_sections nios2_elf32_size_dynamic_sections ++#define elf_backend_late_size_sections nios2_elf32_late_size_sections + #define elf_backend_add_symbol_hook nios2_elf_add_symbol_hook + #define elf_backend_copy_indirect_symbol nios2_elf32_copy_indirect_symbol + #define elf_backend_object_p nios2_elf32_object_p +--- a/bfd/elf32-or1k.c ++++ b/bfd/elf32-or1k.c +@@ -3023,8 +3023,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-or1k_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++or1k_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_or1k_link_hash_table *htab; + bfd *dynobj; +@@ -3037,7 +3037,8 @@ or1k_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -3390,7 +3391,7 @@ or1k_grok_psinfo (bfd *abfd, Elf_Interna + #define elf_backend_copy_indirect_symbol or1k_elf_copy_indirect_symbol + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections or1k_elf_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections or1k_elf_size_dynamic_sections ++#define elf_backend_late_size_sections or1k_elf_late_size_sections + #define elf_backend_adjust_dynamic_symbol or1k_elf_adjust_dynamic_symbol + #define elf_backend_finish_dynamic_symbol or1k_elf_finish_dynamic_symbol + +--- a/bfd/elf32-ppc.c ++++ b/bfd/elf32-ppc.c +@@ -5497,8 +5497,8 @@ static const unsigned char glink_eh_fram + /* Set the sizes of the dynamic sections. */ + + static bool +-ppc_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++ppc_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct ppc_elf_link_hash_table *htab; + asection *s; +@@ -5506,11 +5506,12 @@ ppc_elf_size_dynamic_sections (bfd *outp + bfd *ibfd; + + #ifdef DEBUG +- fprintf (stderr, "ppc_elf_size_dynamic_sections called\n"); ++ fprintf (stderr, "ppc_elf_late_size_sections called\n"); + #endif + + htab = ppc_elf_hash_table (info); +- BFD_ASSERT (htab->elf.dynobj != NULL); ++ if (htab->elf.dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -10410,7 +10411,7 @@ ppc_elf_finish_dynamic_sections (bfd *ou + #define elf_backend_copy_indirect_symbol ppc_elf_copy_indirect_symbol + #define elf_backend_adjust_dynamic_symbol ppc_elf_adjust_dynamic_symbol + #define elf_backend_add_symbol_hook ppc_elf_add_symbol_hook +-#define elf_backend_size_dynamic_sections ppc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections ppc_elf_late_size_sections + #define elf_backend_hash_symbol ppc_elf_hash_symbol + #define elf_backend_finish_dynamic_symbol ppc_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections ppc_elf_finish_dynamic_sections +--- a/bfd/elf32-rl78.c ++++ b/bfd/elf32-rl78.c +@@ -1440,8 +1440,8 @@ rl78_elf_finish_dynamic_sections (bfd *a + } + + static bool +-rl78_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++rl78_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -2609,8 +2609,8 @@ rl78_elf_relax_section (bfd *abfd, + + #define bfd_elf32_bfd_relax_section rl78_elf_relax_section + #define elf_backend_check_relocs rl78_elf_check_relocs +-#define elf_backend_always_size_sections \ +- rl78_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ rl78_elf_early_size_sections + #define elf_backend_finish_dynamic_sections \ + rl78_elf_finish_dynamic_sections + +--- a/bfd/elf32-s390.c ++++ b/bfd/elf32-s390.c +@@ -1366,7 +1366,7 @@ elf_s390_gc_mark_hook (asection *sec, + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_s390_size_dynamic_sections if no dynamic sections will be ++ or elf_s390_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static void +@@ -1778,8 +1778,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_s390_link_hash_table *htab; + bfd *dynobj; +@@ -1790,7 +1790,7 @@ elf_s390_size_dynamic_sections (bfd *out + htab = elf_s390_hash_table (info); + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3926,7 +3926,7 @@ elf32_s390_merge_private_bfd_data (bfd * + #define elf_backend_gc_mark_hook elf_s390_gc_mark_hook + #define elf_backend_reloc_type_class elf_s390_reloc_type_class + #define elf_backend_relocate_section elf_s390_relocate_section +-#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections ++#define elf_backend_late_size_sections elf_s390_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_grok_prstatus elf_s390_grok_prstatus + #define elf_backend_grok_psinfo elf_s390_grok_psinfo +--- a/bfd/elf32-score.c ++++ b/bfd/elf32-score.c +@@ -1089,7 +1089,7 @@ score_elf_got_info (bfd *abfd, asection + appear towards the end. This reduces the amount of GOT space + required. MAX_LOCAL is used to set the number of local symbols + known to be in the dynamic symbol table. During +- s3_bfd_score_elf_size_dynamic_sections, this value is 1. Afterward, the ++ s3_bfd_score_elf_late_size_sections, this value is 1. Afterward, the + section symbols are added and the count is higher. */ + static bool + score_elf_sort_hash_table (struct bfd_link_info *info, +@@ -3160,8 +3160,8 @@ s3_bfd_score_elf_adjust_dynamic_symbol ( + /* This function is called after all the input files have been read, + and the input sections have been assigned to output sections. */ + static bool +-s3_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++s3_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -3237,14 +3237,15 @@ s3_bfd_score_elf_always_size_sections (b + + /* Set the sizes of the dynamic sections. */ + static bool +-s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++s3_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool reltext; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3313,7 +3314,7 @@ s3_bfd_score_elf_size_dynamic_sections ( + } + else if (startswith (name, ".got")) + { +- /* s3_bfd_score_elf_always_size_sections() has already done ++ /* s3_bfd_score_elf_early_size_sections() has already done + most of the work, but some symbols may have been mapped + to versions that we must now resolve in the got_entries + hash tables. */ +@@ -4177,22 +4178,22 @@ _bfd_score_elf_adjust_dynamic_symbol (st + } + + static bool +-_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + if (bfd_get_mach (output_bfd) == bfd_mach_score3) +- return s3_bfd_score_elf_always_size_sections (output_bfd, info); ++ return s3_bfd_score_elf_early_size_sections (output_bfd, info); + else +- return s7_bfd_score_elf_always_size_sections (output_bfd, info); ++ return s7_bfd_score_elf_early_size_sections (output_bfd, info); + } + + static bool +-_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (bfd_get_mach (output_bfd) == bfd_mach_score3) +- return s3_bfd_score_elf_size_dynamic_sections (output_bfd, info); ++ return s3_bfd_score_elf_late_size_sections (output_bfd, info); + else +- return s7_bfd_score_elf_size_dynamic_sections (output_bfd, info); ++ return s7_bfd_score_elf_late_size_sections (output_bfd, info); + } + + static bool +@@ -4455,10 +4456,10 @@ _bfd_score_elf_common_definition (Elf_In + _bfd_score_elf_section_from_bfd_section + #define elf_backend_adjust_dynamic_symbol \ + _bfd_score_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_score_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_score_elf_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ _bfd_score_elf_early_size_sections ++#define elf_backend_late_size_sections \ ++ _bfd_score_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_create_dynamic_sections \ + _bfd_score_elf_create_dynamic_sections +--- a/bfd/elf32-score.h ++++ b/bfd/elf32-score.h +@@ -78,10 +78,10 @@ s7_bfd_score_elf_adjust_dynamic_symbol ( + struct elf_link_hash_entry *); + + extern bool +-s7_bfd_score_elf_always_size_sections (bfd *, struct bfd_link_info *); ++s7_bfd_score_elf_early_size_sections (bfd *, struct bfd_link_info *); + + extern bool +-s7_bfd_score_elf_size_dynamic_sections (bfd *, struct bfd_link_info *); ++s7_bfd_score_elf_late_size_sections (bfd *, struct bfd_link_info *); + + extern bool + s7_bfd_score_elf_create_dynamic_sections (bfd *, struct bfd_link_info *); +--- a/bfd/elf32-score7.c ++++ b/bfd/elf32-score7.c +@@ -975,7 +975,7 @@ score_elf_got_info (bfd *abfd, asection + appear towards the end. This reduces the amount of GOT space + required. MAX_LOCAL is used to set the number of local symbols + known to be in the dynamic symbol table. During +- s7_bfd_score_elf_size_dynamic_sections, this value is 1. Afterward, the ++ s7_bfd_score_elf_late_size_sections, this value is 1. Afterward, the + section symbols are added and the count is higher. */ + + static bool +@@ -2969,8 +2969,8 @@ s7_bfd_score_elf_adjust_dynamic_symbol ( + and the input sections have been assigned to output sections. */ + + bool +-s7_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++s7_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -3047,14 +3047,15 @@ s7_bfd_score_elf_always_size_sections (b + /* Set the sizes of the dynamic sections. */ + + bool +-s7_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++s7_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool reltext; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3123,7 +3124,7 @@ s7_bfd_score_elf_size_dynamic_sections ( + } + else if (startswith (name, ".got")) + { +- /* s7_bfd_score_elf_always_size_sections() has already done ++ /* s7_bfd_score_elf_early_size_sections() has already done + most of the work, but some symbols may have been mapped + to versions that we must now resolve in the got_entries + hash tables. */ +--- a/bfd/elf32-sh.c ++++ b/bfd/elf32-sh.c +@@ -2925,7 +2925,7 @@ allocate_dynrelocs (struct elf_link_hash + It's a convenient place to determine the PLT style. */ + + static bool +-sh_elf_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++sh_elf_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + sh_elf_hash_table (info)->plt_info = get_plt_info (output_bfd, + bfd_link_pic (info)); +@@ -2940,8 +2940,8 @@ sh_elf_always_size_sections (bfd *output + /* Set the sizes of the dynamic sections. */ + + static bool +-sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++sh_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_sh_link_hash_table *htab; + bfd *dynobj; +@@ -2954,7 +2954,8 @@ sh_elf_size_dynamic_sections (bfd *outpu + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -6589,10 +6590,8 @@ sh_elf_encode_eh_address (bfd *abfd, + sh_elf_link_hash_table_create + #define elf_backend_adjust_dynamic_symbol \ + sh_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- sh_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- sh_elf_size_dynamic_sections ++#define elf_backend_early_size_sections sh_elf_early_size_sections ++#define elf_backend_late_size_sections sh_elf_late_size_sections + #define elf_backend_omit_section_dynsym sh_elf_omit_section_dynsym + #define elf_backend_finish_dynamic_symbol \ + sh_elf_finish_dynamic_symbol +--- a/bfd/elf32-sparc.c ++++ b/bfd/elf32-sparc.c +@@ -248,8 +248,7 @@ elf32_sparc_reloc_type_class (const stru + #define elf_backend_adjust_dynamic_symbol \ + _bfd_sparc_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym _bfd_sparc_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections \ +- _bfd_sparc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections _bfd_sparc_elf_late_size_sections + #define elf_backend_relocate_section _bfd_sparc_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ + _bfd_sparc_elf_finish_dynamic_symbol +--- a/bfd/elf32-tic6x.c ++++ b/bfd/elf32-tic6x.c +@@ -3160,7 +3160,7 @@ elf32_tic6x_allocate_dynrelocs (struct e + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_tic6x_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf32_tic6x_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf32_tic6x_link_hash_table *htab; + bfd *dynobj; +@@ -3171,7 +3171,7 @@ elf32_tic6x_size_dynamic_sections (bfd * + htab = elf32_tic6x_hash_table (info); + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3358,7 +3358,7 @@ elf32_tic6x_size_dynamic_sections (bfd * + and the input sections have been assigned to output sections. */ + + static bool +-elf32_tic6x_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf32_tic6x_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (elf32_tic6x_using_dsbt (output_bfd) && !bfd_link_relocatable (info) + && !bfd_elf_stack_segment_size (output_bfd, info, +@@ -4261,10 +4261,10 @@ elf32_tic6x_write_section (bfd *output_b + #define elf_backend_relocs_compatible _bfd_elf_relocs_compatible + #define elf_backend_finish_dynamic_symbol \ + elf32_tic6x_finish_dynamic_symbol +-#define elf_backend_always_size_sections \ +- elf32_tic6x_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_tic6x_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ elf32_tic6x_early_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_tic6x_late_size_sections + #define elf_backend_finish_dynamic_sections \ + elf32_tic6x_finish_dynamic_sections + #define bfd_elf32_bfd_final_link \ +--- a/bfd/elf32-tilegx.c ++++ b/bfd/elf32-tilegx.c +@@ -105,7 +105,7 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I + #define elf_backend_check_relocs tilegx_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilegx_elf_late_size_sections + #define elf_backend_relocate_section tilegx_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections +--- a/bfd/elf32-tilepro.c ++++ b/bfd/elf32-tilepro.c +@@ -2182,11 +2182,9 @@ tilepro_elf_omit_section_dynsym (bfd *ou + #define ELF32_DYNAMIC_INTERPRETER "/lib/ld.so.1" + + static bool +-tilepro_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++tilepro_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { +- (void)output_bfd; +- + struct elf_link_hash_table *htab; + bfd *dynobj; + asection *s; +@@ -2195,7 +2193,8 @@ tilepro_elf_size_dynamic_sections (bfd * + htab = tilepro_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3739,7 +3738,7 @@ tilepro_additional_program_headers (bfd + #define elf_backend_check_relocs tilepro_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilepro_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilepro_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilepro_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilepro_elf_late_size_sections + #define elf_backend_relocate_section tilepro_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilepro_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilepro_elf_finish_dynamic_sections +--- a/bfd/elf32-vax.c ++++ b/bfd/elf32-vax.c +@@ -36,7 +36,6 @@ static bool elf_vax_check_relocs (bfd *, + asection *, const Elf_Internal_Rela *); + static bool elf_vax_adjust_dynamic_symbol (struct bfd_link_info *, + struct elf_link_hash_entry *); +-static bool elf_vax_size_dynamic_sections (bfd *, struct bfd_link_info *); + static int elf_vax_relocate_section (bfd *, struct bfd_link_info *, + bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, +@@ -985,8 +984,8 @@ elf_vax_discard_got_entries (struct elf_ + /* Discard unused dynamic data if this is a static link. */ + + static bool +-elf_vax_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_vax_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -1024,14 +1023,15 @@ elf_vax_always_size_sections (bfd *outpu + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_vax_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf_vax_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -1861,10 +1861,8 @@ elf_vax_plt_sym_val (bfd_vma i, const as + #define elf_backend_check_relocs elf_vax_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elf_vax_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- elf_vax_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf_vax_size_dynamic_sections ++#define elf_backend_early_size_sections elf_vax_early_size_sections ++#define elf_backend_late_size_sections elf_vax_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section elf_vax_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf32-xstormy16.c ++++ b/bfd/elf32-xstormy16.c +@@ -706,8 +706,8 @@ xstormy16_elf_relax_section (bfd *dynobj + } + + static bool +-xstormy16_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++xstormy16_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -1013,8 +1013,8 @@ xstormy16_elf_gc_mark_hook (asection *se + #define elf_backend_relocate_section xstormy16_elf_relocate_section + #define elf_backend_gc_mark_hook xstormy16_elf_gc_mark_hook + #define elf_backend_check_relocs xstormy16_elf_check_relocs +-#define elf_backend_always_size_sections \ +- xstormy16_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ xstormy16_elf_early_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_sections \ +--- a/bfd/elf32-xtensa.c ++++ b/bfd/elf32-xtensa.c +@@ -1568,8 +1568,8 @@ elf_xtensa_allocate_local_got_size (stru + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_xtensa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_xtensa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_xtensa_link_hash_table *htab; + bfd *dynobj, *abfd; +@@ -1586,7 +1586,7 @@ elf_xtensa_size_dynamic_sections (bfd *o + + dynobj = elf_hash_table (info)->dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + srelgot = htab->elf.srelgot; + srelplt = htab->elf.srelplt; + +@@ -1791,8 +1791,7 @@ elf_xtensa_size_dynamic_sections (bfd *o + } + + static bool +-elf_xtensa_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_xtensa_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf_xtensa_link_hash_table *htab; + asection *tls_sec; +@@ -11551,8 +11550,8 @@ static const struct bfd_elf_special_sect + #define elf_backend_object_p elf_xtensa_object_p + #define elf_backend_reloc_type_class elf_xtensa_reloc_type_class + #define elf_backend_relocate_section elf_xtensa_relocate_section +-#define elf_backend_size_dynamic_sections elf_xtensa_size_dynamic_sections +-#define elf_backend_always_size_sections elf_xtensa_always_size_sections ++#define elf_backend_late_size_sections elf_xtensa_late_size_sections ++#define elf_backend_early_size_sections elf_xtensa_early_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_special_sections elf_xtensa_special_sections + #define elf_backend_action_discarded elf_xtensa_action_discarded +--- a/bfd/elf64-alpha.c ++++ b/bfd/elf64-alpha.c +@@ -2579,8 +2579,8 @@ elf64_alpha_size_plt_section (struct bfd + } + + static bool +-elf64_alpha_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_alpha_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *i; + struct alpha_elf_link_hash_table * htab; +@@ -2806,8 +2806,8 @@ elf64_alpha_size_rela_got_section (struc + /* Set the sizes of the dynamic sections. */ + + static bool +-elf64_alpha_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_alpha_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -2819,7 +2819,8 @@ elf64_alpha_size_dynamic_sections (bfd * + return false; + + dynobj = elf_hash_table(info)->dynobj; +- BFD_ASSERT(dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5465,10 +5466,10 @@ static const struct elf_size_info alpha_ + elf64_alpha_merge_symbol_attribute + #define elf_backend_copy_indirect_symbol \ + elf64_alpha_copy_indirect_symbol +-#define elf_backend_always_size_sections \ +- elf64_alpha_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf64_alpha_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ elf64_alpha_early_size_sections ++#define elf_backend_late_size_sections \ ++ elf64_alpha_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elf64-hppa.c ++++ b/bfd/elf64-hppa.c +@@ -176,9 +176,6 @@ static bool elf64_hppa_adjust_dynamic_sy + static bool elf64_hppa_mark_milli_and_exported_functions + (struct elf_link_hash_entry *, void *); + +-static bool elf64_hppa_size_dynamic_sections +- (bfd *, struct bfd_link_info *); +- + static int elf64_hppa_link_output_symbol_hook + (struct bfd_link_info *, const char *, Elf_Internal_Sym *, + asection *, struct elf_link_hash_entry *); +@@ -1520,7 +1517,7 @@ elf64_hppa_mark_milli_and_exported_funct + the contents of our special sections. */ + + static bool +-elf64_hppa_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf64_hppa_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf64_hppa_link_hash_table *hppa_info; + struct elf64_hppa_allocate_data data; +@@ -1534,7 +1531,8 @@ elf64_hppa_size_dynamic_sections (bfd *o + return false; + + dynobj = hppa_info->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + /* Mark each function this program exports so that we will allocate + space in the .opd section for each function's FPTR. If we are +@@ -3984,8 +3982,7 @@ const struct elf_size_info hppa64_elf_si + #define elf_backend_adjust_dynamic_symbol \ + elf64_hppa_adjust_dynamic_symbol + +-#define elf_backend_size_dynamic_sections \ +- elf64_hppa_size_dynamic_sections ++#define elf_backend_late_size_sections elf64_hppa_late_size_sections + + #define elf_backend_finish_dynamic_symbol \ + elf64_hppa_finish_dynamic_symbol +--- a/bfd/elf64-ia64-vms.c ++++ b/bfd/elf64-ia64-vms.c +@@ -2590,8 +2590,8 @@ elf64_ia64_adjust_dynamic_symbol (struct + } + + static bool +-elf64_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_ia64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf64_ia64_allocate_data data; + struct elf64_ia64_link_hash_table *ia64_info; +@@ -2600,11 +2600,12 @@ elf64_ia64_size_dynamic_sections (bfd *o + struct elf_link_hash_table *hash_table; + + hash_table = elf_hash_table (info); +- dynobj = hash_table->dynobj; + ia64_info = elf64_ia64_hash_table (info); + if (ia64_info == NULL) + return false; +- BFD_ASSERT(dynobj != NULL); ++ dynobj = hash_table->dynobj; ++ if (dynobj == NULL) ++ return true; + data.info = info; + + /* Allocate the GOT entries. */ +@@ -5484,8 +5485,8 @@ static const struct elf_size_info elf64_ + elf64_ia64_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elf64_ia64_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elf64_ia64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elf64_ia64_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elf64-mips.c ++++ b/bfd/elf64-mips.c +@@ -4741,10 +4741,10 @@ const struct elf_size_info mips_elf64_si + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections \ ++ _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf64-ppc.c ++++ b/bfd/elf64-ppc.c +@@ -119,8 +119,8 @@ static bfd_vma opd_entry_value + #define elf_backend_adjust_dynamic_symbol ppc64_elf_adjust_dynamic_symbol + #define elf_backend_hide_symbol ppc64_elf_hide_symbol + #define elf_backend_maybe_function_sym ppc64_elf_maybe_function_sym +-#define elf_backend_always_size_sections ppc64_elf_edit +-#define elf_backend_size_dynamic_sections ppc64_elf_size_dynamic_sections ++#define elf_backend_early_size_sections ppc64_elf_edit ++#define elf_backend_late_size_sections ppc64_elf_late_size_sections + #define elf_backend_hash_symbol ppc64_elf_hash_symbol + #define elf_backend_init_index_section _bfd_elf_init_2_index_sections + #define elf_backend_action_discarded ppc64_elf_action_discarded +@@ -10121,7 +10121,7 @@ allocate_dynrelocs (struct elf_link_hash + ((((v) & 0x3ffff0000ULL) << 16) | (v & 0xffff)) + #define HA34(v) ((v + (1ULL << 33)) >> 34) + +-/* Called via elf_link_hash_traverse from ppc64_elf_size_dynamic_sections ++/* Called via elf_link_hash_traverse from ppc64_elf_late_size_sections + to set up space for global entry stubs. These are put in glink, + after the branch table. */ + +@@ -10198,8 +10198,8 @@ size_global_entry_stubs (struct elf_link + /* Set the sizes of the dynamic sections. */ + + static bool +-ppc64_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++ppc64_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct ppc_link_hash_table *htab; + bfd *dynobj; +@@ -10214,7 +10214,7 @@ ppc64_elf_size_dynamic_sections (bfd *ou + + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +--- a/bfd/elf64-s390.c ++++ b/bfd/elf64-s390.c +@@ -1301,7 +1301,7 @@ elf_s390_gc_mark_hook (asection *sec, + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_s390_size_dynamic_sections if no dynamic sections will be ++ or elf_s390_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static void +@@ -1714,8 +1714,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_s390_link_hash_table *htab; + bfd *dynobj; +@@ -1729,7 +1729,7 @@ elf_s390_size_dynamic_sections (bfd *out + + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3881,7 +3881,7 @@ const struct elf_size_info s390_elf64_si + #define elf_backend_gc_mark_hook elf_s390_gc_mark_hook + #define elf_backend_reloc_type_class elf_s390_reloc_type_class + #define elf_backend_relocate_section elf_s390_relocate_section +-#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections ++#define elf_backend_late_size_sections elf_s390_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_grok_prstatus elf_s390_grok_prstatus + #define elf_backend_grok_psinfo elf_s390_grok_psinfo +--- a/bfd/elf64-sparc.c ++++ b/bfd/elf64-sparc.c +@@ -938,8 +938,8 @@ const struct elf_size_info elf64_sparc_s + _bfd_sparc_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym \ + _bfd_sparc_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections \ +- _bfd_sparc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_sparc_elf_late_size_sections + #define elf_backend_relocate_section \ + _bfd_sparc_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf64-tilegx.c ++++ b/bfd/elf64-tilegx.c +@@ -106,7 +106,7 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I + #define elf_backend_check_relocs tilegx_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilegx_elf_late_size_sections + #define elf_backend_relocate_section tilegx_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -2351,8 +2351,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struc + } + + static bool +-elf_x86_64_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_x86_64_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *abfd; + +@@ -2365,7 +2364,7 @@ elf_x86_64_always_size_sections (bfd *ou + elf_x86_64_scan_relocs)) + return false; + +- return _bfd_x86_elf_always_size_sections (output_bfd, info); ++ return _bfd_x86_elf_early_size_sections (output_bfd, info); + } + + /* Return the relocation value for @tpoff relocation +@@ -5262,7 +5261,7 @@ elf_x86_64_special_sections[]= + elf_x86_64_reloc_name_lookup + + #define elf_backend_relocs_compatible elf_x86_64_relocs_compatible +-#define elf_backend_always_size_sections elf_x86_64_always_size_sections ++#define elf_backend_early_size_sections elf_x86_64_early_size_sections + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections elf_x86_64_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol elf_x86_64_finish_dynamic_symbol +--- a/bfd/elflink.c ++++ b/bfd/elflink.c +@@ -6623,8 +6623,8 @@ bfd_elf_size_dynamic_sections (bfd *outp + + /* The backend may have to create some sections regardless of whether + we're dynamic or not. */ +- if (bed->elf_backend_always_size_sections +- && ! (*bed->elf_backend_always_size_sections) (output_bfd, info)) ++ if (bed->elf_backend_early_size_sections ++ && !bed->elf_backend_early_size_sections (output_bfd, info)) + return false; + + dynobj = elf_hash_table (info)->dynobj; +@@ -7360,9 +7360,8 @@ bfd_elf_size_dynamic_sections (bfd *outp + + /* The backend must work out the sizes of all the other dynamic + sections. */ +- if (dynobj != NULL +- && bed->elf_backend_size_dynamic_sections != NULL +- && ! (*bed->elf_backend_size_dynamic_sections) (output_bfd, info)) ++ if (bed->elf_backend_late_size_sections != NULL ++ && !bed->elf_backend_late_size_sections (output_bfd, info)) + return false; + + if (dynobj != NULL && elf_hash_table (info)->dynamic_sections_created) +--- a/bfd/elfn32-mips.c ++++ b/bfd/elfn32-mips.c +@@ -4127,10 +4127,8 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elfnn-aarch64.c ++++ b/bfd/elfnn-aarch64.c +@@ -112,7 +112,7 @@ + allocate space for one relocation on the slot. Record the GOT offset + for this symbol. + +- elfNN_aarch64_size_dynamic_sections () ++ elfNN_aarch64_late_size_sections () + + Iterate all input BFDS, look for in the local symbol data structure + constructed earlier for local TLS symbols and allocate them double +@@ -8859,8 +8859,8 @@ elfNN_aarch64_allocate_local_ifunc_dynre + though ! */ + + static bool +-elfNN_aarch64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elfNN_aarch64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_aarch64_link_hash_table *htab; + bfd *dynobj; +@@ -8871,7 +8871,8 @@ elfNN_aarch64_size_dynamic_sections (bfd + htab = elf_aarch64_hash_table ((info)); + dynobj = htab->root.dynobj; + +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -9273,8 +9274,8 @@ elfNN_aarch64_create_small_pltn_entry (s + _TLS_MODULE_BASE_, if needed. */ + + static bool +-elfNN_aarch64_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elfNN_aarch64_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *tls_sec; + +@@ -10009,8 +10010,8 @@ const struct elf_size_info elfNN_aarch64 + #define elf_backend_adjust_dynamic_symbol \ + elfNN_aarch64_adjust_dynamic_symbol + +-#define elf_backend_always_size_sections \ +- elfNN_aarch64_always_size_sections ++#define elf_backend_early_size_sections \ ++ elfNN_aarch64_early_size_sections + + #define elf_backend_check_relocs \ + elfNN_aarch64_check_relocs +@@ -10059,8 +10060,8 @@ const struct elf_size_info elfNN_aarch64 + #define elf_backend_section_from_shdr \ + elfNN_aarch64_section_from_shdr + +-#define elf_backend_size_dynamic_sections \ +- elfNN_aarch64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elfNN_aarch64_late_size_sections + + #define elf_backend_size_info \ + elfNN_aarch64_size_info +--- a/bfd/elfnn-ia64.c ++++ b/bfd/elfnn-ia64.c +@@ -2986,8 +2986,8 @@ elfNN_ia64_adjust_dynamic_symbol (struct + } + + static bool +-elfNN_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elfNN_ia64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elfNN_ia64_allocate_data data; + struct elfNN_ia64_link_hash_table *ia64_info; +@@ -2998,8 +2998,9 @@ elfNN_ia64_size_dynamic_sections (bfd *o + if (ia64_info == NULL) + return false; + dynobj = ia64_info->root.dynobj; ++ if (dynobj == NULL) ++ return true; + ia64_info->self_dtpmod_offset = (bfd_vma) -1; +- BFD_ASSERT(dynobj != NULL); + data.info = info; + + /* Set the contents of the .interp section to the interpreter. */ +@@ -5035,8 +5036,8 @@ ignore_errors (const char *fmt ATTRIBUTE + elfNN_ia64_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elfNN_ia64_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elfNN_ia64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elfNN_ia64_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elfnn-loongarch.c ++++ b/bfd/elfnn-loongarch.c +@@ -1169,8 +1169,8 @@ maybe_set_textrel (struct elf_link_hash_ + } + + static bool +-loongarch_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++loongarch_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct loongarch_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1180,7 +1180,8 @@ loongarch_elf_size_dynamic_sections (bfd + htab = loongarch_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3251,7 +3252,7 @@ loongarch_elf_gc_mark_hook (asection *se + loongarch_elf_create_dynamic_sections + #define elf_backend_check_relocs loongarch_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol loongarch_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections loongarch_elf_size_dynamic_sections ++#define elf_backend_late_size_sections loongarch_elf_late_size_sections + #define elf_backend_relocate_section loongarch_elf_relocate_section + #define elf_backend_finish_dynamic_symbol loongarch_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections \ +--- a/bfd/elfnn-riscv.c ++++ b/bfd/elfnn-riscv.c +@@ -1376,7 +1376,7 @@ allocate_local_ifunc_dynrelocs (void **s + } + + static bool +-riscv_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++riscv_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct riscv_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1386,7 +1386,8 @@ riscv_elf_size_dynamic_sections (bfd *ou + htab = riscv_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5256,7 +5257,7 @@ riscv_elf_merge_symbol_attribute (struct + #define elf_backend_create_dynamic_sections riscv_elf_create_dynamic_sections + #define elf_backend_check_relocs riscv_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol riscv_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections riscv_elf_size_dynamic_sections ++#define elf_backend_late_size_sections riscv_elf_late_size_sections + #define elf_backend_relocate_section riscv_elf_relocate_section + #define elf_backend_finish_dynamic_symbol riscv_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections riscv_elf_finish_dynamic_sections +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -9550,8 +9550,8 @@ _bfd_mips_elf_adjust_dynamic_symbol (str + check for any mips16 stub sections that we can discard. */ + + bool +-_bfd_mips_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_mips_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *sect; + struct mips_elf_link_hash_table *htab; +@@ -9894,8 +9894,8 @@ mips_elf_set_plt_sym_value (struct mips_ + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_mips_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_mips_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s, *sreldyn; +@@ -9905,7 +9905,8 @@ _bfd_mips_elf_size_dynamic_sections (bfd + htab = mips_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -14824,7 +14825,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_always_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_early_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf_External_ABIFlags_v0)); + + /* Skip this section later on (I don't think this currently +@@ -14883,7 +14884,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_always_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_early_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf32_External_RegInfo)); + + /* Skip this section later on (I don't think this currently +--- a/bfd/elfxx-mips.h ++++ b/bfd/elfxx-mips.h +@@ -52,9 +52,9 @@ extern bool _bfd_mips_elf_check_relocs + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); + extern bool _bfd_mips_elf_adjust_dynamic_symbol + (struct bfd_link_info *, struct elf_link_hash_entry *); +-extern bool _bfd_mips_elf_always_size_sections ++extern bool _bfd_mips_elf_early_size_sections + (bfd *, struct bfd_link_info *); +-extern bool _bfd_mips_elf_size_dynamic_sections ++extern bool _bfd_mips_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern int _bfd_mips_elf_relocate_section + (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, +--- a/bfd/elfxx-sparc.c ++++ b/bfd/elfxx-sparc.c +@@ -2381,8 +2381,8 @@ _bfd_sparc_elf_omit_section_dynsym (bfd + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_sparc_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_sparc_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct _bfd_sparc_elf_link_hash_table *htab; + bfd *dynobj; +@@ -2392,7 +2392,8 @@ _bfd_sparc_elf_size_dynamic_sections (bf + htab = _bfd_sparc_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +--- a/bfd/elfxx-sparc.h ++++ b/bfd/elfxx-sparc.h +@@ -117,7 +117,7 @@ extern bool _bfd_sparc_elf_adjust_dynami + (struct bfd_link_info *, struct elf_link_hash_entry *); + extern bool _bfd_sparc_elf_omit_section_dynsym + (bfd *, struct bfd_link_info *, asection *); +-extern bool _bfd_sparc_elf_size_dynamic_sections ++extern bool _bfd_sparc_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern bool _bfd_sparc_elf_new_section_hook + (bfd *, asection *); +--- a/bfd/elfxx-target.h ++++ b/bfd/elfxx-target.h +@@ -493,11 +493,11 @@ + #ifndef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol 0 + #endif +-#ifndef elf_backend_always_size_sections +-#define elf_backend_always_size_sections 0 ++#ifndef elf_backend_early_size_sections ++#define elf_backend_early_size_sections 0 + #endif +-#ifndef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections 0 ++#ifndef elf_backend_late_size_sections ++#define elf_backend_late_size_sections 0 + #endif + #ifndef elf_backend_strip_zero_sized_dynamic_sections + #define elf_backend_strip_zero_sized_dynamic_sections 0 +@@ -853,8 +853,8 @@ static const struct elf_backend_data elf + elf_backend_check_directives, + elf_backend_notice_as_needed, + elf_backend_adjust_dynamic_symbol, +- elf_backend_always_size_sections, +- elf_backend_size_dynamic_sections, ++ elf_backend_early_size_sections, ++ elf_backend_late_size_sections, + elf_backend_strip_zero_sized_dynamic_sections, + elf_backend_init_index_section, + elf_backend_relocate_section, +--- a/bfd/elfxx-tilegx.c ++++ b/bfd/elfxx-tilegx.c +@@ -2430,8 +2430,8 @@ tilegx_elf_omit_section_dynsym (bfd *out + } + + bool +-tilegx_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++tilegx_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct tilegx_elf_link_hash_table *htab; + bfd *dynobj; +@@ -2441,7 +2441,8 @@ tilegx_elf_size_dynamic_sections (bfd *o + htab = tilegx_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +--- a/bfd/elfxx-tilegx.h ++++ b/bfd/elfxx-tilegx.h +@@ -57,7 +57,7 @@ tilegx_elf_omit_section_dynsym (bfd *, + asection *); + + extern bool +-tilegx_elf_size_dynamic_sections (bfd *, struct bfd_link_info *); ++tilegx_elf_late_size_sections (bfd *, struct bfd_link_info *); + + extern int + tilegx_elf_relocate_section (bfd *, struct bfd_link_info *, +--- a/bfd/elfxx-x86.c ++++ b/bfd/elfxx-x86.c +@@ -2002,7 +2002,7 @@ _bfd_elf_x86_valid_reloc_p (asection *in + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_x86_elf_size_dynamic_sections (bfd *output_bfd, ++_bfd_x86_elf_late_size_sections (bfd *output_bfd, + struct bfd_link_info *info) + { + struct elf_x86_link_hash_table *htab; +@@ -2018,7 +2018,7 @@ _bfd_x86_elf_size_dynamic_sections (bfd + return false; + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + /* Set up .got offsets for local syms, and space for local dynamic + relocs. */ +@@ -2599,8 +2599,8 @@ _bfd_x86_elf_finish_dynamic_sections (bf + + + bool +-_bfd_x86_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_x86_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *tls_sec = elf_hash_table (info)->tls_sec; + +--- a/bfd/elfxx-x86.h ++++ b/bfd/elfxx-x86.h +@@ -807,13 +807,13 @@ extern bool _bfd_elf_x86_valid_reloc_p + const Elf_Internal_Rela *, struct elf_link_hash_entry *, + Elf_Internal_Sym *, Elf_Internal_Shdr *, bool *); + +-extern bool _bfd_x86_elf_size_dynamic_sections ++extern bool _bfd_x86_elf_late_size_sections + (bfd *, struct bfd_link_info *); + + extern struct elf_x86_link_hash_table *_bfd_x86_elf_finish_dynamic_sections + (bfd *, struct bfd_link_info *); + +-extern bool _bfd_x86_elf_always_size_sections ++extern bool _bfd_x86_elf_early_size_sections + (bfd *, struct bfd_link_info *); + + extern void _bfd_x86_elf_merge_symbol_attribute +@@ -885,8 +885,8 @@ extern void _bfd_x86_elf_link_report_rel + + #define elf_backend_check_relocs \ + _bfd_x86_elf_check_relocs +-#define elf_backend_size_dynamic_sections \ +- _bfd_x86_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_x86_elf_late_size_sections + #define elf_backend_merge_symbol_attribute \ + _bfd_x86_elf_merge_symbol_attribute + #define elf_backend_copy_indirect_symbol \ +--- a/ld/emultempl/vms.em ++++ b/ld/emultempl/vms.em +@@ -196,10 +196,9 @@ gld${EMULATION_NAME}_before_allocation ( + + /* The backend must work out the sizes of all the other dynamic + sections. */ +- if (elf_hash_table (&link_info)->dynamic_sections_created +- && bed->elf_backend_size_dynamic_sections +- && ! (*bed->elf_backend_size_dynamic_sections) (link_info.output_bfd, +- &link_info)) ++ if (bed->elf_backend_late_size_sections ++ && !bed->elf_backend_late_size_sections (link_info.output_bfd, ++ &link_info)) + einfo (_("%F%P: failed to set dynamic section sizes: %E\n")); + + before_allocation_default (); diff --git a/toolchain/binutils/patches/2.38/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch b/toolchain/binutils/patches/2.38/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch new file mode 100644 index 00000000000000..725d67651049f4 --- /dev/null +++ b/toolchain/binutils/patches/2.38/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch @@ -0,0 +1,218 @@ +From 3c6c32951e292a51ede70b8087bb0308d7dbc4fc Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Thu, 28 Mar 2024 20:33:32 +1030 +Subject: [PATCH 2/2] PR 30569, delete _bfd_mips_elf_early_size_sections + +PR30569 was triggered by a patch of mine 6540edd52cc0 moving the call +to always_size_sections in bfd_elf_size_dynamic_sections earlier, made +to support the x86 DT_RELR implementation. This broke mips16 code +handling stubs when --export-dynamic is passed to the linker, because +numerous symbols then became dynamic after always_size_sections. The +mips backend fiddles with symbols in its always_size_sections. Maciej +in 902e9fc76a0e had moved the call to always_size_sections to after +the export-dynamic code. Prior to that, Nathan in 04c3a75556c0 moved +it before the exec stack code, back to the start of +bfd_elf_size_dynamic_sections which was where Ian put it originally +in ff12f303355b. So the call has moved around a little. I'm leaving +it where it is, and instead calling mips_elf_check_symbols from +late_size_sections (the old size_dynamic_sections) which is now always +called. In fact, the whole of _bfd_mips_elf_early_size_sections can +be merged into _bfd_mips_elf_late_size_sections. +--- + bfd/elf32-mips.c | 1 - + bfd/elf64-mips.c | 2 -- + bfd/elfn32-mips.c | 1 - + bfd/elfxx-mips.c | 84 +++++++++++++++++++---------------------------- + bfd/elfxx-mips.h | 2 -- + 5 files changed, 34 insertions(+), 56 deletions(-) + +--- a/bfd/elf32-mips.c ++++ b/bfd/elf32-mips.c +@@ -2526,7 +2526,6 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section +--- a/bfd/elf64-mips.c ++++ b/bfd/elf64-mips.c +@@ -4741,8 +4741,6 @@ const struct elf_size_info mips_elf64_si + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections \ +- _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections \ + _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section +--- a/bfd/elfn32-mips.c ++++ b/bfd/elfn32-mips.c +@@ -4127,7 +4127,6 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -9545,48 +9545,6 @@ _bfd_mips_elf_adjust_dynamic_symbol (str + return _bfd_elf_adjust_dynamic_copy (info, h, s); + } + +-/* This function is called after all the input files have been read, +- and the input sections have been assigned to output sections. We +- check for any mips16 stub sections that we can discard. */ +- +-bool +-_bfd_mips_elf_early_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) +-{ +- asection *sect; +- struct mips_elf_link_hash_table *htab; +- struct mips_htab_traverse_info hti; +- +- htab = mips_elf_hash_table (info); +- BFD_ASSERT (htab != NULL); +- +- /* The .reginfo section has a fixed size. */ +- sect = bfd_get_section_by_name (output_bfd, ".reginfo"); +- if (sect != NULL) +- { +- bfd_set_section_size (sect, sizeof (Elf32_External_RegInfo)); +- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; +- } +- +- /* The .MIPS.abiflags section has a fixed size. */ +- sect = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags"); +- if (sect != NULL) +- { +- bfd_set_section_size (sect, sizeof (Elf_External_ABIFlags_v0)); +- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; +- } +- +- hti.info = info; +- hti.output_bfd = output_bfd; +- hti.error = false; +- mips_elf_link_hash_traverse (mips_elf_hash_table (info), +- mips_elf_check_symbols, &hti); +- if (hti.error) +- return false; +- +- return true; +-} +- + /* If the link uses a GOT, lay it out and work out its size. */ + + static bool +@@ -9891,7 +9849,8 @@ mips_elf_set_plt_sym_value (struct mips_ + return true; + } + +-/* Set the sizes of the dynamic sections. */ ++/* Set the sizes of the dynamic sections, some mips non-dynamic sections, ++ and check for any mips16 stub sections that we can discard. */ + + bool + _bfd_mips_elf_late_size_sections (bfd *output_bfd, +@@ -9901,14 +9860,39 @@ _bfd_mips_elf_late_size_sections (bfd *o + asection *s, *sreldyn; + bool reltext; + struct mips_elf_link_hash_table *htab; ++ struct mips_htab_traverse_info hti; + + htab = mips_elf_hash_table (info); + BFD_ASSERT (htab != NULL); +- dynobj = elf_hash_table (info)->dynobj; ++ ++ /* The .reginfo section has a fixed size. */ ++ s = bfd_get_section_by_name (output_bfd, ".reginfo"); ++ if (s != NULL) ++ { ++ bfd_set_section_size (s, sizeof (Elf32_External_RegInfo)); ++ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; ++ } ++ ++ /* The .MIPS.abiflags section has a fixed size. */ ++ s = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags"); ++ if (s != NULL) ++ { ++ bfd_set_section_size (s, sizeof (Elf_External_ABIFlags_v0)); ++ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; ++ } ++ ++ hti.info = info; ++ hti.output_bfd = output_bfd; ++ hti.error = false; ++ mips_elf_link_hash_traverse (htab, mips_elf_check_symbols, &hti); ++ if (hti.error) ++ return false; ++ ++ dynobj = htab->root.dynobj; + if (dynobj == NULL) + return true; + +- if (elf_hash_table (info)->dynamic_sections_created) ++ if (htab->root.dynamic_sections_created) + { + /* Set the contents of the .interp section to the interpreter. */ + if (bfd_link_executable (info) && !info->nointerp) +@@ -10048,7 +10032,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + } + else if (bfd_link_executable (info) +- && ! mips_elf_hash_table (info)->use_rld_obj_head ++ && !htab->use_rld_obj_head + && startswith (name, ".rld_map")) + { + /* We add a room for __rld_map. It will be filled in by the +@@ -10057,7 +10041,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + else if (SGI_COMPAT (output_bfd) + && startswith (name, ".compact_rel")) +- s->size += mips_elf_hash_table (info)->compact_rel_size; ++ s->size += htab->compact_rel_size; + else if (s == htab->root.splt) + { + /* If the last PLT entry has a branch delay slot, allocate +@@ -10097,7 +10081,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + } + +- if (elf_hash_table (info)->dynamic_sections_created) ++ if (htab->root.dynamic_sections_created) + { + /* Add some entries to the .dynamic section. We fill in the + values later, in _bfd_mips_elf_finish_dynamic_sections, but we +@@ -14825,7 +14809,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_early_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_late_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf_External_ABIFlags_v0)); + + /* Skip this section later on (I don't think this currently +@@ -14884,7 +14868,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_early_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_late_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf32_External_RegInfo)); + + /* Skip this section later on (I don't think this currently +--- a/bfd/elfxx-mips.h ++++ b/bfd/elfxx-mips.h +@@ -52,8 +52,6 @@ extern bool _bfd_mips_elf_check_relocs + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); + extern bool _bfd_mips_elf_adjust_dynamic_symbol + (struct bfd_link_info *, struct elf_link_hash_entry *); +-extern bool _bfd_mips_elf_early_size_sections +- (bfd *, struct bfd_link_info *); + extern bool _bfd_mips_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern int _bfd_mips_elf_relocate_section diff --git a/toolchain/binutils/patches/2.39/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch b/toolchain/binutils/patches/2.39/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch new file mode 100644 index 00000000000000..84b99172f710fe --- /dev/null +++ b/toolchain/binutils/patches/2.39/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch @@ -0,0 +1,2172 @@ +From af969b14aedcc0ae27dcefab4327ff2d153dec8b Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Thu, 28 Mar 2024 19:25:42 +1030 +Subject: [PATCH 1/2] PR 30569, always call elf_backend_size_dynamic_sections + +This largely mechanical patch is preparation for a followup patch. + +For quite some time I've thought that it would be useful to call +elf_backend_size_dynamic_sections even when no dynamic objects are +seen by the linker. That's what this patch does, with some renaming. +There are no functional changes to the linker, just a move of the +dynobj test in bfd_elf_size_dynamic_sections to target backend +functions, replacing the asserts/aborts already there. No doubt some +of the current always_size_sections functions could be moved to +size_dynamic_sections but I haven't made that change. + +Because both hooks are now always called, I have renamed +always_size_sections to early_size_sections and size_dynamic_sections +to late_size_sections. I condisdered calling late_size_sections plain +size_sections, since this is the usual target dynamic section sizing +hook, but decided that searching the sources for "size_sections" would +then hit early_size_sections and other functions. +--- + bfd/elf-bfd.h | 35 +++++++++++++++++------------------ + bfd/elf-m10300.c | 11 ++++++----- + bfd/elf32-arc.c | 9 +++++---- + bfd/elf32-arm.c | 15 ++++++++------- + bfd/elf32-bfin.c | 31 ++++++++++++++++--------------- + bfd/elf32-cr16.c | 11 ++++++----- + bfd/elf32-cris.c | 13 +++++++------ + bfd/elf32-csky.c | 8 ++++---- + bfd/elf32-frv.c | 23 ++++++++++++----------- + bfd/elf32-hppa.c | 8 ++++---- + bfd/elf32-i386.c | 7 +++---- + bfd/elf32-lm32.c | 15 ++++++++------- + bfd/elf32-m32c.c | 8 ++++---- + bfd/elf32-m32r.c | 11 ++++++----- + bfd/elf32-m68k.c | 16 ++++++++-------- + bfd/elf32-metag.c | 8 ++++---- + bfd/elf32-microblaze.c | 9 +++++---- + bfd/elf32-mips.c | 6 ++---- + bfd/elf32-nds32.c | 9 +++++---- + bfd/elf32-nios2.c | 15 ++++++++------- + bfd/elf32-or1k.c | 9 +++++---- + bfd/elf32-ppc.c | 11 ++++++----- + bfd/elf32-rl78.c | 8 ++++---- + bfd/elf32-s390.c | 10 +++++----- + bfd/elf32-score.c | 35 ++++++++++++++++++----------------- + bfd/elf32-score.h | 4 ++-- + bfd/elf32-score7.c | 13 +++++++------ + bfd/elf32-sh.c | 15 +++++++-------- + bfd/elf32-sparc.c | 3 +-- + bfd/elf32-tic6x.c | 14 +++++++------- + bfd/elf32-tilegx.c | 2 +- + bfd/elf32-tilepro.c | 11 +++++------ + bfd/elf32-vax.c | 16 +++++++--------- + bfd/elf32-xstormy16.c | 8 ++++---- + bfd/elf32-xtensa.c | 13 ++++++------- + bfd/elf64-alpha.c | 19 ++++++++++--------- + bfd/elf64-hppa.c | 11 ++++------- + bfd/elf64-ia64-vms.c | 13 +++++++------ + bfd/elf64-mips.c | 8 ++++---- + bfd/elf64-ppc.c | 12 ++++++------ + bfd/elf64-s390.c | 10 +++++----- + bfd/elf64-sparc.c | 4 ++-- + bfd/elf64-tilegx.c | 2 +- + bfd/elf64-x86-64.c | 7 +++---- + bfd/elflink.c | 9 ++++----- + bfd/elfn32-mips.c | 6 ++---- + bfd/elfnn-aarch64.c | 21 +++++++++++---------- + bfd/elfnn-ia64.c | 11 ++++++----- + bfd/elfnn-kvx.c | 19 +++++++++---------- + bfd/elfnn-loongarch.c | 9 +++++---- + bfd/elfnn-riscv.c | 7 ++++--- + bfd/elfxx-mips.c | 15 ++++++++------- + bfd/elfxx-mips.h | 4 ++-- + bfd/elfxx-sparc.c | 7 ++++--- + bfd/elfxx-sparc.h | 2 +- + bfd/elfxx-target.h | 12 ++++++------ + bfd/elfxx-tilegx.c | 7 ++++--- + bfd/elfxx-tilegx.h | 2 +- + bfd/elfxx-x86.c | 8 ++++---- + bfd/elfxx-x86.h | 8 ++++---- + ld/emultempl/vms.em | 7 +++---- + 61 files changed, 343 insertions(+), 337 deletions(-) + +--- a/bfd/elf-bfd.h ++++ b/bfd/elf-bfd.h +@@ -1136,7 +1136,7 @@ struct elf_backend_data + /* The ADJUST_DYNAMIC_SYMBOL function is called by the ELF backend + linker for every symbol which is defined by a dynamic object and + referenced by a regular object. This is called after all the +- input files have been seen, but before the SIZE_DYNAMIC_SECTIONS ++ input files have been seen, but before the LATE_SIZE_SECTIONS + function has been called. The hash table entry should be + bfd_link_hash_defined ore bfd_link_hash_defweak, and it should be + defined in a section from a dynamic object. Dynamic object +@@ -1148,24 +1148,23 @@ struct elf_backend_data + bool (*elf_backend_adjust_dynamic_symbol) + (struct bfd_link_info *info, struct elf_link_hash_entry *h); + +- /* The ALWAYS_SIZE_SECTIONS function is called by the backend linker +- after all the linker input files have been seen but before the +- section sizes have been set. This is called after +- ADJUST_DYNAMIC_SYMBOL, but before SIZE_DYNAMIC_SECTIONS. */ +- bool (*elf_backend_always_size_sections) ++ /* The EARLY_SIZE_SECTIONS and LATE_SIZE_SECTIONS functions are ++ called by the backend linker after all linker input files have ++ been seen and sections have been assigned to output sections, but ++ before the section sizes have been set. Both of these functions ++ are called even when no dynamic object is seen by the linker. ++ Between them, they must set the sizes of the dynamic sections and ++ other backend specific sections, and may fill in their contents. ++ Most backends need only use LATE_SIZE_SECTIONS. ++ EARLY_SIZE_SECTIONS is called before --export-dynamic makes some ++ symbols dynamic and before ADJUST_DYNAMIC_SYMBOL processes ++ dynamic symbols, LATE_SIZE_SECTIONS afterwards. The generic ELF ++ linker can handle the .dynsym, .dynstr and .hash sections. ++ Besides those, these functions must handle the .interp section ++ and any other sections created by CREATE_DYNAMIC_SECTIONS. */ ++ bool (*elf_backend_early_size_sections) + (bfd *output_bfd, struct bfd_link_info *info); +- +- /* The SIZE_DYNAMIC_SECTIONS function is called by the ELF backend +- linker after all the linker input files have been seen but before +- the sections sizes have been set. This is called after +- ADJUST_DYNAMIC_SYMBOL has been called on all appropriate symbols. +- It is only called when linking against a dynamic object. It must +- set the sizes of the dynamic sections, and may fill in their +- contents as well. The generic ELF linker can handle the .dynsym, +- .dynstr and .hash sections. This function must handle the +- .interp section and any sections created by the +- CREATE_DYNAMIC_SECTIONS entry point. */ +- bool (*elf_backend_size_dynamic_sections) ++ bool (*elf_backend_late_size_sections) + (bfd *output_bfd, struct bfd_link_info *info); + + /* The STRIP_ZERO_SIZED_DYNAMIC_SECTIONS function is called by the +--- a/bfd/elf-m10300.c ++++ b/bfd/elf-m10300.c +@@ -5003,8 +5003,8 @@ _bfd_mn10300_elf_adjust_dynamic_symbol ( + /* Set the sizes of the dynamic sections. */ + + static bool +-_bfd_mn10300_elf_size_dynamic_sections (bfd * output_bfd, +- struct bfd_link_info * info) ++_bfd_mn10300_elf_late_size_sections (bfd * output_bfd, ++ struct bfd_link_info * info) + { + struct elf32_mn10300_link_hash_table *htab = elf32_mn10300_hash_table (info); + bfd * dynobj; +@@ -5012,7 +5012,8 @@ _bfd_mn10300_elf_size_dynamic_sections ( + bool relocs; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5499,8 +5500,8 @@ mn10300_elf_mkobject (bfd *abfd) + _bfd_mn10300_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mn10300_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- _bfd_mn10300_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_mn10300_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_symbol \ + _bfd_mn10300_elf_finish_dynamic_symbol +--- a/bfd/elf32-arc.c ++++ b/bfd/elf32-arc.c +@@ -2702,8 +2702,8 @@ elf_arc_finish_dynamic_sections (bfd * o + + /* Set the sizes of the dynamic sections. */ + static bool +-elf_arc_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_arc_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -2711,7 +2711,8 @@ elf_arc_size_dynamic_sections (bfd *outp + struct elf_link_hash_table *htab = elf_hash_table (info); + + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -3126,7 +3127,7 @@ arc_elf_relax_section (bfd *abfd, asecti + #define elf_backend_finish_dynamic_symbol elf_arc_finish_dynamic_symbol + + #define elf_backend_finish_dynamic_sections elf_arc_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf_arc_size_dynamic_sections ++#define elf_backend_late_size_sections elf_arc_late_size_sections + + #define elf_backend_can_gc_sections 1 + #define elf_backend_want_got_plt 1 +--- a/bfd/elf32-arm.c ++++ b/bfd/elf32-arm.c +@@ -16729,8 +16729,8 @@ bfd_elf32_arm_set_byteswap_code (struct + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info * info) ++elf32_arm_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info * info) + { + bfd * dynobj; + asection * s; +@@ -16743,7 +16743,9 @@ elf32_arm_size_dynamic_sections (bfd * o + return false; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; ++ + check_use_blx (htab); + + if (elf_hash_table (info)->dynamic_sections_created) +@@ -17115,8 +17117,7 @@ elf32_arm_size_dynamic_sections (bfd * o + _TLS_MODULE_BASE_, if needed. */ + + static bool +-elf32_arm_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_arm_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + asection *tls_sec; + struct elf32_arm_link_hash_table *htab; +@@ -20283,8 +20284,8 @@ elf32_arm_backend_symbol_processing (bfd + #define elf_backend_create_dynamic_sections elf32_arm_create_dynamic_sections + #define elf_backend_finish_dynamic_symbol elf32_arm_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf32_arm_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf32_arm_size_dynamic_sections +-#define elf_backend_always_size_sections elf32_arm_always_size_sections ++#define elf_backend_late_size_sections elf32_arm_late_size_sections ++#define elf_backend_early_size_sections elf32_arm_early_size_sections + #define elf_backend_init_index_section _bfd_elf_init_2_index_sections + #define elf_backend_init_file_header elf32_arm_init_file_header + #define elf_backend_reloc_type_class elf32_arm_reloc_type_class +--- a/bfd/elf32-bfin.c ++++ b/bfd/elf32-bfin.c +@@ -4027,8 +4027,8 @@ _bfinfdpic_size_got_plt (bfd *output_bfd + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_bfinfdpic_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_bfinfdpic_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct elf_link_hash_table *htab; + bfd *dynobj; +@@ -4037,7 +4037,8 @@ elf32_bfinfdpic_size_dynamic_sections (b + + htab = elf_hash_table (info); + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -4086,7 +4087,7 @@ elf32_bfinfdpic_size_dynamic_sections (b + } + + static bool +-elf32_bfinfdpic_always_size_sections (bfd *output_bfd, ++elf32_bfinfdpic_early_size_sections (bfd *output_bfd, + struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info) +@@ -5124,15 +5125,16 @@ bfin_discard_copies (struct elf_link_has + } + + static bool +-bfin_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++bfin_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5424,8 +5426,7 @@ struct bfd_elf_special_section const elf + #define elf_backend_check_relocs bfin_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + bfin_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- bfin_size_dynamic_sections ++#define elf_backend_late_size_sections bfin_late_size_sections + #define elf_backend_relocate_section bfin_relocate_section + #define elf_backend_finish_dynamic_symbol \ + bfin_finish_dynamic_symbol +@@ -5471,9 +5472,9 @@ struct bfd_elf_special_section const elf + #undef bfd_elf32_bfd_link_hash_table_create + #define bfd_elf32_bfd_link_hash_table_create \ + bfinfdpic_elf_link_hash_table_create +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections \ +- elf32_bfinfdpic_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections \ ++ elf32_bfinfdpic_early_size_sections + + #undef elf_backend_create_dynamic_sections + #define elf_backend_create_dynamic_sections \ +@@ -5481,9 +5482,9 @@ struct bfd_elf_special_section const elf + #undef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol \ + elf32_bfinfdpic_adjust_dynamic_symbol +-#undef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_bfinfdpic_size_dynamic_sections ++#undef elf_backend_late_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_bfinfdpic_late_size_sections + #undef elf_backend_finish_dynamic_symbol + #define elf_backend_finish_dynamic_symbol \ + elf32_bfinfdpic_finish_dynamic_symbol +--- a/bfd/elf32-cr16.c ++++ b/bfd/elf32-cr16.c +@@ -2381,15 +2381,16 @@ _bfd_cr16_elf_adjust_dynamic_symbol (str + /* Set the sizes of the dynamic sections. */ + + static bool +-_bfd_cr16_elf_size_dynamic_sections (bfd * output_bfd, +- struct bfd_link_info * info) ++_bfd_cr16_elf_late_size_sections (bfd * output_bfd, ++ struct bfd_link_info * info) + { + bfd * dynobj; + asection * s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -2826,8 +2827,8 @@ _bfd_cr16_elf_reloc_type_class (const st + _bfd_cr16_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol \ + _bfd_cr16_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- _bfd_cr16_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_cr16_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_symbol \ + _bfd_cr16_elf_finish_dynamic_symbol +--- a/bfd/elf32-cris.c ++++ b/bfd/elf32-cris.c +@@ -2527,7 +2527,7 @@ cris_elf_plt_sym_val (bfd_vma i ATTRIBUT + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_cris_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_cris_size_dynamic_sections if no dynamic sections will be ++ or elf_cris_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static bool +@@ -3508,8 +3508,8 @@ cris_elf_check_relocs (bfd *abfd, + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_cris_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_cris_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_cris_link_hash_table * htab; + bfd *dynobj; +@@ -3521,7 +3521,8 @@ elf_cris_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -4090,8 +4091,8 @@ elf_cris_got_elt_size (bfd *abfd ATTRIBU + elf_cris_adjust_dynamic_symbol + #define elf_backend_copy_indirect_symbol \ + elf_cris_copy_indirect_symbol +-#define elf_backend_size_dynamic_sections \ +- elf_cris_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elf_cris_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_finish_dynamic_symbol \ + elf_cris_finish_dynamic_symbol +--- a/bfd/elf32-csky.c ++++ b/bfd/elf32-csky.c +@@ -1893,8 +1893,8 @@ csky_allocate_dynrelocs (struct elf_link + /* Set the sizes of the dynamic sections. */ + + static bool +-csky_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++csky_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct csky_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1907,7 +1907,7 @@ csky_elf_size_dynamic_sections (bfd *out + return false; + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- return false; ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -5344,7 +5344,7 @@ elf32_csky_obj_attrs_handle_unknown (bfd + /* Dynamic relocate related API. */ + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol csky_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections csky_elf_size_dynamic_sections ++#define elf_backend_late_size_sections csky_elf_late_size_sections + #define elf_backend_finish_dynamic_symbol csky_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections csky_elf_finish_dynamic_sections + #define elf_backend_rela_normal 1 +--- a/bfd/elf32-frv.c ++++ b/bfd/elf32-frv.c +@@ -5423,15 +5423,16 @@ _frvfdpic_size_got_plt (bfd *output_bfd, + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_frvfdpic_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_frvfdpic_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + struct _frvfdpic_dynamic_got_plt_info gpinfo; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5472,8 +5473,8 @@ elf32_frvfdpic_size_dynamic_sections (bf + } + + static bool +-elf32_frvfdpic_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_frvfdpic_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info) + && !bfd_elf_stack_segment_size (output_bfd, info, +@@ -6817,9 +6818,9 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In + #undef bfd_elf32_bfd_link_hash_table_create + #define bfd_elf32_bfd_link_hash_table_create \ + frvfdpic_elf_link_hash_table_create +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections \ +- elf32_frvfdpic_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections \ ++ elf32_frvfdpic_early_size_sections + + #undef elf_backend_create_dynamic_sections + #define elf_backend_create_dynamic_sections \ +@@ -6827,9 +6828,9 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In + #undef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol \ + elf32_frvfdpic_adjust_dynamic_symbol +-#undef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_frvfdpic_size_dynamic_sections ++#undef elf_backend_late_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_frvfdpic_late_size_sections + #undef bfd_elf32_bfd_relax_section + #define bfd_elf32_bfd_relax_section \ + elf32_frvfdpic_relax_section +--- a/bfd/elf32-hppa.c ++++ b/bfd/elf32-hppa.c +@@ -2042,8 +2042,8 @@ clobber_millicode_symbols (struct elf_li + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf32_hppa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf32_hppa_link_hash_table *htab; + bfd *dynobj; +@@ -2057,7 +2057,7 @@ elf32_hppa_size_dynamic_sections (bfd *o + + dynobj = htab->etab.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->etab.dynamic_sections_created) + { +@@ -4450,7 +4450,7 @@ elf32_hppa_elf_get_symbol_type (Elf_Inte + #define elf_backend_hide_symbol elf32_hppa_hide_symbol + #define elf_backend_finish_dynamic_symbol elf32_hppa_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf32_hppa_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf32_hppa_size_dynamic_sections ++#define elf_backend_late_size_sections elf32_hppa_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_gc_mark_hook elf32_hppa_gc_mark_hook + #define elf_backend_grok_prstatus elf32_hppa_grok_prstatus +--- a/bfd/elf32-i386.c ++++ b/bfd/elf32-i386.c +@@ -1932,8 +1932,7 @@ elf_i386_scan_relocs (bfd *abfd, + } + + static bool +-elf_i386_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_i386_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *abfd; + +@@ -1946,7 +1945,7 @@ elf_i386_always_size_sections (bfd *outp + elf_i386_scan_relocs)) + return false; + +- return _bfd_x86_elf_always_size_sections (output_bfd, info); ++ return _bfd_x86_elf_early_size_sections (output_bfd, info); + } + + /* Set the correct type for an x86 ELF section. We do this by the +@@ -4443,7 +4442,7 @@ elf_i386_link_setup_gnu_properties (stru + #define bfd_elf32_get_synthetic_symtab elf_i386_get_synthetic_symtab + + #define elf_backend_relocs_compatible _bfd_elf_relocs_compatible +-#define elf_backend_always_size_sections elf_i386_always_size_sections ++#define elf_backend_early_size_sections elf_i386_early_size_sections + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_fake_sections elf_i386_fake_sections + #define elf_backend_finish_dynamic_sections elf_i386_finish_dynamic_sections +--- a/bfd/elf32-lm32.c ++++ b/bfd/elf32-lm32.c +@@ -1906,8 +1906,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-lm32_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++lm32_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct elf_lm32_link_hash_table *htab; + bfd *dynobj; +@@ -1920,7 +1920,8 @@ lm32_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -2309,7 +2310,7 @@ lm32_elf_create_dynamic_sections (bfd *a + } + + static bool +-lm32_elf_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++lm32_elf_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info)) + { +@@ -2395,7 +2396,7 @@ lm32_elf_fdpic_copy_private_bfd_data (bf + #define bfd_elf32_bfd_link_hash_table_create lm32_elf_link_hash_table_create + #define elf_backend_check_relocs lm32_elf_check_relocs + #define elf_backend_reloc_type_class lm32_elf_reloc_type_class +-#define elf_backend_size_dynamic_sections lm32_elf_size_dynamic_sections ++#define elf_backend_late_size_sections lm32_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_create_dynamic_sections lm32_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections lm32_elf_finish_dynamic_sections +@@ -2416,8 +2417,8 @@ lm32_elf_fdpic_copy_private_bfd_data (bf + #undef elf32_bed + #define elf32_bed elf32_lm32fdpic_bed + +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections lm32_elf_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections lm32_elf_early_size_sections + #undef bfd_elf32_bfd_copy_private_bfd_data + #define bfd_elf32_bfd_copy_private_bfd_data lm32_elf_fdpic_copy_private_bfd_data + +--- a/bfd/elf32-m32c.c ++++ b/bfd/elf32-m32c.c +@@ -773,8 +773,8 @@ m32c_elf_finish_dynamic_sections (bfd *a + } + + static bool +-m32c_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++m32c_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -2131,8 +2131,8 @@ _bfd_m32c_elf_eh_frame_address_size (bfd + #define elf_backend_check_relocs m32c_elf_check_relocs + #define elf_backend_object_p m32c_elf_object_p + #define elf_symbol_leading_char ('_') +-#define elf_backend_always_size_sections \ +- m32c_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ m32c_elf_early_size_sections + #define elf_backend_finish_dynamic_sections \ + m32c_elf_finish_dynamic_sections + +--- a/bfd/elf32-m32r.c ++++ b/bfd/elf32-m32r.c +@@ -1958,8 +1958,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-m32r_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++m32r_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_link_hash_table *htab; + bfd *dynobj; +@@ -1968,7 +1968,7 @@ m32r_elf_size_dynamic_sections (bfd *out + bfd *ibfd; + + #ifdef DEBUG_PIC +- printf ("m32r_elf_size_dynamic_sections()\n"); ++ printf ("m32r_elf_late_size_sections()\n"); + #endif + + htab = m32r_elf_hash_table (info); +@@ -1976,7 +1976,8 @@ m32r_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -3658,7 +3659,7 @@ m32r_elf_reloc_type_class (const struct + + #define elf_backend_create_dynamic_sections m32r_elf_create_dynamic_sections + #define bfd_elf32_bfd_link_hash_table_create m32r_elf_link_hash_table_create +-#define elf_backend_size_dynamic_sections m32r_elf_size_dynamic_sections ++#define elf_backend_late_size_sections m32r_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_sections m32r_elf_finish_dynamic_sections + #define elf_backend_adjust_dynamic_symbol m32r_elf_adjust_dynamic_symbol +--- a/bfd/elf32-m68k.c ++++ b/bfd/elf32-m68k.c +@@ -2934,7 +2934,7 @@ elf_m68k_get_plt_info (bfd *output_bfd) + It's a convenient place to determine the PLT style. */ + + static bool +-elf_m68k_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf_m68k_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + /* Bind input BFDs to GOTs and calculate sizes of .got and .rela.got + sections. */ +@@ -3107,15 +3107,16 @@ elf_m68k_adjust_dynamic_symbol (struct b + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_m68k_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_m68k_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -4628,12 +4629,11 @@ elf_m68k_grok_psinfo (bfd *abfd, Elf_Int + #define bfd_elf32_bfd_final_link bfd_elf_final_link + + #define elf_backend_check_relocs elf_m68k_check_relocs +-#define elf_backend_always_size_sections \ +- elf_m68k_always_size_sections ++#define elf_backend_early_size_sections \ ++ elf_m68k_early_size_sections + #define elf_backend_adjust_dynamic_symbol \ + elf_m68k_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elf_m68k_size_dynamic_sections ++#define elf_backend_late_size_sections elf_m68k_late_size_sections + #define elf_backend_final_write_processing elf_m68k_final_write_processing + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section elf_m68k_relocate_section +--- a/bfd/elf32-metag.c ++++ b/bfd/elf32-metag.c +@@ -2717,8 +2717,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_metag_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_metag_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_metag_link_hash_table *htab; + bfd *dynobj; +@@ -2729,7 +2729,7 @@ elf_metag_size_dynamic_sections (bfd *ou + htab = metag_link_hash_table (info); + dynobj = htab->etab.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->etab.dynamic_sections_created) + { +@@ -4019,7 +4019,7 @@ elf_metag_plt_sym_val (bfd_vma i, const + #define elf_backend_adjust_dynamic_symbol elf_metag_adjust_dynamic_symbol + #define elf_backend_finish_dynamic_symbol elf_metag_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf_metag_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf_metag_size_dynamic_sections ++#define elf_backend_late_size_sections elf_metag_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_init_file_header elf_metag_init_file_header +--- a/bfd/elf32-microblaze.c ++++ b/bfd/elf32-microblaze.c +@@ -2946,8 +2946,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-microblaze_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++microblaze_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf32_mb_link_hash_table *htab; + bfd *dynobj; +@@ -2959,7 +2959,8 @@ microblaze_elf_size_dynamic_sections (bf + return false; + + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + /* Set up .got offsets for local syms, and space for local dynamic + relocs. */ +@@ -3477,7 +3478,7 @@ microblaze_elf_add_symbol_hook (bfd *abf + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections microblaze_elf_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol microblaze_elf_finish_dynamic_symbol +-#define elf_backend_size_dynamic_sections microblaze_elf_size_dynamic_sections ++#define elf_backend_late_size_sections microblaze_elf_late_size_sections + #define elf_backend_add_symbol_hook microblaze_elf_add_symbol_hook + + #include "elf32-target.h" +--- a/bfd/elf32-mips.c ++++ b/bfd/elf32-mips.c +@@ -2525,10 +2525,8 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf32-nds32.c ++++ b/bfd/elf32-nds32.c +@@ -4302,8 +4302,8 @@ elf32_nds32_add_dynreloc (bfd *output_bf + /* Set the sizes of the dynamic sections. */ + + static bool +-nds32_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++nds32_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_nds32_link_hash_table *htab; + bfd *dynobj; +@@ -4316,7 +4316,8 @@ nds32_elf_size_dynamic_sections (bfd *ou + return false; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -13984,7 +13985,7 @@ nds32_elf_unify_tls_model (bfd *inbfd, a + #define elf_backend_create_dynamic_sections nds32_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections nds32_elf_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol nds32_elf_finish_dynamic_symbol +-#define elf_backend_size_dynamic_sections nds32_elf_size_dynamic_sections ++#define elf_backend_late_size_sections nds32_elf_late_size_sections + #define elf_backend_relocate_section nds32_elf_relocate_section + #define elf_backend_gc_mark_hook nds32_elf_gc_mark_hook + #define elf_backend_grok_prstatus nds32_elf_grok_prstatus +--- a/bfd/elf32-nios2.c ++++ b/bfd/elf32-nios2.c +@@ -5411,7 +5411,7 @@ nios2_elf32_adjust_dynamic_symbol (struc + return true; + } + +-/* Worker function for nios2_elf32_size_dynamic_sections. */ ++/* Worker function for nios2_elf32_late_size_sections. */ + static bool + adjust_dynrelocs (struct elf_link_hash_entry *h, void *inf) + { +@@ -5438,7 +5438,7 @@ adjust_dynrelocs (struct elf_link_hash_e + return true; + } + +-/* Another worker function for nios2_elf32_size_dynamic_sections. ++/* Another worker function for nios2_elf32_late_size_sections. + Allocate space in .plt, .got and associated reloc sections for + dynamic relocs. */ + static bool +@@ -5673,11 +5673,11 @@ allocate_dynrelocs (struct elf_link_hash + return true; + } + +-/* Implement elf_backend_size_dynamic_sections: ++/* Implement elf_backend_late_size_sections: + Set the sizes of the dynamic sections. */ + static bool +-nios2_elf32_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++nios2_elf32_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -5687,7 +5687,8 @@ nios2_elf32_size_dynamic_sections (bfd * + + htab = elf32_nios2_hash_table (info); + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + htab->res_n_size = 0; + if (htab->root.dynamic_sections_created) +@@ -6058,7 +6059,7 @@ const struct bfd_elf_special_section elf + nios2_elf32_finish_dynamic_sections + #define elf_backend_adjust_dynamic_symbol nios2_elf32_adjust_dynamic_symbol + #define elf_backend_reloc_type_class nios2_elf32_reloc_type_class +-#define elf_backend_size_dynamic_sections nios2_elf32_size_dynamic_sections ++#define elf_backend_late_size_sections nios2_elf32_late_size_sections + #define elf_backend_add_symbol_hook nios2_elf_add_symbol_hook + #define elf_backend_copy_indirect_symbol nios2_elf32_copy_indirect_symbol + #define elf_backend_object_p nios2_elf32_object_p +--- a/bfd/elf32-or1k.c ++++ b/bfd/elf32-or1k.c +@@ -3039,8 +3039,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-or1k_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++or1k_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_or1k_link_hash_table *htab; + bfd *dynobj; +@@ -3053,7 +3053,8 @@ or1k_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -3406,7 +3407,7 @@ or1k_grok_psinfo (bfd *abfd, Elf_Interna + #define elf_backend_copy_indirect_symbol or1k_elf_copy_indirect_symbol + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections or1k_elf_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections or1k_elf_size_dynamic_sections ++#define elf_backend_late_size_sections or1k_elf_late_size_sections + #define elf_backend_adjust_dynamic_symbol or1k_elf_adjust_dynamic_symbol + #define elf_backend_finish_dynamic_symbol or1k_elf_finish_dynamic_symbol + +--- a/bfd/elf32-ppc.c ++++ b/bfd/elf32-ppc.c +@@ -5477,8 +5477,8 @@ static const unsigned char glink_eh_fram + /* Set the sizes of the dynamic sections. */ + + static bool +-ppc_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++ppc_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct ppc_elf_link_hash_table *htab; + asection *s; +@@ -5486,11 +5486,12 @@ ppc_elf_size_dynamic_sections (bfd *outp + bfd *ibfd; + + #ifdef DEBUG +- fprintf (stderr, "ppc_elf_size_dynamic_sections called\n"); ++ fprintf (stderr, "ppc_elf_late_size_sections called\n"); + #endif + + htab = ppc_elf_hash_table (info); +- BFD_ASSERT (htab->elf.dynobj != NULL); ++ if (htab->elf.dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -10414,7 +10415,7 @@ ppc_elf_finish_dynamic_sections (bfd *ou + #define elf_backend_copy_indirect_symbol ppc_elf_copy_indirect_symbol + #define elf_backend_adjust_dynamic_symbol ppc_elf_adjust_dynamic_symbol + #define elf_backend_add_symbol_hook ppc_elf_add_symbol_hook +-#define elf_backend_size_dynamic_sections ppc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections ppc_elf_late_size_sections + #define elf_backend_hash_symbol ppc_elf_hash_symbol + #define elf_backend_finish_dynamic_symbol ppc_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections ppc_elf_finish_dynamic_sections +--- a/bfd/elf32-rl78.c ++++ b/bfd/elf32-rl78.c +@@ -1440,8 +1440,8 @@ rl78_elf_finish_dynamic_sections (bfd *a + } + + static bool +-rl78_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++rl78_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -2609,8 +2609,8 @@ rl78_elf_relax_section (bfd *abfd, + + #define bfd_elf32_bfd_relax_section rl78_elf_relax_section + #define elf_backend_check_relocs rl78_elf_check_relocs +-#define elf_backend_always_size_sections \ +- rl78_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ rl78_elf_early_size_sections + #define elf_backend_finish_dynamic_sections \ + rl78_elf_finish_dynamic_sections + +--- a/bfd/elf32-s390.c ++++ b/bfd/elf32-s390.c +@@ -1366,7 +1366,7 @@ elf_s390_gc_mark_hook (asection *sec, + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_s390_size_dynamic_sections if no dynamic sections will be ++ or elf_s390_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static void +@@ -1778,8 +1778,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_s390_link_hash_table *htab; + bfd *dynobj; +@@ -1790,7 +1790,7 @@ elf_s390_size_dynamic_sections (bfd *out + htab = elf_s390_hash_table (info); + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3926,7 +3926,7 @@ elf32_s390_merge_private_bfd_data (bfd * + #define elf_backend_gc_mark_hook elf_s390_gc_mark_hook + #define elf_backend_reloc_type_class elf_s390_reloc_type_class + #define elf_backend_relocate_section elf_s390_relocate_section +-#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections ++#define elf_backend_late_size_sections elf_s390_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_grok_prstatus elf_s390_grok_prstatus + #define elf_backend_grok_psinfo elf_s390_grok_psinfo +--- a/bfd/elf32-score.c ++++ b/bfd/elf32-score.c +@@ -1089,7 +1089,7 @@ score_elf_got_info (bfd *abfd, asection + appear towards the end. This reduces the amount of GOT space + required. MAX_LOCAL is used to set the number of local symbols + known to be in the dynamic symbol table. During +- s3_bfd_score_elf_size_dynamic_sections, this value is 1. Afterward, the ++ s3_bfd_score_elf_late_size_sections, this value is 1. Afterward, the + section symbols are added and the count is higher. */ + static bool + score_elf_sort_hash_table (struct bfd_link_info *info, +@@ -3160,8 +3160,8 @@ s3_bfd_score_elf_adjust_dynamic_symbol ( + /* This function is called after all the input files have been read, + and the input sections have been assigned to output sections. */ + static bool +-s3_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++s3_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -3237,14 +3237,15 @@ s3_bfd_score_elf_always_size_sections (b + + /* Set the sizes of the dynamic sections. */ + static bool +-s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++s3_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool reltext; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3313,7 +3314,7 @@ s3_bfd_score_elf_size_dynamic_sections ( + } + else if (startswith (name, ".got")) + { +- /* s3_bfd_score_elf_always_size_sections() has already done ++ /* s3_bfd_score_elf_early_size_sections() has already done + most of the work, but some symbols may have been mapped + to versions that we must now resolve in the got_entries + hash tables. */ +@@ -4177,22 +4178,22 @@ _bfd_score_elf_adjust_dynamic_symbol (st + } + + static bool +-_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + if (bfd_get_mach (output_bfd) == bfd_mach_score3) +- return s3_bfd_score_elf_always_size_sections (output_bfd, info); ++ return s3_bfd_score_elf_early_size_sections (output_bfd, info); + else +- return s7_bfd_score_elf_always_size_sections (output_bfd, info); ++ return s7_bfd_score_elf_early_size_sections (output_bfd, info); + } + + static bool +-_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (bfd_get_mach (output_bfd) == bfd_mach_score3) +- return s3_bfd_score_elf_size_dynamic_sections (output_bfd, info); ++ return s3_bfd_score_elf_late_size_sections (output_bfd, info); + else +- return s7_bfd_score_elf_size_dynamic_sections (output_bfd, info); ++ return s7_bfd_score_elf_late_size_sections (output_bfd, info); + } + + static bool +@@ -4455,10 +4456,10 @@ _bfd_score_elf_common_definition (Elf_In + _bfd_score_elf_section_from_bfd_section + #define elf_backend_adjust_dynamic_symbol \ + _bfd_score_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_score_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_score_elf_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ _bfd_score_elf_early_size_sections ++#define elf_backend_late_size_sections \ ++ _bfd_score_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_create_dynamic_sections \ + _bfd_score_elf_create_dynamic_sections +--- a/bfd/elf32-score.h ++++ b/bfd/elf32-score.h +@@ -78,10 +78,10 @@ s7_bfd_score_elf_adjust_dynamic_symbol ( + struct elf_link_hash_entry *); + + extern bool +-s7_bfd_score_elf_always_size_sections (bfd *, struct bfd_link_info *); ++s7_bfd_score_elf_early_size_sections (bfd *, struct bfd_link_info *); + + extern bool +-s7_bfd_score_elf_size_dynamic_sections (bfd *, struct bfd_link_info *); ++s7_bfd_score_elf_late_size_sections (bfd *, struct bfd_link_info *); + + extern bool + s7_bfd_score_elf_create_dynamic_sections (bfd *, struct bfd_link_info *); +--- a/bfd/elf32-score7.c ++++ b/bfd/elf32-score7.c +@@ -975,7 +975,7 @@ score_elf_got_info (bfd *abfd, asection + appear towards the end. This reduces the amount of GOT space + required. MAX_LOCAL is used to set the number of local symbols + known to be in the dynamic symbol table. During +- s7_bfd_score_elf_size_dynamic_sections, this value is 1. Afterward, the ++ s7_bfd_score_elf_late_size_sections, this value is 1. Afterward, the + section symbols are added and the count is higher. */ + + static bool +@@ -2969,8 +2969,8 @@ s7_bfd_score_elf_adjust_dynamic_symbol ( + and the input sections have been assigned to output sections. */ + + bool +-s7_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++s7_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -3047,14 +3047,15 @@ s7_bfd_score_elf_always_size_sections (b + /* Set the sizes of the dynamic sections. */ + + bool +-s7_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++s7_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool reltext; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3123,7 +3124,7 @@ s7_bfd_score_elf_size_dynamic_sections ( + } + else if (startswith (name, ".got")) + { +- /* s7_bfd_score_elf_always_size_sections() has already done ++ /* s7_bfd_score_elf_early_size_sections() has already done + most of the work, but some symbols may have been mapped + to versions that we must now resolve in the got_entries + hash tables. */ +--- a/bfd/elf32-sh.c ++++ b/bfd/elf32-sh.c +@@ -2925,7 +2925,7 @@ allocate_dynrelocs (struct elf_link_hash + It's a convenient place to determine the PLT style. */ + + static bool +-sh_elf_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++sh_elf_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + sh_elf_hash_table (info)->plt_info = get_plt_info (output_bfd, + bfd_link_pic (info)); +@@ -2940,8 +2940,8 @@ sh_elf_always_size_sections (bfd *output + /* Set the sizes of the dynamic sections. */ + + static bool +-sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++sh_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_sh_link_hash_table *htab; + bfd *dynobj; +@@ -2954,7 +2954,8 @@ sh_elf_size_dynamic_sections (bfd *outpu + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -6589,10 +6590,8 @@ sh_elf_encode_eh_address (bfd *abfd, + sh_elf_link_hash_table_create + #define elf_backend_adjust_dynamic_symbol \ + sh_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- sh_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- sh_elf_size_dynamic_sections ++#define elf_backend_early_size_sections sh_elf_early_size_sections ++#define elf_backend_late_size_sections sh_elf_late_size_sections + #define elf_backend_omit_section_dynsym sh_elf_omit_section_dynsym + #define elf_backend_finish_dynamic_symbol \ + sh_elf_finish_dynamic_symbol +--- a/bfd/elf32-sparc.c ++++ b/bfd/elf32-sparc.c +@@ -248,8 +248,7 @@ elf32_sparc_reloc_type_class (const stru + #define elf_backend_adjust_dynamic_symbol \ + _bfd_sparc_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym _bfd_sparc_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections \ +- _bfd_sparc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections _bfd_sparc_elf_late_size_sections + #define elf_backend_relocate_section _bfd_sparc_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ + _bfd_sparc_elf_finish_dynamic_symbol +--- a/bfd/elf32-tic6x.c ++++ b/bfd/elf32-tic6x.c +@@ -3160,7 +3160,7 @@ elf32_tic6x_allocate_dynrelocs (struct e + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_tic6x_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf32_tic6x_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf32_tic6x_link_hash_table *htab; + bfd *dynobj; +@@ -3171,7 +3171,7 @@ elf32_tic6x_size_dynamic_sections (bfd * + htab = elf32_tic6x_hash_table (info); + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3358,7 +3358,7 @@ elf32_tic6x_size_dynamic_sections (bfd * + and the input sections have been assigned to output sections. */ + + static bool +-elf32_tic6x_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf32_tic6x_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (elf32_tic6x_using_dsbt (output_bfd) && !bfd_link_relocatable (info) + && !bfd_elf_stack_segment_size (output_bfd, info, +@@ -4261,10 +4261,10 @@ elf32_tic6x_write_section (bfd *output_b + #define elf_backend_relocs_compatible _bfd_elf_relocs_compatible + #define elf_backend_finish_dynamic_symbol \ + elf32_tic6x_finish_dynamic_symbol +-#define elf_backend_always_size_sections \ +- elf32_tic6x_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_tic6x_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ elf32_tic6x_early_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_tic6x_late_size_sections + #define elf_backend_finish_dynamic_sections \ + elf32_tic6x_finish_dynamic_sections + #define bfd_elf32_bfd_final_link \ +--- a/bfd/elf32-tilegx.c ++++ b/bfd/elf32-tilegx.c +@@ -105,7 +105,7 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I + #define elf_backend_check_relocs tilegx_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilegx_elf_late_size_sections + #define elf_backend_relocate_section tilegx_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections +--- a/bfd/elf32-tilepro.c ++++ b/bfd/elf32-tilepro.c +@@ -2182,11 +2182,9 @@ tilepro_elf_omit_section_dynsym (bfd *ou + #define ELF32_DYNAMIC_INTERPRETER "/lib/ld.so.1" + + static bool +-tilepro_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++tilepro_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { +- (void)output_bfd; +- + struct elf_link_hash_table *htab; + bfd *dynobj; + asection *s; +@@ -2195,7 +2193,8 @@ tilepro_elf_size_dynamic_sections (bfd * + htab = tilepro_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3739,7 +3738,7 @@ tilepro_additional_program_headers (bfd + #define elf_backend_check_relocs tilepro_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilepro_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilepro_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilepro_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilepro_elf_late_size_sections + #define elf_backend_relocate_section tilepro_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilepro_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilepro_elf_finish_dynamic_sections +--- a/bfd/elf32-vax.c ++++ b/bfd/elf32-vax.c +@@ -36,7 +36,6 @@ static bool elf_vax_check_relocs (bfd *, + asection *, const Elf_Internal_Rela *); + static bool elf_vax_adjust_dynamic_symbol (struct bfd_link_info *, + struct elf_link_hash_entry *); +-static bool elf_vax_size_dynamic_sections (bfd *, struct bfd_link_info *); + static int elf_vax_relocate_section (bfd *, struct bfd_link_info *, + bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, +@@ -985,8 +984,8 @@ elf_vax_discard_got_entries (struct elf_ + /* Discard unused dynamic data if this is a static link. */ + + static bool +-elf_vax_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_vax_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -1024,14 +1023,15 @@ elf_vax_always_size_sections (bfd *outpu + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_vax_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf_vax_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -1861,10 +1861,8 @@ elf_vax_plt_sym_val (bfd_vma i, const as + #define elf_backend_check_relocs elf_vax_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elf_vax_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- elf_vax_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf_vax_size_dynamic_sections ++#define elf_backend_early_size_sections elf_vax_early_size_sections ++#define elf_backend_late_size_sections elf_vax_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section elf_vax_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf32-xstormy16.c ++++ b/bfd/elf32-xstormy16.c +@@ -706,8 +706,8 @@ xstormy16_elf_relax_section (bfd *dynobj + } + + static bool +-xstormy16_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++xstormy16_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -1013,8 +1013,8 @@ xstormy16_elf_gc_mark_hook (asection *se + #define elf_backend_relocate_section xstormy16_elf_relocate_section + #define elf_backend_gc_mark_hook xstormy16_elf_gc_mark_hook + #define elf_backend_check_relocs xstormy16_elf_check_relocs +-#define elf_backend_always_size_sections \ +- xstormy16_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ xstormy16_elf_early_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_sections \ +--- a/bfd/elf32-xtensa.c ++++ b/bfd/elf32-xtensa.c +@@ -1568,8 +1568,8 @@ elf_xtensa_allocate_local_got_size (stru + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_xtensa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_xtensa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_xtensa_link_hash_table *htab; + bfd *dynobj, *abfd; +@@ -1586,7 +1586,7 @@ elf_xtensa_size_dynamic_sections (bfd *o + + dynobj = elf_hash_table (info)->dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + srelgot = htab->elf.srelgot; + srelplt = htab->elf.srelplt; + +@@ -1791,8 +1791,7 @@ elf_xtensa_size_dynamic_sections (bfd *o + } + + static bool +-elf_xtensa_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_xtensa_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf_xtensa_link_hash_table *htab; + asection *tls_sec; +@@ -11551,8 +11550,8 @@ static const struct bfd_elf_special_sect + #define elf_backend_object_p elf_xtensa_object_p + #define elf_backend_reloc_type_class elf_xtensa_reloc_type_class + #define elf_backend_relocate_section elf_xtensa_relocate_section +-#define elf_backend_size_dynamic_sections elf_xtensa_size_dynamic_sections +-#define elf_backend_always_size_sections elf_xtensa_always_size_sections ++#define elf_backend_late_size_sections elf_xtensa_late_size_sections ++#define elf_backend_early_size_sections elf_xtensa_early_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_special_sections elf_xtensa_special_sections + #define elf_backend_action_discarded elf_xtensa_action_discarded +--- a/bfd/elf64-alpha.c ++++ b/bfd/elf64-alpha.c +@@ -2579,8 +2579,8 @@ elf64_alpha_size_plt_section (struct bfd + } + + static bool +-elf64_alpha_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_alpha_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *i; + struct alpha_elf_link_hash_table * htab; +@@ -2806,8 +2806,8 @@ elf64_alpha_size_rela_got_section (struc + /* Set the sizes of the dynamic sections. */ + + static bool +-elf64_alpha_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_alpha_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -2819,7 +2819,8 @@ elf64_alpha_size_dynamic_sections (bfd * + return false; + + dynobj = elf_hash_table(info)->dynobj; +- BFD_ASSERT(dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5465,10 +5466,10 @@ static const struct elf_size_info alpha_ + elf64_alpha_merge_symbol_attribute + #define elf_backend_copy_indirect_symbol \ + elf64_alpha_copy_indirect_symbol +-#define elf_backend_always_size_sections \ +- elf64_alpha_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf64_alpha_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ elf64_alpha_early_size_sections ++#define elf_backend_late_size_sections \ ++ elf64_alpha_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elf64-hppa.c ++++ b/bfd/elf64-hppa.c +@@ -176,9 +176,6 @@ static bool elf64_hppa_adjust_dynamic_sy + static bool elf64_hppa_mark_milli_and_exported_functions + (struct elf_link_hash_entry *, void *); + +-static bool elf64_hppa_size_dynamic_sections +- (bfd *, struct bfd_link_info *); +- + static int elf64_hppa_link_output_symbol_hook + (struct bfd_link_info *, const char *, Elf_Internal_Sym *, + asection *, struct elf_link_hash_entry *); +@@ -1520,7 +1517,7 @@ elf64_hppa_mark_milli_and_exported_funct + the contents of our special sections. */ + + static bool +-elf64_hppa_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf64_hppa_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf64_hppa_link_hash_table *hppa_info; + struct elf64_hppa_allocate_data data; +@@ -1534,7 +1531,8 @@ elf64_hppa_size_dynamic_sections (bfd *o + return false; + + dynobj = hppa_info->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + /* Mark each function this program exports so that we will allocate + space in the .opd section for each function's FPTR. If we are +@@ -3984,8 +3982,7 @@ const struct elf_size_info hppa64_elf_si + #define elf_backend_adjust_dynamic_symbol \ + elf64_hppa_adjust_dynamic_symbol + +-#define elf_backend_size_dynamic_sections \ +- elf64_hppa_size_dynamic_sections ++#define elf_backend_late_size_sections elf64_hppa_late_size_sections + + #define elf_backend_finish_dynamic_symbol \ + elf64_hppa_finish_dynamic_symbol +--- a/bfd/elf64-ia64-vms.c ++++ b/bfd/elf64-ia64-vms.c +@@ -2590,8 +2590,8 @@ elf64_ia64_adjust_dynamic_symbol (struct + } + + static bool +-elf64_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_ia64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf64_ia64_allocate_data data; + struct elf64_ia64_link_hash_table *ia64_info; +@@ -2600,11 +2600,12 @@ elf64_ia64_size_dynamic_sections (bfd *o + struct elf_link_hash_table *hash_table; + + hash_table = elf_hash_table (info); +- dynobj = hash_table->dynobj; + ia64_info = elf64_ia64_hash_table (info); + if (ia64_info == NULL) + return false; +- BFD_ASSERT(dynobj != NULL); ++ dynobj = hash_table->dynobj; ++ if (dynobj == NULL) ++ return true; + data.info = info; + + /* Allocate the GOT entries. */ +@@ -5484,8 +5485,8 @@ static const struct elf_size_info elf64_ + elf64_ia64_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elf64_ia64_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elf64_ia64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elf64_ia64_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elf64-mips.c ++++ b/bfd/elf64-mips.c +@@ -4739,10 +4739,10 @@ const struct elf_size_info mips_elf64_si + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections \ ++ _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf64-ppc.c ++++ b/bfd/elf64-ppc.c +@@ -118,8 +118,8 @@ static bfd_vma opd_entry_value + #define elf_backend_adjust_dynamic_symbol ppc64_elf_adjust_dynamic_symbol + #define elf_backend_hide_symbol ppc64_elf_hide_symbol + #define elf_backend_maybe_function_sym ppc64_elf_maybe_function_sym +-#define elf_backend_always_size_sections ppc64_elf_edit +-#define elf_backend_size_dynamic_sections ppc64_elf_size_dynamic_sections ++#define elf_backend_early_size_sections ppc64_elf_edit ++#define elf_backend_late_size_sections ppc64_elf_late_size_sections + #define elf_backend_hash_symbol ppc64_elf_hash_symbol + #define elf_backend_init_index_section _bfd_elf_init_2_index_sections + #define elf_backend_action_discarded ppc64_elf_action_discarded +@@ -10117,7 +10117,7 @@ allocate_dynrelocs (struct elf_link_hash + ((((v) & 0x3ffff0000ULL) << 16) | (v & 0xffff)) + #define HA34(v) ((v + (1ULL << 33)) >> 34) + +-/* Called via elf_link_hash_traverse from ppc64_elf_size_dynamic_sections ++/* Called via elf_link_hash_traverse from ppc64_elf_late_size_sections + to set up space for global entry stubs. These are put in glink, + after the branch table. */ + +@@ -10194,8 +10194,8 @@ size_global_entry_stubs (struct elf_link + /* Set the sizes of the dynamic sections. */ + + static bool +-ppc64_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++ppc64_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct ppc_link_hash_table *htab; + bfd *dynobj; +@@ -10210,7 +10210,7 @@ ppc64_elf_size_dynamic_sections (bfd *ou + + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +--- a/bfd/elf64-s390.c ++++ b/bfd/elf64-s390.c +@@ -1301,7 +1301,7 @@ elf_s390_gc_mark_hook (asection *sec, + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_s390_size_dynamic_sections if no dynamic sections will be ++ or elf_s390_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static void +@@ -1714,8 +1714,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_s390_link_hash_table *htab; + bfd *dynobj; +@@ -1729,7 +1729,7 @@ elf_s390_size_dynamic_sections (bfd *out + + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3894,7 +3894,7 @@ const struct elf_size_info s390_elf64_si + #define elf_backend_gc_mark_hook elf_s390_gc_mark_hook + #define elf_backend_reloc_type_class elf_s390_reloc_type_class + #define elf_backend_relocate_section elf_s390_relocate_section +-#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections ++#define elf_backend_late_size_sections elf_s390_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_grok_prstatus elf_s390_grok_prstatus + #define elf_backend_grok_psinfo elf_s390_grok_psinfo +--- a/bfd/elf64-sparc.c ++++ b/bfd/elf64-sparc.c +@@ -938,8 +938,8 @@ const struct elf_size_info elf64_sparc_s + _bfd_sparc_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym \ + _bfd_sparc_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections \ +- _bfd_sparc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_sparc_elf_late_size_sections + #define elf_backend_relocate_section \ + _bfd_sparc_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf64-tilegx.c ++++ b/bfd/elf64-tilegx.c +@@ -106,7 +106,7 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I + #define elf_backend_check_relocs tilegx_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilegx_elf_late_size_sections + #define elf_backend_relocate_section tilegx_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -2377,8 +2377,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struc + } + + static bool +-elf_x86_64_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_x86_64_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *abfd; + +@@ -2391,7 +2390,7 @@ elf_x86_64_always_size_sections (bfd *ou + elf_x86_64_scan_relocs)) + return false; + +- return _bfd_x86_elf_always_size_sections (output_bfd, info); ++ return _bfd_x86_elf_early_size_sections (output_bfd, info); + } + + /* Return the relocation value for @tpoff relocation +@@ -5284,7 +5283,7 @@ elf_x86_64_special_sections[]= + elf_x86_64_reloc_name_lookup + + #define elf_backend_relocs_compatible elf_x86_64_relocs_compatible +-#define elf_backend_always_size_sections elf_x86_64_always_size_sections ++#define elf_backend_early_size_sections elf_x86_64_early_size_sections + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections elf_x86_64_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol elf_x86_64_finish_dynamic_symbol +--- a/bfd/elflink.c ++++ b/bfd/elflink.c +@@ -6619,8 +6619,8 @@ bfd_elf_size_dynamic_sections (bfd *outp + + /* The backend may have to create some sections regardless of whether + we're dynamic or not. */ +- if (bed->elf_backend_always_size_sections +- && ! (*bed->elf_backend_always_size_sections) (output_bfd, info)) ++ if (bed->elf_backend_early_size_sections ++ && !bed->elf_backend_early_size_sections (output_bfd, info)) + return false; + + dynobj = elf_hash_table (info)->dynobj; +@@ -7400,9 +7400,8 @@ NOTE: This behaviour is deprecated and w + + /* The backend must work out the sizes of all the other dynamic + sections. */ +- if (dynobj != NULL +- && bed->elf_backend_size_dynamic_sections != NULL +- && ! (*bed->elf_backend_size_dynamic_sections) (output_bfd, info)) ++ if (bed->elf_backend_late_size_sections != NULL ++ && !bed->elf_backend_late_size_sections (output_bfd, info)) + return false; + + if (dynobj != NULL && elf_hash_table (info)->dynamic_sections_created) +--- a/bfd/elfn32-mips.c ++++ b/bfd/elfn32-mips.c +@@ -4125,10 +4125,8 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elfnn-aarch64.c ++++ b/bfd/elfnn-aarch64.c +@@ -112,7 +112,7 @@ + allocate space for one relocation on the slot. Record the GOT offset + for this symbol. + +- elfNN_aarch64_size_dynamic_sections () ++ elfNN_aarch64_late_size_sections () + + Iterate all input BFDS, look for in the local symbol data structure + constructed earlier for local TLS symbols and allocate them double +@@ -8886,8 +8886,8 @@ elfNN_aarch64_allocate_local_ifunc_dynre + though ! */ + + static bool +-elfNN_aarch64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elfNN_aarch64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_aarch64_link_hash_table *htab; + bfd *dynobj; +@@ -8898,7 +8898,8 @@ elfNN_aarch64_size_dynamic_sections (bfd + htab = elf_aarch64_hash_table ((info)); + dynobj = htab->root.dynobj; + +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -9300,8 +9301,8 @@ elfNN_aarch64_create_small_pltn_entry (s + _TLS_MODULE_BASE_, if needed. */ + + static bool +-elfNN_aarch64_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elfNN_aarch64_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *tls_sec; + +@@ -10036,8 +10037,8 @@ const struct elf_size_info elfNN_aarch64 + #define elf_backend_adjust_dynamic_symbol \ + elfNN_aarch64_adjust_dynamic_symbol + +-#define elf_backend_always_size_sections \ +- elfNN_aarch64_always_size_sections ++#define elf_backend_early_size_sections \ ++ elfNN_aarch64_early_size_sections + + #define elf_backend_check_relocs \ + elfNN_aarch64_check_relocs +@@ -10086,8 +10087,8 @@ const struct elf_size_info elfNN_aarch64 + #define elf_backend_section_from_shdr \ + elfNN_aarch64_section_from_shdr + +-#define elf_backend_size_dynamic_sections \ +- elfNN_aarch64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elfNN_aarch64_late_size_sections + + #define elf_backend_size_info \ + elfNN_aarch64_size_info +--- a/bfd/elfnn-ia64.c ++++ b/bfd/elfnn-ia64.c +@@ -2986,8 +2986,8 @@ elfNN_ia64_adjust_dynamic_symbol (struct + } + + static bool +-elfNN_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elfNN_ia64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elfNN_ia64_allocate_data data; + struct elfNN_ia64_link_hash_table *ia64_info; +@@ -2998,8 +2998,9 @@ elfNN_ia64_size_dynamic_sections (bfd *o + if (ia64_info == NULL) + return false; + dynobj = ia64_info->root.dynobj; ++ if (dynobj == NULL) ++ return true; + ia64_info->self_dtpmod_offset = (bfd_vma) -1; +- BFD_ASSERT(dynobj != NULL); + data.info = info; + + /* Set the contents of the .interp section to the interpreter. */ +@@ -5035,8 +5036,8 @@ ignore_errors (const char *fmt ATTRIBUTE + elfNN_ia64_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elfNN_ia64_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elfNN_ia64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elfNN_ia64_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elfnn-loongarch.c ++++ b/bfd/elfnn-loongarch.c +@@ -1280,8 +1280,8 @@ maybe_set_textrel (struct elf_link_hash_ + } + + static bool +-loongarch_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++loongarch_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct loongarch_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1291,7 +1291,8 @@ loongarch_elf_size_dynamic_sections (bfd + htab = loongarch_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3444,7 +3445,7 @@ elf_loongarch64_hash_symbol (struct elf_ + loongarch_elf_create_dynamic_sections + #define elf_backend_check_relocs loongarch_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol loongarch_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections loongarch_elf_size_dynamic_sections ++#define elf_backend_late_size_sections loongarch_elf_late_size_sections + #define elf_backend_relocate_section loongarch_elf_relocate_section + #define elf_backend_finish_dynamic_symbol loongarch_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections \ +--- a/bfd/elfnn-riscv.c ++++ b/bfd/elfnn-riscv.c +@@ -1376,7 +1376,7 @@ allocate_local_ifunc_dynrelocs (void **s + } + + static bool +-riscv_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++riscv_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct riscv_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1386,7 +1386,8 @@ riscv_elf_size_dynamic_sections (bfd *ou + htab = riscv_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5256,7 +5257,7 @@ riscv_elf_merge_symbol_attribute (struct + #define elf_backend_create_dynamic_sections riscv_elf_create_dynamic_sections + #define elf_backend_check_relocs riscv_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol riscv_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections riscv_elf_size_dynamic_sections ++#define elf_backend_late_size_sections riscv_elf_late_size_sections + #define elf_backend_relocate_section riscv_elf_relocate_section + #define elf_backend_finish_dynamic_symbol riscv_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections riscv_elf_finish_dynamic_sections +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -9559,8 +9559,8 @@ _bfd_mips_elf_adjust_dynamic_symbol (str + check for any mips16 stub sections that we can discard. */ + + bool +-_bfd_mips_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_mips_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *sect; + struct mips_elf_link_hash_table *htab; +@@ -9903,8 +9903,8 @@ mips_elf_set_plt_sym_value (struct mips_ + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_mips_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_mips_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s, *sreldyn; +@@ -9914,7 +9914,8 @@ _bfd_mips_elf_size_dynamic_sections (bfd + htab = mips_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -14833,7 +14834,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_always_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_early_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf_External_ABIFlags_v0)); + + /* Skip this section later on (I don't think this currently +@@ -14892,7 +14893,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_always_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_early_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf32_External_RegInfo)); + + /* Skip this section later on (I don't think this currently +--- a/bfd/elfxx-mips.h ++++ b/bfd/elfxx-mips.h +@@ -52,9 +52,9 @@ extern bool _bfd_mips_elf_check_relocs + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); + extern bool _bfd_mips_elf_adjust_dynamic_symbol + (struct bfd_link_info *, struct elf_link_hash_entry *); +-extern bool _bfd_mips_elf_always_size_sections ++extern bool _bfd_mips_elf_early_size_sections + (bfd *, struct bfd_link_info *); +-extern bool _bfd_mips_elf_size_dynamic_sections ++extern bool _bfd_mips_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern int _bfd_mips_elf_relocate_section + (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, +--- a/bfd/elfxx-sparc.c ++++ b/bfd/elfxx-sparc.c +@@ -2381,8 +2381,8 @@ _bfd_sparc_elf_omit_section_dynsym (bfd + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_sparc_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_sparc_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct _bfd_sparc_elf_link_hash_table *htab; + bfd *dynobj; +@@ -2392,7 +2392,8 @@ _bfd_sparc_elf_size_dynamic_sections (bf + htab = _bfd_sparc_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +--- a/bfd/elfxx-sparc.h ++++ b/bfd/elfxx-sparc.h +@@ -117,7 +117,7 @@ extern bool _bfd_sparc_elf_adjust_dynami + (struct bfd_link_info *, struct elf_link_hash_entry *); + extern bool _bfd_sparc_elf_omit_section_dynsym + (bfd *, struct bfd_link_info *, asection *); +-extern bool _bfd_sparc_elf_size_dynamic_sections ++extern bool _bfd_sparc_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern bool _bfd_sparc_elf_new_section_hook + (bfd *, asection *); +--- a/bfd/elfxx-target.h ++++ b/bfd/elfxx-target.h +@@ -483,11 +483,11 @@ + #ifndef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol 0 + #endif +-#ifndef elf_backend_always_size_sections +-#define elf_backend_always_size_sections 0 ++#ifndef elf_backend_early_size_sections ++#define elf_backend_early_size_sections 0 + #endif +-#ifndef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections 0 ++#ifndef elf_backend_late_size_sections ++#define elf_backend_late_size_sections 0 + #endif + #ifndef elf_backend_strip_zero_sized_dynamic_sections + #define elf_backend_strip_zero_sized_dynamic_sections 0 +@@ -842,8 +842,8 @@ static const struct elf_backend_data elf + elf_backend_check_directives, + elf_backend_notice_as_needed, + elf_backend_adjust_dynamic_symbol, +- elf_backend_always_size_sections, +- elf_backend_size_dynamic_sections, ++ elf_backend_early_size_sections, ++ elf_backend_late_size_sections, + elf_backend_strip_zero_sized_dynamic_sections, + elf_backend_init_index_section, + elf_backend_relocate_section, +--- a/bfd/elfxx-tilegx.c ++++ b/bfd/elfxx-tilegx.c +@@ -2430,8 +2430,8 @@ tilegx_elf_omit_section_dynsym (bfd *out + } + + bool +-tilegx_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++tilegx_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct tilegx_elf_link_hash_table *htab; + bfd *dynobj; +@@ -2441,7 +2441,8 @@ tilegx_elf_size_dynamic_sections (bfd *o + htab = tilegx_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +--- a/bfd/elfxx-tilegx.h ++++ b/bfd/elfxx-tilegx.h +@@ -57,7 +57,7 @@ tilegx_elf_omit_section_dynsym (bfd *, + asection *); + + extern bool +-tilegx_elf_size_dynamic_sections (bfd *, struct bfd_link_info *); ++tilegx_elf_late_size_sections (bfd *, struct bfd_link_info *); + + extern int + tilegx_elf_relocate_section (bfd *, struct bfd_link_info *, +--- a/bfd/elfxx-x86.c ++++ b/bfd/elfxx-x86.c +@@ -2019,7 +2019,7 @@ _bfd_elf_x86_valid_reloc_p (asection *in + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_x86_elf_size_dynamic_sections (bfd *output_bfd, ++_bfd_x86_elf_late_size_sections (bfd *output_bfd, + struct bfd_link_info *info) + { + struct elf_x86_link_hash_table *htab; +@@ -2035,7 +2035,7 @@ _bfd_x86_elf_size_dynamic_sections (bfd + return false; + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + /* Set up .got offsets for local syms, and space for local dynamic + relocs. */ +@@ -2616,8 +2616,8 @@ _bfd_x86_elf_finish_dynamic_sections (bf + + + bool +-_bfd_x86_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_x86_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *tls_sec = elf_hash_table (info)->tls_sec; + +--- a/bfd/elfxx-x86.h ++++ b/bfd/elfxx-x86.h +@@ -807,13 +807,13 @@ extern bool _bfd_elf_x86_valid_reloc_p + const Elf_Internal_Rela *, struct elf_link_hash_entry *, + Elf_Internal_Sym *, Elf_Internal_Shdr *, bool *); + +-extern bool _bfd_x86_elf_size_dynamic_sections ++extern bool _bfd_x86_elf_late_size_sections + (bfd *, struct bfd_link_info *); + + extern struct elf_x86_link_hash_table *_bfd_x86_elf_finish_dynamic_sections + (bfd *, struct bfd_link_info *); + +-extern bool _bfd_x86_elf_always_size_sections ++extern bool _bfd_x86_elf_early_size_sections + (bfd *, struct bfd_link_info *); + + extern void _bfd_x86_elf_merge_symbol_attribute +@@ -885,8 +885,8 @@ extern void _bfd_x86_elf_link_report_rel + + #define elf_backend_check_relocs \ + _bfd_x86_elf_check_relocs +-#define elf_backend_size_dynamic_sections \ +- _bfd_x86_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_x86_elf_late_size_sections + #define elf_backend_merge_symbol_attribute \ + _bfd_x86_elf_merge_symbol_attribute + #define elf_backend_copy_indirect_symbol \ +--- a/ld/emultempl/vms.em ++++ b/ld/emultempl/vms.em +@@ -196,10 +196,9 @@ gld${EMULATION_NAME}_before_allocation ( + + /* The backend must work out the sizes of all the other dynamic + sections. */ +- if (elf_hash_table (&link_info)->dynamic_sections_created +- && bed->elf_backend_size_dynamic_sections +- && ! (*bed->elf_backend_size_dynamic_sections) (link_info.output_bfd, +- &link_info)) ++ if (bed->elf_backend_late_size_sections ++ && !bed->elf_backend_late_size_sections (link_info.output_bfd, ++ &link_info)) + einfo (_("%F%P: failed to set dynamic section sizes: %E\n")); + + before_allocation_default (); diff --git a/toolchain/binutils/patches/2.39/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch b/toolchain/binutils/patches/2.39/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch new file mode 100644 index 00000000000000..f0c0d7a10a0ebc --- /dev/null +++ b/toolchain/binutils/patches/2.39/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch @@ -0,0 +1,218 @@ +From 3c6c32951e292a51ede70b8087bb0308d7dbc4fc Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Thu, 28 Mar 2024 20:33:32 +1030 +Subject: [PATCH 2/2] PR 30569, delete _bfd_mips_elf_early_size_sections + +PR30569 was triggered by a patch of mine 6540edd52cc0 moving the call +to always_size_sections in bfd_elf_size_dynamic_sections earlier, made +to support the x86 DT_RELR implementation. This broke mips16 code +handling stubs when --export-dynamic is passed to the linker, because +numerous symbols then became dynamic after always_size_sections. The +mips backend fiddles with symbols in its always_size_sections. Maciej +in 902e9fc76a0e had moved the call to always_size_sections to after +the export-dynamic code. Prior to that, Nathan in 04c3a75556c0 moved +it before the exec stack code, back to the start of +bfd_elf_size_dynamic_sections which was where Ian put it originally +in ff12f303355b. So the call has moved around a little. I'm leaving +it where it is, and instead calling mips_elf_check_symbols from +late_size_sections (the old size_dynamic_sections) which is now always +called. In fact, the whole of _bfd_mips_elf_early_size_sections can +be merged into _bfd_mips_elf_late_size_sections. +--- + bfd/elf32-mips.c | 1 - + bfd/elf64-mips.c | 2 -- + bfd/elfn32-mips.c | 1 - + bfd/elfxx-mips.c | 84 +++++++++++++++++++---------------------------- + bfd/elfxx-mips.h | 2 -- + 5 files changed, 34 insertions(+), 56 deletions(-) + +--- a/bfd/elf32-mips.c ++++ b/bfd/elf32-mips.c +@@ -2525,7 +2525,6 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section +--- a/bfd/elf64-mips.c ++++ b/bfd/elf64-mips.c +@@ -4739,8 +4739,6 @@ const struct elf_size_info mips_elf64_si + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections \ +- _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections \ + _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section +--- a/bfd/elfn32-mips.c ++++ b/bfd/elfn32-mips.c +@@ -4125,7 +4125,6 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -9554,48 +9554,6 @@ _bfd_mips_elf_adjust_dynamic_symbol (str + return _bfd_elf_adjust_dynamic_copy (info, h, s); + } + +-/* This function is called after all the input files have been read, +- and the input sections have been assigned to output sections. We +- check for any mips16 stub sections that we can discard. */ +- +-bool +-_bfd_mips_elf_early_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) +-{ +- asection *sect; +- struct mips_elf_link_hash_table *htab; +- struct mips_htab_traverse_info hti; +- +- htab = mips_elf_hash_table (info); +- BFD_ASSERT (htab != NULL); +- +- /* The .reginfo section has a fixed size. */ +- sect = bfd_get_section_by_name (output_bfd, ".reginfo"); +- if (sect != NULL) +- { +- bfd_set_section_size (sect, sizeof (Elf32_External_RegInfo)); +- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; +- } +- +- /* The .MIPS.abiflags section has a fixed size. */ +- sect = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags"); +- if (sect != NULL) +- { +- bfd_set_section_size (sect, sizeof (Elf_External_ABIFlags_v0)); +- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; +- } +- +- hti.info = info; +- hti.output_bfd = output_bfd; +- hti.error = false; +- mips_elf_link_hash_traverse (mips_elf_hash_table (info), +- mips_elf_check_symbols, &hti); +- if (hti.error) +- return false; +- +- return true; +-} +- + /* If the link uses a GOT, lay it out and work out its size. */ + + static bool +@@ -9900,7 +9858,8 @@ mips_elf_set_plt_sym_value (struct mips_ + return true; + } + +-/* Set the sizes of the dynamic sections. */ ++/* Set the sizes of the dynamic sections, some mips non-dynamic sections, ++ and check for any mips16 stub sections that we can discard. */ + + bool + _bfd_mips_elf_late_size_sections (bfd *output_bfd, +@@ -9910,14 +9869,39 @@ _bfd_mips_elf_late_size_sections (bfd *o + asection *s, *sreldyn; + bool reltext; + struct mips_elf_link_hash_table *htab; ++ struct mips_htab_traverse_info hti; + + htab = mips_elf_hash_table (info); + BFD_ASSERT (htab != NULL); +- dynobj = elf_hash_table (info)->dynobj; ++ ++ /* The .reginfo section has a fixed size. */ ++ s = bfd_get_section_by_name (output_bfd, ".reginfo"); ++ if (s != NULL) ++ { ++ bfd_set_section_size (s, sizeof (Elf32_External_RegInfo)); ++ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; ++ } ++ ++ /* The .MIPS.abiflags section has a fixed size. */ ++ s = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags"); ++ if (s != NULL) ++ { ++ bfd_set_section_size (s, sizeof (Elf_External_ABIFlags_v0)); ++ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; ++ } ++ ++ hti.info = info; ++ hti.output_bfd = output_bfd; ++ hti.error = false; ++ mips_elf_link_hash_traverse (htab, mips_elf_check_symbols, &hti); ++ if (hti.error) ++ return false; ++ ++ dynobj = htab->root.dynobj; + if (dynobj == NULL) + return true; + +- if (elf_hash_table (info)->dynamic_sections_created) ++ if (htab->root.dynamic_sections_created) + { + /* Set the contents of the .interp section to the interpreter. */ + if (bfd_link_executable (info) && !info->nointerp) +@@ -10057,7 +10041,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + } + else if (bfd_link_executable (info) +- && ! mips_elf_hash_table (info)->use_rld_obj_head ++ && !htab->use_rld_obj_head + && startswith (name, ".rld_map")) + { + /* We add a room for __rld_map. It will be filled in by the +@@ -10066,7 +10050,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + else if (SGI_COMPAT (output_bfd) + && startswith (name, ".compact_rel")) +- s->size += mips_elf_hash_table (info)->compact_rel_size; ++ s->size += htab->compact_rel_size; + else if (s == htab->root.splt) + { + /* If the last PLT entry has a branch delay slot, allocate +@@ -10106,7 +10090,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + } + +- if (elf_hash_table (info)->dynamic_sections_created) ++ if (htab->root.dynamic_sections_created) + { + /* Add some entries to the .dynamic section. We fill in the + values later, in _bfd_mips_elf_finish_dynamic_sections, but we +@@ -14834,7 +14818,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_early_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_late_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf_External_ABIFlags_v0)); + + /* Skip this section later on (I don't think this currently +@@ -14893,7 +14877,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_early_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_late_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf32_External_RegInfo)); + + /* Skip this section later on (I don't think this currently +--- a/bfd/elfxx-mips.h ++++ b/bfd/elfxx-mips.h +@@ -52,8 +52,6 @@ extern bool _bfd_mips_elf_check_relocs + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); + extern bool _bfd_mips_elf_adjust_dynamic_symbol + (struct bfd_link_info *, struct elf_link_hash_entry *); +-extern bool _bfd_mips_elf_early_size_sections +- (bfd *, struct bfd_link_info *); + extern bool _bfd_mips_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern int _bfd_mips_elf_relocate_section diff --git a/toolchain/binutils/patches/2.39/039-LoongArch-ld-Fix-relocation-error-of-pcrel.patch b/toolchain/binutils/patches/2.39/039-LoongArch-ld-Fix-relocation-error-of-pcrel.patch index 67e499de673610..bf452e566a3857 100644 --- a/toolchain/binutils/patches/2.39/039-LoongArch-ld-Fix-relocation-error-of-pcrel.patch +++ b/toolchain/binutils/patches/2.39/039-LoongArch-ld-Fix-relocation-error-of-pcrel.patch @@ -23,7 +23,7 @@ Subject: [PATCH 039/160] LoongArch:ld: Fix relocation error of pcrel. --- a/bfd/elfnn-loongarch.c +++ b/bfd/elfnn-loongarch.c -@@ -2341,9 +2341,10 @@ loongarch_elf_relocate_section (bfd *out +@@ -2342,9 +2342,10 @@ loongarch_elf_relocate_section (bfd *out case R_LARCH_SOP_PUSH_PLT_PCREL: unresolved_reloc = false; diff --git a/toolchain/binutils/patches/2.40/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch b/toolchain/binutils/patches/2.40/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch new file mode 100644 index 00000000000000..9c7635df44c535 --- /dev/null +++ b/toolchain/binutils/patches/2.40/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch @@ -0,0 +1,2172 @@ +From af969b14aedcc0ae27dcefab4327ff2d153dec8b Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Thu, 28 Mar 2024 19:25:42 +1030 +Subject: [PATCH 1/2] PR 30569, always call elf_backend_size_dynamic_sections + +This largely mechanical patch is preparation for a followup patch. + +For quite some time I've thought that it would be useful to call +elf_backend_size_dynamic_sections even when no dynamic objects are +seen by the linker. That's what this patch does, with some renaming. +There are no functional changes to the linker, just a move of the +dynobj test in bfd_elf_size_dynamic_sections to target backend +functions, replacing the asserts/aborts already there. No doubt some +of the current always_size_sections functions could be moved to +size_dynamic_sections but I haven't made that change. + +Because both hooks are now always called, I have renamed +always_size_sections to early_size_sections and size_dynamic_sections +to late_size_sections. I condisdered calling late_size_sections plain +size_sections, since this is the usual target dynamic section sizing +hook, but decided that searching the sources for "size_sections" would +then hit early_size_sections and other functions. +--- + bfd/elf-bfd.h | 35 +++++++++++++++++------------------ + bfd/elf-m10300.c | 11 ++++++----- + bfd/elf32-arc.c | 9 +++++---- + bfd/elf32-arm.c | 15 ++++++++------- + bfd/elf32-bfin.c | 31 ++++++++++++++++--------------- + bfd/elf32-cr16.c | 11 ++++++----- + bfd/elf32-cris.c | 13 +++++++------ + bfd/elf32-csky.c | 8 ++++---- + bfd/elf32-frv.c | 23 ++++++++++++----------- + bfd/elf32-hppa.c | 8 ++++---- + bfd/elf32-i386.c | 7 +++---- + bfd/elf32-lm32.c | 15 ++++++++------- + bfd/elf32-m32c.c | 8 ++++---- + bfd/elf32-m32r.c | 11 ++++++----- + bfd/elf32-m68k.c | 16 ++++++++-------- + bfd/elf32-metag.c | 8 ++++---- + bfd/elf32-microblaze.c | 9 +++++---- + bfd/elf32-mips.c | 6 ++---- + bfd/elf32-nds32.c | 9 +++++---- + bfd/elf32-nios2.c | 15 ++++++++------- + bfd/elf32-or1k.c | 9 +++++---- + bfd/elf32-ppc.c | 11 ++++++----- + bfd/elf32-rl78.c | 8 ++++---- + bfd/elf32-s390.c | 10 +++++----- + bfd/elf32-score.c | 35 ++++++++++++++++++----------------- + bfd/elf32-score.h | 4 ++-- + bfd/elf32-score7.c | 13 +++++++------ + bfd/elf32-sh.c | 15 +++++++-------- + bfd/elf32-sparc.c | 3 +-- + bfd/elf32-tic6x.c | 14 +++++++------- + bfd/elf32-tilegx.c | 2 +- + bfd/elf32-tilepro.c | 11 +++++------ + bfd/elf32-vax.c | 16 +++++++--------- + bfd/elf32-xstormy16.c | 8 ++++---- + bfd/elf32-xtensa.c | 13 ++++++------- + bfd/elf64-alpha.c | 19 ++++++++++--------- + bfd/elf64-hppa.c | 11 ++++------- + bfd/elf64-ia64-vms.c | 13 +++++++------ + bfd/elf64-mips.c | 8 ++++---- + bfd/elf64-ppc.c | 12 ++++++------ + bfd/elf64-s390.c | 10 +++++----- + bfd/elf64-sparc.c | 4 ++-- + bfd/elf64-tilegx.c | 2 +- + bfd/elf64-x86-64.c | 7 +++---- + bfd/elflink.c | 9 ++++----- + bfd/elfn32-mips.c | 6 ++---- + bfd/elfnn-aarch64.c | 21 +++++++++++---------- + bfd/elfnn-ia64.c | 11 ++++++----- + bfd/elfnn-kvx.c | 19 +++++++++---------- + bfd/elfnn-loongarch.c | 9 +++++---- + bfd/elfnn-riscv.c | 7 ++++--- + bfd/elfxx-mips.c | 15 ++++++++------- + bfd/elfxx-mips.h | 4 ++-- + bfd/elfxx-sparc.c | 7 ++++--- + bfd/elfxx-sparc.h | 2 +- + bfd/elfxx-target.h | 12 ++++++------ + bfd/elfxx-tilegx.c | 7 ++++--- + bfd/elfxx-tilegx.h | 2 +- + bfd/elfxx-x86.c | 8 ++++---- + bfd/elfxx-x86.h | 8 ++++---- + ld/emultempl/vms.em | 7 +++---- + 61 files changed, 343 insertions(+), 337 deletions(-) + +--- a/bfd/elf-bfd.h ++++ b/bfd/elf-bfd.h +@@ -1173,7 +1173,7 @@ struct elf_backend_data + /* The ADJUST_DYNAMIC_SYMBOL function is called by the ELF backend + linker for every symbol which is defined by a dynamic object and + referenced by a regular object. This is called after all the +- input files have been seen, but before the SIZE_DYNAMIC_SECTIONS ++ input files have been seen, but before the LATE_SIZE_SECTIONS + function has been called. The hash table entry should be + bfd_link_hash_defined ore bfd_link_hash_defweak, and it should be + defined in a section from a dynamic object. Dynamic object +@@ -1185,24 +1185,23 @@ struct elf_backend_data + bool (*elf_backend_adjust_dynamic_symbol) + (struct bfd_link_info *info, struct elf_link_hash_entry *h); + +- /* The ALWAYS_SIZE_SECTIONS function is called by the backend linker +- after all the linker input files have been seen but before the +- section sizes have been set. This is called after +- ADJUST_DYNAMIC_SYMBOL, but before SIZE_DYNAMIC_SECTIONS. */ +- bool (*elf_backend_always_size_sections) ++ /* The EARLY_SIZE_SECTIONS and LATE_SIZE_SECTIONS functions are ++ called by the backend linker after all linker input files have ++ been seen and sections have been assigned to output sections, but ++ before the section sizes have been set. Both of these functions ++ are called even when no dynamic object is seen by the linker. ++ Between them, they must set the sizes of the dynamic sections and ++ other backend specific sections, and may fill in their contents. ++ Most backends need only use LATE_SIZE_SECTIONS. ++ EARLY_SIZE_SECTIONS is called before --export-dynamic makes some ++ symbols dynamic and before ADJUST_DYNAMIC_SYMBOL processes ++ dynamic symbols, LATE_SIZE_SECTIONS afterwards. The generic ELF ++ linker can handle the .dynsym, .dynstr and .hash sections. ++ Besides those, these functions must handle the .interp section ++ and any other sections created by CREATE_DYNAMIC_SECTIONS. */ ++ bool (*elf_backend_early_size_sections) + (bfd *output_bfd, struct bfd_link_info *info); +- +- /* The SIZE_DYNAMIC_SECTIONS function is called by the ELF backend +- linker after all the linker input files have been seen but before +- the sections sizes have been set. This is called after +- ADJUST_DYNAMIC_SYMBOL has been called on all appropriate symbols. +- It is only called when linking against a dynamic object. It must +- set the sizes of the dynamic sections, and may fill in their +- contents as well. The generic ELF linker can handle the .dynsym, +- .dynstr and .hash sections. This function must handle the +- .interp section and any sections created by the +- CREATE_DYNAMIC_SECTIONS entry point. */ +- bool (*elf_backend_size_dynamic_sections) ++ bool (*elf_backend_late_size_sections) + (bfd *output_bfd, struct bfd_link_info *info); + + /* The STRIP_ZERO_SIZED_DYNAMIC_SECTIONS function is called by the +--- a/bfd/elf-m10300.c ++++ b/bfd/elf-m10300.c +@@ -5012,8 +5012,8 @@ _bfd_mn10300_elf_adjust_dynamic_symbol ( + /* Set the sizes of the dynamic sections. */ + + static bool +-_bfd_mn10300_elf_size_dynamic_sections (bfd * output_bfd, +- struct bfd_link_info * info) ++_bfd_mn10300_elf_late_size_sections (bfd * output_bfd, ++ struct bfd_link_info * info) + { + struct elf32_mn10300_link_hash_table *htab = elf32_mn10300_hash_table (info); + bfd * dynobj; +@@ -5021,7 +5021,8 @@ _bfd_mn10300_elf_size_dynamic_sections ( + bool relocs; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5508,8 +5509,8 @@ mn10300_elf_mkobject (bfd *abfd) + _bfd_mn10300_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mn10300_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- _bfd_mn10300_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_mn10300_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_symbol \ + _bfd_mn10300_elf_finish_dynamic_symbol +--- a/bfd/elf32-arc.c ++++ b/bfd/elf32-arc.c +@@ -2702,8 +2702,8 @@ elf_arc_finish_dynamic_sections (bfd * o + + /* Set the sizes of the dynamic sections. */ + static bool +-elf_arc_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_arc_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -2711,7 +2711,8 @@ elf_arc_size_dynamic_sections (bfd *outp + struct elf_link_hash_table *htab = elf_hash_table (info); + + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -3126,7 +3127,7 @@ arc_elf_relax_section (bfd *abfd, asecti + #define elf_backend_finish_dynamic_symbol elf_arc_finish_dynamic_symbol + + #define elf_backend_finish_dynamic_sections elf_arc_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf_arc_size_dynamic_sections ++#define elf_backend_late_size_sections elf_arc_late_size_sections + + #define elf_backend_can_gc_sections 1 + #define elf_backend_want_got_plt 1 +--- a/bfd/elf32-arm.c ++++ b/bfd/elf32-arm.c +@@ -16734,8 +16734,8 @@ bfd_elf32_arm_set_byteswap_code (struct + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info * info) ++elf32_arm_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info * info) + { + bfd * dynobj; + asection * s; +@@ -16748,7 +16748,9 @@ elf32_arm_size_dynamic_sections (bfd * o + return false; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; ++ + check_use_blx (htab); + + if (elf_hash_table (info)->dynamic_sections_created) +@@ -17120,8 +17122,7 @@ elf32_arm_size_dynamic_sections (bfd * o + _TLS_MODULE_BASE_, if needed. */ + + static bool +-elf32_arm_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_arm_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + asection *tls_sec; + struct elf32_arm_link_hash_table *htab; +@@ -20320,8 +20321,8 @@ elf32_arm_backend_symbol_processing (bfd + #define elf_backend_create_dynamic_sections elf32_arm_create_dynamic_sections + #define elf_backend_finish_dynamic_symbol elf32_arm_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf32_arm_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf32_arm_size_dynamic_sections +-#define elf_backend_always_size_sections elf32_arm_always_size_sections ++#define elf_backend_late_size_sections elf32_arm_late_size_sections ++#define elf_backend_early_size_sections elf32_arm_early_size_sections + #define elf_backend_init_index_section _bfd_elf_init_2_index_sections + #define elf_backend_init_file_header elf32_arm_init_file_header + #define elf_backend_reloc_type_class elf32_arm_reloc_type_class +--- a/bfd/elf32-bfin.c ++++ b/bfd/elf32-bfin.c +@@ -4027,8 +4027,8 @@ _bfinfdpic_size_got_plt (bfd *output_bfd + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_bfinfdpic_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_bfinfdpic_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct elf_link_hash_table *htab; + bfd *dynobj; +@@ -4037,7 +4037,8 @@ elf32_bfinfdpic_size_dynamic_sections (b + + htab = elf_hash_table (info); + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -4086,7 +4087,7 @@ elf32_bfinfdpic_size_dynamic_sections (b + } + + static bool +-elf32_bfinfdpic_always_size_sections (bfd *output_bfd, ++elf32_bfinfdpic_early_size_sections (bfd *output_bfd, + struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info) +@@ -5124,15 +5125,16 @@ bfin_discard_copies (struct elf_link_has + } + + static bool +-bfin_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++bfin_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5424,8 +5426,7 @@ struct bfd_elf_special_section const elf + #define elf_backend_check_relocs bfin_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + bfin_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- bfin_size_dynamic_sections ++#define elf_backend_late_size_sections bfin_late_size_sections + #define elf_backend_relocate_section bfin_relocate_section + #define elf_backend_finish_dynamic_symbol \ + bfin_finish_dynamic_symbol +@@ -5471,9 +5472,9 @@ struct bfd_elf_special_section const elf + #undef bfd_elf32_bfd_link_hash_table_create + #define bfd_elf32_bfd_link_hash_table_create \ + bfinfdpic_elf_link_hash_table_create +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections \ +- elf32_bfinfdpic_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections \ ++ elf32_bfinfdpic_early_size_sections + + #undef elf_backend_create_dynamic_sections + #define elf_backend_create_dynamic_sections \ +@@ -5481,9 +5482,9 @@ struct bfd_elf_special_section const elf + #undef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol \ + elf32_bfinfdpic_adjust_dynamic_symbol +-#undef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_bfinfdpic_size_dynamic_sections ++#undef elf_backend_late_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_bfinfdpic_late_size_sections + #undef elf_backend_finish_dynamic_symbol + #define elf_backend_finish_dynamic_symbol \ + elf32_bfinfdpic_finish_dynamic_symbol +--- a/bfd/elf32-cr16.c ++++ b/bfd/elf32-cr16.c +@@ -2390,15 +2390,16 @@ _bfd_cr16_elf_adjust_dynamic_symbol (str + /* Set the sizes of the dynamic sections. */ + + static bool +-_bfd_cr16_elf_size_dynamic_sections (bfd * output_bfd, +- struct bfd_link_info * info) ++_bfd_cr16_elf_late_size_sections (bfd * output_bfd, ++ struct bfd_link_info * info) + { + bfd * dynobj; + asection * s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -2835,8 +2836,8 @@ _bfd_cr16_elf_reloc_type_class (const st + _bfd_cr16_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol \ + _bfd_cr16_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- _bfd_cr16_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_cr16_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_symbol \ + _bfd_cr16_elf_finish_dynamic_symbol +--- a/bfd/elf32-cris.c ++++ b/bfd/elf32-cris.c +@@ -2527,7 +2527,7 @@ cris_elf_plt_sym_val (bfd_vma i ATTRIBUT + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_cris_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_cris_size_dynamic_sections if no dynamic sections will be ++ or elf_cris_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static bool +@@ -3508,8 +3508,8 @@ cris_elf_check_relocs (bfd *abfd, + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_cris_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_cris_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_cris_link_hash_table * htab; + bfd *dynobj; +@@ -3521,7 +3521,8 @@ elf_cris_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -4090,8 +4091,8 @@ elf_cris_got_elt_size (bfd *abfd ATTRIBU + elf_cris_adjust_dynamic_symbol + #define elf_backend_copy_indirect_symbol \ + elf_cris_copy_indirect_symbol +-#define elf_backend_size_dynamic_sections \ +- elf_cris_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elf_cris_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_finish_dynamic_symbol \ + elf_cris_finish_dynamic_symbol +--- a/bfd/elf32-csky.c ++++ b/bfd/elf32-csky.c +@@ -1893,8 +1893,8 @@ csky_allocate_dynrelocs (struct elf_link + /* Set the sizes of the dynamic sections. */ + + static bool +-csky_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++csky_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct csky_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1907,7 +1907,7 @@ csky_elf_size_dynamic_sections (bfd *out + return false; + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- return false; ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -5344,7 +5344,7 @@ elf32_csky_obj_attrs_handle_unknown (bfd + /* Dynamic relocate related API. */ + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol csky_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections csky_elf_size_dynamic_sections ++#define elf_backend_late_size_sections csky_elf_late_size_sections + #define elf_backend_finish_dynamic_symbol csky_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections csky_elf_finish_dynamic_sections + #define elf_backend_rela_normal 1 +--- a/bfd/elf32-frv.c ++++ b/bfd/elf32-frv.c +@@ -5423,15 +5423,16 @@ _frvfdpic_size_got_plt (bfd *output_bfd, + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_frvfdpic_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_frvfdpic_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + struct _frvfdpic_dynamic_got_plt_info gpinfo; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5472,8 +5473,8 @@ elf32_frvfdpic_size_dynamic_sections (bf + } + + static bool +-elf32_frvfdpic_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_frvfdpic_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info) + && !bfd_elf_stack_segment_size (output_bfd, info, +@@ -6817,9 +6818,9 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In + #undef bfd_elf32_bfd_link_hash_table_create + #define bfd_elf32_bfd_link_hash_table_create \ + frvfdpic_elf_link_hash_table_create +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections \ +- elf32_frvfdpic_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections \ ++ elf32_frvfdpic_early_size_sections + + #undef elf_backend_create_dynamic_sections + #define elf_backend_create_dynamic_sections \ +@@ -6827,9 +6828,9 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In + #undef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol \ + elf32_frvfdpic_adjust_dynamic_symbol +-#undef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_frvfdpic_size_dynamic_sections ++#undef elf_backend_late_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_frvfdpic_late_size_sections + #undef bfd_elf32_bfd_relax_section + #define bfd_elf32_bfd_relax_section \ + elf32_frvfdpic_relax_section +--- a/bfd/elf32-hppa.c ++++ b/bfd/elf32-hppa.c +@@ -2042,8 +2042,8 @@ clobber_millicode_symbols (struct elf_li + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf32_hppa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf32_hppa_link_hash_table *htab; + bfd *dynobj; +@@ -2057,7 +2057,7 @@ elf32_hppa_size_dynamic_sections (bfd *o + + dynobj = htab->etab.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->etab.dynamic_sections_created) + { +@@ -4450,7 +4450,7 @@ elf32_hppa_elf_get_symbol_type (Elf_Inte + #define elf_backend_hide_symbol elf32_hppa_hide_symbol + #define elf_backend_finish_dynamic_symbol elf32_hppa_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf32_hppa_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf32_hppa_size_dynamic_sections ++#define elf_backend_late_size_sections elf32_hppa_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_gc_mark_hook elf32_hppa_gc_mark_hook + #define elf_backend_grok_prstatus elf32_hppa_grok_prstatus +--- a/bfd/elf32-i386.c ++++ b/bfd/elf32-i386.c +@@ -1933,8 +1933,7 @@ elf_i386_scan_relocs (bfd *abfd, + } + + static bool +-elf_i386_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_i386_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *abfd; + +@@ -1947,7 +1946,7 @@ elf_i386_always_size_sections (bfd *outp + elf_i386_scan_relocs)) + return false; + +- return _bfd_x86_elf_always_size_sections (output_bfd, info); ++ return _bfd_x86_elf_early_size_sections (output_bfd, info); + } + + /* Set the correct type for an x86 ELF section. We do this by the +@@ -4444,7 +4443,7 @@ elf_i386_link_setup_gnu_properties (stru + #define bfd_elf32_get_synthetic_symtab elf_i386_get_synthetic_symtab + + #define elf_backend_relocs_compatible _bfd_elf_relocs_compatible +-#define elf_backend_always_size_sections elf_i386_always_size_sections ++#define elf_backend_early_size_sections elf_i386_early_size_sections + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_fake_sections elf_i386_fake_sections + #define elf_backend_finish_dynamic_sections elf_i386_finish_dynamic_sections +--- a/bfd/elf32-lm32.c ++++ b/bfd/elf32-lm32.c +@@ -1906,8 +1906,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-lm32_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++lm32_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct elf_lm32_link_hash_table *htab; + bfd *dynobj; +@@ -1920,7 +1920,8 @@ lm32_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -2309,7 +2310,7 @@ lm32_elf_create_dynamic_sections (bfd *a + } + + static bool +-lm32_elf_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++lm32_elf_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info)) + { +@@ -2395,7 +2396,7 @@ lm32_elf_fdpic_copy_private_bfd_data (bf + #define bfd_elf32_bfd_link_hash_table_create lm32_elf_link_hash_table_create + #define elf_backend_check_relocs lm32_elf_check_relocs + #define elf_backend_reloc_type_class lm32_elf_reloc_type_class +-#define elf_backend_size_dynamic_sections lm32_elf_size_dynamic_sections ++#define elf_backend_late_size_sections lm32_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_create_dynamic_sections lm32_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections lm32_elf_finish_dynamic_sections +@@ -2416,8 +2417,8 @@ lm32_elf_fdpic_copy_private_bfd_data (bf + #undef elf32_bed + #define elf32_bed elf32_lm32fdpic_bed + +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections lm32_elf_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections lm32_elf_early_size_sections + #undef bfd_elf32_bfd_copy_private_bfd_data + #define bfd_elf32_bfd_copy_private_bfd_data lm32_elf_fdpic_copy_private_bfd_data + +--- a/bfd/elf32-m32c.c ++++ b/bfd/elf32-m32c.c +@@ -773,8 +773,8 @@ m32c_elf_finish_dynamic_sections (bfd *a + } + + static bool +-m32c_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++m32c_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -2131,8 +2131,8 @@ _bfd_m32c_elf_eh_frame_address_size (bfd + #define elf_backend_check_relocs m32c_elf_check_relocs + #define elf_backend_object_p m32c_elf_object_p + #define elf_symbol_leading_char ('_') +-#define elf_backend_always_size_sections \ +- m32c_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ m32c_elf_early_size_sections + #define elf_backend_finish_dynamic_sections \ + m32c_elf_finish_dynamic_sections + +--- a/bfd/elf32-m32r.c ++++ b/bfd/elf32-m32r.c +@@ -1958,8 +1958,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-m32r_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++m32r_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_link_hash_table *htab; + bfd *dynobj; +@@ -1968,7 +1968,7 @@ m32r_elf_size_dynamic_sections (bfd *out + bfd *ibfd; + + #ifdef DEBUG_PIC +- printf ("m32r_elf_size_dynamic_sections()\n"); ++ printf ("m32r_elf_late_size_sections()\n"); + #endif + + htab = m32r_elf_hash_table (info); +@@ -1976,7 +1976,8 @@ m32r_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -3658,7 +3659,7 @@ m32r_elf_reloc_type_class (const struct + + #define elf_backend_create_dynamic_sections m32r_elf_create_dynamic_sections + #define bfd_elf32_bfd_link_hash_table_create m32r_elf_link_hash_table_create +-#define elf_backend_size_dynamic_sections m32r_elf_size_dynamic_sections ++#define elf_backend_late_size_sections m32r_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_sections m32r_elf_finish_dynamic_sections + #define elf_backend_adjust_dynamic_symbol m32r_elf_adjust_dynamic_symbol +--- a/bfd/elf32-m68k.c ++++ b/bfd/elf32-m68k.c +@@ -2934,7 +2934,7 @@ elf_m68k_get_plt_info (bfd *output_bfd) + It's a convenient place to determine the PLT style. */ + + static bool +-elf_m68k_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf_m68k_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + /* Bind input BFDs to GOTs and calculate sizes of .got and .rela.got + sections. */ +@@ -3107,15 +3107,16 @@ elf_m68k_adjust_dynamic_symbol (struct b + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_m68k_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_m68k_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -4628,12 +4629,11 @@ elf_m68k_grok_psinfo (bfd *abfd, Elf_Int + #define bfd_elf32_bfd_final_link bfd_elf_final_link + + #define elf_backend_check_relocs elf_m68k_check_relocs +-#define elf_backend_always_size_sections \ +- elf_m68k_always_size_sections ++#define elf_backend_early_size_sections \ ++ elf_m68k_early_size_sections + #define elf_backend_adjust_dynamic_symbol \ + elf_m68k_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elf_m68k_size_dynamic_sections ++#define elf_backend_late_size_sections elf_m68k_late_size_sections + #define elf_backend_final_write_processing elf_m68k_final_write_processing + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section elf_m68k_relocate_section +--- a/bfd/elf32-metag.c ++++ b/bfd/elf32-metag.c +@@ -2717,8 +2717,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_metag_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_metag_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_metag_link_hash_table *htab; + bfd *dynobj; +@@ -2729,7 +2729,7 @@ elf_metag_size_dynamic_sections (bfd *ou + htab = metag_link_hash_table (info); + dynobj = htab->etab.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->etab.dynamic_sections_created) + { +@@ -4019,7 +4019,7 @@ elf_metag_plt_sym_val (bfd_vma i, const + #define elf_backend_adjust_dynamic_symbol elf_metag_adjust_dynamic_symbol + #define elf_backend_finish_dynamic_symbol elf_metag_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf_metag_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf_metag_size_dynamic_sections ++#define elf_backend_late_size_sections elf_metag_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_init_file_header elf_metag_init_file_header +--- a/bfd/elf32-microblaze.c ++++ b/bfd/elf32-microblaze.c +@@ -2946,8 +2946,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-microblaze_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++microblaze_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf32_mb_link_hash_table *htab; + bfd *dynobj; +@@ -2959,7 +2959,8 @@ microblaze_elf_size_dynamic_sections (bf + return false; + + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + /* Set up .got offsets for local syms, and space for local dynamic + relocs. */ +@@ -3477,7 +3478,7 @@ microblaze_elf_add_symbol_hook (bfd *abf + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections microblaze_elf_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol microblaze_elf_finish_dynamic_symbol +-#define elf_backend_size_dynamic_sections microblaze_elf_size_dynamic_sections ++#define elf_backend_late_size_sections microblaze_elf_late_size_sections + #define elf_backend_add_symbol_hook microblaze_elf_add_symbol_hook + + #include "elf32-target.h" +--- a/bfd/elf32-mips.c ++++ b/bfd/elf32-mips.c +@@ -2534,10 +2534,8 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf32-nds32.c ++++ b/bfd/elf32-nds32.c +@@ -4302,8 +4302,8 @@ elf32_nds32_add_dynreloc (bfd *output_bf + /* Set the sizes of the dynamic sections. */ + + static bool +-nds32_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++nds32_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_nds32_link_hash_table *htab; + bfd *dynobj; +@@ -4316,7 +4316,8 @@ nds32_elf_size_dynamic_sections (bfd *ou + return false; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -13984,7 +13985,7 @@ nds32_elf_unify_tls_model (bfd *inbfd, a + #define elf_backend_create_dynamic_sections nds32_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections nds32_elf_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol nds32_elf_finish_dynamic_symbol +-#define elf_backend_size_dynamic_sections nds32_elf_size_dynamic_sections ++#define elf_backend_late_size_sections nds32_elf_late_size_sections + #define elf_backend_relocate_section nds32_elf_relocate_section + #define elf_backend_gc_mark_hook nds32_elf_gc_mark_hook + #define elf_backend_grok_prstatus nds32_elf_grok_prstatus +--- a/bfd/elf32-nios2.c ++++ b/bfd/elf32-nios2.c +@@ -5411,7 +5411,7 @@ nios2_elf32_adjust_dynamic_symbol (struc + return true; + } + +-/* Worker function for nios2_elf32_size_dynamic_sections. */ ++/* Worker function for nios2_elf32_late_size_sections. */ + static bool + adjust_dynrelocs (struct elf_link_hash_entry *h, void *inf) + { +@@ -5438,7 +5438,7 @@ adjust_dynrelocs (struct elf_link_hash_e + return true; + } + +-/* Another worker function for nios2_elf32_size_dynamic_sections. ++/* Another worker function for nios2_elf32_late_size_sections. + Allocate space in .plt, .got and associated reloc sections for + dynamic relocs. */ + static bool +@@ -5673,11 +5673,11 @@ allocate_dynrelocs (struct elf_link_hash + return true; + } + +-/* Implement elf_backend_size_dynamic_sections: ++/* Implement elf_backend_late_size_sections: + Set the sizes of the dynamic sections. */ + static bool +-nios2_elf32_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++nios2_elf32_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -5687,7 +5687,8 @@ nios2_elf32_size_dynamic_sections (bfd * + + htab = elf32_nios2_hash_table (info); + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + htab->res_n_size = 0; + if (htab->root.dynamic_sections_created) +@@ -6058,7 +6059,7 @@ const struct bfd_elf_special_section elf + nios2_elf32_finish_dynamic_sections + #define elf_backend_adjust_dynamic_symbol nios2_elf32_adjust_dynamic_symbol + #define elf_backend_reloc_type_class nios2_elf32_reloc_type_class +-#define elf_backend_size_dynamic_sections nios2_elf32_size_dynamic_sections ++#define elf_backend_late_size_sections nios2_elf32_late_size_sections + #define elf_backend_add_symbol_hook nios2_elf_add_symbol_hook + #define elf_backend_copy_indirect_symbol nios2_elf32_copy_indirect_symbol + #define elf_backend_object_p nios2_elf32_object_p +--- a/bfd/elf32-or1k.c ++++ b/bfd/elf32-or1k.c +@@ -3039,8 +3039,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-or1k_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++or1k_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_or1k_link_hash_table *htab; + bfd *dynobj; +@@ -3053,7 +3053,8 @@ or1k_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -3406,7 +3407,7 @@ or1k_grok_psinfo (bfd *abfd, Elf_Interna + #define elf_backend_copy_indirect_symbol or1k_elf_copy_indirect_symbol + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections or1k_elf_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections or1k_elf_size_dynamic_sections ++#define elf_backend_late_size_sections or1k_elf_late_size_sections + #define elf_backend_adjust_dynamic_symbol or1k_elf_adjust_dynamic_symbol + #define elf_backend_finish_dynamic_symbol or1k_elf_finish_dynamic_symbol + +--- a/bfd/elf32-ppc.c ++++ b/bfd/elf32-ppc.c +@@ -5478,8 +5478,8 @@ static const unsigned char glink_eh_fram + /* Set the sizes of the dynamic sections. */ + + static bool +-ppc_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++ppc_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct ppc_elf_link_hash_table *htab; + asection *s; +@@ -5487,11 +5487,12 @@ ppc_elf_size_dynamic_sections (bfd *outp + bfd *ibfd; + + #ifdef DEBUG +- fprintf (stderr, "ppc_elf_size_dynamic_sections called\n"); ++ fprintf (stderr, "ppc_elf_late_size_sections called\n"); + #endif + + htab = ppc_elf_hash_table (info); +- BFD_ASSERT (htab->elf.dynobj != NULL); ++ if (htab->elf.dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -10414,7 +10415,7 @@ ppc_elf_finish_dynamic_sections (bfd *ou + #define elf_backend_copy_indirect_symbol ppc_elf_copy_indirect_symbol + #define elf_backend_adjust_dynamic_symbol ppc_elf_adjust_dynamic_symbol + #define elf_backend_add_symbol_hook ppc_elf_add_symbol_hook +-#define elf_backend_size_dynamic_sections ppc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections ppc_elf_late_size_sections + #define elf_backend_hash_symbol ppc_elf_hash_symbol + #define elf_backend_finish_dynamic_symbol ppc_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections ppc_elf_finish_dynamic_sections +--- a/bfd/elf32-rl78.c ++++ b/bfd/elf32-rl78.c +@@ -1440,8 +1440,8 @@ rl78_elf_finish_dynamic_sections (bfd *a + } + + static bool +-rl78_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++rl78_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -2609,8 +2609,8 @@ rl78_elf_relax_section (bfd *abfd, + + #define bfd_elf32_bfd_relax_section rl78_elf_relax_section + #define elf_backend_check_relocs rl78_elf_check_relocs +-#define elf_backend_always_size_sections \ +- rl78_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ rl78_elf_early_size_sections + #define elf_backend_finish_dynamic_sections \ + rl78_elf_finish_dynamic_sections + +--- a/bfd/elf32-s390.c ++++ b/bfd/elf32-s390.c +@@ -1366,7 +1366,7 @@ elf_s390_gc_mark_hook (asection *sec, + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_s390_size_dynamic_sections if no dynamic sections will be ++ or elf_s390_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static void +@@ -1778,8 +1778,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_s390_link_hash_table *htab; + bfd *dynobj; +@@ -1790,7 +1790,7 @@ elf_s390_size_dynamic_sections (bfd *out + htab = elf_s390_hash_table (info); + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3926,7 +3926,7 @@ elf32_s390_merge_private_bfd_data (bfd * + #define elf_backend_gc_mark_hook elf_s390_gc_mark_hook + #define elf_backend_reloc_type_class elf_s390_reloc_type_class + #define elf_backend_relocate_section elf_s390_relocate_section +-#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections ++#define elf_backend_late_size_sections elf_s390_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_grok_prstatus elf_s390_grok_prstatus + #define elf_backend_grok_psinfo elf_s390_grok_psinfo +--- a/bfd/elf32-score.c ++++ b/bfd/elf32-score.c +@@ -1089,7 +1089,7 @@ score_elf_got_info (bfd *abfd, asection + appear towards the end. This reduces the amount of GOT space + required. MAX_LOCAL is used to set the number of local symbols + known to be in the dynamic symbol table. During +- s3_bfd_score_elf_size_dynamic_sections, this value is 1. Afterward, the ++ s3_bfd_score_elf_late_size_sections, this value is 1. Afterward, the + section symbols are added and the count is higher. */ + static bool + score_elf_sort_hash_table (struct bfd_link_info *info, +@@ -3160,8 +3160,8 @@ s3_bfd_score_elf_adjust_dynamic_symbol ( + /* This function is called after all the input files have been read, + and the input sections have been assigned to output sections. */ + static bool +-s3_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++s3_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -3237,14 +3237,15 @@ s3_bfd_score_elf_always_size_sections (b + + /* Set the sizes of the dynamic sections. */ + static bool +-s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++s3_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool reltext; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3313,7 +3314,7 @@ s3_bfd_score_elf_size_dynamic_sections ( + } + else if (startswith (name, ".got")) + { +- /* s3_bfd_score_elf_always_size_sections() has already done ++ /* s3_bfd_score_elf_early_size_sections() has already done + most of the work, but some symbols may have been mapped + to versions that we must now resolve in the got_entries + hash tables. */ +@@ -4177,22 +4178,22 @@ _bfd_score_elf_adjust_dynamic_symbol (st + } + + static bool +-_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + if (bfd_get_mach (output_bfd) == bfd_mach_score3) +- return s3_bfd_score_elf_always_size_sections (output_bfd, info); ++ return s3_bfd_score_elf_early_size_sections (output_bfd, info); + else +- return s7_bfd_score_elf_always_size_sections (output_bfd, info); ++ return s7_bfd_score_elf_early_size_sections (output_bfd, info); + } + + static bool +-_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (bfd_get_mach (output_bfd) == bfd_mach_score3) +- return s3_bfd_score_elf_size_dynamic_sections (output_bfd, info); ++ return s3_bfd_score_elf_late_size_sections (output_bfd, info); + else +- return s7_bfd_score_elf_size_dynamic_sections (output_bfd, info); ++ return s7_bfd_score_elf_late_size_sections (output_bfd, info); + } + + static bool +@@ -4455,10 +4456,10 @@ _bfd_score_elf_common_definition (Elf_In + _bfd_score_elf_section_from_bfd_section + #define elf_backend_adjust_dynamic_symbol \ + _bfd_score_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_score_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_score_elf_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ _bfd_score_elf_early_size_sections ++#define elf_backend_late_size_sections \ ++ _bfd_score_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_create_dynamic_sections \ + _bfd_score_elf_create_dynamic_sections +--- a/bfd/elf32-score.h ++++ b/bfd/elf32-score.h +@@ -78,10 +78,10 @@ s7_bfd_score_elf_adjust_dynamic_symbol ( + struct elf_link_hash_entry *); + + extern bool +-s7_bfd_score_elf_always_size_sections (bfd *, struct bfd_link_info *); ++s7_bfd_score_elf_early_size_sections (bfd *, struct bfd_link_info *); + + extern bool +-s7_bfd_score_elf_size_dynamic_sections (bfd *, struct bfd_link_info *); ++s7_bfd_score_elf_late_size_sections (bfd *, struct bfd_link_info *); + + extern bool + s7_bfd_score_elf_create_dynamic_sections (bfd *, struct bfd_link_info *); +--- a/bfd/elf32-score7.c ++++ b/bfd/elf32-score7.c +@@ -975,7 +975,7 @@ score_elf_got_info (bfd *abfd, asection + appear towards the end. This reduces the amount of GOT space + required. MAX_LOCAL is used to set the number of local symbols + known to be in the dynamic symbol table. During +- s7_bfd_score_elf_size_dynamic_sections, this value is 1. Afterward, the ++ s7_bfd_score_elf_late_size_sections, this value is 1. Afterward, the + section symbols are added and the count is higher. */ + + static bool +@@ -2969,8 +2969,8 @@ s7_bfd_score_elf_adjust_dynamic_symbol ( + and the input sections have been assigned to output sections. */ + + bool +-s7_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++s7_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -3047,14 +3047,15 @@ s7_bfd_score_elf_always_size_sections (b + /* Set the sizes of the dynamic sections. */ + + bool +-s7_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++s7_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool reltext; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3123,7 +3124,7 @@ s7_bfd_score_elf_size_dynamic_sections ( + } + else if (startswith (name, ".got")) + { +- /* s7_bfd_score_elf_always_size_sections() has already done ++ /* s7_bfd_score_elf_early_size_sections() has already done + most of the work, but some symbols may have been mapped + to versions that we must now resolve in the got_entries + hash tables. */ +--- a/bfd/elf32-sh.c ++++ b/bfd/elf32-sh.c +@@ -2925,7 +2925,7 @@ allocate_dynrelocs (struct elf_link_hash + It's a convenient place to determine the PLT style. */ + + static bool +-sh_elf_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++sh_elf_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + sh_elf_hash_table (info)->plt_info = get_plt_info (output_bfd, + bfd_link_pic (info)); +@@ -2940,8 +2940,8 @@ sh_elf_always_size_sections (bfd *output + /* Set the sizes of the dynamic sections. */ + + static bool +-sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++sh_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_sh_link_hash_table *htab; + bfd *dynobj; +@@ -2954,7 +2954,8 @@ sh_elf_size_dynamic_sections (bfd *outpu + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -6598,10 +6599,8 @@ sh_elf_encode_eh_address (bfd *abfd, + sh_elf_link_hash_table_create + #define elf_backend_adjust_dynamic_symbol \ + sh_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- sh_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- sh_elf_size_dynamic_sections ++#define elf_backend_early_size_sections sh_elf_early_size_sections ++#define elf_backend_late_size_sections sh_elf_late_size_sections + #define elf_backend_omit_section_dynsym sh_elf_omit_section_dynsym + #define elf_backend_finish_dynamic_symbol \ + sh_elf_finish_dynamic_symbol +--- a/bfd/elf32-sparc.c ++++ b/bfd/elf32-sparc.c +@@ -248,8 +248,7 @@ elf32_sparc_reloc_type_class (const stru + #define elf_backend_adjust_dynamic_symbol \ + _bfd_sparc_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym _bfd_sparc_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections \ +- _bfd_sparc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections _bfd_sparc_elf_late_size_sections + #define elf_backend_relocate_section _bfd_sparc_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ + _bfd_sparc_elf_finish_dynamic_symbol +--- a/bfd/elf32-tic6x.c ++++ b/bfd/elf32-tic6x.c +@@ -3160,7 +3160,7 @@ elf32_tic6x_allocate_dynrelocs (struct e + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_tic6x_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf32_tic6x_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf32_tic6x_link_hash_table *htab; + bfd *dynobj; +@@ -3171,7 +3171,7 @@ elf32_tic6x_size_dynamic_sections (bfd * + htab = elf32_tic6x_hash_table (info); + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3358,7 +3358,7 @@ elf32_tic6x_size_dynamic_sections (bfd * + and the input sections have been assigned to output sections. */ + + static bool +-elf32_tic6x_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf32_tic6x_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (elf32_tic6x_using_dsbt (output_bfd) && !bfd_link_relocatable (info) + && !bfd_elf_stack_segment_size (output_bfd, info, +@@ -4261,10 +4261,10 @@ elf32_tic6x_write_section (bfd *output_b + #define elf_backend_relocs_compatible _bfd_elf_relocs_compatible + #define elf_backend_finish_dynamic_symbol \ + elf32_tic6x_finish_dynamic_symbol +-#define elf_backend_always_size_sections \ +- elf32_tic6x_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_tic6x_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ elf32_tic6x_early_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_tic6x_late_size_sections + #define elf_backend_finish_dynamic_sections \ + elf32_tic6x_finish_dynamic_sections + #define bfd_elf32_bfd_final_link \ +--- a/bfd/elf32-tilegx.c ++++ b/bfd/elf32-tilegx.c +@@ -105,7 +105,7 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I + #define elf_backend_check_relocs tilegx_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilegx_elf_late_size_sections + #define elf_backend_relocate_section tilegx_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections +--- a/bfd/elf32-tilepro.c ++++ b/bfd/elf32-tilepro.c +@@ -2182,11 +2182,9 @@ tilepro_elf_omit_section_dynsym (bfd *ou + #define ELF32_DYNAMIC_INTERPRETER "/lib/ld.so.1" + + static bool +-tilepro_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++tilepro_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { +- (void)output_bfd; +- + struct elf_link_hash_table *htab; + bfd *dynobj; + asection *s; +@@ -2195,7 +2193,8 @@ tilepro_elf_size_dynamic_sections (bfd * + htab = tilepro_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3739,7 +3738,7 @@ tilepro_additional_program_headers (bfd + #define elf_backend_check_relocs tilepro_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilepro_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilepro_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilepro_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilepro_elf_late_size_sections + #define elf_backend_relocate_section tilepro_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilepro_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilepro_elf_finish_dynamic_sections +--- a/bfd/elf32-vax.c ++++ b/bfd/elf32-vax.c +@@ -36,7 +36,6 @@ static bool elf_vax_check_relocs (bfd *, + asection *, const Elf_Internal_Rela *); + static bool elf_vax_adjust_dynamic_symbol (struct bfd_link_info *, + struct elf_link_hash_entry *); +-static bool elf_vax_size_dynamic_sections (bfd *, struct bfd_link_info *); + static int elf_vax_relocate_section (bfd *, struct bfd_link_info *, + bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, +@@ -985,8 +984,8 @@ elf_vax_discard_got_entries (struct elf_ + /* Discard unused dynamic data if this is a static link. */ + + static bool +-elf_vax_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_vax_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -1024,14 +1023,15 @@ elf_vax_always_size_sections (bfd *outpu + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_vax_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf_vax_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -1861,10 +1861,8 @@ elf_vax_plt_sym_val (bfd_vma i, const as + #define elf_backend_check_relocs elf_vax_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elf_vax_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- elf_vax_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf_vax_size_dynamic_sections ++#define elf_backend_early_size_sections elf_vax_early_size_sections ++#define elf_backend_late_size_sections elf_vax_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section elf_vax_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf32-xstormy16.c ++++ b/bfd/elf32-xstormy16.c +@@ -706,8 +706,8 @@ xstormy16_elf_relax_section (bfd *dynobj + } + + static bool +-xstormy16_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++xstormy16_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -1013,8 +1013,8 @@ xstormy16_elf_gc_mark_hook (asection *se + #define elf_backend_relocate_section xstormy16_elf_relocate_section + #define elf_backend_gc_mark_hook xstormy16_elf_gc_mark_hook + #define elf_backend_check_relocs xstormy16_elf_check_relocs +-#define elf_backend_always_size_sections \ +- xstormy16_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ xstormy16_elf_early_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_sections \ +--- a/bfd/elf32-xtensa.c ++++ b/bfd/elf32-xtensa.c +@@ -1557,8 +1557,8 @@ elf_xtensa_allocate_local_got_size (stru + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_xtensa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_xtensa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_xtensa_link_hash_table *htab; + bfd *dynobj, *abfd; +@@ -1575,7 +1575,7 @@ elf_xtensa_size_dynamic_sections (bfd *o + + dynobj = elf_hash_table (info)->dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + srelgot = htab->elf.srelgot; + srelplt = htab->elf.srelplt; + +@@ -1780,8 +1780,7 @@ elf_xtensa_size_dynamic_sections (bfd *o + } + + static bool +-elf_xtensa_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_xtensa_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf_xtensa_link_hash_table *htab; + asection *tls_sec; +@@ -11537,8 +11536,8 @@ static const struct bfd_elf_special_sect + #define elf_backend_object_p elf_xtensa_object_p + #define elf_backend_reloc_type_class elf_xtensa_reloc_type_class + #define elf_backend_relocate_section elf_xtensa_relocate_section +-#define elf_backend_size_dynamic_sections elf_xtensa_size_dynamic_sections +-#define elf_backend_always_size_sections elf_xtensa_always_size_sections ++#define elf_backend_late_size_sections elf_xtensa_late_size_sections ++#define elf_backend_early_size_sections elf_xtensa_early_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_special_sections elf_xtensa_special_sections + #define elf_backend_action_discarded elf_xtensa_action_discarded +--- a/bfd/elf64-alpha.c ++++ b/bfd/elf64-alpha.c +@@ -2579,8 +2579,8 @@ elf64_alpha_size_plt_section (struct bfd + } + + static bool +-elf64_alpha_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_alpha_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *i; + struct alpha_elf_link_hash_table * htab; +@@ -2806,8 +2806,8 @@ elf64_alpha_size_rela_got_section (struc + /* Set the sizes of the dynamic sections. */ + + static bool +-elf64_alpha_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_alpha_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -2819,7 +2819,8 @@ elf64_alpha_size_dynamic_sections (bfd * + return false; + + dynobj = elf_hash_table(info)->dynobj; +- BFD_ASSERT(dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5465,10 +5466,10 @@ static const struct elf_size_info alpha_ + elf64_alpha_merge_symbol_attribute + #define elf_backend_copy_indirect_symbol \ + elf64_alpha_copy_indirect_symbol +-#define elf_backend_always_size_sections \ +- elf64_alpha_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf64_alpha_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ elf64_alpha_early_size_sections ++#define elf_backend_late_size_sections \ ++ elf64_alpha_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elf64-hppa.c ++++ b/bfd/elf64-hppa.c +@@ -176,9 +176,6 @@ static bool elf64_hppa_adjust_dynamic_sy + static bool elf64_hppa_mark_milli_and_exported_functions + (struct elf_link_hash_entry *, void *); + +-static bool elf64_hppa_size_dynamic_sections +- (bfd *, struct bfd_link_info *); +- + static int elf64_hppa_link_output_symbol_hook + (struct bfd_link_info *, const char *, Elf_Internal_Sym *, + asection *, struct elf_link_hash_entry *); +@@ -1520,7 +1517,7 @@ elf64_hppa_mark_milli_and_exported_funct + the contents of our special sections. */ + + static bool +-elf64_hppa_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf64_hppa_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf64_hppa_link_hash_table *hppa_info; + struct elf64_hppa_allocate_data data; +@@ -1534,7 +1531,8 @@ elf64_hppa_size_dynamic_sections (bfd *o + return false; + + dynobj = hppa_info->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + /* Mark each function this program exports so that we will allocate + space in the .opd section for each function's FPTR. If we are +@@ -3984,8 +3982,7 @@ const struct elf_size_info hppa64_elf_si + #define elf_backend_adjust_dynamic_symbol \ + elf64_hppa_adjust_dynamic_symbol + +-#define elf_backend_size_dynamic_sections \ +- elf64_hppa_size_dynamic_sections ++#define elf_backend_late_size_sections elf64_hppa_late_size_sections + + #define elf_backend_finish_dynamic_symbol \ + elf64_hppa_finish_dynamic_symbol +--- a/bfd/elf64-ia64-vms.c ++++ b/bfd/elf64-ia64-vms.c +@@ -2590,8 +2590,8 @@ elf64_ia64_adjust_dynamic_symbol (struct + } + + static bool +-elf64_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_ia64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf64_ia64_allocate_data data; + struct elf64_ia64_link_hash_table *ia64_info; +@@ -2600,11 +2600,12 @@ elf64_ia64_size_dynamic_sections (bfd *o + struct elf_link_hash_table *hash_table; + + hash_table = elf_hash_table (info); +- dynobj = hash_table->dynobj; + ia64_info = elf64_ia64_hash_table (info); + if (ia64_info == NULL) + return false; +- BFD_ASSERT(dynobj != NULL); ++ dynobj = hash_table->dynobj; ++ if (dynobj == NULL) ++ return true; + data.info = info; + + /* Allocate the GOT entries. */ +@@ -5484,8 +5485,8 @@ static const struct elf_size_info elf64_ + elf64_ia64_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elf64_ia64_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elf64_ia64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elf64_ia64_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elf64-mips.c ++++ b/bfd/elf64-mips.c +@@ -4745,10 +4745,10 @@ const struct elf_size_info mips_elf64_si + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections \ ++ _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf64-ppc.c ++++ b/bfd/elf64-ppc.c +@@ -118,8 +118,8 @@ static bfd_vma opd_entry_value + #define elf_backend_adjust_dynamic_symbol ppc64_elf_adjust_dynamic_symbol + #define elf_backend_hide_symbol ppc64_elf_hide_symbol + #define elf_backend_maybe_function_sym ppc64_elf_maybe_function_sym +-#define elf_backend_always_size_sections ppc64_elf_edit +-#define elf_backend_size_dynamic_sections ppc64_elf_size_dynamic_sections ++#define elf_backend_early_size_sections ppc64_elf_edit ++#define elf_backend_late_size_sections ppc64_elf_late_size_sections + #define elf_backend_hash_symbol ppc64_elf_hash_symbol + #define elf_backend_init_index_section _bfd_elf_init_2_index_sections + #define elf_backend_action_discarded ppc64_elf_action_discarded +@@ -10118,7 +10118,7 @@ allocate_dynrelocs (struct elf_link_hash + ((((v) & 0x3ffff0000ULL) << 16) | (v & 0xffff)) + #define HA34(v) ((v + (1ULL << 33)) >> 34) + +-/* Called via elf_link_hash_traverse from ppc64_elf_size_dynamic_sections ++/* Called via elf_link_hash_traverse from ppc64_elf_late_size_sections + to set up space for global entry stubs. These are put in glink, + after the branch table. */ + +@@ -10195,8 +10195,8 @@ size_global_entry_stubs (struct elf_link + /* Set the sizes of the dynamic sections. */ + + static bool +-ppc64_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++ppc64_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct ppc_link_hash_table *htab; + bfd *dynobj; +@@ -10211,7 +10211,7 @@ ppc64_elf_size_dynamic_sections (bfd *ou + + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +--- a/bfd/elf64-s390.c ++++ b/bfd/elf64-s390.c +@@ -1301,7 +1301,7 @@ elf_s390_gc_mark_hook (asection *sec, + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_s390_size_dynamic_sections if no dynamic sections will be ++ or elf_s390_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static void +@@ -1714,8 +1714,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_s390_link_hash_table *htab; + bfd *dynobj; +@@ -1729,7 +1729,7 @@ elf_s390_size_dynamic_sections (bfd *out + + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3912,7 +3912,7 @@ const struct elf_size_info s390_elf64_si + #define elf_backend_gc_mark_hook elf_s390_gc_mark_hook + #define elf_backend_reloc_type_class elf_s390_reloc_type_class + #define elf_backend_relocate_section elf_s390_relocate_section +-#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections ++#define elf_backend_late_size_sections elf_s390_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_grok_prstatus elf_s390_grok_prstatus + #define elf_backend_grok_psinfo elf_s390_grok_psinfo +--- a/bfd/elf64-sparc.c ++++ b/bfd/elf64-sparc.c +@@ -953,8 +953,8 @@ const struct elf_size_info elf64_sparc_s + _bfd_sparc_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym \ + _bfd_sparc_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections \ +- _bfd_sparc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_sparc_elf_late_size_sections + #define elf_backend_relocate_section \ + _bfd_sparc_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf64-tilegx.c ++++ b/bfd/elf64-tilegx.c +@@ -106,7 +106,7 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I + #define elf_backend_check_relocs tilegx_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilegx_elf_late_size_sections + #define elf_backend_relocate_section tilegx_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -2456,8 +2456,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struc + } + + static bool +-elf_x86_64_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_x86_64_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *abfd; + +@@ -2470,7 +2469,7 @@ elf_x86_64_always_size_sections (bfd *ou + elf_x86_64_scan_relocs)) + return false; + +- return _bfd_x86_elf_always_size_sections (output_bfd, info); ++ return _bfd_x86_elf_early_size_sections (output_bfd, info); + } + + /* Return the relocation value for @tpoff relocation +@@ -5384,7 +5383,7 @@ elf_x86_64_special_sections[]= + elf_x86_64_reloc_name_lookup + + #define elf_backend_relocs_compatible elf_x86_64_relocs_compatible +-#define elf_backend_always_size_sections elf_x86_64_always_size_sections ++#define elf_backend_early_size_sections elf_x86_64_early_size_sections + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections elf_x86_64_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol elf_x86_64_finish_dynamic_symbol +--- a/bfd/elflink.c ++++ b/bfd/elflink.c +@@ -6619,8 +6619,8 @@ bfd_elf_size_dynamic_sections (bfd *outp + + /* The backend may have to create some sections regardless of whether + we're dynamic or not. */ +- if (bed->elf_backend_always_size_sections +- && ! (*bed->elf_backend_always_size_sections) (output_bfd, info)) ++ if (bed->elf_backend_early_size_sections ++ && !bed->elf_backend_early_size_sections (output_bfd, info)) + return false; + + dynobj = elf_hash_table (info)->dynobj; +@@ -7400,9 +7400,8 @@ NOTE: This behaviour is deprecated and w + + /* The backend must work out the sizes of all the other dynamic + sections. */ +- if (dynobj != NULL +- && bed->elf_backend_size_dynamic_sections != NULL +- && ! (*bed->elf_backend_size_dynamic_sections) (output_bfd, info)) ++ if (bed->elf_backend_late_size_sections != NULL ++ && !bed->elf_backend_late_size_sections (output_bfd, info)) + return false; + + if (dynobj != NULL && elf_hash_table (info)->dynamic_sections_created) +--- a/bfd/elfn32-mips.c ++++ b/bfd/elfn32-mips.c +@@ -4131,10 +4131,8 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elfnn-aarch64.c ++++ b/bfd/elfnn-aarch64.c +@@ -112,7 +112,7 @@ + allocate space for one relocation on the slot. Record the GOT offset + for this symbol. + +- elfNN_aarch64_size_dynamic_sections () ++ elfNN_aarch64_late_size_sections () + + Iterate all input BFDS, look for in the local symbol data structure + constructed earlier for local TLS symbols and allocate them double +@@ -8976,8 +8976,8 @@ elfNN_aarch64_allocate_local_ifunc_dynre + though ! */ + + static bool +-elfNN_aarch64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elfNN_aarch64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_aarch64_link_hash_table *htab; + bfd *dynobj; +@@ -8988,7 +8988,8 @@ elfNN_aarch64_size_dynamic_sections (bfd + htab = elf_aarch64_hash_table ((info)); + dynobj = htab->root.dynobj; + +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -9390,8 +9391,8 @@ elfNN_aarch64_create_small_pltn_entry (s + _TLS_MODULE_BASE_, if needed. */ + + static bool +-elfNN_aarch64_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elfNN_aarch64_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *tls_sec; + +@@ -10126,8 +10127,8 @@ const struct elf_size_info elfNN_aarch64 + #define elf_backend_adjust_dynamic_symbol \ + elfNN_aarch64_adjust_dynamic_symbol + +-#define elf_backend_always_size_sections \ +- elfNN_aarch64_always_size_sections ++#define elf_backend_early_size_sections \ ++ elfNN_aarch64_early_size_sections + + #define elf_backend_check_relocs \ + elfNN_aarch64_check_relocs +@@ -10182,8 +10183,8 @@ const struct elf_size_info elfNN_aarch64 + #define elf_backend_modify_headers \ + elfNN_aarch64_modify_headers + +-#define elf_backend_size_dynamic_sections \ +- elfNN_aarch64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elfNN_aarch64_late_size_sections + + #define elf_backend_size_info \ + elfNN_aarch64_size_info +--- a/bfd/elfnn-ia64.c ++++ b/bfd/elfnn-ia64.c +@@ -2986,8 +2986,8 @@ elfNN_ia64_adjust_dynamic_symbol (struct + } + + static bool +-elfNN_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elfNN_ia64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elfNN_ia64_allocate_data data; + struct elfNN_ia64_link_hash_table *ia64_info; +@@ -2998,8 +2998,9 @@ elfNN_ia64_size_dynamic_sections (bfd *o + if (ia64_info == NULL) + return false; + dynobj = ia64_info->root.dynobj; ++ if (dynobj == NULL) ++ return true; + ia64_info->self_dtpmod_offset = (bfd_vma) -1; +- BFD_ASSERT(dynobj != NULL); + data.info = info; + + /* Set the contents of the .interp section to the interpreter. */ +@@ -5035,8 +5036,8 @@ ignore_errors (const char *fmt ATTRIBUTE + elfNN_ia64_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elfNN_ia64_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elfNN_ia64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elfNN_ia64_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elfnn-loongarch.c ++++ b/bfd/elfnn-loongarch.c +@@ -1574,8 +1574,8 @@ maybe_set_textrel (struct elf_link_hash_ + } + + static bool +-loongarch_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++loongarch_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct loongarch_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1585,7 +1585,8 @@ loongarch_elf_size_dynamic_sections (bfd + htab = loongarch_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -4140,7 +4141,7 @@ elf_loongarch64_hash_symbol (struct elf_ + loongarch_elf_create_dynamic_sections + #define elf_backend_check_relocs loongarch_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol loongarch_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections loongarch_elf_size_dynamic_sections ++#define elf_backend_late_size_sections loongarch_elf_late_size_sections + #define elf_backend_relocate_section loongarch_elf_relocate_section + #define elf_backend_finish_dynamic_symbol loongarch_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections \ +--- a/bfd/elfnn-riscv.c ++++ b/bfd/elfnn-riscv.c +@@ -1348,7 +1348,7 @@ allocate_local_ifunc_dynrelocs (void **s + } + + static bool +-riscv_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++riscv_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct riscv_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1358,7 +1358,8 @@ riscv_elf_size_dynamic_sections (bfd *ou + htab = riscv_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5341,7 +5342,7 @@ riscv_elf_merge_symbol_attribute (struct + #define elf_backend_create_dynamic_sections riscv_elf_create_dynamic_sections + #define elf_backend_check_relocs riscv_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol riscv_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections riscv_elf_size_dynamic_sections ++#define elf_backend_late_size_sections riscv_elf_late_size_sections + #define elf_backend_relocate_section riscv_elf_relocate_section + #define elf_backend_finish_dynamic_symbol riscv_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections riscv_elf_finish_dynamic_sections +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -9619,8 +9619,8 @@ _bfd_mips_elf_adjust_dynamic_symbol (str + check for any mips16 stub sections that we can discard. */ + + bool +-_bfd_mips_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_mips_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *sect; + struct mips_elf_link_hash_table *htab; +@@ -9963,8 +9963,8 @@ mips_elf_set_plt_sym_value (struct mips_ + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_mips_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_mips_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s, *sreldyn; +@@ -9974,7 +9974,8 @@ _bfd_mips_elf_size_dynamic_sections (bfd + htab = mips_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -14899,7 +14900,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_always_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_early_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf_External_ABIFlags_v0)); + + /* Skip this section later on (I don't think this currently +@@ -14958,7 +14959,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_always_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_early_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf32_External_RegInfo)); + + /* Skip this section later on (I don't think this currently +--- a/bfd/elfxx-mips.h ++++ b/bfd/elfxx-mips.h +@@ -61,9 +61,9 @@ extern bool _bfd_mips_elf_check_relocs + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); + extern bool _bfd_mips_elf_adjust_dynamic_symbol + (struct bfd_link_info *, struct elf_link_hash_entry *); +-extern bool _bfd_mips_elf_always_size_sections ++extern bool _bfd_mips_elf_early_size_sections + (bfd *, struct bfd_link_info *); +-extern bool _bfd_mips_elf_size_dynamic_sections ++extern bool _bfd_mips_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern int _bfd_mips_elf_relocate_section + (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, +--- a/bfd/elfxx-sparc.c ++++ b/bfd/elfxx-sparc.c +@@ -2381,8 +2381,8 @@ _bfd_sparc_elf_omit_section_dynsym (bfd + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_sparc_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_sparc_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct _bfd_sparc_elf_link_hash_table *htab; + bfd *dynobj; +@@ -2392,7 +2392,8 @@ _bfd_sparc_elf_size_dynamic_sections (bf + htab = _bfd_sparc_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +--- a/bfd/elfxx-sparc.h ++++ b/bfd/elfxx-sparc.h +@@ -117,7 +117,7 @@ extern bool _bfd_sparc_elf_adjust_dynami + (struct bfd_link_info *, struct elf_link_hash_entry *); + extern bool _bfd_sparc_elf_omit_section_dynsym + (bfd *, struct bfd_link_info *, asection *); +-extern bool _bfd_sparc_elf_size_dynamic_sections ++extern bool _bfd_sparc_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern bool _bfd_sparc_elf_new_section_hook + (bfd *, asection *); +--- a/bfd/elfxx-target.h ++++ b/bfd/elfxx-target.h +@@ -487,11 +487,11 @@ + #ifndef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol 0 + #endif +-#ifndef elf_backend_always_size_sections +-#define elf_backend_always_size_sections 0 ++#ifndef elf_backend_early_size_sections ++#define elf_backend_early_size_sections 0 + #endif +-#ifndef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections 0 ++#ifndef elf_backend_late_size_sections ++#define elf_backend_late_size_sections 0 + #endif + #ifndef elf_backend_strip_zero_sized_dynamic_sections + #define elf_backend_strip_zero_sized_dynamic_sections 0 +@@ -849,8 +849,8 @@ static const struct elf_backend_data elf + elf_backend_check_directives, + elf_backend_notice_as_needed, + elf_backend_adjust_dynamic_symbol, +- elf_backend_always_size_sections, +- elf_backend_size_dynamic_sections, ++ elf_backend_early_size_sections, ++ elf_backend_late_size_sections, + elf_backend_strip_zero_sized_dynamic_sections, + elf_backend_init_index_section, + elf_backend_relocate_section, +--- a/bfd/elfxx-tilegx.c ++++ b/bfd/elfxx-tilegx.c +@@ -2430,8 +2430,8 @@ tilegx_elf_omit_section_dynsym (bfd *out + } + + bool +-tilegx_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++tilegx_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct tilegx_elf_link_hash_table *htab; + bfd *dynobj; +@@ -2441,7 +2441,8 @@ tilegx_elf_size_dynamic_sections (bfd *o + htab = tilegx_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +--- a/bfd/elfxx-tilegx.h ++++ b/bfd/elfxx-tilegx.h +@@ -57,7 +57,7 @@ tilegx_elf_omit_section_dynsym (bfd *, + asection *); + + extern bool +-tilegx_elf_size_dynamic_sections (bfd *, struct bfd_link_info *); ++tilegx_elf_late_size_sections (bfd *, struct bfd_link_info *); + + extern int + tilegx_elf_relocate_section (bfd *, struct bfd_link_info *, +--- a/bfd/elfxx-x86.c ++++ b/bfd/elfxx-x86.c +@@ -2225,7 +2225,7 @@ _bfd_elf_x86_valid_reloc_p (asection *in + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_x86_elf_size_dynamic_sections (bfd *output_bfd, ++_bfd_x86_elf_late_size_sections (bfd *output_bfd, + struct bfd_link_info *info) + { + struct elf_x86_link_hash_table *htab; +@@ -2241,7 +2241,7 @@ _bfd_x86_elf_size_dynamic_sections (bfd + return false; + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + /* Set up .got offsets for local syms, and space for local dynamic + relocs. */ +@@ -2948,8 +2948,8 @@ _bfd_x86_elf_finish_dynamic_sections (bf + + + bool +-_bfd_x86_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_x86_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *tls_sec = elf_hash_table (info)->tls_sec; + +--- a/bfd/elfxx-x86.h ++++ b/bfd/elfxx-x86.h +@@ -854,13 +854,13 @@ extern bool _bfd_elf_x86_valid_reloc_p + const Elf_Internal_Rela *, struct elf_link_hash_entry *, + Elf_Internal_Sym *, Elf_Internal_Shdr *, bool *); + +-extern bool _bfd_x86_elf_size_dynamic_sections ++extern bool _bfd_x86_elf_late_size_sections + (bfd *, struct bfd_link_info *); + + extern struct elf_x86_link_hash_table *_bfd_x86_elf_finish_dynamic_sections + (bfd *, struct bfd_link_info *); + +-extern bool _bfd_x86_elf_always_size_sections ++extern bool _bfd_x86_elf_early_size_sections + (bfd *, struct bfd_link_info *); + + extern void _bfd_x86_elf_merge_symbol_attribute +@@ -932,8 +932,8 @@ extern void _bfd_x86_elf_link_report_rel + + #define elf_backend_check_relocs \ + _bfd_x86_elf_check_relocs +-#define elf_backend_size_dynamic_sections \ +- _bfd_x86_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_x86_elf_late_size_sections + #define elf_backend_merge_symbol_attribute \ + _bfd_x86_elf_merge_symbol_attribute + #define elf_backend_copy_indirect_symbol \ +--- a/ld/emultempl/vms.em ++++ b/ld/emultempl/vms.em +@@ -196,10 +196,9 @@ gld${EMULATION_NAME}_before_allocation ( + + /* The backend must work out the sizes of all the other dynamic + sections. */ +- if (elf_hash_table (&link_info)->dynamic_sections_created +- && bed->elf_backend_size_dynamic_sections +- && ! (*bed->elf_backend_size_dynamic_sections) (link_info.output_bfd, +- &link_info)) ++ if (bed->elf_backend_late_size_sections ++ && !bed->elf_backend_late_size_sections (link_info.output_bfd, ++ &link_info)) + einfo (_("%F%P: failed to set dynamic section sizes: %E\n")); + + before_allocation_default (); diff --git a/toolchain/binutils/patches/2.40/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch b/toolchain/binutils/patches/2.40/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch new file mode 100644 index 00000000000000..8e5f1b76c663c1 --- /dev/null +++ b/toolchain/binutils/patches/2.40/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch @@ -0,0 +1,218 @@ +From 3c6c32951e292a51ede70b8087bb0308d7dbc4fc Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Thu, 28 Mar 2024 20:33:32 +1030 +Subject: [PATCH 2/2] PR 30569, delete _bfd_mips_elf_early_size_sections + +PR30569 was triggered by a patch of mine 6540edd52cc0 moving the call +to always_size_sections in bfd_elf_size_dynamic_sections earlier, made +to support the x86 DT_RELR implementation. This broke mips16 code +handling stubs when --export-dynamic is passed to the linker, because +numerous symbols then became dynamic after always_size_sections. The +mips backend fiddles with symbols in its always_size_sections. Maciej +in 902e9fc76a0e had moved the call to always_size_sections to after +the export-dynamic code. Prior to that, Nathan in 04c3a75556c0 moved +it before the exec stack code, back to the start of +bfd_elf_size_dynamic_sections which was where Ian put it originally +in ff12f303355b. So the call has moved around a little. I'm leaving +it where it is, and instead calling mips_elf_check_symbols from +late_size_sections (the old size_dynamic_sections) which is now always +called. In fact, the whole of _bfd_mips_elf_early_size_sections can +be merged into _bfd_mips_elf_late_size_sections. +--- + bfd/elf32-mips.c | 1 - + bfd/elf64-mips.c | 2 -- + bfd/elfn32-mips.c | 1 - + bfd/elfxx-mips.c | 84 +++++++++++++++++++---------------------------- + bfd/elfxx-mips.h | 2 -- + 5 files changed, 34 insertions(+), 56 deletions(-) + +--- a/bfd/elf32-mips.c ++++ b/bfd/elf32-mips.c +@@ -2534,7 +2534,6 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section +--- a/bfd/elf64-mips.c ++++ b/bfd/elf64-mips.c +@@ -4745,8 +4745,6 @@ const struct elf_size_info mips_elf64_si + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections \ +- _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections \ + _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section +--- a/bfd/elfn32-mips.c ++++ b/bfd/elfn32-mips.c +@@ -4131,7 +4131,6 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -9614,48 +9614,6 @@ _bfd_mips_elf_adjust_dynamic_symbol (str + return _bfd_elf_adjust_dynamic_copy (info, h, s); + } + +-/* This function is called after all the input files have been read, +- and the input sections have been assigned to output sections. We +- check for any mips16 stub sections that we can discard. */ +- +-bool +-_bfd_mips_elf_early_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) +-{ +- asection *sect; +- struct mips_elf_link_hash_table *htab; +- struct mips_htab_traverse_info hti; +- +- htab = mips_elf_hash_table (info); +- BFD_ASSERT (htab != NULL); +- +- /* The .reginfo section has a fixed size. */ +- sect = bfd_get_section_by_name (output_bfd, ".reginfo"); +- if (sect != NULL) +- { +- bfd_set_section_size (sect, sizeof (Elf32_External_RegInfo)); +- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; +- } +- +- /* The .MIPS.abiflags section has a fixed size. */ +- sect = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags"); +- if (sect != NULL) +- { +- bfd_set_section_size (sect, sizeof (Elf_External_ABIFlags_v0)); +- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; +- } +- +- hti.info = info; +- hti.output_bfd = output_bfd; +- hti.error = false; +- mips_elf_link_hash_traverse (mips_elf_hash_table (info), +- mips_elf_check_symbols, &hti); +- if (hti.error) +- return false; +- +- return true; +-} +- + /* If the link uses a GOT, lay it out and work out its size. */ + + static bool +@@ -9960,7 +9918,8 @@ mips_elf_set_plt_sym_value (struct mips_ + return true; + } + +-/* Set the sizes of the dynamic sections. */ ++/* Set the sizes of the dynamic sections, some mips non-dynamic sections, ++ and check for any mips16 stub sections that we can discard. */ + + bool + _bfd_mips_elf_late_size_sections (bfd *output_bfd, +@@ -9970,14 +9929,39 @@ _bfd_mips_elf_late_size_sections (bfd *o + asection *s, *sreldyn; + bool reltext; + struct mips_elf_link_hash_table *htab; ++ struct mips_htab_traverse_info hti; + + htab = mips_elf_hash_table (info); + BFD_ASSERT (htab != NULL); +- dynobj = elf_hash_table (info)->dynobj; ++ ++ /* The .reginfo section has a fixed size. */ ++ s = bfd_get_section_by_name (output_bfd, ".reginfo"); ++ if (s != NULL) ++ { ++ bfd_set_section_size (s, sizeof (Elf32_External_RegInfo)); ++ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; ++ } ++ ++ /* The .MIPS.abiflags section has a fixed size. */ ++ s = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags"); ++ if (s != NULL) ++ { ++ bfd_set_section_size (s, sizeof (Elf_External_ABIFlags_v0)); ++ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; ++ } ++ ++ hti.info = info; ++ hti.output_bfd = output_bfd; ++ hti.error = false; ++ mips_elf_link_hash_traverse (htab, mips_elf_check_symbols, &hti); ++ if (hti.error) ++ return false; ++ ++ dynobj = htab->root.dynobj; + if (dynobj == NULL) + return true; + +- if (elf_hash_table (info)->dynamic_sections_created) ++ if (htab->root.dynamic_sections_created) + { + /* Set the contents of the .interp section to the interpreter. */ + if (bfd_link_executable (info) && !info->nointerp) +@@ -10117,7 +10101,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + } + else if (bfd_link_executable (info) +- && ! mips_elf_hash_table (info)->use_rld_obj_head ++ && !htab->use_rld_obj_head + && startswith (name, ".rld_map")) + { + /* We add a room for __rld_map. It will be filled in by the +@@ -10126,7 +10110,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + else if (SGI_COMPAT (output_bfd) + && startswith (name, ".compact_rel")) +- s->size += mips_elf_hash_table (info)->compact_rel_size; ++ s->size += htab->compact_rel_size; + else if (s == htab->root.splt) + { + /* If the last PLT entry has a branch delay slot, allocate +@@ -10166,7 +10150,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + } + +- if (elf_hash_table (info)->dynamic_sections_created) ++ if (htab->root.dynamic_sections_created) + { + /* Add some entries to the .dynamic section. We fill in the + values later, in _bfd_mips_elf_finish_dynamic_sections, but we +@@ -14900,7 +14884,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_early_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_late_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf_External_ABIFlags_v0)); + + /* Skip this section later on (I don't think this currently +@@ -14959,7 +14943,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_early_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_late_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf32_External_RegInfo)); + + /* Skip this section later on (I don't think this currently +--- a/bfd/elfxx-mips.h ++++ b/bfd/elfxx-mips.h +@@ -61,8 +61,6 @@ extern bool _bfd_mips_elf_check_relocs + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); + extern bool _bfd_mips_elf_adjust_dynamic_symbol + (struct bfd_link_info *, struct elf_link_hash_entry *); +-extern bool _bfd_mips_elf_early_size_sections +- (bfd *, struct bfd_link_info *); + extern bool _bfd_mips_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern int _bfd_mips_elf_relocate_section diff --git a/toolchain/binutils/patches/2.41/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch b/toolchain/binutils/patches/2.41/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch new file mode 100644 index 00000000000000..8cb7c041b0315e --- /dev/null +++ b/toolchain/binutils/patches/2.41/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch @@ -0,0 +1,2172 @@ +From af969b14aedcc0ae27dcefab4327ff2d153dec8b Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Thu, 28 Mar 2024 19:25:42 +1030 +Subject: [PATCH 1/2] PR 30569, always call elf_backend_size_dynamic_sections + +This largely mechanical patch is preparation for a followup patch. + +For quite some time I've thought that it would be useful to call +elf_backend_size_dynamic_sections even when no dynamic objects are +seen by the linker. That's what this patch does, with some renaming. +There are no functional changes to the linker, just a move of the +dynobj test in bfd_elf_size_dynamic_sections to target backend +functions, replacing the asserts/aborts already there. No doubt some +of the current always_size_sections functions could be moved to +size_dynamic_sections but I haven't made that change. + +Because both hooks are now always called, I have renamed +always_size_sections to early_size_sections and size_dynamic_sections +to late_size_sections. I condisdered calling late_size_sections plain +size_sections, since this is the usual target dynamic section sizing +hook, but decided that searching the sources for "size_sections" would +then hit early_size_sections and other functions. +--- + bfd/elf-bfd.h | 35 +++++++++++++++++------------------ + bfd/elf-m10300.c | 11 ++++++----- + bfd/elf32-arc.c | 9 +++++---- + bfd/elf32-arm.c | 15 ++++++++------- + bfd/elf32-bfin.c | 31 ++++++++++++++++--------------- + bfd/elf32-cr16.c | 11 ++++++----- + bfd/elf32-cris.c | 13 +++++++------ + bfd/elf32-csky.c | 8 ++++---- + bfd/elf32-frv.c | 23 ++++++++++++----------- + bfd/elf32-hppa.c | 8 ++++---- + bfd/elf32-i386.c | 7 +++---- + bfd/elf32-lm32.c | 15 ++++++++------- + bfd/elf32-m32c.c | 8 ++++---- + bfd/elf32-m32r.c | 11 ++++++----- + bfd/elf32-m68k.c | 16 ++++++++-------- + bfd/elf32-metag.c | 8 ++++---- + bfd/elf32-microblaze.c | 9 +++++---- + bfd/elf32-mips.c | 6 ++---- + bfd/elf32-nds32.c | 9 +++++---- + bfd/elf32-nios2.c | 15 ++++++++------- + bfd/elf32-or1k.c | 9 +++++---- + bfd/elf32-ppc.c | 11 ++++++----- + bfd/elf32-rl78.c | 8 ++++---- + bfd/elf32-s390.c | 10 +++++----- + bfd/elf32-score.c | 35 ++++++++++++++++++----------------- + bfd/elf32-score.h | 4 ++-- + bfd/elf32-score7.c | 13 +++++++------ + bfd/elf32-sh.c | 15 +++++++-------- + bfd/elf32-sparc.c | 3 +-- + bfd/elf32-tic6x.c | 14 +++++++------- + bfd/elf32-tilegx.c | 2 +- + bfd/elf32-tilepro.c | 11 +++++------ + bfd/elf32-vax.c | 16 +++++++--------- + bfd/elf32-xstormy16.c | 8 ++++---- + bfd/elf32-xtensa.c | 13 ++++++------- + bfd/elf64-alpha.c | 19 ++++++++++--------- + bfd/elf64-hppa.c | 11 ++++------- + bfd/elf64-ia64-vms.c | 13 +++++++------ + bfd/elf64-mips.c | 8 ++++---- + bfd/elf64-ppc.c | 12 ++++++------ + bfd/elf64-s390.c | 10 +++++----- + bfd/elf64-sparc.c | 4 ++-- + bfd/elf64-tilegx.c | 2 +- + bfd/elf64-x86-64.c | 7 +++---- + bfd/elflink.c | 9 ++++----- + bfd/elfn32-mips.c | 6 ++---- + bfd/elfnn-aarch64.c | 21 +++++++++++---------- + bfd/elfnn-ia64.c | 11 ++++++----- + bfd/elfnn-kvx.c | 19 +++++++++---------- + bfd/elfnn-loongarch.c | 9 +++++---- + bfd/elfnn-riscv.c | 7 ++++--- + bfd/elfxx-mips.c | 15 ++++++++------- + bfd/elfxx-mips.h | 4 ++-- + bfd/elfxx-sparc.c | 7 ++++--- + bfd/elfxx-sparc.h | 2 +- + bfd/elfxx-target.h | 12 ++++++------ + bfd/elfxx-tilegx.c | 7 ++++--- + bfd/elfxx-tilegx.h | 2 +- + bfd/elfxx-x86.c | 8 ++++---- + bfd/elfxx-x86.h | 8 ++++---- + ld/emultempl/vms.em | 7 +++---- + 61 files changed, 343 insertions(+), 337 deletions(-) + +--- a/bfd/elf-bfd.h ++++ b/bfd/elf-bfd.h +@@ -1173,7 +1173,7 @@ struct elf_backend_data + /* The ADJUST_DYNAMIC_SYMBOL function is called by the ELF backend + linker for every symbol which is defined by a dynamic object and + referenced by a regular object. This is called after all the +- input files have been seen, but before the SIZE_DYNAMIC_SECTIONS ++ input files have been seen, but before the LATE_SIZE_SECTIONS + function has been called. The hash table entry should be + bfd_link_hash_defined ore bfd_link_hash_defweak, and it should be + defined in a section from a dynamic object. Dynamic object +@@ -1185,24 +1185,23 @@ struct elf_backend_data + bool (*elf_backend_adjust_dynamic_symbol) + (struct bfd_link_info *info, struct elf_link_hash_entry *h); + +- /* The ALWAYS_SIZE_SECTIONS function is called by the backend linker +- after all the linker input files have been seen but before the +- section sizes have been set. This is called after +- ADJUST_DYNAMIC_SYMBOL, but before SIZE_DYNAMIC_SECTIONS. */ +- bool (*elf_backend_always_size_sections) ++ /* The EARLY_SIZE_SECTIONS and LATE_SIZE_SECTIONS functions are ++ called by the backend linker after all linker input files have ++ been seen and sections have been assigned to output sections, but ++ before the section sizes have been set. Both of these functions ++ are called even when no dynamic object is seen by the linker. ++ Between them, they must set the sizes of the dynamic sections and ++ other backend specific sections, and may fill in their contents. ++ Most backends need only use LATE_SIZE_SECTIONS. ++ EARLY_SIZE_SECTIONS is called before --export-dynamic makes some ++ symbols dynamic and before ADJUST_DYNAMIC_SYMBOL processes ++ dynamic symbols, LATE_SIZE_SECTIONS afterwards. The generic ELF ++ linker can handle the .dynsym, .dynstr and .hash sections. ++ Besides those, these functions must handle the .interp section ++ and any other sections created by CREATE_DYNAMIC_SECTIONS. */ ++ bool (*elf_backend_early_size_sections) + (bfd *output_bfd, struct bfd_link_info *info); +- +- /* The SIZE_DYNAMIC_SECTIONS function is called by the ELF backend +- linker after all the linker input files have been seen but before +- the sections sizes have been set. This is called after +- ADJUST_DYNAMIC_SYMBOL has been called on all appropriate symbols. +- It is only called when linking against a dynamic object. It must +- set the sizes of the dynamic sections, and may fill in their +- contents as well. The generic ELF linker can handle the .dynsym, +- .dynstr and .hash sections. This function must handle the +- .interp section and any sections created by the +- CREATE_DYNAMIC_SECTIONS entry point. */ +- bool (*elf_backend_size_dynamic_sections) ++ bool (*elf_backend_late_size_sections) + (bfd *output_bfd, struct bfd_link_info *info); + + /* The STRIP_ZERO_SIZED_DYNAMIC_SECTIONS function is called by the +--- a/bfd/elf-m10300.c ++++ b/bfd/elf-m10300.c +@@ -5015,8 +5015,8 @@ _bfd_mn10300_elf_adjust_dynamic_symbol ( + /* Set the sizes of the dynamic sections. */ + + static bool +-_bfd_mn10300_elf_size_dynamic_sections (bfd * output_bfd, +- struct bfd_link_info * info) ++_bfd_mn10300_elf_late_size_sections (bfd * output_bfd, ++ struct bfd_link_info * info) + { + struct elf32_mn10300_link_hash_table *htab = elf32_mn10300_hash_table (info); + bfd * dynobj; +@@ -5024,7 +5024,8 @@ _bfd_mn10300_elf_size_dynamic_sections ( + bool relocs; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5511,8 +5512,8 @@ mn10300_elf_mkobject (bfd *abfd) + _bfd_mn10300_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mn10300_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- _bfd_mn10300_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_mn10300_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_symbol \ + _bfd_mn10300_elf_finish_dynamic_symbol +--- a/bfd/elf32-arc.c ++++ b/bfd/elf32-arc.c +@@ -2702,8 +2702,8 @@ elf_arc_finish_dynamic_sections (bfd * o + + /* Set the sizes of the dynamic sections. */ + static bool +-elf_arc_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_arc_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -2711,7 +2711,8 @@ elf_arc_size_dynamic_sections (bfd *outp + struct elf_link_hash_table *htab = elf_hash_table (info); + + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -3127,7 +3128,7 @@ arc_elf_relax_section (bfd *abfd, asecti + #define elf_backend_finish_dynamic_symbol elf_arc_finish_dynamic_symbol + + #define elf_backend_finish_dynamic_sections elf_arc_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf_arc_size_dynamic_sections ++#define elf_backend_late_size_sections elf_arc_late_size_sections + + #define elf_backend_can_gc_sections 1 + #define elf_backend_want_got_plt 1 +--- a/bfd/elf32-arm.c ++++ b/bfd/elf32-arm.c +@@ -16751,8 +16751,8 @@ bfd_elf32_arm_set_byteswap_code (struct + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info * info) ++elf32_arm_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info * info) + { + bfd * dynobj; + asection * s; +@@ -16765,7 +16765,9 @@ elf32_arm_size_dynamic_sections (bfd * o + return false; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; ++ + check_use_blx (htab); + + if (elf_hash_table (info)->dynamic_sections_created) +@@ -17137,8 +17139,7 @@ elf32_arm_size_dynamic_sections (bfd * o + _TLS_MODULE_BASE_, if needed. */ + + static bool +-elf32_arm_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_arm_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + asection *tls_sec; + struct elf32_arm_link_hash_table *htab; +@@ -20332,8 +20333,8 @@ elf32_arm_backend_symbol_processing (bfd + #define elf_backend_create_dynamic_sections elf32_arm_create_dynamic_sections + #define elf_backend_finish_dynamic_symbol elf32_arm_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf32_arm_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf32_arm_size_dynamic_sections +-#define elf_backend_always_size_sections elf32_arm_always_size_sections ++#define elf_backend_late_size_sections elf32_arm_late_size_sections ++#define elf_backend_early_size_sections elf32_arm_early_size_sections + #define elf_backend_init_index_section _bfd_elf_init_2_index_sections + #define elf_backend_init_file_header elf32_arm_init_file_header + #define elf_backend_reloc_type_class elf32_arm_reloc_type_class +--- a/bfd/elf32-bfin.c ++++ b/bfd/elf32-bfin.c +@@ -4027,8 +4027,8 @@ _bfinfdpic_size_got_plt (bfd *output_bfd + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_bfinfdpic_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_bfinfdpic_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct elf_link_hash_table *htab; + bfd *dynobj; +@@ -4037,7 +4037,8 @@ elf32_bfinfdpic_size_dynamic_sections (b + + htab = elf_hash_table (info); + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -4086,7 +4087,7 @@ elf32_bfinfdpic_size_dynamic_sections (b + } + + static bool +-elf32_bfinfdpic_always_size_sections (bfd *output_bfd, ++elf32_bfinfdpic_early_size_sections (bfd *output_bfd, + struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info) +@@ -5123,15 +5124,16 @@ bfin_discard_copies (struct elf_link_has + } + + static bool +-bfin_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++bfin_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5423,8 +5425,7 @@ struct bfd_elf_special_section const elf + #define elf_backend_check_relocs bfin_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + bfin_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- bfin_size_dynamic_sections ++#define elf_backend_late_size_sections bfin_late_size_sections + #define elf_backend_relocate_section bfin_relocate_section + #define elf_backend_finish_dynamic_symbol \ + bfin_finish_dynamic_symbol +@@ -5470,9 +5471,9 @@ struct bfd_elf_special_section const elf + #undef bfd_elf32_bfd_link_hash_table_create + #define bfd_elf32_bfd_link_hash_table_create \ + bfinfdpic_elf_link_hash_table_create +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections \ +- elf32_bfinfdpic_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections \ ++ elf32_bfinfdpic_early_size_sections + + #undef elf_backend_create_dynamic_sections + #define elf_backend_create_dynamic_sections \ +@@ -5480,9 +5481,9 @@ struct bfd_elf_special_section const elf + #undef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol \ + elf32_bfinfdpic_adjust_dynamic_symbol +-#undef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_bfinfdpic_size_dynamic_sections ++#undef elf_backend_late_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_bfinfdpic_late_size_sections + #undef elf_backend_finish_dynamic_symbol + #define elf_backend_finish_dynamic_symbol \ + elf32_bfinfdpic_finish_dynamic_symbol +--- a/bfd/elf32-cr16.c ++++ b/bfd/elf32-cr16.c +@@ -2391,15 +2391,16 @@ _bfd_cr16_elf_adjust_dynamic_symbol (str + /* Set the sizes of the dynamic sections. */ + + static bool +-_bfd_cr16_elf_size_dynamic_sections (bfd * output_bfd, +- struct bfd_link_info * info) ++_bfd_cr16_elf_late_size_sections (bfd * output_bfd, ++ struct bfd_link_info * info) + { + bfd * dynobj; + asection * s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -2836,8 +2837,8 @@ _bfd_cr16_elf_reloc_type_class (const st + _bfd_cr16_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol \ + _bfd_cr16_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- _bfd_cr16_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_cr16_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_symbol \ + _bfd_cr16_elf_finish_dynamic_symbol +--- a/bfd/elf32-cris.c ++++ b/bfd/elf32-cris.c +@@ -2527,7 +2527,7 @@ cris_elf_plt_sym_val (bfd_vma i ATTRIBUT + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_cris_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_cris_size_dynamic_sections if no dynamic sections will be ++ or elf_cris_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static bool +@@ -3508,8 +3508,8 @@ cris_elf_check_relocs (bfd *abfd, + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_cris_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_cris_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_cris_link_hash_table * htab; + bfd *dynobj; +@@ -3521,7 +3521,8 @@ elf_cris_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -4090,8 +4091,8 @@ elf_cris_got_elt_size (bfd *abfd ATTRIBU + elf_cris_adjust_dynamic_symbol + #define elf_backend_copy_indirect_symbol \ + elf_cris_copy_indirect_symbol +-#define elf_backend_size_dynamic_sections \ +- elf_cris_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elf_cris_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_finish_dynamic_symbol \ + elf_cris_finish_dynamic_symbol +--- a/bfd/elf32-csky.c ++++ b/bfd/elf32-csky.c +@@ -1893,8 +1893,8 @@ csky_allocate_dynrelocs (struct elf_link + /* Set the sizes of the dynamic sections. */ + + static bool +-csky_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++csky_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct csky_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1907,7 +1907,7 @@ csky_elf_size_dynamic_sections (bfd *out + return false; + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- return false; ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -5333,7 +5333,7 @@ elf32_csky_obj_attrs_handle_unknown (bfd + /* Dynamic relocate related API. */ + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol csky_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections csky_elf_size_dynamic_sections ++#define elf_backend_late_size_sections csky_elf_late_size_sections + #define elf_backend_finish_dynamic_symbol csky_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections csky_elf_finish_dynamic_sections + #define elf_backend_rela_normal 1 +--- a/bfd/elf32-frv.c ++++ b/bfd/elf32-frv.c +@@ -5423,15 +5423,16 @@ _frvfdpic_size_got_plt (bfd *output_bfd, + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_frvfdpic_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_frvfdpic_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + struct _frvfdpic_dynamic_got_plt_info gpinfo; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5472,8 +5473,8 @@ elf32_frvfdpic_size_dynamic_sections (bf + } + + static bool +-elf32_frvfdpic_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_frvfdpic_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info) + && !bfd_elf_stack_segment_size (output_bfd, info, +@@ -6817,9 +6818,9 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In + #undef bfd_elf32_bfd_link_hash_table_create + #define bfd_elf32_bfd_link_hash_table_create \ + frvfdpic_elf_link_hash_table_create +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections \ +- elf32_frvfdpic_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections \ ++ elf32_frvfdpic_early_size_sections + + #undef elf_backend_create_dynamic_sections + #define elf_backend_create_dynamic_sections \ +@@ -6827,9 +6828,9 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In + #undef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol \ + elf32_frvfdpic_adjust_dynamic_symbol +-#undef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_frvfdpic_size_dynamic_sections ++#undef elf_backend_late_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_frvfdpic_late_size_sections + #undef bfd_elf32_bfd_relax_section + #define bfd_elf32_bfd_relax_section \ + elf32_frvfdpic_relax_section +--- a/bfd/elf32-hppa.c ++++ b/bfd/elf32-hppa.c +@@ -2042,8 +2042,8 @@ clobber_millicode_symbols (struct elf_li + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf32_hppa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf32_hppa_link_hash_table *htab; + bfd *dynobj; +@@ -2057,7 +2057,7 @@ elf32_hppa_size_dynamic_sections (bfd *o + + dynobj = htab->etab.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->etab.dynamic_sections_created) + { +@@ -4450,7 +4450,7 @@ elf32_hppa_elf_get_symbol_type (Elf_Inte + #define elf_backend_hide_symbol elf32_hppa_hide_symbol + #define elf_backend_finish_dynamic_symbol elf32_hppa_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf32_hppa_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf32_hppa_size_dynamic_sections ++#define elf_backend_late_size_sections elf32_hppa_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_gc_mark_hook elf32_hppa_gc_mark_hook + #define elf_backend_grok_prstatus elf32_hppa_grok_prstatus +--- a/bfd/elf32-i386.c ++++ b/bfd/elf32-i386.c +@@ -1947,8 +1947,7 @@ elf_i386_scan_relocs (bfd *abfd, + } + + static bool +-elf_i386_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_i386_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *abfd; + +@@ -1961,7 +1960,7 @@ elf_i386_always_size_sections (bfd *outp + elf_i386_scan_relocs)) + return false; + +- return _bfd_x86_elf_always_size_sections (output_bfd, info); ++ return _bfd_x86_elf_early_size_sections (output_bfd, info); + } + + /* Set the correct type for an x86 ELF section. We do this by the +@@ -4469,7 +4468,7 @@ elf_i386_link_setup_gnu_properties (stru + #define bfd_elf32_get_synthetic_symtab elf_i386_get_synthetic_symtab + + #define elf_backend_relocs_compatible _bfd_elf_relocs_compatible +-#define elf_backend_always_size_sections elf_i386_always_size_sections ++#define elf_backend_early_size_sections elf_i386_early_size_sections + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_fake_sections elf_i386_fake_sections + #define elf_backend_finish_dynamic_sections elf_i386_finish_dynamic_sections +--- a/bfd/elf32-lm32.c ++++ b/bfd/elf32-lm32.c +@@ -1906,8 +1906,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-lm32_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++lm32_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct elf_lm32_link_hash_table *htab; + bfd *dynobj; +@@ -1920,7 +1920,8 @@ lm32_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -2309,7 +2310,7 @@ lm32_elf_create_dynamic_sections (bfd *a + } + + static bool +-lm32_elf_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++lm32_elf_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info)) + { +@@ -2395,7 +2396,7 @@ lm32_elf_fdpic_copy_private_bfd_data (bf + #define bfd_elf32_bfd_link_hash_table_create lm32_elf_link_hash_table_create + #define elf_backend_check_relocs lm32_elf_check_relocs + #define elf_backend_reloc_type_class lm32_elf_reloc_type_class +-#define elf_backend_size_dynamic_sections lm32_elf_size_dynamic_sections ++#define elf_backend_late_size_sections lm32_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_create_dynamic_sections lm32_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections lm32_elf_finish_dynamic_sections +@@ -2416,8 +2417,8 @@ lm32_elf_fdpic_copy_private_bfd_data (bf + #undef elf32_bed + #define elf32_bed elf32_lm32fdpic_bed + +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections lm32_elf_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections lm32_elf_early_size_sections + #undef bfd_elf32_bfd_copy_private_bfd_data + #define bfd_elf32_bfd_copy_private_bfd_data lm32_elf_fdpic_copy_private_bfd_data + +--- a/bfd/elf32-m32c.c ++++ b/bfd/elf32-m32c.c +@@ -773,8 +773,8 @@ m32c_elf_finish_dynamic_sections (bfd *a + } + + static bool +-m32c_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++m32c_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -2132,8 +2132,8 @@ _bfd_m32c_elf_eh_frame_address_size (bfd + #define elf_backend_check_relocs m32c_elf_check_relocs + #define elf_backend_object_p m32c_elf_object_p + #define elf_symbol_leading_char ('_') +-#define elf_backend_always_size_sections \ +- m32c_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ m32c_elf_early_size_sections + #define elf_backend_finish_dynamic_sections \ + m32c_elf_finish_dynamic_sections + +--- a/bfd/elf32-m32r.c ++++ b/bfd/elf32-m32r.c +@@ -1958,8 +1958,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-m32r_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++m32r_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_link_hash_table *htab; + bfd *dynobj; +@@ -1968,7 +1968,7 @@ m32r_elf_size_dynamic_sections (bfd *out + bfd *ibfd; + + #ifdef DEBUG_PIC +- printf ("m32r_elf_size_dynamic_sections()\n"); ++ printf ("m32r_elf_late_size_sections()\n"); + #endif + + htab = m32r_elf_hash_table (info); +@@ -1976,7 +1976,8 @@ m32r_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -3658,7 +3659,7 @@ m32r_elf_reloc_type_class (const struct + + #define elf_backend_create_dynamic_sections m32r_elf_create_dynamic_sections + #define bfd_elf32_bfd_link_hash_table_create m32r_elf_link_hash_table_create +-#define elf_backend_size_dynamic_sections m32r_elf_size_dynamic_sections ++#define elf_backend_late_size_sections m32r_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_sections m32r_elf_finish_dynamic_sections + #define elf_backend_adjust_dynamic_symbol m32r_elf_adjust_dynamic_symbol +--- a/bfd/elf32-m68k.c ++++ b/bfd/elf32-m68k.c +@@ -2934,7 +2934,7 @@ elf_m68k_get_plt_info (bfd *output_bfd) + It's a convenient place to determine the PLT style. */ + + static bool +-elf_m68k_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf_m68k_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + /* Bind input BFDs to GOTs and calculate sizes of .got and .rela.got + sections. */ +@@ -3107,15 +3107,16 @@ elf_m68k_adjust_dynamic_symbol (struct b + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_m68k_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_m68k_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -4628,12 +4629,11 @@ elf_m68k_grok_psinfo (bfd *abfd, Elf_Int + #define bfd_elf32_bfd_final_link bfd_elf_final_link + + #define elf_backend_check_relocs elf_m68k_check_relocs +-#define elf_backend_always_size_sections \ +- elf_m68k_always_size_sections ++#define elf_backend_early_size_sections \ ++ elf_m68k_early_size_sections + #define elf_backend_adjust_dynamic_symbol \ + elf_m68k_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elf_m68k_size_dynamic_sections ++#define elf_backend_late_size_sections elf_m68k_late_size_sections + #define elf_backend_final_write_processing elf_m68k_final_write_processing + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section elf_m68k_relocate_section +--- a/bfd/elf32-metag.c ++++ b/bfd/elf32-metag.c +@@ -2717,8 +2717,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_metag_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_metag_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_metag_link_hash_table *htab; + bfd *dynobj; +@@ -2729,7 +2729,7 @@ elf_metag_size_dynamic_sections (bfd *ou + htab = metag_link_hash_table (info); + dynobj = htab->etab.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->etab.dynamic_sections_created) + { +@@ -4019,7 +4019,7 @@ elf_metag_plt_sym_val (bfd_vma i, const + #define elf_backend_adjust_dynamic_symbol elf_metag_adjust_dynamic_symbol + #define elf_backend_finish_dynamic_symbol elf_metag_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf_metag_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf_metag_size_dynamic_sections ++#define elf_backend_late_size_sections elf_metag_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_init_file_header elf_metag_init_file_header +--- a/bfd/elf32-microblaze.c ++++ b/bfd/elf32-microblaze.c +@@ -2946,8 +2946,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-microblaze_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++microblaze_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf32_mb_link_hash_table *htab; + bfd *dynobj; +@@ -2959,7 +2959,8 @@ microblaze_elf_size_dynamic_sections (bf + return false; + + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + /* Set up .got offsets for local syms, and space for local dynamic + relocs. */ +@@ -3477,7 +3478,7 @@ microblaze_elf_add_symbol_hook (bfd *abf + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections microblaze_elf_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol microblaze_elf_finish_dynamic_symbol +-#define elf_backend_size_dynamic_sections microblaze_elf_size_dynamic_sections ++#define elf_backend_late_size_sections microblaze_elf_late_size_sections + #define elf_backend_add_symbol_hook microblaze_elf_add_symbol_hook + + #include "elf32-target.h" +--- a/bfd/elf32-mips.c ++++ b/bfd/elf32-mips.c +@@ -2537,10 +2537,8 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf32-nds32.c ++++ b/bfd/elf32-nds32.c +@@ -4302,8 +4302,8 @@ elf32_nds32_add_dynreloc (bfd *output_bf + /* Set the sizes of the dynamic sections. */ + + static bool +-nds32_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++nds32_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_nds32_link_hash_table *htab; + bfd *dynobj; +@@ -4316,7 +4316,8 @@ nds32_elf_size_dynamic_sections (bfd *ou + return false; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -13984,7 +13985,7 @@ nds32_elf_unify_tls_model (bfd *inbfd, a + #define elf_backend_create_dynamic_sections nds32_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections nds32_elf_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol nds32_elf_finish_dynamic_symbol +-#define elf_backend_size_dynamic_sections nds32_elf_size_dynamic_sections ++#define elf_backend_late_size_sections nds32_elf_late_size_sections + #define elf_backend_relocate_section nds32_elf_relocate_section + #define elf_backend_gc_mark_hook nds32_elf_gc_mark_hook + #define elf_backend_grok_prstatus nds32_elf_grok_prstatus +--- a/bfd/elf32-nios2.c ++++ b/bfd/elf32-nios2.c +@@ -5405,7 +5405,7 @@ nios2_elf32_adjust_dynamic_symbol (struc + return true; + } + +-/* Worker function for nios2_elf32_size_dynamic_sections. */ ++/* Worker function for nios2_elf32_late_size_sections. */ + static bool + adjust_dynrelocs (struct elf_link_hash_entry *h, void *inf) + { +@@ -5432,7 +5432,7 @@ adjust_dynrelocs (struct elf_link_hash_e + return true; + } + +-/* Another worker function for nios2_elf32_size_dynamic_sections. ++/* Another worker function for nios2_elf32_late_size_sections. + Allocate space in .plt, .got and associated reloc sections for + dynamic relocs. */ + static bool +@@ -5667,11 +5667,11 @@ allocate_dynrelocs (struct elf_link_hash + return true; + } + +-/* Implement elf_backend_size_dynamic_sections: ++/* Implement elf_backend_late_size_sections: + Set the sizes of the dynamic sections. */ + static bool +-nios2_elf32_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++nios2_elf32_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -5681,7 +5681,8 @@ nios2_elf32_size_dynamic_sections (bfd * + + htab = elf32_nios2_hash_table (info); + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + htab->res_n_size = 0; + if (htab->root.dynamic_sections_created) +@@ -6052,7 +6053,7 @@ const struct bfd_elf_special_section elf + nios2_elf32_finish_dynamic_sections + #define elf_backend_adjust_dynamic_symbol nios2_elf32_adjust_dynamic_symbol + #define elf_backend_reloc_type_class nios2_elf32_reloc_type_class +-#define elf_backend_size_dynamic_sections nios2_elf32_size_dynamic_sections ++#define elf_backend_late_size_sections nios2_elf32_late_size_sections + #define elf_backend_add_symbol_hook nios2_elf_add_symbol_hook + #define elf_backend_copy_indirect_symbol nios2_elf32_copy_indirect_symbol + #define elf_backend_object_p nios2_elf32_object_p +--- a/bfd/elf32-or1k.c ++++ b/bfd/elf32-or1k.c +@@ -3047,8 +3047,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-or1k_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++or1k_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_or1k_link_hash_table *htab; + bfd *dynobj; +@@ -3061,7 +3061,8 @@ or1k_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -3414,7 +3415,7 @@ or1k_grok_psinfo (bfd *abfd, Elf_Interna + #define elf_backend_copy_indirect_symbol or1k_elf_copy_indirect_symbol + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections or1k_elf_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections or1k_elf_size_dynamic_sections ++#define elf_backend_late_size_sections or1k_elf_late_size_sections + #define elf_backend_adjust_dynamic_symbol or1k_elf_adjust_dynamic_symbol + #define elf_backend_finish_dynamic_symbol or1k_elf_finish_dynamic_symbol + +--- a/bfd/elf32-ppc.c ++++ b/bfd/elf32-ppc.c +@@ -5481,8 +5481,8 @@ static const unsigned char glink_eh_fram + /* Set the sizes of the dynamic sections. */ + + static bool +-ppc_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++ppc_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct ppc_elf_link_hash_table *htab; + asection *s; +@@ -5490,11 +5490,12 @@ ppc_elf_size_dynamic_sections (bfd *outp + bfd *ibfd; + + #ifdef DEBUG +- fprintf (stderr, "ppc_elf_size_dynamic_sections called\n"); ++ fprintf (stderr, "ppc_elf_late_size_sections called\n"); + #endif + + htab = ppc_elf_hash_table (info); +- BFD_ASSERT (htab->elf.dynobj != NULL); ++ if (htab->elf.dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -10418,7 +10419,7 @@ ppc_elf_finish_dynamic_sections (bfd *ou + #define elf_backend_copy_indirect_symbol ppc_elf_copy_indirect_symbol + #define elf_backend_adjust_dynamic_symbol ppc_elf_adjust_dynamic_symbol + #define elf_backend_add_symbol_hook ppc_elf_add_symbol_hook +-#define elf_backend_size_dynamic_sections ppc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections ppc_elf_late_size_sections + #define elf_backend_hash_symbol ppc_elf_hash_symbol + #define elf_backend_finish_dynamic_symbol ppc_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections ppc_elf_finish_dynamic_sections +--- a/bfd/elf32-rl78.c ++++ b/bfd/elf32-rl78.c +@@ -1440,8 +1440,8 @@ rl78_elf_finish_dynamic_sections (bfd *a + } + + static bool +-rl78_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++rl78_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -2610,8 +2610,8 @@ rl78_elf_relax_section (bfd *abfd, + + #define bfd_elf32_bfd_relax_section rl78_elf_relax_section + #define elf_backend_check_relocs rl78_elf_check_relocs +-#define elf_backend_always_size_sections \ +- rl78_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ rl78_elf_early_size_sections + #define elf_backend_finish_dynamic_sections \ + rl78_elf_finish_dynamic_sections + +--- a/bfd/elf32-s390.c ++++ b/bfd/elf32-s390.c +@@ -1366,7 +1366,7 @@ elf_s390_gc_mark_hook (asection *sec, + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_s390_size_dynamic_sections if no dynamic sections will be ++ or elf_s390_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static void +@@ -1778,8 +1778,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_s390_link_hash_table *htab; + bfd *dynobj; +@@ -1790,7 +1790,7 @@ elf_s390_size_dynamic_sections (bfd *out + htab = elf_s390_hash_table (info); + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3926,7 +3926,7 @@ elf32_s390_merge_private_bfd_data (bfd * + #define elf_backend_gc_mark_hook elf_s390_gc_mark_hook + #define elf_backend_reloc_type_class elf_s390_reloc_type_class + #define elf_backend_relocate_section elf_s390_relocate_section +-#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections ++#define elf_backend_late_size_sections elf_s390_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_grok_prstatus elf_s390_grok_prstatus + #define elf_backend_grok_psinfo elf_s390_grok_psinfo +--- a/bfd/elf32-score.c ++++ b/bfd/elf32-score.c +@@ -1089,7 +1089,7 @@ score_elf_got_info (bfd *abfd, asection + appear towards the end. This reduces the amount of GOT space + required. MAX_LOCAL is used to set the number of local symbols + known to be in the dynamic symbol table. During +- s3_bfd_score_elf_size_dynamic_sections, this value is 1. Afterward, the ++ s3_bfd_score_elf_late_size_sections, this value is 1. Afterward, the + section symbols are added and the count is higher. */ + static bool + score_elf_sort_hash_table (struct bfd_link_info *info, +@@ -3160,8 +3160,8 @@ s3_bfd_score_elf_adjust_dynamic_symbol ( + /* This function is called after all the input files have been read, + and the input sections have been assigned to output sections. */ + static bool +-s3_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++s3_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -3237,14 +3237,15 @@ s3_bfd_score_elf_always_size_sections (b + + /* Set the sizes of the dynamic sections. */ + static bool +-s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++s3_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool reltext; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3313,7 +3314,7 @@ s3_bfd_score_elf_size_dynamic_sections ( + } + else if (startswith (name, ".got")) + { +- /* s3_bfd_score_elf_always_size_sections() has already done ++ /* s3_bfd_score_elf_early_size_sections() has already done + most of the work, but some symbols may have been mapped + to versions that we must now resolve in the got_entries + hash tables. */ +@@ -4177,22 +4178,22 @@ _bfd_score_elf_adjust_dynamic_symbol (st + } + + static bool +-_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + if (bfd_get_mach (output_bfd) == bfd_mach_score3) +- return s3_bfd_score_elf_always_size_sections (output_bfd, info); ++ return s3_bfd_score_elf_early_size_sections (output_bfd, info); + else +- return s7_bfd_score_elf_always_size_sections (output_bfd, info); ++ return s7_bfd_score_elf_early_size_sections (output_bfd, info); + } + + static bool +-_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (bfd_get_mach (output_bfd) == bfd_mach_score3) +- return s3_bfd_score_elf_size_dynamic_sections (output_bfd, info); ++ return s3_bfd_score_elf_late_size_sections (output_bfd, info); + else +- return s7_bfd_score_elf_size_dynamic_sections (output_bfd, info); ++ return s7_bfd_score_elf_late_size_sections (output_bfd, info); + } + + static bool +@@ -4455,10 +4456,10 @@ _bfd_score_elf_common_definition (Elf_In + _bfd_score_elf_section_from_bfd_section + #define elf_backend_adjust_dynamic_symbol \ + _bfd_score_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_score_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_score_elf_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ _bfd_score_elf_early_size_sections ++#define elf_backend_late_size_sections \ ++ _bfd_score_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_create_dynamic_sections \ + _bfd_score_elf_create_dynamic_sections +--- a/bfd/elf32-score.h ++++ b/bfd/elf32-score.h +@@ -78,10 +78,10 @@ s7_bfd_score_elf_adjust_dynamic_symbol ( + struct elf_link_hash_entry *); + + extern bool +-s7_bfd_score_elf_always_size_sections (bfd *, struct bfd_link_info *); ++s7_bfd_score_elf_early_size_sections (bfd *, struct bfd_link_info *); + + extern bool +-s7_bfd_score_elf_size_dynamic_sections (bfd *, struct bfd_link_info *); ++s7_bfd_score_elf_late_size_sections (bfd *, struct bfd_link_info *); + + extern bool + s7_bfd_score_elf_create_dynamic_sections (bfd *, struct bfd_link_info *); +--- a/bfd/elf32-score7.c ++++ b/bfd/elf32-score7.c +@@ -975,7 +975,7 @@ score_elf_got_info (bfd *abfd, asection + appear towards the end. This reduces the amount of GOT space + required. MAX_LOCAL is used to set the number of local symbols + known to be in the dynamic symbol table. During +- s7_bfd_score_elf_size_dynamic_sections, this value is 1. Afterward, the ++ s7_bfd_score_elf_late_size_sections, this value is 1. Afterward, the + section symbols are added and the count is higher. */ + + static bool +@@ -2969,8 +2969,8 @@ s7_bfd_score_elf_adjust_dynamic_symbol ( + and the input sections have been assigned to output sections. */ + + bool +-s7_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++s7_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -3047,14 +3047,15 @@ s7_bfd_score_elf_always_size_sections (b + /* Set the sizes of the dynamic sections. */ + + bool +-s7_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++s7_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool reltext; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3123,7 +3124,7 @@ s7_bfd_score_elf_size_dynamic_sections ( + } + else if (startswith (name, ".got")) + { +- /* s7_bfd_score_elf_always_size_sections() has already done ++ /* s7_bfd_score_elf_early_size_sections() has already done + most of the work, but some symbols may have been mapped + to versions that we must now resolve in the got_entries + hash tables. */ +--- a/bfd/elf32-sh.c ++++ b/bfd/elf32-sh.c +@@ -2927,7 +2927,7 @@ allocate_dynrelocs (struct elf_link_hash + It's a convenient place to determine the PLT style. */ + + static bool +-sh_elf_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++sh_elf_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + sh_elf_hash_table (info)->plt_info = get_plt_info (output_bfd, + bfd_link_pic (info)); +@@ -2942,8 +2942,8 @@ sh_elf_always_size_sections (bfd *output + /* Set the sizes of the dynamic sections. */ + + static bool +-sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++sh_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_sh_link_hash_table *htab; + bfd *dynobj; +@@ -2956,7 +2956,8 @@ sh_elf_size_dynamic_sections (bfd *outpu + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -6602,10 +6603,8 @@ sh_elf_encode_eh_address (bfd *abfd, + sh_elf_link_hash_table_create + #define elf_backend_adjust_dynamic_symbol \ + sh_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- sh_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- sh_elf_size_dynamic_sections ++#define elf_backend_early_size_sections sh_elf_early_size_sections ++#define elf_backend_late_size_sections sh_elf_late_size_sections + #define elf_backend_omit_section_dynsym sh_elf_omit_section_dynsym + #define elf_backend_finish_dynamic_symbol \ + sh_elf_finish_dynamic_symbol +--- a/bfd/elf32-sparc.c ++++ b/bfd/elf32-sparc.c +@@ -248,8 +248,7 @@ elf32_sparc_reloc_type_class (const stru + #define elf_backend_adjust_dynamic_symbol \ + _bfd_sparc_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym _bfd_sparc_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections \ +- _bfd_sparc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections _bfd_sparc_elf_late_size_sections + #define elf_backend_relocate_section _bfd_sparc_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ + _bfd_sparc_elf_finish_dynamic_symbol +--- a/bfd/elf32-tic6x.c ++++ b/bfd/elf32-tic6x.c +@@ -3160,7 +3160,7 @@ elf32_tic6x_allocate_dynrelocs (struct e + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_tic6x_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf32_tic6x_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf32_tic6x_link_hash_table *htab; + bfd *dynobj; +@@ -3171,7 +3171,7 @@ elf32_tic6x_size_dynamic_sections (bfd * + htab = elf32_tic6x_hash_table (info); + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3358,7 +3358,7 @@ elf32_tic6x_size_dynamic_sections (bfd * + and the input sections have been assigned to output sections. */ + + static bool +-elf32_tic6x_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf32_tic6x_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (elf32_tic6x_using_dsbt (output_bfd) && !bfd_link_relocatable (info) + && !bfd_elf_stack_segment_size (output_bfd, info, +@@ -4261,10 +4261,10 @@ elf32_tic6x_write_section (bfd *output_b + #define elf_backend_relocs_compatible _bfd_elf_relocs_compatible + #define elf_backend_finish_dynamic_symbol \ + elf32_tic6x_finish_dynamic_symbol +-#define elf_backend_always_size_sections \ +- elf32_tic6x_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_tic6x_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ elf32_tic6x_early_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_tic6x_late_size_sections + #define elf_backend_finish_dynamic_sections \ + elf32_tic6x_finish_dynamic_sections + #define bfd_elf32_bfd_final_link \ +--- a/bfd/elf32-tilegx.c ++++ b/bfd/elf32-tilegx.c +@@ -105,7 +105,7 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I + #define elf_backend_check_relocs tilegx_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilegx_elf_late_size_sections + #define elf_backend_relocate_section tilegx_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections +--- a/bfd/elf32-tilepro.c ++++ b/bfd/elf32-tilepro.c +@@ -2182,11 +2182,9 @@ tilepro_elf_omit_section_dynsym (bfd *ou + #define ELF32_DYNAMIC_INTERPRETER "/lib/ld.so.1" + + static bool +-tilepro_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++tilepro_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { +- (void)output_bfd; +- + struct elf_link_hash_table *htab; + bfd *dynobj; + asection *s; +@@ -2195,7 +2193,8 @@ tilepro_elf_size_dynamic_sections (bfd * + htab = tilepro_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3739,7 +3738,7 @@ tilepro_additional_program_headers (bfd + #define elf_backend_check_relocs tilepro_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilepro_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilepro_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilepro_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilepro_elf_late_size_sections + #define elf_backend_relocate_section tilepro_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilepro_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilepro_elf_finish_dynamic_sections +--- a/bfd/elf32-vax.c ++++ b/bfd/elf32-vax.c +@@ -36,7 +36,6 @@ static bool elf_vax_check_relocs (bfd *, + asection *, const Elf_Internal_Rela *); + static bool elf_vax_adjust_dynamic_symbol (struct bfd_link_info *, + struct elf_link_hash_entry *); +-static bool elf_vax_size_dynamic_sections (bfd *, struct bfd_link_info *); + static int elf_vax_relocate_section (bfd *, struct bfd_link_info *, + bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, +@@ -985,8 +984,8 @@ elf_vax_discard_got_entries (struct elf_ + /* Discard unused dynamic data if this is a static link. */ + + static bool +-elf_vax_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_vax_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -1024,14 +1023,15 @@ elf_vax_always_size_sections (bfd *outpu + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_vax_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf_vax_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -1861,10 +1861,8 @@ elf_vax_plt_sym_val (bfd_vma i, const as + #define elf_backend_check_relocs elf_vax_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elf_vax_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- elf_vax_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf_vax_size_dynamic_sections ++#define elf_backend_early_size_sections elf_vax_early_size_sections ++#define elf_backend_late_size_sections elf_vax_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section elf_vax_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf32-xstormy16.c ++++ b/bfd/elf32-xstormy16.c +@@ -706,8 +706,8 @@ xstormy16_elf_relax_section (bfd *dynobj + } + + static bool +-xstormy16_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++xstormy16_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -1013,8 +1013,8 @@ xstormy16_elf_gc_mark_hook (asection *se + #define elf_backend_relocate_section xstormy16_elf_relocate_section + #define elf_backend_gc_mark_hook xstormy16_elf_gc_mark_hook + #define elf_backend_check_relocs xstormy16_elf_check_relocs +-#define elf_backend_always_size_sections \ +- xstormy16_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ xstormy16_elf_early_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_sections \ +--- a/bfd/elf32-xtensa.c ++++ b/bfd/elf32-xtensa.c +@@ -1557,8 +1557,8 @@ elf_xtensa_allocate_local_got_size (stru + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_xtensa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_xtensa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_xtensa_link_hash_table *htab; + bfd *dynobj, *abfd; +@@ -1575,7 +1575,7 @@ elf_xtensa_size_dynamic_sections (bfd *o + + dynobj = elf_hash_table (info)->dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + srelgot = htab->elf.srelgot; + srelplt = htab->elf.srelplt; + +@@ -1780,8 +1780,7 @@ elf_xtensa_size_dynamic_sections (bfd *o + } + + static bool +-elf_xtensa_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_xtensa_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf_xtensa_link_hash_table *htab; + asection *tls_sec; +@@ -11544,8 +11543,8 @@ static const struct bfd_elf_special_sect + #define elf_backend_object_p elf_xtensa_object_p + #define elf_backend_reloc_type_class elf_xtensa_reloc_type_class + #define elf_backend_relocate_section elf_xtensa_relocate_section +-#define elf_backend_size_dynamic_sections elf_xtensa_size_dynamic_sections +-#define elf_backend_always_size_sections elf_xtensa_always_size_sections ++#define elf_backend_late_size_sections elf_xtensa_late_size_sections ++#define elf_backend_early_size_sections elf_xtensa_early_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_special_sections elf_xtensa_special_sections + #define elf_backend_action_discarded elf_xtensa_action_discarded +--- a/bfd/elf64-alpha.c ++++ b/bfd/elf64-alpha.c +@@ -2562,8 +2562,8 @@ elf64_alpha_size_plt_section (struct bfd + } + + static bool +-elf64_alpha_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_alpha_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *i; + struct alpha_elf_link_hash_table * htab; +@@ -2789,8 +2789,8 @@ elf64_alpha_size_rela_got_section (struc + /* Set the sizes of the dynamic sections. */ + + static bool +-elf64_alpha_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_alpha_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -2802,7 +2802,8 @@ elf64_alpha_size_dynamic_sections (bfd * + return false; + + dynobj = elf_hash_table(info)->dynobj; +- BFD_ASSERT(dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5448,10 +5449,10 @@ static const struct elf_size_info alpha_ + elf64_alpha_merge_symbol_attribute + #define elf_backend_copy_indirect_symbol \ + elf64_alpha_copy_indirect_symbol +-#define elf_backend_always_size_sections \ +- elf64_alpha_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf64_alpha_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ elf64_alpha_early_size_sections ++#define elf_backend_late_size_sections \ ++ elf64_alpha_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elf64-hppa.c ++++ b/bfd/elf64-hppa.c +@@ -176,9 +176,6 @@ static bool elf64_hppa_adjust_dynamic_sy + static bool elf64_hppa_mark_milli_and_exported_functions + (struct elf_link_hash_entry *, void *); + +-static bool elf64_hppa_size_dynamic_sections +- (bfd *, struct bfd_link_info *); +- + static int elf64_hppa_link_output_symbol_hook + (struct bfd_link_info *, const char *, Elf_Internal_Sym *, + asection *, struct elf_link_hash_entry *); +@@ -1520,7 +1517,7 @@ elf64_hppa_mark_milli_and_exported_funct + the contents of our special sections. */ + + static bool +-elf64_hppa_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf64_hppa_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf64_hppa_link_hash_table *hppa_info; + struct elf64_hppa_allocate_data data; +@@ -1534,7 +1531,8 @@ elf64_hppa_size_dynamic_sections (bfd *o + return false; + + dynobj = hppa_info->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + /* Mark each function this program exports so that we will allocate + space in the .opd section for each function's FPTR. If we are +@@ -3984,8 +3982,7 @@ const struct elf_size_info hppa64_elf_si + #define elf_backend_adjust_dynamic_symbol \ + elf64_hppa_adjust_dynamic_symbol + +-#define elf_backend_size_dynamic_sections \ +- elf64_hppa_size_dynamic_sections ++#define elf_backend_late_size_sections elf64_hppa_late_size_sections + + #define elf_backend_finish_dynamic_symbol \ + elf64_hppa_finish_dynamic_symbol +--- a/bfd/elf64-ia64-vms.c ++++ b/bfd/elf64-ia64-vms.c +@@ -2591,8 +2591,8 @@ elf64_ia64_adjust_dynamic_symbol (struct + } + + static bool +-elf64_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_ia64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf64_ia64_allocate_data data; + struct elf64_ia64_link_hash_table *ia64_info; +@@ -2601,11 +2601,12 @@ elf64_ia64_size_dynamic_sections (bfd *o + struct elf_link_hash_table *hash_table; + + hash_table = elf_hash_table (info); +- dynobj = hash_table->dynobj; + ia64_info = elf64_ia64_hash_table (info); + if (ia64_info == NULL) + return false; +- BFD_ASSERT(dynobj != NULL); ++ dynobj = hash_table->dynobj; ++ if (dynobj == NULL) ++ return true; + data.info = info; + + /* Allocate the GOT entries. */ +@@ -5485,8 +5486,8 @@ static const struct elf_size_info elf64_ + elf64_ia64_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elf64_ia64_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elf64_ia64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elf64_ia64_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elf64-mips.c ++++ b/bfd/elf64-mips.c +@@ -4748,10 +4748,10 @@ const struct elf_size_info mips_elf64_si + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections \ ++ _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf64-ppc.c ++++ b/bfd/elf64-ppc.c +@@ -119,8 +119,8 @@ static bfd_vma opd_entry_value + #define elf_backend_adjust_dynamic_symbol ppc64_elf_adjust_dynamic_symbol + #define elf_backend_hide_symbol ppc64_elf_hide_symbol + #define elf_backend_maybe_function_sym ppc64_elf_maybe_function_sym +-#define elf_backend_always_size_sections ppc64_elf_edit +-#define elf_backend_size_dynamic_sections ppc64_elf_size_dynamic_sections ++#define elf_backend_early_size_sections ppc64_elf_edit ++#define elf_backend_late_size_sections ppc64_elf_late_size_sections + #define elf_backend_hash_symbol ppc64_elf_hash_symbol + #define elf_backend_init_index_section _bfd_elf_init_2_index_sections + #define elf_backend_action_discarded ppc64_elf_action_discarded +@@ -10138,7 +10138,7 @@ allocate_dynrelocs (struct elf_link_hash + ((((v) & 0x3ffff0000ULL) << 16) | (v & 0xffff)) + #define HA34(v) ((v + (1ULL << 33)) >> 34) + +-/* Called via elf_link_hash_traverse from ppc64_elf_size_dynamic_sections ++/* Called via elf_link_hash_traverse from ppc64_elf_late_size_sections + to set up space for global entry stubs. These are put in glink, + after the branch table. */ + +@@ -10215,8 +10215,8 @@ size_global_entry_stubs (struct elf_link + /* Set the sizes of the dynamic sections. */ + + static bool +-ppc64_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++ppc64_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct ppc_link_hash_table *htab; + bfd *dynobj; +@@ -10231,7 +10231,7 @@ ppc64_elf_size_dynamic_sections (bfd *ou + + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +--- a/bfd/elf64-s390.c ++++ b/bfd/elf64-s390.c +@@ -1301,7 +1301,7 @@ elf_s390_gc_mark_hook (asection *sec, + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_s390_size_dynamic_sections if no dynamic sections will be ++ or elf_s390_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static void +@@ -1714,8 +1714,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_s390_link_hash_table *htab; + bfd *dynobj; +@@ -1729,7 +1729,7 @@ elf_s390_size_dynamic_sections (bfd *out + + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3912,7 +3912,7 @@ const struct elf_size_info s390_elf64_si + #define elf_backend_gc_mark_hook elf_s390_gc_mark_hook + #define elf_backend_reloc_type_class elf_s390_reloc_type_class + #define elf_backend_relocate_section elf_s390_relocate_section +-#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections ++#define elf_backend_late_size_sections elf_s390_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_grok_prstatus elf_s390_grok_prstatus + #define elf_backend_grok_psinfo elf_s390_grok_psinfo +--- a/bfd/elf64-sparc.c ++++ b/bfd/elf64-sparc.c +@@ -953,8 +953,8 @@ const struct elf_size_info elf64_sparc_s + _bfd_sparc_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym \ + _bfd_sparc_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections \ +- _bfd_sparc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_sparc_elf_late_size_sections + #define elf_backend_relocate_section \ + _bfd_sparc_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf64-tilegx.c ++++ b/bfd/elf64-tilegx.c +@@ -106,7 +106,7 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I + #define elf_backend_check_relocs tilegx_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilegx_elf_late_size_sections + #define elf_backend_relocate_section tilegx_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -2468,8 +2468,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struc + } + + static bool +-elf_x86_64_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_x86_64_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *abfd; + +@@ -2482,7 +2481,7 @@ elf_x86_64_always_size_sections (bfd *ou + elf_x86_64_scan_relocs)) + return false; + +- return _bfd_x86_elf_always_size_sections (output_bfd, info); ++ return _bfd_x86_elf_early_size_sections (output_bfd, info); + } + + /* Return the relocation value for @tpoff relocation +@@ -5413,7 +5412,7 @@ elf_x86_64_special_sections[]= + elf_x86_64_reloc_name_lookup + + #define elf_backend_relocs_compatible elf_x86_64_relocs_compatible +-#define elf_backend_always_size_sections elf_x86_64_always_size_sections ++#define elf_backend_early_size_sections elf_x86_64_early_size_sections + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections elf_x86_64_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol elf_x86_64_finish_dynamic_symbol +--- a/bfd/elflink.c ++++ b/bfd/elflink.c +@@ -6648,8 +6648,8 @@ bfd_elf_size_dynamic_sections (bfd *outp + + /* The backend may have to create some sections regardless of whether + we're dynamic or not. */ +- if (bed->elf_backend_always_size_sections +- && ! (*bed->elf_backend_always_size_sections) (output_bfd, info)) ++ if (bed->elf_backend_early_size_sections ++ && !bed->elf_backend_early_size_sections (output_bfd, info)) + return false; + + dynobj = elf_hash_table (info)->dynobj; +@@ -7429,9 +7429,8 @@ NOTE: This behaviour is deprecated and w + + /* The backend must work out the sizes of all the other dynamic + sections. */ +- if (dynobj != NULL +- && bed->elf_backend_size_dynamic_sections != NULL +- && ! (*bed->elf_backend_size_dynamic_sections) (output_bfd, info)) ++ if (bed->elf_backend_late_size_sections != NULL ++ && !bed->elf_backend_late_size_sections (output_bfd, info)) + return false; + + if (dynobj != NULL && elf_hash_table (info)->dynamic_sections_created) +--- a/bfd/elfn32-mips.c ++++ b/bfd/elfn32-mips.c +@@ -4138,10 +4138,8 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elfnn-aarch64.c ++++ b/bfd/elfnn-aarch64.c +@@ -112,7 +112,7 @@ + allocate space for one relocation on the slot. Record the GOT offset + for this symbol. + +- elfNN_aarch64_size_dynamic_sections () ++ elfNN_aarch64_late_size_sections () + + Iterate all input BFDS, look for in the local symbol data structure + constructed earlier for local TLS symbols and allocate them double +@@ -9144,8 +9144,8 @@ elfNN_aarch64_allocate_local_ifunc_dynre + though ! */ + + static bool +-elfNN_aarch64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elfNN_aarch64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_aarch64_link_hash_table *htab; + bfd *dynobj; +@@ -9156,7 +9156,8 @@ elfNN_aarch64_size_dynamic_sections (bfd + htab = elf_aarch64_hash_table ((info)); + dynobj = htab->root.dynobj; + +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -9558,8 +9559,8 @@ elfNN_aarch64_create_small_pltn_entry (s + _TLS_MODULE_BASE_, if needed. */ + + static bool +-elfNN_aarch64_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elfNN_aarch64_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *tls_sec; + +@@ -10292,8 +10293,8 @@ const struct elf_size_info elfNN_aarch64 + #define elf_backend_adjust_dynamic_symbol \ + elfNN_aarch64_adjust_dynamic_symbol + +-#define elf_backend_always_size_sections \ +- elfNN_aarch64_always_size_sections ++#define elf_backend_early_size_sections \ ++ elfNN_aarch64_early_size_sections + + #define elf_backend_check_relocs \ + elfNN_aarch64_check_relocs +@@ -10348,8 +10349,8 @@ const struct elf_size_info elfNN_aarch64 + #define elf_backend_modify_headers \ + elfNN_aarch64_modify_headers + +-#define elf_backend_size_dynamic_sections \ +- elfNN_aarch64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elfNN_aarch64_late_size_sections + + #define elf_backend_size_info \ + elfNN_aarch64_size_info +--- a/bfd/elfnn-ia64.c ++++ b/bfd/elfnn-ia64.c +@@ -2987,8 +2987,8 @@ elfNN_ia64_adjust_dynamic_symbol (struct + } + + static bool +-elfNN_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elfNN_ia64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elfNN_ia64_allocate_data data; + struct elfNN_ia64_link_hash_table *ia64_info; +@@ -2999,8 +2999,9 @@ elfNN_ia64_size_dynamic_sections (bfd *o + if (ia64_info == NULL) + return false; + dynobj = ia64_info->root.dynobj; ++ if (dynobj == NULL) ++ return true; + ia64_info->self_dtpmod_offset = (bfd_vma) -1; +- BFD_ASSERT(dynobj != NULL); + data.info = info; + + /* Set the contents of the .interp section to the interpreter. */ +@@ -5036,8 +5037,8 @@ ignore_errors (const char *fmt ATTRIBUTE + elfNN_ia64_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elfNN_ia64_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elfNN_ia64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elfNN_ia64_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elfnn-loongarch.c ++++ b/bfd/elfnn-loongarch.c +@@ -1581,8 +1581,8 @@ maybe_set_textrel (struct elf_link_hash_ + } + + static bool +-loongarch_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++loongarch_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct loongarch_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1592,7 +1592,8 @@ loongarch_elf_size_dynamic_sections (bfd + htab = loongarch_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -4651,7 +4652,7 @@ elf_loongarch64_hash_symbol (struct elf_ + loongarch_elf_create_dynamic_sections + #define elf_backend_check_relocs loongarch_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol loongarch_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections loongarch_elf_size_dynamic_sections ++#define elf_backend_late_size_sections loongarch_elf_late_size_sections + #define elf_backend_relocate_section loongarch_elf_relocate_section + #define elf_backend_finish_dynamic_symbol loongarch_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections \ +--- a/bfd/elfnn-riscv.c ++++ b/bfd/elfnn-riscv.c +@@ -1485,7 +1485,7 @@ allocate_local_ifunc_dynrelocs (void **s + } + + static bool +-riscv_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++riscv_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct riscv_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1495,7 +1495,8 @@ riscv_elf_size_dynamic_sections (bfd *ou + htab = riscv_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5540,7 +5541,7 @@ riscv_elf_merge_symbol_attribute (struct + #define elf_backend_create_dynamic_sections riscv_elf_create_dynamic_sections + #define elf_backend_check_relocs riscv_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol riscv_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections riscv_elf_size_dynamic_sections ++#define elf_backend_late_size_sections riscv_elf_late_size_sections + #define elf_backend_relocate_section riscv_elf_relocate_section + #define elf_backend_finish_dynamic_symbol riscv_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections riscv_elf_finish_dynamic_sections +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -9644,8 +9644,8 @@ _bfd_mips_elf_adjust_dynamic_symbol (str + check for any mips16 stub sections that we can discard. */ + + bool +-_bfd_mips_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_mips_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *sect; + struct mips_elf_link_hash_table *htab; +@@ -9988,8 +9988,8 @@ mips_elf_set_plt_sym_value (struct mips_ + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_mips_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_mips_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s, *sreldyn; +@@ -9999,7 +9999,8 @@ _bfd_mips_elf_size_dynamic_sections (bfd + htab = mips_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -14933,7 +14934,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_always_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_early_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf_External_ABIFlags_v0)); + + /* Skip this section later on (I don't think this currently +@@ -14992,7 +14993,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_always_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_early_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf32_External_RegInfo)); + + /* Skip this section later on (I don't think this currently +--- a/bfd/elfxx-mips.h ++++ b/bfd/elfxx-mips.h +@@ -67,9 +67,9 @@ extern bool _bfd_mips_elf_check_relocs + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); + extern bool _bfd_mips_elf_adjust_dynamic_symbol + (struct bfd_link_info *, struct elf_link_hash_entry *); +-extern bool _bfd_mips_elf_always_size_sections ++extern bool _bfd_mips_elf_early_size_sections + (bfd *, struct bfd_link_info *); +-extern bool _bfd_mips_elf_size_dynamic_sections ++extern bool _bfd_mips_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern int _bfd_mips_elf_relocate_section + (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, +--- a/bfd/elfxx-sparc.c ++++ b/bfd/elfxx-sparc.c +@@ -2381,8 +2381,8 @@ _bfd_sparc_elf_omit_section_dynsym (bfd + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_sparc_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_sparc_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct _bfd_sparc_elf_link_hash_table *htab; + bfd *dynobj; +@@ -2392,7 +2392,8 @@ _bfd_sparc_elf_size_dynamic_sections (bf + htab = _bfd_sparc_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +--- a/bfd/elfxx-sparc.h ++++ b/bfd/elfxx-sparc.h +@@ -117,7 +117,7 @@ extern bool _bfd_sparc_elf_adjust_dynami + (struct bfd_link_info *, struct elf_link_hash_entry *); + extern bool _bfd_sparc_elf_omit_section_dynsym + (bfd *, struct bfd_link_info *, asection *); +-extern bool _bfd_sparc_elf_size_dynamic_sections ++extern bool _bfd_sparc_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern bool _bfd_sparc_elf_new_section_hook + (bfd *, asection *); +--- a/bfd/elfxx-target.h ++++ b/bfd/elfxx-target.h +@@ -487,11 +487,11 @@ + #ifndef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol 0 + #endif +-#ifndef elf_backend_always_size_sections +-#define elf_backend_always_size_sections 0 ++#ifndef elf_backend_early_size_sections ++#define elf_backend_early_size_sections 0 + #endif +-#ifndef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections 0 ++#ifndef elf_backend_late_size_sections ++#define elf_backend_late_size_sections 0 + #endif + #ifndef elf_backend_strip_zero_sized_dynamic_sections + #define elf_backend_strip_zero_sized_dynamic_sections 0 +@@ -849,8 +849,8 @@ static const struct elf_backend_data elf + elf_backend_check_directives, + elf_backend_notice_as_needed, + elf_backend_adjust_dynamic_symbol, +- elf_backend_always_size_sections, +- elf_backend_size_dynamic_sections, ++ elf_backend_early_size_sections, ++ elf_backend_late_size_sections, + elf_backend_strip_zero_sized_dynamic_sections, + elf_backend_init_index_section, + elf_backend_relocate_section, +--- a/bfd/elfxx-tilegx.c ++++ b/bfd/elfxx-tilegx.c +@@ -2430,8 +2430,8 @@ tilegx_elf_omit_section_dynsym (bfd *out + } + + bool +-tilegx_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++tilegx_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct tilegx_elf_link_hash_table *htab; + bfd *dynobj; +@@ -2441,7 +2441,8 @@ tilegx_elf_size_dynamic_sections (bfd *o + htab = tilegx_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +--- a/bfd/elfxx-tilegx.h ++++ b/bfd/elfxx-tilegx.h +@@ -57,7 +57,7 @@ tilegx_elf_omit_section_dynsym (bfd *, + asection *); + + extern bool +-tilegx_elf_size_dynamic_sections (bfd *, struct bfd_link_info *); ++tilegx_elf_late_size_sections (bfd *, struct bfd_link_info *); + + extern int + tilegx_elf_relocate_section (bfd *, struct bfd_link_info *, +--- a/bfd/elfxx-x86.c ++++ b/bfd/elfxx-x86.c +@@ -2241,7 +2241,7 @@ _bfd_elf_x86_valid_reloc_p (asection *in + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_x86_elf_size_dynamic_sections (bfd *output_bfd, ++_bfd_x86_elf_late_size_sections (bfd *output_bfd, + struct bfd_link_info *info) + { + struct elf_x86_link_hash_table *htab; +@@ -2257,7 +2257,7 @@ _bfd_x86_elf_size_dynamic_sections (bfd + return false; + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + /* Set up .got offsets for local syms, and space for local dynamic + relocs. */ +@@ -2964,8 +2964,8 @@ _bfd_x86_elf_finish_dynamic_sections (bf + + + bool +-_bfd_x86_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_x86_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *tls_sec = elf_hash_table (info)->tls_sec; + +--- a/bfd/elfxx-x86.h ++++ b/bfd/elfxx-x86.h +@@ -847,13 +847,13 @@ extern bool _bfd_elf_x86_valid_reloc_p + const Elf_Internal_Rela *, struct elf_link_hash_entry *, + Elf_Internal_Sym *, Elf_Internal_Shdr *, bool *); + +-extern bool _bfd_x86_elf_size_dynamic_sections ++extern bool _bfd_x86_elf_late_size_sections + (bfd *, struct bfd_link_info *); + + extern struct elf_x86_link_hash_table *_bfd_x86_elf_finish_dynamic_sections + (bfd *, struct bfd_link_info *); + +-extern bool _bfd_x86_elf_always_size_sections ++extern bool _bfd_x86_elf_early_size_sections + (bfd *, struct bfd_link_info *); + + extern void _bfd_x86_elf_merge_symbol_attribute +@@ -925,8 +925,8 @@ extern void _bfd_x86_elf_link_report_rel + + #define elf_backend_check_relocs \ + _bfd_x86_elf_check_relocs +-#define elf_backend_size_dynamic_sections \ +- _bfd_x86_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_x86_elf_late_size_sections + #define elf_backend_merge_symbol_attribute \ + _bfd_x86_elf_merge_symbol_attribute + #define elf_backend_copy_indirect_symbol \ +--- a/ld/emultempl/vms.em ++++ b/ld/emultempl/vms.em +@@ -196,10 +196,9 @@ gld${EMULATION_NAME}_before_allocation ( + + /* The backend must work out the sizes of all the other dynamic + sections. */ +- if (elf_hash_table (&link_info)->dynamic_sections_created +- && bed->elf_backend_size_dynamic_sections +- && ! (*bed->elf_backend_size_dynamic_sections) (link_info.output_bfd, +- &link_info)) ++ if (bed->elf_backend_late_size_sections ++ && !bed->elf_backend_late_size_sections (link_info.output_bfd, ++ &link_info)) + einfo (_("%F%P: failed to set dynamic section sizes: %E\n")); + + before_allocation_default (); diff --git a/toolchain/binutils/patches/2.41/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch b/toolchain/binutils/patches/2.41/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch new file mode 100644 index 00000000000000..6d47db5f2e4f41 --- /dev/null +++ b/toolchain/binutils/patches/2.41/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch @@ -0,0 +1,218 @@ +From 3c6c32951e292a51ede70b8087bb0308d7dbc4fc Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Thu, 28 Mar 2024 20:33:32 +1030 +Subject: [PATCH 2/2] PR 30569, delete _bfd_mips_elf_early_size_sections + +PR30569 was triggered by a patch of mine 6540edd52cc0 moving the call +to always_size_sections in bfd_elf_size_dynamic_sections earlier, made +to support the x86 DT_RELR implementation. This broke mips16 code +handling stubs when --export-dynamic is passed to the linker, because +numerous symbols then became dynamic after always_size_sections. The +mips backend fiddles with symbols in its always_size_sections. Maciej +in 902e9fc76a0e had moved the call to always_size_sections to after +the export-dynamic code. Prior to that, Nathan in 04c3a75556c0 moved +it before the exec stack code, back to the start of +bfd_elf_size_dynamic_sections which was where Ian put it originally +in ff12f303355b. So the call has moved around a little. I'm leaving +it where it is, and instead calling mips_elf_check_symbols from +late_size_sections (the old size_dynamic_sections) which is now always +called. In fact, the whole of _bfd_mips_elf_early_size_sections can +be merged into _bfd_mips_elf_late_size_sections. +--- + bfd/elf32-mips.c | 1 - + bfd/elf64-mips.c | 2 -- + bfd/elfn32-mips.c | 1 - + bfd/elfxx-mips.c | 84 +++++++++++++++++++---------------------------- + bfd/elfxx-mips.h | 2 -- + 5 files changed, 34 insertions(+), 56 deletions(-) + +--- a/bfd/elf32-mips.c ++++ b/bfd/elf32-mips.c +@@ -2537,7 +2537,6 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section +--- a/bfd/elf64-mips.c ++++ b/bfd/elf64-mips.c +@@ -4748,8 +4748,6 @@ const struct elf_size_info mips_elf64_si + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections \ +- _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections \ + _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section +--- a/bfd/elfn32-mips.c ++++ b/bfd/elfn32-mips.c +@@ -4138,7 +4138,6 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -9639,48 +9639,6 @@ _bfd_mips_elf_adjust_dynamic_symbol (str + return _bfd_elf_adjust_dynamic_copy (info, h, s); + } + +-/* This function is called after all the input files have been read, +- and the input sections have been assigned to output sections. We +- check for any mips16 stub sections that we can discard. */ +- +-bool +-_bfd_mips_elf_early_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) +-{ +- asection *sect; +- struct mips_elf_link_hash_table *htab; +- struct mips_htab_traverse_info hti; +- +- htab = mips_elf_hash_table (info); +- BFD_ASSERT (htab != NULL); +- +- /* The .reginfo section has a fixed size. */ +- sect = bfd_get_section_by_name (output_bfd, ".reginfo"); +- if (sect != NULL) +- { +- bfd_set_section_size (sect, sizeof (Elf32_External_RegInfo)); +- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; +- } +- +- /* The .MIPS.abiflags section has a fixed size. */ +- sect = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags"); +- if (sect != NULL) +- { +- bfd_set_section_size (sect, sizeof (Elf_External_ABIFlags_v0)); +- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; +- } +- +- hti.info = info; +- hti.output_bfd = output_bfd; +- hti.error = false; +- mips_elf_link_hash_traverse (mips_elf_hash_table (info), +- mips_elf_check_symbols, &hti); +- if (hti.error) +- return false; +- +- return true; +-} +- + /* If the link uses a GOT, lay it out and work out its size. */ + + static bool +@@ -9985,7 +9943,8 @@ mips_elf_set_plt_sym_value (struct mips_ + return true; + } + +-/* Set the sizes of the dynamic sections. */ ++/* Set the sizes of the dynamic sections, some mips non-dynamic sections, ++ and check for any mips16 stub sections that we can discard. */ + + bool + _bfd_mips_elf_late_size_sections (bfd *output_bfd, +@@ -9995,14 +9954,39 @@ _bfd_mips_elf_late_size_sections (bfd *o + asection *s, *sreldyn; + bool reltext; + struct mips_elf_link_hash_table *htab; ++ struct mips_htab_traverse_info hti; + + htab = mips_elf_hash_table (info); + BFD_ASSERT (htab != NULL); +- dynobj = elf_hash_table (info)->dynobj; ++ ++ /* The .reginfo section has a fixed size. */ ++ s = bfd_get_section_by_name (output_bfd, ".reginfo"); ++ if (s != NULL) ++ { ++ bfd_set_section_size (s, sizeof (Elf32_External_RegInfo)); ++ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; ++ } ++ ++ /* The .MIPS.abiflags section has a fixed size. */ ++ s = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags"); ++ if (s != NULL) ++ { ++ bfd_set_section_size (s, sizeof (Elf_External_ABIFlags_v0)); ++ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; ++ } ++ ++ hti.info = info; ++ hti.output_bfd = output_bfd; ++ hti.error = false; ++ mips_elf_link_hash_traverse (htab, mips_elf_check_symbols, &hti); ++ if (hti.error) ++ return false; ++ ++ dynobj = htab->root.dynobj; + if (dynobj == NULL) + return true; + +- if (elf_hash_table (info)->dynamic_sections_created) ++ if (htab->root.dynamic_sections_created) + { + /* Set the contents of the .interp section to the interpreter. */ + if (bfd_link_executable (info) && !info->nointerp) +@@ -10142,7 +10126,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + } + else if (bfd_link_executable (info) +- && ! mips_elf_hash_table (info)->use_rld_obj_head ++ && !htab->use_rld_obj_head + && startswith (name, ".rld_map")) + { + /* We add a room for __rld_map. It will be filled in by the +@@ -10151,7 +10135,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + else if (SGI_COMPAT (output_bfd) + && startswith (name, ".compact_rel")) +- s->size += mips_elf_hash_table (info)->compact_rel_size; ++ s->size += htab->compact_rel_size; + else if (s == htab->root.splt) + { + /* If the last PLT entry has a branch delay slot, allocate +@@ -10191,7 +10175,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + } + +- if (elf_hash_table (info)->dynamic_sections_created) ++ if (htab->root.dynamic_sections_created) + { + /* Add some entries to the .dynamic section. We fill in the + values later, in _bfd_mips_elf_finish_dynamic_sections, but we +@@ -14934,7 +14918,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_early_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_late_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf_External_ABIFlags_v0)); + + /* Skip this section later on (I don't think this currently +@@ -14993,7 +14977,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_early_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_late_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf32_External_RegInfo)); + + /* Skip this section later on (I don't think this currently +--- a/bfd/elfxx-mips.h ++++ b/bfd/elfxx-mips.h +@@ -67,8 +67,6 @@ extern bool _bfd_mips_elf_check_relocs + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); + extern bool _bfd_mips_elf_adjust_dynamic_symbol + (struct bfd_link_info *, struct elf_link_hash_entry *); +-extern bool _bfd_mips_elf_early_size_sections +- (bfd *, struct bfd_link_info *); + extern bool _bfd_mips_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern int _bfd_mips_elf_relocate_section diff --git a/toolchain/binutils/patches/2.42/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch b/toolchain/binutils/patches/2.42/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch new file mode 100644 index 00000000000000..96f3971f6d2fbe --- /dev/null +++ b/toolchain/binutils/patches/2.42/001-PR-30569-always-call-elf_backend_size_dynamic_sectio.patch @@ -0,0 +1,2228 @@ +From af969b14aedcc0ae27dcefab4327ff2d153dec8b Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Thu, 28 Mar 2024 19:25:42 +1030 +Subject: [PATCH 1/2] PR 30569, always call elf_backend_size_dynamic_sections + +This largely mechanical patch is preparation for a followup patch. + +For quite some time I've thought that it would be useful to call +elf_backend_size_dynamic_sections even when no dynamic objects are +seen by the linker. That's what this patch does, with some renaming. +There are no functional changes to the linker, just a move of the +dynobj test in bfd_elf_size_dynamic_sections to target backend +functions, replacing the asserts/aborts already there. No doubt some +of the current always_size_sections functions could be moved to +size_dynamic_sections but I haven't made that change. + +Because both hooks are now always called, I have renamed +always_size_sections to early_size_sections and size_dynamic_sections +to late_size_sections. I condisdered calling late_size_sections plain +size_sections, since this is the usual target dynamic section sizing +hook, but decided that searching the sources for "size_sections" would +then hit early_size_sections and other functions. +--- + bfd/elf-bfd.h | 35 +++++++++++++++++------------------ + bfd/elf-m10300.c | 11 ++++++----- + bfd/elf32-arc.c | 9 +++++---- + bfd/elf32-arm.c | 15 ++++++++------- + bfd/elf32-bfin.c | 31 ++++++++++++++++--------------- + bfd/elf32-cr16.c | 11 ++++++----- + bfd/elf32-cris.c | 13 +++++++------ + bfd/elf32-csky.c | 8 ++++---- + bfd/elf32-frv.c | 23 ++++++++++++----------- + bfd/elf32-hppa.c | 8 ++++---- + bfd/elf32-i386.c | 7 +++---- + bfd/elf32-lm32.c | 15 ++++++++------- + bfd/elf32-m32c.c | 8 ++++---- + bfd/elf32-m32r.c | 11 ++++++----- + bfd/elf32-m68k.c | 16 ++++++++-------- + bfd/elf32-metag.c | 8 ++++---- + bfd/elf32-microblaze.c | 9 +++++---- + bfd/elf32-mips.c | 6 ++---- + bfd/elf32-nds32.c | 9 +++++---- + bfd/elf32-nios2.c | 15 ++++++++------- + bfd/elf32-or1k.c | 9 +++++---- + bfd/elf32-ppc.c | 11 ++++++----- + bfd/elf32-rl78.c | 8 ++++---- + bfd/elf32-s390.c | 10 +++++----- + bfd/elf32-score.c | 35 ++++++++++++++++++----------------- + bfd/elf32-score.h | 4 ++-- + bfd/elf32-score7.c | 13 +++++++------ + bfd/elf32-sh.c | 15 +++++++-------- + bfd/elf32-sparc.c | 3 +-- + bfd/elf32-tic6x.c | 14 +++++++------- + bfd/elf32-tilegx.c | 2 +- + bfd/elf32-tilepro.c | 11 +++++------ + bfd/elf32-vax.c | 16 +++++++--------- + bfd/elf32-xstormy16.c | 8 ++++---- + bfd/elf32-xtensa.c | 13 ++++++------- + bfd/elf64-alpha.c | 19 ++++++++++--------- + bfd/elf64-hppa.c | 11 ++++------- + bfd/elf64-ia64-vms.c | 13 +++++++------ + bfd/elf64-mips.c | 8 ++++---- + bfd/elf64-ppc.c | 12 ++++++------ + bfd/elf64-s390.c | 10 +++++----- + bfd/elf64-sparc.c | 4 ++-- + bfd/elf64-tilegx.c | 2 +- + bfd/elf64-x86-64.c | 7 +++---- + bfd/elflink.c | 9 ++++----- + bfd/elfn32-mips.c | 6 ++---- + bfd/elfnn-aarch64.c | 21 +++++++++++---------- + bfd/elfnn-ia64.c | 11 ++++++----- + bfd/elfnn-kvx.c | 19 +++++++++---------- + bfd/elfnn-loongarch.c | 9 +++++---- + bfd/elfnn-riscv.c | 7 ++++--- + bfd/elfxx-mips.c | 15 ++++++++------- + bfd/elfxx-mips.h | 4 ++-- + bfd/elfxx-sparc.c | 7 ++++--- + bfd/elfxx-sparc.h | 2 +- + bfd/elfxx-target.h | 12 ++++++------ + bfd/elfxx-tilegx.c | 7 ++++--- + bfd/elfxx-tilegx.h | 2 +- + bfd/elfxx-x86.c | 8 ++++---- + bfd/elfxx-x86.h | 8 ++++---- + ld/emultempl/vms.em | 7 +++---- + 61 files changed, 343 insertions(+), 337 deletions(-) + +--- a/bfd/elf-bfd.h ++++ b/bfd/elf-bfd.h +@@ -1187,7 +1187,7 @@ struct elf_backend_data + /* The ADJUST_DYNAMIC_SYMBOL function is called by the ELF backend + linker for every symbol which is defined by a dynamic object and + referenced by a regular object. This is called after all the +- input files have been seen, but before the SIZE_DYNAMIC_SECTIONS ++ input files have been seen, but before the LATE_SIZE_SECTIONS + function has been called. The hash table entry should be + bfd_link_hash_defined ore bfd_link_hash_defweak, and it should be + defined in a section from a dynamic object. Dynamic object +@@ -1199,24 +1199,23 @@ struct elf_backend_data + bool (*elf_backend_adjust_dynamic_symbol) + (struct bfd_link_info *info, struct elf_link_hash_entry *h); + +- /* The ALWAYS_SIZE_SECTIONS function is called by the backend linker +- after all the linker input files have been seen but before the +- section sizes have been set. This is called after +- ADJUST_DYNAMIC_SYMBOL, but before SIZE_DYNAMIC_SECTIONS. */ +- bool (*elf_backend_always_size_sections) ++ /* The EARLY_SIZE_SECTIONS and LATE_SIZE_SECTIONS functions are ++ called by the backend linker after all linker input files have ++ been seen and sections have been assigned to output sections, but ++ before the section sizes have been set. Both of these functions ++ are called even when no dynamic object is seen by the linker. ++ Between them, they must set the sizes of the dynamic sections and ++ other backend specific sections, and may fill in their contents. ++ Most backends need only use LATE_SIZE_SECTIONS. ++ EARLY_SIZE_SECTIONS is called before --export-dynamic makes some ++ symbols dynamic and before ADJUST_DYNAMIC_SYMBOL processes ++ dynamic symbols, LATE_SIZE_SECTIONS afterwards. The generic ELF ++ linker can handle the .dynsym, .dynstr and .hash sections. ++ Besides those, these functions must handle the .interp section ++ and any other sections created by CREATE_DYNAMIC_SECTIONS. */ ++ bool (*elf_backend_early_size_sections) + (bfd *output_bfd, struct bfd_link_info *info); +- +- /* The SIZE_DYNAMIC_SECTIONS function is called by the ELF backend +- linker after all the linker input files have been seen but before +- the sections sizes have been set. This is called after +- ADJUST_DYNAMIC_SYMBOL has been called on all appropriate symbols. +- It is only called when linking against a dynamic object. It must +- set the sizes of the dynamic sections, and may fill in their +- contents as well. The generic ELF linker can handle the .dynsym, +- .dynstr and .hash sections. This function must handle the +- .interp section and any sections created by the +- CREATE_DYNAMIC_SECTIONS entry point. */ +- bool (*elf_backend_size_dynamic_sections) ++ bool (*elf_backend_late_size_sections) + (bfd *output_bfd, struct bfd_link_info *info); + + /* The STRIP_ZERO_SIZED_DYNAMIC_SECTIONS function is called by the +--- a/bfd/elf-m10300.c ++++ b/bfd/elf-m10300.c +@@ -5015,8 +5015,8 @@ _bfd_mn10300_elf_adjust_dynamic_symbol ( + /* Set the sizes of the dynamic sections. */ + + static bool +-_bfd_mn10300_elf_size_dynamic_sections (bfd * output_bfd, +- struct bfd_link_info * info) ++_bfd_mn10300_elf_late_size_sections (bfd * output_bfd, ++ struct bfd_link_info * info) + { + struct elf32_mn10300_link_hash_table *htab = elf32_mn10300_hash_table (info); + bfd * dynobj; +@@ -5024,7 +5024,8 @@ _bfd_mn10300_elf_size_dynamic_sections ( + bool relocs; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5511,8 +5512,8 @@ mn10300_elf_mkobject (bfd *abfd) + _bfd_mn10300_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mn10300_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- _bfd_mn10300_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_mn10300_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_symbol \ + _bfd_mn10300_elf_finish_dynamic_symbol +--- a/bfd/elf32-arc.c ++++ b/bfd/elf32-arc.c +@@ -2715,8 +2715,8 @@ elf_arc_finish_dynamic_sections (bfd * o + + /* Set the sizes of the dynamic sections. */ + static bool +-elf_arc_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_arc_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -2724,7 +2724,8 @@ elf_arc_size_dynamic_sections (bfd *outp + struct elf_link_hash_table *htab = elf_hash_table (info); + + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -3140,7 +3141,7 @@ arc_elf_relax_section (bfd *abfd, asecti + #define elf_backend_finish_dynamic_symbol elf_arc_finish_dynamic_symbol + + #define elf_backend_finish_dynamic_sections elf_arc_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf_arc_size_dynamic_sections ++#define elf_backend_late_size_sections elf_arc_late_size_sections + + #define elf_backend_can_gc_sections 1 + #define elf_backend_want_got_plt 1 +--- a/bfd/elf32-arm.c ++++ b/bfd/elf32-arm.c +@@ -16752,8 +16752,8 @@ bfd_elf32_arm_set_byteswap_code (struct + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info * info) ++elf32_arm_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info * info) + { + bfd * dynobj; + asection * s; +@@ -16766,7 +16766,9 @@ elf32_arm_size_dynamic_sections (bfd * o + return false; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; ++ + check_use_blx (htab); + + if (elf_hash_table (info)->dynamic_sections_created) +@@ -17138,8 +17140,7 @@ elf32_arm_size_dynamic_sections (bfd * o + _TLS_MODULE_BASE_, if needed. */ + + static bool +-elf32_arm_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_arm_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + asection *tls_sec; + struct elf32_arm_link_hash_table *htab; +@@ -20341,8 +20342,8 @@ elf32_arm_backend_symbol_processing (bfd + #define elf_backend_create_dynamic_sections elf32_arm_create_dynamic_sections + #define elf_backend_finish_dynamic_symbol elf32_arm_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf32_arm_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf32_arm_size_dynamic_sections +-#define elf_backend_always_size_sections elf32_arm_always_size_sections ++#define elf_backend_late_size_sections elf32_arm_late_size_sections ++#define elf_backend_early_size_sections elf32_arm_early_size_sections + #define elf_backend_init_index_section _bfd_elf_init_2_index_sections + #define elf_backend_init_file_header elf32_arm_init_file_header + #define elf_backend_reloc_type_class elf32_arm_reloc_type_class +--- a/bfd/elf32-bfin.c ++++ b/bfd/elf32-bfin.c +@@ -4027,8 +4027,8 @@ _bfinfdpic_size_got_plt (bfd *output_bfd + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_bfinfdpic_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_bfinfdpic_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct elf_link_hash_table *htab; + bfd *dynobj; +@@ -4037,7 +4037,8 @@ elf32_bfinfdpic_size_dynamic_sections (b + + htab = elf_hash_table (info); + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -4086,7 +4087,7 @@ elf32_bfinfdpic_size_dynamic_sections (b + } + + static bool +-elf32_bfinfdpic_always_size_sections (bfd *output_bfd, ++elf32_bfinfdpic_early_size_sections (bfd *output_bfd, + struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info) +@@ -5123,15 +5124,16 @@ bfin_discard_copies (struct elf_link_has + } + + static bool +-bfin_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++bfin_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5423,8 +5425,7 @@ struct bfd_elf_special_section const elf + #define elf_backend_check_relocs bfin_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + bfin_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- bfin_size_dynamic_sections ++#define elf_backend_late_size_sections bfin_late_size_sections + #define elf_backend_relocate_section bfin_relocate_section + #define elf_backend_finish_dynamic_symbol \ + bfin_finish_dynamic_symbol +@@ -5470,9 +5471,9 @@ struct bfd_elf_special_section const elf + #undef bfd_elf32_bfd_link_hash_table_create + #define bfd_elf32_bfd_link_hash_table_create \ + bfinfdpic_elf_link_hash_table_create +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections \ +- elf32_bfinfdpic_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections \ ++ elf32_bfinfdpic_early_size_sections + + #undef elf_backend_create_dynamic_sections + #define elf_backend_create_dynamic_sections \ +@@ -5480,9 +5481,9 @@ struct bfd_elf_special_section const elf + #undef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol \ + elf32_bfinfdpic_adjust_dynamic_symbol +-#undef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_bfinfdpic_size_dynamic_sections ++#undef elf_backend_late_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_bfinfdpic_late_size_sections + #undef elf_backend_finish_dynamic_symbol + #define elf_backend_finish_dynamic_symbol \ + elf32_bfinfdpic_finish_dynamic_symbol +--- a/bfd/elf32-cr16.c ++++ b/bfd/elf32-cr16.c +@@ -2391,15 +2391,16 @@ _bfd_cr16_elf_adjust_dynamic_symbol (str + /* Set the sizes of the dynamic sections. */ + + static bool +-_bfd_cr16_elf_size_dynamic_sections (bfd * output_bfd, +- struct bfd_link_info * info) ++_bfd_cr16_elf_late_size_sections (bfd * output_bfd, ++ struct bfd_link_info * info) + { + bfd * dynobj; + asection * s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -2836,8 +2837,8 @@ _bfd_cr16_elf_reloc_type_class (const st + _bfd_cr16_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol \ + _bfd_cr16_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- _bfd_cr16_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_cr16_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_symbol \ + _bfd_cr16_elf_finish_dynamic_symbol +--- a/bfd/elf32-cris.c ++++ b/bfd/elf32-cris.c +@@ -2527,7 +2527,7 @@ cris_elf_plt_sym_val (bfd_vma i ATTRIBUT + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_cris_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_cris_size_dynamic_sections if no dynamic sections will be ++ or elf_cris_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static bool +@@ -3508,8 +3508,8 @@ cris_elf_check_relocs (bfd *abfd, + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_cris_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_cris_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_cris_link_hash_table * htab; + bfd *dynobj; +@@ -3521,7 +3521,8 @@ elf_cris_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -4090,8 +4091,8 @@ elf_cris_got_elt_size (bfd *abfd ATTRIBU + elf_cris_adjust_dynamic_symbol + #define elf_backend_copy_indirect_symbol \ + elf_cris_copy_indirect_symbol +-#define elf_backend_size_dynamic_sections \ +- elf_cris_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elf_cris_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_finish_dynamic_symbol \ + elf_cris_finish_dynamic_symbol +--- a/bfd/elf32-csky.c ++++ b/bfd/elf32-csky.c +@@ -1893,8 +1893,8 @@ csky_allocate_dynrelocs (struct elf_link + /* Set the sizes of the dynamic sections. */ + + static bool +-csky_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++csky_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct csky_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1907,7 +1907,7 @@ csky_elf_size_dynamic_sections (bfd *out + return false; + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- return false; ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -5333,7 +5333,7 @@ elf32_csky_obj_attrs_handle_unknown (bfd + /* Dynamic relocate related API. */ + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_adjust_dynamic_symbol csky_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections csky_elf_size_dynamic_sections ++#define elf_backend_late_size_sections csky_elf_late_size_sections + #define elf_backend_finish_dynamic_symbol csky_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections csky_elf_finish_dynamic_sections + #define elf_backend_rela_normal 1 +--- a/bfd/elf32-frv.c ++++ b/bfd/elf32-frv.c +@@ -5423,15 +5423,16 @@ _frvfdpic_size_got_plt (bfd *output_bfd, + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_frvfdpic_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_frvfdpic_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + struct _frvfdpic_dynamic_got_plt_info gpinfo; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5472,8 +5473,8 @@ elf32_frvfdpic_size_dynamic_sections (bf + } + + static bool +-elf32_frvfdpic_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf32_frvfdpic_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info) + && !bfd_elf_stack_segment_size (output_bfd, info, +@@ -6817,9 +6818,9 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In + #undef bfd_elf32_bfd_link_hash_table_create + #define bfd_elf32_bfd_link_hash_table_create \ + frvfdpic_elf_link_hash_table_create +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections \ +- elf32_frvfdpic_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections \ ++ elf32_frvfdpic_early_size_sections + + #undef elf_backend_create_dynamic_sections + #define elf_backend_create_dynamic_sections \ +@@ -6827,9 +6828,9 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In + #undef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol \ + elf32_frvfdpic_adjust_dynamic_symbol +-#undef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_frvfdpic_size_dynamic_sections ++#undef elf_backend_late_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_frvfdpic_late_size_sections + #undef bfd_elf32_bfd_relax_section + #define bfd_elf32_bfd_relax_section \ + elf32_frvfdpic_relax_section +--- a/bfd/elf32-hppa.c ++++ b/bfd/elf32-hppa.c +@@ -2042,8 +2042,8 @@ clobber_millicode_symbols (struct elf_li + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf32_hppa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf32_hppa_link_hash_table *htab; + bfd *dynobj; +@@ -2057,7 +2057,7 @@ elf32_hppa_size_dynamic_sections (bfd *o + + dynobj = htab->etab.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->etab.dynamic_sections_created) + { +@@ -4452,7 +4452,7 @@ elf32_hppa_elf_get_symbol_type (Elf_Inte + #define elf_backend_hide_symbol elf32_hppa_hide_symbol + #define elf_backend_finish_dynamic_symbol elf32_hppa_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf32_hppa_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf32_hppa_size_dynamic_sections ++#define elf_backend_late_size_sections elf32_hppa_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_gc_mark_hook elf32_hppa_gc_mark_hook + #define elf_backend_grok_prstatus elf32_hppa_grok_prstatus +--- a/bfd/elf32-i386.c ++++ b/bfd/elf32-i386.c +@@ -1957,8 +1957,7 @@ elf_i386_scan_relocs (bfd *abfd, + } + + static bool +-elf_i386_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_i386_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *abfd; + +@@ -1971,7 +1970,7 @@ elf_i386_always_size_sections (bfd *outp + elf_i386_scan_relocs)) + return false; + +- return _bfd_x86_elf_always_size_sections (output_bfd, info); ++ return _bfd_x86_elf_early_size_sections (output_bfd, info); + } + + /* Set the correct type for an x86 ELF section. We do this by the +@@ -4479,7 +4478,7 @@ elf_i386_link_setup_gnu_properties (stru + #define bfd_elf32_get_synthetic_symtab elf_i386_get_synthetic_symtab + + #define elf_backend_relocs_compatible _bfd_elf_relocs_compatible +-#define elf_backend_always_size_sections elf_i386_always_size_sections ++#define elf_backend_early_size_sections elf_i386_early_size_sections + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_fake_sections elf_i386_fake_sections + #define elf_backend_finish_dynamic_sections elf_i386_finish_dynamic_sections +--- a/bfd/elf32-lm32.c ++++ b/bfd/elf32-lm32.c +@@ -1906,8 +1906,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-lm32_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++lm32_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct elf_lm32_link_hash_table *htab; + bfd *dynobj; +@@ -1920,7 +1920,8 @@ lm32_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -2309,7 +2310,7 @@ lm32_elf_create_dynamic_sections (bfd *a + } + + static bool +-lm32_elf_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++lm32_elf_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (!bfd_link_relocatable (info)) + { +@@ -2395,7 +2396,7 @@ lm32_elf_fdpic_copy_private_bfd_data (bf + #define bfd_elf32_bfd_link_hash_table_create lm32_elf_link_hash_table_create + #define elf_backend_check_relocs lm32_elf_check_relocs + #define elf_backend_reloc_type_class lm32_elf_reloc_type_class +-#define elf_backend_size_dynamic_sections lm32_elf_size_dynamic_sections ++#define elf_backend_late_size_sections lm32_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_create_dynamic_sections lm32_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections lm32_elf_finish_dynamic_sections +@@ -2416,8 +2417,8 @@ lm32_elf_fdpic_copy_private_bfd_data (bf + #undef elf32_bed + #define elf32_bed elf32_lm32fdpic_bed + +-#undef elf_backend_always_size_sections +-#define elf_backend_always_size_sections lm32_elf_always_size_sections ++#undef elf_backend_early_size_sections ++#define elf_backend_early_size_sections lm32_elf_early_size_sections + #undef bfd_elf32_bfd_copy_private_bfd_data + #define bfd_elf32_bfd_copy_private_bfd_data lm32_elf_fdpic_copy_private_bfd_data + +--- a/bfd/elf32-m32c.c ++++ b/bfd/elf32-m32c.c +@@ -773,8 +773,8 @@ m32c_elf_finish_dynamic_sections (bfd *a + } + + static bool +-m32c_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++m32c_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -2132,8 +2132,8 @@ _bfd_m32c_elf_eh_frame_address_size (bfd + #define elf_backend_check_relocs m32c_elf_check_relocs + #define elf_backend_object_p m32c_elf_object_p + #define elf_symbol_leading_char ('_') +-#define elf_backend_always_size_sections \ +- m32c_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ m32c_elf_early_size_sections + #define elf_backend_finish_dynamic_sections \ + m32c_elf_finish_dynamic_sections + +--- a/bfd/elf32-m32r.c ++++ b/bfd/elf32-m32r.c +@@ -1958,8 +1958,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-m32r_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++m32r_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_link_hash_table *htab; + bfd *dynobj; +@@ -1968,7 +1968,7 @@ m32r_elf_size_dynamic_sections (bfd *out + bfd *ibfd; + + #ifdef DEBUG_PIC +- printf ("m32r_elf_size_dynamic_sections()\n"); ++ printf ("m32r_elf_late_size_sections()\n"); + #endif + + htab = m32r_elf_hash_table (info); +@@ -1976,7 +1976,8 @@ m32r_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->dynamic_sections_created) + { +@@ -3658,7 +3659,7 @@ m32r_elf_reloc_type_class (const struct + + #define elf_backend_create_dynamic_sections m32r_elf_create_dynamic_sections + #define bfd_elf32_bfd_link_hash_table_create m32r_elf_link_hash_table_create +-#define elf_backend_size_dynamic_sections m32r_elf_size_dynamic_sections ++#define elf_backend_late_size_sections m32r_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_sections m32r_elf_finish_dynamic_sections + #define elf_backend_adjust_dynamic_symbol m32r_elf_adjust_dynamic_symbol +--- a/bfd/elf32-m68k.c ++++ b/bfd/elf32-m68k.c +@@ -2934,7 +2934,7 @@ elf_m68k_get_plt_info (bfd *output_bfd) + It's a convenient place to determine the PLT style. */ + + static bool +-elf_m68k_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf_m68k_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + /* Bind input BFDs to GOTs and calculate sizes of .got and .rela.got + sections. */ +@@ -3107,15 +3107,16 @@ elf_m68k_adjust_dynamic_symbol (struct b + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_m68k_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_m68k_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -4628,12 +4629,11 @@ elf_m68k_grok_psinfo (bfd *abfd, Elf_Int + #define bfd_elf32_bfd_final_link bfd_elf_final_link + + #define elf_backend_check_relocs elf_m68k_check_relocs +-#define elf_backend_always_size_sections \ +- elf_m68k_always_size_sections ++#define elf_backend_early_size_sections \ ++ elf_m68k_early_size_sections + #define elf_backend_adjust_dynamic_symbol \ + elf_m68k_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elf_m68k_size_dynamic_sections ++#define elf_backend_late_size_sections elf_m68k_late_size_sections + #define elf_backend_final_write_processing elf_m68k_final_write_processing + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section elf_m68k_relocate_section +--- a/bfd/elf32-metag.c ++++ b/bfd/elf32-metag.c +@@ -2717,8 +2717,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_metag_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_metag_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_metag_link_hash_table *htab; + bfd *dynobj; +@@ -2729,7 +2729,7 @@ elf_metag_size_dynamic_sections (bfd *ou + htab = metag_link_hash_table (info); + dynobj = htab->etab.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->etab.dynamic_sections_created) + { +@@ -4019,7 +4019,7 @@ elf_metag_plt_sym_val (bfd_vma i, const + #define elf_backend_adjust_dynamic_symbol elf_metag_adjust_dynamic_symbol + #define elf_backend_finish_dynamic_symbol elf_metag_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections elf_metag_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections elf_metag_size_dynamic_sections ++#define elf_backend_late_size_sections elf_metag_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_init_file_header elf_metag_init_file_header +--- a/bfd/elf32-microblaze.c ++++ b/bfd/elf32-microblaze.c +@@ -2966,8 +2966,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-microblaze_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++microblaze_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf32_mb_link_hash_table *htab; + bfd *dynobj; +@@ -2979,7 +2979,8 @@ microblaze_elf_size_dynamic_sections (bf + return false; + + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + /* Set up .got offsets for local syms, and space for local dynamic + relocs. */ +@@ -3497,7 +3498,7 @@ microblaze_elf_add_symbol_hook (bfd *abf + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections microblaze_elf_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol microblaze_elf_finish_dynamic_symbol +-#define elf_backend_size_dynamic_sections microblaze_elf_size_dynamic_sections ++#define elf_backend_late_size_sections microblaze_elf_late_size_sections + #define elf_backend_add_symbol_hook microblaze_elf_add_symbol_hook + + #include "elf32-target.h" +--- a/bfd/elf32-mips.c ++++ b/bfd/elf32-mips.c +@@ -2537,10 +2537,8 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf32-nds32.c ++++ b/bfd/elf32-nds32.c +@@ -4302,8 +4302,8 @@ elf32_nds32_add_dynreloc (bfd *output_bf + /* Set the sizes of the dynamic sections. */ + + static bool +-nds32_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++nds32_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_nds32_link_hash_table *htab; + bfd *dynobj; +@@ -4316,7 +4316,8 @@ nds32_elf_size_dynamic_sections (bfd *ou + return false; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -13984,7 +13985,7 @@ nds32_elf_unify_tls_model (bfd *inbfd, a + #define elf_backend_create_dynamic_sections nds32_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections nds32_elf_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol nds32_elf_finish_dynamic_symbol +-#define elf_backend_size_dynamic_sections nds32_elf_size_dynamic_sections ++#define elf_backend_late_size_sections nds32_elf_late_size_sections + #define elf_backend_relocate_section nds32_elf_relocate_section + #define elf_backend_gc_mark_hook nds32_elf_gc_mark_hook + #define elf_backend_grok_prstatus nds32_elf_grok_prstatus +--- a/bfd/elf32-nios2.c ++++ b/bfd/elf32-nios2.c +@@ -5405,7 +5405,7 @@ nios2_elf32_adjust_dynamic_symbol (struc + return true; + } + +-/* Worker function for nios2_elf32_size_dynamic_sections. */ ++/* Worker function for nios2_elf32_late_size_sections. */ + static bool + adjust_dynrelocs (struct elf_link_hash_entry *h, void *inf) + { +@@ -5432,7 +5432,7 @@ adjust_dynrelocs (struct elf_link_hash_e + return true; + } + +-/* Another worker function for nios2_elf32_size_dynamic_sections. ++/* Another worker function for nios2_elf32_late_size_sections. + Allocate space in .plt, .got and associated reloc sections for + dynamic relocs. */ + static bool +@@ -5667,11 +5667,11 @@ allocate_dynrelocs (struct elf_link_hash + return true; + } + +-/* Implement elf_backend_size_dynamic_sections: ++/* Implement elf_backend_late_size_sections: + Set the sizes of the dynamic sections. */ + static bool +-nios2_elf32_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++nios2_elf32_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -5681,7 +5681,8 @@ nios2_elf32_size_dynamic_sections (bfd * + + htab = elf32_nios2_hash_table (info); + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + htab->res_n_size = 0; + if (htab->root.dynamic_sections_created) +@@ -6052,7 +6053,7 @@ const struct bfd_elf_special_section elf + nios2_elf32_finish_dynamic_sections + #define elf_backend_adjust_dynamic_symbol nios2_elf32_adjust_dynamic_symbol + #define elf_backend_reloc_type_class nios2_elf32_reloc_type_class +-#define elf_backend_size_dynamic_sections nios2_elf32_size_dynamic_sections ++#define elf_backend_late_size_sections nios2_elf32_late_size_sections + #define elf_backend_add_symbol_hook nios2_elf_add_symbol_hook + #define elf_backend_copy_indirect_symbol nios2_elf32_copy_indirect_symbol + #define elf_backend_object_p nios2_elf32_object_p +--- a/bfd/elf32-or1k.c ++++ b/bfd/elf32-or1k.c +@@ -3047,8 +3047,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-or1k_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++or1k_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_or1k_link_hash_table *htab; + bfd *dynobj; +@@ -3061,7 +3061,8 @@ or1k_elf_size_dynamic_sections (bfd *out + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -3414,7 +3415,7 @@ or1k_grok_psinfo (bfd *abfd, Elf_Interna + #define elf_backend_copy_indirect_symbol or1k_elf_copy_indirect_symbol + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections or1k_elf_finish_dynamic_sections +-#define elf_backend_size_dynamic_sections or1k_elf_size_dynamic_sections ++#define elf_backend_late_size_sections or1k_elf_late_size_sections + #define elf_backend_adjust_dynamic_symbol or1k_elf_adjust_dynamic_symbol + #define elf_backend_finish_dynamic_symbol or1k_elf_finish_dynamic_symbol + +--- a/bfd/elf32-ppc.c ++++ b/bfd/elf32-ppc.c +@@ -5479,8 +5479,8 @@ static const unsigned char glink_eh_fram + /* Set the sizes of the dynamic sections. */ + + static bool +-ppc_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++ppc_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct ppc_elf_link_hash_table *htab; + asection *s; +@@ -5488,11 +5488,12 @@ ppc_elf_size_dynamic_sections (bfd *outp + bfd *ibfd; + + #ifdef DEBUG +- fprintf (stderr, "ppc_elf_size_dynamic_sections called\n"); ++ fprintf (stderr, "ppc_elf_late_size_sections called\n"); + #endif + + htab = ppc_elf_hash_table (info); +- BFD_ASSERT (htab->elf.dynobj != NULL); ++ if (htab->elf.dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -10433,7 +10434,7 @@ ppc_elf_finish_dynamic_sections (bfd *ou + #define elf_backend_copy_indirect_symbol ppc_elf_copy_indirect_symbol + #define elf_backend_adjust_dynamic_symbol ppc_elf_adjust_dynamic_symbol + #define elf_backend_add_symbol_hook ppc_elf_add_symbol_hook +-#define elf_backend_size_dynamic_sections ppc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections ppc_elf_late_size_sections + #define elf_backend_hash_symbol ppc_elf_hash_symbol + #define elf_backend_finish_dynamic_symbol ppc_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections ppc_elf_finish_dynamic_sections +--- a/bfd/elf32-rl78.c ++++ b/bfd/elf32-rl78.c +@@ -1440,8 +1440,8 @@ rl78_elf_finish_dynamic_sections (bfd *a + } + + static bool +-rl78_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++rl78_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -2610,8 +2610,8 @@ rl78_elf_relax_section (bfd *abfd, + + #define bfd_elf32_bfd_relax_section rl78_elf_relax_section + #define elf_backend_check_relocs rl78_elf_check_relocs +-#define elf_backend_always_size_sections \ +- rl78_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ rl78_elf_early_size_sections + #define elf_backend_finish_dynamic_sections \ + rl78_elf_finish_dynamic_sections + +--- a/bfd/elf32-s390.c ++++ b/bfd/elf32-s390.c +@@ -1366,7 +1366,7 @@ elf_s390_gc_mark_hook (asection *sec, + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_s390_size_dynamic_sections if no dynamic sections will be ++ or elf_s390_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static void +@@ -1778,8 +1778,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_s390_link_hash_table *htab; + bfd *dynobj; +@@ -1790,7 +1790,7 @@ elf_s390_size_dynamic_sections (bfd *out + htab = elf_s390_hash_table (info); + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3926,7 +3926,7 @@ elf32_s390_merge_private_bfd_data (bfd * + #define elf_backend_gc_mark_hook elf_s390_gc_mark_hook + #define elf_backend_reloc_type_class elf_s390_reloc_type_class + #define elf_backend_relocate_section elf_s390_relocate_section +-#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections ++#define elf_backend_late_size_sections elf_s390_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_grok_prstatus elf_s390_grok_prstatus + #define elf_backend_grok_psinfo elf_s390_grok_psinfo +--- a/bfd/elf32-score.c ++++ b/bfd/elf32-score.c +@@ -1089,7 +1089,7 @@ score_elf_got_info (bfd *abfd, asection + appear towards the end. This reduces the amount of GOT space + required. MAX_LOCAL is used to set the number of local symbols + known to be in the dynamic symbol table. During +- s3_bfd_score_elf_size_dynamic_sections, this value is 1. Afterward, the ++ s3_bfd_score_elf_late_size_sections, this value is 1. Afterward, the + section symbols are added and the count is higher. */ + static bool + score_elf_sort_hash_table (struct bfd_link_info *info, +@@ -3160,8 +3160,8 @@ s3_bfd_score_elf_adjust_dynamic_symbol ( + /* This function is called after all the input files have been read, + and the input sections have been assigned to output sections. */ + static bool +-s3_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++s3_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -3237,14 +3237,15 @@ s3_bfd_score_elf_always_size_sections (b + + /* Set the sizes of the dynamic sections. */ + static bool +-s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++s3_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool reltext; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3313,7 +3314,7 @@ s3_bfd_score_elf_size_dynamic_sections ( + } + else if (startswith (name, ".got")) + { +- /* s3_bfd_score_elf_always_size_sections() has already done ++ /* s3_bfd_score_elf_early_size_sections() has already done + most of the work, but some symbols may have been mapped + to versions that we must now resolve in the got_entries + hash tables. */ +@@ -4177,22 +4178,22 @@ _bfd_score_elf_adjust_dynamic_symbol (st + } + + static bool +-_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + if (bfd_get_mach (output_bfd) == bfd_mach_score3) +- return s3_bfd_score_elf_always_size_sections (output_bfd, info); ++ return s3_bfd_score_elf_early_size_sections (output_bfd, info); + else +- return s7_bfd_score_elf_always_size_sections (output_bfd, info); ++ return s7_bfd_score_elf_early_size_sections (output_bfd, info); + } + + static bool +-_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (bfd_get_mach (output_bfd) == bfd_mach_score3) +- return s3_bfd_score_elf_size_dynamic_sections (output_bfd, info); ++ return s3_bfd_score_elf_late_size_sections (output_bfd, info); + else +- return s7_bfd_score_elf_size_dynamic_sections (output_bfd, info); ++ return s7_bfd_score_elf_late_size_sections (output_bfd, info); + } + + static bool +@@ -4455,10 +4456,10 @@ _bfd_score_elf_common_definition (Elf_In + _bfd_score_elf_section_from_bfd_section + #define elf_backend_adjust_dynamic_symbol \ + _bfd_score_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_score_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_score_elf_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ _bfd_score_elf_early_size_sections ++#define elf_backend_late_size_sections \ ++ _bfd_score_elf_late_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_create_dynamic_sections \ + _bfd_score_elf_create_dynamic_sections +--- a/bfd/elf32-score.h ++++ b/bfd/elf32-score.h +@@ -78,10 +78,10 @@ s7_bfd_score_elf_adjust_dynamic_symbol ( + struct elf_link_hash_entry *); + + extern bool +-s7_bfd_score_elf_always_size_sections (bfd *, struct bfd_link_info *); ++s7_bfd_score_elf_early_size_sections (bfd *, struct bfd_link_info *); + + extern bool +-s7_bfd_score_elf_size_dynamic_sections (bfd *, struct bfd_link_info *); ++s7_bfd_score_elf_late_size_sections (bfd *, struct bfd_link_info *); + + extern bool + s7_bfd_score_elf_create_dynamic_sections (bfd *, struct bfd_link_info *); +--- a/bfd/elf32-score7.c ++++ b/bfd/elf32-score7.c +@@ -975,7 +975,7 @@ score_elf_got_info (bfd *abfd, asection + appear towards the end. This reduces the amount of GOT space + required. MAX_LOCAL is used to set the number of local symbols + known to be in the dynamic symbol table. During +- s7_bfd_score_elf_size_dynamic_sections, this value is 1. Afterward, the ++ s7_bfd_score_elf_late_size_sections, this value is 1. Afterward, the + section symbols are added and the count is higher. */ + + static bool +@@ -2969,8 +2969,8 @@ s7_bfd_score_elf_adjust_dynamic_symbol ( + and the input sections have been assigned to output sections. */ + + bool +-s7_bfd_score_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++s7_bfd_score_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -3047,14 +3047,15 @@ s7_bfd_score_elf_always_size_sections (b + /* Set the sizes of the dynamic sections. */ + + bool +-s7_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++s7_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool reltext; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3123,7 +3124,7 @@ s7_bfd_score_elf_size_dynamic_sections ( + } + else if (startswith (name, ".got")) + { +- /* s7_bfd_score_elf_always_size_sections() has already done ++ /* s7_bfd_score_elf_early_size_sections() has already done + most of the work, but some symbols may have been mapped + to versions that we must now resolve in the got_entries + hash tables. */ +--- a/bfd/elf32-sh.c ++++ b/bfd/elf32-sh.c +@@ -2927,7 +2927,7 @@ allocate_dynrelocs (struct elf_link_hash + It's a convenient place to determine the PLT style. */ + + static bool +-sh_elf_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++sh_elf_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + sh_elf_hash_table (info)->plt_info = get_plt_info (output_bfd, + bfd_link_pic (info)); +@@ -2942,8 +2942,8 @@ sh_elf_always_size_sections (bfd *output + /* Set the sizes of the dynamic sections. */ + + static bool +-sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++sh_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_sh_link_hash_table *htab; + bfd *dynobj; +@@ -2956,7 +2956,8 @@ sh_elf_size_dynamic_sections (bfd *outpu + return false; + + dynobj = htab->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -6600,10 +6601,8 @@ sh_elf_encode_eh_address (bfd *abfd, + sh_elf_link_hash_table_create + #define elf_backend_adjust_dynamic_symbol \ + sh_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- sh_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- sh_elf_size_dynamic_sections ++#define elf_backend_early_size_sections sh_elf_early_size_sections ++#define elf_backend_late_size_sections sh_elf_late_size_sections + #define elf_backend_omit_section_dynsym sh_elf_omit_section_dynsym + #define elf_backend_finish_dynamic_symbol \ + sh_elf_finish_dynamic_symbol +--- a/bfd/elf32-sparc.c ++++ b/bfd/elf32-sparc.c +@@ -248,8 +248,7 @@ elf32_sparc_reloc_type_class (const stru + #define elf_backend_adjust_dynamic_symbol \ + _bfd_sparc_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym _bfd_sparc_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections \ +- _bfd_sparc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections _bfd_sparc_elf_late_size_sections + #define elf_backend_relocate_section _bfd_sparc_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ + _bfd_sparc_elf_finish_dynamic_symbol +--- a/bfd/elf32-tic6x.c ++++ b/bfd/elf32-tic6x.c +@@ -3160,7 +3160,7 @@ elf32_tic6x_allocate_dynrelocs (struct e + /* Set the sizes of the dynamic sections. */ + + static bool +-elf32_tic6x_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf32_tic6x_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf32_tic6x_link_hash_table *htab; + bfd *dynobj; +@@ -3171,7 +3171,7 @@ elf32_tic6x_size_dynamic_sections (bfd * + htab = elf32_tic6x_hash_table (info); + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3358,7 +3358,7 @@ elf32_tic6x_size_dynamic_sections (bfd * + and the input sections have been assigned to output sections. */ + + static bool +-elf32_tic6x_always_size_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf32_tic6x_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + if (elf32_tic6x_using_dsbt (output_bfd) && !bfd_link_relocatable (info) + && !bfd_elf_stack_segment_size (output_bfd, info, +@@ -4261,10 +4261,10 @@ elf32_tic6x_write_section (bfd *output_b + #define elf_backend_relocs_compatible _bfd_elf_relocs_compatible + #define elf_backend_finish_dynamic_symbol \ + elf32_tic6x_finish_dynamic_symbol +-#define elf_backend_always_size_sections \ +- elf32_tic6x_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf32_tic6x_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ elf32_tic6x_early_size_sections ++#define elf_backend_late_size_sections \ ++ elf32_tic6x_late_size_sections + #define elf_backend_finish_dynamic_sections \ + elf32_tic6x_finish_dynamic_sections + #define bfd_elf32_bfd_final_link \ +--- a/bfd/elf32-tilegx.c ++++ b/bfd/elf32-tilegx.c +@@ -105,7 +105,7 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I + #define elf_backend_check_relocs tilegx_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilegx_elf_late_size_sections + #define elf_backend_relocate_section tilegx_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections +--- a/bfd/elf32-tilepro.c ++++ b/bfd/elf32-tilepro.c +@@ -2182,11 +2182,9 @@ tilepro_elf_omit_section_dynsym (bfd *ou + #define ELF32_DYNAMIC_INTERPRETER "/lib/ld.so.1" + + static bool +-tilepro_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++tilepro_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { +- (void)output_bfd; +- + struct elf_link_hash_table *htab; + bfd *dynobj; + asection *s; +@@ -2195,7 +2193,8 @@ tilepro_elf_size_dynamic_sections (bfd * + htab = tilepro_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -3739,7 +3738,7 @@ tilepro_additional_program_headers (bfd + #define elf_backend_check_relocs tilepro_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilepro_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilepro_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilepro_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilepro_elf_late_size_sections + #define elf_backend_relocate_section tilepro_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilepro_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilepro_elf_finish_dynamic_sections +--- a/bfd/elf32-vax.c ++++ b/bfd/elf32-vax.c +@@ -36,7 +36,6 @@ static bool elf_vax_check_relocs (bfd *, + asection *, const Elf_Internal_Rela *); + static bool elf_vax_adjust_dynamic_symbol (struct bfd_link_info *, + struct elf_link_hash_entry *); +-static bool elf_vax_size_dynamic_sections (bfd *, struct bfd_link_info *); + static int elf_vax_relocate_section (bfd *, struct bfd_link_info *, + bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, +@@ -985,8 +984,8 @@ elf_vax_discard_got_entries (struct elf_ + /* Discard unused dynamic data if this is a static link. */ + + static bool +-elf_vax_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_vax_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -1024,14 +1023,15 @@ elf_vax_always_size_sections (bfd *outpu + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_vax_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf_vax_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; + bool relocs; + + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -1861,10 +1861,8 @@ elf_vax_plt_sym_val (bfd_vma i, const as + #define elf_backend_check_relocs elf_vax_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elf_vax_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- elf_vax_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf_vax_size_dynamic_sections ++#define elf_backend_early_size_sections elf_vax_early_size_sections ++#define elf_backend_late_size_sections elf_vax_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section elf_vax_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf32-xstormy16.c ++++ b/bfd/elf32-xstormy16.c +@@ -706,8 +706,8 @@ xstormy16_elf_relax_section (bfd *dynobj + } + + static bool +-xstormy16_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++xstormy16_elf_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *splt; +@@ -1013,8 +1013,8 @@ xstormy16_elf_gc_mark_hook (asection *se + #define elf_backend_relocate_section xstormy16_elf_relocate_section + #define elf_backend_gc_mark_hook xstormy16_elf_gc_mark_hook + #define elf_backend_check_relocs xstormy16_elf_check_relocs +-#define elf_backend_always_size_sections \ +- xstormy16_elf_always_size_sections ++#define elf_backend_early_size_sections \ ++ xstormy16_elf_early_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_finish_dynamic_sections \ +--- a/bfd/elf32-xtensa.c ++++ b/bfd/elf32-xtensa.c +@@ -1557,8 +1557,8 @@ elf_xtensa_allocate_local_got_size (stru + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_xtensa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_xtensa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_xtensa_link_hash_table *htab; + bfd *dynobj, *abfd; +@@ -1575,7 +1575,7 @@ elf_xtensa_size_dynamic_sections (bfd *o + + dynobj = elf_hash_table (info)->dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + srelgot = htab->elf.srelgot; + srelplt = htab->elf.srelplt; + +@@ -1780,8 +1780,7 @@ elf_xtensa_size_dynamic_sections (bfd *o + } + + static bool +-elf_xtensa_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_xtensa_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf_xtensa_link_hash_table *htab; + asection *tls_sec; +@@ -11544,8 +11543,8 @@ static const struct bfd_elf_special_sect + #define elf_backend_object_p elf_xtensa_object_p + #define elf_backend_reloc_type_class elf_xtensa_reloc_type_class + #define elf_backend_relocate_section elf_xtensa_relocate_section +-#define elf_backend_size_dynamic_sections elf_xtensa_size_dynamic_sections +-#define elf_backend_always_size_sections elf_xtensa_always_size_sections ++#define elf_backend_late_size_sections elf_xtensa_late_size_sections ++#define elf_backend_early_size_sections elf_xtensa_early_size_sections + #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_special_sections elf_xtensa_special_sections + #define elf_backend_action_discarded elf_xtensa_action_discarded +--- a/bfd/elf64-alpha.c ++++ b/bfd/elf64-alpha.c +@@ -2562,8 +2562,8 @@ elf64_alpha_size_plt_section (struct bfd + } + + static bool +-elf64_alpha_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_alpha_early_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *i; + struct alpha_elf_link_hash_table * htab; +@@ -2789,8 +2789,8 @@ elf64_alpha_size_rela_got_section (struc + /* Set the sizes of the dynamic sections. */ + + static bool +-elf64_alpha_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_alpha_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s; +@@ -2802,7 +2802,8 @@ elf64_alpha_size_dynamic_sections (bfd * + return false; + + dynobj = elf_hash_table(info)->dynobj; +- BFD_ASSERT(dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5448,10 +5449,10 @@ static const struct elf_size_info alpha_ + elf64_alpha_merge_symbol_attribute + #define elf_backend_copy_indirect_symbol \ + elf64_alpha_copy_indirect_symbol +-#define elf_backend_always_size_sections \ +- elf64_alpha_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- elf64_alpha_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ elf64_alpha_early_size_sections ++#define elf_backend_late_size_sections \ ++ elf64_alpha_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elf64-hppa.c ++++ b/bfd/elf64-hppa.c +@@ -176,9 +176,6 @@ static bool elf64_hppa_adjust_dynamic_sy + static bool elf64_hppa_mark_milli_and_exported_functions + (struct elf_link_hash_entry *, void *); + +-static bool elf64_hppa_size_dynamic_sections +- (bfd *, struct bfd_link_info *); +- + static int elf64_hppa_link_output_symbol_hook + (struct bfd_link_info *, const char *, Elf_Internal_Sym *, + asection *, struct elf_link_hash_entry *); +@@ -1520,7 +1517,7 @@ elf64_hppa_mark_milli_and_exported_funct + the contents of our special sections. */ + + static bool +-elf64_hppa_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++elf64_hppa_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct elf64_hppa_link_hash_table *hppa_info; + struct elf64_hppa_allocate_data data; +@@ -1534,7 +1531,8 @@ elf64_hppa_size_dynamic_sections (bfd *o + return false; + + dynobj = hppa_info->root.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + /* Mark each function this program exports so that we will allocate + space in the .opd section for each function's FPTR. If we are +@@ -3984,8 +3982,7 @@ const struct elf_size_info hppa64_elf_si + #define elf_backend_adjust_dynamic_symbol \ + elf64_hppa_adjust_dynamic_symbol + +-#define elf_backend_size_dynamic_sections \ +- elf64_hppa_size_dynamic_sections ++#define elf_backend_late_size_sections elf64_hppa_late_size_sections + + #define elf_backend_finish_dynamic_symbol \ + elf64_hppa_finish_dynamic_symbol +--- a/bfd/elf64-ia64-vms.c ++++ b/bfd/elf64-ia64-vms.c +@@ -2591,8 +2591,8 @@ elf64_ia64_adjust_dynamic_symbol (struct + } + + static bool +-elf64_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf64_ia64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf64_ia64_allocate_data data; + struct elf64_ia64_link_hash_table *ia64_info; +@@ -2601,11 +2601,12 @@ elf64_ia64_size_dynamic_sections (bfd *o + struct elf_link_hash_table *hash_table; + + hash_table = elf_hash_table (info); +- dynobj = hash_table->dynobj; + ia64_info = elf64_ia64_hash_table (info); + if (ia64_info == NULL) + return false; +- BFD_ASSERT(dynobj != NULL); ++ dynobj = hash_table->dynobj; ++ if (dynobj == NULL) ++ return true; + data.info = info; + + /* Allocate the GOT entries. */ +@@ -5488,8 +5489,8 @@ static const struct elf_size_info elf64_ + elf64_ia64_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elf64_ia64_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elf64_ia64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elf64_ia64_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elf64-mips.c ++++ b/bfd/elf64-mips.c +@@ -4748,10 +4748,10 @@ const struct elf_size_info mips_elf64_si + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections \ ++ _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections \ ++ _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf64-ppc.c ++++ b/bfd/elf64-ppc.c +@@ -119,8 +119,8 @@ static bfd_vma opd_entry_value + #define elf_backend_adjust_dynamic_symbol ppc64_elf_adjust_dynamic_symbol + #define elf_backend_hide_symbol ppc64_elf_hide_symbol + #define elf_backend_maybe_function_sym ppc64_elf_maybe_function_sym +-#define elf_backend_always_size_sections ppc64_elf_edit +-#define elf_backend_size_dynamic_sections ppc64_elf_size_dynamic_sections ++#define elf_backend_early_size_sections ppc64_elf_edit ++#define elf_backend_late_size_sections ppc64_elf_late_size_sections + #define elf_backend_hash_symbol ppc64_elf_hash_symbol + #define elf_backend_init_index_section _bfd_elf_init_2_index_sections + #define elf_backend_action_discarded ppc64_elf_action_discarded +@@ -10148,7 +10148,7 @@ allocate_dynrelocs (struct elf_link_hash + ((((v) & 0x3ffff0000ULL) << 16) | (v & 0xffff)) + #define HA34(v) ((v + (1ULL << 33)) >> 34) + +-/* Called via elf_link_hash_traverse from ppc64_elf_size_dynamic_sections ++/* Called via elf_link_hash_traverse from ppc64_elf_late_size_sections + to set up space for global entry stubs. These are put in glink, + after the branch table. */ + +@@ -10225,8 +10225,8 @@ size_global_entry_stubs (struct elf_link + /* Set the sizes of the dynamic sections. */ + + static bool +-ppc64_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++ppc64_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct ppc_link_hash_table *htab; + bfd *dynobj; +@@ -10241,7 +10241,7 @@ ppc64_elf_size_dynamic_sections (bfd *ou + + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +--- a/bfd/elf64-s390.c ++++ b/bfd/elf64-s390.c +@@ -1301,7 +1301,7 @@ elf_s390_gc_mark_hook (asection *sec, + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, +- or elf_s390_size_dynamic_sections if no dynamic sections will be ++ or elf_s390_late_size_sections if no dynamic sections will be + created (we're only linking static objects). */ + + static void +@@ -1714,8 +1714,8 @@ allocate_dynrelocs (struct elf_link_hash + /* Set the sizes of the dynamic sections. */ + + static bool +-elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_s390_link_hash_table *htab; + bfd *dynobj; +@@ -1729,7 +1729,7 @@ elf_s390_size_dynamic_sections (bfd *out + + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -3912,7 +3912,7 @@ const struct elf_size_info s390_elf64_si + #define elf_backend_gc_mark_hook elf_s390_gc_mark_hook + #define elf_backend_reloc_type_class elf_s390_reloc_type_class + #define elf_backend_relocate_section elf_s390_relocate_section +-#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections ++#define elf_backend_late_size_sections elf_s390_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_grok_prstatus elf_s390_grok_prstatus + #define elf_backend_grok_psinfo elf_s390_grok_psinfo +--- a/bfd/elf64-sparc.c ++++ b/bfd/elf64-sparc.c +@@ -953,8 +953,8 @@ const struct elf_size_info elf64_sparc_s + _bfd_sparc_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym \ + _bfd_sparc_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections \ +- _bfd_sparc_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_sparc_elf_late_size_sections + #define elf_backend_relocate_section \ + _bfd_sparc_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elf64-tilegx.c ++++ b/bfd/elf64-tilegx.c +@@ -106,7 +106,7 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I + #define elf_backend_check_relocs tilegx_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol tilegx_elf_adjust_dynamic_symbol + #define elf_backend_omit_section_dynsym tilegx_elf_omit_section_dynsym +-#define elf_backend_size_dynamic_sections tilegx_elf_size_dynamic_sections ++#define elf_backend_late_size_sections tilegx_elf_late_size_sections + #define elf_backend_relocate_section tilegx_elf_relocate_section + #define elf_backend_finish_dynamic_symbol tilegx_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections tilegx_elf_finish_dynamic_sections +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -2549,8 +2549,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struc + } + + static bool +-elf_x86_64_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elf_x86_64_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + bfd *abfd; + +@@ -2563,7 +2562,7 @@ elf_x86_64_always_size_sections (bfd *ou + elf_x86_64_scan_relocs)) + return false; + +- return _bfd_x86_elf_always_size_sections (output_bfd, info); ++ return _bfd_x86_elf_early_size_sections (output_bfd, info); + } + + /* Return the relocation value for @tpoff relocation +@@ -5638,7 +5637,7 @@ elf_x86_64_special_sections[]= + elf_x86_64_reloc_name_lookup + + #define elf_backend_relocs_compatible elf_x86_64_relocs_compatible +-#define elf_backend_always_size_sections elf_x86_64_always_size_sections ++#define elf_backend_early_size_sections elf_x86_64_early_size_sections + #define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections + #define elf_backend_finish_dynamic_sections elf_x86_64_finish_dynamic_sections + #define elf_backend_finish_dynamic_symbol elf_x86_64_finish_dynamic_symbol +--- a/bfd/elflink.c ++++ b/bfd/elflink.c +@@ -6676,8 +6676,8 @@ bfd_elf_size_dynamic_sections (bfd *outp + + /* The backend may have to create some sections regardless of whether + we're dynamic or not. */ +- if (bed->elf_backend_always_size_sections +- && ! (*bed->elf_backend_always_size_sections) (output_bfd, info)) ++ if (bed->elf_backend_early_size_sections ++ && !bed->elf_backend_early_size_sections (output_bfd, info)) + return false; + + dynobj = elf_hash_table (info)->dynobj; +@@ -7483,9 +7483,8 @@ NOTE: This behaviour is deprecated and w + + /* The backend must work out the sizes of all the other dynamic + sections. */ +- if (dynobj != NULL +- && bed->elf_backend_size_dynamic_sections != NULL +- && ! (*bed->elf_backend_size_dynamic_sections) (output_bfd, info)) ++ if (bed->elf_backend_late_size_sections != NULL ++ && !bed->elf_backend_late_size_sections (output_bfd, info)) + return false; + + if (dynobj != NULL && elf_hash_table (info)->dynamic_sections_created) +--- a/bfd/elfn32-mips.c ++++ b/bfd/elfn32-mips.c +@@ -4138,10 +4138,8 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_always_size_sections \ +- _bfd_mips_elf_always_size_sections +-#define elf_backend_size_dynamic_sections \ +- _bfd_mips_elf_size_dynamic_sections ++#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections ++#define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section + #define elf_backend_finish_dynamic_symbol \ +--- a/bfd/elfnn-aarch64.c ++++ b/bfd/elfnn-aarch64.c +@@ -112,7 +112,7 @@ + allocate space for one relocation on the slot. Record the GOT offset + for this symbol. + +- elfNN_aarch64_size_dynamic_sections () ++ elfNN_aarch64_late_size_sections () + + Iterate all input BFDS, look for in the local symbol data structure + constructed earlier for local TLS symbols and allocate them double +@@ -9175,8 +9175,8 @@ elfNN_aarch64_allocate_local_ifunc_dynre + though ! */ + + static bool +-elfNN_aarch64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elfNN_aarch64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_aarch64_link_hash_table *htab; + bfd *dynobj; +@@ -9187,7 +9187,8 @@ elfNN_aarch64_size_dynamic_sections (bfd + htab = elf_aarch64_hash_table ((info)); + dynobj = htab->root.dynobj; + +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -9589,8 +9590,8 @@ elfNN_aarch64_create_small_pltn_entry (s + _TLS_MODULE_BASE_, if needed. */ + + static bool +-elfNN_aarch64_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elfNN_aarch64_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *tls_sec; + +@@ -10323,8 +10324,8 @@ const struct elf_size_info elfNN_aarch64 + #define elf_backend_adjust_dynamic_symbol \ + elfNN_aarch64_adjust_dynamic_symbol + +-#define elf_backend_always_size_sections \ +- elfNN_aarch64_always_size_sections ++#define elf_backend_early_size_sections \ ++ elfNN_aarch64_early_size_sections + + #define elf_backend_check_relocs \ + elfNN_aarch64_check_relocs +@@ -10379,8 +10380,8 @@ const struct elf_size_info elfNN_aarch64 + #define elf_backend_modify_headers \ + elfNN_aarch64_modify_headers + +-#define elf_backend_size_dynamic_sections \ +- elfNN_aarch64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elfNN_aarch64_late_size_sections + + #define elf_backend_size_info \ + elfNN_aarch64_size_info +--- a/bfd/elfnn-ia64.c ++++ b/bfd/elfnn-ia64.c +@@ -2987,8 +2987,8 @@ elfNN_ia64_adjust_dynamic_symbol (struct + } + + static bool +-elfNN_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elfNN_ia64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elfNN_ia64_allocate_data data; + struct elfNN_ia64_link_hash_table *ia64_info; +@@ -2999,8 +2999,9 @@ elfNN_ia64_size_dynamic_sections (bfd *o + if (ia64_info == NULL) + return false; + dynobj = ia64_info->root.dynobj; ++ if (dynobj == NULL) ++ return true; + ia64_info->self_dtpmod_offset = (bfd_vma) -1; +- BFD_ASSERT(dynobj != NULL); + data.info = info; + + /* Set the contents of the .interp section to the interpreter. */ +@@ -5036,8 +5037,8 @@ ignore_errors (const char *fmt ATTRIBUTE + elfNN_ia64_check_relocs + #define elf_backend_adjust_dynamic_symbol \ + elfNN_ia64_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections \ +- elfNN_ia64_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elfNN_ia64_late_size_sections + #define elf_backend_omit_section_dynsym \ + _bfd_elf_omit_section_dynsym_all + #define elf_backend_relocate_section \ +--- a/bfd/elfnn-kvx.c ++++ b/bfd/elfnn-kvx.c +@@ -4033,8 +4033,8 @@ kvx_readonly_dynrelocs (struct elf_link_ + /* This is the most important function of all . Innocuosly named + though ! */ + static bool +-elfNN_kvx_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++elfNN_kvx_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct elf_kvx_link_hash_table *htab; + bfd *dynobj; +@@ -4044,8 +4044,8 @@ elfNN_kvx_size_dynamic_sections (bfd *ou + + htab = elf_kvx_hash_table ((info)); + dynobj = htab->root.dynobj; +- +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->root.dynamic_sections_created) + { +@@ -4359,8 +4359,7 @@ elfNN_kvx_create_small_pltn_entry (struc + _TLS_MODULE_BASE_, if needed. */ + + static bool +-elfNN_kvx_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++elfNN_kvx_early_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + asection *tls_sec; + +@@ -4715,8 +4714,8 @@ elfNN_kvx_plt_sym_val (bfd_vma i, const + #define elf_backend_adjust_dynamic_symbol \ + elfNN_kvx_adjust_dynamic_symbol + +-#define elf_backend_always_size_sections \ +- elfNN_kvx_always_size_sections ++#define elf_backend_early_size_sections \ ++ elfNN_kvx_early_size_sections + + #define elf_backend_check_relocs \ + elfNN_kvx_check_relocs +@@ -4759,8 +4758,8 @@ elfNN_kvx_plt_sym_val (bfd_vma i, const + #define elf_backend_reloc_type_class \ + elfNN_kvx_reloc_type_class + +-#define elf_backend_size_dynamic_sections \ +- elfNN_kvx_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ elfNN_kvx_late_size_sections + + #define elf_backend_can_refcount 1 + #define elf_backend_can_gc_sections 1 +--- a/bfd/elfnn-loongarch.c ++++ b/bfd/elfnn-loongarch.c +@@ -1731,8 +1731,8 @@ maybe_set_textrel (struct elf_link_hash_ + } + + static bool +-loongarch_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++loongarch_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct loongarch_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1742,7 +1742,8 @@ loongarch_elf_size_dynamic_sections (bfd + htab = loongarch_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (htab->elf.dynamic_sections_created) + { +@@ -5340,7 +5341,7 @@ elf_loongarch64_hash_symbol (struct elf_ + loongarch_elf_create_dynamic_sections + #define elf_backend_check_relocs loongarch_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol loongarch_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections loongarch_elf_size_dynamic_sections ++#define elf_backend_late_size_sections loongarch_elf_late_size_sections + #define elf_backend_relocate_section loongarch_elf_relocate_section + #define elf_backend_finish_dynamic_symbol loongarch_elf_finish_dynamic_symbol + #define elf_backend_output_arch_local_syms \ +--- a/bfd/elfnn-riscv.c ++++ b/bfd/elfnn-riscv.c +@@ -1482,7 +1482,7 @@ allocate_local_ifunc_dynrelocs (void **s + } + + static bool +-riscv_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) ++riscv_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) + { + struct riscv_elf_link_hash_table *htab; + bfd *dynobj; +@@ -1492,7 +1492,8 @@ riscv_elf_size_dynamic_sections (bfd *ou + htab = riscv_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -5570,7 +5571,7 @@ riscv_elf_merge_symbol_attribute (struct + #define elf_backend_create_dynamic_sections riscv_elf_create_dynamic_sections + #define elf_backend_check_relocs riscv_elf_check_relocs + #define elf_backend_adjust_dynamic_symbol riscv_elf_adjust_dynamic_symbol +-#define elf_backend_size_dynamic_sections riscv_elf_size_dynamic_sections ++#define elf_backend_late_size_sections riscv_elf_late_size_sections + #define elf_backend_relocate_section riscv_elf_relocate_section + #define elf_backend_finish_dynamic_symbol riscv_elf_finish_dynamic_symbol + #define elf_backend_finish_dynamic_sections riscv_elf_finish_dynamic_sections +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -9649,8 +9649,8 @@ _bfd_mips_elf_adjust_dynamic_symbol (str + check for any mips16 stub sections that we can discard. */ + + bool +-_bfd_mips_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_mips_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *sect; + struct mips_elf_link_hash_table *htab; +@@ -9993,8 +9993,8 @@ mips_elf_set_plt_sym_value (struct mips_ + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_mips_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_mips_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + bfd *dynobj; + asection *s, *sreldyn; +@@ -10004,7 +10004,8 @@ _bfd_mips_elf_size_dynamic_sections (bfd + htab = mips_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = elf_hash_table (info)->dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +@@ -14938,7 +14939,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_always_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_early_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf_External_ABIFlags_v0)); + + /* Skip this section later on (I don't think this currently +@@ -14997,7 +14998,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_always_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_early_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf32_External_RegInfo)); + + /* Skip this section later on (I don't think this currently +--- a/bfd/elfxx-mips.h ++++ b/bfd/elfxx-mips.h +@@ -67,9 +67,9 @@ extern bool _bfd_mips_elf_check_relocs + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); + extern bool _bfd_mips_elf_adjust_dynamic_symbol + (struct bfd_link_info *, struct elf_link_hash_entry *); +-extern bool _bfd_mips_elf_always_size_sections ++extern bool _bfd_mips_elf_early_size_sections + (bfd *, struct bfd_link_info *); +-extern bool _bfd_mips_elf_size_dynamic_sections ++extern bool _bfd_mips_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern int _bfd_mips_elf_relocate_section + (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, +--- a/bfd/elfxx-sparc.c ++++ b/bfd/elfxx-sparc.c +@@ -2381,8 +2381,8 @@ _bfd_sparc_elf_omit_section_dynsym (bfd + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_sparc_elf_size_dynamic_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_sparc_elf_late_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + struct _bfd_sparc_elf_link_hash_table *htab; + bfd *dynobj; +@@ -2392,7 +2392,8 @@ _bfd_sparc_elf_size_dynamic_sections (bf + htab = _bfd_sparc_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +--- a/bfd/elfxx-sparc.h ++++ b/bfd/elfxx-sparc.h +@@ -117,7 +117,7 @@ extern bool _bfd_sparc_elf_adjust_dynami + (struct bfd_link_info *, struct elf_link_hash_entry *); + extern bool _bfd_sparc_elf_omit_section_dynsym + (bfd *, struct bfd_link_info *, asection *); +-extern bool _bfd_sparc_elf_size_dynamic_sections ++extern bool _bfd_sparc_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern bool _bfd_sparc_elf_new_section_hook + (bfd *, asection *); +--- a/bfd/elfxx-target.h ++++ b/bfd/elfxx-target.h +@@ -487,11 +487,11 @@ + #ifndef elf_backend_adjust_dynamic_symbol + #define elf_backend_adjust_dynamic_symbol 0 + #endif +-#ifndef elf_backend_always_size_sections +-#define elf_backend_always_size_sections 0 ++#ifndef elf_backend_early_size_sections ++#define elf_backend_early_size_sections 0 + #endif +-#ifndef elf_backend_size_dynamic_sections +-#define elf_backend_size_dynamic_sections 0 ++#ifndef elf_backend_late_size_sections ++#define elf_backend_late_size_sections 0 + #endif + #ifndef elf_backend_strip_zero_sized_dynamic_sections + #define elf_backend_strip_zero_sized_dynamic_sections 0 +@@ -853,8 +853,8 @@ static const struct elf_backend_data elf + elf_backend_check_directives, + elf_backend_notice_as_needed, + elf_backend_adjust_dynamic_symbol, +- elf_backend_always_size_sections, +- elf_backend_size_dynamic_sections, ++ elf_backend_early_size_sections, ++ elf_backend_late_size_sections, + elf_backend_strip_zero_sized_dynamic_sections, + elf_backend_init_index_section, + elf_backend_relocate_section, +--- a/bfd/elfxx-tilegx.c ++++ b/bfd/elfxx-tilegx.c +@@ -2430,8 +2430,8 @@ tilegx_elf_omit_section_dynsym (bfd *out + } + + bool +-tilegx_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, +- struct bfd_link_info *info) ++tilegx_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, ++ struct bfd_link_info *info) + { + struct tilegx_elf_link_hash_table *htab; + bfd *dynobj; +@@ -2441,7 +2441,8 @@ tilegx_elf_size_dynamic_sections (bfd *o + htab = tilegx_elf_hash_table (info); + BFD_ASSERT (htab != NULL); + dynobj = htab->elf.dynobj; +- BFD_ASSERT (dynobj != NULL); ++ if (dynobj == NULL) ++ return true; + + if (elf_hash_table (info)->dynamic_sections_created) + { +--- a/bfd/elfxx-tilegx.h ++++ b/bfd/elfxx-tilegx.h +@@ -57,7 +57,7 @@ tilegx_elf_omit_section_dynsym (bfd *, + asection *); + + extern bool +-tilegx_elf_size_dynamic_sections (bfd *, struct bfd_link_info *); ++tilegx_elf_late_size_sections (bfd *, struct bfd_link_info *); + + extern int + tilegx_elf_relocate_section (bfd *, struct bfd_link_info *, +--- a/bfd/elfxx-x86.c ++++ b/bfd/elfxx-x86.c +@@ -2241,7 +2241,7 @@ _bfd_elf_x86_valid_reloc_p (asection *in + /* Set the sizes of the dynamic sections. */ + + bool +-_bfd_x86_elf_size_dynamic_sections (bfd *output_bfd, ++_bfd_x86_elf_late_size_sections (bfd *output_bfd, + struct bfd_link_info *info) + { + struct elf_x86_link_hash_table *htab; +@@ -2257,7 +2257,7 @@ _bfd_x86_elf_size_dynamic_sections (bfd + return false; + dynobj = htab->elf.dynobj; + if (dynobj == NULL) +- abort (); ++ return true; + + /* Set up .got offsets for local syms, and space for local dynamic + relocs. */ +@@ -3003,8 +3003,8 @@ _bfd_x86_elf_finish_dynamic_sections (bf + + + bool +-_bfd_x86_elf_always_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) ++_bfd_x86_elf_early_size_sections (bfd *output_bfd, ++ struct bfd_link_info *info) + { + asection *tls_sec = elf_hash_table (info)->tls_sec; + +--- a/bfd/elfxx-x86.h ++++ b/bfd/elfxx-x86.h +@@ -850,13 +850,13 @@ extern bool _bfd_elf_x86_valid_reloc_p + const Elf_Internal_Rela *, struct elf_link_hash_entry *, + Elf_Internal_Sym *, Elf_Internal_Shdr *, bool *); + +-extern bool _bfd_x86_elf_size_dynamic_sections ++extern bool _bfd_x86_elf_late_size_sections + (bfd *, struct bfd_link_info *); + + extern struct elf_x86_link_hash_table *_bfd_x86_elf_finish_dynamic_sections + (bfd *, struct bfd_link_info *); + +-extern bool _bfd_x86_elf_always_size_sections ++extern bool _bfd_x86_elf_early_size_sections + (bfd *, struct bfd_link_info *); + + extern void _bfd_x86_elf_merge_symbol_attribute +@@ -928,8 +928,8 @@ extern void _bfd_x86_elf_link_report_rel + + #define elf_backend_check_relocs \ + _bfd_x86_elf_check_relocs +-#define elf_backend_size_dynamic_sections \ +- _bfd_x86_elf_size_dynamic_sections ++#define elf_backend_late_size_sections \ ++ _bfd_x86_elf_late_size_sections + #define elf_backend_merge_symbol_attribute \ + _bfd_x86_elf_merge_symbol_attribute + #define elf_backend_copy_indirect_symbol \ +--- a/ld/emultempl/vms.em ++++ b/ld/emultempl/vms.em +@@ -197,10 +197,9 @@ gld${EMULATION_NAME}_before_allocation ( + + /* The backend must work out the sizes of all the other dynamic + sections. */ +- if (elf_hash_table (&link_info)->dynamic_sections_created +- && bed->elf_backend_size_dynamic_sections +- && ! (*bed->elf_backend_size_dynamic_sections) (link_info.output_bfd, +- &link_info)) ++ if (bed->elf_backend_late_size_sections ++ && !bed->elf_backend_late_size_sections (link_info.output_bfd, ++ &link_info)) + einfo (_("%F%P: failed to set dynamic section sizes: %E\n")); + + before_allocation_default (); diff --git a/toolchain/binutils/patches/2.42/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch b/toolchain/binutils/patches/2.42/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch new file mode 100644 index 00000000000000..49381a4fa95c42 --- /dev/null +++ b/toolchain/binutils/patches/2.42/002-PR-30569-delete-_bfd_mips_elf_early_size_sections.patch @@ -0,0 +1,218 @@ +From 3c6c32951e292a51ede70b8087bb0308d7dbc4fc Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Thu, 28 Mar 2024 20:33:32 +1030 +Subject: [PATCH 2/2] PR 30569, delete _bfd_mips_elf_early_size_sections + +PR30569 was triggered by a patch of mine 6540edd52cc0 moving the call +to always_size_sections in bfd_elf_size_dynamic_sections earlier, made +to support the x86 DT_RELR implementation. This broke mips16 code +handling stubs when --export-dynamic is passed to the linker, because +numerous symbols then became dynamic after always_size_sections. The +mips backend fiddles with symbols in its always_size_sections. Maciej +in 902e9fc76a0e had moved the call to always_size_sections to after +the export-dynamic code. Prior to that, Nathan in 04c3a75556c0 moved +it before the exec stack code, back to the start of +bfd_elf_size_dynamic_sections which was where Ian put it originally +in ff12f303355b. So the call has moved around a little. I'm leaving +it where it is, and instead calling mips_elf_check_symbols from +late_size_sections (the old size_dynamic_sections) which is now always +called. In fact, the whole of _bfd_mips_elf_early_size_sections can +be merged into _bfd_mips_elf_late_size_sections. +--- + bfd/elf32-mips.c | 1 - + bfd/elf64-mips.c | 2 -- + bfd/elfn32-mips.c | 1 - + bfd/elfxx-mips.c | 84 +++++++++++++++++++---------------------------- + bfd/elfxx-mips.h | 2 -- + 5 files changed, 34 insertions(+), 56 deletions(-) + +--- a/bfd/elf32-mips.c ++++ b/bfd/elf32-mips.c +@@ -2537,7 +2537,6 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section +--- a/bfd/elf64-mips.c ++++ b/bfd/elf64-mips.c +@@ -4748,8 +4748,6 @@ const struct elf_size_info mips_elf64_si + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections \ +- _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections \ + _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section +--- a/bfd/elfn32-mips.c ++++ b/bfd/elfn32-mips.c +@@ -4138,7 +4138,6 @@ static const struct ecoff_debug_swap mip + #define elf_backend_get_target_dtag _bfd_mips_elf_get_target_dtag + #define elf_backend_adjust_dynamic_symbol \ + _bfd_mips_elf_adjust_dynamic_symbol +-#define elf_backend_early_size_sections _bfd_mips_elf_early_size_sections + #define elf_backend_late_size_sections _bfd_mips_elf_late_size_sections + #define elf_backend_init_index_section _bfd_elf_init_1_index_section + #define elf_backend_relocate_section _bfd_mips_elf_relocate_section +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -9644,48 +9644,6 @@ _bfd_mips_elf_adjust_dynamic_symbol (str + return _bfd_elf_adjust_dynamic_copy (info, h, s); + } + +-/* This function is called after all the input files have been read, +- and the input sections have been assigned to output sections. We +- check for any mips16 stub sections that we can discard. */ +- +-bool +-_bfd_mips_elf_early_size_sections (bfd *output_bfd, +- struct bfd_link_info *info) +-{ +- asection *sect; +- struct mips_elf_link_hash_table *htab; +- struct mips_htab_traverse_info hti; +- +- htab = mips_elf_hash_table (info); +- BFD_ASSERT (htab != NULL); +- +- /* The .reginfo section has a fixed size. */ +- sect = bfd_get_section_by_name (output_bfd, ".reginfo"); +- if (sect != NULL) +- { +- bfd_set_section_size (sect, sizeof (Elf32_External_RegInfo)); +- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; +- } +- +- /* The .MIPS.abiflags section has a fixed size. */ +- sect = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags"); +- if (sect != NULL) +- { +- bfd_set_section_size (sect, sizeof (Elf_External_ABIFlags_v0)); +- sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; +- } +- +- hti.info = info; +- hti.output_bfd = output_bfd; +- hti.error = false; +- mips_elf_link_hash_traverse (mips_elf_hash_table (info), +- mips_elf_check_symbols, &hti); +- if (hti.error) +- return false; +- +- return true; +-} +- + /* If the link uses a GOT, lay it out and work out its size. */ + + static bool +@@ -9990,7 +9948,8 @@ mips_elf_set_plt_sym_value (struct mips_ + return true; + } + +-/* Set the sizes of the dynamic sections. */ ++/* Set the sizes of the dynamic sections, some mips non-dynamic sections, ++ and check for any mips16 stub sections that we can discard. */ + + bool + _bfd_mips_elf_late_size_sections (bfd *output_bfd, +@@ -10000,14 +9959,39 @@ _bfd_mips_elf_late_size_sections (bfd *o + asection *s, *sreldyn; + bool reltext; + struct mips_elf_link_hash_table *htab; ++ struct mips_htab_traverse_info hti; + + htab = mips_elf_hash_table (info); + BFD_ASSERT (htab != NULL); +- dynobj = elf_hash_table (info)->dynobj; ++ ++ /* The .reginfo section has a fixed size. */ ++ s = bfd_get_section_by_name (output_bfd, ".reginfo"); ++ if (s != NULL) ++ { ++ bfd_set_section_size (s, sizeof (Elf32_External_RegInfo)); ++ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; ++ } ++ ++ /* The .MIPS.abiflags section has a fixed size. */ ++ s = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags"); ++ if (s != NULL) ++ { ++ bfd_set_section_size (s, sizeof (Elf_External_ABIFlags_v0)); ++ s->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; ++ } ++ ++ hti.info = info; ++ hti.output_bfd = output_bfd; ++ hti.error = false; ++ mips_elf_link_hash_traverse (htab, mips_elf_check_symbols, &hti); ++ if (hti.error) ++ return false; ++ ++ dynobj = htab->root.dynobj; + if (dynobj == NULL) + return true; + +- if (elf_hash_table (info)->dynamic_sections_created) ++ if (htab->root.dynamic_sections_created) + { + /* Set the contents of the .interp section to the interpreter. */ + if (bfd_link_executable (info) && !info->nointerp) +@@ -10147,7 +10131,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + } + else if (bfd_link_executable (info) +- && ! mips_elf_hash_table (info)->use_rld_obj_head ++ && !htab->use_rld_obj_head + && startswith (name, ".rld_map")) + { + /* We add a room for __rld_map. It will be filled in by the +@@ -10156,7 +10140,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + else if (SGI_COMPAT (output_bfd) + && startswith (name, ".compact_rel")) +- s->size += mips_elf_hash_table (info)->compact_rel_size; ++ s->size += htab->compact_rel_size; + else if (s == htab->root.splt) + { + /* If the last PLT entry has a branch delay slot, allocate +@@ -10196,7 +10180,7 @@ _bfd_mips_elf_late_size_sections (bfd *o + } + } + +- if (elf_hash_table (info)->dynamic_sections_created) ++ if (htab->root.dynamic_sections_created) + { + /* Add some entries to the .dynamic section. We fill in the + values later, in _bfd_mips_elf_finish_dynamic_sections, but we +@@ -14939,7 +14923,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_early_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_late_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf_External_ABIFlags_v0)); + + /* Skip this section later on (I don't think this currently +@@ -14998,7 +14982,7 @@ _bfd_mips_elf_final_link (bfd *abfd, str + input_section->flags &= ~SEC_HAS_CONTENTS; + } + +- /* Size has been set in _bfd_mips_elf_early_size_sections. */ ++ /* Size has been set in _bfd_mips_elf_late_size_sections. */ + BFD_ASSERT(o->size == sizeof (Elf32_External_RegInfo)); + + /* Skip this section later on (I don't think this currently +--- a/bfd/elfxx-mips.h ++++ b/bfd/elfxx-mips.h +@@ -67,8 +67,6 @@ extern bool _bfd_mips_elf_check_relocs + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); + extern bool _bfd_mips_elf_adjust_dynamic_symbol + (struct bfd_link_info *, struct elf_link_hash_entry *); +-extern bool _bfd_mips_elf_early_size_sections +- (bfd *, struct bfd_link_info *); + extern bool _bfd_mips_elf_late_size_sections + (bfd *, struct bfd_link_info *); + extern int _bfd_mips_elf_relocate_section diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index 9156f9c2635684..85abbdabb7ac54 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -2,7 +2,7 @@ choice prompt "GCC compiler Version" if TOOLCHAINOPTS - default GCC_USE_VERSION_12 + default GCC_USE_VERSION_13 help Select the version of gcc you wish to use. diff --git a/toolchain/gcc/Config.version b/toolchain/gcc/Config.version index a00685ffa3f295..54bb4445b3d127 100644 --- a/toolchain/gcc/Config.version +++ b/toolchain/gcc/Config.version @@ -2,13 +2,13 @@ config GCC_VERSION_11 default y if GCC_USE_VERSION_11 bool -config GCC_VERSION_13 - default y if GCC_USE_VERSION_13 +config GCC_VERSION_12 + default y if GCC_USE_VERSION_12 bool config GCC_VERSION string default EXTERNAL_GCC_VERSION if EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN default "11.3.0" if GCC_VERSION_11 - default "13.2.0" if GCC_VERSION_13 - default "12.3.0" + default "12.3.0" if GCC_VERSION_12 + default "13.2.0" diff --git a/toolchain/gcc/patches-11.x/020-Include-safe-ctype.h-after-C-standard-headers-to-avo.patch b/toolchain/gcc/patches-11.x/020-Include-safe-ctype.h-after-C-standard-headers-to-avo.patch new file mode 100644 index 00000000000000..a17c56b272db22 --- /dev/null +++ b/toolchain/gcc/patches-11.x/020-Include-safe-ctype.h-after-C-standard-headers-to-avo.patch @@ -0,0 +1,139 @@ +From 9970b576b7e4ae337af1268395ff221348c4b34a Mon Sep 17 00:00:00 2001 +From: Francois-Xavier Coudert +Date: Thu, 7 Mar 2024 14:36:03 +0100 +Subject: [PATCH] Include safe-ctype.h after C++ standard headers, to avoid + over-poisoning + +When building gcc's C++ sources against recent libc++, the poisoning of +the ctype macros due to including safe-ctype.h before including C++ +standard headers such as , , etc, causes many compilation +errors, similar to: + + In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23: + In file included from /home/dim/src/gcc/master/gcc/system.h:233: + In file included from /usr/include/c++/v1/vector:321: + In file included from + /usr/include/c++/v1/__format/formatter_bool.h:20: + In file included from + /usr/include/c++/v1/__format/formatter_integral.h:32: + In file included from /usr/include/c++/v1/locale:202: + /usr/include/c++/v1/__locale:546:5: error: '__abi_tag__' attribute + only applies to structs, variables, functions, and namespaces + 546 | _LIBCPP_INLINE_VISIBILITY + | ^ + /usr/include/c++/v1/__config:813:37: note: expanded from macro + '_LIBCPP_INLINE_VISIBILITY' + 813 | # define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI + | ^ + /usr/include/c++/v1/__config:792:26: note: expanded from macro + '_LIBCPP_HIDE_FROM_ABI' + 792 | + __attribute__((__abi_tag__(_LIBCPP_TOSTRING( + _LIBCPP_VERSIONED_IDENTIFIER)))) + | ^ + In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23: + In file included from /home/dim/src/gcc/master/gcc/system.h:233: + In file included from /usr/include/c++/v1/vector:321: + In file included from + /usr/include/c++/v1/__format/formatter_bool.h:20: + In file included from + /usr/include/c++/v1/__format/formatter_integral.h:32: + In file included from /usr/include/c++/v1/locale:202: + /usr/include/c++/v1/__locale:547:37: error: expected ';' at end of + declaration list + 547 | char_type toupper(char_type __c) const + | ^ + /usr/include/c++/v1/__locale:553:48: error: too many arguments + provided to function-like macro invocation + 553 | const char_type* toupper(char_type* __low, const + char_type* __high) const + | ^ + /home/dim/src/gcc/master/gcc/../include/safe-ctype.h:146:9: note: + macro 'toupper' defined here + 146 | #define toupper(c) do_not_use_toupper_with_safe_ctype + | ^ + +This is because libc++ uses different transitive includes than +libstdc++, and some of those transitive includes pull in various ctype +declarations (typically via ). + +There was already a special case for including before +safe-ctype.h, so move the rest of the C++ standard header includes to +the same location, to fix the problem. + +gcc/ChangeLog: + + * system.h: Include safe-ctype.h after C++ standard headers. + +Signed-off-by: Dimitry Andric +--- + gcc/system.h | 39 ++++++++++++++++++--------------------- + 1 file changed, 18 insertions(+), 21 deletions(-) + +diff --git a/gcc/system.h b/gcc/system.h +index b0edab02885..ab29fc19776 100644 +--- a/gcc/system.h ++++ b/gcc/system.h +@@ -194,27 +194,8 @@ extern int fprintf_unlocked (FILE *, const char *, ...); + #undef fread_unlocked + #undef fwrite_unlocked + +-/* Include before "safe-ctype.h" to avoid GCC poisoning +- the ctype macros through safe-ctype.h */ +- +-#ifdef __cplusplus +-#ifdef INCLUDE_STRING +-# include +-#endif +-#endif +- +-/* There are an extraordinary number of issues with . +- The last straw is that it varies with the locale. Use libiberty's +- replacement instead. */ +-#include "safe-ctype.h" +- +-#include +- +-#include +- +-#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO +-extern int errno; +-#endif ++/* Include C++ standard headers before "safe-ctype.h" to avoid GCC ++ poisoning the ctype macros through safe-ctype.h */ + + #ifdef __cplusplus + #if defined (INCLUDE_ALGORITHM) || !defined (HAVE_SWAP_IN_UTILITY) +@@ -229,6 +210,9 @@ extern int errno; + #ifdef INCLUDE_SET + # include + #endif ++#ifdef INCLUDE_STRING ++# include ++#endif + #ifdef INCLUDE_VECTOR + # include + #endif +@@ -244,6 +228,19 @@ extern int errno; + # include + #endif + ++/* There are an extraordinary number of issues with . ++ The last straw is that it varies with the locale. Use libiberty's ++ replacement instead. */ ++#include "safe-ctype.h" ++ ++#include ++ ++#include ++ ++#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO ++extern int errno; ++#endif ++ + /* Some of glibc's string inlines cause warnings. Plus we'd rather + rely on (and therefore test) GCC's string builtins. */ + #define __NO_STRING_INLINES +-- +2.39.3 + diff --git a/toolchain/gcc/patches-12.x/020-Include-safe-ctype.h-after-C-standard-headers-to-avo.patch b/toolchain/gcc/patches-12.x/020-Include-safe-ctype.h-after-C-standard-headers-to-avo.patch new file mode 100644 index 00000000000000..986d19057f38e4 --- /dev/null +++ b/toolchain/gcc/patches-12.x/020-Include-safe-ctype.h-after-C-standard-headers-to-avo.patch @@ -0,0 +1,139 @@ +From 9970b576b7e4ae337af1268395ff221348c4b34a Mon Sep 17 00:00:00 2001 +From: Francois-Xavier Coudert +Date: Thu, 7 Mar 2024 14:36:03 +0100 +Subject: [PATCH] Include safe-ctype.h after C++ standard headers, to avoid + over-poisoning + +When building gcc's C++ sources against recent libc++, the poisoning of +the ctype macros due to including safe-ctype.h before including C++ +standard headers such as , , etc, causes many compilation +errors, similar to: + + In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23: + In file included from /home/dim/src/gcc/master/gcc/system.h:233: + In file included from /usr/include/c++/v1/vector:321: + In file included from + /usr/include/c++/v1/__format/formatter_bool.h:20: + In file included from + /usr/include/c++/v1/__format/formatter_integral.h:32: + In file included from /usr/include/c++/v1/locale:202: + /usr/include/c++/v1/__locale:546:5: error: '__abi_tag__' attribute + only applies to structs, variables, functions, and namespaces + 546 | _LIBCPP_INLINE_VISIBILITY + | ^ + /usr/include/c++/v1/__config:813:37: note: expanded from macro + '_LIBCPP_INLINE_VISIBILITY' + 813 | # define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI + | ^ + /usr/include/c++/v1/__config:792:26: note: expanded from macro + '_LIBCPP_HIDE_FROM_ABI' + 792 | + __attribute__((__abi_tag__(_LIBCPP_TOSTRING( + _LIBCPP_VERSIONED_IDENTIFIER)))) + | ^ + In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23: + In file included from /home/dim/src/gcc/master/gcc/system.h:233: + In file included from /usr/include/c++/v1/vector:321: + In file included from + /usr/include/c++/v1/__format/formatter_bool.h:20: + In file included from + /usr/include/c++/v1/__format/formatter_integral.h:32: + In file included from /usr/include/c++/v1/locale:202: + /usr/include/c++/v1/__locale:547:37: error: expected ';' at end of + declaration list + 547 | char_type toupper(char_type __c) const + | ^ + /usr/include/c++/v1/__locale:553:48: error: too many arguments + provided to function-like macro invocation + 553 | const char_type* toupper(char_type* __low, const + char_type* __high) const + | ^ + /home/dim/src/gcc/master/gcc/../include/safe-ctype.h:146:9: note: + macro 'toupper' defined here + 146 | #define toupper(c) do_not_use_toupper_with_safe_ctype + | ^ + +This is because libc++ uses different transitive includes than +libstdc++, and some of those transitive includes pull in various ctype +declarations (typically via ). + +There was already a special case for including before +safe-ctype.h, so move the rest of the C++ standard header includes to +the same location, to fix the problem. + +gcc/ChangeLog: + + * system.h: Include safe-ctype.h after C++ standard headers. + +Signed-off-by: Dimitry Andric +--- + gcc/system.h | 39 ++++++++++++++++++--------------------- + 1 file changed, 18 insertions(+), 21 deletions(-) + +diff --git a/gcc/system.h b/gcc/system.h +index b0edab02885..ab29fc19776 100644 +--- a/gcc/system.h ++++ b/gcc/system.h +@@ -194,27 +194,8 @@ extern int fprintf_unlocked (FILE *, const char *, ...); + #undef fread_unlocked + #undef fwrite_unlocked + +-/* Include before "safe-ctype.h" to avoid GCC poisoning +- the ctype macros through safe-ctype.h */ +- +-#ifdef __cplusplus +-#ifdef INCLUDE_STRING +-# include +-#endif +-#endif +- +-/* There are an extraordinary number of issues with . +- The last straw is that it varies with the locale. Use libiberty's +- replacement instead. */ +-#include "safe-ctype.h" +- +-#include +- +-#include +- +-#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO +-extern int errno; +-#endif ++/* Include C++ standard headers before "safe-ctype.h" to avoid GCC ++ poisoning the ctype macros through safe-ctype.h */ + + #ifdef __cplusplus + #if defined (INCLUDE_ALGORITHM) || !defined (HAVE_SWAP_IN_UTILITY) +@@ -229,6 +210,9 @@ extern int errno; + #ifdef INCLUDE_SET + # include + #endif ++#ifdef INCLUDE_STRING ++# include ++#endif + #ifdef INCLUDE_VECTOR + # include + #endif +@@ -245,6 +229,19 @@ extern int errno; + # include + #endif + ++/* There are an extraordinary number of issues with . ++ The last straw is that it varies with the locale. Use libiberty's ++ replacement instead. */ ++#include "safe-ctype.h" ++ ++#include ++ ++#include ++ ++#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO ++extern int errno; ++#endif ++ + /* Some of glibc's string inlines cause warnings. Plus we'd rather + rely on (and therefore test) GCC's string builtins. */ + #define __NO_STRING_INLINES +-- +2.39.3 + diff --git a/toolchain/gcc/patches-12.x/021-libcc1-fix-vector-include.patch b/toolchain/gcc/patches-12.x/021-libcc1-fix-vector-include.patch new file mode 100644 index 00000000000000..b6b15cd1c66f28 --- /dev/null +++ b/toolchain/gcc/patches-12.x/021-libcc1-fix-vector-include.patch @@ -0,0 +1,65 @@ +From 5213047b1d50af63dfabb5e5649821a6cb157e33 Mon Sep 17 00:00:00 2001 +From: Francois-Xavier Coudert +Date: Sat, 16 Mar 2024 09:50:00 +0100 +Subject: [PATCH] libcc1: fix include + +Use INCLUDE_VECTOR before including system.h, instead of directly +including , to avoid running into poisoned identifiers. + +Signed-off-by: Dimitry Andric + +libcc1/ChangeLog: + + PR middle-end/111632 + * libcc1plugin.cc: Fix include. + * libcp1plugin.cc: Fix include. +--- + libcc1/libcc1plugin.cc | 3 +-- + libcc1/libcp1plugin.cc | 3 +-- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc +index 72d17c3b81c..e64847466f4 100644 +--- a/libcc1/libcc1plugin.cc ++++ b/libcc1/libcc1plugin.cc +@@ -32,6 +32,7 @@ + #undef PACKAGE_VERSION + + #define INCLUDE_MEMORY ++#define INCLUDE_VECTOR + #include "gcc-plugin.h" + #include "system.h" + #include "coretypes.h" +@@ -69,8 +70,6 @@ + #include "gcc-c-interface.h" + #include "context.hh" + +-#include +- + using namespace cc1_plugin; + + +diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc +index 0eff7c68d29..da68c5d0ac1 100644 +--- a/libcc1/libcp1plugin.cc ++++ b/libcc1/libcp1plugin.cc +@@ -33,6 +33,7 @@ + #undef PACKAGE_VERSION + + #define INCLUDE_MEMORY ++#define INCLUDE_VECTOR + #include "gcc-plugin.h" + #include "system.h" + #include "coretypes.h" +@@ -71,8 +72,6 @@ + #include "rpc.hh" + #include "context.hh" + +-#include +- + using namespace cc1_plugin; + + +-- +2.39.3 + diff --git a/toolchain/gcc/patches-13.x/020-Include-safe-ctype.h-after-C-standard-headers-to-avo.patch b/toolchain/gcc/patches-13.x/020-Include-safe-ctype.h-after-C-standard-headers-to-avo.patch new file mode 100644 index 00000000000000..986d19057f38e4 --- /dev/null +++ b/toolchain/gcc/patches-13.x/020-Include-safe-ctype.h-after-C-standard-headers-to-avo.patch @@ -0,0 +1,139 @@ +From 9970b576b7e4ae337af1268395ff221348c4b34a Mon Sep 17 00:00:00 2001 +From: Francois-Xavier Coudert +Date: Thu, 7 Mar 2024 14:36:03 +0100 +Subject: [PATCH] Include safe-ctype.h after C++ standard headers, to avoid + over-poisoning + +When building gcc's C++ sources against recent libc++, the poisoning of +the ctype macros due to including safe-ctype.h before including C++ +standard headers such as , , etc, causes many compilation +errors, similar to: + + In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23: + In file included from /home/dim/src/gcc/master/gcc/system.h:233: + In file included from /usr/include/c++/v1/vector:321: + In file included from + /usr/include/c++/v1/__format/formatter_bool.h:20: + In file included from + /usr/include/c++/v1/__format/formatter_integral.h:32: + In file included from /usr/include/c++/v1/locale:202: + /usr/include/c++/v1/__locale:546:5: error: '__abi_tag__' attribute + only applies to structs, variables, functions, and namespaces + 546 | _LIBCPP_INLINE_VISIBILITY + | ^ + /usr/include/c++/v1/__config:813:37: note: expanded from macro + '_LIBCPP_INLINE_VISIBILITY' + 813 | # define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI + | ^ + /usr/include/c++/v1/__config:792:26: note: expanded from macro + '_LIBCPP_HIDE_FROM_ABI' + 792 | + __attribute__((__abi_tag__(_LIBCPP_TOSTRING( + _LIBCPP_VERSIONED_IDENTIFIER)))) + | ^ + In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23: + In file included from /home/dim/src/gcc/master/gcc/system.h:233: + In file included from /usr/include/c++/v1/vector:321: + In file included from + /usr/include/c++/v1/__format/formatter_bool.h:20: + In file included from + /usr/include/c++/v1/__format/formatter_integral.h:32: + In file included from /usr/include/c++/v1/locale:202: + /usr/include/c++/v1/__locale:547:37: error: expected ';' at end of + declaration list + 547 | char_type toupper(char_type __c) const + | ^ + /usr/include/c++/v1/__locale:553:48: error: too many arguments + provided to function-like macro invocation + 553 | const char_type* toupper(char_type* __low, const + char_type* __high) const + | ^ + /home/dim/src/gcc/master/gcc/../include/safe-ctype.h:146:9: note: + macro 'toupper' defined here + 146 | #define toupper(c) do_not_use_toupper_with_safe_ctype + | ^ + +This is because libc++ uses different transitive includes than +libstdc++, and some of those transitive includes pull in various ctype +declarations (typically via ). + +There was already a special case for including before +safe-ctype.h, so move the rest of the C++ standard header includes to +the same location, to fix the problem. + +gcc/ChangeLog: + + * system.h: Include safe-ctype.h after C++ standard headers. + +Signed-off-by: Dimitry Andric +--- + gcc/system.h | 39 ++++++++++++++++++--------------------- + 1 file changed, 18 insertions(+), 21 deletions(-) + +diff --git a/gcc/system.h b/gcc/system.h +index b0edab02885..ab29fc19776 100644 +--- a/gcc/system.h ++++ b/gcc/system.h +@@ -194,27 +194,8 @@ extern int fprintf_unlocked (FILE *, const char *, ...); + #undef fread_unlocked + #undef fwrite_unlocked + +-/* Include before "safe-ctype.h" to avoid GCC poisoning +- the ctype macros through safe-ctype.h */ +- +-#ifdef __cplusplus +-#ifdef INCLUDE_STRING +-# include +-#endif +-#endif +- +-/* There are an extraordinary number of issues with . +- The last straw is that it varies with the locale. Use libiberty's +- replacement instead. */ +-#include "safe-ctype.h" +- +-#include +- +-#include +- +-#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO +-extern int errno; +-#endif ++/* Include C++ standard headers before "safe-ctype.h" to avoid GCC ++ poisoning the ctype macros through safe-ctype.h */ + + #ifdef __cplusplus + #if defined (INCLUDE_ALGORITHM) || !defined (HAVE_SWAP_IN_UTILITY) +@@ -229,6 +210,9 @@ extern int errno; + #ifdef INCLUDE_SET + # include + #endif ++#ifdef INCLUDE_STRING ++# include ++#endif + #ifdef INCLUDE_VECTOR + # include + #endif +@@ -245,6 +229,19 @@ extern int errno; + # include + #endif + ++/* There are an extraordinary number of issues with . ++ The last straw is that it varies with the locale. Use libiberty's ++ replacement instead. */ ++#include "safe-ctype.h" ++ ++#include ++ ++#include ++ ++#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO ++extern int errno; ++#endif ++ + /* Some of glibc's string inlines cause warnings. Plus we'd rather + rely on (and therefore test) GCC's string builtins. */ + #define __NO_STRING_INLINES +-- +2.39.3 + diff --git a/toolchain/gcc/patches-13.x/021-libcc1-fix-vector-include.patch b/toolchain/gcc/patches-13.x/021-libcc1-fix-vector-include.patch new file mode 100644 index 00000000000000..b6b15cd1c66f28 --- /dev/null +++ b/toolchain/gcc/patches-13.x/021-libcc1-fix-vector-include.patch @@ -0,0 +1,65 @@ +From 5213047b1d50af63dfabb5e5649821a6cb157e33 Mon Sep 17 00:00:00 2001 +From: Francois-Xavier Coudert +Date: Sat, 16 Mar 2024 09:50:00 +0100 +Subject: [PATCH] libcc1: fix include + +Use INCLUDE_VECTOR before including system.h, instead of directly +including , to avoid running into poisoned identifiers. + +Signed-off-by: Dimitry Andric + +libcc1/ChangeLog: + + PR middle-end/111632 + * libcc1plugin.cc: Fix include. + * libcp1plugin.cc: Fix include. +--- + libcc1/libcc1plugin.cc | 3 +-- + libcc1/libcp1plugin.cc | 3 +-- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc +index 72d17c3b81c..e64847466f4 100644 +--- a/libcc1/libcc1plugin.cc ++++ b/libcc1/libcc1plugin.cc +@@ -32,6 +32,7 @@ + #undef PACKAGE_VERSION + + #define INCLUDE_MEMORY ++#define INCLUDE_VECTOR + #include "gcc-plugin.h" + #include "system.h" + #include "coretypes.h" +@@ -69,8 +70,6 @@ + #include "gcc-c-interface.h" + #include "context.hh" + +-#include +- + using namespace cc1_plugin; + + +diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc +index 0eff7c68d29..da68c5d0ac1 100644 +--- a/libcc1/libcp1plugin.cc ++++ b/libcc1/libcp1plugin.cc +@@ -33,6 +33,7 @@ + #undef PACKAGE_VERSION + + #define INCLUDE_MEMORY ++#define INCLUDE_VECTOR + #include "gcc-plugin.h" + #include "system.h" + #include "coretypes.h" +@@ -71,8 +72,6 @@ + #include "rpc.hh" + #include "context.hh" + +-#include +- + using namespace cc1_plugin; + + +-- +2.39.3 + diff --git a/tools/Makefile b/tools/Makefile index 7607e844817f49..f60a458f98a481 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -67,9 +67,9 @@ tools-y += quilt tools-y += squashfs4 tools-y += sstrip tools-y += util-linux +tools-y += xz tools-y += zip tools-y += zlib -tools-y += zstd tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS),y) += liblzo tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(BUILD_B43_TOOLS),y) += b43-tools tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(BUILD_BZIP2_TOOLS),y) += bzip2 @@ -130,7 +130,6 @@ $(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)/zstd/compile := $(curdir)/meson/compile ifneq ($(HOST_OS),Linux) $(curdir)/coreutils/compile += $(curdir)/automake/compile $(curdir)/bison/compile $(curdir)/gnulib/compile @@ -154,22 +153,23 @@ endif # dependency for tools which have patches directory $(foreach tool, $(tools-y), $(if $(wildcard $(curdir)/$(tool)/patches),$(eval $(curdir)/$(tool)/compile += $(curdir)/patch/compile))) -$(foreach tool, $(filter-out xz,$(tools-y)), $(eval $(curdir)/$(tool)/compile += $(curdir)/xz/compile)) +$(foreach tool, $(filter-out zstd,$(tools-y)), $(eval $(curdir)/$(tool)/compile += $(curdir)/zstd/compile)) # make any tool depend on the following to ensure that archives can be unpacked and patched properly tools-core += libdeflate tools-core += patch tools-core += tar -tools-core += xz +tools-core += zstd $(foreach tool, $(tools-y), $(eval $(curdir)/$(tool)/compile += $(patsubst %,$(curdir)/%/compile,$(tools-core)))) tools-y += $(tools-core) -# make core tools depend on sed and flock -$(foreach tool, $(filter-out xz,$(tools-core)), $(eval $(curdir)/$(tool)/compile += $(curdir)/sed/compile)) -$(curdir)/xz/compile += $(curdir)/flock/compile +# make some core tools depend on sed and flock +$(curdir)/patch/compile += $(curdir)/sed/compile +$(curdir)/tar/compile += $(curdir)/sed/compile +$(curdir)/zstd/compile += $(curdir)/libdeflate/compile -$(curdir)/sed/compile := $(curdir)/flock/compile $(curdir)/xz/compile +$(curdir)/sed/compile := $(curdir)/flock/compile $(curdir)/zstd/compile tools-y += flock sed $(curdir)/autoremove := 1 diff --git a/tools/autoconf/Makefile b/tools/autoconf/Makefile index a1ce1580312457..d933c712b41df0 100644 --- a/tools/autoconf/Makefile +++ b/tools/autoconf/Makefile @@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=autoconf PKG_VERSION:=2.71 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/autoconf -PKG_HASH:=f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4 +PKG_HASH:=431075ad0bf529ef13cb41e9042c542381103e80015686222b8a9d4abef42a1c include $(INCLUDE_DIR)/host-build.mk diff --git a/tools/automake/Makefile b/tools/automake/Makefile index 4c1e5758cbcbce..7f129c1d838708 100644 --- a/tools/automake/Makefile +++ b/tools/automake/Makefile @@ -11,9 +11,9 @@ PKG_CPE_ID:=cpe:/a:gnu:automake PKG_VERSION:=1.16.5 PKG_API_VERSION:=$(word 2,$(subst ., ,$(PKG_VERSION))) -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/automake -PKG_HASH:=f01d58cd6d9d77fbdca9eb4bbd5ead1988228fdb73d6f7a201f5f8d6b118b469 +PKG_HASH:=07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605 include $(INCLUDE_DIR)/host-build.mk diff --git a/tools/b43-tools/Makefile b/tools/b43-tools/Makefile index bae498c78fc4f7..8ec13309beb898 100644 --- a/tools/b43-tools/Makefile +++ b/tools/b43-tools/Makefile @@ -13,7 +13,7 @@ PKG_DATE:=2022-07-05 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/mbuesch/b43-tools.git PKG_SOURCE_VERSION:=2fe10ea6690df9a068cb21cde537236bae784a14 -PKG_MIRROR_HASH:=4f1cde5da35a1e768f6a01d67888549d04512073990769342381af1b2c9e7fd2 +PKG_MIRROR_HASH:=4009d6c1f9ede43102897d6ebf4bd954331f3c4e2a94d4e61c0e5f303f929914 include $(INCLUDE_DIR)/host-build.mk @@ -23,7 +23,7 @@ define Host/Compile $(HOST_MAKE_FLAGS) \ $(1) QUIET_SPARSE=: +$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR)/assembler \ - CFLAGS="$(HOST_CFLAGS) -include endian.h" \ + CFLAGS="$(HOST_CFLAGS) -include endian.h -Wno-error=int-conversion" \ $(HOST_MAKE_FLAGS) \ LDFLAGS= \ $(1) QUIET_SPARSE=: diff --git a/tools/bison/Makefile b/tools/bison/Makefile index 0aa0969b20bc5e..97d34b5a166161 100644 --- a/tools/bison/Makefile +++ b/tools/bison/Makefile @@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bison PKG_VERSION:=3.8.2 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/$(PKG_NAME) -PKG_HASH:=9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2 +PKG_HASH:=06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb PKG_CPE_ID:=cpe:/a:gnu:bison HOST_BUILD_PARALLEL:=1 diff --git a/tools/bzip2/Makefile b/tools/bzip2/Makefile index 0c5a92849ad25a..86df143826dedc 100644 --- a/tools/bzip2/Makefile +++ b/tools/bzip2/Makefile @@ -22,31 +22,11 @@ PKG_CPE_ID:=cpe:/a:bzip:bzip2 HOST_BUILD_PARALLEL:=1 include $(INCLUDE_DIR)/host-build.mk +include $(INCLUDE_DIR)/cmake.mk HOSTCC := $(HOSTCC_NOCACHE) HOST_CFLAGS += $(HOST_FPIC) -HOST_MAKE_FLAGS+= \ - CFLAGS="$(HOST_CFLAGS)" \ - LDFLAGS="$(HOST_LDFLAGS)" \ - ENABLE_BIN_SHARED=1 \ - ENABLE_BIN_STATIC=0 \ - ENABLE_LIB_SHARED=1 \ - ENABLE_LIB_STATIC=1 \ - ENABLE_DEV=1 \ - ENABLE_DOCS=1 \ - ENABLE_TESTS=0 \ - PREFIX="$(HOST_BUILD_PREFIX)" - -define Host/Configure -endef - -define Host/Uninstall - $(call Host/Compile/Default,uninstall) - $(call Host/Compile/Default,clean) -endef - -define Host/Clean -endef +CMAKE_HOST_OPTIONS += -DENABLE_EXAMPLES=off $(eval $(call HostBuild)) diff --git a/tools/bzip2/patches/021-merge-and-improve-makefiles.patch b/tools/bzip2/patches/021-merge-and-improve-makefiles.patch deleted file mode 100644 index 9d98c34bdbb417..00000000000000 --- a/tools/bzip2/patches/021-merge-and-improve-makefiles.patch +++ /dev/null @@ -1,401 +0,0 @@ ---- a/bzip2.c -+++ b/bzip2.c -@@ -54,7 +54,7 @@ - #include - #include - #include --#include "bzlib.h" -+#include - - #define ERROR_IF_EOF(i) { if ((i) == EOF) ioError(); } - #define ERROR_IF_NOT_ZERO(i) { if ((i) != 0) ioError(); } ---- a/bzlib_private.h -+++ b/bzlib_private.h -@@ -30,7 +30,7 @@ - #include - #endif - --#include "bzlib.h" -+#include - - - ---- a/Makefile -+++ b/Makefile -@@ -21,11 +21,38 @@ - LDFLAGS= - - BIGFILES=-D_FILE_OFFSET_BITS=64 --CFLAGS=-Wall -Winline -O2 -g $(BIGFILES) -+CFLAGS_COMMON=-Wall -Winline -O2 -g $(BIGFILES) -I. -+CFLAGS_NOPIC=$(filter-out -O%,$(CFLAGS)) $(CFLAGS_COMMON) -+CFLAGS_PIC=$(filter-out -O%,$(CFLAGS)) -fpic -fPIC $(CFLAGS_COMMON) - - # Where you want it installed when you do 'make install' --PREFIX=/usr/local -- -+PREFIX?=/usr/local -+ENABLE_BIN_STATIC?=1 -+ENABLE_BIN_SHARED?=1 -+ENABLE_LIB_STATIC?=1 -+ENABLE_LIB_SHARED?=1 -+ENABLE_DEV?=1 -+ENABLE_DOCS?=1 -+ENABLE_TESTS?=1 -+ -+ifeq ($(ENABLE_BIN_STATIC),1) -+ ENABLE_BIN=1 -+ ifneq ($(ENABLE_LIB_STATIC),1) -+ ENABLE_LIB_STATIC=1 -+ endif -+endif -+ifeq ($(ENABLE_BIN_SHARED),1) -+ ENABLE_BIN=1 -+ ifneq ($(ENABLE_LIB_SHARED),1) -+ ENABLE_LIB_STATIC=1 -+ endif -+endif -+ifeq ($(ENABLE_LIB_STATIC),1) -+ ENABLE_LIB=1 -+endif -+ifeq ($(ENABLE_LIB_SHARED),1) -+ ENABLE_LIB=1 -+endif - - OBJS= blocksort.o \ - huffman.o \ -@@ -35,15 +62,38 @@ - decompress.o \ - bzlib.o - --all: libbz2.a bzip2 bzip2recover test -- --bzip2: libbz2.a bzip2.o -- $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2 -+TGTS_all:= -+TGTS_bzip2:=bzip2.o -+TGTS_check:= -+TGTS_install:= -+ifeq ($(ENABLE_LIB),1) -+ TGTS_all+=libbz2 -+ TGTS_bzip2+=libbz2 -+endif -+ifeq ($(ENABLE_BIN),1) -+ TGTS_all+=bzip2 bzip2recover -+ TGTS_install+=bzip2 bzip2recover -+endif -+ifeq ($(ENABLE_TESTS),1) -+ TGTS_all+=test -+ TGTS_check+=test -+endif -+ -+all: $(TGTS_all) -+ -+bzip2: $(TGTS_bzip2) -+ifeq ($(ENABLE_BIN_STATIC),1) -+ $(CC) $(CFLAGS_NOPIC) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2 -+endif -+ifeq ($(ENABLE_BIN_SHARED),1) -+ $(CC) $(CFLAGS_PIC) -o bzip2-shared bzip2.o libbz2.so.1.0 -+endif - - bzip2recover: bzip2recover.o -- $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2recover bzip2recover.o -+ $(CC) $(CFLAGS_NOPIC) $(LDFLAGS) -o bzip2recover bzip2recover.o - --libbz2.a: $(OBJS) -+libbz2: $(OBJS) -+ifeq ($(ENABLE_LIB_STATIC),1) - rm -f libbz2.a - $(AR) cq libbz2.a $(OBJS) - @if ( test -f $(RANLIB) -o -f /usr/bin/ranlib -o \ -@@ -51,8 +101,18 @@ - echo $(RANLIB) libbz2.a ; \ - $(RANLIB) libbz2.a ; \ - fi -+endif -+ifeq ($(ENABLE_LIB_SHARED),1) -+ $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 $(LDFLAGS) -o libbz2.so.1.0.8 $(OBJS) -+ rm -f libbz2.so.1.0 -+ rm -f libbz2.so.1 -+ rm -f libbz2.so -+ ln -s libbz2.so.1.0.8 libbz2.so.1.0 -+ ln -s libbz2.so.1.0 libbz2.so.1 -+ ln -s libbz2.so.1 libbz2.so -+endif - --check: test -+check: $(TGTS_check) - test: bzip2 - @cat words1 - ./bzip2 -1 < sample1.ref > sample1.rb2 -@@ -69,69 +129,153 @@ - cmp sample3.tst sample3.ref - @cat words3 - --install: bzip2 bzip2recover -+install: $(TGTS_install) -+ifeq ($(ENABLE_BIN),1) - if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi -+endif -+ifeq ($(ENABLE_LIB),1) - if ( test ! -d $(PREFIX)/lib ) ; then mkdir -p $(PREFIX)/lib ; fi -+endif -+ifeq ($(ENABLE_DEV),1) -+ if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi -+endif -+ifeq ($(ENABLE_DOCS),1) - if ( test ! -d $(PREFIX)/man ) ; then mkdir -p $(PREFIX)/man ; fi - if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir -p $(PREFIX)/man/man1 ; fi -- if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi -+endif -+ifeq ($(ENABLE_BIN),1) -+ ifeq ($(ENABLE_BIN_STATIC),1) - cp -f bzip2 $(PREFIX)/bin/bzip2 -- cp -f bzip2 $(PREFIX)/bin/bunzip2 -- cp -f bzip2 $(PREFIX)/bin/bzcat -+ chmod a+rx $(PREFIX)/bin/bzip2 -+ endif -+ ifeq ($(ENABLE_BIN_SHARED),1) -+ ifeq ($(ENABLE_BIN_STATIC),1) -+ cp -f bzip2-shared $(PREFIX)/bin/bzip2-shared -+ chmod a+rx $(PREFIX)/bin/bzip2-shared -+ else -+ cp -f bzip2-shared $(PREFIX)/bin/bzip2 -+ endif -+ endif -+ rm -f $(PREFIX)/bin/bunzip2 -+ rm -f $(PREFIX)/bin/bzcat -+ ( cd $(PREFIX)/bin && ln -s bzip2 bunzip2 ) -+ ( cd $(PREFIX)/bin && ln -s bzip2 bzcat ) -+ rm -f $(PREFIX)/bin/bunzip2-shared -+ rm -f $(PREFIX)/bin/bzcat-shared -+ ifeq ($(ENABLE_BIN_SHARED),1) -+ ifeq ($(ENABLE_BIN_STATIC),1) -+ ( cd $(PREFIX)/bin && ln -s bzip2-shared bunzip2-shared ) -+ ( cd $(PREFIX)/bin && ln -s bzip2-shared bzcat-shared ) -+ endif -+ endif - cp -f bzip2recover $(PREFIX)/bin/bzip2recover -- chmod a+x $(PREFIX)/bin/bzip2 -- chmod a+x $(PREFIX)/bin/bunzip2 -- chmod a+x $(PREFIX)/bin/bzcat -- chmod a+x $(PREFIX)/bin/bzip2recover -- cp -f bzip2.1 $(PREFIX)/man/man1 -- chmod a+r $(PREFIX)/man/man1/bzip2.1 -- cp -f bzlib.h $(PREFIX)/include -- chmod a+r $(PREFIX)/include/bzlib.h -- cp -f libbz2.a $(PREFIX)/lib -- chmod a+r $(PREFIX)/lib/libbz2.a -+ chmod a+rx $(PREFIX)/bin/bzip2recover - cp -f bzgrep $(PREFIX)/bin/bzgrep -- ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep -- ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep -- chmod a+x $(PREFIX)/bin/bzgrep -+ chmod a+rx $(PREFIX)/bin/bzgrep -+ rm -f $(PREFIX)/bin/bzegrep -+ rm -f $(PREFIX)/bin/bzfgrep -+ ( cd $(PREFIX)/bin && ln -s bzgrep bzegrep ) -+ ( cd $(PREFIX)/bin && ln -s bzgrep bzfgrep ) - cp -f bzmore $(PREFIX)/bin/bzmore -- ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless -- chmod a+x $(PREFIX)/bin/bzmore -+ chmod a+rx $(PREFIX)/bin/bzmore -+ rm -f $(PREFIX)/bin/bzless -+ ( cd $(PREFIX)/bin && ln -s bzmore bzless ) -+ rm -f $(PREFIX)/bin/bzcmp - cp -f bzdiff $(PREFIX)/bin/bzdiff -- ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp -- chmod a+x $(PREFIX)/bin/bzdiff -- cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1 -- chmod a+r $(PREFIX)/man/man1/bzgrep.1 -- chmod a+r $(PREFIX)/man/man1/bzmore.1 -- chmod a+r $(PREFIX)/man/man1/bzdiff.1 -+ chmod a+rx $(PREFIX)/bin/bzdiff -+ ( cd $(PREFIX)/bin && ln -s bzdiff bzcmp ) -+endif -+ifeq ($(ENABLE_DEV),1) -+ cp -f bzlib.h $(PREFIX)/include -+ chmod a+r $(PREFIX)/include/bzlib.h -+endif -+ifeq ($(ENABLE_DOCS),1) -+ cp -f bzip2.1 bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1 - echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzegrep.1 - echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzfgrep.1 - echo ".so man1/bzmore.1" > $(PREFIX)/man/man1/bzless.1 - echo ".so man1/bzdiff.1" > $(PREFIX)/man/man1/bzcmp.1 -+ chmod a+r $(PREFIX)/man/man1/bzip2.1 -+ chmod a+r $(PREFIX)/man/man1/bzgrep.1 -+ chmod a+r $(PREFIX)/man/man1/bzmore.1 -+ chmod a+r $(PREFIX)/man/man1/bzdiff.1 -+ chmod a+r $(PREFIX)/man/man1/bzegrep.1 -+ chmod a+r $(PREFIX)/man/man1/bzfgrep.1 -+ chmod a+r $(PREFIX)/man/man1/bzless.1 -+ chmod a+r $(PREFIX)/man/man1/bzcmp.1 -+endif -+ifeq ($(ENABLE_LIB_SHARED),1) -+ cp -f libbz2.so.1.0.8 $(PREFIX)/lib -+ chmod a+r $(PREFIX)/lib/libbz2.so.1.0.8 -+ rm -f $(PREFIX)/lib/libbz2.so.1.0 -+ rm -f $(PREFIX)/lib/libbz2.so.1 -+ rm -f $(PREFIX)/lib/libbz2.so -+ ( cd $(PREFIX)/lib && ln -s libbz2.so.1.0.8 libbz2.so.1.0 ) -+ ( cd $(PREFIX)/lib && ln -s libbz2.so.1.0 libbz2.so.1 ) -+ ( cd $(PREFIX)/lib && ln -s libbz2.so.1 libbz2.so ) -+endif -+ifeq ($(ENABLE_LIB_STATIC),1) -+ cp -f libbz2.a $(PREFIX)/lib -+ chmod a+r $(PREFIX)/lib/libbz2.a -+endif -+ -+uninstall: -+ rm -f $(PREFIX)/bin/bzip2 -+ rm -f $(PREFIX)/bin/bzip2-shared -+ rm -f $(PREFIX)/bin/bunzip2 -+ rm -f $(PREFIX)/bin/bzcat -+ rm -f $(PREFIX)/bin/bunzip2-shared -+ rm -f $(PREFIX)/bin/bzcat-shared -+ rm -f $(PREFIX)/bin/bzip2recover -+ rm -f $(PREFIX)/bin/bzgrep -+ rm -f $(PREFIX)/bin/bzegrep -+ rm -f $(PREFIX)/bin/bzfgrep -+ rm -f $(PREFIX)/bin/bzmore -+ rm -f $(PREFIX)/bin/bzless -+ rm -f $(PREFIX)/bin/bzdiff -+ rm -f $(PREFIX)/bin/bzcmp -+ rm -f $(PREFIX)/include/bzlib.h -+ rm -f $(PREFIX)/lib/libbz2.so.1.0.8 -+ rm -f $(PREFIX)/lib/libbz2.so.1.0 -+ rm -f $(PREFIX)/lib/libbz2.so.1 -+ rm -f $(PREFIX)/lib/libbz2.so -+ rm -f $(PREFIX)/lib/libbz2.a -+ rm -f $(PREFIX)/man/man1/bzip2.1 -+ rm -f $(PREFIX)/man/man1/bzgrep.1 -+ rm -f $(PREFIX)/man/man1/bzmore.1 -+ rm -f $(PREFIX)/man/man1/bzdiff.1 -+ rm -f $(PREFIX)/man/man1/bzegrep.1 -+ rm -f $(PREFIX)/man/man1/bzfgrep.1 -+ rm -f $(PREFIX)/man/man1/bzless.1 -+ rm -f $(PREFIX)/man/man1/bzcmp.1 -+ (rmdir $(PREFIX)/bin $(PREFIX)/include $(PREFIX)/lib $(PREFIX)/man/man1 $(PREFIX)/man || true ) 2> /dev/null - - clean: -- rm -f *.o libbz2.a bzip2 bzip2recover \ -+ rm -f $(OBJS) bzip2.o \ -+ libbz2.so.1.0.8 libbz2.so.1.0 libbz2.so.1 libbz2.so \ -+ libbz2.a bzip2 bzip2-shared bzip2recover \ - sample1.rb2 sample2.rb2 sample3.rb2 \ - sample1.tst sample2.tst sample3.tst - - blocksort.o: blocksort.c - @cat words0 -- $(CC) $(CFLAGS) -c blocksort.c -+ $(CC) $(CFLAGS_NOPIC) -c blocksort.c - huffman.o: huffman.c -- $(CC) $(CFLAGS) -c huffman.c -+ $(CC) $(CFLAGS_NOPIC) -c huffman.c - crctable.o: crctable.c -- $(CC) $(CFLAGS) -c crctable.c -+ $(CC) $(CFLAGS_NOPIC) -c crctable.c - randtable.o: randtable.c -- $(CC) $(CFLAGS) -c randtable.c -+ $(CC) $(CFLAGS_NOPIC) -c randtable.c - compress.o: compress.c -- $(CC) $(CFLAGS) -c compress.c -+ $(CC) $(CFLAGS_NOPIC) -c compress.c - decompress.o: decompress.c -- $(CC) $(CFLAGS) -c decompress.c -+ $(CC) $(CFLAGS_NOPIC) -c decompress.c - bzlib.o: bzlib.c -- $(CC) $(CFLAGS) -c bzlib.c -+ $(CC) $(CFLAGS_NOPIC) -c bzlib.c - bzip2.o: bzip2.c -- $(CC) $(CFLAGS) -c bzip2.c -+ $(CC) $(CFLAGS_NOPIC) -c bzip2.c - bzip2recover.o: bzip2recover.c -- $(CC) $(CFLAGS) -c bzip2recover.c -+ $(CC) $(CFLAGS_NOPIC) -c bzip2recover.c - - - distclean: clean -@@ -189,7 +333,6 @@ - $(DISTNAME)/bzmore.1 \ - $(DISTNAME)/bzgrep \ - $(DISTNAME)/bzgrep.1 \ -- $(DISTNAME)/Makefile-libbz2_so \ - $(DISTNAME)/bz-common.xsl \ - $(DISTNAME)/bz-fo.xsl \ - $(DISTNAME)/bz-html.xsl \ ---- a/Makefile-libbz2_so -+++ b/Makefile-libbz2_so -@@ -1,59 +0,0 @@ -- --# This Makefile builds a shared version of the library, --# libbz2.so.1.0.8, with soname libbz2.so.1.0, --# at least on x86-Linux (RedHat 7.2), --# with gcc-2.96 20000731 (Red Hat Linux 7.1 2.96-98). --# Please see the README file for some important info --# about building the library like this. -- --# ------------------------------------------------------------------ --# This file is part of bzip2/libbzip2, a program and library for --# lossless, block-sorting data compression. --# --# bzip2/libbzip2 version 1.0.8 of 13 July 2019 --# Copyright (C) 1996-2019 Julian Seward --# --# Please read the WARNING, DISCLAIMER and PATENTS sections in the --# README file. --# --# This program is released under the terms of the license contained --# in the file LICENSE. --# ------------------------------------------------------------------ -- -- --SHELL=/bin/sh --CC=gcc --BIGFILES=-D_FILE_OFFSET_BITS=64 --CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES) -- --OBJS= blocksort.o \ -- huffman.o \ -- crctable.o \ -- randtable.o \ -- compress.o \ -- decompress.o \ -- bzlib.o -- --all: $(OBJS) -- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS) -- $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8 -- rm -f libbz2.so.1.0 -- ln -s libbz2.so.1.0.8 libbz2.so.1.0 -- --clean: -- rm -f $(OBJS) bzip2.o libbz2.so.1.0.8 libbz2.so.1.0 bzip2-shared -- --blocksort.o: blocksort.c -- $(CC) $(CFLAGS) -c blocksort.c --huffman.o: huffman.c -- $(CC) $(CFLAGS) -c huffman.c --crctable.o: crctable.c -- $(CC) $(CFLAGS) -c crctable.c --randtable.o: randtable.c -- $(CC) $(CFLAGS) -c randtable.c --compress.o: compress.c -- $(CC) $(CFLAGS) -c compress.c --decompress.o: decompress.c -- $(CC) $(CFLAGS) -c decompress.c --bzlib.o: bzlib.c -- $(CC) $(CFLAGS) -c bzlib.c ---- a/unzcrash.c -+++ b/unzcrash.c -@@ -30,7 +30,7 @@ - - #include - #include --#include "bzlib.h" -+#include - - #define M_BLOCK 1000000 - diff --git a/tools/bzip2/patches/100-cmake.patch b/tools/bzip2/patches/100-cmake.patch new file mode 100644 index 00000000000000..0ed37b2e44caf2 --- /dev/null +++ b/tools/bzip2/patches/100-cmake.patch @@ -0,0 +1,382 @@ +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,354 @@ ++cmake_minimum_required(VERSION 3.12) ++ ++project(bzip2 ++ VERSION 1.0.8 ++ DESCRIPTION "This Bzip2/libbz2 a program and library for lossless block-sorting data compression." ++ LANGUAGES C) ++ ++# See versioning rule: ++# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html ++# ++# KEEP THESE IN SYNC WITH meson.build OR STUFF WILL BREAK! ++set(LT_CURRENT 1) ++set(LT_REVISION 8) ++set(LT_AGE 0) ++ ++set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) ++ ++include_directories(${PROJECT_BINARY_DIR}) ++ ++math(EXPR LT_SOVERSION "${LT_CURRENT} - ${LT_AGE}") ++set(LT_VERSION "${LT_SOVERSION}.${LT_AGE}.${LT_REVISION}") ++set(PACKAGE_VERSION ${PROJECT_VERSION}) ++ ++set(ENABLE_APP_DEFAULT ON) ++set(ENABLE_EXAMPLES_DEFAULT OFF) ++set(ENABLE_DOCS_DEFAULT OFF) ++include(CMakeOptions.txt) ++ ++if(ENABLE_LIB_ONLY AND (ENABLE_APP OR ENABLE_EXAMPLES)) ++ # Remember when disabled options are disabled for later diagnostics. ++ set(ENABLE_LIB_ONLY_DISABLED_OTHERS 1) ++else() ++ set(ENABLE_LIB_ONLY_DISABLED_OTHERS 0) ++endif() ++if(ENABLE_LIB_ONLY) ++ set(ENABLE_APP OFF) ++ set(ENABLE_EXAMPLES OFF) ++endif() ++ ++# Do not disable assertions based on CMAKE_BUILD_TYPE. ++foreach(_build_type Release MinSizeRel RelWithDebInfo) ++ foreach(_lang C) ++ string(TOUPPER CMAKE_${_lang}_FLAGS_${_build_type} _var) ++ string(REGEX REPLACE "(^|)[/-]D *NDEBUG($|)" " " ${_var} "${${_var}}") ++ endforeach() ++endforeach() ++ ++# Support the latest c++ standard available. ++include(CheckCCompilerFlag) ++include(CheckCXXCompilerFlag) ++ ++function(extract_valid_c_flags varname) ++ set(valid_flags) ++ foreach(flag IN LISTS ARGN) ++ string(REGEX REPLACE "[^a-zA-Z0-9_]+" "_" flag_var ${flag}) ++ set(flag_var "C_FLAG_${flag_var}") ++ check_c_compiler_flag("${flag}" "${flag_var}") ++ if(${flag_var}) ++ set(valid_flags "${valid_flags} ${flag}") ++ endif() ++ endforeach() ++ set(${varname} "${valid_flags}" PARENT_SCOPE) ++endfunction() ++if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) ++ set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the build type" FORCE) ++ ++ # Include "None" as option to disable any additional (optimization) flags, ++ # relying on just CMAKE_C_FLAGS and CMAKE_CXX_FLAGS (which are empty by ++ # default). These strings are presented in cmake-gui. ++ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ++ None Debug Release MinSizeRel RelWithDebInfo) ++endif() ++ ++# Install a symlink of script to the "bin" directory. ++# Not intended for use on Windows. ++function(install_script_symlink original symlink) ++ add_custom_command(OUTPUT ${symlink} ++ COMMAND ${CMAKE_COMMAND} -E create_symlink ${original} ${symlink} ++ DEPENDS ${original} ++ COMMENT "Generating symbolic link ${symlink} of ${original}") ++ add_custom_target(${symlink}_tgt ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${symlink}) ++ install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${symlink} DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endfunction() ++ ++# Install a symlink of binary target to the "bin" directory. ++# On Windows, it will be a copy instead of a symlink. ++function(install_target_symlink original symlink) ++ if(WIN32) ++ set(op copy) ++ set(symlink "${symlink}.exe") ++ else() ++ set(op create_symlink) ++ endif() ++ add_custom_command(TARGET ${original} POST_BUILD ++ COMMAND ${CMAKE_COMMAND} -E ${op} $ ${symlink} ++ WORKING_DIRECTORY $ ++ COMMENT "Generating symbolic link (or copy) ${symlink} of ${original}") ++ install(PROGRAMS $/${symlink} DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endfunction() ++ ++include(GNUInstallDirs) ++ ++# Checks for header files. ++include(CheckIncludeFile) ++check_include_file(arpa/inet.h HAVE_ARPA_INET_H) ++check_include_file(fcntl.h HAVE_FCNTL_H) ++check_include_file(inttypes.h HAVE_INTTYPES_H) ++check_include_file(limits.h HAVE_LIMITS_H) ++check_include_file(netdb.h HAVE_NETDB_H) ++check_include_file(netinet/in.h HAVE_NETINET_IN_H) ++check_include_file(pwd.h HAVE_PWD_H) ++check_include_file(sys/socket.h HAVE_SYS_SOCKET_H) ++check_include_file(sys/time.h HAVE_SYS_TIME_H) ++check_include_file(syslog.h HAVE_SYSLOG_H) ++check_include_file(time.h HAVE_TIME_H) ++check_include_file(unistd.h HAVE_UNISTD_H) ++ ++include(CheckTypeSize) ++# Checks for typedefs, structures, and compiler characteristics. ++# AC_TYPE_SIZE_T ++check_type_size("ssize_t" SIZEOF_SSIZE_T) ++if(NOT SIZEOF_SSIZE_T) ++ # ssize_t is a signed type in POSIX storing at least -1. ++ # Set it to "int" to match the behavior of AC_TYPE_SSIZE_T (autotools). ++ set(ssize_t int) ++endif() ++ ++include(CheckStructHasMember) ++check_struct_has_member("struct tm" tm_gmtoff time.h HAVE_STRUCT_TM_TM_GMTOFF) ++ ++include(CheckSymbolExists) ++# XXX does this correctly detect initgroups (un)availability on cygwin? ++check_symbol_exists(initgroups grp.h HAVE_DECL_INITGROUPS) ++if(NOT HAVE_DECL_INITGROUPS AND HAVE_UNISTD_H) ++ # FreeBSD declares initgroups() in unistd.h ++ check_symbol_exists(initgroups unistd.h HAVE_DECL_INITGROUPS2) ++ if(HAVE_DECL_INITGROUPS2) ++ set(HAVE_DECL_INITGROUPS 1) ++ endif() ++endif() ++ ++set(WARNCFLAGS) ++if(CMAKE_C_COMPILER_ID MATCHES "MSVC") ++ if(ENABLE_WERROR) ++ set(WARNCFLAGS /WX) ++ endif() ++else() ++ if(ENABLE_WERROR) ++ extract_valid_c_flags(WARNCFLAGS -Werror) ++ endif() ++ ++ # For C compiler ++ # Please keep this list in sync with meson.build ++ extract_valid_c_flags(WARNCFLAGS ++ -Wall ++ -Wextra ++ -Wmissing-prototypes ++ -Wstrict-prototypes ++ -Wmissing-declarations ++ -Wpointer-arith ++ -Wdeclaration-after-statement ++ -Wformat-security ++ -Wwrite-strings ++ -Wshadow ++ -Winline ++ -Wnested-externs ++ -Wfloat-equal ++ -Wundef ++ -Wendif-labels ++ -Wempty-body ++ -Wcast-align ++ -Wclobbered ++ -Wvla ++ -Wpragmas ++ -Wunreachable-code ++ -Waddress ++ -Wattributes ++ -Wdiv-by-zero ++ -Wshorten-64-to-32 ++ -Wconversion ++ -Wextended-offsetof ++ -Wformat-nonliteral ++ -Wlanguage-extension-token ++ -Wmissing-field-initializers ++ -Wmissing-noreturn ++ -Wmissing-variable-declarations ++ # -Wpadded # Not used because we cannot change public structs ++ -Wsign-conversion ++ # -Wswitch-enum # Not used because this basically disallows default case ++ -Wunreachable-code-break ++ -Wunused-macros ++ -Wunused-parameter ++ -Wredundant-decls ++ -Wheader-guard ++ -Wno-format-nonliteral # This is required because we pass format string as "const char*. ++ ) ++endif() ++ ++if(ENABLE_DEBUG) ++ set(DEBUGBUILD 1) ++endif() ++ ++#add_definitions(-DHAVE_CONFIG_H) ++#configure_file(cmakeconfig.h.in config.h) ++ ++# autotools-compatible names ++# Sphinx expects relative paths in the .rst files. Use the fact that the files ++# below are all one directory level deep. ++file(RELATIVE_PATH top_srcdir ${CMAKE_CURRENT_BINARY_DIR}/dir ${CMAKE_CURRENT_SOURCE_DIR}) ++file(RELATIVE_PATH top_builddir ${CMAKE_CURRENT_BINARY_DIR}/dir ${CMAKE_CURRENT_BINARY_DIR}) ++set(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR}) ++set(abs_top_builddir ${CMAKE_CURRENT_BINARY_DIR}) ++# bzip2.pc (pkg-config file) ++set(prefix ${CMAKE_INSTALL_PREFIX}) ++set(exec_prefix ${CMAKE_INSTALL_PREFIX}) ++set(bindir ${CMAKE_INSTALL_FULL_BINDIR}) ++set(sbindir ${CMAKE_INSTALL_FULL_SBINDIR}) ++set(libdir ${CMAKE_INSTALL_FULL_LIBDIR}) ++set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR}) ++set(VERSION ${PACKAGE_VERSION}) ++ ++# ++# The build targets. ++# In a larger project, the following would be in subdirectories and ++# These targets would be included with `add_subdirectory()` ++# ++set(BZ2_SOURCES ++ blocksort.c ++ huffman.c ++ crctable.c ++ randtable.c ++ compress.c ++ decompress.c ++ bzlib.c) ++ ++# The bz2 OBJECT-library, required for bzip2, bzip2recover. ++add_library(bz2_ObjLib OBJECT) ++target_sources(bz2_ObjLib ++ PRIVATE ${BZ2_SOURCES} ++ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/bzlib_private.h ++ INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/bzlib.h) ++ ++if(ENABLE_SHARED_LIB) ++ # The libbz2 shared library. ++ add_library(bz2 SHARED ${BZ2_RES}) ++ target_sources(bz2 ++ PRIVATE ${BZ2_SOURCES} ++ ${CMAKE_CURRENT_SOURCE_DIR}/libbz2.def ++ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/bzlib_private.h ++ INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/bzlib.h) ++ # Always use '-fPIC'/'-fPIE' option for shared libraries. ++ set_property(TARGET bz2 PROPERTY POSITION_INDEPENDENT_CODE ON) ++ set_target_properties(bz2 PROPERTIES ++ COMPILE_FLAGS "${WARNCFLAGS}" ++ VERSION ${LT_VERSION} SOVERSION ${LT_SOVERSION}) ++ install(TARGETS bz2 DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ install(FILES bzlib.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ++ ++ if(USE_OLD_SONAME) ++ # Hack to support the old libbz2.so.1.0 version by including an extra copy. ++ # Technically the old SONAME is not libtool compatible. ++ # This hack is to support binary compatibility with libbz2 in some distro packages. ++ if(UNIX AND NOT APPLE) ++ add_library(bz2_old_soname SHARED ${BZ2_RES}) ++ target_sources(bz2_old_soname ++ PRIVATE ${BZ2_SOURCES} ++ ${CMAKE_CURRENT_SOURCE_DIR}/libbz2.def ++ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/bzlib_private.h ++ INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/bzlib.h ++ ) ++ set_target_properties(bz2_old_soname PROPERTIES ++ COMPILE_FLAGS "${WARNCFLAGS}" ++ VERSION ${LT_SOVERSION}.${LT_AGE} SOVERSION ${LT_SOVERSION}.${LT_AGE} ++ OUTPUT_NAME bz2 ++ ) ++ install(TARGETS bz2_old_soname DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ endif() ++ endif() ++endif() ++ ++if(ENABLE_STATIC_LIB) ++ # The libbz2 static library. ++ add_library(bz2_static STATIC) ++ target_sources(bz2_static ++ PRIVATE ${BZ2_SOURCES} ++ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/bzlib_private.h ++ INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/bzlib.h) ++ set_target_properties(bz2_static PROPERTIES ++ COMPILE_FLAGS "${WARNCFLAGS}" ++ VERSION ${LT_VERSION} ++ SOVERSION ${LT_SOVERSION} ++ ARCHIVE_OUTPUT_NAME bz2_static) ++ target_compile_definitions(bz2_static PUBLIC BZ2_STATICLIB) ++ install(TARGETS bz2_static DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ install(FILES bzlib.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ++endif() ++ ++if(ENABLE_APP) ++ # The bzip2 executable. ++ add_executable(bzip2) ++ target_sources(bzip2 ++ PRIVATE bzip2.c) ++ target_link_libraries(bzip2 ++ PRIVATE bz2_ObjLib) ++ if(WIN32) ++ target_compile_definitions(bzip2 PUBLIC BZ_LCCWIN32 BZ_UNIX=0) ++ else() ++ target_compile_definitions(bzip2 PUBLIC BZ_LCCWIN32=0 BZ_UNIX) ++ endif() ++ install(TARGETS bzip2 DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ ++ # Create bzip2 copies bzcat and bunzip. ++ # The default behavior is altered in bzip2.c code by checking the program name. ++ install_target_symlink(bzip2 bzcat) ++ install_target_symlink(bzip2 bunzip) ++ ++ # The bzip2recover executable. ++ add_executable(bzip2recover) ++ target_sources(bzip2recover ++ PRIVATE bzip2recover.c) ++ target_link_libraries(bzip2recover ++ PRIVATE bz2_ObjLib) ++ if(WIN32) ++ target_compile_definitions(bzip2recover PUBLIC BZ_LCCWIN32 BZ_UNIX=0) ++ else() ++ target_compile_definitions(bzip2recover PUBLIC BZ_LCCWIN32=0 BZ_UNIX) ++ endif() ++ install(TARGETS bzip2recover DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ ++ if(ENABLE_EXAMPLES) ++ if(ENABLE_SHARED_LIB) ++ # The dlltest executable. ++ add_executable(dlltest) ++ target_sources(dlltest ++ PRIVATE dlltest.c) ++ target_link_libraries(dlltest bz2) ++ install(TARGETS dlltest DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() ++ endif() ++ ++ if(NOT WIN32) ++ # Install shell scripts, and renamed copies. ++ install(PROGRAMS bzdiff bzgrep bzmore ++ DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ ++ install_script_symlink(bzdiff bzcmp) ++ ++ install_script_symlink(bzgrep bzegrep) ++ install_script_symlink(bzgrep bzfgrep) ++ ++ install_script_symlink(bzmore bzless) ++ endif() ++ ++endif() +--- /dev/null ++++ b/CMakeOptions.txt +@@ -0,0 +1,22 @@ ++# Features that can be enabled for cmake (see CMakeLists.txt) ++ ++option(ENABLE_WERROR "Turn on compile time warnings") ++ ++option(ENABLE_DEBUG "Turn on debug output") ++ ++option(ENABLE_APP "Build applications (bzip2, and bzip2recover)" ++ ${ENABLE_APP_DEFAULT}) ++ ++option(ENABLE_DOCS "Generate documentation" ++ ${ENABLE_DOCS_DEFAULT}) ++ ++option(ENABLE_EXAMPLES "Build examples" ++ ${ENABLE_EXAMPLES_DEFAULT}) ++ ++option(ENABLE_LIB_ONLY "Build libbz2 only. This is a short hand for -DENABLE_APP=0 -DENABLE_EXAMPLES=0") ++ ++option(ENABLE_STATIC_LIB "Build libbz2 in static mode also") ++ ++option(ENABLE_SHARED_LIB "Build libbz2 as a shared library" ON) ++ ++option(USE_OLD_SONAME "Use libbz2.so.1.0 for compatibility with old Makefiles" OFF) diff --git a/tools/cbootimage-configs/Makefile b/tools/cbootimage-configs/Makefile index cafd4e5a20dd58..586d1efc9df113 100644 --- a/tools/cbootimage-configs/Makefile +++ b/tools/cbootimage-configs/Makefile @@ -12,7 +12,7 @@ PKG_SOURCE_DATE := 2017-04-13 PKG_SOURCE_PROTO := git PKG_SOURCE_URL := https://github.com/NVIDIA/cbootimage-configs.git PKG_SOURCE_VERSION := 7c3b458b93ed6947cd083623f543e93f9103cc0f -PKG_MIRROR_HASH := 1d24421af8cf74ec2d625e237aa8121b1273774c4380ad333e2954e052a5a4fe +PKG_MIRROR_HASH := 6ba2dde907d3cc403720954738a92431b1f40d562db5815c08971c39374d72a1 include $(INCLUDE_DIR)/host-build.mk diff --git a/tools/cbootimage/Makefile b/tools/cbootimage/Makefile index 71fdb5768c29d0..82be7950d3a411 100644 --- a/tools/cbootimage/Makefile +++ b/tools/cbootimage/Makefile @@ -12,7 +12,7 @@ PKG_VERSION := 1.8 PKG_SOURCE_PROTO := git PKG_SOURCE_URL := https://github.com/NVIDIA/cbootimage.git PKG_SOURCE_VERSION := 7c9db585d06cce9efffa2a82245f233233680060 -PKG_MIRROR_HASH := 84d9abaaa3eddde05f506dc16effe1c9e18eb94727ed59c5e0a879baeb04e0b2 +PKG_MIRROR_HASH := e38b1e9581524fcabc7b24fff1c18d13f7e3a93accf73c55caf33832249bfd03 HOST_BUILD_PARALLEL := 1 diff --git a/tools/ccache/Makefile b/tools/ccache/Makefile index 5720dabf6ed663..cd2c6d27d5e1cd 100644 --- a/tools/ccache/Makefile +++ b/tools/ccache/Makefile @@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ccache PKG_VERSION:=4.9.1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/ccache/ccache/releases/download/v$(PKG_VERSION) -PKG_HASH:=4c03bc840699127d16c3f0e6112e3f40ce6a230d5873daa78c60a59c7ef59d25 +PKG_HASH:=12834ecaaaf2db069dda1d1d991f91c19e3274cc04a471af5b64195def17e90f include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/cmake.mk diff --git a/tools/cmake/Makefile b/tools/cmake/Makefile index d73f3fba62fe4a..1027b671bd5626 100644 --- a/tools/cmake/Makefile +++ b/tools/cmake/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=cmake -PKG_VERSION:=3.28.3 +PKG_VERSION:=3.29.0 PKG_VERSION_MAJOR:=$(word 1,$(subst ., ,$(PKG_VERSION))).$(word 2,$(subst ., ,$(PKG_VERSION))) PKG_RELEASE:=1 PKG_CPE_ID:=cpe:/a:kitware:cmake @@ -15,7 +15,7 @@ PKG_CPE_ID:=cpe:/a:kitware:cmake PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/Kitware/CMake/releases/download/v$(PKG_VERSION)/ \ https://cmake.org/files/v$(PKG_VERSION_MAJOR)/ -PKG_HASH:=72b7570e5c8593de6ac4ab433b73eab18c5fb328880460c86ce32608141ad5c1 +PKG_HASH:=a0669630aae7baa4a8228048bf30b622f9e9fd8ee8cedb941754e9e38686c778 HOST_BUILD_PARALLEL:=1 HOST_CONFIGURE_PARALLEL:=1 diff --git a/tools/cmake/patches/120-curl-fix-libressl-linking.patch b/tools/cmake/patches/120-curl-fix-libressl-linking.patch index 9d1d86c325dc5b..a46acd63dae2f2 100644 --- a/tools/cmake/patches/120-curl-fix-libressl-linking.patch +++ b/tools/cmake/patches/120-curl-fix-libressl-linking.patch @@ -20,7 +20,7 @@ Signed-off-by: Jo-Philipp Wich --- --- a/Utilities/cmcurl/CMakeLists.txt +++ b/Utilities/cmcurl/CMakeLists.txt -@@ -650,6 +650,14 @@ if(CURL_USE_OPENSSL) +@@ -647,6 +647,14 @@ if(CURL_USE_OPENSSL) endif() set(SSL_ENABLED ON) set(USE_OPENSSL ON) diff --git a/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch b/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch index 557e27a612a23d..ffe47f9901a725 100644 --- a/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch +++ b/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch @@ -1,6 +1,6 @@ --- a/bootstrap +++ b/bootstrap -@@ -1491,7 +1491,10 @@ int main(){ printf("1%c", (char)0x0a); r +@@ -1493,7 +1493,10 @@ int main(){ printf("1%c", (char)0x0a); r ' > "test.c" cmake_original_make_flags="${cmake_make_flags}" if test "x${cmake_parallel_make}" != "x"; then diff --git a/tools/cmake/patches/150-zstd-libarchive.patch b/tools/cmake/patches/150-zstd-libarchive.patch index 4ed099fbfebdcc..a6f8e35e6bd7d6 100644 --- a/tools/cmake/patches/150-zstd-libarchive.patch +++ b/tools/cmake/patches/150-zstd-libarchive.patch @@ -1,6 +1,6 @@ --- a/Utilities/cmlibarchive/CMakeLists.txt +++ b/Utilities/cmlibarchive/CMakeLists.txt -@@ -636,7 +636,7 @@ IF(ENABLE_ZSTD) +@@ -656,7 +656,7 @@ IF(ENABLE_ZSTD) SET(ZSTD_FIND_QUIETLY TRUE) ENDIF (ZSTD_INCLUDE_DIR) diff --git a/tools/cmake/patches/160-disable_xcode_generator.patch b/tools/cmake/patches/160-disable_xcode_generator.patch new file mode 100644 index 00000000000000..20d1086bd47b4c --- /dev/null +++ b/tools/cmake/patches/160-disable_xcode_generator.patch @@ -0,0 +1,22 @@ +--- a/Source/CMakeLists.txt ++++ b/Source/CMakeLists.txt +@@ -846,7 +846,7 @@ if(CMake_USE_XCOFF_PARSER) + endif() + + # Xcode only works on Apple +-if(APPLE) ++if(APPLE_DISABLED) + target_sources( + CMakeLib + PRIVATE +--- a/Source/cmake.cxx ++++ b/Source/cmake.cxx +@@ -132,7 +132,7 @@ + # include "cmGlobalGhsMultiGenerator.h" + #endif + +-#if defined(__APPLE__) ++#if defined(__APPLE_DISABLED__) + # if !defined(CMAKE_BOOTSTRAP) + # include "cmGlobalXCodeGenerator.h" + diff --git a/tools/coreutils/Makefile b/tools/coreutils/Makefile index 86302862060239..69d1dcbd370bc4 100644 --- a/tools/coreutils/Makefile +++ b/tools/coreutils/Makefile @@ -10,9 +10,9 @@ PKG_NAME:=coreutils PKG_CPE_ID:=cpe:/a:gnu:coreutils PKG_VERSION:=9.3 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/coreutils -PKG_HASH:=adbcfcfe899235b71e8768dcf07cd532520b7f54f9a8064843f8d199a904bbaa +PKG_HASH:=a33d2c0bc49be3c79a4794944dcd87103bf497b53a14bafcd431c8ca53975252 HOST_BUILD_PARALLEL := 1 diff --git a/tools/dwarves/Makefile b/tools/dwarves/Makefile index f48516fcdfaf89..8d72536b4257e2 100644 --- a/tools/dwarves/Makefile +++ b/tools/dwarves/Makefile @@ -6,9 +6,9 @@ PKG_NAME:=dwarves PKG_VERSION:=1.26 PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://fedorapeople.org/~acme/dwarves/ -PKG_HASH:=ad4c08339850e404609e2808012580b7e98366d2b91054bb93fe6dca94651fb4 +PKG_HASH:=1d8c9a1c2d42e06cc121a70a39c4f621fd28f15c476ed1b7c7b226f41fdd32df PKG_LICENSE:=GPL-2.0-only PKG_LICENSE_FILES:=COPYING diff --git a/tools/e2fsprogs/Makefile b/tools/e2fsprogs/Makefile index 0aa85af3f105e8..567e6a4c9a8ffb 100644 --- a/tools/e2fsprogs/Makefile +++ b/tools/e2fsprogs/Makefile @@ -10,10 +10,10 @@ include $(TOPDIR)/rules.mk PKG_NAME:=e2fsprogs PKG_CPE_ID:=cpe:/a:e2fsprogs_project:e2fsprogs PKG_VERSION:=1.47.0 -PKG_HASH:=144af53f2bbd921cef6f8bea88bb9faddca865da3fbc657cc9b4d2001097d5db +PKG_HASH:=0b4fe723d779b0927fb83c9ae709bc7b40f66d7df36433bef143e41c54257084 PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/tytso/e2fsprogs/v$(PKG_VERSION)/ HOST_BUILD_PARALLEL:=1 @@ -30,7 +30,8 @@ HOST_CONFIGURE_ARGS += \ --enable-libuuid \ --disable-tls \ --disable-nls \ - --enable-threads=pth + --enable-threads=pth \ + --disable-fuse2fs define Host/Prepare $(call Host/Prepare/Default) diff --git a/tools/expat/Makefile b/tools/expat/Makefile index 1df6f8ec965779..4cd9ef11b2ffec 100644 --- a/tools/expat/Makefile +++ b/tools/expat/Makefile @@ -9,10 +9,10 @@ include $(TOPDIR)/rules.mk PKG_NAME:=expat PKG_CPE_ID:=cpe:/a:libexpat:expat -PKG_VERSION:=2.6.0 +PKG_VERSION:=2.6.2 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_HASH:=cb5f5a8ea211e1cabd59be0a933a52e3c02cc326e86a4d387d8d218e7ee47a3e +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_HASH:=d4cf38d26e21a56654ffe4acd9cd5481164619626802328506a2869afab29ab3 PKG_SOURCE_URL:=https://github.com/libexpat/libexpat/releases/download/R_$(subst .,_,$(PKG_VERSION)) HOST_BUILD_PARALLEL:=1 diff --git a/tools/firmware-utils/Makefile b/tools/firmware-utils/Makefile index 4809c9aa194c58..e22f7a7b9a7a76 100644 --- a/tools/firmware-utils/Makefile +++ b/tools/firmware-utils/Makefile @@ -11,9 +11,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware-utils.git -PKG_SOURCE_DATE:=2023-11-22 -PKG_SOURCE_VERSION:=d87b6c4b6423201e595459840f51d0dced04a4eb -PKG_MIRROR_HASH:=f34fbf4dc4bd13d18ea94e6e25090b57cde11b3dc7133e46f6ce3bb9164ab8fb +PKG_SOURCE_DATE:=2024-03-23 +PKG_SOURCE_VERSION:=6b242991a995c41769977efb010dc9f4e4ec3da2 +PKG_MIRROR_HASH:=00ff2661fda2eb299ccbfaa07dff8fbcf46b3441a6e9f6f46eaa119e66dbe142 include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/cmake.mk diff --git a/tools/gmp/Makefile b/tools/gmp/Makefile index 7f0a7a7a6a1eb1..f1aa5b1a4053d5 100644 --- a/tools/gmp/Makefile +++ b/tools/gmp/Makefile @@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gmp PKG_VERSION:=6.3.0 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/gmp/ -PKG_HASH:=a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898 +PKG_HASH:=e56fd59d76810932a0555aa15a14b61c16bed66110d3c75cc2ac49ddaa9ab24c PKG_CPE_ID:=cpe:/a:gmplib:gmp HOST_FIXUP:=autoreconf diff --git a/tools/isl/Makefile b/tools/isl/Makefile index 4ad23a63183183..1ce20fb49cb398 100644 --- a/tools/isl/Makefile +++ b/tools/isl/Makefile @@ -10,8 +10,8 @@ PKG_NAME:=isl PKG_VERSION:=0.26 PKG_SOURCE_URL:=https://libisl.sourceforge.io/ -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_HASH:=a0b5cb06d24f9fa9e77b55fabbe9a3c94a336190345c2555f9915bb38e976504 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_HASH:=b10473024cbf17d7db85323121eff0e50f03de14342a03738b4d384b587ce212 HOST_BUILD_PARALLEL:=1 diff --git a/tools/kernel2minor/Makefile b/tools/kernel2minor/Makefile index be730b4df6aa88..69108f43df2130 100644 --- a/tools/kernel2minor/Makefile +++ b/tools/kernel2minor/Makefile @@ -11,7 +11,7 @@ PKG_VERSION:=0.25 PKG_RELEASE:=1 PKG_SOURCE_URL:=https://github.com/adron-s/kernel2minor.git -PKG_MIRROR_HASH:=6083c46c2fe0da37bacd04d5d5439c0e2a9d00e58ff47a63acfd5057d2aa2145 +PKG_MIRROR_HASH:=4e59e6e9883a17b90d09d4b6df0cbff83badad9a0e148dfa730abafce000128d PKG_SOURCE_PROTO:=git PKG_SOURCE_VERSION:=1e5a52c7941945f6d64807ebca4a5923ba5466bd PKG_HASH:=33ca413403a3341af0c9a8e6d9bb58f4ad080a5339e8a8729b83637d35bfaf1b diff --git a/tools/libdeflate/Makefile b/tools/libdeflate/Makefile index 5da6c693eacbeb..fbf8bde984430a 100644 --- a/tools/libdeflate/Makefile +++ b/tools/libdeflate/Makefile @@ -10,13 +10,14 @@ PKG_NAME:=libdeflate PKG_VERSION:=1.19 PKG_RELEASE:=1 -PKG_SOURCE_URL:=https://github.com/ebiggers/libdeflate.git -PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=v$(PKG_VERSION) -PKG_MIRROR_HASH:=5aac9801815384a5e417c8345d25d07547648e28403566ef73a46295ec26b6c4 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://github.com/ebiggers/libdeflate/releases/download/v$(PKG_VERSION) +PKG_HASH:=d9bb9bdd8cc5a8c1f7f6226fa0053dd72861e15f366e7ff7d0d191eac16d66f3 include $(INCLUDE_DIR)/host-build.mk +DECOMPRESS_CMD:=$(STAGING_DIR_HOST)/bin/gzip -dc $(DL_DIR)/$(PKG_SOURCE) | + define Host/Compile $(HOSTCC_NOCACHE) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ $(HOST_BUILD_DIR)/lib/*{,/*}.c \ diff --git a/tools/libtool/Makefile b/tools/libtool/Makefile index 118719147821b9..dd9afc05bd86bf 100644 --- a/tools/libtool/Makefile +++ b/tools/libtool/Makefile @@ -10,9 +10,9 @@ PKG_NAME:=libtool PKG_CPE_ID:=cpe:/a:gnu:libtool PKG_VERSION:=2.4.7 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/$(PKG_NAME) -PKG_HASH:=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d +PKG_HASH:=04e96c2404ea70c590c546eba4202a4e12722c640016c12b9b2f1ce3d481e9a8 HOST_BUILD_PARALLEL:=1 diff --git a/tools/m4/Makefile b/tools/m4/Makefile index d621000daf56c1..ee369f3cbb3d99 100644 --- a/tools/m4/Makefile +++ b/tools/m4/Makefile @@ -10,10 +10,9 @@ PKG_NAME:=m4 PKG_CPE_ID:=cpe:/a:gnu:m4 PKG_VERSION:=1.4.19 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/$(PKG_NAME) -PKG_HASH:=63aede5c6d33b6d9b13511cd0be2cac046f2e70fd0a07aa9573a04a82783af96 -PKG_CAT:=xzcat +PKG_HASH:=3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70 HOST_BUILD_PARALLEL:=1 diff --git a/tools/make-ext4fs/Makefile b/tools/make-ext4fs/Makefile index 77031cdce31c0d..b5616b1bc7a718 100644 --- a/tools/make-ext4fs/Makefile +++ b/tools/make-ext4fs/Makefile @@ -13,7 +13,7 @@ PKG_SOURCE_URL=$(PROJECT_GIT)/project/make_ext4fs.git PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2020-01-05 PKG_SOURCE_VERSION:=5c201be7d72aff735da27e17c29852e0cefe3e52 -PKG_MIRROR_HASH:=a9b74b7b95acc84a5a5c33d6acf493faad8f161caca3180734d9bd383c9d823f +PKG_MIRROR_HASH:=ec8304dc06f94338e14e608a807f48e10d0987bdac4d90f235650b46994dfbd7 include $(INCLUDE_DIR)/host-build.mk diff --git a/tools/meson/Makefile b/tools/meson/Makefile index 23bb393a593346..96974faafe5f56 100644 --- a/tools/meson/Makefile +++ b/tools/meson/Makefile @@ -1,11 +1,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=meson -PKG_VERSION:=1.2.1 +PKG_VERSION:=1.3.2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/mesonbuild/meson/releases/download/$(PKG_VERSION) -PKG_HASH:=b1db3a153087549497ee52b1c938d2134e0338214fe14f7efd16fecd57b639f5 +PKG_HASH:=492eb450c8b073024276f916f5adbb3c4bb7e90e9e6ec124efda064f3d9b5baa PKG_MAINTAINER:=Andre Heider PKG_LICENSE:=Apache-2.0 diff --git a/tools/meson/files/openwrt-cross.txt.in b/tools/meson/files/openwrt-cross.txt.in index ba119150691820..836a0e51e4fb25 100644 --- a/tools/meson/files/openwrt-cross.txt.in +++ b/tools/meson/files/openwrt-cross.txt.in @@ -6,7 +6,7 @@ cpp_ld = [@LD@] ar = '@AR@' strip = '@STRIP@' nm = '@NM@' -pkgconfig = '@PKGCONFIG@' +pkg-config = '@PKGCONFIG@' cmake = '@CMAKE@' python = '@PYTHON@' diff --git a/tools/meson/files/openwrt-native.txt.in b/tools/meson/files/openwrt-native.txt.in index 48e09ece2c6589..179e00b43ee18e 100644 --- a/tools/meson/files/openwrt-native.txt.in +++ b/tools/meson/files/openwrt-native.txt.in @@ -1,7 +1,7 @@ [binaries] c = [@CC@] cpp = [@CXX@] -pkgconfig = '@PKGCONFIG@' +pkg-config = '@PKGCONFIG@' cmake = '@CMAKE@' python = '@PYTHON@' diff --git a/tools/mpfr/Makefile b/tools/mpfr/Makefile index e7f5106a672c0a..bfbbf399d2cc62 100644 --- a/tools/mpfr/Makefile +++ b/tools/mpfr/Makefile @@ -11,8 +11,8 @@ PKG_VERSION:=4.2.1 PKG_CPE_ID:=cpe:/a:mpfr:gnu_mpfr PKG_SOURCE_URL:=@GNU/mpfr http://www.mpfr.org/mpfr-$(PKG_VERSION) -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_HASH:=277807353a6726978996945af13e52829e3abd7a9a5b7fb2793894e18f1fcbb2 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_HASH:=116715552bd966c85b417c424db1bbdf639f53836eb361549d1f8d6ded5cb4c6 HOST_BUILD_PARALLEL:=1 HOST_FIXUP:=autoreconf diff --git a/tools/patch/Makefile b/tools/patch/Makefile index 957fe6e309f85c..f4cf588622ffa9 100644 --- a/tools/patch/Makefile +++ b/tools/patch/Makefile @@ -11,9 +11,9 @@ PKG_VERSION:=2.7.6 PKG_RELEASE:=7 PKG_CPE_ID:=cpe:/a:gnu:patch -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/patch -PKG_HASH:=ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd +PKG_HASH:=8cf86e00ad3aaa6d26aca30640e86b0e3e1f395ed99f189b06d4c9f74bc58a4e HOST_BUILD_PARALLEL := 1 diff --git a/tools/pkgconf/Makefile b/tools/pkgconf/Makefile index e1dea71c8a31c4..517b8d847ba874 100644 --- a/tools/pkgconf/Makefile +++ b/tools/pkgconf/Makefile @@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pkgconf PKG_VERSION:=2.1.1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://distfiles.dereferenced.org/pkgconf -PKG_HASH:=3a224f2accf091b77a5781316e27b9ee3ba82c083cc2e539e08940b68a44fec5 +PKG_HASH:=1a00b7fa08c7b506a24c40f7cc8d9e0e59be748d731af8f7aa0b4d722bd8ccbe PKG_CPE_ID:=cpe:/a:pkgconf:pkgconf diff --git a/tools/sdimage/Makefile b/tools/sdimage/Makefile index 532bc481ac4950..e09b1e01f472d0 100644 --- a/tools/sdimage/Makefile +++ b/tools/sdimage/Makefile @@ -13,7 +13,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/mhei/fsl-imx-uuc.git PKG_SOURCE_DATE:=2018-11-18 PKG_SOURCE_VERSION:=c6536ac5b4388b33c217bde2c3a76a4e96d64176 -PKG_MIRROR_HASH:=747fb640a0596cab7d516979188e1f85be58c470df85cf1f7e3dcf8a4c1b36e5 +PKG_MIRROR_HASH:=c4487635ea06ea6311a28739c58f7f889b888c91b7ccc0398d225b4bcdeb76a3 PKG_LICENSE:=GPL-2.0+ PKG_LICENSE_FILES:=LICENSE diff --git a/tools/sed/Makefile b/tools/sed/Makefile index 49cbc72e6e1db6..f6bb61e2295cfa 100644 --- a/tools/sed/Makefile +++ b/tools/sed/Makefile @@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sed PKG_VERSION:=4.9 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/$(PKG_NAME) -PKG_HASH:=6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181 +PKG_HASH:=d1478a18f033a73ac16822901f6533d30b6be561bcbce46ffd7abce93602282e PKG_CPE_ID:=cpe:/a:gnu:sed export SED:= diff --git a/tools/sparse/Makefile b/tools/sparse/Makefile index e08bd1d05f55a1..74d25bfbde6908 100644 --- a/tools/sparse/Makefile +++ b/tools/sparse/Makefile @@ -7,10 +7,10 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sparse PKG_VERSION:=0.6.4 -PKG_HASH:=6ab28b4991bc6aedbd73550291360aa6ab3df41f59206a9bde9690208a6e387c +PKG_HASH:=8b907c007459a66db110496f0a02fcff1c3c8b67ddff37b959fb102a28424209 PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@KERNEL/software/devel/sparse/dist/ PKG_BUILD_PARALLEL:=1 diff --git a/tools/squashfs4/Makefile b/tools/squashfs4/Makefile index ce66a8558069cf..38c3e5233fd0df 100644 --- a/tools/squashfs4/Makefile +++ b/tools/squashfs4/Makefile @@ -15,7 +15,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/plougher/squashfs-tools PKG_SOURCE_DATE:=2023-03-26 PKG_SOURCE_VERSION:=d8cb82d9840330f9344ec37b992595b5d7b44184 -PKG_MIRROR_HASH:=fc625af657ca284d69fbc32e3bb572d0afd566cf816b7c1c1b66dda0a0c2760a +PKG_MIRROR_HASH:=e84026de1ab187f3f76d1b781a29259d818f887e1651225f850a62d6f90b1b9e HOST_BUILD_PARALLEL:=1 diff --git a/tools/tar/Makefile b/tools/tar/Makefile index 47aad9ec6e0404..a05ffc43816720 100644 --- a/tools/tar/Makefile +++ b/tools/tar/Makefile @@ -10,9 +10,9 @@ PKG_NAME:=tar PKG_CPE_ID:=cpe:/a:gnu:tar PKG_VERSION:=1.34 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/tar -PKG_HASH:=63bebd26879c5e1eea4352f0d03c991f966aeb3ddeb3c7445c902568d5411d28 +PKG_HASH:=03d908cf5768cfe6b7ad588c921c6ed21acabfb2b79b788d1330453507647aed HOST_BUILD_PARALLEL:=1 diff --git a/tools/util-linux/Makefile b/tools/util-linux/Makefile index acd819e38b78b2..846005ebe9210e 100644 --- a/tools/util-linux/Makefile +++ b/tools/util-linux/Makefile @@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=util-linux PKG_VERSION:=2.39.3 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.39 -PKG_HASH:=7b6605e48d1a49f43cc4b4cfc59f313d0dd5402fa40b96810bd572e167dfed0f +PKG_HASH:=40ea07584d56c310455471afa92c119ec259776a561af7159cc802344c2c370d PKG_CPE_ID:=cpe:/a:kernel:util-linux HOST_BUILD_PARALLEL:=1 diff --git a/tools/zlib/Makefile b/tools/zlib/Makefile index 6786e14be40d7c..f7434456787a07 100644 --- a/tools/zlib/Makefile +++ b/tools/zlib/Makefile @@ -11,9 +11,9 @@ PKG_NAME:=zlib PKG_VERSION:=1.3.1 PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/madler/zlib/releases/download/v$(PKG_VERSION) -PKG_HASH:=38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32 +PKG_HASH:=9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23 PKG_LICENSE:=Zlib PKG_LICENSE_FILES:=README diff --git a/tools/zstd/Makefile b/tools/zstd/Makefile index 4d46a5f9505597..728cef26b8fd4d 100644 --- a/tools/zstd/Makefile +++ b/tools/zstd/Makefile @@ -1,35 +1,45 @@ include $(TOPDIR)/rules.mk PKG_NAME:=zstd -PKG_VERSION:=1.5.5 +PKG_VERSION:=1.5.6 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/facebook/zstd/releases/download/v$(PKG_VERSION) -PKG_HASH:=9c4396cc829cfae319a6e2615202e82aad41372073482fce286fac78646d3ee4 +PKG_HASH:=8c29e06cf42aacc1eafc4077ae2ec6c6fcb96a626157e0593d5e82a34fd403c1 PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE PKG_CPE_ID:=cpe:/a:facebook:zstandard -include $(INCLUDE_DIR)/host-build.mk -include $(INCLUDE_DIR)/meson.mk +HOST_BUILD_PARALLEL:=1 -MESON_HOST_BUILD_DIR:=$(HOST_BUILD_DIR)/build/meson/openwrt-build +include $(INCLUDE_DIR)/host-build.mk HOSTCC:= $(HOSTCC_NOCACHE) -MESON_HOST_ARGS += \ - -Ddefault_library=static \ - -Dlegacy_level=7 \ - -Ddebug_level=0 \ - -Dbacktrace=disabled \ - -Dstatic_runtime=false \ - -Dbin_programs=true \ - -Dbin_tests=false \ - -Dbin_contrib=false \ - -Dmulti_thread=enabled \ - -Dzlib=disabled \ - -Dlzma=disabled \ - -Dlz4=disabled +HOST_CFLAGS += \ + -DZSTDCLI_CLEVEL_MAX=20 + +HOST_MAKE_FLAGS += \ + BACKTRACE=0 \ + HAVE_THREAD=1 \ + HAVE_ZLIB=0 \ + HAVE_LZMA=0 \ + HAVE_LZ4=0 \ + PREFIX=$(HOST_BUILD_PREFIX) + +define Host/Compile + $(call Host/Compile/Default,lib-mt) + $(call Host/Compile/Default,zstd) +endef + +define Host/Install + +$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR)/lib install-mt-pc install-static install-includes PREFIX=$(HOST_BUILD_PREFIX) + +$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR)/programs install PREFIX=$(HOST_BUILD_PREFIX) +endef + +define Host/Uninstall + -$(call Host/Compile/Default,uninstall) +endef $(eval $(call HostBuild)) diff --git a/tools/zstd/patches/100-Provide-variant-pkg-config-file-for-multi-threaded-s.patch b/tools/zstd/patches/100-Provide-variant-pkg-config-file-for-multi-threaded-s.patch new file mode 100644 index 00000000000000..a7b3823e6642d0 --- /dev/null +++ b/tools/zstd/patches/100-Provide-variant-pkg-config-file-for-multi-threaded-s.patch @@ -0,0 +1,97 @@ +From 5886e6a45b3c20c8d8f837657d1506b580434136 Mon Sep 17 00:00:00 2001 +From: Christian Marangi +Date: Sat, 6 Apr 2024 14:41:54 +0200 +Subject: [PATCH] Provide variant pkg-config file for multi-threaded static lib + +Multi-threaded static library require -pthread to correctly link and works. +The pkg-config we provide tho only works with dynamic multi-threaded library +and won't provide the correct libs and cflags values if lib-mt is used. + +To handle this, introduce a variant of libzstd.pc.in, mt-libzstd.pc.in +and intoduce a new make target, install-mt-pc to permit advanced user to +install and generate a correct pkg-config file for lib-mt. + +This was notice while migrating from meson to make build system where +meson generates a correct .pc file while make doesn't. + +Signed-off-by: Christian Marangi +--- + lib/Makefile | 16 ++++++++++++++++ + lib/README.md | 4 ++++ + lib/mt-libzstd.pc.in | 15 +++++++++++++++ + 3 files changed, 35 insertions(+) + create mode 100644 lib/mt-libzstd.pc.in + +diff --git a/lib/Makefile b/lib/Makefile +index 8bfdade9..4933f0e9 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -319,6 +319,17 @@ libzstd.pc: libzstd.pc.in + -e 's|@LIBS_PRIVATE@|$(LDFLAGS_DYNLIB)|' \ + $< >$@ + ++mt-libzstd.pc: mt-libzstd.pc.in ++ @echo creating pkgconfig ++ @sed \ ++ -e 's|@PREFIX@|$(PREFIX)|' \ ++ -e 's|@EXEC_PREFIX@|$(PCEXEC_PREFIX)|' \ ++ -e 's|@INCLUDEDIR@|$(PCINCPREFIX)$(PCINCDIR)|' \ ++ -e 's|@LIBDIR@|$(PCLIBPREFIX)$(PCLIBDIR)|' \ ++ -e 's|@VERSION@|$(VERSION)|' \ ++ -e 's|@LIBS_PRIVATE@|$(LDFLAGS_DYNLIB)|' \ ++ $< >$@ ++ + .PHONY: install + install: install-pc install-static install-shared install-includes + @echo zstd static and shared library installed +@@ -328,6 +339,11 @@ install-pc: libzstd.pc + [ -e $(DESTDIR)$(PKGCONFIGDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/ + $(INSTALL_DATA) libzstd.pc $(DESTDIR)$(PKGCONFIGDIR)/ + ++.PHONY: install-mt-pc ++install-mt-pc: mt-libzstd.pc ++ [ -e $(DESTDIR)$(PKGCONFIGDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/ ++ $(INSTALL_DATA) mt-libzstd.pc $(DESTDIR)$(PKGCONFIGDIR)/libzstd.pc ++ + .PHONY: install-static + install-static: + # only generate libzstd.a if it's not already present +diff --git a/lib/README.md b/lib/README.md +index a560f06c..3038bc7a 100644 +--- a/lib/README.md ++++ b/lib/README.md +@@ -33,6 +33,10 @@ For convenience, we provide a build target to generate multi and single threaded + When linking a POSIX program with a multithreaded version of `libzstd`, + note that it's necessary to invoke the `-pthread` flag during link stage. + ++The `.pc` generated from `make install` or `make install-pc` always assume a single-threaded static library ++is compiled. If `make lib-mt` is used, to correctly generate a `.pc` for the multi-threaded static library, ++`make install-mt-pc` is needed. ++ + Multithreading capabilities are exposed + via the [advanced API defined in `lib/zstd.h`](https://github.com/facebook/zstd/blob/v1.4.3/lib/zstd.h#L351). + +diff --git a/lib/mt-libzstd.pc.in b/lib/mt-libzstd.pc.in +new file mode 100644 +index 00000000..cd93301a +--- /dev/null ++++ b/lib/mt-libzstd.pc.in +@@ -0,0 +1,15 @@ ++# ZSTD - standard compression algorithm ++# Copyright (c) Meta Platforms, Inc. and affiliates. ++# BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php) ++ ++prefix=@PREFIX@ ++exec_prefix=@EXEC_PREFIX@ ++includedir=@INCLUDEDIR@ ++libdir=@LIBDIR@ ++ ++Name: zstd ++Description: fast lossless compression algorithm library ++URL: https://facebook.github.io/zstd/ ++Version: @VERSION@ ++Libs: -L${libdir} -lzstd @LIBS_PRIVATE@ ++Cflags: -I${includedir} @LIBS_PRIVATE@ +-- +2.43.0 +