diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix index 8489d32a8ed7..12125d761098 100644 --- a/pkgs/games/mindustry/default.nix +++ b/pkgs/games/mindustry/default.nix @@ -1,4 +1,5 @@ -{ lib, stdenv, fetchurl +{ lib +, stdenv , fetchpatch , makeWrapper , makeDesktopItem @@ -6,13 +7,13 @@ , fetchFromGitHub , gradle , jdk17 -, perl # for arc , SDL2 , pkg-config -, stb , ant +, curl +, wget , alsa-lib , alsa-plugins , glew @@ -42,7 +43,6 @@ let buildVersion = makeBuildVersion version; jdk = jdk17; - gradleWithJdk = gradle.override { java = jdk; }; selectedGlew = if enableWayland then glew-egl else glew; @@ -65,22 +65,29 @@ let rev = "v0.9"; hash = "sha256-6KlqOtA19MxeqZttNyNrMU7pKqzlNiA4rBZKp9ekanc="; }; - freetypeSource = fetchurl { - # This is pinned in Arc's extensions/freetype/build.gradle - url = "https://download.savannah.gnu.org/releases/freetype/freetype-2.10.4.tar.gz"; - hash = "sha256-Xqt5XrsjrHcAHPtot9TVC11sdGkkewsBsslTJp9ljaw="; - }; - glewSource = fetchurl { - # This is pinned in Arc's backends/backend-sdl/build.gradle - url = "https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.zip"; - hash = "sha256-qQRqkTd0OVoJXtzAsKwtgcOqzKYXh7OYOblB6b4U4NQ="; - }; - SDLmingwSource = fetchurl { - # This is pinned in Arc's backends/backend-sdl/build.gradle - url = "https://www.libsdl.org/release/SDL2-devel-2.0.20-mingw.tar.gz"; - hash = "sha256-OAlNgqhX1sYjUuXFzex0lIxbTSXFnL0pjW0jNWiXa9E="; + + desktopItem = makeDesktopItem { + name = "Mindustry"; + desktopName = "Mindustry"; + exec = "mindustry"; + icon = "mindustry"; + categories = [ "Game" ]; }; +in +assert lib.assertMsg (enableClient || enableServer) + "mindustry: at least one of 'enableClient' and 'enableServer' must be true"; +stdenv.mkDerivation { + inherit pname version; + + unpackPhase = '' + cp -r ${Mindustry} Mindustry + cp -r ${Arc} Arc + chmod -R u+w -- Mindustry Arc + cp -r ${soloud} Arc/arc-core/csrc/soloud + chmod -R u+w -- Arc/arc-core/csrc/soloud + ''; + patches = [ ./0001-fix-include-path-for-SDL2-on-linux.patch # Fix build with gradle 8.8, remove on next Arc release @@ -96,69 +103,45 @@ let extraPrefix = "Arc/"; stripLen = 1; }) + (fetchpatch { + url = "https://github.com/Anuken/Mindustry/commit/695dad201fb4c2b4252f2ee5abde32e968169ba5.patch"; + hash = "sha256-bbTjyfUl+XFG/dgD1XPddVKD/ImOP5ARAP3q0FPnt58="; + name = "always-use-local-arc-1.patch"; + stripLen = 1; extraPrefix = "Mindustry/"; + }) + (fetchpatch { + url = "https://github.com/Anuken/Mindustry/commit/f6082225e859c759c8d9c944250b6ecd490151ed.patch"; + hash = "sha256-xFHdAUTS1EiHNQqw6qfzYk2LMr/DjeHoEzQfcfOUcFs="; + name = "always-use-local-arc-2.patch"; + stripLen = 1; extraPrefix = "Mindustry/"; + }) + (fetchpatch { + url = "https://github.com/Anuken/Mindustry/commit/e4eadbbb7f35db3093a0a3d13272bdfbedfaead3.patch"; + hash = "sha256-L/XQAxh6UgKsTVTgQKDXNRIAdtVtaY4ameT/Yb/+1p8="; + name = "always-use-local-arc-3.patch"; + stripLen = 1; extraPrefix = "Mindustry/"; + }) ]; - unpackPhase = '' - cp -r ${Mindustry} Mindustry - cp -r ${Arc} Arc - chmod -R u+w -- Mindustry Arc - cp ${stb.src}/stb_image.h Arc/arc-core/csrc/ - cp -r ${soloud} Arc/arc-core/csrc/soloud - chmod -R u+w -- Arc - ''; - - desktopItem = makeDesktopItem { - name = "Mindustry"; - desktopName = "Mindustry"; - exec = "mindustry"; - icon = "mindustry"; - categories = [ "Game" ]; - }; - - cleanupMindustrySrc = '' + postPatch = '' # Ensure the prebuilt shared objects don't accidentally get shipped rm -r Arc/natives/natives-*/libs/* rm -r Arc/backends/backend-*/libs/* + cd Mindustry + # Remove unbuildable iOS stuff - sed -i '/^project(":ios"){/,/^}/d' Mindustry/build.gradle - sed -i '/robo(vm|VM)/d' Mindustry/build.gradle - rm Mindustry/ios/build.gradle + sed -i '/^project(":ios"){/,/^}/d' build.gradle + sed -i '/robo(vm|VM)/d' build.gradle + rm ios/build.gradle ''; - # fake build to pre-download deps into fixed-output derivation - deps = stdenv.mkDerivation { - pname = "${pname}-deps"; - inherit version unpackPhase patches; - postPatch = cleanupMindustrySrc; - - nativeBuildInputs = [ gradleWithJdk perl ]; - # Here we download dependencies for both the server and the client so - # we only have to specify one hash for 'deps'. Deps can be garbage - # collected after the build, so this is not really an issue. - buildPhase = '' - pushd Mindustry - export GRADLE_USER_HOME=$(mktemp -d) - gradle --no-daemon resolveDependencies - popd - ''; - # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) - installPhase = '' - find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - ''; - outputHashMode = "recursive"; - outputHash = "sha256-hbWLsWorEo+1BBURvrFMXpxvZjJBZ1p7HVlJN5e5JZc="; + mitmCache = gradle.fetchDeps { + inherit pname; + data = ./deps.json; }; -in -assert lib.assertMsg (enableClient || enableServer) - "mindustry: at least one of 'enableClient' and 'enableServer' must be true"; -stdenv.mkDerivation rec { - inherit pname version unpackPhase patches; - - postPatch = cleanupMindustrySrc; + __darwinAllowLocalNetworking = true; buildInputs = lib.optionals enableClient [ SDL2 @@ -167,33 +150,26 @@ stdenv.mkDerivation rec { ]; nativeBuildInputs = [ pkg-config - gradleWithJdk + gradle makeWrapper jdk ] ++ lib.optionals enableClient [ ant copyDesktopItems + curl + wget ]; desktopItems = lib.optional enableClient desktopItem; - buildPhase = with lib; '' - export GRADLE_USER_HOME=$(mktemp -d) + gradleFlags = [ "-Pbuildversion=${buildVersion}" "-Dorg.gradle.java.home=${jdk}" ]; - # point to offline repo - sed -ie "1ipluginManagement { repositories { maven { url '${deps}' } } }; " Mindustry/settings.gradle - sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" Mindustry/build.gradle - sed -ie "s#mavenCentral()#mavenCentral(); maven { url '${deps}' }#g" Arc/build.gradle - sed -ie "s#wget.*freetype.* -O #cp ${freetypeSource} #" Arc/extensions/freetype/build.gradle - sed -ie "/curl.*glew/{;s#curl -o #cp ${glewSource} #;s# -L http.*\.zip##;}" Arc/backends/backend-sdl/build.gradle - sed -ie "/curl.*sdlmingw/{;s#curl -o #cp ${SDLmingwSource} #;s# -L http.*\.tar.gz##;}" Arc/backends/backend-sdl/build.gradle - - pushd Mindustry + buildPhase = with lib; optionalString enableServer '' + gradle server:dist '' + optionalString enableClient '' - pushd ../Arc - gradle --offline --no-daemon jnigenBuild -Pbuildversion=${buildVersion} - gradle --offline --no-daemon jnigenJarNativesDesktop -Pbuildversion=${buildVersion} + gradle jnigenBuild + gradle jnigenJarNativesDesktop glewlib=${lib.getLib selectedGlew}/lib/libGLEW.so sdllib=${lib.getLib SDL2}/lib/libSDL2.so patchelf backends/backend-sdl/libs/linux64/libsdl-arc*.so \ @@ -204,9 +180,7 @@ stdenv.mkDerivation rec { cp extensions/freetype/libs/*/* natives/natives-freetype-desktop/libs/ popd - gradle --offline --no-daemon desktop:dist -Pbuildversion=${buildVersion} - '' + optionalString enableServer '' - gradle --offline --no-daemon server:dist -Pbuildversion=${buildVersion} + gradle desktop:dist ''; installPhase = with lib; let @@ -247,9 +221,13 @@ stdenv.mkDerivation rec { runHook postInstall ''; - passthru.tests = { - nixosTest = nixosTests.mindustry; - }; + postGradleUpdate = '' + # this fetches non-gradle dependencies + cd ../Arc + gradle preJni + ''; + + passthru.tests.nixosTest = nixosTests.mindustry; meta = with lib; { homepage = "https://mindustrygame.github.io/"; @@ -261,9 +239,8 @@ stdenv.mkDerivation rec { ]; license = licenses.gpl3Plus; maintainers = with maintainers; [ chkno fgaz thekostins ]; - platforms = if enableClient then platforms.x86_64 else platforms.linux; - # Hash mismatch on darwin: - # https://github.com/NixOS/nixpkgs/pull/105590#issuecomment-737120293 - broken = stdenv.isDarwin; + platforms = platforms.all; + # TODO alsa-lib is linux-only, figure out what dependencies are required on Darwin + broken = enableClient && stdenv.isDarwin; }; } diff --git a/pkgs/games/mindustry/deps.json b/pkgs/games/mindustry/deps.json new file mode 100644 index 000000000000..eca1452addf7 --- /dev/null +++ b/pkgs/games/mindustry/deps.json @@ -0,0 +1,294 @@ +{ + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", + "!version": 1, + "https://download.savannah.gnu.org": { + "releases/freetype/freetype-2.10.4": { + "tar.gz": "sha256-Xqt5XrsjrHcAHPtot9TVC11sdGkkewsBsslTJp9ljaw=" + } + }, + "https://github.com": { + "nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0": { + "zip": "sha256-qQRqkTd0OVoJXtzAsKwtgcOqzKYXh7OYOblB6b4U4NQ=" + } + }, + "https://jitpack.io/com/github": { + "Anuken#jabel/0.9.0": { + "jar": "sha256-uFYvq/P7dVZNH8xfSZPmm57JI+h47A7YqOaN3bsFLuo=", + "module": "sha256-r0Hiyh4MXzQkBudNhixHcXf1QOr4GWU841ypzRa0w/g=", + "pom": "sha256-2Zp//AsIqW7/+5ybmtConz5ykh3ZYrFBi6SzLuKTz8A=" + }, + "Anuken#rhino/73a812444ac388ac2d94013b5cadc8f70b7ea027": { + "jar": "sha256-g2+szbtgsHvalu5F4kygVDN89kk0zvzVSw3EOcAL11I=", + "module": "sha256-BbXoWzXoJGKhH6kA6EiluDHhfs3th9X+ojLLZuGISOg=", + "pom": "sha256-ngLvPqdMq7ayWlDHf7qr8MGYsDh+uMK6OYcDX9y5bXk=" + }, + "Anuken#steamworks4j/0b86023401880bb5e586bc404bedbaae9b1f1c94": { + "jar": "sha256-YbaPhCjWtlExwQ1dFNA6JrkiAfQYWxJ0VRV9rLnoYhY=", + "pom": "sha256-ktvhk8s3T1zswrYWuXz+cWHRyK3YbkikD5Sv/gjcfz4=" + }, + "libgdx/gdx-jnigen#gdx-jnigen-gradle/dffc32eecbf77aad264991ea44f1767a58cbee9d": { + "jar": "sha256-nuUxM4zDV48+8Z+Rsn2dhEhkH4wOcfG62lz84BUhDH0=", + "module": "sha256-OU9DEb3A9A7OtnJ6jQkS32KImMlNn9NX7eKMX4YVh5E=", + "pom": "sha256-0THLPDNZDZe9PbIEPl71pGwL7E6Oq2Y5LiVevltdbP8=" + }, + "libgdx/gdx-jnigen#gdx-jnigen/28dd11fa4c33a7ae9e58897912b52ba7d53d54fe": { + "jar": "sha256-fPszziBPrTDACbBuL6OxJ2oK1iA4izBk4TMHK53b+GQ=", + "module": "sha256-0RR9vgSqD1ISADHSO5OV7rxi+6HM9h0ZO4kEYw/Ao4Y=", + "pom": "sha256-vnz59i+3/wY9RizYWGMOuebfrZO4HrpOYV73ShIFH2g=" + }, + "libgdx/gdx-jnigen#gdx-jnigen/dffc32eecbf77aad264991ea44f1767a58cbee9d": { + "jar": "sha256-bd8xr4/YgvQbvdFkayXdJKpMvYwE9XlISof20vsfcSU=", + "module": "sha256-zQ1DewRtrsdTgxXINq7pOa+UJwnDNrGsVKnX0K/AWRQ=", + "pom": "sha256-HWFvvs+x6DyJioqkRDDVvf0GCKfxPTjhdec8JC2PZvA=" + } + }, + "https://plugins.gradle.org/m2/org/jetbrains/kotlin": { + "jvm#org.jetbrains.kotlin.jvm.gradle.plugin/1.6.0": { + "pom": "sha256-FeMDwR4tRlKdxOmvd853pFyge29WJvHjkFslMyVlJAg=" + }, + "kapt#org.jetbrains.kotlin.kapt.gradle.plugin/1.6.0": { + "pom": "sha256-EPl8xsN9xufqKiw5ptVSBLiMrZkniaiGvLSaH/RURV8=" + } + }, + "https://raw.githubusercontent.com": { + "nothings/stb/e140649ccf40818781b7e408f6228a486f6d254b/stb_image": { + "h": "sha256-jlsNcX38ioNMl+8gLSDnjQg9AJWG4XMcmFgX0BVdVow=" + } + }, + "https://repo.maven.apache.org/maven2": { + "com/github/gundy#semver4j/0.16.4": { + "pom": "sha256-MgAdskQ7M53SH1t5/ynRreci0boIDCFL3oGfD3LRYE0=" + }, + "com/github/gundy#semver4j/0.16.4/nodeps": { + "jar": "sha256-P1nspRY3TM1P01UWJb9Q+KSxkfcAUI985IZkYKYSivA=" + }, + "com/github/javaparser#javaparser-core/3.14.14": { + "jar": "sha256-Z4GYXisXFCvQfhp75Zt5NIXLAms3ZnN30WYQrpgUi24=", + "pom": "sha256-70ERyN/Uh+Zp5w1Qzz2z8O3YuTLKvjXmYzuzzuuGpIo=" + }, + "com/github/javaparser#javaparser-parent/3.14.14": { + "pom": "sha256-RwgtW3eLzkmjEnRtUWHJ48yhfYwh2eO+MTF68Io2FDc=" + }, + "com/google/code/findbugs#jsr305/3.0.2": { + "jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=", + "pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4=" + }, + "com/google/code/gson#gson-parent/2.8.6": { + "pom": "sha256-NzZGOFnsGSZyleiUlAroKo9oRBMDESL+Nc58/34wp3Q=" + }, + "com/google/code/gson#gson/2.8.6": { + "jar": "sha256-yPtIOQVNKAswM/gA0fWpfeLwKOuLoutFitKH5Tbz8l8=", + "pom": "sha256-IXRBWmRzMtMP2gS9HPxwij7MhOr3UX9ZYYjYJE4QORE=" + }, + "com/google/errorprone#error_prone_annotations/2.3.4": { + "jar": "sha256-uvfW6pfOYGxT4RtoVLpfLOfvXCTd3wr6GNEmC9JbACw=", + "pom": "sha256-EyZziktPfMrPYHuGahH7hRk+9g9qWUYRh85yZfm+W+0=" + }, + "com/google/errorprone#error_prone_parent/2.3.4": { + "pom": "sha256-QElbQ3pg0jmPD9/AVLidnDlKgjR6J0oHIcLpUKQwIYY=" + }, + "com/google/guava#failureaccess/1.0.1": { + "jar": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=", + "pom": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk=" + }, + "com/google/guava#guava-parent/26.0-android": { + "pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ=" + }, + "com/google/guava#guava-parent/29.0-jre": { + "pom": "sha256-alf54C9436L0vaNBYGWmRCauG2beIoz24Zbi4ZElU78=" + }, + "com/google/guava#guava/29.0-jre": { + "jar": "sha256-sixftm1h57lSJTHQSy+RW1FY6AqgtA7nKCyL+wew2iU=", + "pom": "sha256-kCfpNAmJA9KH8bphyLZfAdHR4dp6b7zAS/PeBUQBRCY=" + }, + "com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": { + "jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=", + "pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s=" + }, + "com/google/j2objc#j2objc-annotations/1.3": { + "jar": "sha256-Ia8wySJnvWEiwOC00gzMtmQaN+r5VsZUDsRx1YTmSns=", + "pom": "sha256-X6yoJLoRW+5FhzAzff2y/OpGui/XdNQwTtvzD6aj8FU=" + }, + "com/squareup#javapoet/1.12.1": { + "jar": "sha256-g/D9S66+w78p7jrSwCSzBl3e+CWlqin33PXBifn6KWI=", + "pom": "sha256-pxrD2PJ8ua0yyHtdiVnyLWca60YMejVdCfV35MV+TF8=" + }, + "de/undercouch#gradle-download-task/4.1.1": { + "jar": "sha256-6wi1cOQI1GRnBecKlJYU1DnqKxFFXxZSqwMw3olU2rk=", + "pom": "sha256-heZgcmDbvbXoXxmIhAsNmsS+kRnd6QobrKjqd1ZGQVo=" + }, + "net/java/dev/jna#jna/5.6.0": { + "jar": "sha256-VVfiNaiqL5dm1dxgnWeUjyqIMsLXls6p7x1svgs7fq8=", + "pom": "sha256-X+gbAlWXjyRhbTexBgi3lJil8wc+HZsgONhzaoMfJgg=" + }, + "org/apiguardian#apiguardian-api/1.1.0": { + "jar": "sha256-qarp/4rj4XoqGPeRdegrFiZ8JG+708qd+7spCwjc/dQ=", + "pom": "sha256-qUW5y1zZt3sscRhE5lnEPsBw71nZ9Qn6n0wYYbSGJxE=" + }, + "org/checkerframework#checker-qual/2.11.1": { + "jar": "sha256-AVIkpLHcbebaBTJz1Np9Oc/qIOYwOBafxFrA0dycWTg=", + "pom": "sha256-zy4MkNj3V0VfSiWOpglzkFNmO9XaannZvVP5NaR955w=" + }, + "org/jetbrains#annotations/13.0": { + "jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=", + "pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" + }, + "org/jetbrains/intellij/deps#trove4j/1.0.20181211": { + "jar": "sha256-r/t8haPIe9z2n/HbuE3hH2PckxKTk0vAjNerGN4INgE=", + "pom": "sha256-MQpqotkFNMMrj0bx/JjNDtrpXc38oj4oR+Xvqa4MAZo=" + }, + "org/jetbrains/kotlin#kotlin-android-extensions/1.6.0": { + "jar": "sha256-TPrz8BIFF78dbY07r8+uHomMZ9P3yLdocIG/uBk8ftQ=", + "pom": "sha256-hlMj+0VThiKBTO4p4gN1AamL/eUwVzg2+gCBPvSVcR4=" + }, + "org/jetbrains/kotlin#kotlin-annotation-processing-gradle/1.6.0": { + "jar": "sha256-hnP///sAqxYDPZD2x/7BC10xDKQPvkNRmrQRi/yEF5w=", + "pom": "sha256-G0C/0FxYRRS55Z1YnjPCZb456Z6gRvhHxe411uUFjiM=" + }, + "org/jetbrains/kotlin#kotlin-build-common/1.6.0": { + "jar": "sha256-4kp7cGukVhi07kOWa2JQETbQBgsDL46fGNGD2gWxv0M=", + "pom": "sha256-93xRil6Ux4dnVflhEApdtQuSQFTH8GQqSIMeJagk8pE=" + }, + "org/jetbrains/kotlin#kotlin-compiler-embeddable/1.6.0": { + "jar": "sha256-A2aEPNLe/dWDxrFrELwyuF8oxb+VEPEORMiG9b0kw4g=", + "pom": "sha256-KlWcBwvS5YxY2x5/z2T7t92+hHciXec9Zu4AAQiocCQ=" + }, + "org/jetbrains/kotlin#kotlin-compiler-runner/1.6.0": { + "jar": "sha256-avdSCvhKRCxqvxvXKFunG6xzZWYLLQj9BMhOw1NjPUk=", + "pom": "sha256-Oc+l/Aqzv3VwSfj9Dx6bNbYrebnTJdLPlwLVqaDY/jc=" + }, + "org/jetbrains/kotlin#kotlin-daemon-client/1.6.0": { + "jar": "sha256-bBsv3jMVh50Ml35fJRU5fngpvQrfiSHkxf262DLrwqE=", + "pom": "sha256-gatFLaX29bavP6ggpywNKNCfVUTU7EXafxFDG6Xtkhg=" + }, + "org/jetbrains/kotlin#kotlin-daemon-embeddable/1.6.0": { + "jar": "sha256-INCHBqoXdi/lqwOpFtYsm37iEdIIRKiqvg24PZ2QKEo=", + "pom": "sha256-dTHQzBNuWUgjMpvMExxPHv4XP8OVr4Lus4/SZhbckfY=" + }, + "org/jetbrains/kotlin#kotlin-gradle-plugin-api/1.6.0": { + "jar": "sha256-yGksM4gmxIQlv8h/q2nLef4tT1+B/wWMkpQYvw2pfRU=", + "pom": "sha256-HP5CdZvSCiU6S36NvQ5yll5nReE1Duzd6lOZsjy40Wg=" + }, + "org/jetbrains/kotlin#kotlin-gradle-plugin-model/1.6.0": { + "jar": "sha256-ne9NHPDZV3pRGiqk9/MQ7MwkJDsFwCpxelExxMj5ll4=", + "pom": "sha256-aZyyu6C03O/rmbelzYHM8MLOPWi8AVgZCAli7mflbUs=" + }, + "org/jetbrains/kotlin#kotlin-gradle-plugin/1.6.0": { + "jar": "sha256-twN61m6wybWbrcqiONHFQmcVt5eqdwk0cwe3XBrawWo=", + "pom": "sha256-G6PfHEnY5ZBuWyGdFyCRd7nnb4M9xPFuwbjPjRA/qN4=" + }, + "org/jetbrains/kotlin#kotlin-klib-commonizer-api/1.6.0": { + "jar": "sha256-/GqznpDYIibZuLzOAYdhZOW6/RrAogPz8DB4yxtIMB8=", + "pom": "sha256-elUGa/rRTIyZqq8GCHV+uKfl7LzODzC9J+56qWtWoAk=" + }, + "org/jetbrains/kotlin#kotlin-klib-commonizer-embeddable/1.6.0": { + "jar": "sha256-x8gRYmPShf5TjnwZaEHiNaqPe52fasNhP4jeU7Jh2MM=", + "pom": "sha256-htOIK0/IKs3DheQpnn76HaZQvzUG/lqg+F5FzNwmmss=" + }, + "org/jetbrains/kotlin#kotlin-native-utils/1.6.0": { + "jar": "sha256-oLD9fer0/hCwZxNVJYvGN1nj0kpxFc7/h7x0G/p86ew=", + "pom": "sha256-a9fh1Kc7At/mYvqDdkrikRPrWqItrdGKVn8cfpdCQhs=" + }, + "org/jetbrains/kotlin#kotlin-project-model/1.6.0": { + "jar": "sha256-OBNdP5lfxQXWBK7S6CrFuoWLKmo+R2iZw7i+R/0iK2g=", + "pom": "sha256-sMn75G5kDHVwJEMc9+p5PdmN2nbRFe9K5OXz1B9nH9Q=" + }, + "org/jetbrains/kotlin#kotlin-reflect/1.6.0": { + "jar": "sha256-xhYYhCCSIdt/XdsDG7SAo8RruQ1bZdfMAWexSaqpxJQ=", + "pom": "sha256-hcz47mWEylEpbV8yn+zAIerbRbxqLDu9qMrmAvWO4lQ=" + }, + "org/jetbrains/kotlin#kotlin-script-runtime/1.6.0": { + "jar": "sha256-3coPdlxBbnek2IFvPS327alT9hr4EXN4RqIgMyJaDlc=", + "pom": "sha256-GsP9ZI4oCa3h+13heKISaNPXurUYNV7dTEmAXMsx1c4=" + }, + "org/jetbrains/kotlin#kotlin-scripting-common/1.6.0": { + "jar": "sha256-FmmbBwr8RCIwDJ7WboHpi2X3xpH6qFK41EGV5QndbSI=", + "pom": "sha256-9l4xIUhL0lNnX9BqxOiCkuDk8zV7kBKjRYKlc02OOVA=" + }, + "org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/1.6.0": { + "jar": "sha256-LNHG9q9pwWt5NNfY1nwYM0m0NPRQSC1yKalgcTb6BEc=", + "pom": "sha256-4jtqC3HdlDRIRzwooThIk8LMx6tK9hMwCVuFEmBYMvo=" + }, + "org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/1.6.0": { + "jar": "sha256-5L1IkGdG5M0Z4BZEVZncomg6mU2gasOMrTg6rEgzjag=", + "pom": "sha256-ZX90rM8Q8WYXJBIvDgLIBkMFyuLSgAxZQmqIQG80cPE=" + }, + "org/jetbrains/kotlin#kotlin-scripting-jvm/1.6.0": { + "jar": "sha256-X2p+onTLbGxDcglKNXLfKjkqpTifFVO4JIc9YtYANlI=", + "pom": "sha256-nzZY4pTKV2EytPaUIOpJsp3twftsDl0HqygOq75tCzY=" + }, + "org/jetbrains/kotlin#kotlin-stdlib-common/1.6.0": { + "jar": "sha256-ZEpyV8I7UaH9UGiWDkCSLj5SwhnxHs4+BAo6vHSCPyI=", + "pom": "sha256-iZ6XwgKLX3or2vZ1H6KgG2h+PuKngXZ8iiJ8v/tsAYQ=" + }, + "org/jetbrains/kotlin#kotlin-stdlib/1.6.0": { + "jar": "sha256-EV2uowsNSEr88jYCN7nZU39IpKLwPzzCoWV338bpA0I=", + "pom": "sha256-cSpt3XF8zVsNUOdMM16TqbGRBSzXu4KWBSAJu4XJRBI=" + }, + "org/jetbrains/kotlin#kotlin-tooling-metadata/1.6.0": { + "jar": "sha256-X3m1R/gM66SC1vcYRLI0ReEJ9oXrdEgQRGeM11worXc=", + "pom": "sha256-yYlWnKkvPwTPHmuhScQ8SVao2dyXk5vkmPHfUvQMwsU=" + }, + "org/jetbrains/kotlin#kotlin-util-io/1.6.0": { + "jar": "sha256-rbeHTvdxKKs7CVP/SeyAEjnIN/5xMcMUfO+duLvfVzk=", + "pom": "sha256-PGMhnFxVPRyfo2HTbtzZsDXL6QzpS86hqhR4F3IvY5w=" + }, + "org/jetbrains/kotlin#kotlin-util-klib/1.6.0": { + "jar": "sha256-qWMcC3gjxpuNM1AqKGPnV0MI2fnBLj8o9LW79sKkH3Q=", + "pom": "sha256-YJjHylRvWZ35UdQOKaAdqT9NepB1l5Uy7hSSmzjE42g=" + }, + "org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.5.0": { + "jar": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=", + "module": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=", + "pom": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" + }, + "org/junit#junit-bom/5.7.1": { + "module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=", + "pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q=" + }, + "org/junit/jupiter#junit-jupiter-api/5.7.1": { + "jar": "sha256-znuYW8Rp4mJXWaTrxFUzxwWBoFo0gnjB1kCOmy414xQ=", + "module": "sha256-AiFvaghBm7NdVHeGPZ0hpoxXWRqol7qYGmHFVFZWzX4=", + "pom": "sha256-1Vvisj13FDKXB3IEMgey5mpnJK4CvVGStyFuS3AbxiM=" + }, + "org/junit/jupiter#junit-jupiter-engine/5.7.1": { + "jar": "sha256-VmFsk1CzYk92z/72skznuyIpFb/VaI+W089M7zTwd8s=", + "module": "sha256-2A5S75X2XNxQT8Mb4KArJYnJ78JzpCVcs2NyPOVMr/8=", + "pom": "sha256-gRF+OjoCDf3W8wkcXseU0stJhAcxrPQogxxWmQEvTLs=" + }, + "org/junit/jupiter#junit-jupiter-params/5.7.1": { + "jar": "sha256-jv/df4pLpVWLVoGE3uCACLJEPIbGc++B3lhh+8fvBhM=", + "module": "sha256-TUOYtYCpnIVNnxF6bk44o9GOZSJ2obzmeaDDx5nGFL0=", + "pom": "sha256-UIPD5bw9OhjVY6M0fVPi3f35ONdh60TbsL9PQgX+6Sw=" + }, + "org/junit/platform#junit-platform-commons/1.7.1": { + "jar": "sha256-fFRr6GhkcY+6zrefqE/x06UWUA/EKPGyHQYcLg+8Wks=", + "module": "sha256-5abLDsz80tAuaGvyt2OnBCTQiB2/+uvjp/kxShhT+TE=", + "pom": "sha256-t8GENMTUsn5yO9SKr5ercK7IwMra1MFTkvvdFEykpQo=" + }, + "org/junit/platform#junit-platform-engine/1.7.1": { + "jar": "sha256-N99anNbbwfdUuitG+WuIdKg2YOF5a/OMc48CLc+Gwj8=", + "module": "sha256-S2knc2Ouooq1DFpnYZ++q/jAgk5JOOYmC6wEjlvrga8=", + "pom": "sha256-dmAvWZVKo9+mjjHIDKibb7ouoAG0+wbLUfoV6tfIWjA=" + }, + "org/lz4#lz4-java/1.8.0": { + "jar": "sha256-10ozNPs1GVAJszipUfkYID1rvKPR01kDPcM+3Rytye8=", + "pom": "sha256-DbittR4TJFSlxAbeuy8aDfgfk91Z++IMuUcQKZRokDQ=" + }, + "org/opentest4j#opentest4j/1.2.0": { + "jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=", + "pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" + }, + "org/sonatype/oss#oss-parent/7": { + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + }, + "org/sonatype/oss#oss-parent/9": { + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + }, + "https://www.libsdl.org": { + "release/SDL2-devel-2.0.20-mingw": { + "tar.gz": "sha256-OAlNgqhX1sYjUuXFzex0lIxbTSXFnL0pjW0jNWiXa9E=" + } + } +}