Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-237655

Client & Server Libraries should be updated to latest version

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Invalid
    • None
    • 1.17.1, 21w38a
    • None
    • Unconfirmed
    • (Unassigned)

      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).

            Unassigned Unassigned
            PROgrm_JARvis JARvis
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: