These are Lua scripts for updater-ng. They are server side configuration for Turris OS updating process. Updater downloads these scripts and runs them to get rules for update it does.
Lists are either Lua files with .lua
extension or m4 macro files generating Lua
script with .lua.m4
extension. Script generate.sh
just copies plain Lua files
and runs m4 for *.lua.m4
files. Any other file is ignored.
This repository is used by turris-build.
Workflow of this repository is consistent with workflow of turris-os-packages.
There are different lists used for different use cases. This section serves and general overview of available lists.
Top level lists are accessed by default and define default installation targets. The general use case for them is default installation and rules that are always included.
There are files with base prefix, those are used as top level files. Additional groups of rules (such as for Foris or Luci) are in separate lists and accessed from base one.
These are lists of packages optionally included in installation. This inclusion is controlled by end device and package pkglists.
As lists can be generated using m4 macro language there are also some commonly
used macros defined in various files. You can understand them as m4 libraries. In
reality m4 is instructed to look for files in this directory. You can for example
use include(utils.m4)dnl
to include utils.m4
file in this directory.
Next subsections describe various macros defined in various files
This file is expected to be included to pretty much every file that is not pure Lua. It contains core definitions you probably want to use.
file2args(FILE)
-
Transforms lines in file to comma separated list of arguments. You have to provide path to file. Usage:
file2args(`kmod.common')
foreach(X,TEXT(X),...)
-
Evaluates second argument with first argument as macro definition with macro of value of all additional arguments. Usage:
foreach(X,`kmod-X',foo,fee)
foeach_join(X,TEXT(X),Y,...)
-
This serves same purpose as
foreach(X,TEXT(X),...)
. The difference is that there is one additional argumentY
that is used to join generated text. Usage:foreach(X,`kmod-X',
\,',foo,fee)` forInstall(BASE,...)
-
Generate Install requests for common base and various expansions. The use case is to simplify writing of some requests where base of package name repeats. Usage:
forInstall(`kmod-',`foo',`fee')
forInstallCritical(BASE,...)
-
This same as
forInstall(BASE,...)
but it makes critical packages requests instead of regular ones. _FEATURE_GUARD_
-
Use this to guard more complicated sections of scripts. They are intended as a way to just have guard for all new features but still have valid scripts that allow system to update updater to new version and that way process guarded sections as well.
_END_FEATURE_GUARD_
-
End of
_FEATURE_GUARD_
. Always pair these together.
This file also includes one pure Lua function list_script
. It is intended for
generic relative list inclusion. The reason for its existence is that updater
might not support relative URIs and in such case it just uses HBS to build URI.
This also includes check for updater version. Only updater newer than version 60.0.1 is allowed.
The last thing it provides is exact identifier for board. That is stored in
variable board
and can have one of three values:
* mox
* omnia
* turris1x