Owut: OpenWrt Upgrade Tool

Main is where all (well, almost all) development work is done. When new platform support is added, or new features or bug fixes, they almost always are against the current main HEAD. That's easiest work with, unless you ("you" being a dev) are working on a specific bug in a specific release branch, in which case you work on say "openwrt-23.05 HEAD" and your changes probably don't go anywhere else.

Once a bug is fixed on main, then it may (or may not) get backported to one or more release branches, all depending on what it fixes and indeed if the bug existed in those branches.

The 24.10-SNAPSHOT builds come from the head of the openwrt-24.10 branch, and track all the commits that have been backported from main.

If you watch https://git.openwrt.org/openwrt/openwrt.git, you'll see the current main commits as they occur. Scroll all the way to the bottom and you'll see the release branches, click on the "shortlog" for a given branch, you'll see the commits that are included in the "xxx-SNAPSHOT" build for that branch.

Just above the heads, you see the release tags. These are pointers into the branches that demarcate the actual releases on that branch (basically stake in the ground for building the xx.yy.zz for each zz point release). These being "tags" and not "branches", they cannot be updated, you need a new zz point tag to get changes from the openwrt-xx.yy branch into a new "OpenWrt Service Release".

There's a nice graphic somewhere in the wiki, maybe someone can link to it (I'm too lazy to dig it out😁).
Aha, found it at the bottom of https://openwrt.org/about/history:

1 Like

I might be able to help.
I have a BPI r4 acting as a dumb AP at the moment.
Is there anything in particular that you want to test?

Personally, I'm mostly interested in the upgrade process, auc, owut and LuCI ASU app upgrades and "downgrades", as that flushes out issues in the builds, imagebuilders, docker images and ASU server/clients. (I've got my own local ASU server, so I can hack it up to test many of these things, but since I only have a limited collection of devices, I have depth but not breadth in my testing.)

The devs would be interested in any functional changes, but if you're already running SNAPSHOT, there's likely too little difference between that and 24.10 to be of any real use at this point -- probably want to wait for the RC releases...

1 Like

I'm curious if anyone wants to test out 24.10-SNAPSHOT builds?

I would be interested in this - not as much for testing, although I would report issues - but just to make upgrades easier for myself.
I'm currently using SNAPSHOT builds to get a few features that weren't in 23.05, but I normally prefer to stick to stable releases. It would be nice to switch to using builds from the 24.10 branch so I don't accidentally get "too far ahead" on the main branch in case some major changes are merged that don't go into 24.10.

I believe the 24.10 branch will be exposed shortly (days?), as the main snapshot branch is switching over from opkg to apk as of tomorrow. I can currently install 24.10-SNAPSHOT with owut from my test ASU server, but the changes I'm running locally haven't been committed on the production server yet.

Warning to everyone, things are likely going to be pretty shaky for the next week or so with all the non-stable builds.

Edit: APK is now the default package manager on SNAPSHOT https://github.com/openwrt/openwrt/commit/40b8fbaa9754c86480eefc3692c9116a51a64718

Just curious if you know of a thread on Github (or here) where this change was discussed and its implications for installing & managing packages on OpenWrt?

Since this is a big change, I'd like to become more informed about it.

What are the implications for current SNAPSHOT users?

I do have opkg installed and luci-app-package-manager. Would owut request a build with the same? Or apk-mbedtls will also be installed??

The default packages on the firmware selector still show opkg. You mentioned like a week ago that having both is not desirable.

If I don't install anything through the package manager (wether is opkg or apk), I won't have any trouble in the coming days, right???

Cheers!

There's this recent thread on the forums, The future: opkg vs apk - #29 by efahl, and bunch of emails going back for years preceding the one I linked above on the devel email list.

Oops, link was on another thread: https://lists.openwrt.org/pipermail/openwrt-devel/2024-November/043378.html

1 Like

On the contrary, SNAPSHOT will probably be in turmoil for the next few days as things get flushed through. The builds will be especially long, as not only the base OpenWrt images need to be rebuilt, but all of the packages, too.

None of the ASU-based client-side upgrade tools will work, as the ubus call we're using does not support apk yet. The ASU server itself will be broken because we don't have an API in place for the package lists yet. Firmware Selector has the best chance of working, as it works without access to your device and thus doesn't need and/or check a lot of things that auc, owut and LuCI app do...

2 Likes

So, putting my packages (including opkg) on the customize section of the Firmware Selector would theoretically work? And then flash that generated image?

I guess I'll wait like 2 weeks to test a new snapshot and keep an eye on this forum for news.

Thanks!

No, I don't think that opkg will work on the new builds at all as there won't be any opkg-based package data in the build, and there won't be any opkg .ipk files in the feeds. To get back to opkg, you'll need to set up your own local buildroot and inside make menuconfig you'd turn off apk and turn on opkg, then do a full build... Then on your device opkg install <new-package> won't work because there won't be any feeds for it.

1 Like

I'm guessing this is why I'm getting the Error 500 again?

>/builder/staging_dir/host/bin/opkg: the ``install'' command requires at least one argument
make[2]: *** [Makefile:224: package_install] Error 1
make[1]: *** [Makefile:165: _call_manifest] Error 2
make: *** [Makefile:339: manifest] Error 2

That's the bug I mentioned here, which should be fixed now. But... It's very likely that the ongoing apk/opkg switchover is going to thwart you for at least a few days.

No worries, I'm not planning on doing much to my system until next weekend anyway, but I am still getting that same error, not sure if that's indicative that it's not fixed or if the apk/opkg switchover is presenting in the same manner?

It often takes a few days for fixes to filter through, as the builds take anywhere from 10 minutes to several hours each, there are about 40-45 targets, some targets have 4-5 subtargets, some subtargets have hundreds of device profiles (probably the worst is ath79/generic, almost 1000 different images: https://downloads.openwrt.org/snapshots/targets/ath79/generic/). Usually it's just main SNAPSHOT doing all of those regularly (the release builds are only built once), with the xx.yy-SNAPSHOT getting a few backports at irregular intervals. Right now though, there are frequent backports on 24.10-SNAPSHOT so the load is like twice as heavy as usual. Plus, all those package builds I mentioned above...

 owut check
owut - OpenWrt Upgrade Tool 2024.10.27~8c7e42f0-r1 (/usr/bin/owut)
ASU-Server     https://sysupgrade.openwrt.org
Upstream       https://downloads.openwrt.org
Target         mediatek/filogic
Profile        mercusys_mr90x-v1
Package-arch   aarch64_cortex-a53
Root-FS-type   squashfs
Sys-type       sysupgrade
Version-from   SNAPSHOT r28034-ca53f2d430 (kernel 6.6.59)
Version-to     SNAPSHOT r28056-40b8fbaa97 (kernel unknown)
64 packages missing in target version, cannot upgrade
78 packages are out-of-date

How can I switch to 24.10-SNAPSHOT using owut?

Update: a bit of chaos in the changeover as expected. Apparently both opkg and apk are both in the builds at the moment. ( See dev list )

You can't at the moment, the ASU server needs to be updated first. Or you could set up your own local ASU server, but that's a lot of work.

I keep getting this error in the most recent snapshot
My bad, I didn't notice this answer.

root@OpenWrt:~# owut check
owut - OpenWrt Upgrade Tool 2024.10.27~8c7e42f0-r1 (/usr/bin/owut)
ERROR: ubus: Not found: Failed to invoke function 'packagelist' on object 'rpc-sys'
 from: 'ubus call rpc-sys packagelist { "all": true }'
This is a bug in 'owut/2024.10.27~8c7e42f0-r1', please report at
  https://github.com/efahl/owut/issues

You're most certainly using a SNAPSHOT that uses now APK instead of OPKG, so the ubus call to get the packages doesn't work. More info here: The future is now: opkg vs apk - #40 by efahl

You need to wait for things get sorted out. Probably you'll need to create a future custom build on the firmware selector with your packages eventually.

Cheers!

3 Likes