Apertis hosts its own package subset on the Apertis GitLab instance. On successful completion of the CI pipeline these are uploaded to Collabora’s Open Build Service (OBS) instance where the packages are formally built and hosted for Apertis.
Packages Guidelines
The package set is distributed in several groups: target
,
development
, sdk
, hmi
, helper-libs
. Those groups are merged in
a single repository, and split in what distribution names repository
components (target
, development
, sdk
, hmi
, helper-libs
).
Each of these repository components have different constraints regarding the type of package that can be hosted. Check the licensing documentation for details.
- Source packages modified from upstream distribution include a versioning suffix ‘co’.
- Source packages in SDK are built only for supported SDK architectures (Intel 64 bit)
- Source packages in
target
,development
,hmi
,helper-libs
are built for all supported architectures (ARM hard float, ARM 64bit, Intel 64 bit)
Target images contain target
, hmi
components. At build time, target
images can refer to development
components.
Requesting a new package
If a new package is desired, the request should be made following the relevant process.
Exceptions to the package update policy
The vast majority of packages of a given Apertis release come from the based Debian release allowing Apertis to benefit from the stability and security updates from Debian. However, some packages have a different origin, this could be a newer Debian release, Debian backports repositories or directly from the main project of the software component.
These packages need special attention since Apertis developers have to maintain and update them themselves.
Here is the list of these packages with their update frequency in Apertis, which might change in the future to cover new use cases:
linux
: Each Apertis release comes with the latest LTS kernel available at the time of it’sv20xx.0
release as described in Linux kernel release flow. For instance, Apertisv2023.x
provides linux LTS 6.1.x, whereasv2024.x
targets linux LTS 6.6.x. To achieve that, we may have to pull the linux package from different Debian releases depending on how Debian tracks Linux releases. For instance, we may start by tracking the kernel from the Debian release N during early development, switch to the Debian backports kernel to start tracking newer kernels when they become available and switch to picking updates from Debian N+1 when the backports cease or move to a newer kernel release than we want. If the required kernel version is no longer provided in any Debian release it will be necessary to track the www.kernel.org LTS kernel directly. In other words, the linux package remains as much as possible in sync with the Debian’s one, until Debian no longer provides the targeted LTS series. Thus, it requires regular manual updates, this will be provided approximately once every two months.u-boot
: During the development period of Apertis, this package is pulled from Debian/sid. This component has lower update frequency than the kernel. Updates for stable Apertis releases are on a case-by-case basis since any update ofu-boot
requires manual testing on all supported boards.pipewire
&wireplumber
: Both have rapid development, thus to benefit from the latest innovations, these packages are pulled from Debian-backports
repositories to the development channel. Stable Apertis releases don’t receive updates (only bug fix and security updates are allowed).debos
andgolang-github-go-debos-fakemachine
both are pulled from newer Debian release on request to benefit from new features.strace
: This package is in sync withlinux
. It’s quite common that a major linux update breaks the strace build. When this occurs, a new version of strace matching the new linux version is imported from Debian.- Some packages are first contributed to Apertis before being pushed into
Debian. That means Apertis is ahead of Debian for a release until the usual
workflow allows Apertis to resynchronize with Debian. In this case, updates
in Apertis for releases ahead of Debian are made on a case-by-case basis
depending on several factors like security issues, etc.
onnxruntime
optee-os
optee-test
- For some other packages, Apertis is upstream of Debian. Thus, the development
channel of Apertis may be ahead of Debian Sid, but the policy is to keep
Debian Sid in sync with latest versions of these packages.
gitlab-rulez
dwarf2sources
- Some packages are not suitabe for Debian. Updates for these packages are
made on an as-needed basis:
agl-compositor
: This package is not available in Debian, but is retrieved from the Automotive Grade Linux distribution (AGL). Only during the development period of Apertis,agl-compositor
is synchronized with the version available in the latest AGL LTS as described in agl-compositor/debian/README.source. Stable Apertis releases don’t receive updates (only bug fix and security updates are allowed).imx-firmware
: This package provides firmware required to support the board i.MX8MN Variscite board. It was not contributed to Debian due to redistribution issue.k3-image-gen
: This package is used to build a boot firmware for the board TI SK-AM62 board. No longer required with recent version ofu-boot
.ti-firmware
: This package provides a firmware for the board TI SK-AM62 board. Not contribued to Debian since, TI needs to push it tolinux-firmware
.ltp
: this package was removed from Debian in 2012 because it was no longer maintained. We added it to Apertis, but it was not contributed to Debian.python-robotframework
,python-robotframework-seriallibrary
,python-robotframework-sshlibrary
andpython-robotframeworklexer
: all these packages are used to support Robot Framework but they were not contributed to Debian.
- Packages removed in latest Apertis releases, but still available in a supported
Apertis release. Updates may occur only to fix security issues or targeted
major issues:
eclipse-ide-cpp
, removed after v2023. The current recommendation is to usevscodium
.golang-github-eclipse-ditto-clients
, removed after v2023. Part of the kanto deprecation.golang-github-eclipse-kanto-suite-connector
, removed after v2023. Part of the kanto deprecation.golang-github-lithammer-shortuuid
, removed after v2023. Part of the kanto deprecation.golang-github-threedotslabs-watermill
, removed after v2023. Part of the kanto deprecation.golang-1.18
, removed after v2023 and no longer in any Debian release. Part of the kanto deprecation.libcroco
, removed after v2023 and Buster.libical
, removed after v2023 and Stretch.realpath
, removed after v2023 and Wheezy.rust-ioctl-sys
, removed after v2023, it was part of the dependency chain ofrust-coreutils
.vk-gl-cts-opengl-es-cts
removed after v2023.