Difference between revisions of "16.03/ReleaseNotes"

From Apertis
Jump to: navigation, search
(Security design)
m (Documentation: Fix spelling of D-Bus)
Line 152: Line 152:
 
== Documentation ==
 
== Documentation ==
  
Improving on the [[15.12/ReleaseNotes#hotdoc: new API documentation tool|hotdoc package in 15.12]], a new release of hotdoc, 0.7, has been packaged for use in 16.03. Several libraries have been ported to use it instead of gtk-doc, and the DBus extension for hotdoc, which uses [https://github.com/pwithnall/dbus-deviation dbus-deviation], is also released and packaged for 16.03, it allows documenting DBus API exposed by modules such as Canterbury. Work is ongoing to provide a better autotools integration, and creating an API index usable by [https://wiki.gnome.org/Apps/Devhelp devhelp].
+
Improving on the [[15.12/ReleaseNotes#hotdoc: new API documentation tool|hotdoc package in 15.12]], a new release of hotdoc, 0.7, has been packaged for use in 16.03. Several libraries have been ported to use it instead of gtk-doc, and the D-Bus extension for hotdoc, which uses [https://github.com/pwithnall/dbus-deviation dbus-deviation], is also released and packaged for 16.03. It allows documenting D-Bus API exposed by modules such as Canterbury. Work is ongoing to provide a better autotools integration, and creating an API index usable by [https://wiki.gnome.org/Apps/Devhelp devhelp].
  
 
Modules ported during this cycle are: libgrassmoor, libclapton, Canterbury, libthornbury.
 
Modules ported during this cycle are: libgrassmoor, libclapton, Canterbury, libthornbury.

Revision as of 13:27, 17 March 2016

Apertis 16.03 Release

16.03 is the current stable development distribution 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/32-bit Intel) systems. Features which are planned for Apertis can be found on the Roadmap page.

What's available in the distribution?

The software stack in 16.03 is comprised of the following technologies:

  • Linux 4.2
  • Graphical subsystem based on X.org X server 1.17.2 and Clutter 1.22.4 with full Multi-Touch support
  • Network management subsytem provided by ConnMan 1.27, BlueZ 4.101 and Ofono 1.14
  • Multimedia support provided by GStreamer 1.0
  • The Telepathy framework, with XMPP and SIP support
  • The Folks contact management framework
  • The Clutter port of the WebKit browser engine with support for WebGL
  • The GTK+ port of WebKit with features from WebKit Clutter ported to it and a ClutterActor wrapper
  • Size scaled down Apertis image
  • Graphical subsystem image based on Wayland protocol 1.8.1

What's new in the distribution?

  • <<Placeholder feature>>

Release downloads

Apertis 16.03 images
Intel 32-bit Intel Target Image Intel Development Image Intel SDK Image
Intel 64-bit / Minnowboard MAX Intel 64 bit Target Image Intel 64 bit Development Image Intel 64 bit SDK Image

Apertis 16.03 repositories

 deb https://repositories.apertis.org/apertis/ 16.03 target helper-libs development sdk hmi

Apertis 16.03 infrastructure tools

For Debian Jessie based systems:

 deb https://repositories.apertis.org/debian/ jessie tools

For Ubuntu Trusty based systems:

 deb https://repositories.apertis.org/ubuntu/ trusty tools

Apertis 16.03 Release

This release builds on the Ubuntu 15.10 (Wily) release as its base distribution. The 16.03 release has been verified in the 16.03 test report.

Applications design and implementation

Several topics related to the Applications design document have progressed:

Application namespacing

All of the standard application bundles included in Apertis images now have a correctly-namespaced reversed domain name such as org.apertis.Eye.

Application entry points

The Application Entry Points design introduces metadata describing executable "entry points" into the application bundle. These entry points include the user-visible "applications" seen in launcher menus, application-switching user interfaces and so on, as well as background services (agents). All of the standard application bundles included in Apertis images include this entry point metadata. The metadata format is heavily based on the freedesktop.org Desktop Entry Specification used in open-source desktop environments such as GNOME, with extensions to solve Apertis-specific requirements; it supersedes the ad-hoc GSettings-based format previously used for this.

The Canterbury application launcher and the Ribchester application mount manager have been updated to read application entry points.

Application bundle metadata

A preliminary Application Bundle Metadata design describes a simple metadata format for application bundles themselves, as distinct from their entry points.

Application Layout design and implementation

The relatively general outline of the structure of application bundles in the Applications design has been expanded upon and made more specific in the new Application Layout design. This separates static (read-only) application data from application-specific variable data, and ensures that the directory hierarchy used in application bundles is ready for multi-user systems. Implementation of this design in the Ribchester mount manager and the Canterbury app-launching service is in progress, and will be completed for the 16.06 release, with some of the changes already present in 16.03; in particular, the Ribchester mount manager no longer changes the ownership of system-wide directories like /var to the first user on the system.

The Canterbury app-launching service now runs with its AppArmor profile in "enforcing" mode, preventing it from launching application bundles under its own privileges. In effect, this means that all application bundles are required to have their own AppArmor profiles.

The Ribchester mount manager now has automated test coverage for app-bundle management, and a number of bugs found by the new tests have been fixed.

Multi-user support

In preparation for multi-user systems, the Canterbury app-launching service now saves its state to a user-specific location.

Conditional Access design

Detailed requirements for Conditional Access have been gathered, in preparation for a design proposal to follow in a subsequent release cycle.

Sensors and Actuators design and implementation

Further improvements have been made to the Sensors and Actuators design, and implementation has started on the first phase of the core functionality for the vehicle device daemon it describes. An initial preview of the APIs it recommends has been produced and made available for applications and third-party backends to start being based around, although it is likely to change to some extent in the future. Work will continue on this for the 16.06 release.

Geolocation and Navigation design

Many changes have been made to the navigational parts of the Geolocation and Navigation design, which is now finalised and is starting to be implemented upstream. Implementation will continue for the 16.06 release.

Geocoding improvements

Parts of the geolocation design have started to be implemented in upstream projects, GeoClue and geocode-glib, including limiting geocoding search results by radius, and geofencing support. These are due to start being integrated in the 16.06 release. All this work is being done and integrated upstream.

Status Framework design

An initial draft of the Status Framework design has been produced, and will be developed further for the 16.06 release. It is a high-level design for how applications can report status information, in a variety of categories, to the ‘home screen’.

Containerisation design

A high-level containerisation design has been produced, which explores various approaches to enforcing file system and process namespaces on applications running on the system (all of these systems are based around cgroups). This work may be researched and developed further in future to augment the existing security systems in Apertis.

Debug and Logging design

The Debug and Logging design has been updated, and various of its recommendations have started to be implemented, with the initial implementations planned to land in the 16.06 release, mostly focusing on ensuring consistent logging from all parts of the system to the systemd journal, and allowing developers and trusted parties access to those logs.

At the GNOME DX hackfest, a detailed plan for improving the logging API in GLib was discussed and approved, and implementation has started upstream on it. This is intended to land in the 16.06 release, bringing support for structured logging to GLib and improving its log handling API.

Text to Speech design

The initial Text to Speech design has been expanded and finalised, and initial implementation has begun, including adding new packages to the repositories (Pico TTS).

Security design

Detailed requirements have been gathered for a Compositor security design proposal, to be worked on in a future release cycle.

The #Application Layout design and implementation, #Conditional Access design and #Multi-user support mentioned above are also security-relevant.

Linting

As part of the gradual improvements to the contribution process, Phabricator’s linting support has been added to Canterbury as a testing ground, with the intention of applying it to other modules next quarter. It automatically checks for common problems with submitted patches, reducing the need for manual review.

GIR support in Apertis libraries

Continuing from the work done on this in 15.12, further work has been done to other Apertis libraries to ensure their APIs are suitable for gobject-introspection (GIR). This is needed for the hotdoc documentation tool and for exposing those SDK APIs in languages like JavaScript and Python, especially in the web runtime. Work from the previous cycle and this cycle has landed for 16.03.

The modules affected during this cycle are: libwickham, Frome, Tinwell, Prestwood, Newport, Frampton, Corbridge, Chalgrove, libseaton, libgrassmoor, libclapton.

WebKit2GTK+

The WebKit2 work continued, this time focusing on performance improvements. Scrolling performance was improved by implementing a feature called Async Scrolling, which unties the handling of scrolling events from parsing and rendering. By doing those independently, they can be performed in parallel avoiding blocking on each other. This work has been made available in the Apertis package, in addition to the git repository.

Web Runtime

A WebRuntime design has been started this quarter and a prototype was created to proof some of the concepts. The prototype can be checked out from the following git repository:

https://git.apertis.org/cgit/potshaft.git/

A library is available that can make GObject libraries available in the JavaScript context for WebKit2 WebViews using seed. Since seed is unmaintained upstream, Collabora has picked it up and started an effort to make it compatible with Gnome's gjs. This will ensure the existing codebase and documentation on how to use JS with Gnome can be leveraged. Existing code base, in particular, will be helpful for testing purposes and for sample code.

Most of the effort is already available in the Apertis package. More recent improvements are available upstream, and work in progress can be obtained from our developer's github:

https://github.com/danilocesar/seed/branches

Documentation

Improving on the hotdoc package in 15.12, a new release of hotdoc, 0.7, has been packaged for use in 16.03. Several libraries have been ported to use it instead of gtk-doc, and the D-Bus extension for hotdoc, which uses dbus-deviation, is also released and packaged for 16.03. It allows documenting D-Bus API exposed by modules such as Canterbury. Work is ongoing to provide a better autotools integration, and creating an API index usable by devhelp.

Modules ported during this cycle are: libgrassmoor, libclapton, Canterbury, libthornbury.

Module code and design review

The designs and code for libwickham (webview library) and libalton (maps library) have been reviewed, and feedback provided so that improvements can be made to them in future. Some of these improvements have been made already as part of the GIR support work.

Infrastructure

Updated packages

During Q4 cycle, several activities have been carried out to be able to rebase Apertis against new upstream base (Ubuntu Wily Werewolf), updating the platform with new features and updated for bug and security fixes. A total of 200 packages have been modified out of 509 in target component; 171 packages out of 1155 in development component; and 92 out of 528 in SDK.

SDK component now supports a new architecture, 64 bit Intel, and a new platform image is provided for that architecture.

In addition to base distribution, a new repository component for helper libraries ("helper-libs") have been added to the repository, with the purpose of allowing target applications to build on top of those. HMI packages have also been updated to their latest stable version.

OBS Build Projects

Shared Repositories

Repositories are found at:

 deb https://repositories.apertis.org/apertis/ 16.03 target helper-libs development sdk hmi

Images

Image daily builds, as well as release builds can be found at:

 https://images.apertis.org/

Image build tools can be found in the Apertis tools repositories. Note that a string is added to package version depending on the distribution suite based on. For example, if trusty system is to be used expect to install image-builder_7trusty1

Package Version
image-builder, image-tools 7
apertis-image-configs, apertis-image-scripts (*) 15
linaro-image-tools, python-linaro-image-tools 2012.09.1-1co38
parted, libparted0debian1 2.3-11ubuntu1co3
python-debian >=0.1.25

Continuous Integration

The latest versions of various Apertis-hosted platform and HMI components are automatically compiled on https://jenkins.apertis.org/ whenever a change is merged into the version control system, and any compile-time automated tests that do not require special privileges are run. This enables early detection of API breaks and other build issues.

To support this, most Apertis-hosted packages have been adapted to compile in a standardized way.

Test Framework

LAVA service at Collabora triggers test cases upon image builds, service is found at:

 https://lava.collabora.co.uk/

The list of available test cases, including those can be found here.

LAVA service packages are available in the Apertis tools repository. To be able to install it, please follow instructions

Known issues

  • #xxx - Buggy placeholder