System Upgrade

From WebOS-Ports
Jump to: navigation, search

This page describes the update process of the core system.

Links

Involvded components

  • luna-next
  • org.webosports.update
  • org.webosports.app.settings
  • webos-system-update

General process

Overal the process is based on top of the concept of having staging feeds (see http://www.shr-project.org/trac/wiki/Stabilizing)

The update service checks http://build.webos-ports.org/webos-ports/ipk/manifest.json continously for a new update and compares the platformVersion from the manifest against the platformVersion stored in /etc/platform-version (FIXME use another file?). If the local platformVersion is less then the platformVersion of the manifest.json the available update is announced to the user through a notification.

The manifest.json file allows us to add additional meta information about an udpate on top of the package feeds like a list of changes or warnings for the user if he has to do something special after an update.

{
   "version": <number> # Simple version number of the manifest
   "platformVersion": <number> # Platform version number (should be the number of the last merged stage and needs to be changed once a client should upgrade again)
   "changeLog": [
       {"platformVersion": <number>, changes: ["Upgraded system UI, "New application 1", ...] },
   ],
}

Once a update is found and the user acknowledged it's installation the update service will start to download all upgradable packages and place them on the device storage (in general / should be read-only until we do a system upgrade so we have to place things somewhere else).

cd /media/internal/.upgrade-storage/
opkg upgrade --download-only

As next step the system will reboot into special state where the update will be performend without any service or application running. After the update has finished the system will reboot into a usable system again.