New “definition directory” package environment/script variable¶
A new environment/script variable has been added to help a project refer
to a package’s “definition directory” – the specific folder of a package
package/. The key for this variable is
For example, if a package script wishes to use content from inside the package’s definition directory, they can refer to it as follow:
res = releng_join(LIBFOO_DEFDIR, 'my-resource.txt')
Suppress installation stage for CMake projects¶
While releng-tool attempts to provide the common “configuration →
build → install” stages, not all projects support an installation phase.
CMake projects which did not define an
install rule, the
installation stage for these projects would always fail.
To explicitly skip the install stage for these packages, the
LIBFOO_CMAKE_NOINSTALL can be configured inside a package’s definition file
to ignore the stage for a package. For example:
LIBFOO_CMAKE_NOINSTALL = True
Support rsync-based sites¶
releng-tool now supports fetching content from an rsync compatible
source. By adjusting a package’s
LIBFOO_SITE definition to be prefixed with
rsync+, the trailing value can be used to define the rsync source to copy
For example, to copy content from a mounted NAS location at
the following could be used:
LIBFOO_SITE = 'rsync+/mnt/nas/project'
Packages can also pull content from a remote source:
LIBFOO_SITE = 'firstname.lastname@example.org:~/project'
What specific source paths are support will vary based off the host’s
Remove the requirement for a package version configuration¶
LIBFOO_VERSION configuration is the recommended way to define the
version of a package. It serves two purposes – it can be used to identify
the version to use when pulling content from a remote repository, as well as
used when managing the names of build/cache folders for a project.
However, both these purposes are not always required. A package may define a
LIBFOO_REVISION entry to specify the specific revision to use for
source-fetching. The output of a build location does not require a version
value to be postfixed. While specifying a version can help manage/identify
output files for a build, for example:
The benefits of output inspection and manual version change/testing should
not impose defining a version entry for a package. Therefore, package types
which do not need a version or have
LIBFOO_REVISION defined for a package,
LIBFOO_VERSION configuration can be omitted.
Flexible asset management¶
Typical runs will download files (
dl/) and cache content (
cache/) in the
project’s root directory. While users could override these paths using the
--cache-dir <dir> and
--dl-dir <dir> command line options:
Needing to specify both these arguments on each run is not always ideal.
There was not an easy way to point to a single path to say “store all content in this folder”.
To improve the user experience, the concept on an “asset” directory has been
introduced. If a user specifies
--assets-dir <dir> on the command line,
both the cache and download directories will be stored inside the provided
For cases where specifying these paths using command line options is not ideal, the following environment variables can be used instead: