Package Details: shattered-pixel-dungeon 1.3.2.REL-1

Git Clone URL: (read-only, click to copy)
Package Base: shattered-pixel-dungeon
Description: Shattered fork of the popular rogue-like game
Upstream URL:
Licenses: GPL3
Conflicts: shattered-pixel-dungeon-git
Submitter: petercxy
Maintainer: petercxy (lilac)
Last Packager: lilac
Votes: 15
Popularity: 0.112943
First Submitted: 2018-05-11 11:51 (UTC)
Last Updated: 2022-07-27 22:25 (UTC)

Latest Comments

kraftwerk28 commented on 2022-03-15 14:40 (UTC)

I had to replace /usr/lib/jvm/java-11-openjdk/jre/bin with /usr/lib/jvm/java-11-openjdk/bin and add export JAVA_HOME="/usr/lib/jvm/java11-openjdk" inside build() function.

patlefort commented on 2021-12-23 09:24 (UTC)

I think there is a small error: the path /usr/lib/jvm/java-11-openjdk/jre/bin should be /usr/lib/jvm/java-11-openjdk/bin as the former doesn't exists.

petercxy commented on 2021-10-10 15:23 (UTC)

@noel09 Strangely it seems to be working fine here. I think there might be some missing dependencies (that happens to be installed on most people's deployment but not yours) -- let me check later what that is.

noel09 commented on 2021-10-10 15:21 (UTC)

I'm having trouble running this package.

Exception: java.lang.NullPointerException thrown from the UncaughtExceptionHandler in thread "main"

In an attempt to take a peek at whats going on ive tried:

jar=$(pacman -Qql shattered-pixel-dungeon | grep jar$)
main=com.shatteredpixel.shatteredpixeldungeon.desktop.DesktopLauncher  # as specified in META-INF/MANIFEST.MF

# mkdir "$dir" && cd "$dir" && jar --extract --file "$jar" || exit
jdb -sourcepath "$dir" -classpath "$jar" "$main"

This yielded an UnsatisfiedLinkError from one of the included libraries

Initializing jdb ...
> run
run com.shatteredpixel.shatteredpixeldungeon.desktop.DesktopLauncher
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
VM Started:
Exception occurred: java.lang.UnsatisfiedLinkError (uncaught)"thread=main", org.lwjgl.system.Library.loadSystem(), line=126 bci=346

main[1] where
[1] org.lwjgl.system.Library.loadSystem (
[2] org.lwjgl.system.Library.loadSystem (
[3] org.lwjgl.system.Library.<clinit> (
[4] org.lwjgl.system.MemoryUtil.<clinit> (
[5] org.lwjgl.system.Pointer$Default.<clinit> (
[6] org.lwjgl.system.Callback.<clinit> (
[7] com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.initializeGlfw (
[8] com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init> (
[9] com.shatteredpixel.shatteredpixeldungeon.desktop.DesktopLauncher.main (

petercxy commented on 2021-09-08 11:51 (UTC)

@reclusivesage I should probably hard-code JAVA_HOME path for gradle as well in a future release.

reclusivesage commented on 2021-09-06 22:21 (UTC)

@twintowers Thank you, it worked. (I tried uninstalling java-8-openjdk or something like that to no avail.)

twintowers commented on 2021-09-06 21:06 (UTC)

@reclusivesage "archlinux-java status" should list available Java environments. "sudo archlinux-java set java-11-openjdk" will change it to Java 11 if installed.

reclusivesage commented on 2021-09-05 04:27 (UTC) (edited on 2021-09-05 04:28 (UTC) by reclusivesage)

I think I've been having the same issue for the past 4 versions that users rich-o and anwait described.

How do I either change the JAVA_HOME environment variable or change in

==> Starting build()...

Welcome to Gradle 7.2!

Here are the highlights of this release:
 - Toolchain support for Scala
 - More cache hits when Java source files have platform-specific line endings
 - More resilient remote HTTP build cache behavior

For more details see

Starting a Gradle Daemon (subsequent builds will be faster)

FAILURE: Build failed with an exception.

* Where:
Build file '/home/uSER/AUR/shattered-pixel-dungeon/src/shattered-pixel-dungeon-1.0.3/android/build.gradle' line: 1

* What went wrong:
A problem occurred evaluating project ':android'.
> Failed to apply plugin ''.
   > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
     You can try some of the following options:
       - changing the IDE settings.
       - changing the JAVA_HOME environment variable.
       - changing `` in ``.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at

==> ERROR: A failure occurred in build().

petercxy commented on 2021-08-28 11:43 (UTC)

@grawlinson It's a hack to make the upstream versioning scheme (X.X.X -> X.X.X.a -> X.X.X.b) work with pacman's version comparing algorithm.

grawlinson commented on 2021-08-28 03:41 (UTC)

What’s up with the “REL” naming scheme?

petercxy commented on 2021-08-21 11:46 (UTC)

@anwait @rich_o I'm sorry, I forgot to actually change the hardcoded JDK paths. I'll fix this.

rich_o commented on 2021-08-21 09:57 (UTC)

This package does currently not build, as it forces the use of JDK8, while the project expects JDK11:

Failed to apply plugin ''. Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

anwait commented on 2021-08-21 09:56 (UTC) (edited on 2021-08-21 10:04 (UTC) by anwait)

@petercxy, the build script has jdk 8 hardcoded in it, it should be also updated to jdk 11, additionally, the lanching script also relies on jdk 8 and should be updated to jdk 11

       │ File: PKGBUILD
  27   │ build() {
  28   │   cd $_srcdir
  29   │   unset _JAVA_OPTIONS
  30 ~ │   # Force the system to build the package using JDK11
  31 ~ │   export PATH=/usr/lib/jvm/java-11-openjdk/jre/bin/:$PATH
  32   │   GRADLE_USER_HOME="$srcdir" gradle desktop:release
  33   │ }

       │ File:
   1   │ #!/usr/bin/env bash
   2   │ 
   3 ~ │ export PATH=/usr/lib/jvm/java-11-openjdk/jre/bin/:$PATH
   4   │ java -jar /usr/share/shattered-pixel-dungeon/shattered-pixel-dungeon.jar

petercxy commented on 2021-08-20 10:51 (UTC)

@evorster The -git version is not maintained by me. Thanks for the heads-up on OpenJDK version, though.

evorster commented on 2021-08-20 10:42 (UTC)

Just a note, this game now requires jdk11-openjdk to build.

The other thing that really bugs me is that the git version downloads quite a lot of data when it compiles. Usually the git version of a package downloads only the deltas, but this package pulls in a complete build environment, which it then nukes whether the build succeeded or not.

Is there not a way to keep the build environment between builds?

petercxy commented on 2020-03-25 23:11 (UTC)

@prurigro I've been monitoring the new repo for some time, but it seems to me that the source code for the beta versions has not yet been released into the master branch. Once it is updated I will switch to the new repo too.

prurigro commented on 2020-03-25 21:03 (UTC)

Hey, it's not quite there yet but I figured I'd put a bug into your ear in case you missed it (I only caught it because I'm managing the -git version of this package and was reviewing the latest changes). The GDX repo is being deprecated in favour of the upstream android version switching to a unified release.

You can read about it in the READMEs of both repos:

I'll be testing the other repo's build soon and will move my package over to that once it's more or less playable, so feel free to check over there to see what that entails.


petercxy commented on 2020-02-16 00:00 (UTC)

@jonathon I'm not sure how to detect the proper JDK path for a specific version. Let me have a look later.

jonathon commented on 2020-02-15 17:57 (UTC)

Would you consider switching the jdk8-openjdk and jre8-openjdk deps to the generic java-environment=8 and java-runtime=8 ? That way people of alternative JDK/JREs can use them without needing to install an additional JDK and JRE.

erayerdin commented on 2019-10-25 21:12 (UTC)


GalaxyLJGD commented on 2019-10-09 18:23 (UTC)

The official website is now

petercxy commented on 2019-01-27 06:10 (UTC)

Updated with system gradle

jonathon commented on 2018-12-31 15:27 (UTC) (edited on 2019-01-13 15:17 (UTC) by jonathon)

If you don't want to use the system gradle at least consider this patch which will use a cached archive and save ~110MB download every build:

diff --git a/PKGBUILD b/PKGBUILD
index 1dcef41..12498db 100644
@@ -17,10 +17,17 @@ source=(
-            '204a7bcedbbc14bdad6586e4b759b326191a7fd2c344dadc7032495d4caa5fe32edac4118d7294229a6fe24f6684416fff37e260bbc9dde9e50846a03ba77db8')
+            '204a7bcedbbc14bdad6586e4b759b326191a7fd2c344dadc7032495d4caa5fe32edac4118d7294229a6fe24f6684416fff37e260bbc9dde9e50846a03ba77db8'
+            '53b71812f18cdb2777e9f1b2a0f2038683907c90bdc406bc64d8b400e1fb2c3b')
+prepare() {
+  sed -i "5s|https\\\://|file:///$srcdir|" $_srcdir/gradle/wrapper/

 build() {
   cd $_srcdir

jonathon commented on 2018-10-27 13:42 (UTC)

Here's a diff to use the system gradle and prevent the download of ~70MB for each build:

diff --git a/PKGBUILD b/PKGBUILD
index 6b8d7bc..d20c81f 100644
@@ -10,7 +10,7 @@ pkgdesc='Shattered fork of the popular rogue-like game'
 depends=('java-runtime' 'bash' 'xorg-xrandr')
-makedepends=('git' 'java-environment' 'jdk8-openjdk')
+makedepends=('git' 'gradle' 'java-environment' 'jdk8-openjdk')
@@ -22,6 +22,11 @@ sha512sums=('5ffcff27a982399239f935e1307e7620d2052b6fe6682d85e699fa29a9f09454209

+prepare() {
+  # Use system gradle
+  sed -i '164c/usr/bin/gradle "$@"' "$_srcdir"/gradlew
 build() {
   cd $_srcdir
   unset _JAVA_OPTIONS