1.1 (2024-03-29)

Support for output directory overrides using environment variables

While users had the means of configuring a custom output directory using the --out-dir command line argument, there was no graceful way of trying to override the output directory using environment variables. As of v1.1, there are now two supported environment variables which can be used to override where output content is placed.

The first variable to mention is RELENG_OUTPUT_DIR. If this variable is set, the value will define where output content is generated in the same manner as if the value was set in --out-dir. This can be useful for users wanting to invoke releng-tool multiple times, without wanting to define the output directory in the command line each time. Note that the command line argument takes precedence over any environment variable set.

Support for a more advanced variable RELENG_GLOBAL_OUTPUT_CONTAINER_DIR has also been added. The use of this variable can be helpful for users who build multiple releng-tool projects and wants to store output content in a different location (either due to space limitations or mixed file system environments). The path set in this variable is used as a container path for all releng-tool projects. The resulting output path for a project will be a combination of this container path, along with the name of project’s directory.

For example, if a user stores multiple projects inside a ~/projects/ path and configures this option to the path /mnt/extern-disk:

export RELENG_GLOBAL_OUTPUT_CONTAINER_DIR=/mnt/extern-disk

The following folder structure should be expected:

├── usr/
│   └── home/
│       └── myuser/
│           └── projects/
│               ├── my-project-a/
│               │   ├── ...
│               │   └── releng.py
│               └── my-project-b/
│                   ├── ...
│                   └── releng.py
└── mnt/
    └── extern-disk/
        ├── my-project-a/
        │   └── ...
        └── my-project-b/
            └── ...

SPDX updates – custom licenses and database updated

Licenses checks for SPDX-approriate values now properly validate against custom license identifier field values. The use of a license entry such as Proprietary is no longer accepted as a valid license value. Users wishing to define a custom license for a package should use a license identifier field value such as:

LIBFOO_LICENSE = 'LicenseRef-MyCompanyLicenseId'

Replacing MyCompanyLicenseId with an appropriate identifier promoted by the organization or user licensing this package.

In addition, the internally managed copy of the SPDX license identifiers has been updated to the most recent version (v3.23).