How do you maintain a custom feed?


I use the latest stable firmware, but I want to use some packages from the bleeding edge. This is how I currently achieve the goal:

  1. Fork openwrt/packages and use the openwrt-<latest stable version> branch.
  2. Use a CI to build the packages I need with the latest stable SDK.
  3. Upload the build result to a HTTP server.
  4. Make my OpenWRT machine use the HTTP server as a custom feed.

This mostly work well. However, there is one major drawback: even if I just change a single package, all needed packages have to be rebuilt and re-uploaded in order for the package index to not miss anything, which can be very time consuming.

I wonder if it's possible to just build the changed packages and have the package index correctly updated? This should also account for omitting packages that were previous built but are not needed anymore.

Do people maintain their own feeds? How are you solving this problem?

Just have a local source repo with the stable 22.03 sources and also the package feed sources, then edit the needed packages by backporting the versions from master to your local 22.03 repo, and then compile a personal firmware.

Likely much easier than keeping a separate .ipk download repo.

1 Like

Thanks for the quick reply.

My current dev machine is a Mac, and it uses Apple silicon. It seems the build support is flaky. So I opt for a x64 CI. Building the source directly seems to be more time consuming with a CI? Maybe it can speed up if the CI caches build result, but I'm not sure which directories contains the cache?

Using a custom firmware is definitely a better choice when you want to upgrade, but I wonder if it's overkill if you just want to use a new version of package with firmware being the same for example?

Even if you have a Mac, you could pretty easily use normal Linux for building...

I use Ubuntu linux as the buildhost, but is running in virtualbox in Windows 11.

That's good to know.

But with Apple silicon, I guess I can only use ARM linux as the buildhost in the VM? And it seems the support for ARM buildhost is flaky.

The post was from 2021, maybe that's not the case any more?

The problem is more with the peculiarities of MacOS on Apple silicon, than issues with building on (Linux-) ARM itself. While the situation might be improving over time, I haven't heard any success stories about building on MacOS/ ARM so far.

Thanks for the heads up.

So that means the build system actually has no problem building OpenWRT on an ARM linux inside a VM on Apple silicon?

I'll give it a shot soon.