* 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> |
||
|---|---|---|
| .. | ||
| module.yml | ||
| README.md | ||
| rpm-ostree.sh | ||
| rpm-ostree.tsp | ||
rpm-ostree
The rpm-ostree module offers pseudo-declarative package and repository management using rpm-ostree.
The module first downloads the repository files from repositories declared under repos: into /etc/yum.repos.d/. The magic string %OS_VERSION% is substituted with the current VERSION_ID (major Fedora version), which can be used, for example, for pulling correct versions of repositories from Fedora's Copr.
If you use a repo that requires adding custom keys (eg. Brave Browser), you can import the keys by declaring the key URLs under keys:. The magic string acts the same as it does in repos.
Then the module installs the packages declared under install: using rpm-ostree install, it removes the packages declared under remove: using rpm-ostree override remove. If there are packages declared under both install: and remove: a hybrid command rpm-ostree remove <packages> --install <packages> is used, which should allow you to switch required packages for other ones.
Installing RPM packages directly from a http(s) url that points to the RPM file is also supported, you can just put the URLs under install: and they'll be installed along with the other packages. The magic string %OS_VERSION% is substituted with the current VERSION_ID (major Fedora version) like with the repos: property.
The module can also replace base RPM packages. Under replace:, the module finds every pair of keys - from-repo: and packages:. (Multiple pairs are supported.) The module downloads the repository file declared by - from-repo: into /etc/yum.repos.d/ and from that repository replaces packages declared under packages: using the command rpm-ostree override replace. The repository file is then deleted. The magic string %OS_VERSION% is substituted with the current VERSION_ID (major Fedora version) as already said above.
:::note
Removed packages are still present in the underlying ostree repository, what remove does is kind of like hiding them from the system, it doesn't free up storage space.
:::
Additionally, the rpm-ostree module supports a temporary (waiting for rpm-ostree issue #233) fix for packages that install into /opt/. Installation for packages that install into folder names declared under optfix: are fixed using some symlinks.
Known issues
When removing certain packages, some problem probably in upstream rpm-ostree causes a depsolve issue similar to below.
Resolving dependencies...done
error: Could not depsolve transaction; 1 problem detected:
Problem: conflicting requests