[LEDE-DEV] Buildbot

Jo-Philipp Wich jo at mein.io
Tue May 10 03:14:12 PDT 2016


Hi,

> I may be asking a stupid question, but why does the build system have to
> build everything every time.

until recently this wasn't possible due to certain technical
limitations, some of which we already addressed [1].

> Under OpenWRT a typical build will take 12 - 16+ hours, of which 10+
> will be spent building the packages. very few of which will have changed.

Correct.

> Would it be possible to split the base system and the packages into two
> separate builds in order to speed up the build process.

We already did that [2], also see:
http://phase1.builds.lede-project.org/
http://phase2.builds.lede-project.org/

> Would it be possible to build only those packages that have changed. I
> realize that if some underlying common source code has changed then all
> the affected apps will need to be rebuilt. However, if a linked library
> has changed why do we recompile, why not just re-link?

Not at the moment. Implementing that would imply the ability to keep all
build trees on disk, we currently lack the resources to do so.

Another approach is to rebuild single packages (plus their dependency
subtrees) using the SDK, then patch and re-sign the repository index
files in-place. This is an approach I used for binary security updates
in OpenWrt [3] but it has certain locking / race condition implications
as multiple parallel running builders need to patch the same repository
index files so it is rather hard to do correctly in a distributed manner.

1:
https://git.lede-project.org/?p=source.git;a=commit;h=5170393f8cae3c5acac61bd6ac6e127f9727cee4
2: https://git.lede-project.org/?p=buildbot.git;a=summary
3: https://github.com/openwrt/buildscripts

~ Jo



More information about the Lede-dev mailing list