├── resource ├── PCSX2.png └── PCSX2.desktop ├── deploydocker └── Dockerfile.pcsx2-deploy.archlinux ├── LICENSE ├── README.md ├── .travis.yml ├── AppRun └── deployscript └── archlinux-pcsx2-deploy.sh /resource/PCSX2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ferion11/PCSX2_Appimage/HEAD/resource/PCSX2.png -------------------------------------------------------------------------------- /deploydocker/Dockerfile.pcsx2-deploy.archlinux: -------------------------------------------------------------------------------- 1 | FROM archlinux/base 2 | 3 | COPY . /srv/pcsx2appimage 4 | 5 | WORKDIR /srv/pcsx2appimage 6 | RUN /srv/pcsx2appimage/deployscript/archlinux-pcsx2-deploy.sh 7 | -------------------------------------------------------------------------------- /resource/PCSX2.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Terminal=false 4 | Type=Application 5 | Name=PCSX2 6 | GenericName=Playstation 2 Emulator 7 | Comment=Sony Playstation 2 emulator 8 | Exec=AppRun 9 | Icon=PCSX2 10 | Categories=Game;Emulator; 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 DanielDevBR 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.com/ferion11/PCSX2_Appimage.svg?branch=master)](https://travis-ci.com/ferion11/PCSX2_Appimage) [![AppImage Build](https://img.shields.io/badge/AppImage-build-blue)](https://github.com/ferion11/PCSX2_Appimage/releases) 2 | 3 | # PCSX2_Appimage 4 | 5 | > PCSX2 Appimage that include all 32bits deps, for all linux 64bits (include no-multilib pure 64bits). 6 | 7 | #### 1- Download "pcsx2-VERSION-x86_64.AppImage" [HERE][PCSX2] 8 | If you use the proprietary NVIDIA driver, you can download the respective version instead. See link [NVIDIA_LEGACY_LIST][NVIDIA_LEGACY] 9 | * NOTE: With proprietary NVIDIA, you will need to use the same major version equivalent to the one running on your 64bits system. 10 | #### 2- Make executable: 11 | ``` 12 | $ chmod +x pcsx2-VERSION-x86_64.AppImage 13 | ``` 14 | #### 3- Run it: 15 | ``` 16 | $ ./pcsx2-VERSION-x86_64.AppImage 17 | ``` 18 | #### Optional 1- To test the OpenGL of your video card: 19 | ``` 20 | $ ./pcsx2-VERSION-x86_64.AppImage glxinfo32 21 | $ ./pcsx2-VERSION-x86_64.AppImage glxgears32 -info 22 | $ ./pcsx2-VERSION-x86_64.AppImage shape32 23 | ``` 24 | #### Optional 2- You can use PRIME too: 25 | ``` 26 | $ DRI_PRIME=1 ./pcsx2-VERSION-x86_64.AppImage glxgears32 -info 27 | ``` 28 | 29 | [PCSX2]: https://github.com/ferion11/PCSX2_Appimage/releases/tag/continuous "HERE" 30 | [NVIDIA_LEGACY]: https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/ "NVIDIA_LEGACY_LIST" 31 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | 3 | language: cpp 4 | services: 5 | - docker 6 | 7 | env: 8 | global: 9 | - RELEASE_BRANCH="master" 10 | 11 | before_install: 12 | # appimagetool 13 | - wget -nv -c "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" -O appimagetool.AppImage 14 | 15 | script: 16 | # archlinux 17 | - docker build . -f deploydocker/Dockerfile.pcsx2-deploy.archlinux -t pcsx2-appimage.archlinux 18 | 19 | after_success: 20 | - mkdir apps 21 | 22 | # archlinux 23 | - docker run --rm -v $(pwd)/apps:/tmp/apps -ti pcsx2-appimage.archlinux cp result.tar /tmp/apps 24 | 25 | # extract result 26 | - tar xvf apps/result.tar -C apps 27 | - rm -rf apps/result.tar 28 | 29 | # md5sum tool 30 | - wget -c https://github.com/ferion11/libsutil/releases/download/md5sum_util_v0.1/md5sum_util.sh 31 | - bash md5sum_util.sh apps 32 | 33 | # uploadtool 34 | - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh 35 | 36 | - |- # publish 37 | if [[ ("$TRAVIS_BRANCH" != "$RELEASE_BRANCH" && "$TRAVIS_BRANCH" != "$TRAVIS_TAG") || "$TRAVIS_EVENT_TYPE" != "push" ]]; then 38 | echo 'Publishing release to GitHub...' 39 | export UPLOADTOOL_SUFFIX="$TRAVIS_BRANCH" 40 | export UPLOADTOOL_BODY="Instructions on using the AppImage can be found [here](https://github.com/${TRAVIS_REPO_SLUG}/blob/master/README.md)\n\nThis is the ***$UPLOADTOOL_SUFFIX experimental build*** for testing new features.\n\nTravis CI build log: $TRAVIS_BUILD_WEB_URL" 41 | bash upload.sh apps/* 42 | elif [[ "$TRAVIS_BRANCH" != "$TRAVIS_TAG" ]]; then 43 | echo 'Publishing release to GitHub...' 44 | export UPLOADTOOL_BODY="Instructions on using the AppImage can be found [here](https://github.com/${TRAVIS_REPO_SLUG}/blob/master/README.md)\n\nThis is the ***latest development build***.\n\nTravis CI build log: $TRAVIS_BUILD_WEB_URL" 45 | bash upload.sh apps/* 46 | else 47 | echo 'Publishing release to GitHub...' 48 | export UPLOADTOOL_BODY="Instructions on using the AppImage can be found [here](https://github.com/${TRAVIS_REPO_SLUG}/blob/master/README.md)\n\nThis is the ***release $TRAVIS_TAG stable build***.\n\nTravis CI build log: $TRAVIS_BUILD_WEB_URL" 49 | bash upload.sh apps/* 50 | fi 51 | 52 | branches: 53 | except: 54 | - # Do not build tags that we create when we upload to GitHub Releases 55 | - /^(?i:continuous)$/ 56 | - /^release-[0-9a-z\-]*/ 57 | - /^(?i:untagged)-.*$/ 58 | 59 | notifications: 60 | email: 61 | on_success: change # default: change 62 | on_failure: always # default: always -------------------------------------------------------------------------------- /AppRun: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | HERE="$(dirname "$(readlink -f "${0}")")" 3 | PCSX2_HOME="$HOME/.config/PCSX2" 4 | F11_APPIMAGE_TMP_DIR="$HERE"_tmp 5 | F11_APPIMAGE_CONF_DIR="$HOME/.config/f11conf" 6 | F11_APPIMAGE_VKCONF="$F11_APPIMAGE_CONF_DIR/vulkan.conf" 7 | #=================================================================== 8 | 9 | make_dir() { [ ! -d "$1" ] && mkdir -p "$1"; }; 10 | 11 | function cleanup { 12 | # clean tmp files: 13 | rm -rf "$F11_APPIMAGE_TMP_DIR" 14 | } 15 | #------------------------------ 16 | 17 | # Configure AppImage: 18 | if [ "$1" = "f11conf" ] ; then 19 | echo "Init Configuration:" 20 | make_dir $F11_APPIMAGE_CONF_DIR 21 | #like: pcsx2.appimage f11conf vulkan radeon:intel 22 | if [ "$2" = "vulkan" ] ; then 23 | cat > $F11_APPIMAGE_VKCONF << EOF 24 | F11_VULKAN=$3 25 | EOF 26 | cat $F11_APPIMAGE_VKCONF 27 | fi 28 | echo "Configuration done! " 29 | exit 0 30 | fi 31 | 32 | # Create a tmp dir to some utils like vulkan (need one new, so remove the old): 33 | if [ -d "$F11_APPIMAGE_TMP_DIR" ]; then 34 | rm -rf "$F11_APPIMAGE_TMP_DIR" 35 | fi 36 | mkdir "$F11_APPIMAGE_TMP_DIR" 37 | 38 | trap cleanup EXIT 39 | #=================================================================== 40 | 41 | # If not extract and overwrite, $HERE/lib is a link to $HERE/usr/lib, that link to $HERE/usr/lib64 42 | export LD_LIBRARY_PATH="$HERE/usr/lib":$LD_LIBRARY_PATH 43 | export LD_LIBRARY_PATH="$HERE/usr/lib32":$LD_LIBRARY_PATH 44 | export LD_LIBRARY_PATH="$HERE/lib":$LD_LIBRARY_PATH 45 | 46 | export PATH=$HERE/bin:$HERE/usr/bin:$PATH 47 | #---------------------------------------- 48 | 49 | #Sound Library 50 | export LD_LIBRARY_PATH="$HERE/usr/lib32/pulseaudio":$LD_LIBRARY_PATH 51 | export LD_LIBRARY_PATH="$HERE/usr/lib32/alsa-lib":$LD_LIBRARY_PATH 52 | export LADSPA_PATH="$HERE/usr/lib32/ladspa":$LADSPA_PATH 53 | export AO_PLUGIN_PATH="$HERE/usr/lib32/ao/plugins-4":$AO_PLUGIN_PATH 54 | 55 | # For mpg123 56 | export LD_LIBRARY_PATH="$HERE/usr/lib32/mpg123":$LD_LIBRARY_PATH 57 | 58 | # for libomxil-bellagio 59 | export BELLAGIO_SEARCH_PATH="$HERE/usr/lib32/bellagio":"$HERE/usr/lib32/omxloaders":"$HERE/usr/lib32" 60 | 61 | # libGL drivers 62 | export LIBGL_DRIVERS_PATH="$HERE/usr/lib32/dri":$LIBGL_DRIVERS_PATH 63 | 64 | # Gallium Nine 65 | export D3D_MODULE_PATH="$HERE/usr/lib32/d3d":$D3D_MODULE_PATH 66 | 67 | #Font Config 68 | export FONTCONFIG_PATH="$HERE/etc/fonts":$FONTCONFIG_PATH 69 | 70 | #LD 71 | export MAIN32LDLIBRARY="$HERE/usr/lib32/ld-linux.so.2" 72 | #------------------------------ 73 | 74 | # GTK 2.0 75 | export GTK_PATH="$HERE/usr/lib32/gtk-2.0" 76 | #------------------------------ 77 | 78 | # GStreamer environment variables 79 | export GST_REGISTRY_REUSE_PLUGIN_SCANNER="no" 80 | export GST_PLUGIN_SYSTEM_PATH_1_0="${HERE}/usr/lib32/gstreamer-1.0/" 81 | 82 | export GST_PLUGIN_SCANNER_1_0="${HERE}/usr/lib32/gstreamer-1.0/gst-plugin-scanner" 83 | export GST_PTP_HELPER_1_0="${HERE}/usr/lib32/gstreamer-1.0/gst-ptp-helper" 84 | 85 | export GST_PLUGIN_PATH=${GST_PLUGIN_SYSTEM_PATH_1_0} 86 | export GST_PLUGIN_SYSTEM_PATH=${GST_PLUGIN_SYSTEM_PATH_1_0} 87 | export GST_PLUGIN_SCANNER=${GST_PLUGIN_SCANNER_1_0} 88 | #=================================================================== 89 | 90 | # Gdk Pixbuf 91 | export GDK_PIXBUF_MODULE_FILE="${F11_APPIMAGE_TMP_DIR}/gdk_pixbuf_loaders.cache" 92 | export GDK_PIXBUF_MODULEDIR="${HERE}/usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders" 93 | if [ -d "$F11_APPIMAGE_TMP_DIR" ]; then 94 | $MAIN32LDLIBRARY "${HERE}/usr/bin/gdk-pixbuf-query-loaders-32" --update-cache 95 | fi 96 | #=================================================================== 97 | 98 | # For Vulkan drivers: 99 | # Setting VK_ICD_FILENAMES... But the user can use his own variable for local drivers 100 | if [ -n "$VK_ICD_FILENAMES" ] && [ -d "$F11_APPIMAGE_TMP_DIR" ] 101 | then 102 | echo "Using user \$VK_ICD_FILENAMES: $VK_ICD_FILENAMES" 103 | elif [ -f "$F11_APPIMAGE_VKCONF" ]; then 104 | . "$F11_APPIMAGE_VKCONF" 105 | 106 | IFS_TMP=$IFS 107 | IFS=: 108 | for driver in $F11_VULKAN; do 109 | #echo "$driver" 110 | if [ "$driver" = "intel" ]; then 111 | export VK_ICD_FILENAMES="$VK_ICD_FILENAMES:$F11_APPIMAGE_TMP_DIR/intel_icd.i686.json" 112 | cat > $F11_APPIMAGE_TMP_DIR/intel_icd.i686.json << EOF 113 | { 114 | "ICD": { 115 | "api_version": "1.1.102", 116 | "library_path": "$HERE/usr/lib32/libvulkan_intel.so" 117 | }, 118 | "file_format_version": "1.0.0" 119 | } 120 | EOF 121 | elif [ "$driver" = "radeon" ]; then 122 | export VK_ICD_FILENAMES="$VK_ICD_FILENAMES:$F11_APPIMAGE_TMP_DIR/radeon_icd.i686.json" 123 | cat > $F11_APPIMAGE_TMP_DIR/radeon_icd.i686.json << EOF 124 | { 125 | "ICD": { 126 | "api_version": "1.1.107", 127 | "library_path": "$HERE/usr/lib32/libvulkan_radeon.so" 128 | }, 129 | "file_format_version": "1.0.0" 130 | } 131 | EOF 132 | else 133 | echo "ERROR: Driver \"$driver\" unsupported yet!!!" 134 | fi 135 | done 136 | 137 | IFS=$IFS_TMP 138 | fi 139 | #=================================================================== 140 | 141 | export PCSX2_PLUGIN_DIR="$HERE/usr/lib32/pcsx2" 142 | export PCSX2_GAMEINDEX_DIR="$HERE/usr/share/pcsx2" 143 | export PCSX2_DOC_DIR="$HERE/usr/share/doc/PCSX2" 144 | 145 | export LOCPATH="$HERE/usr/share/locale" 146 | #---------------------------------------- 147 | 148 | # Allow the AppImage to be symlinked to e.g., /usr/bin/glxinfo32 or /usr/bin/glxgears32 149 | if [ -n "$APPIMAGE" ] ; then 150 | BINARY_NAME=$(basename "$ARGV0") 151 | else 152 | BINARY_NAME=$(basename "$0") 153 | fi 154 | 155 | MAIN="$HERE/usr/bin/PCSX2" 156 | if [ -n "$1" ] && [ -x "$HERE/bin/$1" ] ; then 157 | MAIN="$HERE/bin/$1" ; shift 158 | elif [ -n "$1" ] && [ -x "$HERE/usr/bin/$1" ] ; then 159 | MAIN="$HERE/usr/bin/$1" ; shift 160 | elif [ -x "$HERE/bin/$BINARY_NAME" ] ; then 161 | MAIN="$HERE/bin/$BINARY_NAME" 162 | elif [ -x "$HERE/usr/bin/$BINARY_NAME" ] ; then 163 | MAIN="$HERE/usr/bin/$BINARY_NAME" 164 | else 165 | MAIN="$HERE/usr/bin/PCSX2" 166 | fi 167 | 168 | # Exec outside apps with inside environment (make the link name "ExternalExec") 169 | if [ "$BINARY_NAME" = "ExternalExec" ] && [ -n "$1" ] && [ -x "$1" ]; then 170 | MAIN="$1" ; shift 171 | fi 172 | #=================================================================== 173 | 174 | # Find and update PCSX2 paths: 175 | if [ "$MAIN" = "$HERE/usr/bin/PCSX2" ]; then 176 | if [ -d "$PCSX2_HOME" ]; then 177 | for dir_i in $(find -L "$PCSX2_HOME" -name *.ini); do 178 | HERE_SLASH=$(echo "$HERE" | sed 's,/,\\\/,g') 179 | sed -i "s/=[^[]*\/usr\/lib/=$HERE_SLASH\/usr\/lib/g" "$dir_i" 180 | done 181 | fi 182 | fi 183 | #=================================================================== 184 | 185 | export __GL_THREADED_OPTIMIZATIONS=1 186 | $MAIN32LDLIBRARY "$MAIN" "$@" | cat 187 | 188 | -------------------------------------------------------------------------------- /deployscript/archlinux-pcsx2-deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PKG_WORKDIR="pkg_work" 3 | PCSX2_WORKDIR="pcsx2version" 4 | 5 | #========================= 6 | die() { echo >&2 "$*"; exit 1; }; 7 | 8 | get_archlinux32_pkg() { 9 | #WARNING: Only work on well formatted html 10 | #usage: get_archlinux32_pkg [link] [dest] 11 | # get_archlinux32_pkg http://pool.mirror.archlinux32.org/pentium4/extra/aom-1.0.0.errata1-1.2-pentium4.pkg.tar.xz ./cache/ 12 | # get_archlinux32_pkg https://www.archlinux32.org/packages/pentium4/extra/xvidcore/ ./cache/ 13 | 14 | REAL_LINK="" 15 | PAR_PKG_LINK=$(echo $1 | grep "pkg.tar") 16 | 17 | if [ -n "$PAR_PKG_LINK" ]; then 18 | REAL_LINK="$PAR_PKG_LINK" 19 | else 20 | rm -rf tmp_file_html 21 | wget -nv -c $1 -O tmp_file_html 22 | REAL_LINK=$(grep "pkg.tar" tmp_file_html | grep --invert-match ".sig" | sed -n 's/.*href="\([^"]*\).*/\1/p') 23 | rm -rf tmp_file_html 24 | 25 | if [ -z "$REAL_LINK" ]; then 26 | die "* ERROR get_archlinux32_pkg: Fail to download: $1" 27 | fi 28 | fi 29 | 30 | wget -nv -c $REAL_LINK -P $2 31 | } 32 | 33 | get_archlinux32_pkgs() { 34 | #Usage: get_archlinux32_pkgs [dest] pack1 pack2... 35 | #https://mirror.datacenter.by/pub/archlinux32/$arch/$repo/" 36 | 37 | rm -rf tmp_pentium4_core_html 38 | rm -rf tmp_pentium4_extra_html 39 | rm -rf tmp_pentium4_community_html 40 | wget -nv -c https://mirror.datacenter.by/pub/archlinux32/pentium4/core/ -O tmp_pentium4_core_html 41 | wget -nv -c https://mirror.datacenter.by/pub/archlinux32/pentium4/extra/ -O tmp_pentium4_extra_html 42 | wget -nv -c https://mirror.datacenter.by/pub/archlinux32/pentium4/community/ -O tmp_pentium4_community_html 43 | 44 | for current_pkg in "${@:2}" 45 | do 46 | PKG_NAME_CORE=$(grep "$current_pkg-[0-9]" tmp_pentium4_core_html | grep --invert-match ".sig" | sed -n 's/.*href="\([^"]*\).*/\1/p' | grep "^$current_pkg") 47 | 48 | if [ -n "$PKG_NAME_CORE" ]; then 49 | #echo "CORE: Downloading $current_pkg in $1 : $PKG_NAME_CORE" 50 | #echo "http://pool.mirror.archlinux32.org/pentium4/core/$PKG_NAME_CORE" 51 | get_archlinux32_pkg "http://pool.mirror.archlinux32.org/pentium4/core/$PKG_NAME_CORE" $1 52 | else 53 | PKG_NAME_EXTRA=$(grep "$current_pkg-[0-9]" tmp_pentium4_extra_html | grep --invert-match ".sig" | sed -n 's/.*href="\([^"]*\).*/\1/p' | grep "^$current_pkg") 54 | 55 | if [ -n "$PKG_NAME_EXTRA" ]; then 56 | #echo "EXTRA: Downloading $current_pkg in $1 : $PKG_NAME_EXTRA" 57 | #echo "http://pool.mirror.archlinux32.org/pentium4/extra/$PKG_NAME_EXTRA" 58 | get_archlinux32_pkg "http://pool.mirror.archlinux32.org/pentium4/extra/$PKG_NAME_EXTRA" $1 59 | else 60 | PKG_NAME_COMMUNITY=$(grep "$current_pkg-[0-9]" tmp_pentium4_community_html | grep --invert-match ".sig" | sed -n 's/.*href="\([^"]*\).*/\1/p' | grep "^$current_pkg") 61 | 62 | if [ -n "$PKG_NAME_COMMUNITY" ]; then 63 | #echo "COMMUNITY: Downloading $current_pkg in $1 : $PKG_NAME_COMMUNITY" 64 | #echo "http://pool.mirror.archlinux32.org/pentium4/community/$PKG_NAME_COMMUNITY" 65 | get_archlinux32_pkg "http://pool.mirror.archlinux32.org/pentium4/community/$PKG_NAME_COMMUNITY" $1 66 | else 67 | die "ERROR get_archlinux32_pkgs: Package don't found: $current_pkg" 68 | fi 69 | fi 70 | fi 71 | done 72 | 73 | rm -rf tmp_pentium4_core_html 74 | rm -rf tmp_pentium4_extra_html 75 | rm -rf tmp_pentium4_community_html 76 | } 77 | #========================= 78 | echo "DEBUG: starting and configuring pacmam" 79 | # pacman-key: need it 80 | #pacman -S --noconfirm gawk 81 | #pacman -S --noconfirm nawk 82 | 83 | #Initializing the keyring requires entropy 84 | pacman-key --init 85 | 86 | # Enable Multilib 87 | sed -i "/\[multilib\]/,/Include/"'s/^#//' /etc/pacman.conf 88 | 89 | # Configure for compilation: 90 | #sed -i '/^BUILDENV/s/\!ccache/ccache/' /etc/makepkg.conf 91 | sed -i '/#MAKEFLAGS=/c MAKEFLAGS="-j2"' /etc/makepkg.conf 92 | #sed -i '/^COMPRESSXZ/s/\xz/xz -T 2/' /etc/makepkg.conf 93 | #sed -i "s/^PKGEXT='.pkg.tar.gz'/PKGEXT='.pkg.tar.xz'/" /etc/makepkg.conf 94 | #sed -i '$a CFLAGS="$CFLAGS -w"' /etc/makepkg.conf 95 | #sed -i '$a CXXFLAGS="$CXXFLAGS -w"' /etc/makepkg.conf 96 | sed -i 's/^CFLAGS\s*=.*/CFLAGS="-march=nehalem -O2 -pipe -ftree-vectorize -fno-stack-protector"/' /etc/makepkg.conf 97 | sed -i 's/^CXXFLAGS\s*=.*/CXXFLAGS="-march=nehalem -O2 -pipe -ftree-vectorize -fno-stack-protector"/' /etc/makepkg.conf 98 | #sed -i 's/^LDFLAGS\s*=.*/LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"/' /etc/makepkg.conf 99 | sed -i 's/^#PACKAGER\s*=.*/PACKAGER="DanielDevBR"/' /etc/makepkg.conf 100 | sed -i 's/^PKGEXT\s*=.*/PKGEXT=".pkg.tar"/' /etc/makepkg.conf 101 | sed -i 's/^SRCEXT\s*=.*/SRCEXT=".src.tar"/' /etc/makepkg.conf 102 | 103 | # Add more repo: 104 | echo "" >> /etc/pacman.conf 105 | 106 | # https://github.com/archlinuxcn/repo 107 | echo "[archlinuxcn]" >> /etc/pacman.conf 108 | echo "SigLevel = Optional TrustAll" >> /etc/pacman.conf 109 | echo "Server = https://repo.archlinuxcn.org/\$arch" >> /etc/pacman.conf 110 | echo "" >> /etc/pacman.conf 111 | 112 | # https://lonewolf.pedrohlc.com/chaotic-aur/ 113 | echo "[chaotic-aur]" >> /etc/pacman.conf 114 | echo "SigLevel = Optional TrustAll" >> /etc/pacman.conf 115 | echo "Server = http://lonewolf-builder.duckdns.org/\$repo/x86_64" >> /etc/pacman.conf 116 | echo "Server = http://chaotic.bangl.de/\$repo/x86_64" >> /etc/pacman.conf 117 | echo "Server = https://repo.kitsuna.net/x86_64" >> /etc/pacman.conf 118 | echo "" >> /etc/pacman.conf 119 | #pacman-key --keyserver keys.mozilla.org -r 3056513887B78AEB 120 | #pacman-key --lsign-key 3056513887B78AEB 121 | 122 | # workaround one bug: https://bugzilla.redhat.com/show_bug.cgi?id=1773148 123 | echo "Set disable_coredump false" >> /etc/sudo.conf 124 | 125 | echo "DEBUG: updating pacmam keys" 126 | pacman -Syy --noconfirm && pacman --noconfirm -S archlinuxcn-keyring 127 | 128 | echo "DEBUG: pacmam sync" 129 | pacman -Syy --noconfirm 130 | 131 | echo "DEBUG: pacmam updating system" 132 | pacman -Syu --noconfirm 133 | 134 | echo "DEBUG: pacmam install basic tools" 135 | #Add "gcc lib32-gcc-libs" for compile in the list: 136 | pacman -S --noconfirm wget base-devel multilib-devel pacman-contrib git tar grep zstd xz png++ xorgproto libffi 137 | #=========================================================================================== 138 | 139 | echo "DEBUG: git-describe-remote.sh getting info" 140 | cat > "git-describe-remote.sh" << EOF 141 | #!/usr/bin/awk -f 142 | BEGIN { 143 | if (ARGC != 2) { 144 | print "git-describe-remote.awk https://github.com/stedolan/jq" 145 | exit 146 | } 147 | FS = "[ /^]+" 148 | while ("git ls-remote " ARGV[1] "| sort -Vk2" | getline) { 149 | if (!sha) 150 | sha = substr(\$0, 1, 9) 151 | tag = \$3 152 | } 153 | while ("curl -s " ARGV[1] "/releases/tag/" tag | getline) 154 | if (\$3 ~ "commits") 155 | com = \$2 156 | printf com ? "%s-%s-g%s\n" : "%s\n", tag, com, sha 157 | } 158 | 159 | EOF 160 | chmod +x git-describe-remote.sh 161 | 162 | FULL=$(./git-describe-remote.sh https://github.com/PCSX2/pcsx2) 163 | 164 | VERSION=$(echo $FULL | cut -d- -f1) 165 | TYPE=$(echo $FULL | cut -d- -f2) 166 | RELEASE=$(echo $FULL | cut -d- -f3) 167 | GITHASH=$(echo $FULL | cut -d- -f4) 168 | 169 | #ARCHV=$(echo $FULL | sed 's/^v//; s/-dev//; s/-/.r/; s/-g/./') 170 | #ARCHV=$(echo $FULL | sed 's/^v//; s/-rc//; s/-/.r/; s/-g/./') 171 | ARCHV=$(echo $FULL | sed "s/^v//; s/-$TYPE//; s/-/.r/; s/-g/./") 172 | 173 | echo "=== VERSIONS ===" 174 | echo "FULL: $FULL" 175 | echo "ARCHV: $ARCHV" 176 | echo "VERSION: $VERSION" 177 | echo "TYPE: $TYPE" 178 | echo "RELEASE: $RELEASE" 179 | echo "GITHASH: $GITHASH" 180 | 181 | rm -rf git-describe-remote.sh 182 | #=========================================================================================== 183 | 184 | echo "DEBUG: making packages" 185 | 186 | # Get pcsx2-git 187 | # using the package 188 | mkdir "$PCSX2_WORKDIR" 189 | mkdir "$PKG_WORKDIR" 190 | 191 | #Delete a nobody's password (make it empty): 192 | passwd -d nobody 193 | 194 | # Allow the nobody passwordless sudo: 195 | printf 'nobody ALL=(ALL) ALL\n' | tee -a /etc/sudoers 196 | 197 | # change workind dir to nobody own: 198 | chown nobody.nobody "$PKG_WORKDIR" 199 | #=========================================================================================== 200 | 201 | # INFO: https://wiki.archlinux.org/index.php/Makepkg 202 | cd "$PKG_WORKDIR" || die "ERROR: Directory don't exist: $PKG_WORKDIR" 203 | #------------------ 204 | 205 | #echo "DEBUG: making libffi6 package" 206 | ## libffi6 from https://aur.archlinux.org/packages/libffi6/ 207 | #sudo -u nobody git clone https://aur.archlinux.org/libffi6.git 208 | #cd libffi6 209 | #sudo -u nobody makepkg --syncdeps --noconfirm 210 | #echo "* All files HERE: $(sudo -u nobody ls ./)" 211 | #mkdir output_pkg 212 | #mv libffi6*.pkg.tar ./output_pkg || die "ERROR: Can't create the libffi6 package" 213 | #pacman -U ./output_pkg/libffi6*.pkg.tar 214 | #cd .. 215 | #------------------ 216 | 217 | echo "DEBUG: making nvidia old 340xx package" 218 | # lib32-nvidia-340xx-utils from https://aur.archlinux.org/packages/lib32-nvidia-340xx-utils/ 219 | sudo -u nobody git clone https://aur.archlinux.org/lib32-nvidia-340xx-utils.git 220 | cd lib32-nvidia-340xx-utils 221 | sudo -u nobody makepkg --syncdeps --noconfirm 222 | #echo "* All files HERE: $(ls ./)" 223 | mv lib32-nvidia-340xx-utils*.pkg.tar ../ || die "ERROR: Can't create the lib32-nvidia-340xx-utils package" 224 | cd .. 225 | #------------------ 226 | 227 | echo "DEBUG: making nvidia old 390xx package" 228 | # lib32-nvidia-390xx-utils from https://aur.archlinux.org/packages/lib32-nvidia-390xx-utils/ 229 | sudo -u nobody git clone https://aur.archlinux.org/lib32-nvidia-390xx-utils.git 230 | cd lib32-nvidia-390xx-utils 231 | sudo -u nobody makepkg --syncdeps --noconfirm 232 | #echo "* All files HERE: $(ls ./)" 233 | mv lib32-nvidia-390xx-utils*.pkg.tar ../ || die "ERROR: Can't create the lib32-nvidia-390xx-utils package" 234 | cd .. 235 | #------------------ 236 | 237 | echo "DEBUG: making pcsx2 package" 238 | # pcsx2-git https://aur.archlinux.org/packages/pcsx2-git/ 239 | #sudo -u nobody git clone https://aur.archlinux.org/pcsx2-git.git 240 | sudo -u nobody mkdir pcsx2-git 241 | sudo -u nobody cat > "./pcsx2-git/PKGBUILD" << EOF 242 | # Maintainer: Maxime Gauduin 243 | # Contributor: josephgbr 244 | # Contributor: Themaister 245 | 246 | pkgname=pcsx2-git 247 | pkgver=$ARCHV 248 | pkgrel=1 249 | pkgdesc='A Sony PlayStation 2 emulator' 250 | arch=(x86_64) 251 | url=https://www.pcsx2.net 252 | license=( 253 | GPL2 254 | GPL3 255 | LGPL2.1 256 | LGPL3 257 | ) 258 | depends=( 259 | lib32-glew 260 | lib32-libaio 261 | lib32-libcanberra 262 | lib32-libjpeg-turbo 263 | lib32-libpcap 264 | lib32-libpulse 265 | lib32-portaudio 266 | lib32-sdl2 267 | lib32-soundtouch 268 | lib32-wxgtk2 269 | ) 270 | makedepends=( 271 | gcc 272 | cmake 273 | git 274 | png++ 275 | xorgproto 276 | ) 277 | provides=(pcsx2) 278 | conflicts=(pcsx2) 279 | source=(git+https://github.com/PCSX2/pcsx2.git) 280 | sha256sums=(SKIP) 281 | 282 | pkgver() { 283 | cd pcsx2 284 | 285 | git describe --tags | sed 's/^v//; s/-dev//; s/-/.r/; s/-g/./' 286 | } 287 | 288 | prepare() { 289 | patch -p0 < /tmp/evar.patch 290 | 291 | if [[ -d build ]]; then 292 | rm -rf build 293 | fi 294 | mkdir build 295 | 296 | # Disable ZeroGS and ZZOgl-PG 297 | rm -rf pcsx2/plugins/{zerogs,zzogl-pg} 298 | } 299 | 300 | build() { 301 | cd build 302 | 303 | export CC=gcc 304 | export CXX=g++ 305 | 306 | cmake ../pcsx2 \ 307 | -DCMAKE_TOOLCHAIN_FILE=cmake/linux-compiler-i386-multilib.cmake \\ 308 | -DCMAKE_BUILD_TYPE=Release \\ 309 | -DCMAKE_INSTALL_PREFIX=/usr \\ 310 | -DCMAKE_LIBRARY_PATH=/usr/lib32 \\ 311 | -DPLUGIN_DIR=/usr/lib32/pcsx2 \\ 312 | -DGAMEINDEX_DIR=/usr/share/pcsx2 \\ 313 | -DEXTRA_PLUGINS=ON \\ 314 | -DREBUILD_SHADER=ON \\ 315 | -DGLSL_API=ON \\ 316 | -DPACKAGE_MODE=ON \\ 317 | -DXDG_STD=ON \\ 318 | -DDISABLE_ADVANCE_SIMD=ON 319 | make 320 | } 321 | 322 | package() { 323 | make DESTDIR="\${pkgdir}" -C build install 324 | } 325 | 326 | # vim: ts=2 sw=2 et: 327 | 328 | EOF 329 | sudo -u nobody chmod a+rw "./pcsx2-git/PKGBUILD" 330 | 331 | 332 | echo "================================================" 333 | sudo -u nobody cat > "/tmp/evar.patch" << EOF 334 | diff -rcN pcsx2/pcsx2/gui/AppConfig.cpp pcsx2_new/pcsx2/gui/AppConfig.cpp 335 | *** pcsx2/pcsx2/gui/AppConfig.cpp 2020-02-23 23:38:36.939457634 -0300 336 | --- pcsx2_new/pcsx2/gui/AppConfig.cpp 2020-02-23 23:31:34.209485289 -0300 337 | *************** 338 | *** 173,178 **** 339 | --- 173,180 ---- 340 | 341 | wxDirName GetProgramDataDir() 342 | { 343 | + char * evar_curr = getenv( "PCSX2_GAMEINDEX_DIR" ); 344 | + if ( evar_curr != NULL ) return wxDirName( evar_curr ); 345 | #ifndef GAMEINDEX_DIR_COMPILATION 346 | return AppRoot(); 347 | #else 348 | *************** 349 | *** 221,226 **** 350 | --- 223,230 ---- 351 | 352 | wxDirName GetPlugins() 353 | { 354 | + char * evar_curr = getenv( "PCSX2_PLUGIN_DIR" ); 355 | + if ( evar_curr != NULL ) return wxDirName( evar_curr ); 356 | // Each linux distributions have his rules for path so we give them the possibility to 357 | // change it with compilation flags. -- Gregory 358 | #ifndef PLUGIN_DIR_COMPILATION 359 | 360 | EOF 361 | 362 | #------- 363 | cd pcsx2-git 364 | sudo -u nobody makepkg --syncdeps --noconfirm 365 | #echo "* All files HERE: $(sudo -u nobody ls ./)" 366 | mv *.pkg.tar ../ || die "ERROR: Can't create the pcsx2-git package" 367 | cd .. 368 | #------------------ 369 | 370 | mv *.pkg.tar ../"$PCSX2_WORKDIR" 371 | 372 | cd .. 373 | rm -rf "$PKG_WORKDIR" 374 | #=========================================================================================== 375 | 376 | cd "$PCSX2_WORKDIR" || die "ERROR: Directory don't exist: $PCSX2_WORKDIR" 377 | 378 | # Add a dependency library, such as freetype font library 379 | dependencys=$(pactree -s -u pcsx2-git |grep lib32 | xargs) 380 | 381 | mkdir cache 382 | 383 | pacman -Scc --noconfirm 384 | pacman -Syw --noconfirm --cachedir cache lib32-nvidia-utils lib32-alsa-lib lib32-alsa-plugins lib32-fontconfig lib32-freetype2 lib32-gcc-libs lib32-gettext lib32-giflib lib32-glu lib32-libjpeg-turbo lib32-libjpeg6-turbo lib32-libpng lib32-libpng12 lib32-libsm lib32-libxcomposite lib32-libxcursor lib32-libxdamage lib32-libxi lib32-libxml2 lib32-libxmu lib32-libxrandr lib32-libxslt lib32-libxxf86vm lib32-mesa lib32-mesa-libgl lib32-sdl2 lib32-libdrm lib32-libva lib32-portaudio lib32-sdl2 lib32-sdl2_image lib32-sdl2_mixer lib32-sdl2_ttf lib32-ladspa lib32-libao lib32-libpulse lib32-libcanberra-pulse lib32-glew lib32-mesa-demos lib32-libxinerama lib32-gtk2 lib32-wxgtk2 $dependencys || die "ERROR: Some packages not found!!!" 385 | #--------------------------------- 386 | 387 | #Save nvidia packages for later 388 | mv ./cache/lib32-nvidia-utils* ../ 389 | mv ./lib32-nvidia-390xx-utils* ../ 390 | mv ./lib32-nvidia-340xx-utils* ../ 391 | 392 | # Remove non lib32 pkgs before extracting (save pcsx2 package): 393 | #mv ./cache/pcsx2* ./ 394 | #echo "All files in ./cache: $(ls ./cache)" 395 | find ./cache -type f ! -name "lib32*" -exec rm {} \; -exec echo "Removing: {}" \; 396 | #find ./cache -type f -name "*x86_64*" -exec rm {} \; -exec echo "Removing: {}" \; #don't work because the name of lib32 multilib packages have the x86_64 too 397 | #mv ./pcsx2* ./cache/ 398 | echo "DEBUG: clean some packages" 399 | rm -rf ./cache/lib32-clang* 400 | rm -rf ./cache/lib32-nvidia-cg-toolkit* 401 | rm -rf ./cache/lib32-ocl-icd* 402 | rm -rf ./cache/lib32-opencl-mesa* 403 | echo "All files in ./cache: $(ls ./cache)" 404 | 405 | # Add the archlinux32 pentium4 packages (some deps): 406 | #get_archlinux32_pkgs ./cache/ gst-libav libwbclient tevent talloc ldb libbsd avahi libarchive smbclient libsoxr libssh vid.stab l-smash libtirpc 407 | get_archlinux32_pkgs ./cache/ gtk-engines gtk-engine-murrine 408 | #--------------------------------- 409 | 410 | # extracting *.pkg.tar.xz *.pkg.tar.zst... 411 | find ./cache -name '*.pkg.tar.xz' -exec tar --warning=no-unknown-keyword -xJf {} \; 412 | find ./cache -name '*.pkg.tar.zst' -exec tar --warning=no-unknown-keyword --zstd -xf {} \; 413 | 414 | ## Install vulkan tools: 415 | #wget -nv -c https://github.com/ferion11/libsutil/releases/download/vulkan32_tools_v1.0/vkcube32 416 | #wget -nv -c https://github.com/ferion11/libsutil/releases/download/vulkan32_tools_v1.0/vkcubepp32 417 | #wget -nv -c https://github.com/ferion11/libsutil/releases/download/vulkan32_tools_v1.0/vulkaninfo32 418 | #chmod +x vkcube32 vkcubepp32 vulkaninfo32 419 | #mv -n vkcube32 usr/bin 420 | #mv -n vkcubepp32 usr/bin 421 | #mv -n vulkaninfo32 usr/bin 422 | #---------------------------------------------- 423 | 424 | # PCSX2_WORKDIR cleanup 425 | rm -rf cache; rm -rf include; rm usr/lib32/{*.a,*.o}; rm -rf usr/lib32/pkgconfig; rm -rf share/man; rm -rf usr/include; rm -rf usr/share/{applications,doc,emacs,gtk-doc,java,licenses,man,info,pkgconfig}; rm usr/lib32/locale 426 | rm -rf boot; rm -rf dev; rm -rf home; rm -rf mnt; rm -rf opt; rm -rf proc; rm -rf root; rm sbin; rm -rf srv; rm -rf sys; rm -rf tmp; rm -rf var 427 | rm -rf usr/src; rm -rf usr/share; rm usr/sbin; rm -rf usr/local; rm usr/lib/{*.a,*.o} 428 | 429 | rm -rf usr/share/doc/PCSX2/*pdf 430 | #--------------------------------- 431 | 432 | # Install pcsx2 after clean (to keep icons, themes...) 433 | find ./ -maxdepth 1 -mindepth 1 -name 'pcsx2*.pkg.tar' -exec tar --warning=no-unknown-keyword -xf {} \; 434 | rm ./pcsx2* 435 | #=========================================================================================== 436 | 437 | # fix broken link libglx_indirect and others 438 | rm usr/lib32/libGLX_indirect.so.0 439 | ln -s libGLX_mesa.so.0 libGLX_indirect.so.0 440 | mv -n libGLX_indirect.so.0 usr/lib32 441 | 442 | rm usr/lib/libGLX_indirect.so.0 443 | ln -s ../lib32/libGLX_mesa.so.0 libGLX_indirect.so.0 444 | mv -n libGLX_indirect.so.0 usr/lib 445 | #-------- 446 | 447 | rm usr/lib32/libkeyutils.so 448 | ln -s libkeyutils.so.1 libkeyutils.so 449 | mv -n libkeyutils.so usr/lib32 450 | 451 | rm usr/lib/libkeyutils.so 452 | ln -s ../lib32/libkeyutils.so.1 libkeyutils.so 453 | mv -n libkeyutils.so usr/lib 454 | #-------- 455 | 456 | # workaround some of libs 457 | ln -s libva.so libva.so.1 458 | ln -s libva-drm.so libva-drm.so.1 459 | ln -s libva-x11.so libva-x11.so.1 460 | mv -n libva.so.1 usr/lib32 461 | mv -n libva-drm.so.1 usr/lib32 462 | mv -n libva-x11.so.1 usr/lib32 463 | #-------- 464 | 465 | # Find and link all gtk2 engines: 466 | if [ -d "usr/lib/gtk-2.0/2.10.0/engines" ]; then 467 | for lib_i in $(find "usr/lib/gtk-2.0/2.10.0/engines" -name *.so -exec basename {} \;); do 468 | ln -s ../../../../lib/gtk-2.0/2.10.0/engines/"$lib_i" "$lib_i" 469 | mv "$lib_i" usr/lib32/gtk-2.0/2.10.0/engines/ 470 | done 471 | fi 472 | 473 | #=========================================================================================== 474 | 475 | # Disable internal PulseAudio 476 | rm etc/asound.conf; rm -rf etc/modprobe.d/alsa.conf; rm -rf etc/pulse 477 | cd .. 478 | #=========================================================================================== 479 | 480 | # Get AppImage and setting $PCSX2_WORKDIR: 481 | wget -nv -c "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" -O appimagetool.AppImage 482 | chmod +x appimagetool.AppImage 483 | 484 | chmod +x AppRun 485 | 486 | cp AppRun $PCSX2_WORKDIR 487 | cp resource/* $PCSX2_WORKDIR 488 | #=========================================================================================== 489 | 490 | # Nvidia variation with lib32-nvidia-utils: 491 | PCSX2_NVIDIA_WORKDIR="pcsx2_nvidia_version" 492 | cp -rp "$PCSX2_WORKDIR" "$PCSX2_NVIDIA_WORKDIR" 493 | cd "$PCSX2_NVIDIA_WORKDIR" || die "ERROR: Directory don't exist: $PCSX2_NVIDIA_WORKDIR" 494 | mv ../lib32-nvidia-utils* ./ 495 | 496 | # Remove opensource nouveau: 497 | rm -rf usr/lib32/dri/nouveau* 498 | rm -rf usr/lib32/libdrm_nouveau* 499 | 500 | # extracting *tar.xz and *tar.zst 501 | find ./ -maxdepth 1 -mindepth 1 -name '*.pkg.tar.xz' -exec tar --warning=no-unknown-keyword -xJf {} \; 502 | find ./ -maxdepth 1 -mindepth 1 -name '*.pkg.tar.zst' -exec tar --warning=no-unknown-keyword --zstd -xf {} \; 503 | 504 | rm -rf lib32-nvidia-utils* 505 | cd .. 506 | #=========================================================================================== 507 | 508 | # Nvidia Legacy variation with lib32-nvidia-390xx-utils: 509 | PCSX2_NVIDIA_390xx_WORKDIR="pcsx2_nvidia_390xx_version" 510 | cp -rp "$PCSX2_WORKDIR" "$PCSX2_NVIDIA_390xx_WORKDIR" 511 | cd "$PCSX2_NVIDIA_390xx_WORKDIR" || die "ERROR: Directory don't exist: $PCSX2_NVIDIA_390xx_WORKDIR" 512 | mv ../lib32-nvidia-390xx-utils* ./ 513 | 514 | # Remove opensource nouveau: 515 | rm -rf usr/lib32/dri/nouveau* 516 | rm -rf usr/lib32/libdrm_nouveau* 517 | 518 | # extracting *.pkg.tar ... 519 | find ./ -maxdepth 1 -mindepth 1 -name '*.pkg.tar' -exec tar --warning=no-unknown-keyword -xf {} \; 520 | 521 | rm -rf lib32-nvidia-390xx-utils* 522 | cd .. 523 | #=========================================================================================== 524 | 525 | # Nvidia Legacy variation with lib32-nvidia-340xx-utils: 526 | PCSX2_NVIDIA_340xx_WORKDIR="pcsx2_nvidia_340xx_version" 527 | cp -rp "$PCSX2_WORKDIR" "$PCSX2_NVIDIA_340xx_WORKDIR" 528 | cd "$PCSX2_NVIDIA_340xx_WORKDIR" || die "ERROR: Directory don't exist: $PCSX2_NVIDIA_340xx_WORKDIR" 529 | mv ../lib32-nvidia-340xx-utils* ./ 530 | 531 | # Remove opensource nouveau: 532 | rm -rf usr/lib32/dri/nouveau* 533 | rm -rf usr/lib32/libdrm_nouveau* 534 | 535 | # extracting *.pkg.tar ... 536 | find ./ -maxdepth 1 -mindepth 1 -name '*.pkg.tar' -exec tar --warning=no-unknown-keyword -xf {} \; 537 | 538 | rm -rf lib32-nvidia-340xx-utils* 539 | cd .. 540 | #=========================================================================================== 541 | 542 | # AppImage generation: 543 | ./appimagetool.AppImage --appimage-extract 544 | 545 | export ARCH=x86_64; squashfs-root/AppRun -v $PCSX2_WORKDIR -u 'gh-releases-zsync|ferion11|pcsx2_Appimage|continuous|pcsx2-${VERSION}-${TYPE}-${RELEASE}-${GITHASH}-*arch*.AppImage.zsync' pcsx2-${VERSION}-${TYPE}-${RELEASE}-${GITHASH}-${ARCH}.AppImage 546 | export ARCH=x86_64; squashfs-root/AppRun -v $PCSX2_NVIDIA_WORKDIR -u 'gh-releases-zsync|ferion11|pcsx2_Appimage|continuous|pcsx2_NVIDIA-${VERSION}-${TYPE}-${RELEASE}-${GITHASH}-*arch*.AppImage.zsync' pcsx2_NVIDIA-${VERSION}-${TYPE}-${RELEASE}-${GITHASH}-${ARCH}.AppImage 547 | export ARCH=x86_64; squashfs-root/AppRun -v $PCSX2_NVIDIA_390xx_WORKDIR -u 'gh-releases-zsync|ferion11|pcsx2_Appimage|continuous|pcsx2_NVIDIA390xx-${VERSION}-${TYPE}-${RELEASE}-${GITHASH}-*arch*.AppImage.zsync' pcsx2_NVIDIA390xx-${VERSION}-${TYPE}-${RELEASE}-${GITHASH}-${ARCH}.AppImage 548 | export ARCH=x86_64; squashfs-root/AppRun -v $PCSX2_NVIDIA_340xx_WORKDIR -u 'gh-releases-zsync|ferion11|pcsx2_Appimage|continuous|pcsx2_NVIDIA340xx-${VERSION}-${TYPE}-${RELEASE}-${GITHASH}-*arch*.AppImage.zsync' pcsx2_NVIDIA340xx-${VERSION}-${TYPE}-${RELEASE}-${GITHASH}-${ARCH}.AppImage 549 | 550 | ## tmp name: 551 | #export ARCH=x86_64; squashfs-root/AppRun -v $PCSX2_WORKDIR -u 'gh-releases-zsync|ferion11|pcsx2_Appimage|continuous|pcsx2-${VERSION}-${TYPE}-*arch*.AppImage.zsync' pcsx2-${VERSION}-${TYPE}-${ARCH}.AppImage 552 | #export ARCH=x86_64; squashfs-root/AppRun -v $PCSX2_NVIDIA_WORKDIR -u 'gh-releases-zsync|ferion11|pcsx2_Appimage|continuous|pcsx2_NVIDIA-${VERSION}-${TYPE}-*arch*.AppImage.zsync' pcsx2_NVIDIA-${VERSION}-${TYPE}-${ARCH}.AppImage 553 | #export ARCH=x86_64; squashfs-root/AppRun -v $PCSX2_NVIDIA_390xx_WORKDIR -u 'gh-releases-zsync|ferion11|pcsx2_Appimage|continuous|pcsx2_NVIDIA390xx-${VERSION}-${TYPE}-*arch*.AppImage.zsync' pcsx2_NVIDIA390xx-${VERSION}-${TYPE}-${ARCH}.AppImage 554 | #export ARCH=x86_64; squashfs-root/AppRun -v $PCSX2_NVIDIA_340xx_WORKDIR -u 'gh-releases-zsync|ferion11|pcsx2_Appimage|continuous|pcsx2_NVIDIA340xx-${VERSION}-${TYPE}-*arch*.AppImage.zsync' pcsx2_NVIDIA340xx-${VERSION}-${TYPE}-${ARCH}.AppImage 555 | 556 | 557 | echo "Packing tar result file..." 558 | rm -rf appimagetool.AppImage 559 | tar cvf result.tar *.AppImage *.zsync 560 | echo "* result.tar size: $(du -hs result.tar)" 561 | --------------------------------------------------------------------------------