summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhillip Schichtel2022-12-11 16:26:41 +0100
committerPhillip Schichtel2022-12-11 16:29:35 +0100
commite2666de55aa5ee1135badec12b506c003045a32d (patch)
tree2931c53968f966a516e71e40a288e20407991060
parent63ef4af1187d6c16269a810120d313256f51a148 (diff)
downloadaur-e2666de55aa5ee1135badec12b506c003045a32d.tar.gz
redo all the things
* include the bundled jre7 * drop the post-install script * move the state directory from .starsector to .local/share/starsector * add support for customizing jvm args by supplying a bash script at .config/starsector/statup.sj
-rw-r--r--.SRCINFO9
-rw-r--r--.gitignore7
-rw-r--r--Makefile12
-rw-r--r--PKGBUILD23
-rw-r--r--starsector.install27
-rw-r--r--starsector.sh59
6 files changed, 67 insertions, 70 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 61c009542b68..10e703074d10 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,15 +1,11 @@
-# Generated by mksrcinfo v8
-# Sat Feb 12 22:44:40 UTC 2022
pkgbase = starsector
pkgdesc = Starsector (formerly “Starfarer”) is an in-development open-world single-player space-combat, roleplaying, exploration, and economic game.
pkgver = 0.95.1a_RC6
- pkgrel = 1
+ pkgrel = 2
url = http://fractalsoftworks.com/
- install = starsector.install
arch = i686
arch = x86_64
license = custom
- depends = java-runtime=7
depends = openal
depends = bash
depends = desktop-file-utils
@@ -20,8 +16,7 @@ pkgbase = starsector
source = starsector.desktop
sha256sums = 3da88bd5198a1c35ab557ff11973c4e6fa243c13936a1faf1a3867d78ffefd93
sha256sums = 0d9a2382e1c15e3d471b88eb3770c68f5dd93edc81710e511fd892def9f2ab16
- sha256sums = 1d59f7e2855783c880ad1d885834f85defd5fd813e81c5f78b0c3e911905c5c8
+ sha256sums = 1ecffd6bd17c437157998b334fbee6a273f35dd478943cd43a24416674982721
sha256sums = becc92483d9599672b75d8b00216a64dd8fda38cfcfccd8e735238aa0ce6d8b6
pkgname = starsector
-
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..453715c6eacb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+starsector_*
+LICENSE
+*.asc
+*.tar.*
+src/
+pkg/
+*.pdf
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000000..059c9af31da3
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,12 @@
+
+.SRCINFO: PKGBUILD
+ makepkg --printsrcinfo > .SRCINFO
+
+package: PKGBUILD .SRCINFO
+ updpkgsums
+ makepkg --syncdeps --rmdeps --force --clean --noconfirm
+
+all: package
+
+clean:
+ rm -Rv .SRCINFO *.tar.* src/ pkg/ 2> /dev/null || true
diff --git a/PKGBUILD b/PKGBUILD
index 1c9d4e3c09c8..49ceaad550cf 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,23 +1,21 @@
-# Maintainer: Erdbeerkaese <erbeerkaese dot arch at gmail dot com>
+# Maintainer: Phillip Schichtel <phillip@schich.tel>
pkgname=starsector
pkgver=0.95.1a_RC6
-pkgrel=1
+pkgrel=2
pkgdesc="Starsector (formerly “Starfarer”) is an in-development open-world single-player space-combat, roleplaying, exploration, and economic game."
arch=('i686' 'x86_64')
url="http://fractalsoftworks.com/"
license=('custom')
-depends=('java-runtime=7' 'openal' 'bash' 'desktop-file-utils')
-install='starsector.install'
+depends=('openal' 'bash' 'desktop-file-utils')
replaces=('starfarer')
-source=(
-http://s3.amazonaws.com/fractalsoftworks/starsector/starsector_linux-${pkgver//_/-}.zip
-${pkgname}.pdf::http://www.fractalsoftworks.com/starfarer/docs/StarfarerManual.pdf
-starsector.sh
-starsector.desktop)
+source=(http://s3.amazonaws.com/fractalsoftworks/starsector/starsector_linux-${pkgver//_/-}.zip
+ ${pkgname}.pdf::http://www.fractalsoftworks.com/starfarer/docs/StarfarerManual.pdf
+ starsector.sh
+ starsector.desktop)
sha256sums=('3da88bd5198a1c35ab557ff11973c4e6fa243c13936a1faf1a3867d78ffefd93'
'0d9a2382e1c15e3d471b88eb3770c68f5dd93edc81710e511fd892def9f2ab16'
- '1d59f7e2855783c880ad1d885834f85defd5fd813e81c5f78b0c3e911905c5c8'
+ 'ba7eb4fc35d116c6b699ae4abf1e31f9709b06ea38950a731b1227d1f16e964f'
'becc92483d9599672b75d8b00216a64dd8fda38cfcfccd8e735238aa0ce6d8b6')
package() {
install -d "$pkgdir/usr/share/$pkgname" \
@@ -33,6 +31,10 @@ package() {
cd "$srcdir/$pkgname"
+ cd jre_linux
+ find -type f -exec install -D "{}" "$pkgdir/usr/lib/$pkgname/jre/{}" \;
+ cd ..
+
install -Dm644 *.jar "$pkgdir/usr/share/java/$pkgname"
install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
@@ -45,4 +47,3 @@ package() {
find data graphics sounds -type f -print0 | xargs -0 chmod 644
cp -R data graphics sounds "$pkgdir/usr/share/$pkgname/"
}
-# vim:set ts=2 sw=2 et:
diff --git a/starsector.install b/starsector.install
deleted file mode 100644
index 0b12434b6d69..000000000000
--- a/starsector.install
+++ /dev/null
@@ -1,27 +0,0 @@
-## arg 1: the new package version
-post_install() {
- update-desktop-database -q
- echo ">>> PACKAGE NOTES"
- echo ">>> --------------"
- echo ">>> This is the full version of the game, you need a serial key to play it."
- echo ">>> You can buy a serial key at http://fractalsoftworks.com/preorder/"
- echo ""
- echo ">>> RELEASE NOTES:"
- echo ">>> --------------"
- echo ">>> http://fractalsoftworks.com/forum/index.php?topic=11477.0"
-}
-
-## arg 1: the new package version
-## arg 2: the old package version
-post_upgrade() {
- update-desktop-database -q
- echo ">>> RELEASE NOTES:"
- echo ">>> --------------"
- echo ">>> http://fractalsoftworks.com/forum/index.php?topic=11477.0"
-}
-
-post_remove() {
- update-desktop-database -q
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/starsector.sh b/starsector.sh
index d505952bc755..c94d47ce2283 100644
--- a/starsector.sh
+++ b/starsector.sh
@@ -1,38 +1,47 @@
-#!/bin/bash
+#!/usr/bin/env bash
-# Java 7 is the only version of Java supported by starsector.
-JAVA7=/usr/lib/jvm/$(archlinux-java status | grep -m 1 java-7 | sed 's/^ *//')/bin
-[ -d ${JAVA7} ] && export PATH=${JAVA7}:${PATH}
+set -euo pipefail
# fix for users of special IM modules
unset XMODIFIERS GTK_IM_MODULE QT_IM_MODULE
-unset CLASSPATH
-BASEPATH=~/.starsector
-SAVEPATH=${BASEPATH}/saves
-MODPATH=${BASEPATH}/mods
-SCRPATH=${BASEPATH}/screenshots
-LOGPATH=${BASEPATH}/
+state_dir="${XDG_STATE_HOME:-"$HOME/.local/share"}/starsector"
+saves_path="${state_dir}/saves"
+mods_path="${state_dir}/mods"
+screenshots_path="${state_dir}/screenshots"
+log_path="$state_dir"
-[ -d ${BASEPATH} ] || mkdir ${BASEPATH}
-[ -d ${SAVEPATH} ] || mkdir ${SAVEPATH}
-[ -d ${MODPATH} ] || mkdir ${MODPATH}
-[ -d ${SCRPATH} ] || mkdir ${SCRPATH}
+mkdir -p "$saves_path"
+mkdir -p "$mods_path"
+mkdir -p "$screenshots_path"
+mkdir -p "$log_path"
-for jarfile in /usr/share/java/starsector/*.jar ; do
- CLASSPATH=${CLASSPATH}:${jarfile}
-done
+classpath="$(find '/usr/share/java/starsector' -type f -name '*.jar' | paste -sd ':')"
+config_path="${XDG_CONFIG_HOME:-"$HOME/.config"}/starsector"
+startup_config="${config_path}/startup.sh"
+
+jvm_args=(-Xms1536m -Xmx1536m -Xss2048k)
+program_args=()
+
+if [ -r "$startup_config" ]
+then
+ . "$startup_config"
+fi
+
+export JAVA_HOME='/usr/lib/starsector/jre'
cd /usr/share/starsector
-exec java -server \
+exec "$JAVA_HOME/bin/java" -server \
-XX:CompilerThreadPriority=1 \
-XX:+CompilerThreadHintNoPreempt \
-Djava.library.path=/usr/lib/starsector \
- -Xms1536m -Xmx1536m -Xss2048k -classpath ${CLASSPATH} \
- -Dcom.fs.starfarer.settings.paths.saves=${SAVEPATH} \
- -Dcom.fs.starfarer.settings.paths.screenshots=${SCRPATH} \
- -Dcom.fs.starfarer.settings.paths.mods=${MODPATH} \
- -Dcom.fs.starfarer.settings.paths.logs=${LOGPATH} \
+ -classpath "${classpath}" \
+ -Dcom.fs.starfarer.settings.paths.saves="${saves_path}" \
+ -Dcom.fs.starfarer.settings.paths.screenshots="${screenshots_path}" \
+ -Dcom.fs.starfarer.settings.paths.mods="${mods_path}" \
+ -Dcom.fs.starfarer.settings.paths.logs="${log_path}" \
-Dcom.fs.starfarer.settings.linux=true \
- com.fs.starfarer.StarfarerLauncher
-# vim:set ts=2 sw=2 et:
+ "${jvm_args[@]}" \
+ com.fs.starfarer.StarfarerLauncher \
+ "${program_args[@]}"
+