mojira.dev
MC-237655

Client & Server Libraries should be updated to latest version

Checking libraries used by the latest snapshot via 

find ~/.minecraft/libraries -type f -name '*.jar'

 shows the following list of Maven artifacts:

~/.minecraft/libraries/commons-codec/commons-codec/1.15/commons-codec-1.15.jar
~/.minecraft/libraries/io/netty/netty-all/4.1.25.Final/netty-all-4.1.25.Final.jar
~/.minecraft/libraries/org/slf4j/slf4j-api/1.8.0-beta4/slf4j-api-1.8.0-beta4.jar
~/.minecraft/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar
~/.minecraft/libraries/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar
~/.minecraft/libraries/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar
~/.minecraft/libraries/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar
~/.minecraft/libraries/org/apache/logging/log4j/log4j-slf4j18-impl/2.14.1/log4j-slf4j18-impl-2.14.1.jar
~/.minecraft/libraries/org/apache/logging/log4j/log4j-api/2.14.1/log4j-api-2.14.1.jar
~/.minecraft/libraries/org/apache/logging/log4j/log4j-core/2.14.1/log4j-core-2.14.1.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-natives-linux.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2-natives-linux.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-natives-linux.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-natives-linux.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-natives-linux.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2.jar
~/.minecraft/libraries/org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2-natives-linux.jar
~/.minecraft/libraries/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2.jar
~/.minecraft/libraries/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-natives-linux.jar
~/.minecraft/libraries/net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.jar
~/.minecraft/libraries/net/java/dev/jna/jna/5.8.0/jna-5.8.0.jar
~/.minecraft/libraries/net/java/dev/jna/jna-platform/5.8.0/jna-platform-5.8.0.jar
~/.minecraft/libraries/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar
~/.minecraft/libraries/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar
~/.minecraft/libraries/com/google/guava/guava/21.0/guava-21.0.jar
~/.minecraft/libraries/com/google/code/gson/gson/2.8.0/gson-2.8.0.jar
~/.minecraft/libraries/com/mojang/blocklist/1.0.5/blocklist-1.0.5.jar
~/.minecraft/libraries/com/mojang/authlib/3.0.35/authlib-3.0.35.jar
~/.minecraft/libraries/com/mojang/brigadier/1.0.18/brigadier-1.0.18.jar
~/.minecraft/libraries/com/mojang/datafixerupper/4.0.26/datafixerupper-4.0.26.jar
~/.minecraft/libraries/com/mojang/javabridge/1.2.24/javabridge-1.2.24.jar
~/.minecraft/libraries/com/mojang/patchy/2.1.6/patchy-2.1.6.jar
~/.minecraft/libraries/com/mojang/text2speech/1.11.3/text2speech-1.11.3-natives-linux.jar
~/.minecraft/libraries/com/mojang/text2speech/1.11.3/text2speech-1.11.3.jar
~/.minecraft/libraries/com/github/oshi/oshi-core/5.7.5/oshi-core-5.7.5.jar
~/.minecraft/libraries/com/ibm/icu/icu4j/66.1/icu4j-66.1.jar
~/.minecraft/libraries/it/unimi/dsi/fastutil/8.2.1/fastutil-8.2.1.jar
~/.minecraft/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar
~/.minecraft/libraries/commons-io/commons-io/2.5/commons-io-2.5.jar

 The problem is that most (if not all) of these are outdated.

Among the most critical ones are:

  • netty-all 4.1.25.Final (the latest one is already 4.1.68.Final).

  • guava 21 (the latest one is already 31.1.1).

  • fastutil 8.21 (the latest one is already 8.56).

While this may be appropriate for Minecraft Client (as the user, at least, does not need to interact with these), this is critical for server implementations based on vanilla minecraft-server as they either have to use limited / more buggy / unstable APIs than the ones actually available (Guava being a good example here) or shade copies of latest versions under different packages.

In general, the possible lack of newer optimizations / fixes is also a problem (although not as serious) for clients.

Thus it seems reasonable to have all libraries updated (at least as part of 1.18, although it may be possible to backport it to 1.17) and the stable strategy to be set up for regular updates of these (GitHub's Dependabot being a good example of maintaining such a dynamic workflow).

Comments 3

⚠️ Please do not mark Unreleased Versions as affected. You don't have access to them yet.

-- I am a bot. This action was performed automatically! If you think it was incorrect, please notify us on Discord or Reddit

Thank you for your report!
However, this issue is Invalid.

You have posted a feature request or a suggestion. This site is for bug reports only.
For suggestions, please visit Minecraft Suggestions on Reddit or visit the Feedback website.

Quick Links:
📓 Bug Tracker Guidelines – 💬 Community Support – 📧 Mojang Support
📓 Project Summary – ✍️ Feedback and Suggestions – 📖 Game Wiki

Due to this coming up on Discord, I'd like to clarify this a bit.

The fact that a library is outdated is generally not considered a bug. If there is a concrete issue that surfaces in the vanilla game that happens due to some library being outdated, please file a separate bug report specifically about that issue. If there's no issue caused by the outdated dependency, it's not a bug but a feature request.

JARvis

(Unassigned)

Unconfirmed

(Unassigned)

1.17.1, 21w38a

Retrieved