LWJGL3 Minecraft Client
@Reporter - Is this a new port request? If so, please provide a patch against the ports tree to add the port. If you need help/support porting, /join #freebsd-ports on freenode and checkout the Porters Handbook: https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/ - How is this related to the existing games/minecraft-client port?
(In reply to Kubilay Kocak from comment #1) This port provides LWJGL3, which is needed to play latest Minecraft
(In reply to Kubilay Kocak from comment #1) games/minecraft16 already contains games/minecraft-client's things + LWJGL3 + LWJGL3 java runtime
(In reply to glowiak1111 from comment #3) If this port is committed, would/should games/minecraft-client then use it? What is this (lwgl3) codes relation to games/lwjgl (2.9.x)? Is it the same thing or duplicative, as in, should that port be updated to 3.x using these sources? I note games/lwjgl was last updated in Jan 2015. Also noting that https://github.com/LWJGL/lwjgl3 exists, shouldn't that be ported/added to replace or live along side games/lwjgl ?
See Also: https://github.com/johalun/lwjgl3-port
(In reply to Kubilay Kocak from comment #4) This port should replace games/minecraft-client.
(In reply to Kubilay Kocak from comment #5) The orginal lwjgl3-port doesn't work with Minecraft newer than 1.14.2 and isn't official port
(In reply to glowiak1111 from comment #7) What's the most official source(s) for minecraft client?
Hello, as I understand it's a binary only port. Contains precompilled binaries for x64. So we can't port it to the other archs. It also don't include the game launcher. So it can't replace games/minecraft-client. I's a java library for using with any other launcher, for instance games/multimc I believe the best thing we can do is to help upstream libraries with FreeBSD support. Yesterday I managed to help with FreeBSD CI on LWJGL project. I hope my PR will be merged. I also tried to build LWJGL v3 on FreeBSD, but currently no luck. My unfinished PR I is posted here: https://github.com/LWJGL/lwjgl3/pull/645 If anybody can help, please do it. I have no experience in Java. I suggest we can ask current maintainer of lwjgl port to update.
(In reply to Kubilay Kocak from comment #8) The most official source for minecraft client is: https://www.minecraft.net/en-us/download/ There is also https://github.com/Mojang but they haven't posted the code of the laucher yet. We can look at Arch's package. Currently it's the most feature-rich one. https://aur.archlinux.org/packages/minecraft-launcher It's exactly the link you go from the official site to download Arch release.
For better understanding: Game Launcher (auth, download java binaries, update, manage versions, configs) -> Java Game -> Libraries (one of them is LWJGL)
(In reply to IvanV from comment #9) No, this isn't x64 only. You even know anything about java? java binaries are multiplatform, multiarch. You can use it even on powerpc64 or something like that
(In reply to IvanV from comment #9) minecraft16 includes unofficial Mineshafter Launcher, so can replace minecraft-client. The Libraries are multiplatform, and are stored in /usr/local/share/minecraft16/lwjgl3/native-libs and /usr/local/share/minecraft16/lwjgl3/lwjgl3/bin
(In reply to glowiak1111 from comment #12) While editing build.xml file of LWJGL library I found out that It also has native libraries. In the file: https://github.com/LWJGL/lwjgl3/blob/master/build.xml A lot of mentions about .so, .dylib and .dll libraries.
So, native-libs - is a native. Not cross platform. They must be compilled for every single platform /usr/local/share/minecraft16/lwjgl3/native-libs
(In reply to IvanV from comment #9) Thank you for your feedback Ivan Can you point/reference us to the freebsd ci pr/issue mentioned ("FreeBSD CI on LWJGL") or is LWJGL/lwjgl3/pull/645 that? Id like to understand the goal in terms of a 'good target state' including: - minecraft server & client (as official as possible) - launcher - required or related or additional libraries What is the ideal target port/package structure/list at the end?
(In reply to Kubilay Kocak from comment #16) The CI PR I mentioned is: https://github.com/LWJGL-CI/lwjgl3/pull/3 This link has been already in See Also section of this bug. Minecraft server's official site is: https://www.minecraft.net/en-us/download/server/ The games/minecraft-server port is actual and full featured. The ideal minecraft-client port is a port of this: https://aur.archlinux.org/packages/minecraft-launcher Or from this link (Other distributions): https://www.minecraft.net/en-us/download/ May be we can try it with linux compatibility layer? There is also a bug on the game developer site: https://bugs.mojang.com/browse/MCL-17697 Minecraft client as it is - is hosted on the developer's site and there are a lot of their versions available. So, no point to add it into the ports. Just add a launcher. glowiak knows more about the depended libraries, because he managed it to build. But I suppose we need build scripts instead of build resulting binaries
(In reply to IvanV from comment #15) native-libs is only directory name. Do you even know anything about java? This libs works on every platform that supports Java
(In reply to IvanV from comment #17) Do you even play Minecraft??? Latest version that runs on FreeBSD is 1.6.89-j, while the newest 921. This old launcher doesn't support running newer Minecraft than 1.14.2, so minecraft16 uses unofficial Mineshafter ( http://mineshafter.info )launcher, which is one of launcher that supports it (1.6.89-j was released in 2018 - before switching to LWJGL3)
(In reply to IvanV from comment #17) Read this: https://codeberg.org/glowiak/minecraft16/#a-problem section of project site, to know why I'm providing binaries instead of build scripts
Created attachment 224594 [details] minecraft16v1.diff Hello, glowiak1111@yandex.com I admire your enthusiasm to run modern versions of minecraft on FreeBSD and am glad to help. Using an external launcher is correct and not really objectionable since MS no longer provides java binaries. AFAIK, the thing that might be a problem is that you have to build, provide and maintain your binaries for all FreeBSD versions do you want to continue to go that way? FYI: https://github.com/LWJGL/lwjgl3/pull/645
PS: games/multimc seems to be a good replacement to run modern versions so I think it should first taken care of lwjgl3.
(In reply to Alexander Vereeken from comment #21) I'm creating universal installer, that fixes not-build bug (you have to rm -rf /usr/local/lib/cmake). Should be done today.
(In reply to Alexander Vereeken from comment #21) Okay, the build script is done and works (it deleted /usr/local/lib/cmake dir). Now I'm creating Makefile that build libs from source and places everything in correct places. Today I'll complete it and I'll submit the final shar
Created attachment 224681 [details] games/minecraft16
(In reply to Alexander Vereeken from comment #21) Okay, the Makefile is done. pkg-plist is pretty large (1mb), so the shar is compressed with bzip2. The file is named minecraft16v2.shar.bz2. The new Makefile, builds libs from source, and places files in correct places.
Hello, RUN_DEPENDS= openjdk8>0:java/openjdk8 Please use USE_JAVA for that. https://docs.freebsd.org/en/books/porters-handbook/special/#using-java -- RUN_DEPENDS= cmake>0:devel/cmake This looks like a build depedency user BUILD_DEPENDS= for that. ---- @fetch --no-verify-peer -o ${STAGEDIR}/usr/loca....... Fechting during the build, install phase doesnt look right. You can define more master sites and distfiles.
(In reply to Alexander Vereeken from comment #27) This is like FreeBSD and OpenBSD. FreeBSD places all the things under one partition, while in OpenBSD every directory is on separated partition. openjdk8 is needed to build, so I placed it in RUN_DEPENDS. That's a lot easier and suckless. I did with suckless method. I don't want huge, complicated Makefiles. One, suckless Makefile that does all the things in one function.
I did not want to annoy you but a correct makefile is important because it is important to avoid unnecessary things... For example, cmake is installed for every user, even those who use the port in binary form. This is not correct. You may like such makefiles it, but those who review it will give you the same and more advice's until it looks perfect. I can help you with this with pleasure if you want that.
(In reply to Alexander Vereeken from comment #29) Ahhh, you mean this. So, I'll move git, cmake, ant and some other build deps to BUILD_DEPENDS
Created attachment 224720 [details] minecraft16v3.shar.bz2
(In reply to Alexander Vereeken from comment #29) Okay, I fixed it
What is traktor.txt and why does it present there?
I also believe some directories doesn't have to be installed, for instance: lwjgl3/lwjgl3/.git/ lwjgl3/lwjgl3/.idea/ And may be the whole source dir isn't expected to be installed? lwjgl3/lwjgl3/ Open the shar file in a text editor and look at it
(In reply to IvanV from comment #33) This is file needed only to create directories in git services
(In reply to IvanV from comment #34) This is needed to work
Created attachment 224767 [details] minecraft16v4.shar.bz2 Fixed "_" version bug
How is this bug fixed? I don't see the port committed anywhere.
^Triage: Re-open pending resolution. We'd like to get minecraft updated in ports using as close to official sources as possible. I need help understanding the various parts and how that maps to changes that need to be made in ports.
1.18.1 released.
Maintainer reset.
Hello, i would like to close this bug since we have now games/prismlauncher available which should be the best approach to play Minecraft.
LWJGL3 and Prismlauncher already in ports. Is there anything left?