Autoupdater
===========

Gluon contains an automatic update system which can be configured in the site configuration.

Building Images
---------------

By default, the autoupdater is disabled (as it is usually not helpful to have unexpected updates
during development), but it can be enabled by setting the variable GLUON_BRANCH when building
to override the default branch set in the set in the site configuration.

A manifest file for the updater can be generated with `make manifest`. A signing script (using
ecdsautils) can by found in the `contrib` directory.

A fully automated nightly build could use the following commands:

::

    git pull
    (cd site && git pull)
    make update
    make clean
    make -j5 GLUON_BRANCH=experimental
    make manifest GLUON_BRANCH=experimental
    contrib/sign.sh $SECRETKEY images/sysupgrade/experimental.manifest
    cp -r images /where/to/put/this/experimental
    mv /where/to/put/this/experimental/experimental.manifest /where/to/put/this/experimental/manifest


Infrastructure
--------------

We suggest to have following directory tree accessible via http:

::

    firmware/
            stable/
                    sysupgrade/
                    factory/
            snapshot/
                    sysupgrade/
                    factory/
            experimental/
                    sysupgrade/
                    factory/

The last level is generated by the Gluon build process. Do not forget
to rename the ``<branch>.manifest`` into ``manifest`` inside of the
sysupgrade directories.

The server should be available via IPv6.

Command Line
------------

These commands can be used on a node.

::

   # Update with some probability
   autoupdate

::

   # Force Update Check
   autoupdater -f