Compiling a package from a forked openwrt/packages

Recently got first pull request to update kitty-terminfo package openwrt/packages#30876 merged. This is a guide on how I compiled kitty-terminfo.

Before compiling the package, I’ve already forked openwrt/packages repo to curbengh/openwrt-packages, created “kitty” branch and pushed the commit to the branch.

Let’s start by cloning the “openwrt/openwrt” repo and checkout the latest stable branch.

# https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem
git clone https://github.com/openwrt/openwrt.git
cd openwrt
git checkout v25.12.6

Update the “packages” line to point to the commit of forked repo, in my case, it’s https://github.com/curbengh/openwrt-packages.git^ba7792c8d2396eb23ec6bcf5a20876525aa3f7b8

nano feeds.conf.default
  src-git packages https://github.com/curbengh/openwrt-packages.git^commit-hash

Update and install feeds

./scripts/feeds update -a
./scripts/feeds install -a

Select a device and the relevant package to build. “Target images” can be deselected to skip building device image. Refer to firmware-selector page to find out target and subtarget name.

make menuconfig
  Target System: MediaTek ARM
  Subtarget: Filelogic
  Target Profile: Xiaomi Mi Router AX3000T
  Target Images: deselect

  scroll to bottom > Utilities > Terminal > kitty-terminfo
  Libraries > libncurses (automatically selected, optional if current dependency version is ok)

make defconfig download clean world

Install build tools

# https://openwrt.org/docs/guide-developer/toolchain/single.package
make tools/install
make toolchain/install

Finally, compile the package.

make package/ncurses/compile
make package/kitty-terminfo/compile
make package/index

Compiled package is available in the “bin/“ folder.