diff --git a/.builds/alpine.yml b/.builds/alpine.yml deleted file mode 100644 index d6d394e..0000000 --- a/.builds/alpine.yml +++ /dev/null @@ -1,26 +0,0 @@ - -image: alpine/latest - -sources: - - https://github.com/thestr4ng3r/chiaki.git - -packages: - - cmake - - protoc - - py3-protobuf - - opus-dev - - qt5-qtbase-dev - - qt5-qtsvg-dev - - qt5-qtmultimedia-dev - - ffmpeg-dev - - sdl2-dev - - sdl2-static # this is gone on alpine edge so might be necessary to remove later - -tasks: - - build: | - cd chiaki - mkdir build && cd build - cmake .. - make -j4 - test/chiaki-unit - diff --git a/.builds/android.yml b/.builds/android.yml index 9398064..2f6361a 100644 --- a/.builds/android.yml +++ b/.builds/android.yml @@ -4,7 +4,7 @@ packages: - docker sources: -- https://github.com/thestr4ng3r/chiaki.git +- https://github.com/thestr4ng3r/chiaki artifacts: - Chiaki.apk diff --git a/.builds/common.yml b/.builds/common.yml new file mode 100644 index 0000000..d59cf54 --- /dev/null +++ b/.builds/common.yml @@ -0,0 +1,46 @@ + +image: alpine/latest + +sources: + - https://github.com/thestr4ng3r/chiaki + +packages: + - cmake + - ninja + - protoc + - py3-protobuf + - opus-dev + - qt5-qtbase-dev + - qt5-qtsvg-dev + - qt5-qtmultimedia-dev + - ffmpeg-dev + - sdl2-dev + - sdl2-static # this is gone on alpine edge so might be necessary to remove later + - docker + - fuse + +artifacts: + - chiaki.nro + - Chiaki.AppImage + +tasks: + - start_docker: | + sudo service docker start + sudo chmod +s /usr/bin/docker # Yes, I know what I am doing + sudo service fuse start # Fuse for AppImages + - local_build_and_test: | + cd chiaki + cmake -Bbuild -GNinja + ninja -C build + build/test/chiaki-unit + - appimage: | + cd chiaki + scripts/run-docker-build-appimage.sh + cp appimage/Chiaki.AppImage ../Chiaki.AppImage + - switch: | + cd chiaki + scripts/switch/run-docker-build-chiaki.sh + cp build_switch/switch/chiaki.nro ../chiaki.nro + - bullseye: | + cd chiaki + scripts/run-docker-build-bullseye.sh diff --git a/.github/workflows/bullseye.yml b/.github/workflows/bullseye.yml deleted file mode 100644 index 5afd2c7..0000000 --- a/.github/workflows/bullseye.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Debian Bullseye -on: - push: - branches: - - master - pull_request: - -jobs: - build: - name: Debian Bullseye - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Checkout submodules - run: | - git submodule init - git submodule update - - name: Docker Build - run: cd scripts && docker build -t chiaki-bullseye . -f Dockerfile.bullseye && cd .. - - name: Build and Test - run: docker run --rm -v "`pwd`:/build" -t chiaki-bullseye /bin/bash -c "cd /build && scripts/ci-script -DCHIAKI_USE_SYSTEM_JERASURE=ON -DCHIAKI_USE_SYSTEM_NANOPB=ON" - diff --git a/.github/workflows/switch.yml b/.github/workflows/switch.yml deleted file mode 100644 index b365ab6..0000000 --- a/.github/workflows/switch.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Switch -on: - push: - branches: - - master - pull_request: - -jobs: - build: - name: Switch - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Checkout submodules - run: | - git submodule init - git submodule update - - name: Build Chiaki - run: scripts/switch/run-docker-build-chiaki.sh - - name: Upload chiaki.nro - uses: actions/upload-artifact@v1 - with: - name: chiaki.nro - path: ./build_switch/switch/chiaki.nro diff --git a/.gitignore b/.gitignore index 8cbe89f..9977c53 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ compile_commands.json .cache/ .gdb_history chiaki.conf +/appimage diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7af6368..0000000 --- a/.travis.yml +++ /dev/null @@ -1,165 +0,0 @@ - -language: cpp - -branches: - only: - - master - - /^v\d.*$/ - - /^deploy-test(-.*)?$/ - -before_script: - - export CHIAKI_VERSION="$TRAVIS_TAG" - - if [ -z "$CHIAKI_VERSION" ]; then export CHIAKI_VERSION="$TRAVIS_COMMIT"; fi - -matrix: - include: - - name: Linux (Bionic) - os: linux - dist: bionic - addons: - apt: - sources: - - sourceline: "ppa:beineri/opt-qt-5.12.0-bionic" - packages: - - protobuf-compiler - - python3-protobuf - - libopus-dev - - qt512base - - qt512multimedia - - qt512gamepad - - qt512svg - - libgl1-mesa-dev - - nasm - - libsdl2-dev - - libva-dev - env: - - CMAKE_PREFIX_PATH="$TRAVIS_BUILD_DIR/ffmpeg-prefix;/opt/qt512" - - CMAKE_EXTRA_ARGS="-DCMAKE_INSTALL_PREFIX=/usr" - - DEPLOY=0 - install: - - scripts/build-ffmpeg.sh - script: - - scripts/travis-build.sh || exit 1 - - source scripts/travis-appimage.sh - - - name: Linux (Xenial, Deploy) - os: linux - dist: xenial - addons: - apt: - sources: - - sourceline: "ppa:beineri/opt-qt-5.12.3-xenial" - packages: - - python3-pip - - libopus-dev - - qt512base - - qt512multimedia - - qt512svg - - libgl1-mesa-dev - - nasm - - libudev-dev - - libva-dev - env: - - CMAKE_PREFIX_PATH="$TRAVIS_BUILD_DIR/ffmpeg-prefix;$TRAVIS_BUILD_DIR/sdl2-prefix;/opt/qt512" - - CMAKE_EXTRA_ARGS="-DCMAKE_INSTALL_PREFIX=/usr" - - SDL2_FROM_SRC=1 - - DEPLOY=1 - install: - - sudo pip3 install protobuf - - scripts/fetch-protoc.sh - - export PATH="$TRAVIS_BUILD_DIR/protoc/bin:$PATH" - - scripts/build-ffmpeg.sh - - scripts/build-sdl2.sh - script: - - scripts/travis-build.sh || exit 1 - - source scripts/travis-appimage.sh - - - name: macOS - os: osx - osx_image: xcode11 - addons: - homebrew: - packages: - - qt - - opus - - openssl@1.1 - - nasm - - sdl2 - env: - - CMAKE_PREFIX_PATH="$TRAVIS_BUILD_DIR/ffmpeg-prefix;/usr/local/opt/openssl@1.1;/usr/local/opt/qt" - - CMAKE_EXTRA_ARGS="" - - DEPLOY=1 - install: - - pip3 install protobuf - - scripts/build-ffmpeg.sh - script: - - scripts/travis-build.sh - - cp -a build/gui/chiaki.app Chiaki.app - - /usr/local/opt/qt/bin/macdeployqt Chiaki.app -dmg - - export DEPLOY_FILE="Chiaki-${CHIAKI_VERSION}-macOS-x86_64.dmg" - - mv Chiaki.dmg "$DEPLOY_FILE" - - cmake -DCHIAKI_VERSION="${CHIAKI_VERSION}" -DCHIAKI_DMG="${DEPLOY_FILE}" -DCHIAKI_CASK_OUT=chiaki.rb -P scripts/configure-cask.cmake - - echo "------------------- chiaki.rb cask -------------------" - - cat chiaki.rb - - echo "------------------------------------------------------" - - - name: Android - language: android - os: linux - dist: trusty - env: - - DEPLOY=1 - android: - components: - - build-tools-29.0.2 - - android-29 - addons: - apt: - packages: - - python3-pip - install: - - echo y | sdkmanager "ndk-bundle" - - echo y | sdkmanager "cmake;3.10.2.4988404" - - sudo pip3 install protobuf - - scripts/fetch-protoc.sh - - export PATH="$TRAVIS_BUILD_DIR/protoc/bin:$PATH" - script: - - cd android - - ./gradlew assembleRelease bundleRelease - - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then export DEPLOY_FILE_BASE="Chiaki-$CHIAKI_VERSION-Android"; fi - - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then export DEPLOY_FILE="$DEPLOY_FILE_BASE.a[pa][kb]"; fi - - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then cp app/build/outputs/apk/release/app-release.apk "../$DEPLOY_FILE_BASE.apk"; fi - - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then cp app/build/outputs/bundle/release/app-release.aab "../$DEPLOY_FILE_BASE.aab"; fi - - cd .. - - - name: "Source Package" - os: linux - dist: bionic - env: - - DEPLOY=1 - install: ~ - script: - - find . -name ".git*" | xargs rm -rfv - - mkdir chiaki && shopt -s extglob && mv !(chiaki) chiaki - - export DEPLOY_FILE="chiaki-$CHIAKI_VERSION-src.tar.gz" - - tar -czvf "$DEPLOY_FILE" chiaki - -before_install: - - if [ ! -z "$encrypted_31d5e6477a29_iv" ]; then openssl aes-256-cbc -K $encrypted_31d5e6477a29_key -iv $encrypted_31d5e6477a29_iv -in secret.tar.enc -out secret.tar -d && tar -xf secret.tar; fi - -after_success: - - if [ ! -z "$DEPLOY_FILE" ]; then echo "--- SHA256 for $DEPLOY_FILE"; openssl dgst -sha256 "$DEPLOY_FILE"; echo; fi - - if [ ! -z "$DEPLOY_FILE" ]; then echo "--- transfer.sh"; curl -m 30 --upload-file "$DEPLOY_FILE" "https://transfer.sh/$DEPLOY_FILE"; echo; fi - - if [ ! -z "$DEPLOY_FILE" ]; then echo "--- oshi.at"; curl -m 30 --upload-file "$DEPLOY_FILE" "https://oshi.at/$DEPLOY_FILE/129600"; echo; fi - -deploy: - skip_cleanup: true - provider: releases - draft: true - api_key: - secure: R7RjLOuGFda05EJeNX2lNG135xKU2w9IQn7p1H1P2zw4zlQMgSBpNRaW8hE408x5KJUjptJTF6QaYYmPWbHlf9VEPFVIcVzSp8YSd2Cdr+GKhmFgWF+fJPBj5y9NNqohwxvK3Nrugh0v6yVQiEYEGF7WArU6dvymSNNTw/EqXtfrOvwUgSf1bDAzQAsXn3E6Ptzf9DrQU8+mOgMSqT/3Wy5207KLmWTtwBWDgkskKwS9OEXk3tDd6U4uT7NFHHmcw+ZjQXRD+yHSHUWYs1oKR4IfgPFxQfEK0Txhkxdf3yj1aNweuk7GGC3cfRaarUfRQpoYqYYCxhTfGZ2b4rVgX3XpssMY7ZmSZHRi/SX08ETXF/c7PZGzr0RPFXZLgAGjgN6O2Dbb9agc3tOUGDUuqKEWX9sALm82WS0FRAFrFLENgMFsj5hu+DKIIkAU2yEsadYKjjhC+q+mTAEkxKKknvM50Xpx3tE1TlP/31Z53v4/NydHIHXPJ72V3mnuoTacwhG2SkGtjMbLCnEZDCtu9C4556oa7Z29cqafv90ZD7lTQMV+ijKvjxgOC9u1GeemmZLofRGDFyYSqKxOpYxxxXGOhs+7FMAdKP00h++MTLwRwIebKQs0fW0XiNKmwushWOUU8sXI1jxTbwe9dPQsspxHRv/mVo6l2vUcBjC19K0= - file_glob: true - file: $DEPLOY_FILE - on: - tags: true - condition: $DEPLOY = 1 diff --git a/README.md b/README.md index bbcbd75..7eca7d0 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ **Disclaimer:** This project is not endorsed or certified by Sony Interactive Entertainment LLC. -[![Travis Build Status](https://travis-ci.com/thestr4ng3r/chiaki.svg?branch=master)](https://travis-ci.com/thestr4ng3r/chiaki) [![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/dnj9cmx5mmaaawer?svg=true)](https://ci.appveyor.com/project/thestr4ng3r/chiaki) [![builds.sr.ht Status](https://builds.sr.ht/~thestr4ng3r/chiaki.svg)](https://builds.sr.ht/~thestr4ng3r/chiaki?) +[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/dnj9cmx5mmaaawer?svg=true)](https://ci.appveyor.com/project/thestr4ng3r/chiaki) [![builds.sr.ht Status](https://builds.sr.ht/~thestr4ng3r/chiaki.svg)](https://builds.sr.ht/~thestr4ng3r/chiaki?) Chiaki is a Free and Open Source Software Client for PlayStation 4 Remote Play for Linux, FreeBSD, OpenBSD, Android, macOS, Windows, Nintendo Switch and potentially even more platforms. @@ -50,7 +50,7 @@ make ``` For more detailed platform-specific instructions, see [doc/platform-build.md](doc/platform-build.md). - +in ## Usage If your PS4 is on your local network, is turned on or in standby mode and does not have Discovery explicitly disabled, Chiaki should find it. @@ -83,10 +83,10 @@ There are official groups for Chiaki on Telegram and IRC. They are bridged so yo ## Acknowledgements This project has only been made possible because of the following Open Source projects: -[radare2](https://github.com/radare/radare2), -[Cutter](https://cutter.re/), -[Frida](https://www.frida.re/) and -[x64dbg](https://x64dbg.com/). +[Rizin](https://rizin.re), +[Cutter](https://cutter.re), +[Frida](https://www.frida.re) and +[x64dbg](https://x64dbg.com). Also thanks to [delroth](https://github.com/delroth) for analyzing the registration and wakeup protocol, [grill2010](https://github.com/grill2010) for analyzing the PSN's OAuth Login, diff --git a/lib/include/chiaki/config.h b/lib/include/chiaki/config.h new file mode 100644 index 0000000..542ff64 --- /dev/null +++ b/lib/include/chiaki/config.h @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL + +#ifndef CHIAKI_CONFIG_H +#define CHIAKI_CONFIG_H + +#define CHIAKI_LIB_ENABLE_OPUS 1 +#define CHIAKI_LIB_ENABLE_PI_DECODER 0 + +#endif // CHIAKI_CONFIG_H diff --git a/scripts/Dockerfile.bullseye b/scripts/Dockerfile.bullseye index 96cab09..888f3af 100644 --- a/scripts/Dockerfile.bullseye +++ b/scripts/Dockerfile.bullseye @@ -2,7 +2,7 @@ FROM debian:bullseye RUN apt-get update -RUN apt-get -y install git g++ cmake pkg-config \ +RUN apt-get -y install git g++ cmake ninja-build pkg-config \ libjerasure-dev nanopb libnanopb-dev libavcodec-dev libopus-dev \ libssl-dev protobuf-compiler python3 python3-protobuf \ libevdev-dev libudev-dev \ diff --git a/scripts/Dockerfile.xenial b/scripts/Dockerfile.xenial new file mode 100644 index 0000000..b741028 --- /dev/null +++ b/scripts/Dockerfile.xenial @@ -0,0 +1,13 @@ + +FROM ubuntu:xenial + +RUN apt-get update +RUN apt-get install -y software-properties-common +RUN add-apt-repository ppa:beineri/opt-qt-5.12.3-xenial +RUN apt-get update +RUN apt-get -y install git g++ cmake ninja-build curl unzip python3-pip \ + libssl-dev libopus-dev qt512base qt512multimedia qt512svg \ + libgl1-mesa-dev nasm libudev-dev libva-dev fuse + +CMD [] + diff --git a/scripts/appveyor-win.sh b/scripts/appveyor-win.sh index 0e49286..f751200 100755 --- a/scripts/appveyor-win.sh +++ b/scripts/appveyor-win.sh @@ -12,7 +12,7 @@ cd .. || exit 1 export PATH="$PWD/ninja:$PWD/yasm:/c/Qt/5.12/msvc2017_64/bin:$PATH" -scripts/build-ffmpeg.sh --target-os=win64 --arch=x86_64 --toolchain=msvc || exit 1 +scripts/build-ffmpeg.sh . --target-os=win64 --arch=x86_64 --toolchain=msvc || exit 1 git clone https://github.com/xiph/opus.git && cd opus && git checkout ad8fe90db79b7d2a135e3dfd2ed6631b0c5662ab || exit 1 mkdir build && cd build || exit 1 diff --git a/scripts/build-appimage.sh b/scripts/build-appimage.sh new file mode 100755 index 0000000..7ba4acf --- /dev/null +++ b/scripts/build-appimage.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +set -xe + +mkdir appimage + +pip3 install --user protobuf +scripts/fetch-protoc.sh appimage +export PATH="`pwd`/appimage/protoc/bin:$PATH" +scripts/build-ffmpeg.sh appimage +scripts/build-sdl2.sh appimage + +mkdir build_appimage +cd build_appimage +cmake \ + -GNinja \ + -DCMAKE_BUILD_TYPE=Release \ + "-DCMAKE_PREFIX_PATH=`pwd`/../appimage/ffmpeg-prefix;`pwd`/../appimage/sdl2-prefix;/opt/qt512" \ + -DCHIAKI_ENABLE_TESTS=ON \ + -DCHIAKI_ENABLE_CLI=OFF \ + -DCHIAKI_GUI_ENABLE_SDL_GAMECONTROLLER=ON \ + -DCMAKE_INSTALL_PREFIX=/usr \ + .. +cd .. +ninja -C build_appimage +build_appimage/test/chiaki-unit + +DESTDIR=`pwd`/appimage/appdir ninja -C build_appimage install +cd appimage + +curl -L -O https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage +chmod +x linuxdeploy-x86_64.AppImage +curl -L -O https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage +chmod +x linuxdeploy-plugin-qt-x86_64.AppImage +set +e +source /opt/qt512/bin/qt512-env.sh +set -e + +export LD_LIBRARY_PATH="`pwd`/sdl2-prefix/lib:$LD_LIBRARY_PATH" +export EXTRA_QT_PLUGINS=opengl + +./linuxdeploy-x86_64.AppImage --appdir=appdir -e appdir/usr/bin/chiaki -d appdir/usr/share/applications/chiaki.desktop --plugin qt --output appimage +mv Chiaki-*-x86_64.AppImage Chiaki.AppImage diff --git a/scripts/build-ffmpeg.sh b/scripts/build-ffmpeg.sh index dfce4bb..00289fd 100755 --- a/scripts/build-ffmpeg.sh +++ b/scripts/build-ffmpeg.sh @@ -1,6 +1,8 @@ #!/bin/bash cd $(dirname "${BASH_SOURCE[0]}")/.. +cd "./$1" +shift ROOT="`pwd`" TAG=n4.2 diff --git a/scripts/build-sdl2.sh b/scripts/build-sdl2.sh index 7382bca..f06b9cc 100755 --- a/scripts/build-sdl2.sh +++ b/scripts/build-sdl2.sh @@ -1,6 +1,9 @@ #!/bin/bash +set -xe + cd $(dirname "${BASH_SOURCE[0]}")/.. +cd "./$1" ROOT="`pwd`" URL=https://www.libsdl.org/release/SDL2-2.0.10.tar.gz @@ -8,8 +11,8 @@ FILE=SDL2-2.0.10.tar.gz DIR=SDL2-2.0.10 if [ ! -d "$DIR" ]; then - wget "$URL" || exit 1 - tar -xf "$FILE" || exit 1 + curl -L "$URL" -O + tar -xf "$FILE" fi cd "$DIR" || exit 1 @@ -33,9 +36,9 @@ cmake \ -DSDL_THREADS=ON \ -DSDL_TIMERS=OFF \ -DSDL_VIDEO=OFF \ - .. || exit 1 + .. # SDL_THREADS is not needed, but it doesn't compile without -make -j4 || exit 1 -make install || exit 1 +make -j4 +make install diff --git a/scripts/ci-script b/scripts/ci-script deleted file mode 100755 index e88acfb..0000000 --- a/scripts/ci-script +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e -set -x - -mkdir build && cd build -cmake .. -DCHIAKI_ENABLE_SETSU=ON "$@" -make -j8 -make test diff --git a/scripts/fetch-protoc.sh b/scripts/fetch-protoc.sh index 2dec889..e1d2d2f 100755 --- a/scripts/fetch-protoc.sh +++ b/scripts/fetch-protoc.sh @@ -1,10 +1,13 @@ #!/bin/bash +set -xe + cd $(dirname "${BASH_SOURCE[0]}")/.. +cd "./$1" ROOT="`pwd`" URL=https://github.com/protocolbuffers/protobuf/releases/download/v3.9.1/protoc-3.9.1-linux-x86_64.zip -wget "$URL" -O protoc.zip || exit 1 -unzip protoc.zip -d protoc || exit 1 +curl -L "$URL" -o protoc.zip +unzip protoc.zip -d protoc diff --git a/scripts/run-docker-build-appimage.sh b/scripts/run-docker-build-appimage.sh new file mode 100755 index 0000000..931499c --- /dev/null +++ b/scripts/run-docker-build-appimage.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -xe +cd "`dirname $(readlink -f ${0})`" + +docker build -t chiaki-xenial . -f Dockerfile.xenial +cd .. +docker run --rm \ + -v "`pwd`:/build/chiaki" \ + -w "/build/chiaki" \ + --device /dev/fuse \ + --cap-add SYS_ADMIN \ + -t chiaki-xenial \ + /bin/bash -c "scripts/build-appimage.sh" + diff --git a/scripts/run-docker-build-bullseye.sh b/scripts/run-docker-build-bullseye.sh new file mode 100755 index 0000000..fd19bb1 --- /dev/null +++ b/scripts/run-docker-build-bullseye.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +set -xe +cd "`dirname $(readlink -f ${0})`" + +docker build -t chiaki-bullseye . -f Dockerfile.bullseye +cd .. +docker run --rm -v "`pwd`:/build" chiaki-bullseye /bin/bash -c " + cd /build && + mkdir build_bullseye && + cmake -Bbuild_bullseye -GNinja -DCHIAKI_ENABLE_SETSU=ON -DCHIAKI_USE_SYSTEM_JERASURE=ON -DCHIAKI_USE_SYSTEM_NANOPB=ON && + ninja -C build_bullseye && + ninja -C build_bullseye test" + diff --git a/scripts/travis-appimage.sh b/scripts/travis-appimage.sh deleted file mode 100644 index 6950e78..0000000 --- a/scripts/travis-appimage.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -cd build && make install DESTDIR=../appdir && cd .. || exit 1 -wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage && chmod +x linuxdeploy-x86_64.AppImage || exit 1 -wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage && chmod +x linuxdeploy-plugin-qt-x86_64.AppImage || exit 1 -source /opt/qt512/bin/qt512-env.sh || exit 1 - -if [ -n "$SDL2_FROM_SRC" ]; then - export LD_LIBRARY_PATH="$TRAVIS_BUILD_DIR/sdl2-prefix/lib:$LD_LIBRARY_PATH" || exit 1 -fi - -export EXTRA_QT_PLUGINS=opengl - -./linuxdeploy-x86_64.AppImage --appdir=appdir -e appdir/usr/bin/chiaki -d appdir/usr/share/applications/chiaki.desktop --plugin qt --output appimage || exit 1 -export DEPLOY_FILE="Chiaki-${CHIAKI_VERSION}-Linux-x86_64.AppImage" || exit 1 -mv Chiaki-*-x86_64.AppImage "$DEPLOY_FILE" || exit 1 \ No newline at end of file