diff options
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | PKGBUILD | 48 | ||||
-rw-r--r-- | gog-inscryption.desktop | 1 | ||||
-rw-r--r-- | gog-inscryption.install | 36 | ||||
-rw-r--r-- | inscryption.bash | 74 |
6 files changed, 56 insertions, 126 deletions
@@ -1,26 +1,18 @@ pkgbase = gog-inscryption - pkgdesc = Roguelike deck-building game. GOG version, uses Wine. - pkgver = 1.09.54424 + pkgdesc = Roguelike deck-building game. GOG version. + pkgver = 1.10.57447 pkgrel = 1 url = https://www.inscryption.com/ - install = gog-inscryption.install arch = x86_64 license = custom - makedepends = innoextract makedepends = lgogdownloader - depends = wine - depends = wine-mono - optdepends = lib32-alsa-lib: sound support for ALSA - optdepends = lib32-libpulse: sound support for PulseAudio conflicts = gog-inscryption-demo options = !strip - source = setup_inscryption_1.09_(54424).exe::gogdownloader://1224800338/en1installer0 - source = setup_inscryption_1.09_(54424)-1.bin::gogdownloader://1224800338/en1installer1 + source = inscryption_1.10_(57447).sh::gogdownloader://1224800338/en3installer0 source = gog-inscryption.desktop source = inscryption.bash - sha512sums = 91743b0bfa8ad7a331f7273b6dfe72b10eb06fff435bbb5fff7006ef8b073295ac938a78af8815003b44148ace1b4646f7032dfdae4898b8d8a309fd2d2b189d - sha512sums = 74d04d68fb8bc0e2cf6355b5f71f072438281bb65da1508f728b3da78aa7406b60669d5e1b6cc4e8a6b1230eda38e08f33a0f4b16679aa2fc0cd911974947ecc - sha512sums = 65226f2e071bc7dad63d683d6ad5f255dff354ca6c5478fa2e606933383af48d2ee2b2fa1450936227a59e1831f2ff44293d00a835daa98aa215b6e50755a7bf - sha512sums = 0a8db49802625c2207a2efae3b498f53547c79f0b003e6ca020c7aa2e0870e4a6393688d4b1e244f23088cbeab830112bf925c0f464fc58e97c5b5d0582e2232 + sha512sums = 4a8cec6766bbe77a0cb8bb840fa6bd9212989caa2858cf200a572e2b2df45b2189d2dacbcae3ce7fc67fe94622dc16467bb5634d0904388ec36ab618df85b379 + sha512sums = 5363b939e602895f082752f3c29716f81e51235249b832f945744b12b23b3dd6dd3220201ac73f69c7f3addd18ff322951fa430cb11f72357373e7f7ad3505dd + sha512sums = 921be06790239b5fce6489f48fce737259d65dc922e1932b1ebe0db5347ebce4badd635c259c41ebb985ca1067445fad4735fbc9bad0aad18dff6b9e660422be pkgname = gog-inscryption diff --git a/.gitignore b/.gitignore index 18cc61931927..2041c2991ef1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ /.vscode /src /pkg -/setup_* +*.log *.pkg.* *.tar.* +inscryption_*.sh @@ -1,23 +1,17 @@ # Maintainer: Claudia Pellegrino <aur ät cpellegrino.de> pkgname="gog-inscryption" -pkgver=1.09.54424 +pkgver=1.10.57447 pkgrel=1 -pkgdesc='Roguelike deck-building game. GOG version, uses Wine.' +pkgdesc='Roguelike deck-building game. GOG version.' arch=('x86_64') url='https://www.inscryption.com/' license=('custom') -depends=('wine' 'wine-mono') -makedepends=('innoextract' 'lgogdownloader') -optdepends=( - 'lib32-alsa-lib: sound support for ALSA' - 'lib32-libpulse: sound support for PulseAudio' -) +makedepends=('lgogdownloader') conflicts=('gog-inscryption-demo') options=('!strip') -install="${pkgname}.install" _shortname="${pkgname#gog-}" -_setup_basename="setup_${_shortname}_${pkgver%.*}_(${pkgver##*.})" +_setup_basename="${_shortname}_${pkgver%.*}_(${pkgver##*.})" # Need to hard-code the ID because lgogdownloader would force a # prompt whenever we attempt to download `inscryption` while our @@ -25,39 +19,37 @@ _setup_basename="setup_${_shortname}_${pkgver%.*}_(${pkgver##*.})" _gog_id='1224800338' source=( - "${_setup_basename}.exe` - `::gogdownloader://${_gog_id}/en1installer0" - "${_setup_basename}-1.bin` - `::gogdownloader://${_gog_id}/en1installer1" + "${_setup_basename}.sh` + `::gogdownloader://${_gog_id}/en3installer0" "${pkgname}.desktop" "${_shortname}.bash" ) sha512sums=( - '91743b0bfa8ad7a331f7273b6dfe72b10eb06fff435bbb5fff7006ef8b073295ac938a78af8815003b44148ace1b4646f7032dfdae4898b8d8a309fd2d2b189d' - '74d04d68fb8bc0e2cf6355b5f71f072438281bb65da1508f728b3da78aa7406b60669d5e1b6cc4e8a6b1230eda38e08f33a0f4b16679aa2fc0cd911974947ecc' - '65226f2e071bc7dad63d683d6ad5f255dff354ca6c5478fa2e606933383af48d2ee2b2fa1450936227a59e1831f2ff44293d00a835daa98aa215b6e50755a7bf' - '0a8db49802625c2207a2efae3b498f53547c79f0b003e6ca020c7aa2e0870e4a6393688d4b1e244f23088cbeab830112bf925c0f464fc58e97c5b5d0582e2232' + '4a8cec6766bbe77a0cb8bb840fa6bd9212989caa2858cf200a572e2b2df45b2189d2dacbcae3ce7fc67fe94622dc16467bb5634d0904388ec36ab618df85b379' + '5363b939e602895f082752f3c29716f81e51235249b832f945744b12b23b3dd6dd3220201ac73f69c7f3addd18ff322951fa430cb11f72357373e7f7ad3505dd' + '921be06790239b5fce6489f48fce737259d65dc922e1932b1ebe0db5347ebce4badd635c259c41ebb985ca1067445fad4735fbc9bad0aad18dff6b9e660422be' ) DLAGENTS+=('gogdownloader::/usr/bin/lgogdownloader --download-file=%u -o %o') PKGEXT=.pkg.tar -prepare() { - mkdir -p "${srcdir}/${_shortname}" - cd "${srcdir}/${_shortname}" - innoextract -c -m --progress=1 "${srcdir}/${_setup_basename}.exe" -} - package() { + echo >&2 'Packaging license' + install -D -m 644 -T \ + "${srcdir}/data/noarch/docs/End User License Agreement.txt" \ + "${pkgdir}/usr/share/licenses/${pkgname}/End User License Agreement.txt" + echo >&2 'Packaging game icon' install -D -m 644 -T \ - "${srcdir}/${_shortname}/app/goggame-"${_gog_id?}".ico" \ - "${pkgdir}/usr/share/pixmaps/${pkgname}.ico" + "${srcdir}/data/noarch/support/icon.png" \ + "${pkgdir}/usr/share/pixmaps/${pkgname}.png" echo >&2 'Packaging game data' - mkdir -p "${pkgdir}/opt/" - mv "${srcdir}/${_shortname}" "${pkgdir}/opt/${_shortname}" + mkdir -p "${pkgdir}/opt/${_shortname}" + cp -R --preserve=mode \ + "${srcdir}"/{data,meta,scripts} \ + "${pkgdir}/opt/${_shortname}" echo >&2 'Packaging launcher' install -D -m 755 -T \ diff --git a/gog-inscryption.desktop b/gog-inscryption.desktop index 27c9ded77bb0..a6b57662b147 100644 --- a/gog-inscryption.desktop +++ b/gog-inscryption.desktop @@ -6,6 +6,5 @@ Icon=gog-inscryption Type=Application Terminal=false StartupNotify=true -StartupWMClass=Inscryption.exe Categories=Game; Encoding=UTF-8 diff --git a/gog-inscryption.install b/gog-inscryption.install deleted file mode 100644 index 5995073fc5da..000000000000 --- a/gog-inscryption.install +++ /dev/null @@ -1,36 +0,0 @@ -post_install() { - cat >&2 << 'EOF' - - ## ## - ## Wine will be used to run this Windows game; ## - ## therefore, not everything may work properly. ## - ## ## - ## Please see: ## - -> https://wiki.archlinux.org/title/Wine#Sound - - ## ## - ## to figure out which optional dependencies you ## - ## need to enable sound. ## - ## Also see: ## - -> https://appdb.winehq.org/objectManager.php?sClass=application&iId=20583 - - ## for details and known limitations. ## - ## ## - -EOF -} - -post_remove() { - cat >&2 << 'EOF' - - ## ## - ## To completely remove user game data, delete ## - ## the following directory: ## - ## ## - ## ~/.local/share/inscryption ## - ## ## - -EOF -} diff --git a/inscryption.bash b/inscryption.bash index babb6dcbff4d..d7c97703f9ef 100644 --- a/inscryption.bash +++ b/inscryption.bash @@ -2,57 +2,39 @@ set -eu PKGNAME='inscryption' -APPNAME_UPSTREAM='Inscryption' -EXE="C:/Program Files/GOG Games/${APPNAME_UPSTREAM}/Inscryption.exe" PKG_USER_DATA_HOME="${XDG_DATA_HOME:-"${HOME}/.local/share"}/${PKGNAME}" echo >&2 "Initializing" -export WINEARCH='win64' -export WINEPREFIX="${PKG_USER_DATA_HOME}/wine" +APPDIR_SOURCE='/opt/inscryption/data/noarch' +USER_OVERLAYDIR="${PKG_USER_DATA_HOME}/overlay" -APPDIR_SOURCE="/opt/${PKGNAME}" -APPDIR_PARENT="${WINEPREFIX}/drive_c/Program Files/GOG Games" -APPDIR_TARGET="${APPDIR_PARENT}/${APPNAME_UPSTREAM}" -TARGET_HOME="${WINEPREFIX}/drive_c/users/$(whoami)" +echo >&2 "Refreshing symlinks from ${USER_OVERLAYDIR}" -USER_APPDATADIR_SOURCE="${PKG_USER_DATA_HOME}/userappdata" -USER_APPDATADIR_TARGET="${TARGET_HOME}/AppData/LocalLow/Daniel Mullins Games" -USER_OVERLAYDIR="${PKG_USER_DATA_HOME}/overlay" +echo >&2 "==> Creating ${USER_OVERLAYDIR}" +mkdir >&2 -pv "${USER_OVERLAYDIR}/game" + +echo >&2 "==> Linking from ${APPDIR_SOURCE}" +cd "${USER_OVERLAYDIR}" +ln >&2 -fnsv "${APPDIR_SOURCE}/start.sh" 'start.sh' +ln >&2 -fnsv "${APPDIR_SOURCE}/support" 'support' +ln >&2 -fnsv "${APPDIR_SOURCE}/game/Inscryption_Data" 'game/Inscryption_Data' +ln >&2 -fnsv "${APPDIR_SOURCE}/game/UnityPlayer.so" 'game/UnityPlayer.so' + +# Copy the launcher binary because symlinking would cause it to +# pick up its own real path +cp -vP --preserve=mode "${APPDIR_SOURCE}/game/Inscryption.x86_64" 'game/' + +echo >&2 "==> Done" + +# Migrate saved game files from the earlier, Wine-based package; +# the native Linux version of Inscryption expects the saved game to +# live in the `game` subdirectory +echo >&2 "Migrating saved game files from previous version" +find "${USER_OVERLAYDIR}" -mindepth 1 -maxdepth 1 -name '*.gwsave' \ + -exec mv -nv '{}' "${USER_OVERLAYDIR}/game/" ';' >&2 -echo >&2 "Checking for Wine prefix" -if ! [ -d "${WINEPREFIX}" ]; then - echo >&2 "==> Bootstrapping Wine prefix: ${WINEPREFIX}" - mkdir >&2 -pv "${WINEPREFIX}" - wineboot -i 2>&1 - rm >&2 -fv "${WINEPREFIX}/dosdevices/z:" - echo >&2 "==> Done" -fi - -echo >&2 "Checking user data directory" -if ! [ -h "${USER_APPDATADIR_TARGET}/${APPNAME_UPSTREAM}" ]; then - echo >&2 "==> Creating ${USER_APPDATADIR_TARGET}" - mkdir >&2 -pv "${USER_APPDATADIR_TARGET}" - cd "${USER_APPDATADIR_TARGET}" - echo >&2 "==> Linking from ${USER_APPDATADIR_SOURCE}/${APPNAME_UPSTREAM}" - mkdir >&2 -pv "${USER_APPDATADIR_SOURCE}/${APPNAME_UPSTREAM}" - ln >&2 -fnsv "${USER_APPDATADIR_SOURCE}/${APPNAME_UPSTREAM}" -fi - -echo >&2 "Checking app directory" -if ! [ -h "${APPDIR_TARGET}" ]; then - echo >&2 "==> Creating ${APPDIR_PARENT}" - mkdir >&2 -pv "${APPDIR_PARENT}" - echo >&2 "==> Creating ${USER_OVERLAYDIR}" - mkdir >&2 -pv "${USER_OVERLAYDIR}" - echo >&2 "==> Linking from ${USER_OVERLAYDIR}" - ln >&2 -fnsv "${USER_OVERLAYDIR}" "${APPDIR_TARGET}" - cd "${APPDIR_TARGET}/" - echo >&2 "==> Linking from ${APPDIR_SOURCE}" - find "${APPDIR_SOURCE}" -mindepth 1 -maxdepth 1 -exec ln >&2 -fnsv '{}' ';' - echo >&2 "==> Done" -fi - -echo >&2 "Launching app with Wine" -wine 2>&1 "${EXE}" +echo >&2 "Launching app" +cd "${USER_OVERLAYDIR}" +./start.sh "$@" echo >&2 "==> Finished" |