Apertis 16.12 Release
16.12 is the current stable development release of Apertis, a Debian/Ubuntu derivative distribution geared towards the creation of product-specific images for ARM (ARMv7 using the hardfloat ABI) and Intel x86-64 (64-bit) systems.
This Apertis release is based on top of the Ubuntu 16.04 (Xenial) LTS release with several customization. Test results of the 16.12 release are available in the 16.12 test report.
|Apertis 16.12 images|
Apertis 16.12 repositories
16.12 target helper-libs development sdk hmi
Stable application bundle layout
Version 1.0.0 of the Application Bundle Specification has been published, which means that the layout of bundles is now stable and that bundles that adhere to it are guaranteed to be installable on any future release of Apertis with no changes.
The Canterbury application manager has been updated to match the specification
The first implementation of the Web runtime
landed in Apertis 16.12 as a technology preview. Application bundles can
/usr/bin/bredon-0-launcher shared launcher to exclusively rely
on HTML/JS/CSS for their needs while still being able to access all the
native GObject-based APIs provides by Apertis through the
GObject-Introspection bindings provided by Seed.
Application store client
The old application store client implementation (Frome) has been refreshed to take advantage of the recent development in the finalized bundle specification, in the application manager (Canterbury) and in the application mounter (Ribchester), while preserving the same D-Bus API for applications.
The updated application store client can now create its own account on the reference server, download packed application bundles using the download manager service (Newport) and manage the installed state of application bundles.
Apertis Development Environment tools
To improve the developer experience for Apertis a lot of effort has been focused on providing tools to ease the time-consuming parts of setting up the appropriate development environment.
A command-line tool,
ade, can now help developers in managing sysroot
environments to target different releases of Apertis for different
architectures, cross-building programs and libraries, packing
application bundles that can be deployed on the target system and
connect to it to run application bundles under an interactive debugger.
Sample application bundles
The source code for some simple application bundles has been released to demonstrate how to accomplish specific tasks, showcasing different aspects of the SDK APIs provided in Apertis.
Basic application bundle skeleton (hello-world)
The hello-world bundle demonstrates the most simple graphical application, providing a base for all the other sample apps. It only displays a non-interactive message on screen, but shows how to provide entry points that can be shown in the application menu by using a .desktop file, demonstrates how to integrate with the application manager (
GApplication), and provides the basic application bundle project scaffolding.
Hardkeys (special keys) handling
Demonstrates how to listen for events triggered by standard and special keys like arrows and back/forward keys and react to them.
Preferences system (GSettings) usage
A simple applications that switches its background color on click and it is able to restore the last selected color when restarted by storing it as an application-specific setting.
Showing / dismissing notifications
Triggers a notification when the button is clicked, automatically dismissing it after two seconds.
Persistent data handling
Save the number of times the button gets pressed in a persistent data file, using the
Shipping a graphical program with a separate background agent
Demonstrate how to split an application in a graphical program implementing the user-facing part of the bundle and a separate agent running in the background which is controlled by the graphical program using D-Bus methods and properties.
Using C++ and embed existing external libraries
This fairly advanced sample applications demonstrates how to build an application using C++ instead of pure C using the same SDK API, and also how to embed a private copy of an existing, complex, and externally-maintained C++ library such as OpenCV which uses a different build system (CMake instead of the GNU Autotools).
Writing applications using HTML/JS/CSS with the web runtime
Web runtime JS bindings
WebKit2GTK+ performance on Wayland
The work on hardware-accelerated compositing that landed in the previous release has been further improved by noticeably speeding up how GTK+ paints its windows, benefiting any application using GTK+ and not only WebKit2GTK+.
Multiple mockable backends in geocode-glib
A new version of the Lightwood abstract widget set API is currently under review.
Traprain route guidance API
Traprain gained a new API allowing navigation services to send turn-by-turn notifications and progress information about the current journey accordingly to the Geolocation and navigation document.
A first version of the Audio management concept document has been published, describing how streams and their priorities should be managed in a Apertis system using PulseAudio.
The list concept document has been further clarified and it is now available for public consumption, providing the architecture for modern, model-based advanced list widgets, based on the experience gathered working with the roller widget.
The Speech recognition document describes how an Apertis system can be operated using speech commands, without physically interacting with hardware buttons or touch screens.
It defines an uniform and consistent user interface, using three different types of user interaction: command and control, data selection and dictation.
Routing preferences handling in
The Geolocation and navigation
has seen the addition of routing-specific parameters in
allowing applications to ask the navigation engine to plan routes for
specific kinds of vehicles, avoiding tolls and motorways, or trying to
pick the shortest or fastest route.
New provisions have been added to the Web runtime specification to provide more details about the requirements that any compatible implementation has to provide to be able to transparently run applications that target the Apertis web runtime.
Web portal caching
A document about caching in WebKitGTk+ and its usage in specific use-cases has been published, describing how a offline-first web portal could be implemented using web technologies available in Apertis.
Deprecations and ABI/API breaks
T2789: Add namespace to SampleItem of mildenhall
SampleItemclass and related symbols have been renamed to
MildenhallSampleItemto properly namespace them.
T3031: mildenhall should keep the naming convention rules
#include <mildenhall/mildenhall.h>as direct inclusion of other Mildenhall headers is now deprecated.
initialize_ui_toolkit()has been deprecated, simply use
create_mildenhall_window()has been deprecated, use
T2640: Generate a single library for all the widgets
liblightwoodwidget library has changed since all the widgets have been moved in a single library to reduce the linking overhead. This means that applications linking to the
liblightwoodbutton.so.0and related libraries will need to be rebuilt to link to the new
liblightwood-0.so.0. No source code changes should be required, the new setup should be automatically be picked up by just rebuilding the existing code.
T2707: Canterbury: remove support for GSettings-schema-based entry points
The old entry points discovery mechanism based on GSettings schemas is still available but will be removed immediately after the release and won’t be available in 17.03. Use
.desktopfiles to describe entry points in application bundles.
Apertis infrastructure tools
For Debian Jessie based systems:
For Ubuntu Trusty based systems:
Image daily builds, as well as release builds can be found at:
Image build tools can be found in the Apertis tools repositories.
The list of available test cases, including manual and automated, can be found here.
LAVA service packages are available in the Apertis tools repository. To install, please follow instructions.
- Mildenhall compositor crops window
- Tracker issue when creating thumbnails on SDK and ARM
- Issue with cgroup tests on SDK
- Cannot update sysroot in Eclipse on SDK
- Kinetic scrolling is not smooth
- Bluetooth pairing fails on ARM
- Apparmor lockdown session profile does not work as expected
- PulseAudio AppArmor profile doesn’t work as expected on ARM
- Contact linking does not work on devel image
- Issue with LibreOffice AppArmor profile
- Factory reset does not work
- Target doesn’t reboot after system update