Use pacman for all dependencies, install scenefx from AUR

Co-authored-by: squassina <8495707+squassina@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-02-18 13:16:18 +00:00
parent 6a209101a0
commit 9f4b2a6314
2 changed files with 24 additions and 40 deletions

View file

@ -24,32 +24,27 @@ This directory contains the GitHub Actions workflows for the MangoWC project.
**What it does**: **What it does**:
1. Runs in Arch Linux container (archlinux:latest) 1. Runs in Arch Linux container (archlinux:latest)
2. Updates system and installs dependencies via pacman 2. Updates system and installs all dependencies via pacman
3. Builds wlroots 0.19.0 from source 3. Installs wlroots from official Arch repositories
4. Builds scenefx 0.4.1 from source 4. Installs scenefx from AUR (Arch User Repository)
5. Uses `meson subprojects download` to fetch any required subproject 5. Configures the project with meson
dependencies 6. Builds the project with ninja
6. Configures the project with meson 7. Verifies the executables were created
7. Builds the project with ninja
8. Verifies the executables were created
**Build Strategy**: **Build Strategy**:
- Uses Arch Linux for up-to-date system packages (wayland, libinput, etc.) - Uses Arch Linux for up-to-date system packages
- Only builds wlroots and scenefx from source (not available in pacman) - All dependencies installed via pacman or AUR (no source builds)
- Uses `meson subprojects download` before each meson setup to fetch required - wlroots installed from official Arch repositories
subprojects - scenefx installed from AUR
- Allows meson wrap mode for automatic subproject handling
(no --wrap-mode=nodownload)
**Dependencies**: **Dependencies**:
- Arch Linux container (archlinux:latest) - Arch Linux container (archlinux:latest)
- Meson build system - Meson build system
- Ninja build tool - Ninja build tool
- System packages from pacman (wayland, libinput, mesa, etc.) - All system packages from pacman (wayland, libinput, wlroots, mesa, etc.)
- wlroots 0.19.0 (built from source) - scenefx from AUR
- scenefx 0.4.1 (built from source)
### docs.yml ### docs.yml

View file

@ -44,7 +44,7 @@ jobs:
# Update package database # Update package database
pacman -Syu --noconfirm pacman -Syu --noconfirm
# Install build tools and dependencies # Install build tools and all dependencies
pacman -S --noconfirm \ pacman -S --noconfirm \
base-devel \ base-devel \
git \ git \
@ -65,32 +65,21 @@ jobs:
libdisplay-info \ libdisplay-info \
seatd \ seatd \
mesa \ mesa \
wlroots \
pkg-config pkg-config
- name: Install wlroots 0.19.0 - name: Install scenefx from AUR
run: | run: |
# Build wlroots 0.19.0 from source # Install scenefx from AUR since it's not in official repos
git clone https://gitlab.freedesktop.org/wlroots/wlroots.git # Create a non-root user for makepkg (AUR requires non-root)
cd wlroots useradd -m -G wheel builder
git checkout 0.19.0 echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
# 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 # Clone and build scenefx from AUR as builder user
run: | cd /home/builder
# Build scenefx from source su - builder -c "git clone https://aur.archlinux.org/scenefx.git"
git clone -b 0.4.1 https://github.com/wlrfx/scenefx.git
cd scenefx cd scenefx
# Download meson subprojects if needed su - builder -c "cd /home/builder/scenefx && makepkg -si --noconfirm"
meson subprojects download || true
meson setup build/ --prefix=/usr
ninja -C build/ install
ldconfig
cd ..
- name: Configure meson - name: Configure meson
run: | run: |