Moving all writable data under /var

Description

Right now application framework is in conflict with OTA updates.

Basically, OSTree requires data to be separated to updatable, which is generated on build and should be read-only and non-updatable which can be written, but should be generated fully in runtime. That means that it is not directly possible to build a filesystem image with some initial database and then commit to it in the runtime.

It is not just a technical limitation of OSTree, it is actually quite logical if we want our filesystem to be updatable: imagine that we deployed an image with some initial database and then installed some applications in runtime. We then create a new filesystem image in Yocto with refactored initial database system and trying to update our device. The problem of merging two database files is then emerging and it can't be solved automatically in general case.

The simplest thing that can be done if we still want to have some data that is initialized on build stage and can be updated in runtime is

  1. Install it to /usr/var/foo

  2. Write a oneshot service that will deploy /usr/var/foo to /var/foo if /var/foo doesn't exist.

Currently affected recipes are as far as I'm concerned af_main (meta-agl-extra/meta-app-framework/recipes-core/af-main/af-main_1.0.bb) and security-manager (meta-intel-iot-security/meta-security-framework/recipes-security/security-manager/).

Environment

None

Activity

Jose Bollo 
May 12, 2017 at 3:25 PM

We are waiting for the pending review https://gerrit.automotivelinux.org/gerrit/#/c/9071

Jan-Simon Moeller 
April 10, 2017 at 2:43 PM

And dlcsrv_REL is being moved into a debug package anyway. We could correct the path then, too.

 

https://gerrit.automotivelinux.org/gerrit/#/c/9069/

 

@   see  discussion above.

 

Jose Bollo 
April 10, 2017 at 2:33 PM

on m3 I only have /usr/local/bin/dlcsrv_REL

 

these files are used by AGL/wayland

 

I agree with that "in principle as a 'distro' we should not ship anything in /usr/local at all."

Jan-Simon Moeller 
April 10, 2017 at 2:25 PM

In principle as a 'distro' we should not ship anything in /usr/local at all.

Jan-Simon Moeller 
April 10, 2017 at 2:24 PM

So thats likely all from the gen2 BSP (and we iirc have quite a few hacks in place to bend paths around to /usr/local/lib for this).  If that is the only user, we should fix the BSP. It might likewise be the case on m3 and h3 . We need to quick-check the other BSP's, too.

Fixed

Details

Assignee

Reporter

Fix versions

Labels

Contract ID

Components

Priority

Created December 13, 2016 at 11:28 AM
Updated June 12, 2017 at 3:17 PM
Resolved June 12, 2017 at 3:17 PM