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:
parent
9f9a5db5cc
commit
159d14774e
3 changed files with 129 additions and 2 deletions
35
.forgejo/workflows/calamares.yml
Normal file
35
.forgejo/workflows/calamares.yml
Normal 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"
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
92
packaging/calamares/PKGBUILD
Normal file
92
packaging/calamares/PKGBUILD
Normal 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
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue