From 0704027e6c1976b7ed675f861294a13e110c15de Mon Sep 17 00:00:00 2001 From: Seth Flynn Date: Fri, 7 Nov 2025 01:01:11 -0500 Subject: [PATCH 1/3] build: install 256x256 png icons This is required by `go-appimage` - and apparently(?) a requirement by XDG, with SVGs being optional Signed-off-by: Seth Flynn --- CMakeLists.txt | 1 + program_info/CMakeLists.txt | 1 + .../org.prismlauncher.PrismLauncher_256.png | Bin 0 -> 11387 bytes 3 files changed, 2 insertions(+) create mode 100755 program_info/org.prismlauncher.PrismLauncher_256.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d8484d60..16468f5d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -406,6 +406,7 @@ elseif(UNIX) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${Launcher_Desktop} DESTINATION ${KDE_INSTALL_APPDIR}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${Launcher_MetaInfo} DESTINATION ${KDE_INSTALL_METAINFODIR}) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${Launcher_SVG} DESTINATION "${KDE_INSTALL_ICONDIR}/hicolor/scalable/apps") + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${Launcher_PNG_256} DESTINATION "${KDE_INSTALL_ICONDIR}/hicolor/256x256/apps" RENAME "${Launcher_AppID}.png") install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${Launcher_mrpack_MIMEInfo} DESTINATION ${KDE_INSTALL_MIMEDIR}) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/launcher/qtlogging.ini" DESTINATION "share/${Launcher_Name}") diff --git a/program_info/CMakeLists.txt b/program_info/CMakeLists.txt index db6920e20..23eb840b1 100644 --- a/program_info/CMakeLists.txt +++ b/program_info/CMakeLists.txt @@ -29,6 +29,7 @@ set(Launcher_SVGFileName "${Launcher_SVGFileName}" PARENT_SCOPE) set(Launcher_Desktop "program_info/${Launcher_AppID}.desktop" PARENT_SCOPE) set(Launcher_mrpack_MIMEInfo "program_info/modrinth-mrpack-mime.xml" PARENT_SCOPE) set(Launcher_MetaInfo "program_info/${Launcher_AppID}.metainfo.xml" PARENT_SCOPE) +set(Launcher_PNG_256 "program_info/${Launcher_AppID}_256.png" PARENT_SCOPE) set(Launcher_SVG "program_info/${Launcher_SVGFileName}" PARENT_SCOPE) set(Launcher_Branding_ICNS "program_info/prismlauncher.icns" PARENT_SCOPE) set(Launcher_Branding_ICO "program_info/prismlauncher.ico") diff --git a/program_info/org.prismlauncher.PrismLauncher_256.png b/program_info/org.prismlauncher.PrismLauncher_256.png new file mode 100755 index 0000000000000000000000000000000000000000..6f164febed2a6c57869e4eceb949bb1b405aac47 GIT binary patch literal 11387 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 Date: Fri, 7 Nov 2025 02:04:29 -0500 Subject: [PATCH 2/3] build: use `go-appimage` to create appimages Signed-off-by: Seth Flynn --- .github/actions/package/linux/action.yml | 40 +++++-------------- .../setup-dependencies/linux/action.yml | 35 ++++++++-------- 2 files changed, 28 insertions(+), 47 deletions(-) diff --git a/.github/actions/package/linux/action.yml b/.github/actions/package/linux/action.yml index 74e1c2a14..bc69b1155 100644 --- a/.github/actions/package/linux/action.yml +++ b/.github/actions/package/linux/action.yml @@ -60,43 +60,21 @@ runs: run: | cmake --install ${{ env.BUILD_DIR }} --config ${{ inputs.build-type }} --prefix ${{ env.INSTALL_APPIMAGE_DIR }}/usr - mv ${{ env.INSTALL_APPIMAGE_DIR }}/usr/share/metainfo/org.prismlauncher.PrismLauncher.metainfo.xml ${{ env.INSTALL_APPIMAGE_DIR }}/usr/share/metainfo/org.prismlauncher.PrismLauncher.appdata.xml - export "NO_APPSTREAM=1" # we have to skip appstream checking because appstream on ubuntu 20.04 is outdated - - export OUTPUT="PrismLauncher-Linux-$APPIMAGE_ARCH.AppImage" - - chmod +x linuxdeploy-*.AppImage - - mkdir -p ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib - mkdir -p ${{ env.INSTALL_APPIMAGE_DIR }}/usr/plugins/iconengines - - cp -r ${{ runner.workspace }}/Qt/${{ inputs.qt-version }}/gcc_*64/plugins/iconengines/* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/plugins/iconengines - - cp /usr/lib/"$DEB_HOST_MULTIARCH"/libcrypto.so.* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/ - cp /usr/lib/"$DEB_HOST_MULTIARCH"/libssl.so.* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/ - cp /usr/lib/"$DEB_HOST_MULTIARCH"/libOpenGL.so.0* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/ - - LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib" - export LD_LIBRARY_PATH - - chmod +x AppImageUpdate-"$APPIMAGE_ARCH".AppImage - cp AppImageUpdate-"$APPIMAGE_ARCH".AppImage ${{ env.INSTALL_APPIMAGE_DIR }}/usr/bin - - export UPDATE_INFORMATION="gh-releases-zsync|${{ github.repository_owner }}|${{ github.event.repository.name }}|latest|PrismLauncher-Linux-$APPIMAGE_ARCH.AppImage.zsync" + cp ${{ env.INSTALL_APPIMAGE_DIR }}/usr/share/metainfo/org.prismlauncher.PrismLauncher.{metainfo,appdata}.xml if [ '${{ inputs.gpg-private-key-id }}' != '' ]; then - export SIGN=1 - export SIGN_KEY=${{ inputs.gpg-private-key-id }} - mkdir -p ~/.gnupg/ - echo "$GPG_PRIVATE_KEY" > ~/.gnupg/private.key - gpg --import ~/.gnupg/private.key + echo "$GPG_PRIVATE_KEY" > privkey.asc + gpg --import privkey.asc + gpg --export --armor 9C7A2C9B62603299 > pubkey.asc else echo ":warning: Skipped code signing for Linux AppImage, as gpg key was not present." >> $GITHUB_STEP_SUMMARY fi - ./linuxdeploy-"$APPIMAGE_ARCH".AppImage --appdir ${{ env.INSTALL_APPIMAGE_DIR }} --output appimage --plugin qt -i ${{ env.INSTALL_APPIMAGE_DIR }}/usr/share/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg + appimagetool -s deploy "$INSTALL_APPIMAGE_DIR"/usr/share/applications/*.desktop + cp ~/bin/AppImageUpdate.AppImage "$INSTALL_APPIMAGE_DIR"/usr/bin/ + appimagetool "$INSTALL_APPIMAGE_DIR" - mv "PrismLauncher-Linux-$APPIMAGE_ARCH.AppImage" "PrismLauncher-Linux-${{ env.VERSION }}-${{ inputs.build-type }}-$APPIMAGE_ARCH.AppImage" + mv "Prism_Launcher-$VERSION-$APPIMAGE_ARCH.AppImage" "PrismLauncher-Linux-$VERSION-${{ inputs.build-type }}-$APPIMAGE_ARCH.AppImage" - name: Package portable tarball shell: bash @@ -128,4 +106,4 @@ runs: uses: actions/upload-artifact@v5 with: name: PrismLauncher-${{ runner.os }}-${{ inputs.version }}-${{ inputs.build-type }}-${{ env.APPIMAGE_ARCH }}.AppImage.zsync - path: PrismLauncher-${{ runner.os }}-${{ env.APPIMAGE_ARCH }}.AppImage.zsync + path: Prism_Launcher-${{ inputs.version }}-${{ env.APPIMAGE_ARCH }}.AppImage.zsync diff --git a/.github/actions/setup-dependencies/linux/action.yml b/.github/actions/setup-dependencies/linux/action.yml index c1cc517a3..bebc6bb93 100644 --- a/.github/actions/setup-dependencies/linux/action.yml +++ b/.github/actions/setup-dependencies/linux/action.yml @@ -12,7 +12,7 @@ runs: dpkg-dev \ ninja-build extra-cmake-modules pkg-config scdoc \ cmark gamemode-dev libarchive-dev libcmark-dev libqrencode-dev zlib1g-dev \ - appstream libxcb-cursor-dev + libxcb-cursor-dev # TODO(@getchoo): Install with the above when all targets use Ubuntu 24.04 - name: Install tomlplusplus @@ -38,20 +38,17 @@ runs: - name: Setup AppImage tooling shell: bash + env: + GH_TOKEN: ${{ github.token }} run: | - declare -A appimage_deps - - deb_arch="$(dpkg-architecture -q DEB_HOST_ARCH)" - case "$deb_arch" in + # Determinate AppImage architecture to use + dpkg_arch="$(dpkg-architecture -q DEB_HOST_ARCH_CPU)" + case "$dpkg_arch" in "amd64") - appimage_deps["https://github.com/linuxdeploy/linuxdeploy/releases/download/1-alpha-20250213-2/linuxdeploy-x86_64.AppImage"]="4648f278ab3ef31f819e67c30d50f462640e5365a77637d7e6f2ad9fd0b4522a linuxdeploy-x86_64.AppImage" - appimage_deps["https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/1-alpha-20250213-1/linuxdeploy-plugin-qt-x86_64.AppImage"]="15106be885c1c48a021198e7e1e9a48ce9d02a86dd0a1848f00bdbf3c1c92724 linuxdeploy-plugin-qt-x86_64.AppImage" - appimage_deps["https://github.com/AppImageCommunity/AppImageUpdate/releases/download/2.0.0-alpha-1-20241225/AppImageUpdate-x86_64.AppImage"]="f1747cf60058e99f1bb9099ee9787d16c10241313b7acec81810ea1b1e568c11 AppImageUpdate-x86_64.AppImage" + APPIMAGE_ARCH="x86_64" ;; "arm64") - appimage_deps["https://github.com/linuxdeploy/linuxdeploy/releases/download/1-alpha-20250213-2/linuxdeploy-aarch64.AppImage"]="06706ac8189797dccd36bd384105892cb5e6e71f784f4df526cc958adc223cd6 linuxdeploy-aarch64.AppImage" - appimage_deps["https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/1-alpha-20250213-1/linuxdeploy-plugin-qt-aarch64.AppImage"]="bf1c24aff6d749b5cf423afad6f15abd4440f81dec1aab95706b25f6667cdcf1 linuxdeploy-plugin-qt-aarch64.AppImage" - appimage_deps["https://github.com/AppImageCommunity/AppImageUpdate/releases/download/2.0.0-alpha-1-20241225/AppImageUpdate-aarch64.AppImage"]="cf27f810dfe5eda41f130769e4a4b562b9d93665371c15ebeffb84ee06a41550 AppImageUpdate-aarch64.AppImage" + APPIMAGE_ARCH="aarch64" ;; *) echo "# 🚨 The Debian architecture \"$deb_arch\" is not recognized!" >> "$GITHUB_STEP_SUMMARY" @@ -59,9 +56,15 @@ runs: ;; esac - for url in "${!appimage_deps[@]}"; do - curl -LO "$url" - sha256sum -c - <<< "${appimage_deps[$url]}" - done + gh release download continuous \ + --repo probonopd/go-appimage \ + --pattern "appimagetool-*-$APPIMAGE_ARCH.AppImage" \ + --output ~/bin/appimagetool + chmod +x ~/bin/appimagetool + echo "$HOME/bin" >> "$GITHUB_PATH" - sudo apt -y install libopengl0 + gh release download \ + --repo AppImageCommunity/AppImageUpdate \ + --pattern "AppImageUpdate-$APPIMAGE_ARCH.AppImage" \ + --output ~/bin/AppImageUpdate.AppImage + chmod +x ~/bin/AppImageUpdate.AppImage From be25d3a6a571bd290c905b21c4cc0ae3fea84a39 Mon Sep 17 00:00:00 2001 From: Seth Flynn Date: Sat, 29 Nov 2025 11:34:27 -0500 Subject: [PATCH 3/3] fix(launcher/updater): call architecture-agnostic AppImageUpdate Signed-off-by: Seth Flynn --- launcher/updater/prismupdater/PrismUpdater.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launcher/updater/prismupdater/PrismUpdater.cpp b/launcher/updater/prismupdater/PrismUpdater.cpp index 61c94046c..90c3abe6f 100644 --- a/launcher/updater/prismupdater/PrismUpdater.cpp +++ b/launcher/updater/prismupdater/PrismUpdater.cpp @@ -811,7 +811,7 @@ bool PrismUpdaterApp::callAppImageUpdate() auto appimage_path = QProcessEnvironment::systemEnvironment().value(QStringLiteral("APPIMAGE")); QProcess proc = QProcess(); qDebug() << "Calling: AppImageUpdate" << appimage_path; - proc.setProgram(FS::PathCombine(m_rootPath, "bin", "AppImageUpdate-x86_64.AppImage")); + proc.setProgram(FS::PathCombine(m_rootPath, "bin", "AppImageUpdate.AppImage")); proc.setArguments({ appimage_path }); auto result = proc.startDetached(); if (!result)