Bundle WayVR Dashboard into wlx, find wayvr-dashboard executable in AppImage (if exists) (#208) (#210)

Co-authored-by: Aleksander <aleksander@oo8.dev>
This commit is contained in:
galister
2025-05-10 10:03:40 +02:00
committed by GitHub
parent a221734e23
commit eef80eae3a
13 changed files with 147 additions and 36 deletions

View File

@@ -21,30 +21,13 @@ jobs:
uses: mozilla-actions/sccache-action@v0.0.9
- name: Prepare Environment
run: |
sudo add-apt-repository -syn universe
sudo add-apt-repository -syn ppa:pipewire-debian/pipewire-upstream || sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 25088A0359807596
sudo apt-get update
sudo apt-get install -y fuse cmake pkg-config fontconfig libasound2-dev libxkbcommon-dev libxkbcommon-x11-0 libxkbcommon-x11-dev libopenxr-dev libfontconfig-dev libdbus-1-dev libpipewire-0.3-0 libpipewire-0.3-dev libspa-0.2-dev libx11-6 libxext6 libxrandr2 libx11-dev libxext-dev libxrandr-dev libopenvr-dev libopenvr-api1 libwayland-dev libegl-dev
rustup update
test -f linuxdeploy-x86_64.AppImage || wget -q "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
chmod +x linuxdeploy-x86_64.AppImage
test -d ${APPDIR} && rm -rf ${APPDIR}
mkdir -p ${APPDIR}/usr/bin
.github/workflows/scripts/appimage_prepare_env.sh
- name: Cargo Build
run: |
cargo build --release
mv target/release/wlx-overlay-s ${APPDIR}/usr/bin
chmod +x ${APPDIR}/usr/bin/wlx-overlay-s
.github/workflows/scripts/appimage_build_wlx.sh
- name: Package AppImage
run: |
export VERSION=$GITHUB_REF_NAME
./linuxdeploy-x86_64.AppImage -dwlx-overlay-s.desktop -iwlx-overlay-s.png --appdir=${APPDIR} --output appimage --exclude-library '*libpipewire*'
mv WlxOverlay-S-$VERSION-x86_64.AppImage WlxOverlay-S-x86_64.AppImage
.github/workflows/scripts/appimage_package.sh
- name: Upload AppImage
uses: actions/upload-artifact@v4
with:

View File

@@ -0,0 +1,38 @@
name: Build AppImage (with WayVR Dashboard)
on:
push:
branches:
- 'main'
- 'staging'
env:
APPDIR: WlxOverlay-S-Full.AppDir
CARGO_TERM_COLOR: always
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
jobs:
build_appimage:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.9
- name: Prepare Environment
run: |
.github/workflows/scripts/appimage_prepare_env.sh
- name: Cargo Build
run: |
.github/workflows/scripts/appimage_build_wlx.sh
- name: Build WayVR Dashboard
run: |
.github/workflows/scripts/appimage_build_wayvr_dashboard.sh
- name: Package AppImage
run: |
.github/workflows/scripts/appimage_package_full.sh
- name: Upload AppImage
uses: actions/upload-artifact@v4
with:
name: WlxOverlay-S-Full-${{ github.ref_name }}-x86_64.AppImage
path: ./WlxOverlay-S-Full-x86_64.AppImage

View File

@@ -0,0 +1,34 @@
#!/bin/sh
git clone --depth=1 https://github.com/olekolek1000/wayvr-dashboard.git wayvr-dashboard
WLX_DIR=$(realpath $(pwd))
cd wayvr-dashboard
.github/workflows/build.sh
# See https://github.com/olekolek1000/wayvr-dashboard/blob/master/.github/workflows/appimage.sh
cd ..
cd ${APPDIR}
# Fix webkit
echo "Copying webkit runtime executables"
# Copy runtime executables
find -L /usr/lib /usr/libexec -name WebKitNetworkProcess -exec mkdir -p . ';' -exec cp -v --parents '{}' . ';' || true
find -L /usr/lib /usr/libexec -name WebKitWebProcess -exec mkdir -p . ';' -exec cp -v --parents '{}' . ';' || true
find -L /usr/lib /usr/libexec -name libwebkit2gtkinjectedbundle.so -exec mkdir -p . ';' -exec cp --parents '{}' . ';' || true
echo "Patching webkit lib"
# Patch libwebkit .so file: Replace 4 bytes containing "/usr" into "././". Required!
TARGET_WEBKIT_SO="./usr/lib/libwebkit2gtk-4.1.so.0"
cp /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 ${TARGET_WEBKIT_SO}
sed -i -e "s|/usr|././|g" "${TARGET_WEBKIT_SO}"
cd ${WLX_DIR}
DASH_PATH="${WLX_DIR}/wayvr-dashboard/temp/wayvr-dashboard"
chmod +x ${DASH_PATH}
# Put resulting executable into wlx AppDir
cp ${DASH_PATH} ${APPDIR}/usr/bin/wayvr-dashboard

View File

@@ -0,0 +1,4 @@
#!/bin/sh
cargo build --release
mv target/release/wlx-overlay-s ${APPDIR}/usr/bin
chmod +x ${APPDIR}/usr/bin/wlx-overlay-s

View File

@@ -0,0 +1,4 @@
#!/bin/sh
export VERSION=$GITHUB_REF_NAME
./linuxdeploy-x86_64.AppImage -dwlx-overlay-s.desktop -iwlx-overlay-s.png --appdir=${APPDIR} --output appimage --exclude-library '*libpipewire*'
mv WlxOverlay-S-$VERSION-x86_64.AppImage WlxOverlay-S-x86_64.AppImage

View File

@@ -0,0 +1,4 @@
#!/bin/sh
export VERSION=$GITHUB_REF_NAME
./linuxdeploy-x86_64.AppImage -dwlx-overlay-s.desktop -iwlx-overlay-s.png --appdir=${APPDIR} --output appimage --exclude-library '*libpipewire*'
mv WlxOverlay-S-$VERSION-x86_64.AppImage WlxOverlay-S-Full-x86_64.AppImage

View File

@@ -0,0 +1,13 @@
#!/bin/sh
sudo add-apt-repository -syn universe
sudo add-apt-repository -syn ppa:pipewire-debian/pipewire-upstream || sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 25088A0359807596
sudo apt-get update
sudo apt-get install -y fuse cmake pkg-config fontconfig libasound2-dev libxkbcommon-dev libxkbcommon-x11-0 libxkbcommon-x11-dev libopenxr-dev libfontconfig-dev libdbus-1-dev libpipewire-0.3-0 libpipewire-0.3-dev libspa-0.2-dev libx11-6 libxext6 libxrandr2 libx11-dev libxext-dev libxrandr-dev libopenvr-dev libopenvr-api1 libwayland-dev libegl-dev
rustup update
test -f linuxdeploy-x86_64.AppImage || wget -q "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
chmod +x linuxdeploy-x86_64.AppImage
test -d ${APPDIR} && rm -rf ${APPDIR}
mkdir -p ${APPDIR}/usr/bin