[buildgear-devel] [ANNOUNCE] Build Gear version 0.9.24

Martin Lund martin.lund at keep-it-simple.com
Fri Feb 6 04:10:42 MST 2015

Hi all,

Build Gear version 0.9.24 is now available for download:


This is a bug fix release.

Eventhough this is a bugfix release there are important fixes this time 
that might change the work flow for some. In particular, now it is no 
longer possible to update and build a package without triggering 
rebuilds of any packages that depends directly or indirectly on the 
updated package. The previous behaviour was actually considered a useful 
feature (not a bug) because it allowed to manually update a package 
without triggering a lot of rebuilding which is fine if you know what 
you are doing. However, it can also lead to inconsistent build output 
because the change affected dependency tree is not guaranteed fully 
rebuilt. With the new fixes, updated packages/builds will consistently 
trigger rebuilding of any affected dependencies.

This is principally the correct thing to do to assure consistent build 
output. Now, time will tell how this affects the work flow.

One immediate effect with the current board build files is that if one 
changes eg. the kernel configuration file (in eg. native/linux-source) 
it will consistently trigger a rebuild of the crosstool-ng toolchain 
because it depends on linux-source and this in turn will trigger a full 
rebuild of the fs. This is principally the correct behaviour because any 
change to linux-source might affect the way the toolchain is built 
(header API changes etc.). However, in practice it can become very 
tedious to rebuild everything each time you change your linux kernel 
configuration. For now, one way to avoid this would be to duplicate the 
linux-source package (into eg. native/linux-source-ct-ng) and have 
crosstool-ng exclusively depend on this new package while eg. the main 
linux build and other linux module builds etc. continue to depend on 
native/linux-source. Alternatively, it is also possible to simply touch 
the toolchain package (touch build/package/crosstool-ng...) after the 
native/linux-source package has been built to bypass rebuild of 
native/crosstool-ng. Not very practical but the new behaviour is 
principally the correct thing to do to ensure consistent build output.

Please see the attached change log for more details.

Thanks to Kalle and Jesper for the bug fixes.

The new version will be available via Ubuntu PPA as soon as possible:


Change log:

=== Build Gear v0.9.24 ===

Changes since Build Gear v0.9.23:

Kalle Lampila:

  * Fix package dependency age compare

  * Fix bug that package is not rebuild even if dependency package is 

  * Rebuild package, if dependency package is newer

  * Return time_t from Age()-function

    Avoid unnecessary casting to long.

  * Allow run config --global outside buildgear dir

  * Delete outdated package output, if there is not package output 
anymore. rebuild buildfiles without build() only when needed.

  * Ensure outdated package output deletion

    Delete outdated package output, if there is not package output anymore.

  * Rebuild buildfiles without build() only when needed

    If buildfile has no build rules, it not make output package. So it
    need only mark with build flag only when it has dependence change or
    old output file exist.

Jesper Larsen:

  * Do not expand ` calls for buildfile checksums

More information about the buildgear-devel mailing list