Search by Tags

TorizonCore Builder Issue Tracker


The following table contains known issues, scheduled bug fixes, and feature improvements for the TorizonCore Builder. The tickets are split in two major states:

  • Submitted (open): new features and bug fixes for TorizonCore Builder versions that have not yet been released. They may be scheduled for a specific release version; not planned; or in our backlog. All of them have one of the following states:
    • Known Issue: a bug or unexpected behavior that has been reported and pending a fix. Once fixed, the status will transition to Fixed.
    • Feature Request: a new feature that may be added to a future release. Once released, the status will transition to New Feature.
  • Released (closed): new features and bug fixes for BSP versions that have already been released. All of them have one of the following states:
    • Fixed: a bug that has been fixed and released.
    • New Feature: something that didn't exist before and was added to a new release.

Any schedules are not guaranteed but reflect the current planning. The planning could be shifted due to priority changes.
Issues that are scheduled for a specific version will be integrated into the mentioned version of the BSP.

We will update this table continuously in order to always provide the latest state of our development plan.

Clear Filter
Issue #StatusSubjectSeverity

TorizonCore Builder next release
TCB-332Feature RequestAs a developer, I want to disable argument abbreviations on TorizonCore Builder

Description: Until TorizonCore 3.6.0, abbreviated commands were accepted by the TorizonCore Builder command-line argument parser.

This behavior is undocumented and may lead you to write scripts that may get broken in the future if we add new options that may conflict with existing ones (taking a current example: --login vs --login-to). We decided that being more strict leads to a higher quality of any scripts you may integrate TorizonCore Builder on.

Workaround: This is an undocumented feature and must not provide any breaking changes. If you see any issues, it may be due to a typo. Please double-check your scripts.

TCB-328Known IssueBundle: Bundle command fails on Ubuntu 22.04 with the error "ConnectionRefusedError: [Errno 111] Connection refused" under specific conditionsLow

Description: For reasons yet to be investigated, after setting up Docker on Ubuntu 22.04 LTS, sometimes the TorizonCore Builder "bundle" command fails with the error "ConnectionRefusedError: [Errno 111] Connection refused".

So far, we consider the possible scenario as a means to reproduce the bug: install Docker via Snap with "snap install docker", uninstall it via Snap, and then install Docker via "apt install". When there are more details about it, this description will be updated.

Workaround: Install Docker on a fresh Ubuntu install following the official Docker instructions from Install Docker Engine on Ubuntu.

TCB-303Feature RequestAs a user, I want to set package compatibility with TorizonCore Builder

Description: In the Torizon Platform Services web UI, it is possible to set compatibility on application packages, describing a list of compatible OS packages and versions. We plan to make it possible on the TorizonCore Builder command line, allowing you to integrate it into your CI scripts.

Update: adding compatibility based on the package version isn't trivial. To overcome it, it was decided to support initially setting up the compatibility based on the hash instead of the version. The hash is available in the web UI, making it easy for you to find out its value.

TCB-300Feature RequestAdvanced registry access when using "platform lockbox"

Description: Currently, the "tcb platform lockbox" does not accept advanced registry access, for example access to private registries. This is an issue when doing canonicalization, which requires access to the registry.

TCB-299Feature RequestAdvanced registry access when using "platform push" with canonicalization

Description: Currently, the "tcb platform push" does not accept advanced registry access, for example access to private registries. This is an issue when doing canonicalization, which requires access to the registry.

Workaround: Here is a suggested workaround which hasn't been fully validated:

  • Use the bundle command on the docker-compose file to be used in the lockbox.
  • The bundle command will fetch the Docker images (unnecessarily) but it will also create a docker-compose in canonical form, by default in bundle/docker-compose.yml; even though it doesn't have the .lock.yml extension this file is actually in canonical form.
  • Copy the file to a name having the .lock.yml extension.
  • Push the renamed/copied file to OTA with platform push; if setting the package name (with the --package-name switch) make sure to end it with the .lock.yml extension).
  • The pushed compose file should then be suitable for use with the lockbox.

TCB-290Known Issue"--login" parameter ignored when passing it to the bundle command in CI environmentLow

Description: For an unknown reason, the "--login" parameter of "tcb bundle" is being ignored in a CI environment.

Update: this bug happened once but was not reproducible. We have improved automated tests to validate the "--login" parameter further. If you are able to reproduce the bug, please let us know.

TCB-119Feature RequestAs a user, I want to be able to use secure private Docker registries with the bundle command

Description: At the moment, we only support using insecure private registries on TCB, with the "--dind-param" flag of the "tcb bundle" command, as documented in the example in the commands manual. It has been requested by customers to support secure private registries as well.

Update: this has been implemented. Learn more on the remarks about using Docker registries.

TCB-230Known IssueTorizoncore builder "bundle" command fails when TCP docker access is enabledLow

Description: When Docker is run with TCP access, the bundle command fails with error "ConnectionRefusedError: [Errno 111] Connection refused"

Workaround: Run Docker with the default configuration instead of TCP.

3.6.0 (Release date: 2022-09-12)
TorizonCore Builder 3.6.0 release
TCB-323FixedSetup Script: Latest image tag is no longer found due to deprecated APILow

Description: The TorizonCore Builder Setup Script relies on the Docker API to fetch the latest available version of the tool. The version of the API used has been deprecated, thus breaking the script.

Workaround: This has been fixed. Please re-download the setup script.

TCB-320New FeatureAs a developer, I want to investigate the size increase in TorizonCore Builder 3.6.0Low

Description: As we have recently added some dependencies to TorizonCore Builder, the total container size increased by approximately 100MB. We will evaluate if this increase is required or if the container size can be reduced.

TCB-319FixedDocumentation for `isolate` command lists ignored files that are not actually ignored.Low

Description: The documentation that lists files ignored by the "isolate" command is outdated. For example, the files "/etc/passwd" and "/etc/shadow" are indeed captured, since you are allowed to customize the default password.

TCB-306FixedTorizonCore Builder auto-completion error "_alternative:shift:14: argument to shift must be non-negative" on ZshLow

Description: When trying to use autocompletion feature of TCB with Zsh (by pressing Tab), it does not work and the following error is printed "_alternative:shift:14: argument to shift must be non-negative".

Keep in mind that Zsh is not fully supported. We fix bugs when reported and reasonable to maintain, but otherwise all our tests focus on Bash.

Workaround: Until we fix it, either use Bash, or don't use autocompletion on Zsh.

TCB-304New FeatureAs a user, I want to set the package description from TorizonCore Builder

Description: In the Torizon Platform Services web UI, it is possible to set a description for packages. We plan to make it possible on the TorizonCore Builder command line, allowing you to integrate it into your CI scripts.

Learn how to use the "--description" flag in the platform push documentation.

TCB-302FixedOffline Updates: Incorrect Metadata in LockboxLow

Description: Sometimes TorizonCore Builder fetches wrong metadata from the Platform Services server and offline updates fail. While this seems to be server-related, we plan to investigate it further and confirm the root cause, improving TorizonCore Builder if possible.

Update: it was confirmed as an issue on the Platform Services, and fixed there. No updates were required on TorizonCore Builder.

TCB-301New FeatureAs a developer, I want to update version of garage-sign tool in TorizonCore Builder, so I can easily set custom metadataLow

Description: This task has no impact on TorizonCore Builder users.

Since "uptane-sign" has replaced "garage-sign", and it makes it easier to work with metadata, we update the version of the package in TorizonCore Builder.

TCB-298New FeatureAs a user, I want the script to autoupdate

Description: As of TorizonCore 3.5.0, the setup script does not get automatically updated. This is an issue because sometimes changes in the setup script are required for using newer versions of TorizonCore Builder.

Update: after some investigation and customer feedback, it was decided that the script will print a message asking you to update it. This message will provide the exact command you must run, as to make the update easy to execute.

TCB-294FixedAutocompletion for TCB "bundle --bundle-directory" and "deploy --deploy-sysroot-directory" commands do not show available switches correctlyLow

Description: Autocompletion for "tcb bundle" shows old flags such as "--directory" instead of "--bundle-directory", and "tcb deploy" shows "--sysroot-directory" instead of "--deploy-sysroot-directory".

TCB-288New FeatureAs a developer, I want to define test cases for the "push" commandLow

Description: This task does not impact users directly. All commands under the "platform push" must be tested by automated tests, to improve the quality and identify regressions in a timely manner.

TCB-276New FeatureAs a user, I want to accept NXP's EULA for provisioning at scaleLow

Description: Toradex Easy Installer images may contain an End User License Agreement (EULA). The TorizonCore images have NXP’s EULA included. Therefore, a mechanism for accepting the EULA with TorizonCore Builder must be added, as to ensure that you have actively accepted such a license even in a production programming environment, where it isn't required to accept the EULA on every installation.

TCB-274New FeatureAs a developer, I want to update TorizonCore Builder GitLab CI to fit the new release process

Description: From TorizonCore Builder 3.6.0 onward, we plan to release an Early Access version of TCB. To make it possible, the project CI infrastructure must be updated, as to comply with the new project structure and releases.

Update: early access releases are tagged as "early-access" on Docker Hub. It is not yet decided and publicly documented how to allow customers to use the early access version.

TCB-207FixedAutocompletion for TorizonCore Builder push command does not show the 'docker-compose.yml' file as an optionLow

Description: When running "tcb push", you have two options: 1) push an OSTree reference, also known as OS update and; 2) push a docker-compose.yml file, also known as application update.

Currently, the autocompletion only takes into consideration 1), and therefore it does not suggest YML files as possible autocomplete options.

TCB-46New FeatureAs a user, I want to learn how to use the secure offline updatesLow

Description: As a final step to releasing the secure offline updates MVP, public documentation on how to use it will be written.

Update: documentation is now available on How to use secure offline updates with TorizonCore.

3.5.1 (Release date: 2022-05-18)
TorizonCore Builder 3.5.1 patch release
TCB-293Known IssueBuild error "KeyError: 'dir'" in TCB 3.5.0 when bundling imagesCritical

Description: When bundling a Docker Compose file with TorizonCore Builder 3.5.0, a stack trace is printed and the error "KeyError: 'dir'" is displayed

3.5.0 (Release date: 2022-05-13)
TorizonCore Builder 3.5.0 release
TCB-292New FeatureAs a developer, I want to update command-line completion scripts for the TCB 3.5.0 releaseLow

Description: The TorizonCore Builder setup script adds autocompletion to the available commands. We are extending the feature to new commands added on the 3.5.0 release.

TCB-287FixedPush command assigns weird package name to pushed compose file by defaultLow

Description: The "platform push" (formerly "images push") command allows you to set the package name and version. At the moment, the default package name is set to "docker-compose_file.yml", which is not a sane default. We'll fix it by using the base input file name instead. For example if the input file is "my-docker-compose.yml", the base name will be "my-docker-compose".

TCB-284New FeatureAs a user, I want to be able to fetch provisioning data with TorizonCore Builder, so I don't need to do it from the web UILow

Description: To create a custom TorizonCore image with provisioning data, it is first required that you fetch such data from the Platform Services.

The command "platform provisioning-data" fetches this data. Learn how to use it on The Platform Command.

TCB-283FixedPush command does not translate all image references in docker-compose to digest formMedium

Description: The push command has the ability to canonicalize Docker Compose files, creating their corresponding lockfiles with hashes instead of tags. This is a good practice and particularly important for the upcoming secure offline updates. At the moment, canonicalization is not always happening.

TCB-277FixedBuild: Overlays get cleared by defaultLow

Description: There seems to be a discrepancy between the "build" command documentation and what actually happens. Specifically in regards to adding device tree overlays. In the overlays section of the "tcbuild.yaml" there’s a "clear" property that does the following according to the documentation:

clear (boolean, optional): Boolean indicating whether or not to ignore all the binary overlays (dtbo files) that may already be present in the base image. This property is useful only if no custom device tree was set. Default: false.

If "clear" is not specified in "tcbuild.yaml" then pre-existing overlays will not be cleared by default. However, the actual behavior is that if "clear" is not specified in "tcbuild.yaml" then pre-existing overlays will be cleared by default.

TCB-270New FeatureAs a developer, I want to rework the "images takeout" command to "platform lockbox"Low

Description: To avoid semantic overload and improve clarity, we decide not to use words as "image" and "container" for secure offline updates. Instead, we use the term "lockbox". Further explanation may come to the public in the future, in the form of documentation, a blog post or other means.

To comply, we move the command "images takeout" to "platform lockbox".

Workaround: No workaround is required. The secure offline updates MVP has not been released as of this change, therefore the customer impact is zero.

TCB-267FixedAs a developer, I want to override the hardware_id with the push commandLow

Description: An OSTree deployment can be compatible with multiple Hardware IDs.

At the moment, the "push" command has an undocumented parameter named "--hardwareid" that only sets the Hardware ID if the value is missing in the OSTree metadata.

We will change the default behavior so that "--hardwareid" can be used to override the default Hardware ID by the user, and can be passed multiple times to support more than one Hardware ID.

TCB-263FixedBundle: Bundle command no longer works on Windows with error "ConnectionRefusedError: [Errno 111] Connection refused"Low

Description: When running the bundle command on Windows, an error happens and it says "ConnectionRefusedError: [Errno 111] Connection refused".

Workaround: Run the setup script like so: "source -- --network=host".

TCB-260New FeatureAs a user, I want to autoinstall and auto-reboot TorizonCore images customized with TorizonCore BuilderLow

Description: Toradex Easy Installer supports two features that are very useful for production programming: autoinstall and auto-reboot.

To make it possible to easily set these properties in a custom TorizonCore image, TorizonCore Builder must provide an interface for these capabilities.

TCB-261New FeatureAs a user, I want aktualizr-torizon to report back correct manifest information regarding any pre-provisioned docker-compose packagesLow

Description: At the moment, if you (1) use TorizonCore Builder to pre-provision (bundle) containers into a Toradex Easy Installer image, and (2) upload the same version of the containers to the Torizon Platform Services, your device will not report to the Platoform that it has that SW version installed.

We are working on a fix on TorizonCore Builder that will allow existing TorizonCore versions to provide this version information to the server. We are also working on a fix in Aktualizr that will allow devices that are already provisioned to be updated to newer versions of TorizonCore Builder and then properly report the version to the server.

TCB-258Fixed"ostree serve" command not working on WindowsLow

Description: The TorizonCore Builder "ostree serve" command is not working on Windows machines, due to a limitation of the Docker host network driver.

When sourcing the setup script, you must pass an optional flag that will expose the given port to the host.

TCB-255New FeatureAs a developer, I want to avoid Docker pull limit on the TCB CI PipelineLow

Description: Due to the various TorizonCore Builder test cases run in our CI that depend on Docker Hub operations, we must login with our paid account to avoid the Docker pull limit in CI jobs.

TCB-252New FeatureAs a developer, I want to decide how to do lightweight TCB releases for internal usageLow

Description: TorizonCore Builder has a release schedule that is not periodic. When enough new features are added, a release is done. In this ticket, we evaluate how to do more frequent releases, and for that, we need a lightweight process.

TCB-251FixedVariable replacement in tcbuild.yaml file fails with the error "Parsing errors found"Low

Description: When using variable substitution with the "build" command, the YAML parser do validation before doing the substitution. This results in the error "Parsing errors found".

TCB-249FixedServing OSTree repos with TorizonCore Builder fails when external repository directory is specifiedMedium

Description: When passing the switch --ostree-repo-directory to the ostree serve command, for example "torizoncore-builder ostree serve --ostree-repo-directory ostree_repo/", the tool throws an error:
"UnboundLocalError: local variable 'storage_dir' referenced before assignment"

TCB-248New FeatureAs a user, I want to customize TorizonCore with online provisioning data so provisioning at scale supports this use caseLow

Description: To allow provisioning devices at scale to the Torizon Platform Services, we will make it possible to include provisioning credentials into a custom TorizonCore image.

To learn more, check out the "provision" properties in the "output section" of the build command manual.

TCB-85New FeatureAs a user, I want the "deploy" command to automatically find and use a free SSH portLow

Description: The TorizonCore Builder "deploy" command uses the hardcoded port 8080 to deploy customization to a board. Sometimes this port is not free for some reason and the command fails.
We will improve the logic and let TorizonCore Builder find and use a random free port for the deployment.

TCB-209FixedTorizonCore Builder: Bundle command does not work properly with cgroups v2Low

Description: If the Linux distro installed in your development PC has already moved to using cgroup rules v2, you will get the following error when running the TorizonCore Builder "bundle" command: "docker.errors.NullResource: Resource ID was not provided".

TCB-177New FeatureAs a developer, I want to redesign our CI to generate TorizonCore images with pre-provisioned containersLow

Description: While this change is mostly benefitial for internal Toradex use, it may be the base for a future TorizonCore Builder CI/CD example.

TCB-115New FeatureAs a user, I want to update the device trees to the latest available with the 'dt checkout ' commandLow

Description: The "dt checkout" command conveniently clones the device-trees repository in the correct branch for a given input image. It does not provide an option to update the repository given that some updates were made upstream. This task adds the option "--update" that will attempt to pull the latest.

Workaround: Use Git commands as "git pull" to update the repository.

TCB-126New FeatureAs a user, I want to update kernel arguments when deploying a new OSTree image to the device using TorizonCore BuilderLow

Description: Currently, in TorizonCore, default kernel arguments are not updateable. That means when we deploy a new OSTree commit, the kargs defined in this new commit will not be used during deployment.

3.4.0 (Release date: 2022-01-11)
TorizonCore Builder 3.4.0 minor release
TCB-247New FeatureAs a user, I want to learn how to set the name and version when pushing OSTree commits to Torizon OTALow

Description: TorizonCore Builder is capable of setting OSTree name and version when pushing commits to the Torizon Platform Services.
This task documents how you can use this feature. Learn how to use it in the article Signing and Pushing TorizonCore Images to Torizon OTA.

TCB-51New FeatureAs a user, I want to be aware about and free to use my own canonical Docker Compose filesLow

Description: For the offline-updates MVP - and also as a best practice - a canonical Docker Compose file is required. It is a Docker Compose file that does not have comments or blank lines, and instead of tags, it uses SHA hashes for the versions of all containers. The purpose is to ensure the version of all packages for your application will be ensured, or in other words, locked.
Due to this, we are introducing the concept of a docker-compose.lock.yaml file, that is the canonical version of a regular docker-compose.yaml file.
In this task, we have introduced this feature along with documentation explaining how to use it, and why it is important.

3.3.0 (Release date: 2021-12-29)
TorizonCore Builder 3.3.0 minor release
TCB-53New FeatureAs a developer, I want all of the OSTree targets that are part of a takeout image to be in a single OSTree local repoLow

Description: As preparation for the secure offline updates MVP, we want to structure TorizonCore Builder in a way that a single USB stick/SD Card can hold OSTree updates for multiple targets (for example, different SoMs). Instead of keeping one OSTree repo for each target in the removable media, we set a single OSTree repo for all targets.

3.2.0 (Release date: 2021-11-10)
TorizonCore Builder 3.2.0 minor release
TCB-132New FeatureAs a user, I want to be able to customize the non-initramfs splash screenLow

Description: TorizonCore has two splash screens: one that shows when booting, and another that shows on reboot or shutdown.
It was reported that the reboot/shutdown splash was not being updated by TorizonCore Builder. This ticket address it and makes sure that both splash screens are updated.

TCB-236FixedTorizonCore Builder: --storage-directory argument does not seem to work wellLow

Description: Make it possible to set the storage directory in the setup script, and change the --storage-directory parameter to be hidden (it will be deprecated later).

TCB-144New FeatureAs a user, I want to be able to change the SSH port used by TorizonCore Builder for device connectionLow

Description: Create a --remote-port parameter to make it possible to set the SSH port TorizonCore Builder will use to connect to devices running TorizonCore.

TCB-200FixedTorizonCore builder does not update tezi image metadata on a deploy commandLow

Description: When running the `deploy` command, an image compatible with Toradex Easy Installer is created. Some metadata contained in image.json, such as the image size, are not updated by TorizonCore builder, and it uses the same values as the input image.

TCB-133New FeatureAs a user, I want to locally provision an Easy Installer image via an HTTP server, so I don't have to use a USB stickLow

Description: In TorizonCore Builder, the deploy and combine commands are responsible to generate Easy Installer images.

To be able to install them using the LAN in an easy way, we have introduced the `images serve` command, that brings up a local Easy Installer image server.

3.1.2 (Release date: 2021-09-21)
TorizonCore Builder 3.1.2 patch release
TCB-221FixedTorizonCore Builder is failing to push docker-compose files to Torizon OTALow

Description: After recent changes in the backend, TorizonCore Builder is failing when we try to push docker-compose files to OTA.

3.1.1 (Release date: 2021-09-17)
TorizonCore Builder 3.1.1 patch release
TCB-222FixedTorizonCore Builder does not apply the Splash Screen on an image when an external kernel module build is also includedLow

Description: When building a Custom Image of TorizonCore with external kernel modules and a splash screen, the splash screen does not show on the device display. When the external kernel module is not included the splash screen shows on the display.

TCB-217FixedTorizonCore Builder: Isolate fails when using --changes-directory with symlinksLow

Description: There is an issue when using the isolate command when there are symlinks to be isolated and using the --changes-directory argument.

TCB-86New FeatureAs a user, I want to be able to use TorizonCore Builder to generate takeout images for offline updatesLow

Description: The command `images takeout` is introduced to the TorizonCore 3.x series, as part of the preparation for the secure offline updates MVP. The command is still unstable, features and syntax may change without further notice in the near future.

TCB-75New FeatureAs a developer, I want a license and open-source related files in the project's source codeLow

Description: TorizonCore Builder has been open sourced and is available on

As part of the process, we have added a license file and related files.

TCB-61New FeatureImprove the error message requiring an unpack image in TorizonCore BuilderLow

Description: Improve the error messages on TorizonCore Builder when "unpack" hasn't been run yet.

3.1.0 (Release date: 2021-07-19)
TorizonCore Builder 3.1.0 minor release
TCB-166New FeatureAs a user, I want to automatically complete commands and parameters in TorizonCore BuilderLow

Description: Command-line developers are used to pressing `Tab` to autocomplete commands. We are introducing such a feature for TorizonCore Builder as well.

TCB-227FixedTorizonCore Builder: "splash" directory in storage is not cleared by images commandLow

Description: The `images` command has an option to clear the storage directories. It does not clear the /splash directory, though. This ticket aims to fix it.

TCB-176New FeatureAs a developer, I want to check OSTree repository integrity before pushing a new TorizonCore image to Torizon OTALow

Description: Change garage-push to check OSTree object's integrity before pushing to TreeHub.

TCB-67New FeatureAs a user, I want to be able to isolate/union files containing especial charactersLow

Description: TorizonCore Builder should be able to handle (isolate, union) files with special characters (e.g. "hello'world.txt).

TCB-117New FeatureAs a user, I want files created by torizoncore-builder to belong to user and not to rootLow

Description: TorizonCore Builder runs inside a container, and by default it creates files owned by root. This is a bit annoying since we sometimes want to edit or erase some files with our user in the development PC. We investigate and implement a way to make files belong to the user and not root.

TCB-162New FeatureAs a user, I want to use TorizonCore Builder to push container updates to TorizonCore OTA, so I don't need the web frontend and can use offline keysLow

Description: Add feature in TorizonCore Builder to push container updates (docker-compose files) to TorizonCore OTA.

TCB-160New FeatureImprove TorizonCore Builder device connection parametersLow

Description: For the commands that require device connection, make --remote-username and --remote-password parameters optional.

3.0.0 (Release date: 2021-06-09)
TorizonCore Builder 3.0.0 major release
TCB-59New FeatureAs a developer, I want to show a message in the TorizonCore Builder set up script to warn users about files in the working directoryLow

Description: TorizonCore Builder can only see files inside the working directory, but users often change directories outside of their working directory or reference file paths outside of it. To improve that, let's add a message in the setup script

TCB-215FixedTorizoncore builder union command fails with enabled systemd services.Low

Description: Torizoncore builder union command fails with enabled systemd services.

Workaround: Disable the systemd service before running the "isolate" command. This will require you to manually enable it after deployment.

TCB-77New FeatureImprovements in the TorizonCore Builder CLILow

Description: Several improvements in the command line interface in TorizonCore Builder:

  • Move --bundle-directory parameter from the top-level torizoncore-builder command to the "batch", "bundle" and "combine" subcommand.
  • Remove --image-directory and --output-directory from the combine command (make them positional arguments).
  • Check if the given image input directory for the "combine" command contains a valid Easy Installer image.

TCB-223FixedTorizonCore Builder's union command doesn't work with symlinksLow

Description: If you have a symlink in the changes directory that points to a file using the full path, TorizonCore Builder’s union command fails.

TCB-141New FeatureAs a developer, I want to review and refactor TorizonCore Builder bundle's commandLow

Description: Bug fixes and improvements to the bundle command:

  • Solve race-condition when starting Docker-in-Docker instance that caused torizoncore-builder to fail with connection errors sometimes;
  • Run container responsible for tarball generation in detached mode to avoid another race condition where torizoncore-builder failed during tarball compression;
  • Allow the use of a Docker volume as a working directory (this should be more portable and work with WSL);
  • Make the certificates directory temporary to avoid polluting the working directory with a certs/ directory;
  • Show progress similarly as done by docker pull;
  • Change command-line interface to make it more consistent with the other commands.

TCB-238FixedTorizonCore Builder: "bundle" fails with insecure http registryLow

Description: The bundle command doesn't work when trying to fetch images from their insecure local HTTP registry.

TCB-163New FeatureImprove the user interface of the TorizonCore Builder union commandLow

Description: The interface of the union command was simplified to make it easier to use:

  • the --extra-changes-directory switch was removed and its functionality moved to --changes-directory;
  • the switch --union-branch no longer exists either - the branch name is now a positional parameter;

2.6.1 (Release date: 2021-05-27)
TorizonCore Builder 2.6.1 patch release
TCB-138New FeatureAs a user, I want TorizonCore Builder to return an error if I try to compile a device tree using an overlayLow

Description: TorizonCore Builder should return an error if users try to apply a device tree using a device tree overlay.

2.6.0 (Release date: 2021-05-12)
TorizonCore Builder 2.6.0 minor release
TCB-212Fixedtorizoncore-builder leaves temporary files in the working directoryLow

Description: When uncompressing a local image, TorizonCore Builder leaves behind the uncompressed directory, even though it isn't used anymore. In this ticket we clean up the uncompressed directory.

TCB-90New FeatureAs a user, I want TorizonCore Builder to customize the TEZI image metadata even when not bundling containers in itLow

Description: TorizonCore Builder should be able to customize a Toradex Easy Installer Image (by setting its name, description, license file, and release notes) even when not trying to bundle container images in it.

TCB-71New FeatureAs a user, I want to set permissions on files, so I can keep credentials when committing changes to OSTreeLow

Description: TorizonCore Builder should be able to save and restore credentials when isolating files from the device and union-ing files to another TorizonCore image.

TCB-165New FeatureAs a user, I want to store image customizations in a configuration file, so I can better manage the changes and incrementally rebuild the imageLow

Description: Introduce TorizonCore Builder "build" command to build a customized image based on a configuration file.

2.5.4 (Release date: 2021-04-20)
TorizonCore Builder 2.5.4 patch release
TCB-225FixedBundle command in TorizonCore Builder sometimes creates an incorrect tar fileLow

Description: There's an issue with the bundle sub-command where the the tar file output that gets created is inconsistent. The proper expected name that should be created is docker-storage.tar.xz, yet sometimes a docker-storage.tar is created instead.

2.5.3 (Release date: 2021-04-07)
TorizonCore Builder 2.5.3 patch release
TCB-240FixedTorizonCore Builder union fails if changes directory is in a sub-directoryLow

Description: The `union` command applies changes to an image. It currently only works if the changes are kept in a directory directly under the TorizonCore Builder directory. Sub-directories such as "samples/changes" does not work.

TCB-226FixedIsolate command doesn't capture the mandatory password change for the torizon userLow

Description: Upon the first login, it is mandatory to change the password. This modification is not captured by TorizonCore Builder's isolate command.

TCB-194Fixedtorizoncore-builder: Bundle fails if trying to access a private registry that is not dockerhubLow

Description: So far, only Docker Hub is supported by TorizonCore Builder. We will add a `--registry` flag or something similar to the `bundle` command, so users can pass any registry for login.

TCB-231FixedTorizonCore Builder isolate issue with NetworkManager connections with spaces in namesLow

Description: The isolate command fails because of spaces in the name of files.

TCB-229FixedTorizonCore Builder is not able to build and apply some device tree overlaysLow

Description: Some device tree overlays from Toradex's overlays repository fail to build.

2.5.2 (Release date: 2021-03-24)
TorizonCore Builder 2.5.2 patch release
TCB-237FixedTorizonCore Builder cannot fetch branch toradex_5.4-2.3.x-imx from device trees repositoryLow

Description: TorizonCore Builder cannot fetch the new NXP BSP branch (toradex_5.4-2.3.x-imx) from device trees repository.

TCB-219FixedSome services fail to start after deploying a new OSTree image with TorizonCore BuilderLow

Description: After deploying an OSTree image with custom files using TorizonCore Builder, some services fail to start.

TCB-201FixedTorizonCore Builder: Bundle commands fails when used on Windows in a WSL 2 distroLow

Description: If you attempt to bundle a container with TorizonCore Builder on Windows from WSL 2, it fails.

2.5.1 (Release date: 2021-03-16)
TorizonCore Builder 2.5.1 patch release
TCB-54New FeatureAs a user, I want to run TorizonCore Builder on Windows, so I don't have to install/learn LinuxLow

Description: TorizonCore Builder already runs in a containerized environment. In this task, we document how to set it up on Windows and add tests on Windows to our release tests.

2.5.0 (Release date: 2021-03-11)
TorizonCore Builder 2.5.0 minor release
TCB-218FixedTorizonCore Builder container image size is too bigLow

Description: With the introduction of the `kernel build_module` command, the size of TorizonCore Builder increased by a factor of ~10x, due to the download of a duplicated toolchain. This commit addresses this issue and also removes the toolchain from TorizonCore Builder, leaving the download only to those users who need to execute the `kernel build_module` command. This approach increases the time for the first run of the command, while leaving TorizonCore Builder much smaller by default.

TCB-197FixedCannot Export with ZshLow

Description: Make TorizonCore Builder set up script work with other shells like ksh and zsh.

TCB-202FixedTorizonCore Builder Not Listing All Compatible OverlaysLow

Description: TorizonCore Builder seems to not be listing all compatible overlays for some machines, like Apalis iMX8.

TCB-70New FeatureAs a user, I want TorizonCore Builder to build my own kernel modules, so I don't need to learn OpenEmbedded to do thatLow

Description: Add the build_module command in TorizonCore Builder to build and add to the image out-of-tree kernel modules.

TCB-69New FeatureAs a user, I want to use TorizonCore Builder to set custom kernel arguments, so I can generate customized images with my own kernel argumentsLow

Description: Make it possible to set custom kernel arguments using TorizonCore Builder.

2.4.0 (Release date: 2021-02-11)
TorizonCore Builder 2.4.0 minor release
TCB-135New FeatureAs a user, I want to run just one command to deploy an overlay in the device, so it is easier and less error-proneLow

Description: Create 'dto deploy' command in TorizonCore Builder to automatically deploy a device tree overlay in the device.

2.3.0 (Release date: 2021-02-05)
TorizonCore Builder 2.3.0 minor release
TCB-49New FeatureAs a user, I want TorizonCore Builder to automatically download and unpack TorizonCore images, so I don't need toLow

Description: Add 'images download/unpack' commands in TorizonCore Builder to automatically download Tezi images from Artifactory (based on the version running on a device) and unpack for further customizations.

TCB-55New FeatureSupport mDNS on hosts with multiple network interfacesLow

Description: It seems that currently mDNS only works on the primary network interface. Hosts with multiple network interfaces are quite common, especially in more restrictive corporate networks, where development needs to happen on a separate network. It can also be relevant if WiFi and Ethernet is used alongside.

2.2.0 (Release date: 2021-01-29)
TorizonCore Builder 2.2.0 minor release
TCB-161New FeatureAs a user, I want to know when a new version of TorizonCore Builder is available, so I can update it as soon as possible to leverage new commands and featuresLow

Description: Create a shell script to automate environment configuration and warn the user when a new TorizonCore Builder version is available.

TCB-57New FeatureAdd the ability in TorizonCore Builder to "bundle" containers stored in private registriesLow

Description: Currently, there is a limitation with the "bundle" command of TorizonCore Builder. If any of the container images specified in the provided docker-compose.yml are stored in private registries the "docker pull" will fail, causing the entire command to error out.

TCB-168New FeatureAs a user, I want to see a link to the web documentation in the help option, so I have quick access to more information about the toolLow

Description: To increase awareness about the TorizonCore Builder documentation, we add a hyperlink to it at the end of the `--help`.

TCB-214FixedTorizoncore-builder: Deploying new OSTree on the device fails if I perform hard reboot to boot into the new deploymentLow

Description: Deploying new OSTree on the device fails if I perform hard reboot to boot into the new deployment.

TCB-233FixedTorizonCore Builder dt deploy fails if hostname is used instead of IP addressLow

Description: If you execute `torizoncore-builder deploy dt_changes` and pass the board hostname as parameter for `--remote-host` instead of the board IP, for example `apalis-imx8-06543292.local`, it does not work.

Workaround: It has been fixed in TorizonCore Builder 2.2.0. Use this version of the tool.

2.1.2 (Release date: 2021-01-13)
TorizonCore Builder 2.1.2 patch release
TCB-235FixedInternet connection stops working after applying overlay with TorizonCore-BuilderLow

Description: After applying some device tree overlays with TorizonCore Builder, the internet connection stops working.

2.1.1 (Release date: 2020-12-17)
TorizonCore Builder 2.1.1 patch release
TCB-105New FeatureRefactor device tree commands and adapt them to use overlays.txtLow

Description: Refactor device tree commands and adapt them to use overlays.txt.

2.1.0 (Release date: 2020-12-17)
TorizonCore Builder 2.1.0 minor release
TCB-220FixedTorizonCore Builder is generating Easy Installer images that don't bootLow

Description: TorizonCore Builder is generating Easy Installer images that don't boot.

TCB-199FixedTorizonCore Builder is creating an Easy Installer image with incorrect permissionsLow

Description: After using TorizonCore Builder to customize an Easy Installer image with a device tree overlay applied, the generated Easy Installer image has incorrect permissions in the /home/torizon directory.

2.0.1 (Release date: 2020-11-24)
TorizonCore Builder 2.0.1 patch release
TCB-193FixedTorizonCore Builder splash command does not work using --storage-directoryLow

Description: TorizonCore Builder splash command does not work using --storage-directory.

2.0.0 (Release date: 2020-11-09)
TorizonCore Builder 2.0.0 major release
TCB-101New FeatureMove torizoncore-builder container to BullseyeLow

Description: Update the TorizonCore Builder container to Debian Bullseye.

1.3.1 (Release date: 2021-12-03)
TorizonCore Builder 1.3.1 minor release
TCB-123New FeatureAllow to specifiy Easy Installer feed for evaluation container build commandLow

Description: To allow TorizonCore Builder batch command (only available on the 1.x series) to use any Easy Installer feed, and not only the internal Toradex one, we added the parameter `--tezi-feed-url`.

1.2.1 and older (Release date: 2020-11-04)
TorizonCore Builder 1.x.y series releases up to 1.2.1
TCB-242FixedTorizoncore-builder: invalid compose file after bundle commandLow

Description: Torizoncore Builder generates an invalid compose file after bundle command.

TCB-78New FeatureAdd product IDs to evaluation containersLow

Description: Add a property called TORADEX_PRODUCT_IDS to the TorizonCore images with pre-provisioned containers.

TCB-203Fixeddocker-compose file missing MACHINE variableLow

Description: When TorizonCore Builder replaces the tags in docker-compose file with concrete sha256 hashes, it drops the MACHINE variable.

TCB-148New FeatureInvestigate how to improve TorizonCore Builder usabilityLow

Description: In this ticket we make some UX-based improvements

  • Show list of available device tree overlays automatically if none specified. Improve console visible messages in general.
  • Use sensible default include paths for device tree includes.
  • Improve dt subcommand description to be a bit more descriptive.
  • Currently --devicetree specifies a binary or source device tree depending on the exact subcommand. This might lead to confusion. Use --devicetree for device tree binaries exclusively and --devicetree-source when a source file is required.
  • Write a clear error message if the "devicetree" file is not present.

TCB-106New FeatureCreate "dt list-overlays" sub-command to list available/compatible device tree overlaysLow

Description: We want to create the "dt list-overlays" (or similar name) sub-command to list available (and compatible with the module) device tree overlays.

TCB-109New FeatureCreate "dt checkout" command to checkout a branch from the device tree overlays repositoriesLow

Description: Create the "dt checkout" sub-command to checkout a branch from the device tree overlays repositories, to improve customers UX as they will not need to manually find the repository, correct branch, compatible version.

TCB-48New FeatureDoc: How to use TorizonCore Builder to apply device treesLow

Description: Create documentation on how to use TorizonCore Builder to apply device trees

TCB-107New FeatureShow currently applied device tree overlaysLow

Description: Add an option in TorizonCore Builder so the customer can see the device tree overlays applied to the current device tree.

TCB-111New FeatureAdd additional metadata to OTA targets.jsonLow

Description: Add additional metadata to OTA targets.json.

TCB-108New FeatureImplement deploy to deviceLow

Description: TorizonCore Builder command to deploy a OSTree reference directly onto a target device.

TCB-40New FeatureImplement splash sub-commandLow

Description: Add feature in TorizonCore Builder to set a splash screen image.

TCB-216FixedTorizonCore Builder isolate does not work with mDNS host namesLow

Description: TorizonCore Builder should work with mDNS host names

TCB-121New FeaturePush OSTree repository to OTALow

Description: Add the push command to torizoncore-builder tool to upload changes in an OSTree repository to Torizon OTA.

TCB-211FixedTorizonCore Builder not working with a Docker-compose with environment variablesLow

Description: Trying to run torizoncore-builder bundle with a Docker-compose that has an environment variable gives an error.

TCB-13New FeatureTorizonCore Builder toolLow

Description: TorizonCore Builder is a tool that helps to integrate Docker containers and user's customization in a production image.

TCB-152New FeatureSupport custom EULA when preprovisioning containersLow

Description: Some containers such as our base containers with Vivante binary drivers need the customer to accept an EULA. We should support adding an EULA to the Tezi image as part of the pre-provisioning process (in torizoncore-builder).

TCB-228Fixedtorizoncore-builder error on Windows using cmdLow

Description: torizoncore-builder does not work on Windows using cmd

Not Planned
TCB-208Known IssueTorizonCore Builder: bundled container executed with net=host permission fails with error "SIOCSIFFLAGS: Operation not permitted"Low

Description: As reported in our community, with TorizonCore Builder, If you bundle a container that sets extended attributes on files inside the container (for example, using the "setcap" command), the container will fail upon execution with the error "SIOCSIFFLAGS: Operation not permitted" or another related error.

If you remove the bundled container and manually pull it from Docker Hub, then try to run it again, the same error will not happen.

While this bug was investigated, we came to docker build does not preserve xattrs in the generated image, and after several tests such as setting capabilities and building the container with the classic Docker vs Buildkit, we concluded that:

  • Docker does not keep all extended attributes that are set in a Dockerfile, regardless of using Buildkit or the Classic Docker builder, and using Docker directly (without Compose).
  • Even some capabilities that are kept by Docker get lost when bundling a container with TorizonCore Builder

Given the constraints of Docker, we won't work on a fix in TorizonCore Builder, and we advise you to not rely on xattrs or any feature based on them inside a container.

Workaround: For this specific bug: set the suid for executable files rather than using setcap. For example use "chmod u+s" instead of "setcap" seems to work as well and may carry through the bundle process.

In general, do not rely on xattrs or any feature based on them inside a container. Capabilities and ACLs are features that may be set via xattrs and can also be set via docker-compose properties, which is the recommended way to set them in a portable and reliable way.

TCB-232Known IssueTorizonCore Builder: "bundle" command causes issues on a local registry on Windows machinesLow

Description: After using the "bundle" command the container running the local registry stops working properly. On further investigation, it appears that while the container for the local registry is still up and running the port for this container is no longer accessible.

This issue only happens on Windows machines.

Update: this bug is not reproducible anymore, therefore it has possibly been fixed by an update on Docker for Windows. If you face such issue, please let us know and we'll reevaluate it.

Workaround: Until the bug is fixed, use a Linux machine.

TCB-327Feature RequestAs a user of torizoncore-builder I want a line number when a parse error occurs in the "build" command

Description: When running the build command with a tcbuild.yaml file with incorrect syntax, the error does not display the line number.

TCB-321Feature RequestAs a developer, I want to review the use of device trees mirror focusing on easier maintenance

Description: Currently, our device trees repository used by TorizonCore Builder must be branched every time there is a new kernel branch. This adds maintenance and complexity to the system, so we review the current approach for a more efficient one.

TCB-316Known IssueBuild command fails when not using Docker volumesLow

Description: It is possible to run TorizonCore Builder without using a Docker volume, by passing some extra flags to the setup script: "source -d -s /srv/builder-tool/storage".

When using the "tcb build" command, though, it does not create the output directory as expected.

It has been reported on the TCB GitHub issues.

Workaround: Use docker volumes (the default option) when using the build command.

TCB-305Known Issue"dto deploy" error "AttributeError: 'Namespace' object has no attribute 'update'" because it does not have the "update" switchLow

Description: The command "dto deploy" is a combination of several commands at once. It essentially runs the following commands in sequence:

  • images download
  • dt checkout
  • dto remove
  • dto apply
  • union
  • deploy

However not every switch for the individual commands is supported by dto deploy. In particular for this bug the --update switch from the dt checkout command isn’t supported which causes the error AttributeError: 'Namespace' object has no attribute 'update'

Workaround: Run the commands stated in the public description above one-by-one.
You might not need to run all of them, though. Consult each command functionality in the TorizonCore Builder - Commands Manual to evaluate which ones you need to run.

TCB-268Feature RequestAs a developer, I want to drop TCB Arm builds

Description: TorizonCore Builder has builds for Arm64 in the CI pipeline. We plan to drop those since it's unsupported to run it in a target hardware.

TCB-253Feature RequestAs a developer, I want to create GitLab CI pipeline for running TorizonCore Builder tests on Windows

Description: This is an internal task that reflects as an increased quality level for our customers, as we have more automated test coverage in TorizonCore Builder. It may also be useful in the future for inspiring a public reference CI/CD implementation.

TCB-205Known Issue"images serve" command not working on WindowsLow

Description: The TorizonCore Builder "images serve" command was added to TorizonCore Builder on version 3.2.0. It does not work on Windows due to two limitations: (1) the Docker host network driver is not supported on Windows and (2) the multicast DNS (mDNS) used by Avahi does not work.

Workaround: Take the output image from TorizonCore Builder and use an SD Card/USB stick to install it to a Toradex SoM.

Alternatively, use a Linux machine.