This is a small app that makes copies of various system files to a directory
in /run so that the app sandbox can receive updates to these. This solves
the issue that we can't generally bind-mount say /etc/resolv.conf, because
it will be replaced with rename-over.
This makes /etc a real directory, with required files like passwd and
symlinks to all the other files in usr/etc.
This is required because we need to make /etc/localtime an actual
symlink whose value depends on the host state.
Make it so that one can specify --user or --system to list
only items from one location, but if neither is specified,
both user and system items are listed.
This is a natural counterpart to --user with the opposite
meaning. In the future, we may start interpreting the absence
of either as 'operate on both'.
If you put in the metadat file something like:
[Extension org.gnome.Platform.Timezones]
directory=share/zoneinfo
subdirectories=false
[Extension org.gnome.Platform.Locale]
directory=share/gnome-sdk/locale/
subdirectories=true
then /usr/share/zoneinfo will be overridden with
whatever is in the org.gnome.Platform.Timezones
runtime if that is installed, and any runtime
like org.gnome.Platfrom.Locale.* will be mounted
at the corresponding name under /usr/gnome-sdk/locale
When we run a system app, we create the org.foo.App/data directory
in the user location. This was causing the app to show up in the
list of user apps, when not using --show-details. Avoid this by
always listing full references, and only hiding the arch and branch
information without --show-details.
Load the OSTree summary file for the remote repo, and show its
contents, if available. This gives us a listing of the refs that
are available in the remote repository, regardless of whether
they are represented in the local repo.
Summaries are the ostree mechanism to learn about available
branches (ie in our case, applications and runtimes) in
remote repositories. Therefore, we should generate summaries
for all our repositories.
When --updates is given to repo-contents, only list
apps and runtimes for which the ref points at a commit
that is different from the currently deployed one, indicating
that there is an update available in the local repo.
This is meant as a generic extension point that can be used
by 3rd party applications, so we should export these files.
They are needed outside the sandbox, since search is a way
to launch applications.