gluon/docs/features/autoupdater.rst
Nils Schneider af422f70e1 docs: typo
2014-07-21 12:04:11 +02:00

79 lines
2.3 KiB
ReStructuredText

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. When creating the manifest, ``GLUON_PRIORITY`` can
be set on the command line, or it can be taken from the ``site.mk``.
The priority defines the maximum number of days that may pass between releasing an update and installation
of the images. The update probability with start at 0 after the release time mentioned in the manifest
and then slowly rise to 1 after the number of days given by the priority has passed. (Note: The priority
doesn't have an effect at the moment, this is yet to be implemented)
The priority may be an integer or a decimal fraction.
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
ln -s 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 create symlinks from ``manifest`` to ``<branch>.manifest`` in the
sysupgrade directories to allow upgrades from Gluon versions before 2014.3.
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, even when the updater is disabled
autoupdater -f