* feat: add typespec for bling and akmods for testing * chore: temporarily change module source to dev branch * feat: add missing module typespecs from blue-build/schema * feat: add schemas for default-flatpaks module * chore: annotate some parameters as optional * fix: typo in default-flatpaks schema * feat: add schema for files module * feat: add script module schema * feat: add signing module schema * docs: add module.yml docs etc. * fix(default-flatpaks): don't capitalize string in typespec * feat: add schemas for gnome-extensions * fix(files): properly declare string: string record type * chore: add tsp for gschema-overrides * chore: tsp for systemd module * chore: add link to systemd tsp to module.yml * chore: add tsp for yafti module * feat: add docstrings for files module * feat: add tsp for chezmoi module * feat: docstrings for akmods tsp * feat: docstrings for bling tsp * feat: docstrings for default flatpaks tsp * fix: link to files module docs page in files module tsp * feat: docstrings for fonts module tsp * feat: add docstrings for gnome extensions tsp * feat: docstrings for gschema overrides tsp * feat: docstrings for rpm ostree tsp * feat: docstrings for script tsp * feat: docstrings for signing module * feat: docstrings for systemd tsp * feat: docstrings for yafti module * fix: typo in files tsp * feat: typespec for brew module * chore: update rpm ostree tsp for keys: prop * fix: use typespec to declare default values * fix: errors from previous commit * docs: add typespec instructions * docs: chore: add typespec docs link for docs syntax * chore: switch to semicolon for ending property definitions * docs: fix: typo inlude -> include * feat: tsp for justfiles module * chore: change links to reference main branch --------- Co-authored-by: fiftydinar <65243233+fiftydinar@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| files.sh | ||
| files.tsp | ||
| module.yml | ||
| README.md | ||
files
The files module can be used to copy directories from config/files to
any location in your image at build time, as long as the location exists at
build time (e.g. you can't put files in /home/<username>, because users
haven't been created yet prior to first boot).
:::note
If you want to place files into /etc, there are two ways to do it:
- copying a directory in
config/filesdirectly to/etcto add all of its files at build time, or - putting the files you want there in
/usr/etcas part of copying things over to/usr, whichrpm-ostreewill then copy to/etcat runtime/boot.
Typically, you will want to use the latter option (putting files in /usr/etc)
in almost all cases, since that is the proper directory for "system"
configuration templates on atomic Fedora distros, whereas /etc is meant for
manual overrides and editing by the machine's admin after installation (see
issue https://github.com/blue-build/legacy-template/issues/28). However, if you
really need something to be in /etc at build time --- for instance, if you
for some reason need to place a repo file in /etc/yum.repos.d in such a way
that it is used by a rpm-ostree module later on --- then the former option
will be necessary.
:::
:::caution
The files module cannot write to directories that will later be symlinked
to point to other places (typically /var) by rpm-ostree.
This is because it doesn't make sense for a directory to be both a symlink and
a real directory that has had actual files directly copied to it, so the
files module copying files to one of those directories (thereby instantiating
it as a real directory) and rpm-ostree's behavior regarding them will
necessarily conflict.
For reference, according to the official Fedora
documentation,
here is a list of the directories that rpm-ostree symlinks to other
locations:
/home→/var/home/opt→/var/opt/srv→/var/srv/root→/var/roothome/usr/local→/var/usrlocal/mnt→/var/mnt/tmp→/sysroot/tmp
So don't use files to copy any files to any of the directories on the left,
because at runtime rpm-ostree will want to link them to the ones on the
right, which will cause a conflict as explained above.
:::