From 44fb68430174f1db81332fef1c8abb507201654e Mon Sep 17 00:00:00 2001 From: Kenneth Chew <79120643+kthchew@users.noreply.github.com> Date: Mon, 24 Feb 2025 12:02:30 -0500 Subject: [PATCH 1/5] Update JNA 5.* to at least 5.13.0 to fix faulty assertion crash on macOS Signed-off-by: Kenneth Chew <79120643+kthchew@users.noreply.github.com> --- meta/common/mojang-library-patches.json | 110 ++++++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/meta/common/mojang-library-patches.json b/meta/common/mojang-library-patches.json index 74d4d26..3370a6f 100644 --- a/meta/common/mojang-library-patches.json +++ b/meta/common/mojang-library-patches.json @@ -2875,5 +2875,115 @@ }, "name": "org.lwjgl:lwjgl-glfw-natives-linux:3.3.2-lwjgl.1" } + }, + { + "_comment": "Use newer JNA on macOS to prevent crashes due to faulty assertion", + "match": [ + "net.java.dev.jna:jna:5.6.0", + "net.java.dev.jna:jna:5.8.0", + "net.java.dev.jna:jna:5.9.0", + "net.java.dev.jna:jna:5.10.0", + "net.java.dev.jna:jna:5.12.1" + ], + "override": { + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + }, + { + "action": "disallow", + "os": { + "name": "osx-arm64" + } + } + ] + }, + "additionalLibraries": [ + { + "downloads": { + "artifact": { + "sha1": "1200e7ebeedbe0d10062093f32925a912020e747", + "size": 1879325, + "url": "https://libraries.minecraft.net/net/java/dev/jna/jna/5.13.0/jna-5.13.0.jar" + } + }, + "name": "net.java.dev.jna:jna:5.13.0", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + }, + { + "action": "allow", + "os": { + "name": "osx-arm64" + } + } + ] + } + ] + }, + { + "_comment": "Use newer JNA on macOS to prevent crashes due to faulty assertion", + "match": [ + "net.java.dev.jna:jna-platform:5.6.0", + "net.java.dev.jna:jna-platform:5.8.0", + "net.java.dev.jna:jna-platform:5.9.0", + "net.java.dev.jna:jna-platform:5.10.0", + "net.java.dev.jna:jna-platform:5.12.1" + ], + "override": { + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + }, + { + "action": "disallow", + "os": { + "name": "osx-arm64" + } + } + ] + }, + "additionalLibraries": [ + { + "downloads": { + "artifact": { + "sha1": "88e9a306715e9379f3122415ef4ae759a352640d", + "size": 1363209, + "url": "https://libraries.minecraft.net/net/java/dev/jna/jna-platform/5.13.0/jna-platform-5.13.0.jar" + } + }, + "name": "net.java.dev.jna:jna-platform:5.13.0", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + }, + { + "action": "allow", + "os": { + "name": "osx-arm64" + } + } + ] + } + ] } ] From aeec5043b3583839d539855c72829d701675f72d Mon Sep 17 00:00:00 2001 From: TheKodeToad Date: Wed, 16 Apr 2025 11:46:39 +0100 Subject: [PATCH 2/5] Add logging to meta --- meta/model/__init__.py | 16 ++++++++++++++++ meta/model/mojang.py | 17 ++--------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/meta/model/__init__.py b/meta/model/__init__.py index 3d06f99..483a41e 100644 --- a/meta/model/__init__.py +++ b/meta/model/__init__.py @@ -284,6 +284,21 @@ class MojangRules(MetaBase): return self.__root__[item] +class MojangLoggingArtifact(MojangArtifactBase): + id: str + + +class MojangLogging(MetaBase): + @validator("type") + def validate_type(cls, v): + assert v in ["log4j2-xml"] + return v + + file: MojangLoggingArtifact + argument: str + type: str + + class Library(MetaBase): extract: Optional[MojangLibraryExtractRules] name: Optional[GradleSpecifier] @@ -323,6 +338,7 @@ class MetaVersion(Versioned): additional_traits: Optional[List[str]] = Field(alias="+traits") additional_tweakers: Optional[List[str]] = Field(alias="+tweakers") additional_jvm_args: Optional[List[str]] = Field(alias="+jvmArgs") + logging: Optional[MojangLogging] class MetaPackage(Versioned): diff --git a/meta/model/mojang.py b/meta/model/mojang.py index af639f4..b1e2167 100644 --- a/meta/model/mojang.py +++ b/meta/model/mojang.py @@ -10,6 +10,7 @@ from . import ( MojangAssets, MojangArtifact, MojangLibraryDownloads, + MojangLogging, Library, MetaVersion, GradleSpecifier, @@ -182,21 +183,6 @@ class MojangArguments(MetaBase): jvm: Optional[List[Any]] -class MojangLoggingArtifact(MojangArtifactBase): - id: str - - -class MojangLogging(MetaBase): - @validator("type") - def validate_type(cls, v): - assert v in ["log4j2-xml"] - return v - - file: MojangLoggingArtifact - argument: str - type: str - - class MojangJavaComponent(StrEnum): JreLegacy = "jre-legacy" Alpha = "java-runtime-alpha" @@ -353,4 +339,5 @@ class MojangVersion(MetaBase): compatible_java_name=javaName, additional_traits=addn_traits, main_jar=main_jar, + logging=(self.logging or {}).get("client") ) From cb6ad878937520103b3bbb380166f6e791e13873 Mon Sep 17 00:00:00 2001 From: TheKodeToad Date: Tue, 1 Jul 2025 10:03:58 +0100 Subject: [PATCH 3/5] Update forge.py Signed-off-by: TheKodeToad --- meta/common/forge.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta/common/forge.py b/meta/common/forge.py index 25be5a9..80d5345 100644 --- a/meta/common/forge.py +++ b/meta/common/forge.py @@ -15,8 +15,8 @@ LEGACYINFO_FILE = join(BASE_DIR, "legacyinfo.json") FORGE_COMPONENT = "net.minecraftforge" FORGEWRAPPER_LIBRARY = make_launcher_library( - GradleSpecifier("io.github.zekerzhayard", "ForgeWrapper", "prism-2024-02-29"), - "86c6791e32ac6478dabf9663f0ad19f8b6465dfe", - 35483, + GradleSpecifier("io.github.zekerzhayard", "ForgeWrapper", "prism-2025-07-01"), + "9325d3c4f97deffca76633845c3bfc48dcabd18e", + 28917, ) BAD_VERSIONS = ["1.12.2-14.23.5.2851"] From 8bddbf67d84474e250e18a57163bbeb0e96fefd0 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Wed, 2 Jul 2025 22:04:45 +0200 Subject: [PATCH 4/5] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'flake-parts': 'github:hercules-ci/flake-parts/506278e768c2a08bec68eb62932193e341f55c90?narHash=sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS%2Bb4tfNFCwE%3D' (2024-11-01) → 'github:hercules-ci/flake-parts/77826244401ea9de6e3bac47c2db46005e1f30b5?narHash=sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ%3D' (2025-07-01) • Updated input 'git-hooks': 'github:cachix/git-hooks.nix/3308484d1a443fc5bc92012435d79e80458fe43c?narHash=sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE%3D' (2024-11-19) → 'github:cachix/git-hooks.nix/16ec914f6fb6f599ce988427d9d94efddf25fe6d?narHash=sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg%3D' (2025-06-24) • Removed input 'git-hooks/nixpkgs-stable' • Updated input 'nixpkgs': 'github:nixos/nixpkgs/8edf06bea5bcbee082df1b7369ff973b91618b8d?narHash=sha256-sQxuJm8rHY20xq6Ah%2BGwIUkF95tWjGRd1X8xF%2BPkk38%3D' (2024-11-22) → 'github:nixos/nixpkgs/d31a91c9b3bee464d054633d5f8b84e17a637862?narHash=sha256-p%2BUruOjULI5lV16FkBqkzqgFasLqfx0bihLBeFHiZAs%3D' (2025-07-01) Signed-off-by: Sefa Eyeoglu --- flake.lock | 21 +++++++++------------ flake.nix | 1 - 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/flake.lock b/flake.lock index e506ab9..6d54022 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "lastModified": 1751413152, + "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", "type": "github" }, "original": { @@ -26,17 +26,14 @@ "gitignore": "gitignore", "nixpkgs": [ "nixpkgs" - ], - "nixpkgs-stable": [ - "nixpkgs" ] }, "locked": { - "lastModified": 1732021966, - "narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=", + "lastModified": 1750779888, + "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "3308484d1a443fc5bc92012435d79e80458fe43c", + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", "type": "github" }, "original": { @@ -68,11 +65,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1732238832, - "narHash": "sha256-sQxuJm8rHY20xq6Ah+GwIUkF95tWjGRd1X8xF+Pkk38=", + "lastModified": 1751382304, + "narHash": "sha256-p+UruOjULI5lV16FkBqkzqgFasLqfx0bihLBeFHiZAs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "8edf06bea5bcbee082df1b7369ff973b91618b8d", + "rev": "d31a91c9b3bee464d054633d5f8b84e17a637862", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 67c7ebe..aaacaa5 100644 --- a/flake.nix +++ b/flake.nix @@ -11,7 +11,6 @@ url = "github:cachix/git-hooks.nix"; inputs.flake-compat.follows = ""; inputs.nixpkgs.follows = "nixpkgs"; - inputs.nixpkgs-stable.follows = "nixpkgs"; }; }; From ad92133378082285c0e1390faf64751fd6c99366 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Wed, 2 Jul 2025 22:07:32 +0200 Subject: [PATCH 5/5] fix: bump to packaging 25 Signed-off-by: Sefa Eyeoglu --- poetry.lock | 27 +++++++++++++++++++-------- pyproject.toml | 2 +- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index 28d659d..7c68985 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. [[package]] name = "cachecontrol" @@ -6,6 +6,7 @@ version = "0.14.2" description = "httplib2 caching for requests" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "cachecontrol-0.14.2-py3-none-any.whl", hash = "sha256:ebad2091bf12d0d200dfc2464330db638c5deb41d546f6d7aca079e87290f3b0"}, {file = "cachecontrol-0.14.2.tar.gz", hash = "sha256:7d47d19f866409b98ff6025b6a0fca8e4c791fb31abbd95f622093894ce903a2"}, @@ -26,6 +27,7 @@ version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, @@ -37,6 +39,7 @@ version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" +groups = ["main"] files = [ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, @@ -136,6 +139,7 @@ version = "3.16.1" description = "A platform independent file lock." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, @@ -144,7 +148,7 @@ files = [ [package.extras] docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] -typing = ["typing-extensions (>=4.12.2)"] +typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""] [[package]] name = "idna" @@ -152,6 +156,7 @@ version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" +groups = ["main"] files = [ {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, @@ -163,6 +168,7 @@ version = "1.0.8" description = "MessagePack serializer" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:505fe3d03856ac7d215dbe005414bc28505d26f0c128906037e66d98c4e95868"}, {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b7842518a63a9f17107eb176320960ec095a8ee3b4420b5f688e24bf50c53c"}, @@ -224,13 +230,14 @@ files = [ [[package]] name = "packaging" -version = "24.2" +version = "25.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, + {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, + {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, ] [[package]] @@ -239,6 +246,7 @@ version = "1.10.21" description = "Data validation and settings management using python type hints" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "pydantic-1.10.21-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:245e486e0fec53ec2366df9cf1cba36e0bbf066af7cd9c974bbbd9ba10e1e586"}, {file = "pydantic-1.10.21-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6c54f8d4c151c1de784c5b93dfbb872067e3414619e10e21e695f7bb84d1d1fd"}, @@ -305,6 +313,7 @@ version = "2.32.3" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, @@ -326,6 +335,7 @@ version = "4.11.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, @@ -337,18 +347,19 @@ version = "2.2.1" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] [metadata] -lock-version = "2.0" +lock-version = "2.1" python-versions = "^3.8" -content-hash = "2a2fe996845675e1cdf7d80834919eabb819353f394f00a3adbaf0f42e7351b0" +content-hash = "2ed3cbaf03c118578cad2e4ea78c7baefeb741fae05c96472df8a4a59d97a9ae" diff --git a/pyproject.toml b/pyproject.toml index 10cf5dd..295d05a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ python = "^3.8" cachecontrol = "^0.14.0" requests = "^2.31.0" filelock = "^3.13.1" -packaging = "^24.0" +packaging = "^25.0" pydantic = "^1.10.13" [build-system]