I whipped up a script that checks for broken package builds, compares them to what you have installed and tells you if an auc
upgrade will succeed (I hope it does, anyhow ).
https://raw.githubusercontent.com/efahl/tools/main/src/pkg-scan.sh
If you download that to your router, and run it like this:
$ wget https://raw.githubusercontent.com/efahl/tools/main/src/pkg-scan.sh
$ chmod +x pkg-scan.sh
$ ./pkg-scan.sh --check --version-to 23.05.2
it should show you the currently broken packages for your device, and an indicator as to whether that will cause an issue. Here's example output on my x86 VM, take note of the "package build failures" section, where we see that cloudflared and wifidog are currently broken on in 23.05.2 for that device.
$ ./pkg-scan.sh --check -V 23.05.2
Board-name generic
Target x86/64
Package-arch x86_64
Version-from SNAPSHOT r24750-f1de1a090f (kernel 6.1.70)
Version-to 23.05.2 r23630-842932a63d (kernel 5.15.137)
Image-prefix openwrt-23.05.2-x86-64-generic
Root-FS-type ext4
Sys-type combined-efi
Image-file openwrt-23.05.2-x86-64-generic-ext4-combined-efi.img.gz
Build-at 2023-11-14T13:38:11.000000Z
Default package analysis:
dnsmasq - default package replaced/provided by dnsmasq-full
libgcc - default package replaced/provided by libgcc1
libustream-mbedtls - Warning: default package is not present
nftables - default package replaced/provided by nftables-json
There are currently package build failures for 23.05.2 x86_64:
cloudflared - Package not installed locally, you should be ok
shared-mime-info - Package not installed locally, you should be ok
Details at https://downloads.openwrt.org/releases/faillogs-23.05/x86_64/packages/
Installed packages replaced in 23.05.2:
No changes detected.
Installed packages not available in 23.05.2:
No issues, all packages present.
Done, logged 76 of 259 entries in ./pkg-scan-installed.txt
To just print out the packages you need to append to the list on the firmware selector, use this:
$ ./pkg-scan.sh --list
auc bind-dig btop conntrack curl diffutils dmidecode dnsmasq-full ethtool fdisk gawk grep grub2 grub2-efi htop iperf3 iptables-nft kmod-lib-lzo kmod-nft-dup-inet kmod-nft-xfrm less libudev-zero lscpu luasocket luci luci-app-adblock luci-app-attendedsysupgrade luci-app-sqm luci-app-statistics luci-ssl-openssl luci-theme-openwrt-2020 mtr-json nmap ntpdate openssh-sftp-server pciutils snort3 strace tc-tiny tcpdump usbutils vim-full
Some caveats:
-
The output from
--list
may contain packages that conflict with the default packages for your platform. The above example contains one such case, withdnsmasq-full
, which replaces the basicdnsmasq
package. The solution is simply to delete the replaced package (dnsmasq
in this example) from the list of default packages to avoid a build conflict. -
You can get a full list of top-level packages by using
--list --defaults
. In this case, you'd use the generated list to replace the whole package list in the Firmware Selector. This might not work if you are upgrading versions and packages were renamed, added or deleted. For example, with some MediaTek devices the jump from 22.03 to 23.05 contains a refactoring of the kmods such that the 5G radio wouldn't work until you added a missing set of packages. When jumping versions it's probably best to just use--list
and do some manual fixes to the resulting full list.