支持 FreeBSD x86-64 (#2656)

close #2652
This commit is contained in:
Glavo 2024-01-18 20:13:47 +08:00 committed by GitHub
parent 3f1be961a6
commit 1a1f2133f7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with 716 additions and 119 deletions

View File

@ -195,7 +195,7 @@ public final class Launcher extends Application {
|| configPath.contains("\\INetCache\\")
|| configPath.contains("\\$Recycle.Bin\\")
|| configPath.contains("\\recycler\\");
} else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
return configPath.startsWith("/tmp/")
|| configPath.startsWith("/var/tmp/")
|| configPath.startsWith("/var/cache/")
@ -290,7 +290,7 @@ public final class Launcher extends Application {
.findAny()
.map(bean -> bean.getUsage().getUsed() / 1024 / 1024 + "MB")
.orElse("Unknown"));
if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX)
if (OperatingSystem.CURRENT_OS.isLinuxOrBSD())
LOG.info("XDG Session Type: " + System.getenv("XDG_SESSION_TYPE"));
if (System.getProperty("hmcl.update_source.override") != null) {

View File

@ -55,7 +55,7 @@ public final class Metadata {
static {
String hmclHome = System.getProperty("hmcl.home");
if (hmclHome == null) {
if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
if (OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
String xdgData = System.getenv("XDG_DATA_HOME");
if (StringUtils.isNotBlank(xdgData)) {
HMCL_DIRECTORY = Paths.get(xdgData, "hmcl").toAbsolutePath();

View File

@ -380,7 +380,7 @@ public final class FXUtils {
openCommand = "explorer.exe";
else if (OperatingSystem.CURRENT_OS == OperatingSystem.OSX)
openCommand = "/usr/bin/open";
else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX && new File("/usr/bin/xdg-open").exists())
else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() && new File("/usr/bin/xdg-open").exists())
openCommand = "/usr/bin/xdg-open";
else
openCommand = null;
@ -471,7 +471,7 @@ public final class FXUtils {
LOG.log(Level.WARNING, "An exception occurred while calling rundll32", e);
}
}
if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
if (OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
for (String browser : linuxBrowsers) {
try (final InputStream is = Runtime.getRuntime().exec(new String[]{"which", browser}).getInputStream()) {
if (is.read() != -1) {

View File

@ -33,7 +33,7 @@ public final class FractureiserDetector {
check(falseEdgePath.resolve("run.bat"));
}
}
} else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
Path dataDir = Paths.get(System.getProperty("user.home"), ".config", ".data");
if (Files.exists(dataDir)) {
check(dataDir.resolve(".ref"));

View File

@ -65,8 +65,7 @@ public final class NativePatcher {
final boolean useNativeGLFW = settings.isUseNativeGLFW();
final boolean useNativeOpenAL = settings.isUseNativeOpenAL();
if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX
&& (useNativeGLFW || useNativeOpenAL)
if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() && (useNativeGLFW || useNativeOpenAL)
&& VersionNumber.VERSION_COMPARATOR.compare(gameVersion, "1.19") >= 0) {
version = version.setLibraries(version.getLibraries().stream()
@ -94,7 +93,7 @@ public final class NativePatcher {
if (settings.isNotPatchNatives())
return version;
if (arch.isX86())
if ((os == OperatingSystem.WINDOWS || os == OperatingSystem.LINUX || os == OperatingSystem.OSX) && arch.isX86())
return version;
if ((os == OperatingSystem.OSX || os == OperatingSystem.WINDOWS) && arch == Architecture.ARM64

View File

@ -15,6 +15,8 @@ case "$OSTYPE" in
_HMCL_OS="linux";;
darwin*)
_HMCL_OS="osx";;
freebsd*)
_HMCL_OS="freebsd";;
msys*|cygwin*)
_HMCL_OS="windows";;
*)
@ -57,8 +59,7 @@ fi
# First, find Java in HMCL_JAVA_HOME
if [ -n "${HMCL_JAVA_HOME+x}" ]; then
if [ -x "$HMCL_JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" ]; then
"$HMCL_JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
exit 0
exec "$HMCL_JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
else
if [ "$_HMCL_USE_CHINESE" == true ]; then
echo "环境变量 HMCL_JAVA_HOME 的值无效,请设置为合法的 Java 路径。" 1>&2
@ -75,117 +76,75 @@ fi
case "$_HMCL_ARCH" in
x86_64)
if [ -x "$_HMCL_DIR/jre-x64/bin/$_HMCL_JAVA_EXE_NAME" ]; then
"$_HMCL_DIR/jre-x64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
exit 0
exec "$_HMCL_DIR/jre-x64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
if [ -x "$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" ]; then
"$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
exit 0
exec "$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
;;
x86)
if [ -x "$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" ]; then
"$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
exit 0
exec "$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
;;
arm64)
if [ -x "$_HMCL_DIR/jre-arm64/bin/$_HMCL_JAVA_EXE_NAME" ]; then
"$_HMCL_DIR/jre-arm64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
exit 0
exec "$_HMCL_DIR/jre-arm64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
;;
arm32)
if [ -x "$_HMCL_DIR/jre-arm32/bin/$_HMCL_JAVA_EXE_NAME" ]; then
"$_HMCL_DIR/jre-arm32/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
exit 0
exec "$_HMCL_DIR/jre-arm32/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
;;
loongarch64)
if [ -x "$_HMCL_DIR/jre-loongarch64/bin/$_HMCL_JAVA_EXE_NAME" ]; then
"$_HMCL_DIR/jre-loongarch64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
exit 0
exec "$_HMCL_DIR/jre-loongarch64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
;;
esac
# Find Java in JAVA_HOME
if [ -f "$JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" ]; then
"$JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
exit 0
exec "$JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
# Find Java in PATH
if [ -x "$(command -v $_HMCL_JAVA_EXE_NAME)" ]; then
$_HMCL_JAVA_EXE_NAME $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
exit 0
exec $_HMCL_JAVA_EXE_NAME $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
# Java not found
if [[ "$_HMCL_OS" == "unknown" || "$_HMCL_ARCH" == "unknown" ]]; then
if [ "$_HMCL_USE_CHINESE" == true ]; then
echo "运行 HMCL 需要 Java 运行时环境,请安装 Java 并设置环境变量后重试。" 1>&2
echo "你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。" 1>&2
else
echo "The Java runtime environment is required to run HMCL. " 1>&2
echo "Please install Java and set the environment variables and try again." 1>&2
echo "You can visit the https://docs.hmcl.net/help.html page for help." 1>&2
fi
exit 1
fi
if [[ "$_HMCL_ARCH" == "loongarch64" ]]; then
if [ "$_HMCL_USE_CHINESE" == true ]; then
echo "运行 HMCL 需要 Java 运行时环境,请安装龙芯 JDK (https://docs.hmcl.net/downloads/loongnix.html) 并设置环境变量后重试。" 1>&2
echo "你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。" 1>&2
else
echo "The Java runtime environment is required to run HMCL." 1>&2
echo "Please install Loongson JDK (https://docs.hmcl.net/downloads/loongnix.html) and set the environment variables, then try again." 1>&2
echo "You can visit the https://docs.hmcl.net/help.html page for help." 1>&2
fi
exit 1
fi
case "$_HMCL_OS" in
linux)
_HMCL_DOWNLOAD_PAGE_OS="linux";;
osx)
_HMCL_DOWNLOAD_PAGE_OS="macos";;
windows)
_HMCL_DOWNLOAD_PAGE_OS="windows";;
*)
echo "Unknown os: $_HMCL_OS" 1>&2
exit 1
;;
esac
case "$_HMCL_ARCH" in
arm64)
_HMCL_DOWNLOAD_PAGE_ARCH="arm64";;
arm32)
_HMCL_DOWNLOAD_PAGE_ARCH="arm32";;
x86_64)
_HMCL_DOWNLOAD_PAGE_ARCH="x86_64";;
x86)
_HMCL_DOWNLOAD_PAGE_ARCH="x86";;
*)
echo "Unknown architecture: $_HMCL_ARCH" 1>&2
exit 1
;;
esac
_HMCL_DOWNLOAD_PAGE="https://docs.hmcl.net/downloads/$_HMCL_DOWNLOAD_PAGE_OS/$_HMCL_DOWNLOAD_PAGE_ARCH.html"
if [ "$_HMCL_USE_CHINESE" == true ]; then
echo "运行 HMCL 需要 Java 运行时环境,请安装 Java 并设置环境变量后重试。" 1>&2
echo "$_HMCL_DOWNLOAD_PAGE" 1>&2
echo "你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。" 1>&2
if [ "$_HMCL_OS" == "osx" ]; then
_HMCL_DOWNLOAD_PAGE_OS="macos"
else
echo "The Java runtime environment is required to run HMCL. " 1>&2
echo "Please install Java and set the environment variables and try again." 1>&2
echo "$_HMCL_DOWNLOAD_PAGE" 1>&2
echo "You can visit the https://docs.hmcl.net/help.html page for help." 1>&2
_HMCL_DOWNLOAD_PAGE_OS="$_HMCL_OS"
fi
case "$_HMCL_DOWNLOAD_PAGE_OS-$_HMCL_ARCH" in
windows-x86|windows-x86_64|windows-arm64|linux-x86|linux-x86_64|linux-arm32|linux-arm64|linux-loongarch64|macos-x86_64|macos-arm64)
if [ "$_HMCL_USE_CHINESE" == true ]; then
echo "运行 HMCL 需要 Java 运行时环境,请安装 Java 并设置环境变量后重试。" 1>&2
echo "https://docs.hmcl.net/downloads/$_HMCL_DOWNLOAD_PAGE_OS/$_HMCL_HMCL_ARCH.html" 1>&2
echo "你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。" 1>&2
else
echo "The Java runtime environment is required to run HMCL. " 1>&2
echo "Please install Java and set the environment variables and try again." 1>&2
echo "https://docs.hmcl.net/downloads/$_HMCL_DOWNLOAD_PAGE_OS/$_HMCL_HMCL_ARCH.html" 1>&2
echo "You can visit the https://docs.hmcl.net/help.html page for help." 1>&2
fi
;;
*)
if [ "$_HMCL_USE_CHINESE" == true ]; then
echo "运行 HMCL 需要 Java 运行时环境,请安装 Java 并设置环境变量后重试。" 1>&2
echo "你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。" 1>&2
else
echo "The Java runtime environment is required to run HMCL. " 1>&2
echo "Please install Java and set the environment variables and try again." 1>&2
echo "You can visit the https://docs.hmcl.net/help.html page for help." 1>&2
fi
;;
esac
exit 1

View File

@ -3166,5 +3166,628 @@
"com.mojang:text2speech:1.10.3:natives": null,
"com.mojang:text2speech:1.11.3:natives": null,
"com.mojang:text2speech:1.12.4:natives": null
},
"freebsd-x86_64": {
"org.lwjgl:lwjgl:3.1.6": {
"name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
"sha1": "7202012cf0cadb9ffad4874494920fd8bbd93413",
"size": 792204
}
}
},
"org.lwjgl:lwjgl:3.1.6:natives": {
"name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "2d38355b453edfe2daee1a567bcdb82c0485edcf",
"size": 95872
}
}
},
"org.lwjgl:lwjgl-jemalloc:3.1.6": {
"name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
"sha1": "41256f2c098806304fd224613d3d01b02725470e",
"size": 46421
}
}
},
"org.lwjgl:lwjgl-jemalloc:3.1.6:natives": {
"name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "bdba1662b621228679c7aed87945d1f28c590d5b",
"size": 155867
}
}
},
"org.lwjgl:lwjgl-openal:3.1.6": {
"name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
"sha1": "89d8868c2d688b55e3e923345e4a146c6d034229",
"size": 113094
}
}
},
"org.lwjgl:lwjgl-openal:3.1.6:natives": {
"name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "0fc6495e6752727b629cf03a105c9d56087d4edd",
"size": 597512
}
}
},
"org.lwjgl:lwjgl-opengl:3.1.6": {
"name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
"sha1": "81d0a7fd96bf5eb6257fddf6b77e338d8918bf32",
"size": 931744
}
}
},
"org.lwjgl:lwjgl-opengl:3.1.6:natives": {
"name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "d3e8ec997cef8bc66819c7e0ad7a54182f7aff2a",
"size": 81034
}
}
},
"org.lwjgl:lwjgl-glfw:3.1.6": {
"name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
"sha1": "e6dba9ab8532cb6aac273adf26496ce689999943",
"size": 146829
}
}
},
"org.lwjgl:lwjgl-glfw:3.1.6:natives": {
"name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "4881a965c7679b4984c0d8a5890f07ea85c653c4",
"size": 101847
}
}
},
"org.lwjgl:lwjgl-stb:3.1.6": {
"name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
"sha1": "033fe42d1b37e35afd8b6e2653abc77deadb0730",
"size": 143099
}
}
},
"org.lwjgl:lwjgl-stb:3.1.6:natives": {
"name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
"sha1": "0aad82a857ebb9a3a212dc2c386761d57e11a8f2",
"size": 225735
}
}
},
"org.lwjgl:lwjgl-tinyfd:3.1.6": {
"name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
"sha1": "8b7c94a57f56a5b38b23c02c1cada77dccba9930",
"size": 15917
}
}
},
"org.lwjgl:lwjgl-tinyfd:3.1.6:natives": {
"name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
"sha1": "124d0e48ae1584f09e5701588ae8ad139be26003",
"size": 39077
}
}
},
"org.lwjgl:lwjgl:3.2.2": {
"name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
"sha1": "7202012cf0cadb9ffad4874494920fd8bbd93413",
"size": 792204
}
}
},
"org.lwjgl:lwjgl:3.2.2:natives": {
"name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "2d38355b453edfe2daee1a567bcdb82c0485edcf",
"size": 95872
}
}
},
"org.lwjgl:lwjgl-jemalloc:3.2.2": {
"name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
"sha1": "41256f2c098806304fd224613d3d01b02725470e",
"size": 46421
}
}
},
"org.lwjgl:lwjgl-jemalloc:3.2.2:natives": {
"name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "bdba1662b621228679c7aed87945d1f28c590d5b",
"size": 155867
}
}
},
"org.lwjgl:lwjgl-openal:3.2.2": {
"name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
"sha1": "89d8868c2d688b55e3e923345e4a146c6d034229",
"size": 113094
}
}
},
"org.lwjgl:lwjgl-openal:3.2.2:natives": {
"name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "0fc6495e6752727b629cf03a105c9d56087d4edd",
"size": 597512
}
}
},
"org.lwjgl:lwjgl-opengl:3.2.2": {
"name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
"sha1": "81d0a7fd96bf5eb6257fddf6b77e338d8918bf32",
"size": 931744
}
}
},
"org.lwjgl:lwjgl-opengl:3.2.2:natives": {
"name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "d3e8ec997cef8bc66819c7e0ad7a54182f7aff2a",
"size": 81034
}
}
},
"org.lwjgl:lwjgl-glfw:3.2.2": {
"name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
"sha1": "e6dba9ab8532cb6aac273adf26496ce689999943",
"size": 146829
}
}
},
"org.lwjgl:lwjgl-glfw:3.2.2:natives": {
"name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "4881a965c7679b4984c0d8a5890f07ea85c653c4",
"size": 101847
}
}
},
"org.lwjgl:lwjgl-stb:3.2.2": {
"name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
"sha1": "033fe42d1b37e35afd8b6e2653abc77deadb0730",
"size": 143099
}
}
},
"org.lwjgl:lwjgl-stb:3.2.2:natives": {
"name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
"sha1": "0aad82a857ebb9a3a212dc2c386761d57e11a8f2",
"size": 225735
}
}
},
"org.lwjgl:lwjgl-tinyfd:3.2.2": {
"name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
"sha1": "8b7c94a57f56a5b38b23c02c1cada77dccba9930",
"size": 15917
}
}
},
"org.lwjgl:lwjgl-tinyfd:3.2.2:natives": {
"name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
"sha1": "124d0e48ae1584f09e5701588ae8ad139be26003",
"size": 39077
}
}
},
"org.lwjgl:lwjgl:3.3.1": {
"name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
"sha1": "7202012cf0cadb9ffad4874494920fd8bbd93413",
"size": 792204
}
}
},
"org.lwjgl:lwjgl:3.3.1:natives-linux": {
"name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "2d38355b453edfe2daee1a567bcdb82c0485edcf",
"size": 95872
}
}
},
"org.lwjgl:lwjgl-jemalloc:3.3.1": {
"name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
"sha1": "41256f2c098806304fd224613d3d01b02725470e",
"size": 46421
}
}
},
"org.lwjgl:lwjgl-jemalloc:3.3.1:natives-linux": {
"name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "bdba1662b621228679c7aed87945d1f28c590d5b",
"size": 155867
}
}
},
"org.lwjgl:lwjgl-openal:3.3.1": {
"name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
"sha1": "89d8868c2d688b55e3e923345e4a146c6d034229",
"size": 113094
}
}
},
"org.lwjgl:lwjgl-openal:3.3.1:natives-linux": {
"name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "0fc6495e6752727b629cf03a105c9d56087d4edd",
"size": 597512
}
}
},
"org.lwjgl:lwjgl-opengl:3.3.1": {
"name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
"sha1": "81d0a7fd96bf5eb6257fddf6b77e338d8918bf32",
"size": 931744
}
}
},
"org.lwjgl:lwjgl-opengl:3.3.1:natives-linux": {
"name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "d3e8ec997cef8bc66819c7e0ad7a54182f7aff2a",
"size": 81034
}
}
},
"org.lwjgl:lwjgl-glfw:3.3.1": {
"name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
"sha1": "e6dba9ab8532cb6aac273adf26496ce689999943",
"size": 146829
}
}
},
"org.lwjgl:lwjgl-glfw:3.3.1:natives-linux": {
"name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "4881a965c7679b4984c0d8a5890f07ea85c653c4",
"size": 101847
}
}
},
"org.lwjgl:lwjgl-stb:3.3.1": {
"name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
"sha1": "033fe42d1b37e35afd8b6e2653abc77deadb0730",
"size": 143099
}
}
},
"org.lwjgl:lwjgl-stb:3.3.1:natives-linux": {
"name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
"sha1": "0aad82a857ebb9a3a212dc2c386761d57e11a8f2",
"size": 225735
}
}
},
"org.lwjgl:lwjgl-tinyfd:3.3.1": {
"name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
"sha1": "8b7c94a57f56a5b38b23c02c1cada77dccba9930",
"size": 15917
}
}
},
"org.lwjgl:lwjgl-tinyfd:3.3.1:natives-linux": {
"name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
"sha1": "124d0e48ae1584f09e5701588ae8ad139be26003",
"size": 39077
}
}
},
"org.lwjgl:lwjgl:3.3.2": {
"name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
"sha1": "7202012cf0cadb9ffad4874494920fd8bbd93413",
"size": 792204
}
}
},
"org.lwjgl:lwjgl:3.3.2:natives-linux": {
"name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "2d38355b453edfe2daee1a567bcdb82c0485edcf",
"size": 95872
}
}
},
"org.lwjgl:lwjgl-jemalloc:3.3.2": {
"name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
"sha1": "41256f2c098806304fd224613d3d01b02725470e",
"size": 46421
}
}
},
"org.lwjgl:lwjgl-jemalloc:3.3.2:natives-linux": {
"name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "bdba1662b621228679c7aed87945d1f28c590d5b",
"size": 155867
}
}
},
"org.lwjgl:lwjgl-openal:3.3.2": {
"name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
"sha1": "89d8868c2d688b55e3e923345e4a146c6d034229",
"size": 113094
}
}
},
"org.lwjgl:lwjgl-openal:3.3.2:natives-linux": {
"name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "0fc6495e6752727b629cf03a105c9d56087d4edd",
"size": 597512
}
}
},
"org.lwjgl:lwjgl-opengl:3.3.2": {
"name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
"sha1": "81d0a7fd96bf5eb6257fddf6b77e338d8918bf32",
"size": 931744
}
}
},
"org.lwjgl:lwjgl-opengl:3.3.2:natives-linux": {
"name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "d3e8ec997cef8bc66819c7e0ad7a54182f7aff2a",
"size": 81034
}
}
},
"org.lwjgl:lwjgl-glfw:3.3.2": {
"name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
"sha1": "e6dba9ab8532cb6aac273adf26496ce689999943",
"size": 146829
}
}
},
"org.lwjgl:lwjgl-glfw:3.3.2:natives-linux": {
"name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
"sha1": "4881a965c7679b4984c0d8a5890f07ea85c653c4",
"size": 101847
}
}
},
"org.lwjgl:lwjgl-stb:3.3.2": {
"name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
"sha1": "033fe42d1b37e35afd8b6e2653abc77deadb0730",
"size": 143099
}
}
},
"org.lwjgl:lwjgl-stb:3.3.2:natives-linux": {
"name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
"sha1": "0aad82a857ebb9a3a212dc2c386761d57e11a8f2",
"size": 225735
}
}
},
"org.lwjgl:lwjgl-tinyfd:3.3.2": {
"name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
"sha1": "8b7c94a57f56a5b38b23c02c1cada77dccba9930",
"size": 15917
}
}
},
"org.lwjgl:lwjgl-tinyfd:3.3.2:natives-linux": {
"name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT:natives-freebsd",
"downloads": {
"artifact": {
"path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
"url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
"sha1": "124d0e48ae1584f09e5701588ae8ad139be26003",
"size": 39077
}
}
},
"net.java.jinput:jinput-platform:2.0.5:natives": null,
"com.mojang:text2speech:1.10.3:natives": null,
"com.mojang:text2speech:1.11.3:natives": null,
"com.mojang:text2speech:1.12.4:natives": null,
"com.mojang:text2speech:1.13.9:natives-linux": null
}
}

View File

@ -57,6 +57,7 @@ public final class JavaRepository {
Optional.ofNullable(System.getenv("ProgramFiles(x86)")).orElse("C:\\Program Files (x86)"),
"Minecraft Launcher\\runtime"));
case LINUX:
case FREEBSD:
return Stream.of(FileUtils.tryGetPath(System.getProperty("user.home", ".minecraft/runtime")));
case OSX:
return Stream.of(FileUtils.tryGetPath(System.getProperty("user.home"), "Library/Application Support/minecraft/runtime"));

View File

@ -64,7 +64,8 @@ public final class OSRestriction {
}
public boolean allow() {
if (name != OperatingSystem.UNKNOWN && name != OperatingSystem.CURRENT_OS)
if (name != OperatingSystem.UNKNOWN && name != OperatingSystem.CURRENT_OS
&& !(name == OperatingSystem.LINUX && OperatingSystem.CURRENT_OS.isLinuxOrBSD()))
return false;
if (version != null)

View File

@ -70,14 +70,14 @@ public class DefaultLauncher extends Launcher {
case HIGH:
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/high");
} else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
res.add("nice", "-n", "-5");
}
break;
case ABOVE_NORMAL:
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/abovenormal");
} else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
res.add("nice", "-n", "-1");
}
break;
@ -87,14 +87,14 @@ public class DefaultLauncher extends Launcher {
case BELOW_NORMAL:
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/belownormal");
} else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
res.add("nice", "-n", "1");
}
break;
case LOW:
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/low");
} else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
res.add("nice", "-n", "5");
}
break;

View File

@ -72,7 +72,7 @@ final class ExitWaiter implements Runnable {
} else if (exitCode != 0 || StringUtils.containsOne(errorLines, "Unable to launch")) {
EventBus.EVENT_BUS.fireEvent(new ProcessExitedAbnormallyEvent(this, process));
if (exitCode == 137 && OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
if (exitCode == 137 && OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
exitType = ProcessListener.ExitType.SIGKILL;
} else {
exitType = ProcessListener.ExitType.APPLICATION_ERROR;

View File

@ -326,6 +326,7 @@ public final class JavaVersion {
break;
case LINUX:
case FREEBSD:
javaExecutables.add(listDirectory(Paths.get("/usr/java")).map(JavaVersion::getExecutable)); // Oracle RPMs
javaExecutables.add(listDirectory(Paths.get("/usr/lib/jvm")).map(JavaVersion::getExecutable)); // General locations
javaExecutables.add(listDirectory(Paths.get("/usr/lib32/jvm")).map(JavaVersion::getExecutable)); // General locations

View File

@ -100,7 +100,7 @@ public class ManagedProcess {
// However, this method is supplied since Java 9.
// So, there is no ways to get the pid.
throw new UnsupportedOperationException("Cannot get the pid of a Process on Java 8 on Windows.");
} else if (OperatingSystem.CURRENT_OS == OperatingSystem.OSX || OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
} else if (OperatingSystem.CURRENT_OS == OperatingSystem.OSX || OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
// On Linux or Mac, we can get field UnixProcess.pid field to get the pid.
// All the Java version is accepted.
// See https://github.com/openjdk/jdk/blob/jdk8-b120/jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux

View File

@ -51,6 +51,10 @@ public enum OperatingSystem {
* Mac OS X.
*/
OSX("osx"),
/**
* FreeBSD.
*/
FREEBSD("freebsd"),
/**
* Unknown operating system.
*/
@ -66,6 +70,10 @@ public enum OperatingSystem {
return checkedName;
}
public boolean isLinuxOrBSD() {
return this == LINUX || this == FREEBSD;
}
/**
* The current operating system.
*/
@ -213,6 +221,8 @@ public enum OperatingSystem {
return OSX;
else if (name.contains("solaris") || name.contains("linux") || name.contains("unix") || name.contains("sunos"))
return LINUX;
else if (name.equals("freebsd"))
return FREEBSD;
else
return UNKNOWN;
}
@ -273,6 +283,7 @@ public enum OperatingSystem {
String home = System.getProperty("user.home", ".");
switch (OperatingSystem.CURRENT_OS) {
case LINUX:
case FREEBSD:
return Paths.get(home, "." + folder).toAbsolutePath();
case WINDOWS:
String appdata = System.getenv("APPDATA");

View File

@ -2,17 +2,17 @@
English | [简体中文](PLATFORM_cn.md)
| | Windows | Linux | Mac OS | FreeBSD |
|----------------------------|:----------------------------------------------|:--------------------------|:------------------------------------------------------------------------|:--------|
| x86-64 | ✅️ | ✅️ | ✅️ | |
| x86 | ✅️ | ✅️ | / | / |
| ARM64 | 👌 (Minecraft 1.8+)<br/>✅ (use x86 emulation) | 👌 | 👌 (Minecraft 1.6~1.18.2)<br/>✅ (Minecraft 1.19+)<br/>✅ (use Rosetta 2) | ❔ |
| ARM32 | / | 👌 | / | / |
| MIPS64el | / | 👌 | / | / |
| RISC-V 64 | / | 👌 (Minecraft 1.13+) | / | / |
| LoongArch64 | / | 👌 (both old and new ABI) | / | / |
| PowerPC-64 (Little-Endian) | / | ❔ | / | / |
| S390x | / | ❔ | / | / |
| | Windows | Linux | Mac OS | FreeBSD |
|----------------------------|:----------------------------------------------|:--------------------------|:------------------------------------------------------------------------|:--------------------|
| x86-64 | ✅️ | ✅️ | ✅️ | 👌(Minecraft 1.13+) |
| x86 | ✅️ | ✅️ | / | / |
| ARM64 | 👌 (Minecraft 1.8+)<br/>✅ (use x86 emulation) | 👌 | 👌 (Minecraft 1.6~1.18.2)<br/>✅ (Minecraft 1.19+)<br/>✅ (use Rosetta 2) | ❔ |
| ARM32 | / | 👌 | / | / |
| MIPS64el | / | 👌 | / | / |
| RISC-V 64 | / | 👌 (Minecraft 1.13+) | / | / |
| LoongArch64 | / | 👌 (both old and new ABI) | / | / |
| PowerPC-64 (Little-Endian) | / | ❔ | / | / |
| S390x | / | ❔ | / | / |
Legend:

View File

@ -2,17 +2,17 @@
[English](PLATFORM.md) | 简体中文
| | Windows | Linux | Mac OS | FreeBSD |
|------------------|:--------------------------------------|:---------------------|:-----------------------------------------------------------------------|:--------|
| x86-64 | ✅️ | ✅️ | ✅️ | |
| x86 | ✅️ | ✅️ | / | / |
| ARM64 | 👌 (Minecraft 1.8+)<br/>✅ (使用 x86 模拟) | 👌 | 👌 (Minecraft 1.6~1.18.2)<br/>✅ (Minecraft 1.19+)<br/>✅ (使用 Rosetta 2) | ❔ |
| ARM32 | / | 👌 | / | / |
| MIPS64el | / | 👌 | / | / |
| RISC-V 64 | / | 👌 (Minecraft 1.13+) | / | / |
| LoongArch64 | / | 👌 (包括新旧 ABI) | / | / |
| PowerPC-64 (小端序) | / | ❔ | / | / |
| S390x | / | ❔ | / | / |
| | Windows | Linux | Mac OS | FreeBSD |
|------------------|:--------------------------------------|:---------------------|:-----------------------------------------------------------------------|:--------------------|
| x86-64 | ✅️ | ✅️ | ✅️ | 👌(Minecraft 1.13+) |
| x86 | ✅️ | ✅️ | / | / |
| ARM64 | 👌 (Minecraft 1.8+)<br/>✅ (使用 x86 模拟) | 👌 | 👌 (Minecraft 1.6~1.18.2)<br/>✅ (Minecraft 1.19+)<br/>✅ (使用 Rosetta 2) | ❔ |
| ARM32 | / | 👌 | / | / |
| MIPS64el | / | 👌 | / | / |
| RISC-V 64 | / | 👌 (Minecraft 1.13+) | / | / |
| LoongArch64 | / | 👌 (包括新旧 ABI) | / | / |
| PowerPC-64 (小端序) | / | ❔ | / | / |
| S390x | / | ❔ | / | / |
图例:

View File

@ -43,6 +43,7 @@ val jfxPlatforms = listOf(
Platform("linux-loongarch64", "linux", groupId = "org.glavo.hmcl.openjfx", version = "17.0.8-loongarch64"),
Platform("linux-loongarch64_ow", "linux", groupId = "org.glavo.hmcl.openjfx", version = "19-ea+10-loongson64", unsupportedModules = listOf("media", "web")),
Platform("linux-riscv64", "linux", groupId = "org.glavo.hmcl.openjfx", version = "19.0.2.1-riscv64", unsupportedModules = listOf("media", "web")),
Platform("freebsd-x86_64", "freebsd", groupId = "org.glavo.hmcl.openjfx", version = "14.0.2.1-freebsd", unsupportedModules = listOf("media", "web")),
)
val jfxInClasspath =
@ -59,6 +60,7 @@ if (!jfxInClasspath && JavaVersion.current() >= JavaVersion.VERSION_11) {
osName.contains("win") -> "windows"
osName.contains("mac") -> "osx"
osName.contains("linux") || osName.contains("unix") -> "linux"
osName.contains("freebsd") -> "freebsd"
else -> null
}
}