@Natty4: are you confusing this with the -git package? this dependency has only been introduced into the develop
branch recently, and i'm not getting this error locally
in any case, it has been added to the -git package
Git Clone URL: | https://aur.archlinux.org/prismlauncher.git (read-only, click to copy) |
---|---|
Package Base: | prismlauncher |
Description: | Minecraft launcher with ability to manage multiple instances. |
Upstream URL: | https://prismlauncher.org |
Licenses: | GPL3 |
Submitter: | Scrumplex |
Maintainer: | Scrumplex (txtsd, g3tchoo) |
Last Packager: | txtsd |
Votes: | 156 |
Popularity: | 9.95 |
First Submitted: | 2022-10-18 06:42 (UTC) |
Last Updated: | 2024-05-22 02:27 (UTC) |
@Natty4: are you confusing this with the -git package? this dependency has only been introduced into the develop
branch recently, and i'm not getting this error locally
in any case, it has been added to the -git package
It seems like PrismLauncher now depends on qt6-networkauth, which is missing in the dependency list, breaking at compile-time in CMake
It's also possible to build Prismlauncher with modern Java versions by not having compatibility with the very old Forge versions. I don't think this compatibility is too important, but I can be very wrong here. Therefore I suggest using Gentoo's solution here too, i.e. patch the Java 7 target to Java 8 if the installed Java version requires it. (Obviously inform the user that the compatibility is removed, if this is done)
Minecraft 1.20.5 requires Java 21, so having Java 17 as a dependency doesn't make sense anymore.
@Scrumplex that doesn't really solve what im asking, jdk17-openjdk is already in makeopts so that doesn't have anything to do with what im suggesting, im suggesting to not runtime target java-runtime=17 directly, but java-runtime instead, so people have better options.
would it be possible to remove the hard dependency on java completely and make it a opt dependency? if not then could you please not target java-runtime=17 and just use java-runtime?
Java 17 is needed for building Prism Launcher, as newer Java versions don't support building for Java 7 anymore, which is required for very old Minecraft (Forge) versions to work.
would it be possible to remove the hard dependency on java completely and make it a opt dependency? if not then could you please not target java-runtime=17 and just use java-runtime?
I cannot build this.
warning: [options] bootstrap class path is not set in conjunction with -source 7 not setting the bootstrap class path may lead to class files that cannot run on JDK 8 --release 7 is recommended instead of -source 7 -target 7 because it sets the bootstrap class path automatically error: Source option 7 is no longer supported. Use 8 or later. error: Target option 7 is no longer supported. Use 8 or later. make[2]: *** [libraries/launcher/CMakeFiles/NewLaunch.dir/build.make:94: libraries/launcher/CMakeFiles/NewLaunch.dir/java_compiled_NewLaunch] Error 2 make[1]: *** [CMakeFiles/Makefile2:1460: libraries/launcher/CMakeFiles/NewLaunch.dir/all] Error 2
This is acknowledged upstream here and here.
A workaround is to change both libraries/launcher/CMakeLists.txt
and libraries/launcher/CMakeLists.txt
so that they check for Java 8.
Gentoo does this too, although they do it depending on the installed JRE.
Edit: This was too annoying, because it requires to unpack the tar, change the values, pack the tar, and then update the sha256. Adding sed -i "s/7/8/g" libraries/{launcher,javacheck}/CMakeLists.txt
to prepare()
is significantly easier.
Minecraft 1.20.5 is now out and it requires Java 21.
Pinned Comments
Scrumplex commented on 2023-12-02 12:39 (UTC)
Options like
-j $(nproc)
are supposed to be set by your local makepkg.conf.Please read https://wiki.archlinux.org/title/Makepkg#Parallel_compilation
g3tchoo commented on 2023-11-06 16:38 (UTC) (edited on 2023-11-06 16:38 (UTC) by g3tchoo)
following some feedback and reports of issues, i think we're going to stick with
jdk17-openjdk
for now. while user choice is important, i believe there needs to be a balance between that and reliably building this package without manual intervention. this is also why thedepends
array will still containjava-runtime
rather than any specific jdk - since unlike building prism, we don't need to know the path of the jdk to ensure things work as expected.to ensure you don't still have
jdk17-openjdk
after building (and you don't use it), you can tell makepkg to remove unneededmakedepends
when it's done:if you have already built prismlauncher, you can also run one of the following commands:
for those facing further issues with dependencies in the future, i would also recommend using chroot builds. these allow aur packages to build in isolated and more reproducible environments, which can commonly fix these types of issues. the
devtools
package provides a script namedextra-x86_64-build
that can be used in place of makepkg to do this easily. building prismlauncher with this can be done like so: