Apertis is a Debian derivative distribution geared towards the creation of product-specific images for ARM (both the 32bit ARMv7 and 64-bit ARMv8 versions using the hardfloat ABI) and Intel x86-64 (64-bit) systems.
Apertis v2025.0 is the first stable release of the Apertis v2025 stable release flow. Apertis is committed to maintaining the v2025 release stream up to the end of 2026.
This Apertis release is built on top of Debian Bookworm along with several customizations and it ships the latest Linux LTS kernel 6.12.x series. Later releases in the v2025 channel will be tracking kernel updates in this LTS series as well as Debian Bookworm Stable Channel.
Test results for the v2025.0 release are available in the following test reports:
Release flow
- 2023 Q4: v2025dev0
- 2024 Q1: v2025dev1
- 2024 Q2: v2025dev2
- 2024 Q3: v2025dev3
- 2024 Q4: v2025pre
- 2025 Q1: v2025.0
- 2025 Q2: v2025.1
- 2025 Q3: v2025.2
- 2025 Q4: v2025.3
- 2026 Q1: v2025.4
- 2026 Q2: v2025.5
- 2026 Q3: v2025.6
- 2026 Q4: v2025.7
Release downloads
Apertis v2025.0 images | ||||
---|---|---|---|---|
Intel 64-bit | fixedfunction | hmi | base SDK | SDK |
ARM 32-bit (U-Boot) | fixedfunction | hmi | ||
ARM 64-bit (U-Boot) | fixedfunction | |||
ARM 64-bit (Raspberry Pi) | fixedfunction | hmi |
The Intel fixedfunction
and hmi
images are tested on the
reference hardware (UP Squared 6000),
but they can run on any UEFI-based x86-64 system. The sdk
image is
tested under VirtualBox.
Apertis v2025 package list
The full list of packages available from the v2025 APT repositories is available in tab-separated value (TSV) format for easy processing in spreadsheets:
Apertis v2025 repositories
deb https://repositories.apertis.org/apertis/ v2025 target development sdk non-free
New features
Support for NXP LS1028ARDB board
Apertis now provides images for the NXP LS1028ARDB allowing developers building products using this platform to have a good starting point. The fixed function images is available in the standard Apertis download site
Build and integration
Rust an Go packages moved to target
To align with Apertis policies Rust and Go packages used to build packages in target were moved from development to target. In this way, code that is intended to be used in target devices lives in target where compliance checks are performed. This change was needed, since these languages are statically linked, causing that most of the build dependencies ship code that is used in the binaries.
Include builddeps reports
Following the idea of provide more resources for Software Build of Materials, now Apertis provides a report for the build dependencies of every package in the target images, including its version. This information helps to easily track CVEs that might potentially affect Apertis packages.
Support for tests on MRs
Following the guidelines described in the Apertis test strategy this release provides support for running automated tests on LAVA in the context of a MR. With this feature, packages changes can be validated by running integration tests before landing them to main branches.
It is currently recommended that only packages where potential regressions may have a high-impact on the system stability have this feature enabled, given the extra resources required to run the tests.
As before, all available integration tests are also run regularly on daily image builds.
Support for package testing
This release includes a new way for developers to includes tests to run on a Merge Request. The package testing in LAVA allows writing tests a part of the standard packing metadata, which are used by our GitLab infrastructure to run LAVA tests to ensure the proposed changes do not introduce any kind of regression in the supported hardware.
Test on MR for linux
Continuing with the trend on adding test on MR, a set of custom tests have been implemented for the linux kernel. As this is a very special package with delta respect to Debian additional checks are now performed, to ensure that changes proposed by developers don’t cause regression and simplifying the review and test process.
Support for image change history
Apertis now provides Change History Generator a tool to generate a changelog between images. Thanks to this tool, as part of daily builds a changelog is created which helps developers to track changes across different images.
Folding and branching pipeline improvements
The folding and branching process has been moved to Gitlab CI, but the work continues to make these pipelines more developer and user friendly. With this idea in mind the code has been refactored to improve consistency and make it easier to maintain and debug. From the user perspective, the new version provides more hints to and checks to avoid mistakes and improve debug information.
Dashboard delta tracking
Continuing with the effort on tracking delta from upstream, Apertis dashboard provides more refined information about the root cause of the delta. Based on this information the Apertis team continuously upstreams changes to benefit the community.
Deprecations and ABI/API breaks
Regressions
No known regressions.
Deprecations
No known deprecations
Breaks
No known breaks
Infrastructure
Apertis Docker images
The Apertis Docker images provide a unified and easily reproducible build environment for developers and services.
As of today, this includes the
apertis-base
,
apertis-image-builder
,
apertis-package-source-builder
,
apertis-flatdeb-builder
,
apertis-documentation-builder
,
and apertis-testcases-builder
,
Docker images.
Images
Image daily builds, as well as release builds can be found at https://images.apertis.org/
Infrastructure overview
The Apertis Image Recipes provides an overview of the image building process and the involved services.
Known issues
High
- Issue #419 High level tracking of AUM issues
- Issue #615 aum-offline-upgrade-branch: test failed
- Issue #636 WiFi connection does not bring up after reboot
- Issue #695 aum-rollback-bootcount: error message displayed during the test
- Issue #719 aum-offline-upgrade: test failed
- Issue #731 Investigate license issue with golang-github-juju-ratelimit and g olang-github-juju-ansiterm
- Issue #736 OBS: the build of some packages disturbs OBS behaviour
- Issue #752 Unable to test audio policies in armhf
- Issue #753 aum-power-cut: test failed
Normal
- Issue #7 Crash when initialising egl on ARM target
- Issue #9 System users are shipped in /usr/etc/passwd instead of /lib/passwd
- Issue #32 Gitlab pipeline OBS job reported “success” but OBS build was “unres olvable”
- Issue #49 “firmware: failed to load” logs seen during boot
- Issue #66 Some binaries in the toolchain tarball are huge
- Issue #256 OBS: Backend doesn’t start immediately upon restart
- Issue #273 Debos build output hidden on GitLab job view can only be seen in the raw log file
- Issue #331 Frequent 504 Errors repeatedly causing pipelines to be marked as failed
- Issue #339 Up Squared 6000 board fails to boot randomly in LAVA
- Issue #377 import-debian-package issues during package import
- Issue #396 Pipeline to build package fails during build-source for texlive-e xtra
- Issue #405 traprain: test failed
- Issue #413 obs-runner: Disabled architectures on a OBS package get re-enable d when CI creates a branch
- Issue #441 tiny-container-user-device-sharing: test failed
- Issue #448 ade-commands: test failed
- Issue #459 tiny-container-system-device-sharing: test failed
- Issue #462 agl-compositor mute functionality not working
- Issue #486 “webkit2gtk-ac-3d-rendering” fails in “ARMHF”.
- Issue #490 gpgv (sequioa) crashes when added debian archives
- Issue #528 OBS runner creates conflicts in the origin repo, then waits forev er for them
- Issue #537 Update some apertis gitlab-ci pipeline to use a bookworm image in stead of a bullseye/buster image
- Issue #597 obs runner is confused by multple OBS repos
- Issue #602 lintian: the child pipeline lintian-errors is always triggered on the default branch instead of the same branch as the parent job
- Issue #603 AUM upgrade branch fails on amd64 on all releases
- Issue #633 dashboard: issues just after a branching
- Issue #637 Improve the repo/pipeline used to test the lintian job
- Issue #638 Improve the repos/pipelines used to test the abi-checker job
- Issue #639 apertis-dev depends on eatmydata that was dropped during the reba se on Bookworm
- Issue #643 Improve the tool import-debian-package to trigger the generation of debian/apertis/copyright on an initial import.
- Issue #656 Improve apertis-pkg-* tools (from apertis-dev-tools) to use pytho n-gitlab instead of relying on urllib
- Issue #659 Remove “hmi” repository from website documentation
- Issue #664 Improve workflow for importing packages
- Issue #665 Write a python tool to generate apertis-oslist.json (for rpi-imag er)
- Issue #675 pkg/debugpy: investigate tests failure at build time
- Issue #678 Test pipeline of ci-flatdeb-builder triggers too many (5) MR pipe lines
- Issue #702 Improve delta tracking in linux package
- Issue #703 Add recommendations about gitignore usage
- Issue #721 Improve checks on folding/branching
- Issue #734 qa-parser relies on lqa which is unmaintained
- Issue #742 dashboard reports Git repository contains an untracked debian bra nch debian/bullseye
Low
- Issue #15 Fix the kernel command line generation in OSTRee for FIT image
- Issue #23 Remote outputs and local output, buffer size combined in Maynard/GT K
- Issue #65 Terminal at xfce desktop corrupted after debos call
- Issue #607 Pipeline for sample application helloworld-https-client fails