From 9f4b2a63144e996942bf3e5c8edb01c818334020 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Feb 2026 13:16:18 +0000 Subject: [PATCH] Use pacman for all dependencies, install scenefx from AUR Co-authored-by: squassina <8495707+squassina@users.noreply.github.com> --- .github/workflows/README.md | 29 ++++++++++++----------------- .github/workflows/build.yml | 35 ++++++++++++----------------------- 2 files changed, 24 insertions(+), 40 deletions(-) diff --git a/.github/workflows/README.md b/.github/workflows/README.md index 7a9e319e..f5ff96a5 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -24,32 +24,27 @@ This directory contains the GitHub Actions workflows for the MangoWC project. **What it does**: 1. Runs in Arch Linux container (archlinux:latest) -2. Updates system and installs dependencies via pacman -3. Builds wlroots 0.19.0 from source -4. Builds scenefx 0.4.1 from source -5. Uses `meson subprojects download` to fetch any required subproject - dependencies -6. Configures the project with meson -7. Builds the project with ninja -8. Verifies the executables were created +2. Updates system and installs all dependencies via pacman +3. Installs wlroots from official Arch repositories +4. Installs scenefx from AUR (Arch User Repository) +5. Configures the project with meson +6. Builds the project with ninja +7. Verifies the executables were created **Build Strategy**: -- Uses Arch Linux for up-to-date system packages (wayland, libinput, etc.) -- Only builds wlroots and scenefx from source (not available in pacman) -- Uses `meson subprojects download` before each meson setup to fetch required - subprojects -- Allows meson wrap mode for automatic subproject handling - (no --wrap-mode=nodownload) +- Uses Arch Linux for up-to-date system packages +- All dependencies installed via pacman or AUR (no source builds) +- wlroots installed from official Arch repositories +- scenefx installed from AUR **Dependencies**: - Arch Linux container (archlinux:latest) - Meson build system - Ninja build tool -- System packages from pacman (wayland, libinput, mesa, etc.) -- wlroots 0.19.0 (built from source) -- scenefx 0.4.1 (built from source) +- All system packages from pacman (wayland, libinput, wlroots, mesa, etc.) +- scenefx from AUR ### docs.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 92efc241..22b19afd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: # Update package database pacman -Syu --noconfirm - # Install build tools and dependencies + # Install build tools and all dependencies pacman -S --noconfirm \ base-devel \ git \ @@ -65,32 +65,21 @@ jobs: libdisplay-info \ seatd \ mesa \ + wlroots \ pkg-config - - name: Install wlroots 0.19.0 + - name: Install scenefx from AUR run: | - # Build wlroots 0.19.0 from source - git clone https://gitlab.freedesktop.org/wlroots/wlroots.git - cd wlroots - git checkout 0.19.0 - # Download meson subprojects if needed - meson subprojects download || true - meson setup build/ --prefix=/usr - ninja -C build/ install - ldconfig - cd .. - - - name: Install scenefx 0.4.1 - run: | - # Build scenefx from source - git clone -b 0.4.1 https://github.com/wlrfx/scenefx.git + # Install scenefx from AUR since it's not in official repos + # Create a non-root user for makepkg (AUR requires non-root) + useradd -m -G wheel builder + echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers + + # Clone and build scenefx from AUR as builder user + cd /home/builder + su - builder -c "git clone https://aur.archlinux.org/scenefx.git" cd scenefx - # Download meson subprojects if needed - meson subprojects download || true - meson setup build/ --prefix=/usr - ninja -C build/ install - ldconfig - cd .. + su - builder -c "cd /home/builder/scenefx && makepkg -si --noconfirm" - name: Configure meson run: |