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:
Samuel Onoja authored and GitHub committed 2026-10-11 14:16:00 +01:00
1 parent 587602b493
commit 1b9fabbbe4
25 files changed
+1019 -170

No files matched your search

+10 -6
View File
@@ -317,14 +317,18 @@ fn appearance_scroll_preserves_progress_and_settles_visibility() {
#[test]
fn gpu_panel_text_survives_preview_clipping_and_scrolling() {
// Native startup preloads text fonts; headless renderers skip that step.
// Supply a bundled proportional font even on minimal CI images.
let matched = std::process::Command::new("fc-match")
.args(["--format=%{family}\n%{file}", "sans-serif"])
.output()
.expect("rendering tests require fontconfig");
assert!(matched.status.success());
let matched = String::from_utf8(matched.stdout).unwrap();
let (family, path) = matched.split_once('\n').expect("rendering tests require a system font");
let font = ferese_theme::font(Some(family.split(',').next().unwrap()));
cosmic::iced::advanced::graphics::text::font_system()
.write()
.unwrap()
.load_font(std::borrow::Cow::Borrowed(include_bytes!(
"../../../assets/fonts/Comfortaa-Regular.otf"
)));
.load_font(std::borrow::Cow::Owned(std::fs::read(path).unwrap()));
#[derive(Default)]
struct Labels {
@@ -416,7 +420,7 @@ fn gpu_panel_text_survives_preview_clipping_and_scrolling() {
),
)
.0;
app.font = Font::with_name("Comfortaa");
app.font = font;
app.panel_page = if selection == "panels" {
panel_controls::PanelPage::Panels
} else {