Skip to content

Latest commit

 

History

146 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kardbord's Boxes

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.

Links

Distro Packages

.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 Repository

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.neovim

Add 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.

How It Works

OBS Builds

This repository is the source of truth for the packaging of the projects above.

  1. Source — Each package directory contains a _service file describing where the upstream sources come from, plus the packaging files (RPM .spec, Debian debian.*, etc.) needed to build it.
  2. Mirror — The repository is mirrored to src.opensuse.org. The Open Build Service's scmsync integration requires a gitea git host, so it cannot consume GitHub directly.
  3. Build — The OBS project home:Kardbord:Boxes watches the mirror and builds every package for the distribution/architecture matrix in the README. New commits trigger rebuilds automatically.
  4. Publish — Completed binaries are published to download.opensuse.org, from which they can be installed by the commands above.

Keeping Upstream Current

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.

  1. Build — The custom SDK (io.github.kardbord.Sdk) is built first, producing the io.github.kardbord.Platform and io.github.kardbord.Sdk runtimes. All other packages (apps and extensions) are built in parallel after the SDK is available.
  2. 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 .flatpakref files.
  3. 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.

Supported Platforms

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

Available Packages

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. OBS
io.github.kardbord.Sdk Custom Flatpak runtime and SDK for all io.github.kardbord.* apps. Provides the io.github.kardbord.tool extension point. Flatpak Build
io.github.kardbord.neovim Custom Neovim Flatpak with independently-updatable tool extensions. Flatpak Build
io.github.kardbord.ripgrep Standalone ripgrep Flatpak with tool extension. Flatpak Build
io.github.kardbord.tool.ripgrep ripgrep extension for the Neovim Flatpak (Telescope live_grep). Flatpak Build
io.github.kardbord.tool.fd fd extension for the Neovim Flatpak (Telescope find_files). Flatpak Build

License

The packaging configuration in this repository is provided under the MIT License; see LICENSE. Software built from upstream sources retains its original license.

About

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.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages