pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

lwjgl2: create with jMonkeyEngine/lwjgl2 2.9.5



Module Name:	pkgsrc-wip
Committed By:	Mahied Maruf <contact%mechite.com@localhost>
Pushed By:	mechite
Date:		Wed Nov 11 05:45:09 2026 +0000
Changeset:	6057068f07142b9f6b4275348984b8a379819fde

Added Files:
	lwjgl2/COMMIT_MSG
	lwjgl2/DESCR
	lwjgl2/MESSAGE
	lwjgl2/Makefile
	lwjgl2/PLIST
	lwjgl2/distinfo
	lwjgl2/patches/patch-build.xml
	lwjgl2/patches/patch-platform__build_bsd__ant_build.xml
	lwjgl2/patches/patch-src_java_org_lwjgl_LWJGLUtil.java
	lwjgl2/patches/patch-src_java_org_lwjgl_util_applet_AppletLoader.java
	lwjgl2/patches/patch-src_native_linux_opengl_extgl__glx.c

Log Message:
lwjgl2: create with jMonkeyEngine/lwjgl2 2.9.5

This package has been tested as working.

Co-authored-by: Enzo van der Tuin <enzo.van.der.tuin%siriushq.org@localhost>
Signed-off-by: Mahied Maruf <mahied.maruf%siriushq.org@localhost>

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=6057068f07142b9f6b4275348984b8a379819fde

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 lwjgl2/COMMIT_MSG                                  | 10 +++
 lwjgl2/DESCR                                       |  5 ++
 lwjgl2/MESSAGE                                     | 13 ++++
 lwjgl2/Makefile                                    | 46 +++++++++++++
 lwjgl2/PLIST                                       | 10 +++
 lwjgl2/distinfo                                    | 10 +++
 lwjgl2/patches/patch-build.xml                     | 79 ++++++++++++++++++++++
 .../patch-platform__build_bsd__ant_build.xml       | 79 ++++++++++++++++++++++
 .../patch-src_java_org_lwjgl_LWJGLUtil.java        | 15 ++++
 ...rc_java_org_lwjgl_util_applet_AppletLoader.java | 15 ++++
 .../patch-src_native_linux_opengl_extgl__glx.c     | 15 ++++
 11 files changed, 297 insertions(+)

diffs:
diff --git a/lwjgl2/COMMIT_MSG b/lwjgl2/COMMIT_MSG
new file mode 100644
index 0000000000..cb44cf60f3
--- /dev/null
+++ b/lwjgl2/COMMIT_MSG
@@ -0,0 +1,10 @@
+games/lwjgl2: create with jMonkeyEngine/lwjgl2 2.9.5
+
+LWJGL 2 (The Lightweight Java Game Library) provides high-performance
+OpenGL, OpenCL and OpenAL libraries for Java.  Add a copy with patches
+against the jMonkeyEngine "maintained" repository, a binary-compatible
+release of LWJGL 2 that also lacks NetBSD support.  The patches may be
+upstreamed in the future.
+
+Packaged in wip by Mahied Maruf <mahied.maruf%siriushq.org@localhost>
+Packaged in wip by Enzo van der Tuin <enzo.van.der.tuin%siriushq.org@localhost>
diff --git a/lwjgl2/DESCR b/lwjgl2/DESCR
new file mode 100644
index 0000000000..2074d21e1c
--- /dev/null
+++ b/lwjgl2/DESCR
@@ -0,0 +1,5 @@
+The Lightweight Java Game Library (LWJGL) is a solution aimed directly
+at professional and amateur Java programmers alike to enable commercial
+quality games to be written in Java.  LWJGL provides developers access
+to high performance crossplatform libraries such as OpenGL, OpenCL and
+OpenAL, allowing for state of the art 3D games and 3D sound.
diff --git a/lwjgl2/MESSAGE b/lwjgl2/MESSAGE
new file mode 100644
index 0000000000..f667dee5a4
--- /dev/null
+++ b/lwjgl2/MESSAGE
@@ -0,0 +1,13 @@
+===========================================================================
+$NetBSD$
+
+/lib           contains the native (.so) libraries of LWJGL 2.
+/share/lwjgl2  contains modified versions of the Java libraries.
+
+The modified JARs are responsible for loading the natives and recognizing
+NetBSD correctly, and must be linked against by dependent Java programs,
+replacing generic upstream releases of the LWJGL 2 JARs.
+
+This package hosts the jMonkeyEngine "maintained" fork of LWJGL 2, which is
+binary-compatible with programs expecting 2.9.3 or 2.9.4-nightly.
+===========================================================================
diff --git a/lwjgl2/Makefile b/lwjgl2/Makefile
new file mode 100644
index 0000000000..d10e994075
--- /dev/null
+++ b/lwjgl2/Makefile
@@ -0,0 +1,46 @@
+# $NetBSD$
+
+DISTNAME=	lwjgl2-2.9.5
+CATEGORIES=	games java graphics
+MASTER_SITES=	${MASTER_SITE_GITHUB:=jMonkeyEngine/}
+GITHUB_PROJECT=	lwjgl2
+GITHUB_TAG=	v2.9.5
+
+MAINTAINER=	netbsd_pkgsrc%siriushq.org@localhost
+HOMEPAGE=	https://legacy.lwjgl.org
+COMMENT=	Lightweight Java Game Library v2 (LWJGL 2)
+LICENSE=	modified-bsd
+
+USE_LANGUAGES=		c java
+USE_JAVA=		build
+PKG_JVMS_ACCEPTED=	openjdk8
+TOOL_DEPENDS+=		apache-ant-[0-9]*:../../devel/apache-ant
+INSTALLATION_DIRS=	lib share/lwjgl2
+
+do-build:
+	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
+	${PREFIX}/bin/ant \
+	generate-all compile compile_native jars
+
+do-install:
+	${INSTALL_LIB} \
+		${WRKSRC}/libs/netbsd/*.so \
+		${DESTDIR}${PREFIX}/lib/
+	${INSTALL_DATA} \
+		${WRKSRC}/libs/*.jar \
+		${DESTDIR}${PREFIX}/share/lwjgl2/
+
+# Additional target to verify the installation works correctly.  This
+# can be ran by a user to test their binaries, but is not intended to
+# be an automated test.  `make lwjgl-test` opens a window and hangs
+# if the user has run `make install` already.
+lwjgl-test:
+	${PKG_JAVA_HOME}/bin/java \
+		-cp "${PREFIX}/share/lwjgl2/*" \
+		org.lwjgl.test.WindowCreationTest 
+
+.include "../../x11/libX11/buildlink3.mk"
+.include "../../x11/libXext/buildlink3.mk"
+.include "../../x11/libXcursor/buildlink3.mk"
+.include "../../mk/java-vm.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/lwjgl2/PLIST b/lwjgl2/PLIST
new file mode 100644
index 0000000000..0fa25e4493
--- /dev/null
+++ b/lwjgl2/PLIST
@@ -0,0 +1,10 @@
+@comment $NetBSD$
+lib/liblwjgl64.so
+share/lwjgl2/lwjgl.jar
+share/lwjgl2/lwjgl_util.jar
+share/lwjgl2/lwjgl_util_applet.jar
+share/lwjgl2/lwjgl_test.jar
+share/lwjgl2/lzma.jar
+share/lwjgl2/jinput.jar
+share/lwjgl2/AppleJavaExtensions.jar
+share/lwjgl2/asm-debug-all.jar
diff --git a/lwjgl2/distinfo b/lwjgl2/distinfo
new file mode 100644
index 0000000000..bf87ea24e7
--- /dev/null
+++ b/lwjgl2/distinfo
@@ -0,0 +1,10 @@
+$NetBSD$
+
+BLAKE2s (lwjgl2-2.9.5.tar.gz) = d7dcbb6389779db1bf7acc192013a3c1e0a4e74bff506783522cbd7052055654
+SHA512 (lwjgl2-2.9.5.tar.gz) = 6375139e0ac646c4e2e538deccd47dff58a52da3699a08a9847130fa165c632a1aec876fe83d429e3f64813be5dba315526e71c711af7f44dcf433af3a4d8df2
+Size (lwjgl2-2.9.5.tar.gz) = 15548870 bytes
+SHA1 (patch-build.xml) = 61ab4988930d5046be0bbc479faa3550197181ae
+SHA1 (patch-platform__build_bsd__ant_build.xml) = 7001d49996675a6e425da3036b00202319675aca
+SHA1 (patch-src_java_org_lwjgl_LWJGLUtil.java) = 76fea9c523df0d86e57105b9ca228c22a874bffa
+SHA1 (patch-src_java_org_lwjgl_util_applet_AppletLoader.java) = 213a9b68c8bf319004bf36702556d462fdcf0c9a
+SHA1 (patch-src_native_linux_opengl_extgl__glx.c) = bab5a5caa0a665a7d013dda663c5e338669ac6c8
diff --git a/lwjgl2/patches/patch-build.xml b/lwjgl2/patches/patch-build.xml
new file mode 100644
index 0000000000..1e2a801b3b
--- /dev/null
+++ b/lwjgl2/patches/patch-build.xml
@@ -0,0 +1,79 @@
+$NetBSD$
+
+Create NetBSD platform and use shared BSD Ant rules.
+
+--- build.xml.orig	2026-11-11 02:34:05.480883390 +0000
++++ build.xml
+@@ -33,6 +33,7 @@
+ 		<mkdir dir="${lwjgl.temp}/native/windows"   taskname="initialiazing temp/windows folder" />
+ 		<mkdir dir="${lwjgl.temp}/native/linux"     taskname="initialiazing temp/linux folder" />
+ 		<mkdir dir="${lwjgl.temp}/native/freebsd"   taskname="initialiazing temp/freebsd folder" />
++		<mkdir dir="${lwjgl.temp}/native/netbsd"    taskname="initialiazing temp/netbsd folder" />
+ 		<mkdir dir="${lwjgl.temp}/native/openbsd"   taskname="initialiazing temp/openbsd folder" />
+ 		<mkdir dir="${lwjgl.temp}/native/macosx"    taskname="initialiazing temp/macosx folder" />
+ 		<mkdir dir="${lwjgl.temp}/native/solaris"   taskname="initialiazing temp/solaris folder" />
+@@ -255,6 +256,11 @@
+ 				<patternset refid="lwjgl-openbsd.fileset" />
+ 			</fileset>
+ 		</copy>
++		<copy todir="${lwjgl.temp}/native/netbsd" failonerror="false">
++			<fileset dir="${lwjgl.lib}/netbsd">
++				<patternset refid="lwjgl-netbsd.fileset" />
++			</fileset>
++		</copy>
+ 		<copy todir="${lwjgl.temp}/native/macosx">
+ 			<fileset dir="${lwjgl.lib}/macosx">
+ 				<patternset refid="lwjgl-macosx.fileset" />
+@@ -431,6 +437,8 @@
+ 			lwjgl.native.linux.version = ${lwjgl.native.linux.version}
+ 			lwjgl.java.freebsd.version = ${lwjgl.java.linux.version}
+ 			lwjgl.native.freebsd.version = ${lwjgl.native.linux.version}
++			lwjgl.java.netbsd.version = ${lwjgl.java.linux.version}
++			lwjgl.native.netbsd.version = ${lwjgl.native.linux.version}
+ 			lwjgl.java.openbsd.version = ${lwjgl.java.linux.version}
+ 			lwjgl.native.openbsd.version = ${lwjgl.native.linux.version}
+ 			lwjgl.java.macosx.version = ${lwjgl.java.macosx.version}
+@@ -499,6 +507,11 @@
+ 		</condition>
+ 		<antcall target="-compile_native_freebsd" />
+ 
++		<condition property="lwjgl.platform.netbsd">
++			<os name="NetBSD" />
++		</condition>
++		<antcall target="-compile_native_netbsd" />
++
+ 		<condition property="lwjgl.platform.openbsd">
+ 			<os name="OpenBSD" />
+ 		</condition>
+@@ -541,6 +554,14 @@
+ 		</copy>
+ 	</target>
+ 
++	<!-- Compiles LWJGL on NetBSD platforms -->
++	<target name="-compile_native_netbsd" if="lwjgl.platform.netbsd">
++		<ant antfile="platform_build/bsd_ant/build.xml" inheritAll="false"/>
++		<copy todir="${lwjgl.lib}/netbsd">
++			<fileset dir="${lwjgl.bin}/lwjgl" includes="liblwjgl*.so"/>
++		</copy>
++	</target>
++
+ 	<!-- Compiles LWJGL on OpenBSD platforms -->
+ 	<target name="-compile_native_openbsd" if="lwjgl.platform.openbsd">
+ 		<ant antfile="platform_build/bsd_ant/build.xml" inheritAll="false"/>
+@@ -681,16 +702,4 @@
+ 			<bottom><![CDATA[<i>Copyright &#169; 2002-2009 lwjgl.org. All Rights Reserved.</i>]]></bottom>
+ 		</javadoc>
+ 	</target>
+-
+-	<!-- get and copy nightly binaries into libs folder -->
+-	<target name="copy-nightly-binaries" depends="-initialize" description="Copies latest successful nightly binaries into appropriate libs folder">
+-		<delete file="${lwjgl.temp}/lwjgl-${lwjgl.version}.zip" failonerror="false"/>
+-		<get src="http://ci.newdawnsoftware.com/job/LWJGL-git-dist/lastBuild/artifact/dist/lwjgl-${lwjgl.version}.zip"; dest="${lwjgl.temp}" verbose="true"/>
+-		<unzip src="${lwjgl.temp}/lwjgl-${lwjgl.version}.zip" dest="${lwjgl.lib}" overwrite="true">
+-		 	<patternset>
+-				<include name="**/native/**/*lwjgl*"/>
+-			</patternset>
+-			<globmapper from="lwjgl-${lwjgl.version}/native/*" to="*"/>
+-		</unzip>
+-	</target>
+ </project>
diff --git a/lwjgl2/patches/patch-platform__build_bsd__ant_build.xml b/lwjgl2/patches/patch-platform__build_bsd__ant_build.xml
new file mode 100644
index 0000000000..23914fb2e2
--- /dev/null
+++ b/lwjgl2/patches/patch-platform__build_bsd__ant_build.xml
@@ -0,0 +1,79 @@
+$NetBSD$
+
+Create NetBSD platform, and change /usr/X11R6->/usr/X11R7.
+
+--- platform_build/bsd_ant/build.xml.orig	2023-01-13 08:18:50.000000000 +0000
++++ platform_build/bsd_ant/build.xml
+@@ -4,8 +4,8 @@
+ 	<property name="native" location="../../src/native"/>
+ 	<property name="libname32" value="liblwjgl.so"/>
+ 	<property name="libname64" value="liblwjgl64.so"/>
+-	<property name="libs32" value="-L/usr/X11R6/lib -L/usr/local/lib -lm -lX11 -lXext -lXcursor -lXrandr -pthread -L${java.home}/lib/i386 -ljawt" />
+-	<property name="libs64" value="-L/usr/X11R6/lib -L/usr/local/lib -lm -lX11 -lXext -lXcursor -lXrandr -lXxf86vm -pthread -L${java.home}/lib/amd64 -ljawt" />
++	<property name="libs32" value="-L/usr/X11R7/lib -L/usr/local/lib -Wl,-R/usr/X11R7/lib -lm -lX11 -lXext -lXcursor -lXrandr -pthread -L${java.home}/lib/i386 -ljawt" />
++	<property name="libs64" value="-L/usr/X11R7/lib -L/usr/local/lib -Wl,-R/usr/X11R7/lib -lm -lX11 -lXext -lXcursor -lXrandr -lXxf86vm -pthread -L${java.home}/lib/amd64 -ljawt" />
+     <property name="cflags32" value="-O2 -Wall -c -fPIC -std=c99 -Wunused"/>
+ 
+ 	<target name="clean">
+@@ -51,6 +51,13 @@
+ 
+     	<condition property="build.32bit.only">
+             <and>
++                <os name="NetBSD"/>
++                <equals arg1="${hwplatform}" arg2="i386"/>
++            </and>
++        </condition>
++
++    	<condition property="build.32bit.only">
++            <and>
+                 <os name="OpenBSD"/>
+                 <equals arg1="${hwplatform}" arg2="i386"/>
+             </and>
+@@ -66,6 +73,13 @@
+ 
+     	<condition property="build.64bit.only">
+             <and>
++                <os name="NetBSD"/>
++                <equals arg1="${hwplatform}" arg2="amd64"/>
++            </and>
++        </condition>
++
++    	<condition property="build.64bit.only">
++            <and>
+                 <os name="OpenBSD"/>
+                 <equals arg1="${hwplatform}" arg2="amd64"/>
+             </and>
+@@ -81,12 +95,15 @@
+ 			<arg line="${cflags32} ${cflags_pthread}"/>
+ 			<arg value="-I${java.home}/include"/>
+ 			<arg value="-I${java.home}/include/freebsd"/>
++			<arg value="-I${java.home}/include/netbsd"/>
+ 			<arg value="-I${java.home}/include/openbsd"/>
+ 			<arg value="-I${java.home}/../include"/>
+ 			<arg value="-I${java.home}/../include/freebsd"/>
++			<arg value="-I${java.home}/../include/netbsd"/>
+ 			<arg value="-I${java.home}/../include/openbsd"/>
+ 			<arg value="-I/usr/local/include"/>
+-			<arg value="-I/usr/X11R6/include"/>
++			<arg value="-I/usr/X11R7/include"/>
++			<arg value="-I${native}"/>
+ 			<arg value="-I${native}/common"/>
+ 		    <arg value="-I${native}/common/opengl"/>
+ 			<arg value="-I${native}/linux"/>
+@@ -116,12 +133,15 @@
+ 			<arg line="${cflags64} ${cflags_pthread}"/>
+ 			<arg value="-I${java.home}/include"/>
+ 			<arg value="-I${java.home}/include/freebsd"/>
++			<arg value="-I${java.home}/include/netbsd"/>
+ 			<arg value="-I${java.home}/include/openbsd"/>
+ 			<arg value="-I${java.home}/../include"/>
+ 			<arg value="-I${java.home}/../include/freebsd"/>
++			<arg value="-I${java.home}/../include/netbsd"/>
+ 			<arg value="-I${java.home}/../include/openbsd"/>
+             <arg value="-I/usr/local/include"/>
+-			<arg value="-I/usr/X11R6/include"/>
++			<arg value="-I/usr/X11R7/include"/>
++            		<arg value="-I${native}"/>
+             <arg value="-I${native}/common"/>
+ 		    <arg value="-I${native}/common/opengl"/>
+ 			<arg value="-I${native}/linux"/>
diff --git a/lwjgl2/patches/patch-src_java_org_lwjgl_LWJGLUtil.java b/lwjgl2/patches/patch-src_java_org_lwjgl_LWJGLUtil.java
new file mode 100644
index 0000000000..ae2062205a
--- /dev/null
+++ b/lwjgl2/patches/patch-src_java_org_lwjgl_LWJGLUtil.java
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Detect `os.name=NetBSD` appropriately.
+
+--- src/java/org/lwjgl/LWJGLUtil.java.orig	2026-11-11 02:52:17.131751206 +0000
++++ src/java/org/lwjgl/LWJGLUtil.java
+@@ -272,7 +272,7 @@ public class LWJGLUtil {
+ 		final String osName = getPrivilegedProperty("os.name");
+ 		if ( osName.startsWith("Windows") )
+ 			PLATFORM = PLATFORM_WINDOWS;
+-		else if ( osName.startsWith("Linux") || osName.startsWith("FreeBSD") || osName.startsWith("OpenBSD") || osName.startsWith("SunOS") || osName.startsWith("Unix") )
++		else if ( osName.startsWith("Linux") || osName.startsWith("FreeBSD") || osName.startsWith("NetBSD") || osName.startsWith("OpenBSD") || osName.startsWith("SunOS") || osName.startsWith("Unix") )
+ 			PLATFORM = PLATFORM_LINUX;
+ 		else if ( osName.startsWith("Mac OS X") || osName.startsWith("Darwin") )
+ 			PLATFORM = PLATFORM_MACOSX;
diff --git a/lwjgl2/patches/patch-src_java_org_lwjgl_util_applet_AppletLoader.java b/lwjgl2/patches/patch-src_java_org_lwjgl_util_applet_AppletLoader.java
new file mode 100644
index 0000000000..448c6511aa
--- /dev/null
+++ b/lwjgl2/patches/patch-src_java_org_lwjgl_util_applet_AppletLoader.java
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Detect `os.name=NetBSD` and handle appropriately.
+
+--- src/java/org/lwjgl/util/applet/AppletLoader.java.orig	2026-11-11 02:53:21.978010095 +0000
++++ src/java/org/lwjgl/util/applet/AppletLoader.java
+@@ -778,6 +778,8 @@ public class AppletLoader extends Applet
+ 			nativeJarList = getParameter("al_solaris");
+ 		} else if (osName.startsWith("FreeBSD")) {
+ 			nativeJarList = getParameter("al_freebsd");
++		} else if (osName.startsWith("NetBSD")) {
++			nativeJarList = getParameter("al_netbsd");
+ 		} else if (osName.startsWith("OpenBSD")) {
+ 			nativeJarList = getParameter("al_openbsd");
+ 		} else {
diff --git a/lwjgl2/patches/patch-src_native_linux_opengl_extgl__glx.c b/lwjgl2/patches/patch-src_native_linux_opengl_extgl__glx.c
new file mode 100644
index 0000000000..378039891e
--- /dev/null
+++ b/lwjgl2/patches/patch-src_native_linux_opengl_extgl__glx.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Detect `__NetBSD__` macro.  `dlopen` OpenGL as "libGL.so".
+
+--- src/native/linux/opengl/extgl_glx.c.orig	2026-11-11 02:54:19.896995865 +0000
++++ src/native/linux/opengl/extgl_glx.c
+@@ -220,7 +220,7 @@ bool extgl_Open(JNIEnv *env) {
+ 	 *
+ 	 * DRI drivers need this flag to work properly
+ 	 */
+-#ifdef __OpenBSD__
++#if defined(__OpenBSD__) || defined(__NetBSD__)
+ 	lib_gl_handle = dlopen("libGL.so", RTLD_LAZY | RTLD_GLOBAL);
+ #else
+ 	lib_gl_handle = dlopen("libGL.so.1", RTLD_LAZY | RTLD_GLOBAL);


Home | Main Index | Thread Index | Old Index