Prefer apt packages over building from source when available

Co-authored-by: squassina <8495707+squassina@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-02-18 10:35:52 +00:00
parent e21ae7e013
commit f2b3b1bd73
2 changed files with 55 additions and 12 deletions

View file

@ -37,7 +37,7 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
@ -61,9 +61,25 @@ jobs:
libxml2-dev \
pkg-config
- name: Build and install wayland 1.23.1
- name: Install wayland (try apt first, build from source if needed)
run: |
# Build wayland 1.23.1 from source since Ubuntu has older version
# Try to install wayland from apt
if sudo apt-get install -y libwayland-dev 2>/dev/null; then
WAYLAND_VERSION=$(pkg-config --modversion wayland-server 2>/dev/null || echo "0.0.0")
echo "Installed wayland version: $WAYLAND_VERSION"
# Check if version meets requirement (>= 1.23.1)
if dpkg --compare-versions "$WAYLAND_VERSION" ge "1.23.1"; then
echo "✅ wayland $WAYLAND_VERSION from apt meets requirements"
exit 0
else
echo "⚠️ wayland $WAYLAND_VERSION from apt is too old, building from source..."
fi
else
echo "⚠️ wayland not available in apt, building from source..."
fi
# Build from source if apt package is unavailable or too old
git clone https://gitlab.freedesktop.org/wayland/wayland.git
cd wayland
git checkout 1.23.1
@ -71,10 +87,27 @@ jobs:
sudo ninja -C build/ install
sudo ldconfig
cd ..
echo "✅ Built wayland 1.23.1 from source"
- name: Install wlroots 0.19
- name: Install wlroots (try apt first, build from source if needed)
run: |
# Install wlroots 0.19 from source since it may not be in apt
# Try to install wlroots from apt
if sudo apt-get install -y libwlroots-dev 2>/dev/null; then
WLROOTS_VERSION=$(pkg-config --modversion wlroots 2>/dev/null || echo "0.0.0")
echo "Installed wlroots version: $WLROOTS_VERSION"
# Check if version meets requirement (>= 0.19.0)
if dpkg --compare-versions "$WLROOTS_VERSION" ge "0.19.0"; then
echo "✅ wlroots $WLROOTS_VERSION from apt meets requirements"
exit 0
else
echo "⚠️ wlroots $WLROOTS_VERSION from apt is too old, building from source..."
fi
else
echo "⚠️ wlroots not available in apt, building from source..."
fi
# Build from source if apt package is unavailable or too old
git clone https://gitlab.freedesktop.org/wlroots/wlroots.git
cd wlroots
git checkout 0.19.0
@ -82,16 +115,19 @@ jobs:
sudo ninja -C build/ install
sudo ldconfig
cd ..
echo "✅ Built wlroots 0.19.0 from source"
- name: Install scenefx 0.4.1
- name: Install scenefx (build from source - not in apt)
run: |
# Install scenefx from source
# scenefx is not available in Ubuntu apt repositories
# Build from source
git clone -b 0.4.1 https://github.com/wlrfx/scenefx.git
cd scenefx
meson setup build/ --prefix=/usr
sudo ninja -C build/ install
sudo ldconfig
cd ..
echo "✅ Built scenefx 0.4.1 from source"
- name: Configure meson
run: |