A collection of custom build specifications for upstream FOSS projects as well as any projects of my own that I wish to distribute. Builds are handled by the SUSE Open Build Service (OBS) or GitHub Actions, and binaries are hosted via the OBS or GitHub Pages. Software built from upstream sources retains its original license.
- GitHub Repository
- OBS Project
- OBS Mirror
- Homepage (GitHub Pages)
- OCI Index
- ARCHITECTURE.md — how the pipeline works end-to-end
- docs/OBS-MAINTENANCE.md — OBS packaging guide
- docs/FLATPAK-MAINTENANCE.md — Flatpak packaging guide
.rpm and .deb packages are published to
download.opensuse.org
by the Open Build Service and can be added to your system's package manager.
Select the repository that matches your distribution, then install the desired
package by name.
RPM-based distributions (openSUSE, Rocky Linux, AlmaLinux):
REPO_URL="https://download.opensuse.org/repositories/home:/Kardbord:/Boxes/[REPOSITORY]/home:Kardbord:Boxes.repo"
# openSUSE (zypper)
sudo zypper addrepo --refresh "$REPO_URL"
# Rocky Linux / AlmaLinux (dnf)
sudo dnf config-manager --add-repo "$REPO_URL"
# refresh and install a package
sudo zypper refresh # or: sudo dnf makecache
sudo zypper install [PACKAGE] # or: sudo dnf install [PACKAGE]Debian-based distributions (Ubuntu, Debian, Raspbian):
REPO_URL="https://download.opensuse.org/repositories/home:/Kardbord:/Boxes/[REPOSITORY]"
# import the repository signing key
curl -fsSL "$REPO_URL/Release.key" | gpg --dearmor \
| sudo tee /usr/share/keyrings/home_Kardbord_Boxes.gpg > /dev/null
# add the OBS repository for your distribution
echo "deb [signed-by=/usr/share/keyrings/home_Kardbord_Boxes.gpg] $REPO_URL/ ./" \
| sudo tee /etc/apt/sources.list.d/home:Kardbord:Boxes.list
# refresh and install a package
sudo apt update
sudo apt install [PACKAGE]Replace [REPOSITORY] with your distribution's repository name
(e.g. openSUSE_Tumbleweed, RockyLinux_9, AlmaLinux_8, Debian_13,
Ubuntu_26.04, Raspbian_13) and [PACKAGE] with a package name.
Flatpak apps and extensions are hosted as OCI images on GHCR, with the index
and landing page served from kardbord.github.io/Boxes.
Extensions (io.github.kardbord.tool.*) mount automatically into any app built
on the io.github.kardbord.Platform runtime.
Quick start:
# Add the remote
flatpak remote-add --if-not-exists --user kardbord-boxes \
oci+https://kardbord.github.io/Boxes
# Install an app (the io.github.kardbord.Platform runtime is pulled automatically)
flatpak install kardbord-boxes io.github.kardbord.neovim
# Run with the host access you need
flatpak run --filesystem="${PWD}" io.github.kardbord.neovimAdd or remove --filesystem= flags as needed for each app. For language
toolchains (Go, Rust, Java, etc.), install SDK extensions directly from Flathub.
See docs/FLATPAK-MAINTENANCE.md for the developer and maintainer guide.
OBS Builds
This repository is the source of truth for the packaging of the projects above.
- Source — Each package directory contains a
_servicefile describing where the upstream sources come from, plus the packaging files (RPM.spec, Debiandebian.*, etc.) needed to build it. - Mirror — The repository is mirrored to
src.opensuse.org. The Open Build
Service's
scmsyncintegration requires a gitea git host, so it cannot consume GitHub directly. - Build — The OBS project
home:Kardbord:Boxeswatches the mirror and builds every package for the distribution/architecture matrix in the README. New commits trigger rebuilds automatically. - Publish — Completed binaries are published to download.opensuse.org, from which they can be installed by the commands above.
Tracked OBS packages stay up to date through the FEDC check workflow, which
scans the _manifest-listed packages for upstream releases, updates their
sources, and opens a single pull request. On merge the push to main is what
scmsync/obs_scm pick up to re-fetch upstream and queue a rebuild. See
docs/OBS-MAINTENANCE.md for the maintenance
runbook.
Flatpak Builds (AetherPak)
Flatpak packages are built and published using AetherPak, which stores application layers as OCI images in GitHub Container Registry (GHCR) and serves a small JSON index from GitHub Pages.
- Build — The custom SDK (
io.github.kardbord.Sdk) is built first, producing theio.github.kardbord.Platformandio.github.kardbord.Sdkruntimes. All other packages (apps and extensions) are built in parallel after the SDK is available. - Publish — Each package is pushed to GHCR as a signed OCI image. The index
(
index/static) is merged and reconciled against the registry, then deployed to GitHub Pages along with a landing page and.flatpakreffiles. - Prune — A scheduled workflow removes stale OCI images from GHCR that are no longer referenced in the active index.
New packages are auto-discovered from the flatpak/manifests/ directory at CI
time. Adding or removing a package only requires creating or deleting its
manifest directory. See
docs/FLATPAK-MAINTENANCE.md for the guide.
Distribution / Architecture matrix
Packages are built for the following distribution and architecture combinations:
| Distribution | Architectures |
|---|---|
| openSUSE Tumbleweed | x86_64, aarch64 |
| Rocky Linux 8 / 9 / 10 | x86_64, aarch64 |
| AlmaLinux 8 / 9 / 10 | x86_64, aarch64 |
| Ubuntu 26.04 | x86_64, aarch64 |
| Debian 13 | x86_64, aarch64 |
| Raspbian 13 | armv7l |
| Flatpak | x86_64, aarch64 |
Packages in this repository
The authoritative inventory is discoverable in the repository (kardbord-breakout/
for OBS, flatpak/manifests/ for Flatpak), via the OBS project, or via the
package repositories. Commonly installed packages:
| Package | Description | Build Status |
|---|---|---|
| kardbord-breakout | A terminal-based clone of the classic brick-breaking arcade game. | |
| io.github.kardbord.Sdk | Custom Flatpak runtime and SDK for all io.github.kardbord.* apps. Provides the io.github.kardbord.tool extension point. |
|
| io.github.kardbord.neovim | Custom Neovim Flatpak with independently-updatable tool extensions. | |
| io.github.kardbord.ripgrep | Standalone ripgrep Flatpak with tool extension. | |
| io.github.kardbord.tool.ripgrep | ripgrep extension for the Neovim Flatpak (Telescope live_grep). |
|
| io.github.kardbord.tool.fd | fd extension for the Neovim Flatpak (Telescope find_files). |
The packaging configuration in this repository is provided under the MIT License; see LICENSE. Software built from upstream sources retains its original license.