[buildgear-devel] [ANNOUNCE] Build Gear version 0.9.24
martin.lund at keep-it-simple.com
Fri Feb 6 04:10:42 MST 2015
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:
=== Build Gear v0.9.24 ===
Changes since Build Gear v0.9.23:
* 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.
* Do not expand ` calls for buildfile checksums
More information about the buildgear-devel