Add Fedora and Arch package recipes (#24)
* Package Ferese for Fedora and Arch releases * Build release packages alongside workspace checks * Include dependency licenses and software GPU test drivers * Limit package checks to release PRs and fix Arch Cargo dependency * Prepare Ferese 0.1.0-beta * Release config locks before closing inherited file descriptions * Install the lock PAM policy for native release checks * Include xauth in distribution package test dependencies * Regenerate Arch Git package metadata * Run package checks with an explicit UTC timezone * Remove unused bundled fonts and accept installed license receipts * Format the system font test helper * Load an installed font for headless text rendering checks * Isolate package test runtimes and reap container child processes
This commit is contained in:
1 parent
587602b493
commit
1b9fabbbe4
25 files changed
+1019
-170
No files matched your search
@@ -0,0 +1,49 @@
|
||||
pkgname=ferese
|
||||
pkgver=@VERSION@
|
||||
pkgrel=1
|
||||
pkgdesc='Scrolling Wayland desktop with its shell, Settings and desktop portal'
|
||||
arch=('x86_64')
|
||||
url='https://github.com/ferese-wm/ferese'
|
||||
license=('MIT' 'Apache-2.0' 'BSD-2-Clause' 'BSD-3-Clause' 'BSL-1.0' 'CC0-1.0' 'CDLA-Permissive-2.0' 'ISC' 'MPL-2.0' 'Unicode-3.0' 'Unlicense' 'Zlib' 'OFL-1.1' 'Apache-2.0 WITH LLVM-exception')
|
||||
depends=('wayland' 'libxkbcommon' 'libinput' 'systemd-libs' 'seatd' 'mesa' 'libdrm'
|
||||
'fontconfig' 'freetype2' 'expat' 'dbus' 'python' 'bash' 'util-linux' 'systemd' 'pam' 'polkit' 'foot' 'pipewire'
|
||||
'wireplumber' 'libpipewire' 'gstreamer' 'xdg-desktop-portal' 'xdg-desktop-portal-gtk')
|
||||
makedepends=('cargo' 'cmake' 'clang' 'pkgconf' 'python' 'desktop-file-utils')
|
||||
checkdepends=('dbus' 'vulkan-swrast' 'xorg-xauth')
|
||||
optdepends=('brightnessctl: brightness controls' 'slurp: screenshot region selection'
|
||||
'satty: screenshot editing' 'wl-clipboard: screenshot clipboard'
|
||||
'gst-plugins-base: recording codecs' 'gst-plugins-good: recording codecs'
|
||||
'gst-plugin-pipewire: PipeWire recording'
|
||||
'xorg-xwayland: X11 applications' 'xwayland-satellite: X11 application integration (requires readiness support)')
|
||||
# GCC LTO objects from the SPA C wrappers cannot be linked by Rust's lld.
|
||||
options=('!lto')
|
||||
backup=('etc/pam.d/ferese-lock')
|
||||
conflicts=('ferese-git')
|
||||
_source_version=@UPSTREAM_VERSION@
|
||||
source=("$url/releases/download/v$_source_version/ferese-$_source_version.tar.gz")
|
||||
sha256sums=('@SHA256@')
|
||||
|
||||
build() {
|
||||
cd "$srcdir/ferese-$_source_version"
|
||||
export CARGO_HOME="$PWD/cargo-home"
|
||||
export CARGO_PROFILE_RELEASE_DEBUG=0
|
||||
cargo build --release --frozen --offline --workspace
|
||||
}
|
||||
|
||||
check() {
|
||||
cd "$srcdir/ferese-$_source_version"
|
||||
export CARGO_HOME="$PWD/cargo-home"
|
||||
export CARGO_PROFILE_RELEASE_DEBUG=0
|
||||
export TZ=UTC
|
||||
export XDG_RUNTIME_DIR="$(mktemp -d)"
|
||||
trap 'rm -r -- "$XDG_RUNTIME_DIR"' EXIT
|
||||
python -m unittest discover -s scripts/tests -p test_package.py
|
||||
dbus-run-session -- cargo test --release --frozen --offline --workspace
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "$srcdir/ferese-$_source_version"
|
||||
python scripts/package.py stage --destdir "$pkgdir" --pam arch
|
||||
desktop-file-validate "$pkgdir/usr/share/wayland-sessions/ferese.desktop"
|
||||
desktop-file-validate "$pkgdir/usr/share/applications/dev.ferese.Settings.desktop"
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
pkgbase = ferese-git
|
||||
pkgdesc = Scrolling Wayland desktop with its shell, Settings and desktop portal (Git)
|
||||
pkgver = 0.1.0beta.r0.g0000000
|
||||
pkgrel = 1
|
||||
url = https://github.com/ferese-wm/ferese
|
||||
arch = x86_64
|
||||
license = MIT
|
||||
license = Apache-2.0
|
||||
license = BSD-2-Clause
|
||||
license = BSD-3-Clause
|
||||
license = BSL-1.0
|
||||
license = CC0-1.0
|
||||
license = CDLA-Permissive-2.0
|
||||
license = ISC
|
||||
license = MPL-2.0
|
||||
license = Unicode-3.0
|
||||
license = Unlicense
|
||||
license = Zlib
|
||||
license = OFL-1.1
|
||||
license = Apache-2.0 WITH LLVM-exception
|
||||
checkdepends = dbus
|
||||
checkdepends = vulkan-swrast
|
||||
checkdepends = xorg-xauth
|
||||
makedepends = cargo
|
||||
makedepends = cmake
|
||||
makedepends = clang
|
||||
makedepends = pkgconf
|
||||
makedepends = python
|
||||
makedepends = git
|
||||
makedepends = desktop-file-utils
|
||||
depends = wayland
|
||||
depends = libxkbcommon
|
||||
depends = libinput
|
||||
depends = systemd-libs
|
||||
depends = seatd
|
||||
depends = mesa
|
||||
depends = libdrm
|
||||
depends = fontconfig
|
||||
depends = freetype2
|
||||
depends = expat
|
||||
depends = dbus
|
||||
depends = python
|
||||
depends = bash
|
||||
depends = util-linux
|
||||
depends = systemd
|
||||
depends = pam
|
||||
depends = polkit
|
||||
depends = foot
|
||||
depends = pipewire
|
||||
depends = wireplumber
|
||||
depends = libpipewire
|
||||
depends = gstreamer
|
||||
depends = xdg-desktop-portal
|
||||
depends = xdg-desktop-portal-gtk
|
||||
optdepends = brightnessctl: brightness controls
|
||||
optdepends = slurp: screenshot region selection
|
||||
optdepends = satty: screenshot editing
|
||||
optdepends = wl-clipboard: screenshot clipboard
|
||||
optdepends = gst-plugins-base: recording codecs
|
||||
optdepends = gst-plugins-good: recording codecs
|
||||
optdepends = gst-plugin-pipewire: PipeWire recording
|
||||
optdepends = xorg-xwayland: X11 applications
|
||||
optdepends = xwayland-satellite: X11 application integration (requires readiness support)
|
||||
provides = ferese
|
||||
conflicts = ferese
|
||||
options = !lto
|
||||
backup = etc/pam.d/ferese-lock
|
||||
source = ferese::git+https://github.com/ferese-wm/ferese.git#branch=main
|
||||
sha256sums = SKIP
|
||||
|
||||
pkgname = ferese-git
|
||||
@@ -0,0 +1,63 @@
|
||||
pkgname=ferese-git
|
||||
pkgver=0.1.0beta.r0.g0000000
|
||||
pkgrel=1
|
||||
pkgdesc='Scrolling Wayland desktop with its shell, Settings and desktop portal (Git)'
|
||||
arch=('x86_64')
|
||||
url='https://github.com/ferese-wm/ferese'
|
||||
license=('MIT' 'Apache-2.0' 'BSD-2-Clause' 'BSD-3-Clause' 'BSL-1.0' 'CC0-1.0' 'CDLA-Permissive-2.0' 'ISC' 'MPL-2.0' 'Unicode-3.0' 'Unlicense' 'Zlib' 'OFL-1.1' 'Apache-2.0 WITH LLVM-exception')
|
||||
depends=('wayland' 'libxkbcommon' 'libinput' 'systemd-libs' 'seatd' 'mesa' 'libdrm'
|
||||
'fontconfig' 'freetype2' 'expat' 'dbus' 'python' 'bash' 'util-linux' 'systemd' 'pam' 'polkit' 'foot' 'pipewire'
|
||||
'wireplumber' 'libpipewire' 'gstreamer' 'xdg-desktop-portal' 'xdg-desktop-portal-gtk')
|
||||
makedepends=('cargo' 'cmake' 'clang' 'pkgconf' 'python' 'git' 'desktop-file-utils')
|
||||
checkdepends=('dbus' 'vulkan-swrast' 'xorg-xauth')
|
||||
optdepends=('brightnessctl: brightness controls' 'slurp: screenshot region selection'
|
||||
'satty: screenshot editing' 'wl-clipboard: screenshot clipboard'
|
||||
'gst-plugins-base: recording codecs' 'gst-plugins-good: recording codecs'
|
||||
'gst-plugin-pipewire: PipeWire recording'
|
||||
'xorg-xwayland: X11 applications' 'xwayland-satellite: X11 application integration (requires readiness support)')
|
||||
provides=('ferese')
|
||||
conflicts=('ferese')
|
||||
# GCC LTO objects from the SPA C wrappers cannot be linked by Rust's lld.
|
||||
options=('!lto')
|
||||
backup=('etc/pam.d/ferese-lock')
|
||||
source=('ferese::git+https://github.com/ferese-wm/ferese.git#branch=main')
|
||||
sha256sums=('SKIP')
|
||||
|
||||
pkgver() {
|
||||
cd "$srcdir/ferese"
|
||||
local version
|
||||
version=$(python -c 'import tomllib; print(tomllib.load(open("Cargo.toml", "rb"))["workspace"]["package"]["version"])')
|
||||
printf '%s.r%s.g%s' "${version//-/}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd "$srcdir/ferese"
|
||||
export CARGO_HOME="$srcdir/cargo-home"
|
||||
cargo fetch --locked
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "$srcdir/ferese"
|
||||
export CARGO_HOME="$srcdir/cargo-home"
|
||||
export CARGO_PROFILE_RELEASE_DEBUG=0
|
||||
cargo build --release --frozen --offline --workspace
|
||||
}
|
||||
|
||||
check() {
|
||||
cd "$srcdir/ferese"
|
||||
export CARGO_HOME="$srcdir/cargo-home"
|
||||
export CARGO_PROFILE_RELEASE_DEBUG=0
|
||||
export TZ=UTC
|
||||
export XDG_RUNTIME_DIR="$(mktemp -d)"
|
||||
trap 'rm -r -- "$XDG_RUNTIME_DIR"' EXIT
|
||||
python -m unittest discover -s scripts/tests -p test_package.py
|
||||
dbus-run-session -- cargo test --release --frozen --offline --workspace
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "$srcdir/ferese"
|
||||
export CARGO_HOME="$srcdir/cargo-home"
|
||||
python scripts/package.py stage --destdir "$pkgdir" --pam arch
|
||||
desktop-file-validate "$pkgdir/usr/share/wayland-sessions/ferese.desktop"
|
||||
desktop-file-validate "$pkgdir/usr/share/applications/dev.ferese.Settings.desktop"
|
||||
}
|
||||
Reference in new issue
Block a user