diff --git a/games/Makefile b/games/Makefile --- a/games/Makefile +++ b/games/Makefile @@ -602,6 +602,7 @@ SUBDIR += lugaru SUBDIR += luola SUBDIR += lwjgl + SUBDIR += lwjgl3 SUBDIR += macopix SUBDIR += madbomber SUBDIR += maelstrom diff --git a/games/lwjgl3/Makefile b/games/lwjgl3/Makefile --- a/games/lwjgl3/Makefile +++ b/games/lwjgl3/Makefile @@ -1,79 +1,127 @@ PORTNAME= lwjgl -DISTVERSION= 2.9.4.20161208 +DISTVERSION= 3.3.4.20231218 CATEGORIES= games java +MASTER_SITES= https://repo1.maven.org/:source1 +PKGNAMESUFFIX= 3 +DISTFILES= maven2/com/beust/jcommander/1.78/jcommander-1.78.jar:source1 \ + maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-sources.jar:source1 \ + maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:source1 \ + maven2/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar:source1 \ + maven2/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar:source1 \ + maven2/org/joml/joml/1.10.5/joml-1.10.5-sources.jar:source1 \ + maven2/org/joml/joml/1.10.5/joml-1.10.5.jar:source1 \ + maven2/org/openjdk/jmh/jmh-core/1.37/jmh-core-1.37-sources.jar:source1 \ + maven2/org/openjdk/jmh/jmh-core/1.37/jmh-core-1.37.jar:source1 \ + maven2/org/openjdk/jmh/jmh-generator-annprocess/1.37/jmh-generator-annprocess-1.37.jar:source1 \ + maven2/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:source1 \ + maven2/org/slf4j/slf4j-jdk14/1.7.36/slf4j-jdk14-1.7.36.jar:source1 \ + maven2/org/testng/testng/7.5/testng-7.5-sources.jar:source1 \ + maven2/org/testng/testng/7.5/testng-7.5.jar:source1 \ + maven2/org/webjars/jquery/3.5.1/jquery-3.5.1.jar:source1 +EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} -MAINTAINER= freebsd@skinc.ru +MAINTAINER= vvd@FreeBSD.org COMMENT= Lightweight Java Game Library -WWW= https://legacy.lwjgl.org +WWW= https://www.lwjgl.org LICENSE= BSD3CLAUSE -ONLY_FOR_ARCHS= amd64 i386 powerpc64 powerpc64le +ONLY_FOR_ARCHS= amd64 +ONLY_FOR_ARCHS_REASON= Upstream support FreeBSD on amd64 only: https://github.com/LWJGL/lwjgl3/issues/421 -BUILD_DEPENDS= ${JAVAJARDIR}/jutils/jutils.jar:games/jutils \ - ${JAVAJARDIR}/jinput/jinput.jar:games/jinput -RUN_DEPENDS:= ${BUILD_DEPENDS} +BUILD_DEPENDS= ${LOCALBASE}/openjdk8/bin/java:java/openjdk8 \ + kotlinc-jvm:lang/kotlin +LIB_DEPENDS= libdraco.so:archivers/draco \ + libopenal.so:audio/openal-soft \ + libopus.so:audio/opus \ + libdbus-1.so:devel/dbus \ + libhwloc.so:devel/hwloc2 \ + libffi.so:devel/libffi \ + libbgfx.so:graphics/bgfx \ + libglfw.so:graphics/glfw \ + libktx.so:graphics/khronos-texture \ + libopenxr_loader.so:graphics/openxr \ + libshaderc_shared.so:graphics/shaderc \ + libspirv-cross-c-shared.so:graphics/spirv-cross \ + libassimp.so:multimedia/assimp \ + libfreetype.so:print/freetype2 \ + libharfbuzz.so:print/harfbuzz + +USES= gl gnome +USE_ANT= yes +USE_GL= gl +USE_GNOME= glib20 gtk30 +USE_JAVA= 17+ -USES= dos2unix xorg USE_GITHUB= yes GH_ACCOUNT= LWJGL -GH_TAGNAME= 2df01dd +GH_PROJECT= ${PORTNAME}${PKGNAMESUFFIX} +GH_TAGNAME= de8bd86 -DOS2UNIX_REGEX= .*.[^jp][^an][^rg]$ -USE_JAVA= yes -USE_LDCONFIG= yes -USE_ANT= yes -USE_XORG= xcursor xrandr xxf86vm -MAKE_ENV+= CLASSPATH=${JAVAJARDIR}/jutils/jutils.jar:${JAVAJARDIR}/jinput/jinput.jar:${WRKSRC}/${DISTNAME}/jar/ -ALL_TARGET= jars compile_native +MAKE_ARGS= -Dbuild.offline=true \ + -Djavadoc.skip=true \ + -Duse.libffi.so=true \ + -Dlibffi.path=${LOCALBASE}/lib \ + -Dlocal.kotlin=${LOCALBASE}/share/kotlin +MAKE_ENV+= JAVA8_HOME=${LOCALBASE}/openjdk8 -PLIST_FILES= ${JAVAJARDIR}/${PORTNAME}/${PORTNAME}.jar \ - ${JAVAJARDIR}/${PORTNAME}/${PORTNAME}_test.jar \ - ${JAVAJARDIR}/${PORTNAME}/${PORTNAME}_util.jar \ - ${JAVAJARDIR}/${PORTNAME}/${PORTNAME}_util_applet.jar -PLIST_DIRS= ${JAVAJARDIR}/${PORTNAME} \ - lib/${PORTNAME} +LIBSDIR= ${WRKSRC}/bin/libs/native/freebsd/*/org/lwjgl .include -.if ${ARCH} == i386 -PLIST_FILES+= lib/${PORTNAME}/lib${PORTNAME}.so +.if ${ARCH} == amd64 +_ARCH_DIR= x64 +.elif ${ARCH} == i386 +_ARCH_DIR= x86 +MAKE_ENV+= ANT_OPTS=-Xmx2G .endif -.if ${ARCH} == amd64 || ${ARCH:Mpowerpc64*} -PLIST_FILES+= lib/${PORTNAME}/lib${PORTNAME}64.so -.endif - -.if ${ARCH:Mpowerpc64*} -MAKE_ARGS+= -Dbuild.64bit.only=1 -.endif +post-extract: + ${MKDIR} ${WRKSRC}/bin/libs/java + ${LN} -s ${DISTDIR}/maven2/com/beust/jcommander/1.78/jcommander-1.78.jar \ + ${WRKSRC}/bin/libs/java/jcommander.jar + ${LN} -s ${DISTDIR}/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-sources.jar \ + ${WRKSRC}/bin/libs/java/jsr305-sources.jar + ${LN} -s ${DISTDIR}/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar \ + ${WRKSRC}/bin/libs/java/jsr305.jar + ${LN} -s ${DISTDIR}/maven2/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar \ + ${WRKSRC}/bin/libs/java/jopt-simple.jar + ${LN} -s ${DISTDIR}/maven2/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar \ + ${WRKSRC}/bin/libs/java/commons-math3.jar + ${LN} -s ${DISTDIR}/maven2/org/joml/joml/1.10.5/joml-1.10.5-sources.jar \ + ${WRKSRC}/bin/libs/java/joml-sources.jar + ${LN} -s ${DISTDIR}/maven2/org/joml/joml/1.10.5/joml-1.10.5.jar \ + ${WRKSRC}/bin/libs/java/joml.jar + ${LN} -s ${DISTDIR}/maven2/org/openjdk/jmh/jmh-core/1.37/jmh-core-1.37-sources.jar \ + ${WRKSRC}/bin/libs/java/jmh-core-sources.jar + ${LN} -s ${DISTDIR}/maven2/org/openjdk/jmh/jmh-core/1.37/jmh-core-1.37.jar \ + ${WRKSRC}/bin/libs/java/jmh-core.jar + ${LN} -s ${DISTDIR}/maven2/org/openjdk/jmh/jmh-generator-annprocess/1.37/jmh-generator-annprocess-1.37.jar \ + ${WRKSRC}/bin/libs/java/jmh-generator-annprocess.jar + ${LN} -s ${DISTDIR}/maven2/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar \ + ${WRKSRC}/bin/libs/java/slf4j-api.jar + ${LN} -s ${DISTDIR}/maven2/org/slf4j/slf4j-jdk14/1.7.36/slf4j-jdk14-1.7.36.jar \ + ${WRKSRC}/bin/libs/java/slf4j-jdk14.jar + ${LN} -s ${DISTDIR}/maven2/org/testng/testng/7.5/testng-7.5-sources.jar \ + ${WRKSRC}/bin/libs/java/testng-sources.jar + ${LN} -s ${DISTDIR}/maven2/org/testng/testng/7.5/testng-7.5.jar \ + ${WRKSRC}/bin/libs/java/testng.jar + ${LN} -s ${DISTDIR}/maven2/org/webjars/jquery/3.5.1/jquery-3.5.1.jar \ + ${WRKSRC}/bin/libs/java/jquery.jar post-patch: - @${REINPLACE_CMD} -e 's|PREFIX|${PREFIX}|g' \ - -e '/executable/s/cc/${CC}/g' \ - ${WRKSRC}/platform_build/bsd_ant/build.xml -.if ${ARCH} == powerpc64 - @${REINPLACE_CMD} -e 's|amd64|ppc64|g' \ - ${WRKSRC}/platform_build/bsd_ant/build.xml -.elif ${ARCH} == powerpc64le - @${REINPLACE_CMD} -e 's|amd64|ppc64le|g' \ - ${WRKSRC}/platform_build/bsd_ant/build.xml -.endif + @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' ${WRKSRC}/config/freebsd/build.xml \ + ${WRKSRC}/modules/lwjgl/cuda/src/main/java/org/lwjgl/cuda/CUDA.java do-install: + @cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} ${ANT} release ${MAKE_ARGS} @${MKDIR} ${STAGEDIR}${JAVAJARDIR}/${PORTNAME} -.for _jar in ${PLIST_FILES:M*.jar} - ${INSTALL_DATA} ${WRKSRC}/libs/${_jar:T} \ - ${STAGEDIR}${JAVAJARDIR}/${PORTNAME} -.endfor @${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME} -.if ${ARCH} == i386 - ${INSTALL_DATA} ${WRKSRC}/libs/freebsd/lib${PORTNAME}.so \ - ${STAGEDIR}${PREFIX}/lib/${PORTNAME} -.endif -.if ${ARCH} == amd64 || ${ARCH:Mpowerpc64*} - ${INSTALL_DATA} ${WRKSRC}/libs/freebsd/lib${PORTNAME}64.so \ - ${STAGEDIR}${PREFIX}/lib/${PORTNAME} -.endif +.for x in ${WRKSRC}/bin/RELEASE/lwjgl*/*.jar + ${INSTALL_DATA} ${WRKSRC}${x} ${STAGEDIR}${JAVAJARDIR}/${PORTNAME}/ +.endfor +.for x in ${LIBSDIR}/liblwjgl.so ${LIBSDIR}/*/liblwjgl*.so + ${INSTALL_LIB} ${WRKSRC}${x} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/ +.endfor .include diff --git a/games/lwjgl3/distinfo b/games/lwjgl3/distinfo --- a/games/lwjgl3/distinfo +++ b/games/lwjgl3/distinfo @@ -1,3 +1,33 @@ -TIMESTAMP = 1576013211 -SHA256 (LWJGL-lwjgl-2.9.4.20161208-2df01dd_GH0.tar.gz) = a4d03e9244a9e253abcfe7ee75d4413bd3db1fd8c38e67eedbd0c6c313c4e504 -SIZE (LWJGL-lwjgl-2.9.4.20161208-2df01dd_GH0.tar.gz) = 15052370 +TIMESTAMP = 1705410040 +SHA256 (maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar) = 766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7 +SIZE (maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar) = 19936 +SHA256 (maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-sources.jar) = 1c9e85e272d0708c6a591dc74828c71603053b48cc75ae83cce56912a2aa063b +SIZE (maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-sources.jar) = 18102 +SHA256 (maven2/org/testng/testng/7.5/testng-7.5.jar) = e549db50dcc421f9501d6af933af15e4fba96617577409d939724cd7e1a25033 +SIZE (maven2/org/testng/testng/7.5/testng-7.5.jar) = 941401 +SHA256 (maven2/org/testng/testng/7.5/testng-7.5-sources.jar) = b87c87ab56212a895cf535a4fedd4a9d4be77427257b11ce6574cb15834357cc +SIZE (maven2/org/testng/testng/7.5/testng-7.5-sources.jar) = 486428 +SHA256 (maven2/com/beust/jcommander/1.78/jcommander-1.78.jar) = 7891debb84b5f83e9bd57593ebece3399abbe0fd938cf306b3534c57913b9615 +SIZE (maven2/com/beust/jcommander/1.78/jcommander-1.78.jar) = 83782 +SHA256 (maven2/org/webjars/jquery/3.5.1/jquery-3.5.1.jar) = 83168112220ac912a3dba0eebae90a4da5bf1e24b1bafd401e3d4f9f598bb2cb +SIZE (maven2/org/webjars/jquery/3.5.1/jquery-3.5.1.jar) = 313070 +SHA256 (maven2/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar) = d3ef575e3e4979678dc01bf1dcce51021493b4d11fb7f1be8ad982877c16a1c0 +SIZE (maven2/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar) = 41125 +SHA256 (maven2/org/slf4j/slf4j-jdk14/1.7.36/slf4j-jdk14-1.7.36.jar) = 5bf64690af4e59876b8902bb0db3dd39c686a40abfed97d3837eeeec7a2922ac +SIZE (maven2/org/slf4j/slf4j-jdk14/1.7.36/slf4j-jdk14-1.7.36.jar) = 8436 +SHA256 (maven2/org/joml/joml/1.10.5/joml-1.10.5.jar) = cac9f22f83a7aa33eebda73c16ff5261e3cb4911b6bafcf4c79ea486099d0c9a +SIZE (maven2/org/joml/joml/1.10.5/joml-1.10.5.jar) = 712082 +SHA256 (maven2/org/joml/joml/1.10.5/joml-1.10.5-sources.jar) = 08f15fcbc7b2154657c53706f4169142d9aa20cd8cfd1d4d4aa4aa60c949e622 +SIZE (maven2/org/joml/joml/1.10.5/joml-1.10.5-sources.jar) = 691986 +SHA256 (maven2/org/openjdk/jmh/jmh-core/1.37/jmh-core-1.37.jar) = dc0eaf2bbf0036a70b60798c785d6e03a9daf06b68b8edb0f1ba9eb3421baeb3 +SIZE (maven2/org/openjdk/jmh/jmh-core/1.37/jmh-core-1.37.jar) = 552986 +SHA256 (maven2/org/openjdk/jmh/jmh-core/1.37/jmh-core-1.37-sources.jar) = fd4beda07b3b94cd0e32199401bbb2d9ed3371a770c8c320761b9442ff3e8e05 +SIZE (maven2/org/openjdk/jmh/jmh-core/1.37/jmh-core-1.37-sources.jar) = 416281 +SHA256 (maven2/org/openjdk/jmh/jmh-generator-annprocess/1.37/jmh-generator-annprocess-1.37.jar) = 6a5604b5b804e0daca1145df1077609321687734a8b49387e49f10557c186c77 +SIZE (maven2/org/openjdk/jmh/jmh-generator-annprocess/1.37/jmh-generator-annprocess-1.37.jar) = 30881 +SHA256 (maven2/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar) = df26cc58f235f477db07f753ba5a3ab243ebe5789d9f89ecf68dd62ea9a66c28 +SIZE (maven2/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar) = 78146 +SHA256 (maven2/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar) = 1e56d7b058d28b65abd256b8458e3885b674c1d588fa43cd7d1cbb9c7ef2b308 +SIZE (maven2/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar) = 2213560 +SHA256 (LWJGL-lwjgl3-3.3.4.20231218-de8bd86_GH0.tar.gz) = 77f796784b750b49c699b457f3cab3c19b378f4ea4f0f645dfc5c33e4d1947f2 +SIZE (LWJGL-lwjgl3-3.3.4.20231218-de8bd86_GH0.tar.gz) = 15322197 diff --git a/games/lwjgl3/files/patch-build.xml b/games/lwjgl3/files/patch-build.xml deleted file mode 100644 --- a/games/lwjgl3/files/patch-build.xml +++ /dev/null @@ -1,10 +0,0 @@ ---- build.xml.orig 2014-04-04 16:45:10 UTC -+++ build.xml -@@ -7,7 +7,6 @@ - - - -- - - - diff --git a/games/lwjgl3/files/patch-config_build-definitions.xml b/games/lwjgl3/files/patch-config_build-definitions.xml new file mode 100644 --- /dev/null +++ b/games/lwjgl3/files/patch-config_build-definitions.xml @@ -0,0 +1,12 @@ +--- config/build-definitions.xml.orig 2023-12-18 14:22:59 UTC ++++ config/build-definitions.xml +@@ -100,7 +100,8 @@ This script is included in /build.xml and /config/upda + + + +- ++ ++ + + + diff --git a/games/lwjgl3/files/patch-config_freebsd_build.xml b/games/lwjgl3/files/patch-config_freebsd_build.xml new file mode 100644 --- /dev/null +++ b/games/lwjgl3/files/patch-config_freebsd_build.xml @@ -0,0 +1,23 @@ +--- config/freebsd/build.xml.orig 2023-12-18 14:22:59 UTC ++++ config/freebsd/build.xml +@@ -159,16 +159,18 @@ + + + +- ++ + + + + + +- ++ + + + ++ ++ + + + diff --git a/games/lwjgl3/files/patch-modules_lwjgl_core_src_main_java_org_lwjgl_system_MemoryManage.java b/games/lwjgl3/files/patch-modules_lwjgl_core_src_main_java_org_lwjgl_system_MemoryManage.java new file mode 100644 --- /dev/null +++ b/games/lwjgl3/files/patch-modules_lwjgl_core_src_main_java_org_lwjgl_system_MemoryManage.java @@ -0,0 +1,12 @@ +--- modules/lwjgl/core/src/main/java/org/lwjgl/system/MemoryManage.java.orig 2023-12-18 14:22:59 UTC ++++ modules/lwjgl/core/src/main/java/org/lwjgl/system/MemoryManage.java +@@ -34,6 +34,9 @@ final class MemoryManage { + String className; + if (allocator == null || "jemalloc".equals(allocator)) { + className = "org.lwjgl.system.jemalloc.JEmallocAllocator"; ++ if (Platform.get() == Platform.FREEBSD) { ++ Configuration.JEMALLOC_LIBRARY_NAME.set("libc.so.7"); ++ } + } else if ("rpmalloc".equals(allocator)) { + className = "org.lwjgl.system.rpmalloc.RPmallocAllocator"; + } else { diff --git a/games/lwjgl3/files/patch-modules_lwjgl_jemalloc_src_generated_java_org_lwjgl_system_jemalloc_JEmalloc.java b/games/lwjgl3/files/patch-modules_lwjgl_jemalloc_src_generated_java_org_lwjgl_system_jemalloc_JEmalloc.java new file mode 100644 --- /dev/null +++ b/games/lwjgl3/files/patch-modules_lwjgl_jemalloc_src_generated_java_org_lwjgl_system_jemalloc_JEmalloc.java @@ -0,0 +1,69 @@ +--- modules/lwjgl/jemalloc/src/generated/java/org/lwjgl/system/jemalloc/JEmalloc.java.orig 2023-12-18 14:22:59 UTC ++++ modules/lwjgl/jemalloc/src/generated/java/org/lwjgl/system/jemalloc/JEmalloc.java +@@ -40,27 +40,27 @@ public class JEmalloc { + + /** Function address. */ + public static final long +- malloc_message = apiGetFunctionAddress(JEMALLOC, "je_malloc_message"), +- malloc = apiGetFunctionAddress(JEMALLOC, "je_malloc"), +- calloc = apiGetFunctionAddress(JEMALLOC, "je_calloc"), +- posix_memalign = apiGetFunctionAddress(JEMALLOC, "je_posix_memalign"), +- aligned_alloc = apiGetFunctionAddress(JEMALLOC, "je_aligned_alloc"), +- realloc = apiGetFunctionAddress(JEMALLOC, "je_realloc"), +- free = apiGetFunctionAddress(JEMALLOC, "je_free"), +- free_sized = apiGetFunctionAddress(JEMALLOC, "je_free_sized"), +- free_aligned_sized = apiGetFunctionAddress(JEMALLOC, "je_free_aligned_sized"), +- mallocx = apiGetFunctionAddress(JEMALLOC, "je_mallocx"), +- rallocx = apiGetFunctionAddress(JEMALLOC, "je_rallocx"), +- xallocx = apiGetFunctionAddress(JEMALLOC, "je_xallocx"), +- sallocx = apiGetFunctionAddress(JEMALLOC, "je_sallocx"), +- dallocx = apiGetFunctionAddress(JEMALLOC, "je_dallocx"), +- sdallocx = apiGetFunctionAddress(JEMALLOC, "je_sdallocx"), +- nallocx = apiGetFunctionAddress(JEMALLOC, "je_nallocx"), +- mallctl = apiGetFunctionAddress(JEMALLOC, "je_mallctl"), +- mallctlnametomib = apiGetFunctionAddress(JEMALLOC, "je_mallctlnametomib"), +- mallctlbymib = apiGetFunctionAddress(JEMALLOC, "je_mallctlbymib"), +- malloc_stats_print = apiGetFunctionAddress(JEMALLOC, "je_malloc_stats_print"), +- malloc_usable_size = apiGetFunctionAddress(JEMALLOC, "je_malloc_usable_size"); ++ malloc_message = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "malloc_message"), ++ malloc = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "malloc"), ++ calloc = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "calloc"), ++ posix_memalign = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "posix_memalign"), ++ aligned_alloc = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "aligned_alloc"), ++ realloc = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "realloc"), ++ free = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "free"), ++ free_sized = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "free_sized"), ++ free_aligned_sized = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "free_aligned_sized"), ++ mallocx = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "mallocx"), ++ rallocx = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "rallocx"), ++ xallocx = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "xallocx"), ++ sallocx = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "sallocx"), ++ dallocx = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "dallocx"), ++ sdallocx = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "sdallocx"), ++ nallocx = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "nallocx"), ++ mallctl = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "mallctl"), ++ mallctlnametomib = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "mallctlnametomib"), ++ mallctlbymib = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "mallctlbymib"), ++ malloc_stats_print = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "malloc_stats_print"), ++ malloc_usable_size = apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "malloc_usable_size"); + + } + +@@ -105,11 +105,16 @@ public class JEmalloc { + /** Use as arena index in "stats.arenas.<i>.*" mallctl interfaces to select destroyed arenas. */ + public static final int MALLCTL_ARENAS_DESTROYED = 0x1001; + ++ private static String functionNamePrefix = "je_"; ++ + static { ++ if (Platform.get() == Platform.FREEBSD) { ++ functionNamePrefix = ""; ++ } + // Force jemalloc to initialize before anyone else uses it. + // This avoids a dangerous race when the first jemalloc functions are called concurrently. + if (Platform.get() == Platform.WINDOWS) { +- invokePV(invokePP(8L, apiGetFunctionAddress(JEMALLOC, "je_malloc")), apiGetFunctionAddress(JEMALLOC, "je_free")); ++ invokePV(invokePP(8L, apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "malloc")), apiGetFunctionAddress(JEMALLOC, functionNamePrefix + "free")); + } + } + diff --git a/games/lwjgl3/files/patch-modules_lwjgl_shaderc_src_generated_java_org_lwjgl_util_shaderc_Shaderc.java b/games/lwjgl3/files/patch-modules_lwjgl_shaderc_src_generated_java_org_lwjgl_util_shaderc_Shaderc.java new file mode 100644 --- /dev/null +++ b/games/lwjgl3/files/patch-modules_lwjgl_shaderc_src_generated_java_org_lwjgl_util_shaderc_Shaderc.java @@ -0,0 +1,11 @@ +--- modules/lwjgl/shaderc/src/generated/java/org/lwjgl/util/shaderc/Shaderc.java.orig 2023-12-18 14:22:59 UTC ++++ modules/lwjgl/shaderc/src/generated/java/org/lwjgl/util/shaderc/Shaderc.java +@@ -20,7 +20,7 @@ import static org.lwjgl.system.MemoryUtil.*; + /** Native bindings to the libshaderc C API of the shaderc library. */ + public class Shaderc { + +- private static final SharedLibrary SHADERC = Library.loadNative(Shaderc.class, "org.lwjgl.shaderc", Configuration.SHADERC_LIBRARY_NAME.get(Platform.mapLibraryNameBundled("shaderc")), true); ++ private static final SharedLibrary SHADERC = Library.loadNative(Shaderc.class, "org.lwjgl.shaderc", Configuration.SHADERC_LIBRARY_NAME.get(Platform.mapLibraryNameBundled(Platform.get() == Platform.FREEBSD ? "shaderc_shared" : "shaderc")), true); + + /** Contains the function pointers loaded from the shaderc {@link SharedLibrary}. */ + public static final class Functions { diff --git a/games/lwjgl3/files/patch-modules_lwjgl_spvc_src_generated_java_org_lwjgl_util_spvc_Spvc.java b/games/lwjgl3/files/patch-modules_lwjgl_spvc_src_generated_java_org_lwjgl_util_spvc_Spvc.java new file mode 100644 --- /dev/null +++ b/games/lwjgl3/files/patch-modules_lwjgl_spvc_src_generated_java_org_lwjgl_util_spvc_Spvc.java @@ -0,0 +1,11 @@ +--- modules/lwjgl/spvc/src/generated/java/org/lwjgl/util/spvc/Spvc.java.orig 2023-12-18 14:22:59 UTC ++++ modules/lwjgl/spvc/src/generated/java/org/lwjgl/util/spvc/Spvc.java +@@ -40,7 +40,7 @@ import static org.lwjgl.system.MemoryUtil.*; + */ + public class Spvc { + +- private static final SharedLibrary SPVC = Library.loadNative(Spvc.class, "org.lwjgl.spvc", Configuration.SPVC_LIBRARY_NAME.get(Platform.mapLibraryNameBundled("spirv-cross")), true); ++ private static final SharedLibrary SPVC = Library.loadNative(Spvc.class, "org.lwjgl.spvc", Configuration.SPVC_LIBRARY_NAME.get(Platform.mapLibraryNameBundled(Platform.get() == Platform.FREEBSD ? "spirv-cross-c-shared" : "spirv-cross")), true); + + /** Contains the function pointers loaded from the spvc {@link SharedLibrary}. */ + public static final class Functions { diff --git a/games/lwjgl3/files/patch-platform_build__bsd_ant__build.xml b/games/lwjgl3/files/patch-platform_build__bsd_ant__build.xml deleted file mode 100644 --- a/games/lwjgl3/files/patch-platform_build__bsd_ant__build.xml +++ /dev/null @@ -1,22 +0,0 @@ ---- platform_build/bsd_ant/build.xml.orig 2019-12-10 20:24:26 -+++ platform_build/bsd_ant/build.xml -@@ -4,8 +4,8 @@ - - - -- -- -+ -+ - - - -@@ -39,7 +39,7 @@ - - - -- -+ - - - diff --git a/games/lwjgl3/files/patch-update-dependencies.xml b/games/lwjgl3/files/patch-update-dependencies.xml new file mode 100644 --- /dev/null +++ b/games/lwjgl3/files/patch-update-dependencies.xml @@ -0,0 +1,20 @@ +--- update-dependencies.xml.orig 2023-12-18 14:22:59 UTC ++++ update-dependencies.xml +@@ -27,7 +27,7 @@ + + + +- ++ + + + +@@ -54,7 +54,7 @@ + + + +- ++ + + + diff --git a/games/lwjgl3/pkg-descr b/games/lwjgl3/pkg-descr --- a/games/lwjgl3/pkg-descr +++ b/games/lwjgl3/pkg-descr @@ -1 +1,12 @@ -The Lightweight Java Game Library +The Lightweight Java Game Library (LWJGL) is a Java library that enables +cross-platform access to popular native APIs useful in the development +of graphics (OpenGL, Vulkan), audio (OpenAL) and parallel computing +(OpenCL) applications. This access is direct and high-performance, yet +also wrapped in a type-safe and user-friendly layer, appropriate for the +Java ecosystem. +LWJGL is an enabling technology and provides low-level access. It is not +a framework and does not provide higher-level utilities than what the +native libraries expose. As such, novice programmers are encouraged to +try one of the frameworks or game engines that make use of LWJGL, before +working directly with the library. +LWJGL is open source software and freely available at no charge. diff --git a/games/lwjgl3/pkg-plist b/games/lwjgl3/pkg-plist new file mode 100644 --- /dev/null +++ b/games/lwjgl3/pkg-plist @@ -0,0 +1,140 @@ +lib/lwjgl/liblwjgl.so +lib/lwjgl/liblwjgl_libdivide.so +lib/lwjgl/liblwjgl_llvm.so +lib/lwjgl/liblwjgl_lmdb.so +lib/lwjgl/liblwjgl_lz4.so +lib/lwjgl/liblwjgl_meow.so +lib/lwjgl/liblwjgl_meshoptimizer.so +lib/lwjgl/liblwjgl_nanovg.so +lib/lwjgl/liblwjgl_nfd.so +lib/lwjgl/liblwjgl_nfd_portal.so +lib/lwjgl/liblwjgl_nuklear.so +lib/lwjgl/liblwjgl_opengl.so +lib/lwjgl/liblwjgl_opengles.so +lib/lwjgl/liblwjgl_openvr.so +lib/lwjgl/liblwjgl_par.so +lib/lwjgl/liblwjgl_remotery.so +lib/lwjgl/liblwjgl_rpmalloc.so +lib/lwjgl/liblwjgl_sse.so +lib/lwjgl/liblwjgl_stb.so +lib/lwjgl/liblwjgl_tinyexr.so +lib/lwjgl/liblwjgl_tinyfd.so +lib/lwjgl/liblwjgl_tootle.so +lib/lwjgl/liblwjgl_vma.so +lib/lwjgl/liblwjgl_xxhash.so +lib/lwjgl/liblwjgl_yoga.so +lib/lwjgl/liblwjgl_zstd.so +%%JAVAJARDIR%%/lwjgl/lwjgl.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-assimp-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-assimp.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-bgfx-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-bgfx.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-cuda-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-cuda.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-egl-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-egl.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-fmod-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-fmod.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-freetype-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-freetype.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-glfw-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-glfw.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-harfbuzz-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-harfbuzz.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-hwloc-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-hwloc.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-jawt-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-jawt.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-jemalloc-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-jemalloc.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-ktx-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-ktx.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-libdivide-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-libdivide-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-libdivide.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-llvm-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-llvm-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-llvm.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-lmdb-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-lmdb-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-lmdb.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-lz4-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-lz4-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-lz4.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-meow-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-meow-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-meow.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-meshoptimizer-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-meshoptimizer-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-meshoptimizer.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-nanovg-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-nanovg-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-nanovg.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-nfd-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-nfd-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-nfd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-nuklear-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-nuklear-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-nuklear.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-odbc-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-odbc.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-openal-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-openal.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-opencl-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-opencl.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-opengl-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-opengl-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-opengl.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-opengles-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-opengles-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-opengles.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-openvr-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-openvr.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-openxr-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-openxr.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-opus-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-opus.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-par-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-par-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-par.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-remotery-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-remotery-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-remotery.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-rpmalloc-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-rpmalloc-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-rpmalloc.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-shaderc-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-shaderc.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-spvc-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-spvc.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-sse-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-sse-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-sse.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-stb-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-stb-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-stb.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-tinyexr-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-tinyexr-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-tinyexr.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-tinyfd-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-tinyfd-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-tinyfd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-tootle-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-tootle-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-tootle.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-vma-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-vma-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-vma.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-vulkan-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-vulkan.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-xxhash-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-xxhash-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-xxhash.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-yoga-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-yoga-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-yoga.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-zstd-natives-freebsd.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-zstd-sources.jar +%%JAVAJARDIR%%/lwjgl/lwjgl-zstd.jar