Packages disappeared from 23.05.3 (e.g. php8-cli)

Hi
I just run my build script which creates an image with my custom list of packages and now the php8 packages cannot be found for installation. -> Unknown package 'php8-cli'.

You can try yourself with the online image builder at https://firmware-selector.openwrt.org/?version=23.05.3&target=x86%2F64&id=generic by adding php8-cli as custom package.

I checked my existing OpenWRT 23.05.3 devices and there e.g. php8-cli is in version 8.2.18-1. On the package table at https://openwrt.org/packages/table/start I can only see an older php-cli 8.1.25-1 listed and if I follow the link to https://openwrt.org/packages/pkgdata/php8-cli i can only see it for an older OpenWRT release.

Any idea what has happened to the php8 packages? Why have they bin removed from the 25.03.3 package index?

There's currently a lot of build failures for the php8 packages. You can monitor them here, they'll come back as soon as someone feels like fixing the problem.

https://mirror-03.infra.openwrt.org/releases/faillogs-23.05/x86_64/packages/

1 Like

Thanks @efahl
I didn't know where to find it via https://openwrt.org/infrastructure :slight_smile:

Oh no, I had thought that the packages of a specific OpenWRT version (e.g. release 23.05.3) are "pinned" and they don't change (and are not being recompiled) after the release.

So this means if I have two OpenWRT 23.05.3 devices and on one of them I install today a package and on the other I install the same package tomorrow, it may be a different version?

I thought that the imagebuilder uses the packages that were built for that specific OpenWRT version :frowning:

What is the best way to prevent such issues when building it's own images? Without compiling everything locally again.

That is correct. There are backports of packages that make it into the release on a rolling basis. You can monitor that here: https://git.openwrt.org/?p=feed/packages.git;a=shortlog;h=refs/heads/openwrt-23.05

The imagebuilder contains only the couple hundred packages required to make the basic release images, all the rest are pulled from the current repos (there are like 11000+ candidate packages, so putting them all in the imagebuilder would be unfeasible: opkg update && opkg list | wc -l).

If that's an issue (government auditing or something like that), and you don't know what packages you'll need, then I think building from source at a pinned revision is the best solution.

Or you could create a mirror and do a snapshot download of the package repos. Size may be an issue, looks like about 10GB of "stuff":

$ opkg update
... make sure the package lists are up-to-date ...

$ cat how_big
#!/bin/sh
n_total=0
for list in /tmp/opkg-lists/openwrt_*; do
        [ "${list: -3}" = "sig" ] && continue
        n_bytes=$(zcat $list | grep 'Size: ' | awk -v l="$list" '{n += $2} END{print n}')
        n_total=$((n_total + n_bytes))
        printf "%-35s   %10d\n" "$list" "$n_bytes"
done
printf "%35s   %10d\n" "Sum total" "$n_total"

$ ./how_big
/tmp/opkg-lists/openwrt_base           659971341
/tmp/opkg-lists/openwrt_core           184785215
/tmp/opkg-lists/openwrt_kmods          144717740
/tmp/opkg-lists/openwrt_luci            58789091
/tmp/opkg-lists/openwrt_packages      8814104115
/tmp/opkg-lists/openwrt_routing         12793455
/tmp/opkg-lists/openwrt_telephony      117510893
                          Sum total   9992671850
1 Like

As of last night, it looks like the php8 packages are again available for 23.05...