Add in-house Calamares package (AUR-only upstream)

Calamares isn't in Arch's official repos, so BOS vendors the PKGBUILD and
publishes a built package to the [breadway] repo. All its deps are official
(kpmcore, qt6-*, yaml-cpp). Also drop the nonexistent calamares-qt6 from the
package list (calamares 3.4.x is already Qt6).
This commit is contained in:
Breadway 2026-06-13 23:39:39 +08:00
parent 9f9a5db5cc
commit 159d14774e
3 changed files with 129 additions and 2 deletions

View file

@ -0,0 +1,35 @@
name: Build and publish calamares
# Calamares is AUR-only (not in Arch's official repos), so BOS maintains an
# in-house PKGBUILD and publishes the built package to the [breadway] repo.
on:
push:
paths:
- 'packaging/calamares/**'
workflow_dispatch:
jobs:
calamares:
runs-on: [self-hosted, hestia]
container:
image: archlinux:latest
steps:
- name: Build and publish
env:
PUBLISH_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
run: |
set -euo pipefail
pacman -Syu --noconfirm base-devel git cmake ninja \
extra-cmake-modules qt6-tools qt6-translations libglvnd \
kcoreaddons kpmcore libpwquality qt6-declarative qt6-svg yaml-cpp
useradd -m builder
git config --global --add safe.directory '*'
git clone --depth 1 "https://git.breadway.dev/${GITHUB_REPOSITORY}.git" /home/builder/src
chown -R builder:builder /home/builder/src
su builder -c "cd /home/builder/src/packaging/calamares && makepkg -f --noconfirm --nocheck"
PKG=$(find /home/builder/src/packaging/calamares -name '*.pkg.tar.zst' | head -1)
curl -fsS -X PUT \
-H "Authorization: token ${PUBLISH_TOKEN}" \
-H "Content-Type: application/octet-stream" \
--data-binary "@${PKG}" \
"https://git.breadway.dev/api/packages/Breadway/arch/os"

View file

@ -67,9 +67,9 @@ foot
# File manager # File manager
nautilus nautilus
# Installer — from the official extra repo # Installer — Calamares is AUR-only; built in-house and served from [breadway]
# (calamares 3.4.x is already Qt6; there is no separate calamares-qt6 package)
calamares calamares
calamares-qt6
# Bread ecosystem — sourced from [breadway] repo # Bread ecosystem — sourced from [breadway] repo
bakery bakery

View file

@ -0,0 +1,92 @@
# Maintainer: Breadway <rileyhorsham@gmail.com>
# In-house copy of the AUR calamares PKGBUILD (Calamares is AUR-only; not in
# Arch's official repos). Built by CI and published to the [breadway] repo.
# Source of truth: https://aur.archlinux.org/packages/calamares
# Contributor: Rustmilian Rustmilian@proton.me
_pkgname="calamares"
pkgname="$_pkgname"
pkgver=3.4.2
pkgrel=2
pkgdesc="Distribution-independent installer framework"
url="https://codeberg.org/Calamares/calamares"
license=("GPL-3.0-or-later")
arch=('i686' 'x86_64')
options=(!debug)
depends=(
'kcoreaddons'
'kpmcore'
'libpwquality'
'qt6-declarative'
'qt6-svg'
'yaml-cpp'
)
makedepends=(
'extra-cmake-modules'
'libglvnd'
'ninja'
'qt6-tools'
'qt6-translations'
)
_pkgext="tar.gz"
source=("$_pkgname-$pkgver.$_pkgext"::"$url/releases/download/v$pkgver/$_pkgname-$pkgver.$_pkgext")
sha256sums=('733bbbb00dc9f84874bd5c22960952f317ea2537565431179fa2152b2fbfdccc')
build() {
local _skip_modules=(
dracut
dracutlukscfg
dummycpp
dummyprocess
dummypython
dummypythonqt
initramfs
initramfscfg
interactiveterminal
packagechooser
packagechooserq
services-openrc
)
# Correct source directory (inside src/)
local _pkgsrc_dir="$srcdir/$_pkgname-$pkgver"
local _cmake_options=(
-B build
-S "$_pkgsrc_dir"
-G Ninja
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX='/usr'
-DCMAKE_INSTALL_LIBDIR='lib'
-DWITH_QT6=ON
-DINSTALL_CONFIG=ON
-DSKIP_MODULES="${_skip_modules[*]}"
-DBUILD_TESTING=OFF
# Explicit KDE install dirs to suppress warnings
-DKDE_INSTALL_BINDIR=/usr/bin
-DKDE_INSTALL_SBINDIR=/usr/sbin
-DKDE_INSTALL_LIBDIR=/usr/lib
-DKDE_INSTALL_LIBEXECDIR=/usr/libexec
-DKDE_INSTALL_INCLUDEDIR=/usr/include
-DKDE_INSTALL_LOCALSTATEDIR=/var
-DKDE_INSTALL_SHAREDSTATEDIR=/usr/share
-DKDE_INSTALL_DATAROOTDIR=/usr/share
-DKDE_INSTALL_DATADIR=/usr/share
-DKDE_INSTALL_LOCALEDIR=/usr/share/locale
-DKDE_INSTALL_MANDIR=/usr/share/man
-DKDE_INSTALL_INFODIR=/usr/share/info
-DKDE_INSTALL_SYSCONFDIR=/etc
-Wno-dev
)
cmake "${_cmake_options[@]}"
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
}