Merge remote-tracking branch 'upstream/main' into gschema-override-newline

This commit is contained in:
fiftydinar 2024-02-25 18:36:40 +01:00
commit 76cb237acc
20 changed files with 65 additions and 97 deletions

View file

@ -6,15 +6,15 @@ on:
paths-ignore: # don't rebuild if only documentation has changed
- "**.md"
pull_request:
branches: ['main']
merge_group:
branches: ['main']
branches: ["main"]
merge_group:
branches: ["main"]
schedule:
- cron: '0 5 * * *' # 5 am everyday
workflow_dispatch:
- cron: "0 5 * * *" # 5 am everyday
workflow_dispatch:
env:
IMAGE_NAME: bling
IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }}
IMAGE_NAME: modules
IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }}
jobs:
push-ghcr:
@ -24,7 +24,7 @@ jobs:
contents: read
packages: write
id-token: write
steps:
steps:
# Checkout push-to-registry action GitHub repository
- name: Checkout Push to Registry action
uses: actions/checkout@v4

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
cosign.key

View file

@ -1,40 +1,23 @@
# bling
# BlueBuild Modules   [![build-ublue](https://github.com/blue-build/modules/actions/workflows/build.yml/badge.svg)](https://github.com/blue-build/modules/actions/workflows/build.yml)
[![build-ublue](https://github.com/ublue-os/bling/actions/workflows/build.yml/badge.svg)](https://github.com/ublue-os/bling/actions/workflows/build.yml)
This repository contains the default official module repository for [BlueBuild](https://blue-build.org/). See [./modules/](./modules/) for the module source code. See the [website](https://blue-build.org/reference/module/) for module documentation. See [How to make a custom module](https://blue-build.org/how-to/making-modules/) and [Contributing](https://blue-build.org/learn/contributing/) for help with making custom modules and contributing.
This repository containes modules to use in recipe.yml. See list of modules in [./modules](./modules/)
## Style guidelines for official modules
## Usage
These are general guidelines for writing official modules and their documentation to follow to keep a consistent style. Not all of these are to be mindlessly followed, especially the ones about grammar and writing style, but it's good to keep these in mind if you intend to contribute back upstream, so that your module doesn't feel out of place.
You can add this to your Containerfile to copy the modules from this image over:
```dockerfile
COPY --from=ghcr.io/ublue-os/bling:latest /modules /tmp/modules/
```
### Bash
## Verification
- Echo what you're doing on each step and on errors to help debugging.
- Don't echo blocks using "===", that is reserved for the code launching the modules.
- Use `snake_case` for functions and variables changed by the code.
- Use `SCREAMING_SNAKE_CASE` for variables that are set once and stay unchanged.
These images are signed with sisgstore's [cosign](https://docs.sigstore.dev/cosign/overview/). You can verify the signature by downloading the `cosign.pub` key from this repo and running the following command:
```sh
cosign verify --key cosign.pub ghcr.io/ublue-os/bling
```
### `module.yml` (not implemented) (will replace READMEs)
## See what is in this image
Each public module should also include a `module.yml` with the following keys: (TODO, not planned yet).
### Raw commands
#### `description:`
NOTE: This makes it so you need to extract everything from the base image!
```sh
podman save ghcr.io/ublue-os/bling:latest -o bling.tar
tar xf bling.tar && rm bling.tar
tar xf *.tar
```
This should extract the image in a way that you can see everything in it!
### Using [Dive](https://github.com/wagoodman/dive)
This method allows you to inspect the image through a TUI
```sh
dive ghcr.io/ublue-os/bling:latest
```
- At the start of each paragraph, refer to the module using its name or with "the module", not "it" or "the script"
- Use passive grammar when talking about the user, ie. "should be used", "can be configured", preferring references to what the module does, ie. "This module downloads the answer to the question of life, the universe and everything..."

View file

@ -1,4 +1,4 @@
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7lh7fJMV4dBT2jT1XafixUJa7OVA
cT+QFVD8IfIJIS/KBAc8hx1aslzkH3tfeM0cwyCLB7kOStZ4sh6RyFQD9w==
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEk/2hQrKLFNf66dOyCEoUCip38EZh
I4NQN1BiVQ+6IRXkHCJahZfPtC9RqJ3dpGm/2CSdjKyES+vDQrUFj8vsmg==
-----END PUBLIC KEY-----

View file

@ -1,13 +1,12 @@
[
"https://raw.githubusercontent.com/ublue-os/bling/main/modules/akmods/module.yml",
"https://raw.githubusercontent.com/ublue-os/bling/main/modules/bling/module.yml",
"https://raw.githubusercontent.com/ublue-os/bling/main/modules/default-flatpaks/module.yml",
"https://raw.githubusercontent.com/ublue-os/bling/main/modules/files/module.yml",
"https://raw.githubusercontent.com/ublue-os/bling/main/modules/fonts/module.yml",
"https://raw.githubusercontent.com/ublue-os/bling/main/modules/gschema-overrides/module.yml",
"https://raw.githubusercontent.com/ublue-os/bling/main/modules/rpm-ostree/module.yml",
"https://raw.githubusercontent.com/ublue-os/bling/main/modules/script/module.yml",
"https://raw.githubusercontent.com/ublue-os/bling/main/modules/signing/module.yml",
"https://raw.githubusercontent.com/ublue-os/bling/main/modules/systemd/module.yml",
"https://raw.githubusercontent.com/ublue-os/bling/main/modules/yafti/module.yml"
"https://raw.githubusercontent.com/blue-build/modules/main/modules/akmods/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/bling/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/default-flatpaks/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/fonts/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/gschema-overrides/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/rpm-ostree/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/script/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/signing/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/systemd/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/yafti/module.yml"
]

View file

@ -1,10 +1,10 @@
name: akmods
shortdesc: The akmods module is a tool used for managing and installing kernel modules built by Universal Blue.
readme: https://raw.githubusercontent.com/ublue-os/bling/main/modules/akmods/README.md
readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/akmods/README.md
example: |
type: akmods
install:
- openrazer
- openrgb
- v4l2loopback
- winesync
- winesync

View file

@ -3,10 +3,6 @@
# Tell build process to exit if there are any errors.
set -euo pipefail
# Fetch bling COPR
REPO="https://copr.fedorainfracloud.org/coprs/ublue-os/bling/repo/fedora-${OS_VERSION}/ublue-os-bling-fedora-${OS_VERSION}.repo"
wget "${REPO//[$'\t\r\n ']}" -P "/etc/yum.repos.d/"
get_yaml_array INSTALL '.install[]' "$1"
cd "/tmp/modules/bling/installers"
@ -18,7 +14,4 @@ for ITEM in "${INSTALL[@]}"; do
echo "Pulling from bling: $ITEM"
# The trainling newline from $ITEM is removed
eval "$PWD/${ITEM%$'\n'}.sh"
done
# Remove bling COPR
rm /etc/yum.repos.d/ublue-os-bling-fedora-*.repo
done

View file

@ -32,6 +32,13 @@ if ! rpm -q python3-pip > /dev/null; then
rpm-ostree install python3-pip
fi
# Fetch ublue COPR
REPO="https://copr.fedorainfracloud.org/coprs/ublue-os/staging/repo/fedora-${OS_VERSION}/ublue-os-staging-fedora-${OS_VERSION}.repo"
wget "${REPO//[$'\t\r\n ']}" -P "/etc/yum.repos.d/"
# topgrade is REQUIRED by ublue-update to install
pip install --prefix=/usr topgrade
rpm-ostree install ublue-update
# Remove ublue COPR
rm /etc/yum.repos.d/ublue-os-staging-fedora-*.repo

View file

@ -1,6 +1,6 @@
name: bling
shortdesc: The bling module can be used to pull in small "bling" into your image.
readme: https://raw.githubusercontent.com/ublue-os/bling/main/modules/bling/README.md
readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/bling/README.md
example: |
type: bling
install:
@ -9,4 +9,4 @@ example: |
# - dconf-update-service # a service unit that updates the dconf db on boot
# - gnome-vrr # enables gnome-vrr for your image
# - laptop # installs TLP and configures your system for laptop usage
# - flatpaksync # allows synchronization of user-installed flatpaks, see separate documentation section
# - flatpaksync # allows synchronization of user-installed flatpaks, see separate documentation section

View file

@ -1,6 +1,6 @@
name: default-flatpaks
shortdesc: The default-flatpaks module can be used to install or uninstall flatpaks from a configurable remote on every boot.
readme: https://raw.githubusercontent.com/ublue-os/bling/main/modules/default-flatpaks/README.md
readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/default-flatpaks/README.md
example: |
modules: # configured multiple times to highlight how options are overridden
- type: default-flatpaks
@ -35,4 +35,4 @@ example: |
user:
# repo-name will overwrite the previously-configured repo-name for the user remote
repo-name: flathub-user
repo-title: "Flathub (User)
repo-title: "Flathub (User)

View file

@ -1,7 +1 @@
# `files`
The `files` module simplifies the process of copying files to the image during the build time. These files are sourced from the `config/files` directory, which is located at `/tmp/config/files` inside the image.
:::note
If you want to place any files in `/etc/`, you should place them in `/usr/etc/` instead, which will be used to generate `/etc/` on a booted system. 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/ublue-os/startingpoint/issues/28.
:::
### The documentation for the `files` module exists in the [blue-build/cli](https://github.com/blue-build/cli/blob/main/templates/modules/files/) repository.

View file

@ -1,9 +0,0 @@
name: files
shortdesc: The files module simplifies the process of copying files to the image during the build time.
readme: https://raw.githubusercontent.com/ublue-os/bling/main/modules/files/README.md
example: |
type: files
files:
- usr: /usr
# usr: file/folder inside config/files/ to copy (config/files/usr/ in the repository)
# /usr: destination on the final system

View file

@ -1,6 +1,6 @@
name: fonts
shortdesc: The `fonts` module can be used to install fonts from Nerd Fonts or Google Fonts.
readme: https://raw.githubusercontent.com/ublue-os/bling/main/modules/fonts/README.md
readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/fonts/README.md
example: |
type: fonts
fonts:
@ -13,4 +13,4 @@ example: |
- NerdFontsSymbolsOnly
google-fonts:
- Roboto
- Open Sans
- Open Sans

View file

@ -1,6 +1,6 @@
name: gschema-overrides
shortdesc: The `gschema-overrides` module can be used for including system-setting overrides for GTK-based desktop environments.
readme: https://raw.githubusercontent.com/ublue-os/bling/main/modules/gschema-overrides/README.md
readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/gschema-overrides/README.md
example: |
type: gschema-overrides
include:

View file

@ -1,6 +1,6 @@
name: rpm-ostree
shortdesc: The rpm-ostree module offers pseudo-declarative package and repository management using rpm-ostree.
readme: https://raw.githubusercontent.com/ublue-os/bling/main/modules/rpm-ostree/README.md
readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/rpm-ostree/README.md
example: |
type: rpm-ostree
repos:
@ -11,4 +11,4 @@ example: |
- libadwaita
remove:
- firefox
- firefox-langpacks
- firefox-langpacks

View file

@ -1,7 +1,7 @@
name: script
shortdesc: The script module can be used to run arbitrary scripts at image build time.
readme: https://raw.githubusercontent.com/ublue-os/bling/main/modules/script/README.md
readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/script/README.md
example: |
type: script
scripts:
- myscript.sh # will run config/scripts/myscript.sh
- myscript.sh # will run config/scripts/myscript.sh

View file

@ -1,5 +1,5 @@
name: signing
shortdesc: The signing module is used to install the required signing policies for cosign image verification with rpm-ostree and bootc.
readme: https://raw.githubusercontent.com/ublue-os/bling/main/modules/signing/README.md
shortdesc: The signing module is used to install the required signing policies for cosign image verification with rpm-ostree and bootc.
readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/signing/README.md
example: |
type: signing # this sets up the proper policy & signing files for signed images to work fully
type: signing # this sets up the proper policy & signing files for signed images to work fully

View file

@ -1,6 +1,6 @@
name: systemd
shortdesc: The systemd module streamlines the management of systemd units during image building.
readme: https://raw.githubusercontent.com/ublue-os/bling/main/modules/systemd/README.md
readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/systemd/README.md
example: |
type: systemd
system:
@ -20,4 +20,4 @@ example: |
masked:
- example.service # Masked (does not run for the user, under any circumstances)
unmasked:
- example.service # Unmasked (runs for the user, even if previously masked)
- example.service # Unmasked (runs for the user, even if previously masked)

View file

@ -4,4 +4,4 @@ The [`yafti`](https://github.com/ublue-os/yafti) module can be used to install [
Optionally, a list of Flatpak names and IDs can be included under `custom-flatpaks:`. These will be enabled by default under their own section on the Flatpak installation screen of `yafti`.
A default version of the `yafti` configuration file, `yafti.yml`, is supplied by this module. To make your own, create the file at `/usr/share/ublue-os/firstboot/yafti.yml`. The default version of the file can be found [here](https://github.com/ublue-os/bling/blob/main/modules/yafti/yafti.yml).
A default version of the `yafti` configuration file, `yafti.yml`, is supplied by this module. To make your own, create the file at `/usr/share/ublue-os/firstboot/yafti.yml`. The default version of the file can be found [here](https://github.com/blue-build/modules/blob/main/modules/yafti/yafti.yml).

View file

@ -1,8 +1,8 @@
name: yafti
shortdesc: The yafti module can be used to install yafti and set it up to run on first boot.
readme: https://raw.githubusercontent.com/ublue-os/bling/main/modules/yafti/README.md
readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/yafti/README.md
example: |
type: yafti
custom-flatpaks:
- Celluloid: io.github.celluloid_player.Celluloid
- Krita: org.kde.krita
- Krita: org.kde.krita