LEDE, the unofficial successor of OpenWRT, is going to release its first stable release 17.01 soon. I have written and rewritten a lot of automated firmware building systems in the past during my work at BOWL, 42reports and more recently DILAX. It's no big deal, the toolchain and feed system from LEDE already do most of the work. You just have to maintain your changes/requirements on top of it.
Usually these fall into one of five categories:
- .config file - The file that defines the image(s) to be build and the packages included
- files/ folder - they contain custom files to overlay on the base system, mainly configuration files
- package feeds - they extend the base set of LEDE packages, there are multiple package feeds available, but not selected by default. Also a package feed is the best place to make your own application available to build with the LEDE toolchain
- patches - patches on top of the LEDE base system or external package feeds
- specific version - pinpointing a specific LEDE version to enable reproducibility
My weekend project the docker-lede-firmwarebuilder helps you to achieve two of these five bullets. It allows you to maintain your own .config file and files/ folder with the current LEDE trunk. It was my first journey into using docker and working with containers.