diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 44fcbd83..ad874a93 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -100,7 +100,7 @@ jobs: - name: "Install system dependencies" run: | sudo apt update -qq - sudo apt install -y clang-12 cmake freeglut3-dev libgcrypt20-dev libgtk-3-dev libpulse-dev libsecret-1-dev libsystemd-dev nasm ninja-build + sudo apt install -y clang-12 cmake freeglut3-dev libgcrypt20-dev libgtk-3-dev libpulse-dev libsecret-1-dev libsystemd-dev nasm ninja-build appstream - name: "Build AppImage" run: dist/linux/appimage.sh diff --git a/dist/linux/appimage.sh b/dist/linux/appimage.sh index 44c69f5e..3044b54d 100755 --- a/dist/linux/appimage.sh +++ b/dist/linux/appimage.sh @@ -1,12 +1,12 @@ #!/bin/bash -if [ -z "${GITHUB_WORKSPACE}" ]; then - export GITHUB_WORKSPACE="." +if [[ -z "${GITHUB_WORKSPACE}" ]]; then + export GITHUB_WORKSPACE="." fi - + curl -sSfLO "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" chmod a+x linuxdeploy*.AppImage -curl -sSfL https://github.com$(curl https://github.com/probonopd/go-appimage/releases/expanded_assets/continuous | grep "mkappimage-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2) -o mkappimage.AppImage +curl -sSfL https://github.com"$(curl https://github.com/probonopd/go-appimage/releases/expanded_assets/continuous | grep "mkappimage-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)" -o mkappimage.AppImage chmod a+x mkappimage.AppImage curl -sSfLO "https://raw.githubusercontent.com/linuxdeploy/linuxdeploy-plugin-gtk/master/linuxdeploy-plugin-gtk.sh" chmod a+x linuxdeploy-plugin-gtk.sh @@ -16,36 +16,38 @@ if [[ ! -e /usr/lib/x86_64-linux-gnu ]]; then fi mkdir -p AppDir/usr/bin -cp dist/linux/{info.cemu.Cemu.desktop,info.cemu.Cemu.png} AppDir/ - -mkdir -p AppDir/usr/share/applications -mkdir -p AppDir/usr/share/icons/hicolor/scalable/apps +mkdir -p AppDir/usr/share/Cemu +mkdir -p AppDir/usr/share/applications +mkdir -p AppDir/usr/share/icons/hicolor/128x128/apps +mkdir -p AppDir/usr/share/metainfo mkdir -p AppDir/usr/lib -cp -r bin AppDir/usr/share/Cemu -cp /usr/lib/x86_64-linux-gnu/{libsepol.so.1,libffi.so.7,libpcre.so.3,libGLU.so.1,libthai.so.0} AppDir/usr/lib +cp dist/linux/info.cemu.Cemu.{desktop,png} AppDir/ +cp dist/linux/info.cemu.Cemu.metainfo.xml AppDir/usr/share/metainfo/info.cemu.Cemu.appdata.xml + +cp -r bin/* AppDir/usr/share/Cemu mv AppDir/usr/share/Cemu/Cemu AppDir/usr/bin/ chmod +x AppDir/usr/bin/Cemu +cp /usr/lib/x86_64-linux-gnu/{libsepol.so.1,libffi.so.7,libpcre.so.3,libGLU.so.1,libthai.so.0} AppDir/usr/lib + export UPD_INFO="gh-releases-zsync|cemu-project|Cemu|ci|Cemu.AppImage.zsync" -./linuxdeploy-x86_64.AppImage --appimage-extract-and-run\ - --appdir="$GITHUB_WORKSPACE"/AppDir/ \ - -d "$GITHUB_WORKSPACE"/AppDir/info.cemu.Cemu.desktop \ - -i "$GITHUB_WORKSPACE"/AppDir/info.cemu.Cemu.png \ - -e "$GITHUB_WORKSPACE"/AppDir/usr/bin/Cemu \ +./linuxdeploy-x86_64.AppImage --appimage-extract-and-run \ + --appdir="${GITHUB_WORKSPACE}"/AppDir/ \ + -d "${GITHUB_WORKSPACE}"/AppDir/info.cemu.Cemu.desktop \ + -i "${GITHUB_WORKSPACE}"/AppDir/info.cemu.Cemu.png \ + -e "${GITHUB_WORKSPACE}"/AppDir/usr/bin/Cemu \ --plugin gtk -GITVERSION=$(git rev-parse --short HEAD) -echo $GITVERSION -if [[ -z ${GITVERSION} ]]; then +if ! GITVERSION="$(git rev-parse --short HEAD 2>/dev/null)"; then GITVERSION=experimental fi - echo "Cemu Version Cemu-${GITVERSION}" + rm AppDir/usr/lib/libwayland-client.so.0 echo "export LC_ALL=C" >> AppDir/apprun-hooks/linuxdeploy-plugin-gtk.sh -VERSION=${GITVERSION} ./mkappimage.AppImage --appimage-extract-and-run "$GITHUB_WORKSPACE"/AppDir +VERSION="${GITVERSION}" ./mkappimage.AppImage --appimage-extract-and-run "${GITHUB_WORKSPACE}"/AppDir -mkdir -p "$GITHUB_WORKSPACE"/artifacts/ -mv Cemu-${GITVERSION}-x86_64.AppImage "$GITHUB_WORKSPACE"/artifacts/ +mkdir -p "${GITHUB_WORKSPACE}"/artifacts/ +mv Cemu-"${GITVERSION}"-x86_64.AppImage "${GITHUB_WORKSPACE}"/artifacts/