Hey ports@

Since games/blockgame doesn't support minecraft versions 1.19.4+, I
thought I'd work on a more future proof solution and start porting a
more popular open source minecraft client. This landed me on
Prism Launcher, which seems to have a good developer track record, and
doesn't seem to be going away any time soon (unlike PolyMC).

I took some inspiration from the patches from the guys over on
the FreeBSD ports tree to get it to support system lwjgl(,3) instead of
letting it try to download the Linux version automatically. I modified
them to the best of my ability to work with our lwjgl(,3) ports, but I
can't seem to get it working 100% and I'm unsure what I'm doing wrong
here. I *did* get versions up to 1.12.4 to work *mostly* flawlessly
using these patches. But- at version 1.13.0 and above, I'm having issues
with launching due to this sort of stack trace:

```
java.lang.UnsatisfiedLinkError: Failed to locate library: liblwjgl.so
        at org.lwjgl.system.Library.loadSystem(Library.java:164)
        at org.lwjgl.system.Library.loadSystem(Library.java:63)
        at org.lwjgl.system.Library.<clinit>(Library.java:51)
        at org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:100)
        at org.lwjgl.system.Pointer$Default.<clinit>(Pointer.java:67)
        at cfs.a(SourceFile:126)
        at cfi.an(SourceFile:554)
        at cfi.am(SourceFile:433)
        at cfi.a(SourceFile:377)
        at net.minecraft.client.main.Main.main(SourceFile:144)
        at
org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:105)
at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129) at
org.prismlauncher.EntryPoint.main(EntryPoint.java:70)
```

As I understand it, neither our lwjgl or lwjgl3 port provides this .so
file. So, I tried symlinking liblwjgl64.so to liblwjgl.so and got the
same result. I also am getting a bunch of "library not found" errors
with java classes:

```
Libraries:
  /usr/local/share/lwjgl3/lwjgl-glfw.jar
  /usr/local/share/lwjgl3/lwjgl-jemalloc.jar
  /usr/local/share/lwjgl3/lwjgl-openal.jar
  /usr/local/share/lwjgl3/lwjgl-opengl.jar
  /usr/local/share/lwjgl3/lwjgl-stb.jar
  /usr/local/share/lwjgl3/lwjgl.jar
  /usr/local/share/lwjgl/patchy.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/mojang/patchy/1.3.9/patchy-1.3.9.jar
  /usr/local/share/lwjgl/oshi-core.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/oshi-project/oshi-core/1.1/oshi-core-1.1.jar
  /usr/local/share/lwjgl/jna.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar
  /usr/local/share/lwjgl/platform.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar
  /usr/local/share/lwjgl/icu4j-core-mojang.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar
  /usr/local/share/lwjgl/jopt-simple.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.jar
  /usr/local/share/lwjgl/codecjorbis.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar
  /usr/local/share/lwjgl/codecwav.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/paulscode/codecwav/20101023/codecwav-20101023.jar
  /usr/local/share/lwjgl/libraryjavasound.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar
  /usr/local/share/lwjgl/soundsystem.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar
  /usr/local/share/lwjgl/netty-all.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/io/netty/netty-all/4.1.25.Final/netty-all-4.1.25.Final.jar
  /usr/local/share/lwjgl/guava.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/google/guava/guava/21.0/guava-21.0.jar
  /usr/local/share/lwjgl/commons-lang3.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar
  /usr/local/share/lwjgl/commons-io.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/commons-io/commons-io/2.5/commons-io-2.5.jar
  /usr/local/share/lwjgl/commons-codec.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/commons-codec/commons-codec/1.10/commons-codec-1.10.jar
  /usr/local/share/lwjgl/brigadier.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/mojang/brigadier/0.1.27/brigadier-0.1.27.jar
  /usr/local/share/lwjgl/datafixerupper.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/mojang/datafixerupper/1.0.16/datafixerupper-1.0.16.jar
  /usr/local/share/lwjgl/gson.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/google/code/gson/gson/2.8.0/gson-2.8.0.jar
  /usr/local/share/lwjgl/authlib.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/mojang/authlib/1.5.25/authlib-1.5.25.jar
  /usr/local/share/lwjgl/commons-compress.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar
  /usr/local/share/lwjgl/httpclient.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar
  /usr/local/share/lwjgl/commons-logging.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar
  /usr/local/share/lwjgl/httpcore.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar
  /usr/local/share/lwjgl/fastutil.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/it/unimi/dsi/fastutil/7.1.0/fastutil-7.1.0.jar
  /usr/local/share/lwjgl/log4j-api.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.jar
  /usr/local/share/lwjgl/log4j-core.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.jar
  /usr/local/share/lwjgl/realms.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/mojang/realms/1.13.4/realms-1.13.4.jar
  /usr/local/share/lwjgl/text2speech.jar (missing)
  
/home/izder456/.local/share/PrismLauncher/libraries/com/mojang/text2speech/1.10.3/text2speech-1.10.3.jar
  
/home/izder456/.local/share/PrismLauncher/libraries/com/mojang/minecraft/1.13/minecraft-1.13-client.jar
```

(These logs are only for version 1.13.0, any version before this has
the same sort of "Library missing" error, but doesn't fail to load the
liblwjgl64.so file.)

I have some notes in a TODO file, and the patches have little comments
at the top to help myself and others who want to take a look. This port
is also in jasperla's openbsd-wip repo on GitHub, if that's easier. I'll
be attaching the tarball too for ease of use as well.

Anyone have any clue on how to get lwjgl(,3) to work on versions
1.13.0+? Any help would be greatly appreciated.

-- 
iz (she/her)

> i like to say mundane things,
> there are too many uninteresting things
> that go unnoticed.

izder456 (dot) neocities (dot) org

Attachment: prismlauncher-9.2.tar.gz
Description: application/gzip

Reply via email to