Hello, I want to propose a port update but this new version is changing important things from previous version 1.21.11. This is the first Java Edition release version to use the new "year.drop.hotfix" version format announced in December 2025, and to be fully unobfuscated without an accompanying obfuscated variant. - OpenJDK25 is now required - The game now allocates 4 GB of RAM by default (up from 2 GB). - The file structure of how worlds and their data are stored have been changed. This file structure change is failing to upgrade my world from previous version, because world directory is stored in /var/db/minecraft-server and is symlinked in /usr/local/minecraft-server/world. See [1] I successfully upgraded my 'world' from 1.21.11 to 26.1.2 by storing my world directory content (/var/db/minecraft-server) in /usr/local/minecraft/world directory. See [2] I am looking for a smart way to update the port to new Minecraft versions. What do you suggest? --- [1] root@freebsdvm:/var/db/minecraft-server # /usr/local/bin/minecraft-server Starting net.minecraft.server.Main WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/usr/local/minecraft-server/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar) WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release [22:05:43] [ServerMain/INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD] [22:05:44] [ServerMain/INFO]: Starting upgrade for world "world" [22:05:44] [ServerMain/ERROR]: Failed to start the minecraft server net.minecraft.util.filefix.AbortedFileFixException: net.minecraft.util.filefix.virtualfilesystem.exception.CowFSSymlinkException: Cannot build copy-on-write file system when symlink is present: ./world at net.minecraft.util.filefix.FileFixerUpper.fix(FileFixerUpper.java:95) at net.minecraft.util.filefix.FileFixerUpper.fix(FileFixerUpper.java:80) at net.minecraft.server.Main.main(Main.java:157) at net.minecraft.bundler.Main.lambda$run$0(Main.java:54) at java.base/java.lang.Thread.run(Thread.java:1474) Caused by: net.minecraft.util.filefix.virtualfilesystem.exception.CowFSSymlinkException: Cannot build copy-on-write file system when symlink is present: ./world at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem$1.checkAttributes(CopyOnWriteFileSystem.java:97) at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem$1.visitFile(CopyOnWriteFileSystem.java:71) at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem$1.visitFile(CopyOnWriteFileSystem.java:68) at java.base/java.nio.file.Files.walkFileTree(Files.java:2543) at java.base/java.nio.file.Files.walkFileTree(Files.java:2609) at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem.buildFileTreeFrom(CopyOnWriteFileSystem.java:68) at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem.<init>(CopyOnWriteFileSystem.java:52) at net.minecraft.util.filefix.virtualfilesystem.CopyOnWriteFileSystem.create(CopyOnWriteFileSystem.java:59) at net.minecraft.util.filefix.FileFixerUpper.applyFileFixersOnCow(FileFixerUpper.java:176) at net.minecraft.util.filefix.FileFixerUpper.startOrContinueFileFixing(FileFixerUpper.java:129) at net.minecraft.util.filefix.FileFixerUpper.fix(FileFixerUpper.java:93) ... 4 more --- [2] root@freebsdvm:/usr/local/minecraft-server/world # /usr/local/bin/minecraft-server Starting net.minecraft.server.Main WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/usr/local/minecraft-server/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar) WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release [21:56:02] [ServerMain/INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD] [21:56:02] [ServerMain/INFO]: Starting upgrade for world "world" [21:56:02] [ServerMain/INFO]: Upgrading progress: 2% [21:56:02] [ServerMain/WARN]: Failed to delete directory '/DIM-1', as it's not empty. Content: [/DIM-1/uid.dat, /DIM-1/level.dat, /DIM-1/level.dat_old] [21:56:05] [ServerMain/INFO]: Upgrading progress: 38% [21:56:05] [ServerMain/INFO]: File system capabilities: FileSystemCapabilities[atomicMove=true, hardLinks=true] [21:56:05] [ServerMain/INFO]: Applying file structure changes for world "world" [21:56:05] [ServerMain/INFO]: Moving new hardlinked world to top level [21:56:05] [ServerMain/INFO]: Start cleanup [21:56:05] [ServerMain/INFO]: Moving out old world folder [21:56:05] [ServerMain/INFO]: Moving in new world folder [21:56:05] [ServerMain/INFO]: Done applying file structure changes for world "world". Cleaning up outdated data... [21:56:05] [ServerMain/INFO]: Upgrade done for world "world" [21:56:09] [ServerMain/INFO]: Loaded 1515 recipes [21:56:09] [ServerMain/INFO]: Loaded 1617 advancements [21:56:09] [Server thread/INFO]: Starting minecraft server version 26.1.2 [21:56:09] [Server thread/INFO]: Loading properties [21:56:09] [Server thread/INFO]: Default game type: SURVIVAL [21:56:09] [Server thread/INFO]: Generating keypair [21:56:09] [Server thread/INFO]: Starting Minecraft server on *:25565 [21:56:10] [Server thread/INFO]: Preparing level "world" [21:56:10] [Server thread/INFO]: Loading 0 persistent chunks... [21:56:10] [Server thread/INFO]: Preparing spawn area: 100% [21:56:10] [Server thread/INFO]: Time elapsed: 11 ms [21:56:10] [Server thread/INFO]: Done (0.650s)! For help, type "help" [21:56:10] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld [21:56:11] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether [21:56:11] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end [21:56:11] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved [21:56:11] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved [21:56:11] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved [21:56:11] [Server thread/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved [21:57:11] [Server thread/INFO]: Server empty for 60 seconds, pausing --- Full 26.1 version changelog: https://www.minecraft.net/en-us/article/minecraft-java-edition-26-1 26.1.2 changelog: https://www.minecraft.net/en-us/article/minecraft-java-edition-26-1-2
You can write migration instructions in UPDATING and in pkg-message. And add this to patch.
Friendly ping.
Created attachment 270526 [details] Update from 1.21.11 to 26.1.2 I propose this patch. Please feel free to correct me if my explaination is not clear in UPDATING.
Maybe change in games/minecraft-server/files/minecraft.in: > # minecraft_args (Default: "--enable-native-access=ALL-UNNAMED") > minecraft_args=${minecraft_args:-"--enable-native-access=ALL-UNNAMED"} ?
Created attachment 270554 [details] Update from 1.21.11 to 26.1.2
Comment on attachment 270554 [details] Update from 1.21.11 to 26.1.2 Thank you for your remark vvd@ I added this to avoid warning message when launching the game. Starting net.minecraft.server.Main WARNING: A restricted method in java.lang.System has been called WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/usr/local/minecraft-server/libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar) WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module WARNING: Restricted methods will be blocked in a future release unless native access is enabled More information: https://docs.oracle.com/en/java/javase/25/core/restricted-methods.html
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=ede780b6f47049d7421af078ead3baa66c37cd32 commit ede780b6f47049d7421af078ead3baa66c37cd32 Author: Alexandre Labarre <freebsd.tug890@passmail.net> AuthorDate: 2026-05-10 02:31:46 +0000 Commit: Vladimir Druzenko <vvd@FreeBSD.org> CommitDate: 2026-05-10 03:08:33 +0000 games/minecraft-server: Update 1.21.11 => 26.1.2 Changelogs: https://www.minecraft.net/en-us/article/minecraft-java-edition-26-1 https://www.minecraft.net/en-us/article/minecraft-java-edition-26-1-1 https://www.minecraft.net/en-us/article/minecraft-java-edition-26-1-2 PR: 294942 Approved by: Jonathan Price <freebsd@jonathanprice.org> (maintainer, implicit) Sponsored by: UNIS Labs Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org> UPDATING | 31 +++++++++++++++++++++++++++++ games/minecraft-server/Makefile | 7 +++---- games/minecraft-server/distinfo | 6 +++--- games/minecraft-server/files/java-args.txt | 2 +- games/minecraft-server/files/minecraft.in | 4 ++-- games/minecraft-server/files/pkg-message.in | 28 ++++++++++++++++++++++++-- games/minecraft-server/pkg-plist | 4 ++-- 7 files changed, 68 insertions(+), 14 deletions(-)
Thanks.