Merge pull request #272380 from chayleaf/gradle2

gradle: add setup hook
This commit is contained in:
Atemu
2024-07-14 22:08:41 +02:00
committed by GitHub
92 changed files with 14983 additions and 2368 deletions
+189
View File
@@ -0,0 +1,189 @@
# Gradle {#gradle}
Gradle is a popular build tool for Java/Kotlin. Gradle itself doesn't
currently provide tools to make dependency resolution reproducible, so
nixpkgs has a proxy designed for intercepting Gradle web requests to
record dependencies so they can be restored in a reproducible fashion.
## Building a Gradle package {#building-a-gradle-package}
Here's how a typical derivation will look like:
```nix
stdenv.mkDerivation (finalAttrs: {
pname = "pdftk";
version = "3.3.3";
src = fetchFromGitLab {
owner = "pdftk-java";
repo = "pdftk";
rev = "v${finalAttrs.version}";
hash = "sha256-ciKotTHSEcITfQYKFZ6sY2LZnXGChBJy0+eno8B3YHY=";
};
nativeBuildInputs = [ gradle ];
# if the package has dependencies, mitmCache must be set
mitmCache = gradle.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
# this is required for using mitm-cache on Darwin
__darwinAllowLocalNetworking = true;
gradleFlags = [ "-Dfile.encoding=utf-8" ];
# defaults to "assemble"
gradleBuildTask = "shadowJar";
# will run the gradleCheckTask (defaults to "test")
doCheck = true;
installPhase = ''
mkdir -p $out/{bin,share/pdftk}
cp build/libs/pdftk-all.jar $out/share/pdftk
makeWrapper ${jre}/bin/java $out/bin/pdftk \
--add-flags "-jar $out/share/pdftk/pdftk-all.jar"
cp ${finalAttrs.src}/pdftk.1 $out/share/man/man1
'';
meta.sourceProvenance = with lib.sourceTypes; [
fromSource
binaryBytecode # mitm cache
];
})
```
To update (or initialize) dependencies, run the update script via
something like `$(nix-build -A <pname>.mitmCache.updateScript)`
(`nix-build` builds the `updateScript`, `$(...)` runs the script at the
path printed by `nix-build`).
If your package can't be evaluated using a simple `pkgs.<pname>`
expression (for example, if your package isn't located in nixpkgs, or if
you want to override some of its attributes), you will usually have to
pass `pkg` instead of `pname` to `gradle.fetchDeps`. There are two ways
of doing it.
The first is to add the derivation arguments required for getting the
package. Using the pdftk example above:
```nix
{ lib
, stdenv
# ...
, pdftk
}:
stdenv.mkDerivation (finalAttrs: {
# ...
mitmCache = gradle.fetchDeps {
pkg = pdftk;
data = ./deps.json;
};
})
```
This allows you to `override` any arguments of the `pkg` used for
the update script (for example, `pkg = pdftk.override { enableSomeFlag =
true };`), so this is the preferred way.
The second is to create a `let` binding for the package, like this:
```nix
let self = stdenv.mkDerivation {
# ...
mitmCache = gradle.fetchDeps {
pkg = self;
data = ./deps.json;
};
}; in self
```
This is useful if you can't easily pass the derivation as its own
argument, or if your `mkDerivation` call is responsible for building
multiple packages.
In the former case, the update script will stay the same even if the
derivation is called with different arguments. In the latter case, the
update script will change depending on the derivation arguments. It's up
to you to decide which one would work best for your derivation.
## Update Script {#gradle-update-script}
The update script does the following:
- Build the derivation's source via `pkgs.srcOnly`
- Enter a `nix-shell` for the derivation in a `bwrap` sandbox (the
sandbox is only used on Linux)
- Set the `IN_GRADLE_UPDATE_DEPS` environment variable to `1`
- Run the derivation's `unpackPhase`, `patchPhase`, `configurePhase`
- Run the derivation's `gradleUpdateScript` (the Gradle setup hook sets
a default value for it, which runs `preBuild`, `preGradleUpdate`
hooks, fetches the dependencies using `gradleUpdateTask`, and finally
runs the `postGradleUpdate` hook)
- Finally, store all of the fetched files' hashes in the lockfile. They
may be `.jar`/`.pom` files from Maven repositories, or they may be
files otherwise used for building the package.
`fetchDeps` takes the following arguments:
- `attrPath` - the path to the package in nixpkgs (for example,
`"javaPackages.openjfx22"`). Used for update script metadata.
- `pname` - an alias for `attrPath` for convenience. This is what you
will generally use instead of `pkg` or `attrPath`.
- `pkg` - the package to be used for fetching the dependencies. Defaults
to `getAttrFromPath (splitString "." attrPath) pkgs`.
- `bwrapFlags` - allows you to override bwrap flags (only relevant for
downstream, non-nixpkgs projects)
- `data` - path to the dependencies lockfile (can be relative to the
package, can be absolute). In nixpkgs, it's discouraged to have the
lockfiles be named anything other `deps.json`, consider creating
subdirectories if your package requires multiple `deps.json` files.
## Environment {#gradle-environment}
The Gradle setup hook accepts the following environment variables:
- `mitmCache` - the MITM proxy cache imported using `gradle.fetchDeps`
- `gradleFlags` - command-line flags to be used for every Gradle
invocation (this simply registers a function that uses the necessary
flags).
- You can't use `gradleFlags` for flags that contain spaces, in that
case you must add `gradleFlagsArray+=("-flag with spaces")` to the
derivation's bash code instead.
- If you want to build the package using a specific Java version, you
can pass `"-Dorg.gradle.java.home=${jdk}"` as one of the flags.
- `gradleBuildTask` - the Gradle task (or tasks) to be used for building
the package. Defaults to `assemble`.
- `gradleCheckTask` - the Gradle task (or tasks) to be used for checking
the package if `doCheck` is set to `true`. Defaults to `test`.
- `gradleUpdateTask` - the Gradle task (or tasks) to be used for
fetching all of the package's dependencies in
`mitmCache.updateScript`. Defaults to `nixDownloadDeps`.
- `gradleUpdateScript` - the code to run for fetching all of the
package's dependencies in `mitmCache.updateScript`. Defaults to
running the `preBuild` and `preGradleUpdate` hooks, running the
`gradleUpdateTask`, and finally running the `postGradleUpdate` hook.
- `gradleInitScript` - path to the `--init-script` to pass to Gradle. By
default, a simple init script that enables reproducible archive
creation is used.
- Note that reproducible archives might break some builds. One example
of an error caused by it is `Could not create task ':jar'. Replacing
an existing task that may have already been used by other plugins is
not supported`. If you get such an error, the easiest "fix" is
disabling reproducible archives altogether by setting
`gradleInitScript` to something like `writeText
"empty-init-script.gradle" ""`
- `enableParallelBuilding` / `enableParallelChecking` /
`enableParallelUpdating` - pass `--parallel` to Gradle in the
build/check phase or in the update script. Defaults to true. If the
build fails for mysterious reasons, consider setting this to false.
- `dontUseGradleConfigure` / `dontUseGradleBuild` / `dontUseGradleCheck`
\- force disable the Gradle setup hook for certain phases.
- Note that if you disable the configure hook, you may face issues
such as `Failed to load native library 'libnative-platform.so'`,
because the configure hook is responsible for initializing Gradle.
@@ -2,20 +2,22 @@
, stdenv
, fetchFromGitHub
, gradle_7
, perl
, makeWrapper
, writeText
, jdk
, gsettings-desktop-schemas
}:
let
gradle = gradle_7;
in
stdenv.mkDerivation (finalAttrs: {
pname = "mucommander";
version = "1.3.0-1";
src = fetchFromGitHub {
owner = "mucommander";
repo = "mucommander";
rev = version;
rev = finalAttrs.version;
sha256 = "sha256-rSHHv96L2EHQuKBSAdpfi1XGP2u9o2y4g1+65FHWFMw=";
};
@@ -23,72 +25,19 @@ let
# there is no .git anyway
substituteInPlace build.gradle \
--replace "git = grgit.open(dir: project.rootDir)" "" \
--replace "id 'org.ajoberstar.grgit' version '3.1.1'" "" \
--replace "revision = git.head().id" "revision = '${version}'"
--replace "revision = git.head().id" "revision = '${finalAttrs.version}'"
'';
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
pname = "mucommander-deps";
inherit version src postPatch;
nativeBuildInputs = [ gradle_7 perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle --no-daemon tgz
'';
# 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)
# reproducible by sorting
installPhase = ''
find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
| LC_ALL=C sort \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
# copy maven-metadata.xml for commons-codec
# thankfully there is only one xml
cp $GRADLE_USER_HOME/caches/modules-2/resources-2.1/*/*/maven-metadata.xml $out/commons-codec/commons-codec/maven-metadata.xml
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-9tCcUg7hDNbkZiQEWtVRsUUfms73aU+vt5tQsfknM+E=";
nativeBuildInputs = [ gradle makeWrapper ];
mitmCache = gradle.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
in
stdenv.mkDerivation rec {
pname = "mucommander";
inherit version src postPatch;
nativeBuildInputs = [ gradle_7 perl makeWrapper ];
__darwinAllowLocalNetworking = true;
# Point to our local deps repo
gradleInit = writeText "init.gradle" ''
logger.lifecycle 'Replacing Maven repositories with ${deps}...'
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
clear()
maven { url '${deps}' }
}
}
repositories {
clear()
maven { url '${deps}' }
}
}
}
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
maven { url '${deps}' }
}
}
}
'';
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle --offline --init-script ${gradleInit} --no-daemon tgz
'';
gradleBuildTask = "tgz";
installPhase = ''
mkdir -p $out/share/mucommander
@@ -107,4 +56,4 @@ stdenv.mkDerivation rec {
platforms = platforms.all;
mainProgram = "mucommander";
};
}
})
File diff suppressed because it is too large Load Diff
@@ -1,42 +0,0 @@
From 33d8de9ccce7eecb12542e0fc11131b5101e1aa8 Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Sat, 26 Feb 2022 12:33:13 +0100
Subject: [PATCH] Fetch buildconfig during gradle build inside Nix FOD
---
build.gradle | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/build.gradle b/build.gradle
index ea3fea1..01e444d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -82,6 +82,9 @@ static String getVersion() {
repositories {
maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages
+ maven {
+ url "https://plugins.gradle.org/m2/"
+ }
mavenCentral()
}
@@ -101,6 +104,8 @@ dependencies {
implementation 'io.prometheus:simpleclient:0.16.0'
implementation 'io.prometheus:simpleclient_hotspot:0.16.0'
implementation 'io.prometheus:simpleclient_httpserver:0.16.0'
+ implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3'
+ implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10'
implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0'
implementation 'io.sentry:sentry:6.11.0'
testImplementation 'org.junit.jupiter:junit-jupiter:5.9.0'
@@ -170,4 +175,4 @@ allprojects {
runtime {
options = ['--strip-java-debug-attributes', '--compress', '2', '--no-header-files', '--no-man-pages']
modules = ['java.base', 'java.management', 'java.naming', 'java.sql', 'java.xml', 'jdk.crypto.ec', 'jdk.httpserver', 'java.desktop', 'jdk.unsupported']
-}
\ No newline at end of file
+}
--
2.38.3
@@ -1,71 +0,0 @@
From 4bf0aef4003f7494103a93ae1c2957b2cd32bb59 Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Sat, 26 Feb 2022 12:36:15 +0100
Subject: [PATCH 2/2] buildconfig/local deps fixes
---
build.gradle | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/build.gradle b/build.gradle
index ea3fea1..24415d8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,11 +10,21 @@ import org.gradle.nativeplatform.platform.internal.ArchitectureInternal
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal
+buildscript {
+ repositories {
+ maven {
+ url(uri("@deps@"))
+ }
+ }
+ dependencies {
+ classpath "com.github.gmazzo:gradle-buildconfig-plugin:3.0.3"
+ }
+}
+
plugins {
- id 'com.github.gmazzo.buildconfig' version '3.0.3'
- id 'org.beryx.runtime' version '1.12.7'
id 'application'
}
+apply plugin: "com.github.gmazzo.buildconfig"
compileJava.options.encoding = 'UTF-8'
@@ -82,7 +92,10 @@ static String getVersion() {
repositories {
maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages
- mavenCentral()
+ mavenLocal()
+ maven {
+ url uri("@deps@")
+ }
}
dependencies {
@@ -101,6 +114,8 @@ dependencies {
implementation 'io.prometheus:simpleclient:0.16.0'
implementation 'io.prometheus:simpleclient_hotspot:0.16.0'
implementation 'io.prometheus:simpleclient_httpserver:0.16.0'
+ implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3'
+ implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10'
implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0'
implementation 'io.sentry:sentry:6.11.0'
testImplementation 'org.junit.jupiter:junit-jupiter:5.9.0'
@@ -166,8 +181,3 @@ allprojects {
}
}
}
-
-runtime {
- options = ['--strip-java-debug-attributes', '--compress', '2', '--no-header-files', '--no-man-pages']
- modules = ['java.base', 'java.management', 'java.naming', 'java.sql', 'java.xml', 'jdk.crypto.ec', 'jdk.httpserver', 'java.desktop', 'jdk.unsupported']
-}
\ No newline at end of file
--
2.38.3
@@ -1,10 +1,7 @@
{ lib, stdenv, fetchFromGitLab, jdk17_headless, coreutils, findutils, gnused,
gradle, git, perl, makeWrapper, substituteAll, jre_minimal
gradle, git, makeWrapper, jre_minimal
}:
# NOTE: when updating the package, please check if some of the hacks in `deps.installPhase`
# can be removed again!
let
pname = "signald";
version = "0.23.2";
@@ -16,8 +13,6 @@ let
hash = "sha256-EofgwZSDp2ZFhlKL2tHfzMr3EsidzuY4pkRZrV2+1bA=";
};
gradleWithJdk = gradle.override { java = jdk17_headless; };
jre' = jre_minimal.override {
jdk = jdk17_headless;
# from https://gitlab.com/signald/signald/-/blob/0.23.0/build.gradle#L173
@@ -37,76 +32,19 @@ let
];
};
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit src version;
nativeBuildInputs = [ gradleWithJdk perl ];
patches = [ ./0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle --no-daemon build
'';
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 -x
# WARNING: don't try this at home and wear safety-goggles while working with this!
# We patch around in the dependency tree to resolve some spurious dependency resolution errors.
# Whenever this package gets updated, please check if some of these hacks are obsolete!
# Mimic existence of okio-3.2.0.jar. Originally known as okio-jvm-3.2.0 (and renamed),
# but gradle doesn't detect such renames, only fetches the latter and then fails
# in `signald.buildPhase` because it cannot find `okio-3.2.0.jar`.
pushd $out/com/squareup/okio/okio/3.2.0 &>/dev/null
cp -v ../../okio-jvm/3.2.0/okio-jvm-3.2.0.jar okio-3.2.0.jar
popd &>/dev/null
# For some reason gradle fetches 2.14.1 instead of 2.14.0 here even though 2.14.0 is required
# according to `./gradlew -q dependencies`, so we pretend to have 2.14.0 available here.
# According to the diff in https://github.com/FasterXML/jackson-dataformats-text/compare/jackson-dataformats-text-2.14.0...jackson-dataformats-text-2.14.1
# the only relevant change is in the code itself (and in the tests/docs), so this seems
# binary-compatible.
cp -v \
$out/com/fasterxml/jackson/dataformat/jackson-dataformat-toml/2.14.1/jackson-dataformat-toml-2.14.1.jar \
$out/com/fasterxml/jackson/dataformat/jackson-dataformat-toml/2.14.0/jackson-dataformat-toml-2.14.0.jar
'';
# Don't move info to share/
forceShare = [ "dummy" ];
outputHashAlgo = "sha256";
outputHashMode = "recursive";
# Downloaded jars differ by platform
outputHash = {
x86_64-linux = "sha256-9DHykkvazVBN2kfw1Pbejizk/R18v5w8lRBHZ4aXL5Q=";
aarch64-linux = "sha256-RgAiRbUojBc+9RN/HpAzzpTjkjZ6q+jebDsqvah5XBw=";
}.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
};
in stdenv.mkDerivation {
inherit pname src version;
patches = [
(substituteAll {
src = ./0002-buildconfig-local-deps-fixes.patch;
inherit deps;
})
];
passthru = {
# Mostly for debugging purposes.
inherit deps;
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
buildPhase = ''
runHook preBuild
__darwinAllowLocalNetworking = true;
export GRADLE_USER_HOME=$(mktemp -d)
gradleFlags = [ "-Dorg.gradle.java.home=${jdk17_headless}" ];
gradle --offline --no-daemon distTar
runHook postBuild
'';
gradleBuildTask = "distTar";
installPhase = ''
runHook preInstall
@@ -120,10 +58,19 @@ in stdenv.mkDerivation {
runHook postInstall
'';
nativeBuildInputs = [ git gradleWithJdk makeWrapper ];
nativeBuildInputs = [ git gradle makeWrapper ];
doCheck = true;
gradleUpdateScript = ''
runHook preBuild
SIGNALD_TARGET=x86_64-unknown-linux-gnu gradle nixDownloadDeps
SIGNALD_TARGET=aarch64-unknown-linux-gnu gradle nixDownloadDeps
SIGNALD_TARGET=x86_64-apple-darwin gradle nixDownloadDeps
SIGNALD_TARGET=aarch64-apple-darwin gradle nixDownloadDeps
'';
meta = with lib; {
description = "Unofficial daemon for interacting with Signal";
longDescription = ''
@@ -138,6 +85,6 @@ in stdenv.mkDerivation {
];
license = licenses.gpl3Plus;
maintainers = with maintainers; [ expipiplus1 ];
platforms = [ "x86_64-linux" "aarch64-linux" ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
};
}
@@ -0,0 +1,528 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://gitlab.com/api/v4/groups/6853927/-/packages/maven/org": {
"signald#libsignal-client-aarch64-apple-darwin/0.21.1": {
"jar": "sha256-GZyZBUokXraIAXXRoGMFoU48FzUym80J0XU2o/fbEgE=",
"module": "sha256-Z6k9Pt5ac5il2uK2ngQn0Mc8utSRChIl+pO7UeOmbJs=",
"pom": "sha256-b2SOa4rB+2SGAohZpsv7ZNUKPrcCBIONBiflsaLJA7A="
},
"signald#libsignal-client-aarch64-unknown-linux-gnu/0.21.1": {
"jar": "sha256-qkF5S7OwiRTABFoAWsXn2WsRCKe+GIcDeX+ENFjbhQg=",
"module": "sha256-Y/ir3VC1oORyDy19ZOctnIcDxgm+tbZSbKKz9VcBh3E=",
"pom": "sha256-E5pDb3MphJnKuE6xfizHrJ4qWXu4Tfv1hWPzynRkx+g="
},
"signald#libsignal-client-x86_64-apple-darwin/0.21.1": {
"jar": "sha256-Xc+eIRMlTTReDigOlcPxD4sIm44cwKoJ63tGBxx10pk=",
"module": "sha256-g2GHQh5ThVjmHn7Fiq4j0cPQDpZWl4Lx8kNq8E754fQ=",
"pom": "sha256-AHphg71FAR4tLhOXJP0TfHtSRothQmXL9h6/Vy2fg2I="
},
"signald#libsignal-client-x86_64-unknown-linux-gnu/0.21.1": {
"jar": "sha256-b9C1XUATmYS+QyZZT0twxY8e5VBYPX4PGc4KwMuz3MY=",
"module": "sha256-LdJQ1bGMcVuW5gMxwXNfco0fk9EqKUR3/dcXK9/f+uI=",
"pom": "sha256-vQvRDMrMPzs26mkIGyWealXU9n+F1zUsYi+0mGmB4Pc="
},
"signald#signal-service-java-aarch64-apple-darwin/2.15.3_unofficial_65": {
"jar": "sha256-AWLSsBwoo2bA95cX7cUZr8djin+pzrg7uQklKB5HaX8=",
"module": "sha256-Kx4rUnEcn7UqES53q7SBDzM1SrPYRW9hLyy8bTUpGqE=",
"pom": "sha256-lIWISMl3ZO1DTH0UvwrFWsWNvTT2T/l8XMnbVu64b90="
},
"signald#signal-service-java-aarch64-unknown-linux-gnu/2.15.3_unofficial_65": {
"jar": "sha256-rnh3En9Apq4zZPNCWCpat3bJwjegnWmfKclyWq9WV38=",
"module": "sha256-+ul/buZ1z6UMjhTWY4wrhz9sYrOOiOvbuLg3qSpxJKI=",
"pom": "sha256-4Bt4nts4B+MZJMVAjrxB5b85TaHhEfcslDDegkCVy7Y="
},
"signald#signal-service-java-x86_64-apple-darwin/2.15.3_unofficial_65": {
"jar": "sha256-Hkig/2S8txhBKyyzRcloqwc5rMhDELTbRSzy4XGg7Sw=",
"module": "sha256-e/U5v2nGOG3VbIHh0GDFBdIRo+qp3SyiTcsrum9T7gk=",
"pom": "sha256-B+8twiic8oQYWENG9d9ETv4eyYfdEuT6U0aNj87rB48="
},
"signald#signal-service-java-x86_64-unknown-linux-gnu/2.15.3_unofficial_65": {
"jar": "sha256-+p3jm8+Bg96BUIQdGT6LHczAhMfSqQVm5OlP5g+bEEs=",
"module": "sha256-GKfQ5h9vzUQL+1pNejIPyb1yjhtVn8CkkAGyaUr5RBM=",
"pom": "sha256-MCAEHWahZHEhR7FP7tDKII+FZM41e3Sc3fVuWwN8GhI="
}
},
"https://plugins.gradle.org/m2": {
"com/github/gmazzo#gradle-buildconfig-plugin/3.0.3": {
"jar": "sha256-ql6AIOvktizdRYn07XFhq1wkSlIJ5eWey7lFOP312to=",
"pom": "sha256-EVUqzLXaH59nxdNJoUjwxAP6MJKT85Vcc1qOvY1XH8I="
},
"com/github/gmazzo/buildconfig#com.github.gmazzo.buildconfig.gradle.plugin/3.0.3": {
"pom": "sha256-U2RlL3aMVri6eXtNL2AEDerbGlzB6lvG0gfFF88d7W4="
},
"com/github/gundy#semver4j/0.16.4": {
"jar": "sha256-3vm0Il+jchnhj4HQHw5S1z3KElejj1R1vp3Vj4dzZRA=",
"pom": "sha256-MgAdskQ7M53SH1t5/ynRreci0boIDCFL3oGfD3LRYE0="
},
"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/squareup#javapoet/1.11.1": {
"jar": "sha256-nL8hB75JnsbpWv02tY48oSKiQWbN03VzLlEmfWQFjpA=",
"pom": "sha256-+fP8Lz85koufe74oEXW3R9O1Wgkh8wLi4g0J7o5Bw+w="
},
"com/squareup#kotlinpoet/1.0.1": {
"jar": "sha256-vqGIRbA8fGXPkfc5iLoBlQuuZ5nDxRgrVo/nHN2JSqE=",
"pom": "sha256-R0rbJYzTlWjOYNanxzBoFzo6BhZ25AGBBVKnXiPuxdU="
},
"de/undercouch#gradle-download-task/4.0.2": {
"jar": "sha256-lSy/zF8hvuzLWSXMW6ZIrwmDklhEHdRNCH1kpX006Ho=",
"pom": "sha256-YvKRaNwv+1gMRKpgIfZVBRqcsKSN/Ue8fk6MpvljrbA="
},
"org/antlr#antlr4-master/4.5.2-1": {
"pom": "sha256-U1i0eNglVatXr9f8cjHWA7QPl3vnyjn0DF7FTnZ+tnQ="
},
"org/antlr#antlr4-runtime/4.5.2-1": {
"jar": "sha256-6DFBMAS87tfZFcOhdZJ7Haq8SXS3uKb4e7zohtNVA5g=",
"pom": "sha256-k7rJtrxxTVWZBO1DJCeCqMvlQ86/AQS7PswXhqnLZh4="
},
"org/apache#apache/19": {
"pom": "sha256-kfejMJbqabrCy69tAf65NMrAAsSNjIz6nCQLQPHsId8="
},
"org/apache/commons#commons-lang3/3.8.1": {
"jar": "sha256-2sgH9lsHaY/zmxsHv+89h64/1G2Ru/iivAKyqDFhb2g=",
"pom": "sha256-7I4J91QRaFIFvQ2deHLMNiLmfHbfRKCiJ7J4vqBEWNU="
},
"org/apache/commons#commons-parent/47": {
"pom": "sha256-io7LVwVTv58f+uIRqNTKnuYwwXr+WSkzaPunvZtC/Lc="
},
"org/beryx#badass-runtime-plugin/1.12.7": {
"jar": "sha256-N3Mx2VyxIFb6U6Qt9/RfF4svqG1sWF9w74TRIz0RB0U=",
"pom": "sha256-9vIy9OpH3sXV5y4jWaQG+pMd8/M2fiVdMmkkCAPBtkk="
},
"org/beryx/runtime#org.beryx.runtime.gradle.plugin/1.12.7": {
"pom": "sha256-95lWpL5pLmiBvaBnA0zUDOOqFX8ti9VWS5wAKWxrK3M="
},
"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.4.31": {
"jar": "sha256-SNfgjtYPscadJ/VyBaihHEcdaBM55nlEpL0L8sLht5A=",
"pom": "sha256-6ezdB6SaaAPWXoSb5064ff36iLtElaSDK1zJJbvv2BY="
},
"org/jetbrains/kotlin#kotlin-annotation-processing-gradle/1.4.31": {
"jar": "sha256-E11Hgji/ecK6L8FKIgRG3uj3TmiyP5ELwuTRmBorcG0=",
"pom": "sha256-GkmFH2YJ3/XRCK5UUb76mNEcNYUsz7XZiOmqeBiUw4I="
},
"org/jetbrains/kotlin#kotlin-build-common/1.4.31": {
"jar": "sha256-2AXnlC+1fSIUHUODV8TAIv8bIa78+yRd3SLqa3SGKrQ=",
"pom": "sha256-DIaSpl7cpUpc/Pp9s+9OLx9nafNTf4jrMwWvw4PBwhw="
},
"org/jetbrains/kotlin#kotlin-compiler-embeddable/1.4.31": {
"jar": "sha256-X0oOX3T+lrzUzRQxfISlbnsGpqwW2z2+cMOwaAdzOZ4=",
"pom": "sha256-DWc4Z/LPQirjQPVloRWgPrtcdVxVe9bZyiiGTcw4iyQ="
},
"org/jetbrains/kotlin#kotlin-compiler-runner/1.4.31": {
"jar": "sha256-Ybrn0tzI82KaPrIUkKmsVTU8Io+iPdfids7u3jeHisE=",
"pom": "sha256-Yhlloc7kdCcFwWEjv1oN7mTkLZohXrDEvHMj40tEWxs="
},
"org/jetbrains/kotlin#kotlin-daemon-client/1.4.31": {
"jar": "sha256-fQJ+9Vrx3JC8BiRn8sjBbAwMlhZ2JdtAnyEhCSjtZAk=",
"pom": "sha256-edI2i+n6TYGBCdixMynI1WMVJSzTV69R9YzgT6f0izw="
},
"org/jetbrains/kotlin#kotlin-daemon-embeddable/1.4.31": {
"jar": "sha256-l9xXBLT9JbFamx7X/9hJiqWAeHf7ar5Ni2bW0Qs5zzY=",
"pom": "sha256-L94ntYnr0Y2EFnb7sh4/pi2ZD25eqqbKq1K0vgDj5+s="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/1.4.31": {
"jar": "sha256-fAuO07UHXmM0/+rpg6Io9LFEUmMenUl9FhwMKiMN4mI=",
"pom": "sha256-MggUaX5sg1nwXU46eBVdL3MetImMyyXfUCKz+VT1vMc="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-model/1.4.31": {
"jar": "sha256-9ATALOZ7ahMo2s4i2TW+/cZmBdzdziaVEBvkZshZJqk=",
"pom": "sha256-6EvVpsF+h0q9cIlbQcWI9I/mmzcq6rQTTVW8V2Dzp8s="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/1.4.31": {
"jar": "sha256-/MsDW9vopXkf6e2zvUknrFByoMf9/UzFWDukRv8dfc8=",
"pom": "sha256-UQ2wwA85guaiBXihK97GuNB7d8Mdag2amJJw1Jl71kQ="
},
"org/jetbrains/kotlin#kotlin-reflect/1.4.31": {
"jar": "sha256-kfrQtCl0p9WBHjCmHwVwbhdrFEI1cXxt5+geOngQKPI=",
"pom": "sha256-jkm6uEPdhV8xXIfjkMUpqcojkSHYv/uFs6z6L2BgNpc="
},
"org/jetbrains/kotlin#kotlin-script-runtime/1.4.31": {
"jar": "sha256-t/j6k4MVJ2wTV7xr+VUDTUZ+20JCuxKjlscPNqxI0/k=",
"pom": "sha256-BnvN9hLIGnhfkdeSR4VpM6ulX9gUEAk8US6Qp+VOs4c="
},
"org/jetbrains/kotlin#kotlin-scripting-common/1.4.31": {
"jar": "sha256-7Gb0SktBsyUsvAkcnXwJa8i7WaIRGCt913xmlPCXfzw=",
"pom": "sha256-SZt/nSwkShmt9lDZOmOKIUYYm555w57W2jok/N1EQOU="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/1.4.31": {
"jar": "sha256-0t+NwkUxRqwnvOwBiQxM9rBNGIZbFtnTFWYcqoc4c5I=",
"pom": "sha256-08xMx05y+9GrwJI5/eU/y2DkqAiZqokUfHIqzjN3MRY="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/1.4.31": {
"jar": "sha256-oWYNbJIDA+MEgTI51PjKD/gB8iQl1C3454+twFe6fAY=",
"pom": "sha256-v1odNDN3icu4zbwipO9OGBnUod+yoRdRjnRc+PrrBVE="
},
"org/jetbrains/kotlin#kotlin-scripting-jvm/1.4.31": {
"jar": "sha256-/A0P+l0IOsnJS8f4aUmgV+L5cRISs/xyt0X2eLPM/6o=",
"pom": "sha256-ZwY1ME+KCaH0smigpfb/klIwc7DNootBdASK6tfLHyk="
},
"org/jetbrains/kotlin#kotlin-stdlib-common/1.4.31": {
"jar": "sha256-V5YvRDcadGtnghiggCqHEsYlUgbemmnt4hXjqksERwg=",
"pom": "sha256-FYKrEwto/LuJsukVVzwfmfi6O8aP3UUfazYtbFM1MYc="
},
"org/jetbrains/kotlin#kotlin-stdlib/1.4.31": {
"jar": "sha256-dqWZ2IsWforJCHm22qcixq00UrpxTJq6Gb0ZZUS5fxw=",
"pom": "sha256-hRnj56xe5wBSfuEEiOtDLxqhBtzN3nwGw7qyWKHdvU4="
},
"org/jetbrains/kotlin#kotlin-util-io/1.4.31": {
"jar": "sha256-742OP5+fXt4dcNPcIXRsiQySCi9APVaeHNW1KIE6XMA=",
"pom": "sha256-0JWe1skYAwhX/3VMyTLA44GDawd4IsoChO5uftTyItY="
},
"org/jetbrains/kotlin#kotlin-util-klib/1.4.31": {
"jar": "sha256-K8ihVTz6jLbeitaN50bY+thxQbF3SfCLpQcMaUxr2W0=",
"pom": "sha256-4VfHncwf0BzZaSstV21gbs9q8hGHhv6gTa/IBLpm93c="
},
"org/jetbrains/kotlinx#kotlinx-coroutines-core/1.3.8": {
"jar": "sha256-+Mi3SF1KV1445elJRVOdHU7M0yKKGZ4amqCU6MJhdO4=",
"pom": "sha256-JP+mW9+32JM0nLLnj7NxSkkN0KnAc3V0S7E26YBIB/0="
},
"org/ow2#ow2/1.5": {
"pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs="
},
"org/ow2/asm#asm-analysis/9.1": {
"jar": "sha256-gaiAQbG4vtpaiplkYJgEbEhwlTgnDEne9oq/8lrDvjQ=",
"pom": "sha256-rFRUwRsDQxypUd9x+06GyMTIDfaXn5W3V8rtOrD0cVY="
},
"org/ow2/asm#asm-commons/9.1": {
"jar": "sha256-r8sm3B/BLAxKma2mcJCN2C4Y38SIyvXuklRplrRwwAw=",
"pom": "sha256-oPZRsnuK/pwOYS16Ambqy197HHh7xLWsgkXz16EYG38="
},
"org/ow2/asm#asm-tree/9.1": {
"jar": "sha256-/QCvpJ6VlddkYgWwnOy0p3ao/wugby1ZuPe/nHBLSnM=",
"pom": "sha256-tqANkgfANUYPgcfXDtQSU/DSFmUr7UX6GjBS/81QuUw="
},
"org/ow2/asm#asm-util/9.1": {
"jar": "sha256-OA4uzRb3zA8adrqboEkXm1dgpXsoKoekxlPK7/LNW9Y=",
"pom": "sha256-jd108aHiuTxwnZdtAgXnT7850AVwPJYmpe1cxXTK+88="
},
"org/ow2/asm#asm/9.1": {
"jar": "sha256-zaTeRV+rSP8Ly3xItGOUR9TehZp6/DCglKmG8JNr66I=",
"pom": "sha256-xoOpDdaPKxeIy9/EZH6pQF71kls3HBmfj9OdRNPO3o0="
},
"org/slf4j#slf4j-api/1.7.25": {
"jar": "sha256-GMSgCV1cHaa4F1kudnuyPSndL1YK1033X/OWHb3iW3k=",
"pom": "sha256-fNnXoLXZPf1GGhSIkbQ1Cc9AOpx/n7SQYNNVTfHIHh4="
},
"org/slf4j#slf4j-parent/1.7.25": {
"pom": "sha256-GPXFISDbA26I1hNviDnIMtB0vdqVx1bG9CkknS21SsY="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
},
"https://repo.maven.apache.org/maven2": {
"com/fasterxml#oss-parent/48": {
"pom": "sha256-EbuiLYYxgW4JtiOiAHR0U9ZJGmbqyPXAicc9ordJAU8="
},
"com/fasterxml/jackson#jackson-base/2.14.0": {
"pom": "sha256-tZryboho1AOOURYUvXa7t0A2NXOVGWAvEOfaCTFYKw8="
},
"com/fasterxml/jackson#jackson-base/2.14.1": {
"pom": "sha256-GAFdG6y6mhRiWovxlBH1v62C0AYN83snvQLngTLEZ24="
},
"com/fasterxml/jackson#jackson-bom/2.14.0": {
"pom": "sha256-SfD44IeIL07MwxErYBt91RKZRyOklDo3oQ7LgHMiZso="
},
"com/fasterxml/jackson#jackson-bom/2.14.1": {
"pom": "sha256-eP35nlBQ/EhfQRfauMzL+2+mxoOF6184oJtlU3HUpsw="
},
"com/fasterxml/jackson#jackson-parent/2.14": {
"pom": "sha256-CQat2FWuOfkjV9Y/SFiJsI/KTEOl/kM1ItdTROB1exk="
},
"com/fasterxml/jackson/core#jackson-annotations/2.14.1": {
"jar": "sha256-0lW0uGP/jscUqPlvpVw0Yh1D27grgtP1dHZJakwJ4ec=",
"module": "sha256-JnpoC7csvXUsdreeuQiuDAq+sRT8scIKlnjwN4iYues=",
"pom": "sha256-id8WI4ax7eg6iATpCDlw0aYr310caenpkUdhtGf4CIM="
},
"com/fasterxml/jackson/core#jackson-core/2.14.1": {
"jar": "sha256-ARQYfilrNMkxwb+eWoQVK2K/q30YL1Yj85gtwto15SY=",
"module": "sha256-fIuANfkA8/HL2wa4x53CsYsR9q+hOwt0cZzuNJ/0wyk=",
"pom": "sha256-dHse68uLbe8o+u7cCSN0jxwVP8aksNjjsLyo3l/aY38="
},
"com/fasterxml/jackson/core#jackson-databind/2.14.1": {
"jar": "sha256-QjoMgG3ks/petKKGmDBeOjd3xzHhvPobLzo3YMe253M=",
"module": "sha256-2BeXfIprCq7aUZ+yp7jcugKzjDwnICT62jLFzOfj08s=",
"pom": "sha256-etsj1tdG7c+UbRwGKxmP+aAmwOIrMHuNXXnB4IU4xjU="
},
"com/fasterxml/jackson/dataformat#jackson-dataformat-toml/2.14.0": {
"module": "sha256-CsCosk9G8UO74qeQCyh914XgMRuf7s92MG2Is1aJBl0=",
"pom": "sha256-UbvlEh00Ij7Yc8nN6DWTvDl+mCSkknNvv7wuA65QrhA="
},
"com/fasterxml/jackson/dataformat#jackson-dataformat-toml/2.14.1": {
"jar": "sha256-EwRbLsSlXKVS8JF5N83Qt7rp1a5AnJVfbw0We5HIYkE=",
"module": "sha256-fYt0DCgjZAjWkDDdCewOQgy08dBIZEhM/muNxnJro8g=",
"pom": "sha256-k3qvGFoaW0g5TmkQusBVM+iPu8ICREy5aZ2D4BpNprc="
},
"com/fasterxml/jackson/dataformat#jackson-dataformats-text/2.14.0": {
"pom": "sha256-6tGzXPQ8iianI2wDCKi/w+5InCkyiOBRPqvLXnIyS4o="
},
"com/fasterxml/jackson/dataformat#jackson-dataformats-text/2.14.1": {
"pom": "sha256-+jI/nD8sJtfMzU4hNgkQRRVNRdwcFmHU+HakcfVix1k="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/google/protobuf#protobuf-bom/3.21.11": {
"pom": "sha256-b8t65uskGL00Pp3E4ED3nFk+9W957j0NKiEZzk/nr7Q="
},
"com/google/protobuf#protobuf-bom/3.21.12": {
"pom": "sha256-O72GqUBXpnHmPVX532EsZBlz1ecNba4qtFYk/xrfUcU="
},
"com/google/protobuf#protobuf-javalite/3.21.11": {
"jar": "sha256-2HsppVT9lD3WH0lPJjeyDeKI27EsS87oXp/k4q2JRFM=",
"pom": "sha256-RnCf68zs39yLZXU+9Bs5E7cPC2Ipu7U5XYCYXtziW/U="
},
"com/google/protobuf#protobuf-javalite/3.21.12": {
"jar": "sha256-z2eKs/vJkvS0ZUqGwDVXwhkE1jUgK2doj8suykQsLUA=",
"pom": "sha256-JX9QiTSYkVb912RUQ9uf4lbX06pEx93oMCfYHW6MutQ="
},
"com/google/protobuf#protobuf-parent/3.21.11": {
"pom": "sha256-kZpCn8dl43GYT5jpgoEcn6jMTqxgt0tEJM/NgMruCG8="
},
"com/google/protobuf#protobuf-parent/3.21.12": {
"pom": "sha256-fj44jW/7fyDmb/JfRbk3i0Igt7L9Jh9rO8IGs9/4u8g="
},
"com/googlecode/libphonenumber#libphonenumber-parent/8.12.54": {
"pom": "sha256-MzfHf0YxCWHoxuXPv4zgRDIXpDNqhqRneipt5U8mqHo="
},
"com/googlecode/libphonenumber#libphonenumber/8.12.54": {
"jar": "sha256-sjeB0pk7ailmUzsvWOEfM5L8FB+J6NVYNdo4Nl3guuk=",
"pom": "sha256-/SZ9HcfjYSkf+MEAbrBvTv2isfEt/jhTXZVf/sDBl/E="
},
"com/kohlschutter#kohlschutter-parent-multirelease/1.5.1": {
"pom": "sha256-m8IGSgNZlu+KoTo39gEtr+wrj7Ixf0gK0vYOcUu/BTM="
},
"com/kohlschutter#kohlschutter-parent/1.5.1": {
"pom": "sha256-QOM4M3T7g/qqpHW7scFy920D5DLYbpgsnfTO+ZQDh40="
},
"com/kohlschutter/junixsocket#junixsocket-common/2.6.1": {
"jar": "sha256-k9Eg4tSd31v97oJYdi/IdLJsZX8Cf41szBoFUVa/zeE=",
"pom": "sha256-RRjCFVtlyk9jbQJRRBK1kIFdbAsYKMsV8vUlXcA2Qzo="
},
"com/kohlschutter/junixsocket#junixsocket-native-common/2.6.1": {
"jar": "sha256-Yfu9bP0rbfZcDnsZsW/091XWyx0zO1ZvQoZAfxLxhnA=",
"pom": "sha256-t4zAQTztX2+M2jYiG5Yg0Bq4PPJMlwN2vEqH31S4jAQ="
},
"com/kohlschutter/junixsocket#junixsocket/2.6.1": {
"pom": "sha256-crOETfvf8/Nc6WPPHBro4cxJa/SoJMYFYb6QQvVHtfQ="
},
"com/squareup/okhttp3#logging-interceptor/4.10.0": {
"jar": "sha256-JzuiGGNsNPegkcBZ0VlgBUPgPqi+7yxfxWUltHOWFg4=",
"module": "sha256-/MsMrtTFnKXjEketzz+Zu9FeWn8NI8me4UbeMd0BhSI=",
"pom": "sha256-t/v3nfpIMFDEygZTdhoh0A1YWBkVUHo9nVGctmJgv98="
},
"com/squareup/okhttp3#okhttp/4.10.0": {
"jar": "sha256-dYDxT6FpEgbjcIGtP5IGOxYDsyjaC7MW8v7wLgVi5+w=",
"module": "sha256-bDBwggtZH17IwpSEl7Wmt0L0krcVvKz0t1EVs6j/qxU=",
"pom": "sha256-x/kgsofIOOHYHipj+Gd7svqZE3BYorEeZTWv3pyBoOU="
},
"com/squareup/okio#okio-jvm/3.2.0": {
"jar": "sha256-tkK670xXAFXeTLPRZnsrFtztkB/4BmNFoGNpGqBgJaQ=",
"module": "sha256-p3jzkIXtar/NaHESmGxjhapXrC2IQLIdlGs8IJXzDqQ=",
"pom": "sha256-XEUflKdr6oYbbvK/hOj1cgBUWWjIZVWr3+0Tx8otSJ0="
},
"com/squareup/okio#okio/3.2.0": {
"module": "sha256-aB9c7BcN5FuVST6e5wWGjrNa34mO4G+W4i0ZclDBsQQ=",
"pom": "sha256-i0b1jZua6xF4Nh1YpoZfTa1mWTDF/3tV4LqmHvOpcqE="
},
"info/picocli#picocli/4.7.0": {
"jar": "sha256-P2/7EM6FPvL2+TS0Z8zBPJwXCLTYOhpWZP2wfgeOjhw=",
"pom": "sha256-TeCd0zhFd9Vzo9lP85jNe4SUbEJkDzhSva2X9yl0YXQ="
},
"io/prometheus#parent/0.16.0": {
"pom": "sha256-citVEZCXsE1xFHnftg3VSye1kgoa63cCAnxEohX/xZY="
},
"io/prometheus#simpleclient/0.16.0": {
"jar": "sha256-IsN08jf3vE/bHw7C2jecC6AOaa0v/otq3lQ9cwYtN38=",
"pom": "sha256-/sCA0HqxWHXZccSugflR2mG1z/mZHPUOUwuo/KR3CXM="
},
"io/prometheus#simpleclient_common/0.16.0": {
"jar": "sha256-66bsJs5+QMu4cl4F+4Mkep9PRJRbnnUi4zdd3me58Fk=",
"pom": "sha256-d/ARCc4VB710Q+InJzdnSydST6rLDcuW47jt4LarnrY="
},
"io/prometheus#simpleclient_hotspot/0.16.0": {
"jar": "sha256-E08VbP60TL04ZAZYBu9dtVQ8aK9XjR1+5ZKD4umFP3M=",
"pom": "sha256-0haTfecjEg+3pMiLksW+oZEa+4i6dtDUjxdprYW2dek="
},
"io/prometheus#simpleclient_httpserver/0.16.0": {
"jar": "sha256-yrh94QtqR0FRzO68O2NDKalz/7YCzm7+8sD9l6kDZcg=",
"pom": "sha256-PGR/1vVhohsZ7ZcdBBn9Ri2fg/k0e8ChBaHCie6qqsQ="
},
"io/prometheus#simpleclient_tracer/0.16.0": {
"pom": "sha256-OBK7IrlfgbTDRg6eTnXDunL6ReRDqfzlMghCqr0OmcI="
},
"io/prometheus#simpleclient_tracer_common/0.16.0": {
"jar": "sha256-6Ep4SsjiTxgu5i2oC2tcgUB3S3W/pL+cw9O4OQ22JfY=",
"pom": "sha256-X5AHXOz80RKB3pzLSJaNEhKyRnDWhP/IQEQaUq6HXv8="
},
"io/prometheus#simpleclient_tracer_otel/0.16.0": {
"jar": "sha256-oqhMWb7zeWu3+cbyrot96LkFMT7ygYCsPef/Yd1o3z8=",
"pom": "sha256-frl58dwz6L5OWtFDDlQJcYpBeDwmd5qzEFJg9rQ20EY="
},
"io/prometheus#simpleclient_tracer_otel_agent/0.16.0": {
"jar": "sha256-etK7QN90p3LZ9URaPQNXm0nWs3pH1ekPbPP1ns9BrQY=",
"pom": "sha256-VSj4WIQ1SulNm8BnR+f1iS0JLAtVBVrnBWZo6gyhznw="
},
"io/reactivex/rxjava3#rxjava/3.0.13": {
"jar": "sha256-WYq69x28lw3Qcn5tX094bcmZ31uXLL8mExajLhVbLGk=",
"module": "sha256-khiPWj8bL7xUkxB3AKetrnAsHXc8TO02auitkjj2q+g=",
"pom": "sha256-yZCmX0c2tGOe0X1nhMqUdtPClRuGUqAKVnbAKHw24OQ="
},
"io/sentry#sentry/6.11.0": {
"jar": "sha256-77Huk5ks2xQSGMB71siYkzkvwzzcAaqHZjOuJNc8Wa4=",
"pom": "sha256-gOTkmRGslV0gUJp3OFODNyge4TUUFCIslXFpoyfWIfc="
},
"org/apache#apache/24": {
"pom": "sha256-LpO7q+NBOviaDDv7nmv3Hbyej5+xTMux14vQJ13xxSU="
},
"org/apache/logging#logging-parent/5": {
"pom": "sha256-3HYwz4LLMfTUdiFgVCIa/9UldG7pZUEkD0UvcyNwMCI="
},
"org/apache/logging/log4j#log4j-api/2.19.0": {
"jar": "sha256-XMskrZ+S52jQvEVtMGGnN5USYt+APgBNLK0Ja3WojWA=",
"pom": "sha256-DKkiQ2MurHxkRF8mO+UDBLdaerv7eIXNbIH1cRJ01KU="
},
"org/apache/logging/log4j#log4j-bom/2.19.0": {
"pom": "sha256-jGp6wVCpGKIpBzNf1VZpFHMe14E2l3DVJfZMDQf+h+c="
},
"org/apache/logging/log4j#log4j-core/2.19.0": {
"jar": "sha256-tKF5b6t7/DbfAVwbQFJFkUeZfo0hWnGZ1x0F+edH5PQ=",
"pom": "sha256-c1r8+2E2GCqidn62RZdhr9MrgleR1OCJXqGpSyrbmzk="
},
"org/apache/logging/log4j#log4j/2.19.0": {
"pom": "sha256-FWJLoaVtv4ZGBgdFMlM2GPoytGQvcoUfy+kuE2vq7JQ="
},
"org/apiguardian#apiguardian-api/1.1.2": {
"jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
"module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
"pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
},
"org/bouncycastle#bcprov-jdk15on/1.70": {
"jar": "sha256-jzwg4+LVZdJvM+jUhXo30Nf4rDm2KnAmSW/Ksb2sMNQ=",
"pom": "sha256-bfS1t22QYgF2ZK0MooXlcVSugDYHy4nJcLOcwOAWq7A="
},
"org/checkerframework#checker-qual/3.5.0": {
"jar": "sha256-cpmQs/GKlWBvwlc4NraVi820TLUr+9G3qpwznP81paQ=",
"pom": "sha256-KDazuKeO2zGhgDWS5g/HZ7IfLRkHZGMbpu+gg3uzVyE="
},
"org/flywaydb#flyway-core/9.10.2": {
"jar": "sha256-OAf+3K2+ykuLiUCW0R2+zX8qosfO2QrDmM9/fgWzhT4=",
"pom": "sha256-2xICRB2Ebg6wWLppHmJbvq4p7Dj7HgmRtdsbhrxoeSE="
},
"org/flywaydb#flyway-parent/9.10.2": {
"pom": "sha256-HPI2yGyMqSFnUC8Fjw/IUagPpXG5UvEWUGhAqcIbOHg="
},
"org/jetbrains#annotations/13.0": {
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
},
"org/jetbrains/kotlin#kotlin-stdlib-common/1.6.20": {
"jar": "sha256-jaQKJSDTDcsQEhdv6T0k6C0Io+NGw34DQ7D7b2T2vgE=",
"pom": "sha256-PgTMk1HVzsQqRcBg+HM/bpTrx+NZExClGOBuiFB4mcg="
},
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.6.10": {
"pom": "sha256-YSIR/5MPW1LHJP92NBfVqigd1+AyXDs1yNGBIKao300="
},
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.6.20": {
"jar": "sha256-qi+i6BNVxNmN2X2iFpv0AfhCJhN49bHL6hqhGFXWdiA=",
"pom": "sha256-iBveiiNwhuKOA0KLTvMmj0SspfoajHb4lUdIRVyuvSE="
},
"org/jetbrains/kotlin#kotlin-stdlib-jdk8/1.6.10": {
"pom": "sha256-Q6ZJ+nN7+zX6SvTm3jPi8IpdGRBNdYLqQNvNK2N5Csw="
},
"org/jetbrains/kotlin#kotlin-stdlib-jdk8/1.6.20": {
"jar": "sha256-/asb8SDiteerbXiI6evAJOxrjKcpNhKWOV2rY0shNpU=",
"pom": "sha256-GEap+GBLC+HHGiEovb2diQJyAnlCf2ItK5pECsmjwwk="
},
"org/jetbrains/kotlin#kotlin-stdlib/1.6.20": {
"jar": "sha256-7rUcK2eyYjP9gdC8T4BE7ISXGIkJBXY87/2Eox4st5k=",
"pom": "sha256-oI6D3LDymFCYd94i1SZEZHbdsx6hx3Uw8sgfJNsWb5k="
},
"org/junit#junit-bom/5.9.0": {
"module": "sha256-oFTq9QFrWLvN6GZgREp8DdPiyvhNKhrV/Ey1JZecGbk=",
"pom": "sha256-2D6H8Wds3kQZHuxc2mkEkjkvJpI7HkmBSMpznf7XUpU="
},
"org/junit#junit-bom/5.9.1": {
"module": "sha256-kCbBZWaQ+hRa117Og2dCEaoSrYkwqRsQfC9c3s4vGxw=",
"pom": "sha256-sWPBz8j8H9WLRXoA1YbATEbphtdZBOnKVMA6l9ZbSWw="
},
"org/junit/jupiter#junit-jupiter-api/5.9.0": {
"jar": "sha256-PjcLy7HoV/2l8LIDckEW0CsF54j6oeslGIFKzPnPtbE=",
"module": "sha256-n5LPF5V1xN9pgpRwTRDxLozHFdaC+yDtzYrbxB/H8PQ=",
"pom": "sha256-ap2MRpjcjGkE1qwfXRMBiqf4KESbxbjO94/BQxzgghc="
},
"org/junit/jupiter#junit-jupiter-engine/5.9.0": {
"jar": "sha256-24bLszUnGfoKl4AO39CcIEY8fyq0oEaZJEQwvYlUWDs=",
"module": "sha256-sVnltbYmIiOP1v0oZPigEsHfbbK7JvEMqA4dIqzOLx0=",
"pom": "sha256-qLfR7QMvuStDJY140jmwGcX1g02swIT5l4PjTD7hLL8="
},
"org/junit/jupiter#junit-jupiter-params/5.9.0": {
"jar": "sha256-uM73mC3VPfhMlXpumsie3pZ88ubZNA70xReG4gVIxBs=",
"module": "sha256-QUkSewrR3JKJdqY4WIer3wpD9oNlRLK614OUh2kJenE=",
"pom": "sha256-DDOljPiR2vvGIfPG2cyCMnCDHrOxib3juIbMMDmQ/Ww="
},
"org/junit/jupiter#junit-jupiter/5.9.0": {
"jar": "sha256-LbLkqitegv78vxjQryDICVpD6UrZq50WvYdVfNqjl90=",
"module": "sha256-a1AJDfWdSZ4ycr41ULiBJdXJGojhzbSaEsLwi+p6hds=",
"pom": "sha256-Imsy40Pt4WvSls+36xXhmaFOQBxUJulUOsUDrM1E3JI="
},
"org/junit/platform#junit-platform-commons/1.9.0": {
"jar": "sha256-5YlLcQCUtMqvxigLiCmkOft2SQHqCuGNBu2AOIswm3o=",
"module": "sha256-SyAzP4ruVOgwRY2B0EXrjRfcBCTTEzKNtQmpzCSZsXo=",
"pom": "sha256-MJp9efG/577WChoXCKqovXGGHBKdIWhNaO305NnILCA="
},
"org/junit/platform#junit-platform-engine/1.9.0": {
"jar": "sha256-quxzX3REqfwFXiBlmN49gpwk6ceo7qbv3usZYgh/6BE=",
"module": "sha256-/3Xx1hE/RdWyXyUpUE3tiDmGoBLJtD0hrUI5jknXEGM=",
"pom": "sha256-G2rN+hUNaWYlIHYAAcaONlhl1o7xMNGZblK5SD7IYWE="
},
"org/opentest4j#opentest4j/1.2.0": {
"jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=",
"pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ="
},
"org/postgresql#postgresql/42.5.1": {
"jar": "sha256-iei/+os3uUh5RgEsaQzwTzEDlTBRwcGT2I7ja2jTZa4=",
"pom": "sha256-R8t/RdAe0XyJ5mNlrU4v8anBR5AX35QhAPSgjLYyIRw="
},
"org/reactivestreams#reactive-streams/1.0.3": {
"jar": "sha256-He4EgQctGckptiPhVeFNL2CF3AEVKaCg2+/ITPVx2GU=",
"pom": "sha256-zO1GcXX0JXgz9ssHUQ/5ezx1oG4aWNiCo515hT1RxgI="
},
"org/slf4j#slf4j-api/2.0.5": {
"jar": "sha256-9KKXRQkpGsxJ/aSnmw1Z4V4rUkCV1kIcZjkbkjh69Mk=",
"pom": "sha256-nvLaYxSfXZ7M9608lTzfwSTrbRR79444YA9Z9gXF1G4="
},
"org/slf4j#slf4j-nop/2.0.5": {
"jar": "sha256-qY7YTal6RbnblFVrKH4vWW6h3qz4j4qw0ivRt+jvANk=",
"pom": "sha256-uCIqkKiTH/PY63GgELA8JGCqBWfKaWQvUCXulWd/Ga4="
},
"org/slf4j#slf4j-parent/2.0.5": {
"pom": "sha256-FwsRsEgVAFw7TMbfeckYQ+C5UPhbWP++jUg+0hkTuYs="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/xerial#sqlite-jdbc/3.40.0.0": {
"jar": "sha256-46G5CXh7M7s34E8lLzfkq0ekieHB1FqAmgmCw3lEXBA=",
"pom": "sha256-fI0dETimo05pNXbQe29U4h840iC4YtnhQFyy4KqIpDo="
}
}
}
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, fetchFromGitHub, jdk, jre, gradle, bash, coreutils
, substituteAll, nixosTests, perl, fetchpatch, writeText }:
, substituteAll, nixosTests, fetchpatch, writeText }:
let
version = "01497";
@@ -45,60 +45,17 @@ in stdenv.mkDerivation rec {
inherit bash coreutils jre seednodes;
};
# https://github.com/freenet/fred/blob/next/build-offline.sh
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit src version patches;
nativeBuildInputs = [ gradle perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle --no-daemon build
'';
# 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 =~ s/okio-jvm/okio/r)}" #e' \
| sh
'';
# Don't move info to share/
forceShare = [ "dummy" ];
outputHashMode = "recursive";
# Downloaded jars differ by platform
outputHash = "sha256-CZf5M3lI7Lz9Pl8U/lNoQ6V6Jxbmkxau8L273XFFS2E=";
outputHashAlgo = "sha256";
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
# Point to our local deps repo
gradleInit = writeText "init.gradle" ''
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
clear()
maven { url '${deps}/'; metadataSources {mavenPom(); artifact()} }
}
}
repositories {
clear()
maven { url '${deps}/'; metadataSources {mavenPom(); artifact()} }
}
}
}
# using reproducible archives breaks the build
gradleInitScript = writeText "empty-init-script.gradle" "";
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
maven { url '${deps}/'; metadataSources {mavenPom(); artifact()} }
}
}
}
'';
gradleFlags = [ "-Dorg.gradle.java.home=${jdk}" ];
buildPhase = ''
gradle jar -Dorg.gradle.java.home=${jdk} --offline --no-daemon --info --init-script $gradleInit
'';
gradleBuildTask = "jar";
installPhase = ''
runHook preInstall
@@ -108,7 +65,6 @@ in stdenv.mkDerivation rec {
install -Dm555 ${wrapper} $out/bin/freenet
substituteInPlace $out/bin/freenet \
--subst-var-by outFreenet $out
ln -s ${deps} $out/deps
runHook postInstall
'';
+240
View File
@@ -0,0 +1,240 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://jcenter.bintray.com": {
"io/pebbletemplates#pebble-project/3.1.5": {
"pom": "sha256-TSnFtsOFqJp3c0S4sPjcKe/j+q06e5f4faJfAnOnOJM="
},
"io/pebbletemplates#pebble/3.1.5": {
"jar": "sha256-0lOm3eWeE4aYqqruVGRh0vH2yL0qo47N00ffF8+Q1vA=",
"pom": "sha256-kGnsr9XZc4ey9mNXp1X5Ghv4kZC0yHZ6zyCJDlFAuzc="
},
"junit#junit/4.12": {
"jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=",
"pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
},
"net/java/dev/jna#jna-platform/4.5.2": {
"jar": "sha256-8dAMFn2JIcbiPGJu+fHDrgvkc8lcaP+gErx65VqH4tY=",
"pom": "sha256-+mLh78vRkHG+SzftEFPa3AymCICzmA9Yq9SX8qnxPQU="
},
"net/java/dev/jna#jna/4.5.2": {
"jar": "sha256-DI63rPZyYWVteQBRkd66ujtr9d1gpDc1okVCk4Hb7P8=",
"pom": "sha256-nfQrTM73BF1uT7ZLg3bdCS3XTZc3zGSVx2mO7MvTxE8="
},
"org/bouncycastle#bcprov-jdk15on/1.59": {
"jar": "sha256-HDHkTjMdJeRtKTs+juLQcCimfbAR50yyRDKFrtHVnIU=",
"pom": "sha256-QeZGb3GwjQXw0+tdhFXATl42hpxjXhFq4Nt04oAD7OU="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-library/1.3": {
"jar": "sha256-cR1kUi+exBCYO9MQk0KW2hNL5CVKElCAoEFuwXjfrRw=",
"pom": "sha256-HOtL+w8JiuKbk1BEsjY+ETIzE/4+0gVd+LeXN9UFYnc="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/mockito#mockito-core/1.9.5": {
"jar": "sha256-+XSDuglEufoTOqKWOHZN2+rbUew9vAIHTFj6LK7NB/o=",
"pom": "sha256-9DIR3AoX/PzVBDCr1bx0e2/SOu9FaWgrZc8rrw8gcnw="
},
"org/objenesis#objenesis/1.0": {
"jar": "sha256-xWlLVdklJ0eTgvJUGZs8ax2HgPZSrWHpylmRmIf0kag=",
"pom": "sha256-JInYiwSZ9V5173Xw8lBUV8cSxc+oR8maRvjes+fqPOs="
},
"org/slf4j#slf4j-api/1.7.25": {
"jar": "sha256-GMSgCV1cHaa4F1kudnuyPSndL1YK1033X/OWHb3iW3k=",
"pom": "sha256-fNnXoLXZPf1GGhSIkbQ1Cc9AOpx/n7SQYNNVTfHIHh4="
},
"org/slf4j#slf4j-parent/1.7.25": {
"pom": "sha256-GPXFISDbA26I1hNviDnIMtB0vdqVx1bG9CkknS21SsY="
},
"org/unbescape#unbescape/1.1.6.RELEASE": {
"jar": "sha256-WXz4fVsaTzhbnRzsl0t7SDq7PuhfxbP4tir45L7JXCw=",
"pom": "sha256-AgOVYrsyfVQcDwUHZ+kYmPo4l0eSZojMITvRG8dRJ9E="
}
},
"https://mvn.freenetproject.org": {
"org/freenetproject#freenet-ext/29": {
"jar": "sha256-MvKz1r7t9UE36i+aPr72dmbXafCWawjNF/19tZuk158="
}
},
"https://repo.maven.apache.org/maven2": {
"com/android/tools#common/22.7.2": {
"jar": "sha256-6ttGKrkD+J2cPRFUxxHwRni3mSHGgmjTQYuba/NEMk4=",
"pom": "sha256-8zhO5T3Z3fYzOUMDUs3/+WY225ZP0mzxaNvVOt8fSQg="
},
"com/android/tools#dvlib/22.7.2": {
"jar": "sha256-/a4X4WbglSc1P37HGgt/PZPMBhxkf8p73ZZjJjO7Z+s=",
"pom": "sha256-Q1HWW5dIC0kjSGhulIFI7Hp/AOVXbZjC9DHPIBxDSpw="
},
"com/android/tools#sdk-common/22.7.2": {
"jar": "sha256-l/7SZpQEdLQTNBcmSalIWvV6Qqmsmrcm2S27X6SjPpU=",
"pom": "sha256-Ln4pJV6PBhvVs706Vj7/nqu2xqmLSIHwlpzklOkrhD4="
},
"com/android/tools#sdklib/22.7.2": {
"jar": "sha256-qFsaBA/dxaWEWjBuaOK4qx/+LFMS4buyoosTvxOE7RU=",
"pom": "sha256-mGlFT4xtSEwnyYC4eIETnMx/7/Q+7g+MGkhtsbXUPSM="
},
"com/android/tools/build#builder-model/0.9.2": {
"jar": "sha256-Utfe2Ho/LgcOOyj3IdFPXtik4s6cVFlT2C3cp0XQ/pU=",
"pom": "sha256-8F2KJ7WoFcgydCbzj7DeW6zpgmAAtE4iR+vTxtcnw28="
},
"com/android/tools/build#builder-test-api/0.9.2": {
"jar": "sha256-+i52Ho1fu3bUsVJVeE2nx89qaGW03e1IDXpCxvjqbgo=",
"pom": "sha256-c2xEI3eXn7+LDkxMnGSI6Gg7In6VIXekA6LH+4SB2Fg="
},
"com/android/tools/build#builder/0.9.2": {
"jar": "sha256-Vbz5bMADnI7bU9GRVeq+1NfgGgkbZv6zrbb/acJ59Bk=",
"pom": "sha256-UaLeg+swvMwBEbTd3mkxvswC5HwpuqNgm9ErCm7kvvg="
},
"com/android/tools/build#gradle/0.9.2": {
"jar": "sha256-gX/QEcuyw4yF/39EWHwTsUCoRUrfk3/Do/KKZggULII=",
"pom": "sha256-DCk9CiNuuQYLtf32UJGE98BPy2xFGXbKkS0LysbBt7Y="
},
"com/android/tools/build#manifest-merger/22.7.2": {
"jar": "sha256-KUCCoJLJeibyMtC+EhCamQj7pI/dOfdkWTI2nONiD5Q=",
"pom": "sha256-yTWvDWMw7Lk41paAn7mIG5hMz07owjDEUP8nqVNIFv0="
},
"com/android/tools/build/gradle/maven-metadata": {
"xml": {
"groupId": "com.android.tools.build",
"lastUpdated": "20170306221012",
"release": "2.3.0"
}
},
"com/android/tools/ddms#ddmlib/22.7.2": {
"jar": "sha256-NZ5F7s1IkUbifaIimc7nOzYL1Ox/wCfb2zXKys5BOfk=",
"pom": "sha256-YrMjYBcQ4UiBuJ/LDEJ/DfnNbewtmiY+F17jMt8iMXY="
},
"com/android/tools/external/lombok#lombok-ast/0.2.2": {
"jar": "sha256-Ww2J1DBMXGFGDkijsPMTf3EitDOBuLtQWr9HzF/bmoE=",
"pom": "sha256-iuaeannJXNEvRP80ak/B1wrnLTlkqnk3cTbGPIv0074="
},
"com/android/tools/layoutlib#layoutlib-api/22.7.2": {
"jar": "sha256-X/eOSXu1N9Hi9toYoVGvyQZ7Cj6Q6KQvHJldOxd0kSw=",
"pom": "sha256-dyDIj0DkMDb+tWMd2uEnO8XSwURDnqGK3/p0J3LzHnM="
},
"com/android/tools/lint#lint-api/22.7.2": {
"jar": "sha256-1faoCgpY1ycOFmiZGr+akAkteBBqy1qDRGddCv71Tv4=",
"pom": "sha256-gs32TSJflZ0SMJzK4k21b17zmJzn27TrE/oEW01RaQM="
},
"com/android/tools/lint#lint-checks/22.7.2": {
"jar": "sha256-Hrp9wZ3RAhpR3BkT5obPwe4yrP3e26H3NZf2X6ghXzM=",
"pom": "sha256-5/n3/kXskHm5S/kCh6xSbyGQ6/vJyU3LJsGhsG2+uM8="
},
"com/android/tools/lint#lint/22.7.2": {
"jar": "sha256-vyzGoCzhz2/wdqBBo6GC8G8chqZfU/vR69VK/cxqjrg=",
"pom": "sha256-PPoEnyzLSe5u7n55c5WjqGrpizxkIIINKEb+B6bqKlc="
},
"com/google/guava#guava-parent/15.0": {
"pom": "sha256-9RllyaeD1msuchhUmHcfYJsJcQik/g9xfPwzCBWV2js="
},
"com/google/guava#guava/15.0": {
"jar": "sha256-ejRXV3DuvGClR2YW42dqbLbyl1x4xBXipgFKxyS6V4M=",
"pom": "sha256-lxBXG7i0qZL0X/gKSOL+Ws7cdD6/iD1M/cuSBgIruFs="
},
"com/squareup#javawriter/2.2.1": {
"jar": "sha256-HIIW3l9u2UaerpQhAybEt/5hFmvlAnaOkCd5xqe6vOo=",
"pom": "sha256-XNmnCSuBlmCSc4cBpL28LkoDm/r8E6NcfKCYEc+7MPA="
},
"commons-codec#commons-codec/1.4": {
"jar": "sha256-aqQjTHTzoQNXUaJYIlRYZ8jDcnElpkK24ElmXRhjYxs=",
"pom": "sha256-9fMAaUIboBPna+znYEB9zIACJGHclVXcvXX9sG2aQI8="
},
"commons-logging#commons-logging/1.1.1": {
"jar": "sha256-zm+RPK0fDbOq1wGG1lxbx//Mmpnj/o4LE3MSgZ98Ni8=",
"pom": "sha256-0PLhbQVOi7l63ZyiZSXrI0b2koCfzSooeH2ozrPDXug="
},
"kxml2#kxml2/2.3.0": {
"pom": "sha256-CVvyT0be2d4LZsqdZx3PVPj2FbqVFQsaMTw0dcVf1qU="
},
"net/sf/kxml#kxml2/2.3.0": {
"jar": "sha256-8mTdn3mh/eEM5ezFMiHv8kvkyTMcgwt9UvLwintjPeI=",
"pom": "sha256-Mc5gb06VGJNimbsNJ8l4+mHhhf0d58mHT+lZpT40poU="
},
"net/sf/proguard#proguard-base/4.10": {
"jar": "sha256-pCU0cXeR5+2oMDYTNzWP4siLCRmAEfnu0epVkfNUTyQ=",
"pom": "sha256-iYTsEfuzfC9fj1aDRT2mLVtGYU8VxVBxJUH9isYqnWs="
},
"net/sf/proguard#proguard-gradle/4.10": {
"jar": "sha256-ijb/GXYIYcPPWijb4aadk+aEfi5aadg5PQhkQv8R0Ms=",
"pom": "sha256-kZNouji8XuG6t3YYOqf2HKBaDg1syDbiOhByk59mK5E="
},
"net/sf/proguard#proguard-parent/4.10": {
"pom": "sha256-31W088lOxk4iyZFZ/VmWktA9VNdaFRMXMqovUDOeLGM="
},
"org/apache#apache/4": {
"pom": "sha256-npMjomuo6yOU7+8MltMbcN9XCAhjDcFHyrHnNUHMUZQ="
},
"org/apache/commons#commons-compress/1.0": {
"jar": "sha256-CehOeXeMoboVtzNll6MhRX/CJb1dQfe0aTXSeSL8KnQ=",
"pom": "sha256-O4swzTU6QIV7IEMRzGQVBLATSET8lhOMIkMlniAo/5E="
},
"org/apache/commons#commons-parent/11": {
"pom": "sha256-ueAwbzk0YBBbij+lEFJQxSkbHvqpmVSs4OwceDEJoCo="
},
"org/apache/commons#commons-parent/5": {
"pom": "sha256-i9YywAvfgKfeNsIrYPEkUsFH2Oyi8A151maZ6+faoCo="
},
"org/apache/httpcomponents#httpclient/4.1.1": {
"jar": "sha256-6uUm0Ipmeb9soTjUWgAFsgum7EpAJ4i+gQlwcTyOR1E=",
"pom": "sha256-rboX2TSKl9TOBfKCZ5cP2BlcYaVssG1eDdFfr/YP4qc="
},
"org/apache/httpcomponents#httpcomponents-client/4.1": {
"pom": "sha256-UhW2SHmMbI2bnN42QtO/taTMiUt8hBEAQ1Ln3l0RmCc="
},
"org/apache/httpcomponents#httpcomponents-client/4.1.1": {
"pom": "sha256-R1KE5emVUm1+dxUTSgdBLOctWYUEY0I4P13kGIoCKlM="
},
"org/apache/httpcomponents#httpcomponents-core/4.1": {
"pom": "sha256-T3l//Zw9FW3g2+wf0eY+n9hYSpPHBDV2VT38twb2TeQ="
},
"org/apache/httpcomponents#httpcore/4.1": {
"jar": "sha256-POON5R9OJGaMbRhAV6jQhUH56BXS0xnQ9GLwgwkrKc8=",
"pom": "sha256-T8hq+jjpyfqwmcz0XCvHQ9RT5qsiJJCr/oZxl1w8cyc="
},
"org/apache/httpcomponents#httpmime/4.1": {
"jar": "sha256-MWKVZhSOikdoiuQ7Qgq8Ps14PtFbM768AIJL8kybFao=",
"pom": "sha256-2zzZW+wQAWBeFlPyhD6FQucS+iu2cv2cjBrOhsV2c9E="
},
"org/apache/httpcomponents#project/4.1.1": {
"pom": "sha256-IbtNRN/1TjOjfBGvaYWacUICrgCWmqtUU+unJ2aI+Ow="
},
"org/bouncycastle#bcpkix-jdk15on/1.48": {
"jar": "sha256-U0czNrTlqtd5aKGLFsVNFc28Q/Plehh4eZ7faUHQujc=",
"pom": "sha256-v3z/mqxILUKuuKFVHQDrZ81DbsjNThJuyKHgnITdIX0="
},
"org/bouncycastle#bcprov-jdk15on/1.48": {
"jar": "sha256-gEt+Ljuax3Hf07Q94WZmrGAI+GAPSPKN3JTjmhFOIog=",
"pom": "sha256-KRIr50qOwbT8VB49opmL62Irw4wEuovx9Vk4aReCeYI="
},
"org/eclipse/jdt/core/compiler#ecj/4.2.2": {
"jar": "sha256-THTfiGENZzssdL9bSLYoS65C+biA8K2JqK2mn+hKDXA=",
"pom": "sha256-sh7YTnfE/FhyYqADSzUx+vt+WxGlMWqbjKo/47fqYj0="
},
"org/ow2#ow2/1.3": {
"pom": "sha256-USFcZ9LAaNi30vb4D1E3KgmAdd7MxEjUvde5h7qDKPs="
},
"org/ow2/asm#asm-analysis/4.0": {
"jar": "sha256-3VOXq69XIxBJrLEBxFHlmKlHpd0YKYMneVNc/cK68U4=",
"pom": "sha256-7U8zeG58CrtuaOYcK047V7WLFOqu/ewxtwkCXja3/Hg="
},
"org/ow2/asm#asm-parent/4.0": {
"pom": "sha256-QFr+Cu5AfJEcXkqoCpSdtVOS8XleE8oCrnKdFV30rBg="
},
"org/ow2/asm#asm-tree/4.0": {
"jar": "sha256-2LAWoiBbLhQdtCbAQdKubQ1ButBQBioqUXWiWdNkF9o=",
"pom": "sha256-eskVIWBDQDSQMyuS1unIoqd5QIyy1kgdqdOjXtGKLvw="
},
"org/ow2/asm#asm/4.0": {
"jar": "sha256-+y3ekCCke7AkxD2d4KlOc6vveTvwjwE1TMl8stLiqVc=",
"pom": "sha256-5jzvroWeRrEtOd1Yh3oZ+JN0pM6xvLE2Fz+nbUfXhtc="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
}
}
}
+16 -72
View File
@@ -9,18 +9,9 @@
, gtk3
, jdk
, gradle
, perl
, python3
}:
let
versionReplace = {
easybind = {
snapshot = "2.2.1-SNAPSHOT";
pin = "2.2.1-20230117.075740-16";
};
};
in
stdenv.mkDerivation rec {
version = "5.13";
pname = "jabref";
@@ -47,36 +38,12 @@ stdenv.mkDerivation rec {
})
];
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit src version postPatch;
nativeBuildInputs = [ gradle perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle --no-daemon downloadDependencies -Dos.arch=amd64
gradle --no-daemon downloadDependencies -Dos.arch=aarch64
'';
# 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 =~ s/-jvm//r)}" #e' \
| sh
mv $out/com/tobiasdiez/easybind/${versionReplace.easybind.pin} \
$out/com/tobiasdiez/easybind/${versionReplace.easybind.snapshot}
'';
# Don't move info to share/
forceShare = [ "dummy" ];
outputHashMode = "recursive";
outputHash = "sha256-lpFIhvPgkzIsHR6IVnn+oPhdSjo0yOIw7USo2+SJCVQ=";
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
postPatch = ''
# Pin the version
substituteInPlace build.gradle \
--replace 'com.tobiasdiez:easybind:${versionReplace.easybind.snapshot}' \
'com.tobiasdiez:easybind:${versionReplace.easybind.pin}'
# Disable update check
substituteInPlace src/main/java/org/jabref/preferences/JabRefPreferences.java \
--replace 'VERSION_CHECK_ENABLED, Boolean.TRUE' \
@@ -85,30 +52,6 @@ stdenv.mkDerivation rec {
# Find OpenOffice/LibreOffice binary
substituteInPlace src/main/java/org/jabref/logic/openoffice/OpenOfficePreferences.java \
--replace '/usr' '/run/current-system/sw'
# Add back downloadDependencies task for deps download which is removed upstream in https://github.com/JabRef/jabref/pull/10326
cat <<EOF >> build.gradle
task downloadDependencies {
description "Pre-downloads *most* dependencies"
doLast {
configurations.getAsMap().each { name, config ->
println "Retrieving dependencies for $name"
try {
config.files
} catch (e) {
// some cannot be resolved, just log them
project.logger.info e.message
}
}
}
}
EOF
'';
preBuild = ''
# Use the local packages from -deps
sed -i -e '/repositories {/a maven { url uri("${deps}") }' build.gradle
sed -i -e '1i pluginManagement { repositories { maven { url uri("${deps}") } } }' settings.gradle
'';
nativeBuildInputs = [
@@ -124,19 +67,13 @@ stdenv.mkDerivation rec {
python3
];
buildPhase = ''
runHook preBuild
gradleFlags = [
"-PprojVersion=${version}"
"-Dorg.gradle.java.home=${jdk}"
];
export GRADLE_USER_HOME=$(mktemp -d)
gradle \
--offline \
--no-daemon \
-PprojVersion="${version}" \
-PprojVersionInfo="${version} NixOS" \
-Dorg.gradle.java.home=${jdk} \
assemble
runHook postBuild
preBuild = ''
gradleFlagsArray+=(-PprojVersionInfo="${version} NixOS")
'';
dontWrapGApps = true;
@@ -178,6 +115,13 @@ stdenv.mkDerivation rec {
ln -sf $out/bin/JabRef $out/bin/jabref
'';
gradleUpdateScript = ''
runHook preBuild
gradle nixDownloadDeps -Dos.arch=amd64
gradle nixDownloadDeps -Dos.arch=aarch64
'';
meta = with lib; {
description = "Open source bibliography reference manager";
homepage = "https://www.jabref.org";
File diff suppressed because it is too large Load Diff
+10 -40
View File
@@ -2,7 +2,6 @@
, fetchurl
, jdk
, gradle_7
, perl
, jre
, makeWrapper
, makeDesktopItem
@@ -12,6 +11,9 @@
}:
let
gradle = gradle_7;
in stdenv.mkDerivation rec {
pname = "key";
version = "2.10.0";
src = fetchurl {
@@ -20,30 +22,6 @@ let
};
sourceRoot = "key-${version}/key";
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit version src sourceRoot;
nativeBuildInputs = [ gradle_7 perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
# https://github.com/gradle/gradle/issues/4426
${lib.optionalString stdenv.isDarwin "export TERM=dumb"}
gradle --no-daemon classes testClasses
'';
# 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";
outputHashAlgo = "sha256";
outputHash = "sha256-GjBUwJxeyJA6vGrPQVtNpcHb4CJlNlY4kHt1PT21xjo=";
};
in stdenv.mkDerivation rec {
inherit pname version src sourceRoot;
nativeBuildInputs = [
jdk
gradle_7
@@ -65,23 +43,15 @@ in stdenv.mkDerivation rec {
})
];
# disable tests (broken on darwin)
gradleAction = if stdenv.isDarwin then "assemble" else "build";
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
buildPhase = ''
runHook preBuild
__darwinAllowLocalNetworking = true;
export GRADLE_USER_HOME=$(mktemp -d)
# https://github.com/gradle/gradle/issues/4426
${lib.optionalString stdenv.isDarwin "export TERM=dumb"}
# point to offline repo
sed -ie "s#repositories {#repositories { maven { url '${deps}' }#g" build.gradle
cat <(echo "pluginManagement { repositories { maven { url '${deps}' } } }") settings.gradle > settings_new.gradle
mv settings_new.gradle settings.gradle
gradle --offline --no-daemon ${gradleAction}
runHook postBuild
'';
# tests are broken on darwin
doCheck = !stdenv.isDarwin;
installPhase = ''
runHook preInstall
+387
View File
@@ -0,0 +1,387 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://plugins.gradle.org/m2": {
"ca/coglinc#javacc-gradle-plugin/2.4.0": {
"jar": "sha256-RsMHTru+ENUOzWkQpiYxCkE5FlZ5Ct0JF+kBp9afidw=",
"pom": "sha256-NTSsuHwtwH2hAqOP1wn1oANHgSkM+gcjPZTLXMOiyrA="
},
"ca/coglinc/javacc#ca.coglinc.javacc.gradle.plugin/2.4.0": {
"pom": "sha256-zmWjvt7VamHG21s6/cHApVuH6mvAewTxamaqn8DP2jw="
},
"com/github/hierynomus/license-base#com.github.hierynomus.license-base.gradle.plugin/0.15.0": {
"pom": "sha256-jWmQF6e7GyViPR4EGOKapRwtUYEHkgNaR8PG+hgMSXU="
},
"com/github/hierynomus/license-report#com.github.hierynomus.license-report.gradle.plugin/0.15.0": {
"pom": "sha256-OIRMJK0goaid41C254nDEz3FeeD51kZSyQi9uCgwAxM="
},
"com/github/johnrengelman/shadow#com.github.johnrengelman.shadow.gradle.plugin/7.1.0": {
"pom": "sha256-mh4hygODDXleq/uKbALOM4QuvCPGd+xqqZ50W1FPKt4="
},
"com/google/guava#guava-jdk5/17.0": {
"jar": "sha256-Wb9FZUe23aPO2WjLVvfy0+FEdOLeKWCjLEfjHB5FbGE=",
"pom": "sha256-+MFSYngT1FvE58wXrW7WpkmgIxroGf+44F0ZsgWj22Y="
},
"com/google/guava#guava-parent-jdk5/17.0": {
"pom": "sha256-WpYGvCdjKVazwR34h+mz54WFQGiqpOCAjtVmD2Cx+28="
},
"com/mycila#license-maven-plugin-parent/3.0": {
"pom": "sha256-DR8XPOud8hKSZ2Z8EMiR5eXXJm2C46hQcGaNtW2wy/o="
},
"com/mycila#license-maven-plugin/3.0": {
"jar": "sha256-Ul/o866FI9Be7ac2ZFxB6cMw8CV4K1s95u8Lqs8teMw=",
"pom": "sha256-kmJwjckIctcrvmfLFVITU6feJkgJzh6zLflfvqR2/IM="
},
"com/mycila#mycila-pom/3": {
"pom": "sha256-QCd6OyVlPuZDPEaFLacOlzbBmNlLyvbSw0cIqHOjGyY="
},
"com/mycila#mycila-xmltool/4.4.ga": {
"jar": "sha256-ddeyvpOBpl9vrDLzEIIhEvgFVm6fipekXY8Tz1UEnOA=",
"pom": "sha256-wMaee7roquvUQOFnjOn1AotD07ToHNQ26Y+BOkvDIrI="
},
"com/mycila/xmltool#xmltool/3.3": {
"jar": "sha256-hw+TlnieL0inuPso38BwwvjnSyAHJ0ziPmm2WBEP0pQ=",
"pom": "sha256-64P2FpRcjH37TYDm+QnnKG9SO7EQd4ArzSFr1w6ccXo="
},
"commons-io#commons-io/2.11.0": {
"jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=",
"pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k="
},
"commons-io#commons-io/2.4": {
"jar": "sha256-zGpB3D6qzJ5ECmvQ0okLINNrTuQI/i1nEi8yi7bgFYE=",
"pom": "sha256-srXdRs+Zj6Ym62+KHBFPYWfI05JpQWTmJTPliY6bMfI="
},
"commons-logging#commons-logging/1.1.1": {
"jar": "sha256-zm+RPK0fDbOq1wGG1lxbx//Mmpnj/o4LE3MSgZ98Ni8=",
"pom": "sha256-0PLhbQVOi7l63ZyiZSXrI0b2koCfzSooeH2ozrPDXug="
},
"gradle/plugin/com/github/johnrengelman#shadow/7.1.0": {
"jar": "sha256-Bar4oiGwbGeS7hmZYZPolH7zv3Il6nWOUYsywoNxCJA=",
"pom": "sha256-q7tz6sHPSyR/wBbmyohafaFjNk/vyYDICvjTy+jRSQI="
},
"gradle/plugin/com/hierynomus/gradle/plugins#license-gradle-plugin/0.15.0": {
"jar": "sha256-gpLVOVy+k7lGe/p64JgC70z9316oNexy6jxKahfw9ZY=",
"pom": "sha256-IAmy13nhNo/tPGzHVwS58EVRv+3tFpk4F0ltrbtDyiw="
},
"org/apache#apache/10": {
"pom": "sha256-gC/uznKFLa/L0KQlpgNnxyxcubbqWq5ZSBEoVpGJ2vk="
},
"org/apache#apache/13": {
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
},
"org/apache#apache/16": {
"pom": "sha256-n4X/L9fWyzCXqkf7QZ7n8OvoaRCfmKup9Oyj9J50pA4="
},
"org/apache#apache/23": {
"pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw="
},
"org/apache#apache/4": {
"pom": "sha256-npMjomuo6yOU7+8MltMbcN9XCAhjDcFHyrHnNUHMUZQ="
},
"org/apache#apache/9": {
"pom": "sha256-SUbmClR8jtpp87wjxbbw2tz4Rp6kmx0dp940rs/PGN0="
},
"org/apache/ant#ant-launcher/1.10.11": {
"jar": "sha256-2rUw33qYC1rI/X6NIIJDrg0+vW3gmxqiznVjYMwu0lY=",
"pom": "sha256-7SoGiCYb624I7FSzgxLx1ILM8aO4Y8R9KNW5CkRtHB4="
},
"org/apache/ant#ant-parent/1.10.11": {
"pom": "sha256-V6BTJoLzD6MHQWoiWSnVcQrNpy17Je4IyvmNyCzTXbY="
},
"org/apache/ant#ant/1.10.11": {
"jar": "sha256-iMC4m7uq4B4Nn8rpO+eS9au+NAkQb47uhY/fNl28B1Q=",
"pom": "sha256-wiiU2ctGq/XOv27rK8z+TXjhju6jEaDqat3VnftLH+M="
},
"org/apache/commons#commons-collections4/4.1": {
"jar": "sha256-sf6LWWi1fYRlQlNX7S2dxpVQRRi+0t9bVlxLjmjByKU=",
"pom": "sha256-wK1C6RA1N5YNmnTaWOzCTdGjehPR5MSPCWm+k+QBg2k="
},
"org/apache/commons#commons-lang3/3.4": {
"jar": "sha256-c0yDVkIMyOMMeV1k/R/NXUTqnZA0KizDJixRWPvG2Ys=",
"pom": "sha256-aG51tWGhPBAx1Dp2R6Nk4u0+RWRnBQ6sRSe5SwbXP9E="
},
"org/apache/commons#commons-parent/25": {
"pom": "sha256-RnrmUEQuh2hnN5CU51GN/dZ9IsU1Lr05gIyEJZ6XkLo="
},
"org/apache/commons#commons-parent/33": {
"pom": "sha256-U9ABE1Li5RBvN52vzNrHdU7G8PeCQ8AwXklp9azd+Ps="
},
"org/apache/commons#commons-parent/37": {
"pom": "sha256-7nBaTdaNjc2cyNEknVeQhh6xRc57DG1sBVW6lEidAUs="
},
"org/apache/commons#commons-parent/38": {
"pom": "sha256-VY2WF0Xrrcxdw5HP3n1HQIbUyq7iTdPm35Me2fa1tJU="
},
"org/apache/commons#commons-parent/5": {
"pom": "sha256-i9YywAvfgKfeNsIrYPEkUsFH2Oyi8A151maZ6+faoCo="
},
"org/apache/commons#commons-parent/52": {
"pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4="
},
"org/apache/commons#commons-pool2/2.2": {
"jar": "sha256-h4Czu7Mah5fnTp8wIvBD3a3Crui+Y9lPgIKmoWVGxBs=",
"pom": "sha256-SPll6CQtvwF4bQqS0K1j4gogHUpTbgMh0DsQ0uDJgVM="
},
"org/apache/logging#logging-parent/3": {
"pom": "sha256-djouwrgJTUFh3rbCZLEmIIW5vjC/OjHCzhNyQuV3Iqc="
},
"org/apache/logging/log4j#log4j-api/2.17.1": {
"jar": "sha256-sNikyKtPuLGIjQCVgicDsObUeTxBlVAgPanmkZYWHeQ=",
"pom": "sha256-HirO8yILKb4QrgmXKLFYsY2UP5Ghk8xFAbtC+SnB6Io="
},
"org/apache/logging/log4j#log4j-core/2.17.1": {
"jar": "sha256-yWfyI0h5gLk2TpSnx/mooB/T7nwZvb8LD5+MuFEfPUE=",
"pom": "sha256-C7s79tTSKhv6PDwJJ8KUEK8UoPsm47Ark3JvXH6Yqv0="
},
"org/apache/logging/log4j#log4j/2.17.1": {
"pom": "sha256-lnq8AkRDqcsJaTVVmvXprW8P9hN1+Esn1EDS+nCAawk="
},
"org/apache/maven#maven-parent/21": {
"pom": "sha256-/EWviRHqMH0bV1ZO7x94tpgB6cEaVhnn61jV0Arp244="
},
"org/apache/maven#maven-settings-builder/3.0.4": {
"jar": "sha256-o4pU7B5pow3fwUQ04K7Cdk/CaGaKvMDhMthmkqXc4+Q=",
"pom": "sha256-Pgs/YCZ7YHCnQbFdtbQPvYJMYdsSofTxZu1li59i7OA="
},
"org/apache/maven#maven-settings/3.0.4": {
"jar": "sha256-Pj3xf1315M4ee38gEcV9YdMo5lZ4VCreIEjw0PopXwk=",
"pom": "sha256-vu3/18fkmtNe+UXDQT8YGfBOQ+opSjGARxTIy7DzcrM="
},
"org/apache/maven#maven/3.0.4": {
"pom": "sha256-TSI+AaZWnWZVwfT86Elp1FFCzbq9sRjqCMXIwz7GMvY="
},
"org/codehaus/plexus#plexus-component-annotations/1.5.5": {
"jar": "sha256-Tfemp75ks1u8z2C1wRVpf56jQh0iZ0rmcTXd43X8yh8=",
"pom": "sha256-gV8+wxa4xfpwE4X99ACb+1HgfXgOj2puKv5yDFLX4pI="
},
"org/codehaus/plexus#plexus-components/1.1.18": {
"pom": "sha256-7128f6kYttu6cdJ+Wz16AN9iS8+iVJpyl/Nv4nX2NNc="
},
"org/codehaus/plexus#plexus-containers/1.5.5": {
"pom": "sha256-G8Jkgk7IdrDKb09YOBdcVBxjjLxDMmomi5rufUd4te8="
},
"org/codehaus/plexus#plexus-interpolation/1.14": {
"jar": "sha256-f8YzeNPoRmNhm5vtrOn5/niydsK+PGLKIkVEkpTIQXY=",
"pom": "sha256-0IFVxJffN7LD2bWw39sC7AUlsgcLW+Nzn//elC/Kya8="
},
"org/codehaus/plexus#plexus-utils/2.0.5": {
"pom": "sha256-Nbx9EhNhYjZXEHKyxW2hj3pXZY3otKQQBkW3BUorJzs="
},
"org/codehaus/plexus#plexus-utils/2.0.6": {
"jar": "sha256-i5CfTKl4hkeUL4g9TlWbzGQhI/fGvNOEaYOi5GVGnDM=",
"pom": "sha256-/drU+mLIIxCuxDUl5RnNWfJ9BMdWn+IbGwPKIQiHgQw="
},
"org/codehaus/plexus#plexus-utils/3.4.1": {
"jar": "sha256-UtheBLORhyKvEdEoVbSoJX35ag52yPTjhS5vqoUfNXs=",
"pom": "sha256-sUTP+bHGJZ/sT+5b38DzYNacI6vU6m5URTOpSbaeNYI="
},
"org/codehaus/plexus#plexus/2.0.6": {
"pom": "sha256-vqEudHcI0l5zQQyhxzHr36EC6L227H2BvUUiWDsjS8w="
},
"org/codehaus/plexus#plexus/2.0.7": {
"pom": "sha256-K1kGIDCrChXF0Jd7oiQhcGNokmSIc5pl8leT5xXMinQ="
},
"org/codehaus/plexus#plexus/8": {
"pom": "sha256-/6NJ2wTnq/ZYhb3FogYvQZfA/50/H04qpXILdyM/dCw="
},
"org/jdom#jdom2/2.0.6": {
"jar": "sha256-E0XxG6YG0VYD1nQFUajCGUfAIVZAdw7GcnH+eL6pfPU=",
"pom": "sha256-R7I6ef4za3QbgkNMbgSdaBZSVuQF51wQkh/XL6imXY0="
},
"org/junit#junit-bom/5.7.2": {
"module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=",
"pom": "sha256-zRSqqGmZH4ICHFhdVw0x/zQry6WLtEIztwGTdxuWSHs="
},
"org/ow2#ow2/1.5": {
"pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs="
},
"org/ow2/asm#asm-analysis/9.2": {
"jar": "sha256-h4++UhcxwHLRTS1luYOxvq5q0G/aAAe2qLroH3P0M8Q=",
"pom": "sha256-dzzBor/BTGxKl5xRoHXAI0oL9pT8Or5PrPRU83oUXxs="
},
"org/ow2/asm#asm-commons/9.2": {
"jar": "sha256-vkzlMTiiOLtSLNeBz5Hzulzi9sqT7GLUahYqEnIl4KY=",
"pom": "sha256-AoJOg58qLw5ylZ/dMLSJckDwWvxD3kLXugsYQ3YBwHA="
},
"org/ow2/asm#asm-tree/9.2": {
"jar": "sha256-qr+b0jCRpOv8EJwfPufPPkuJ9rotP1HFJD8Ws8/64BE=",
"pom": "sha256-9h8+vqVSDd8Z9FKwPEJscjG92KgdesKHZctScSJaw3g="
},
"org/ow2/asm#asm/9.2": {
"jar": "sha256-udT+TXGTjfOIOfDspCqqpkz4sxPWeNoDbwyzyhmbR/U=",
"pom": "sha256-37EqGyJL8Bvh/WBAIEZviUJBvLZF3M45Xt2M1vilDfQ="
},
"org/sonarqube#org.sonarqube.gradle.plugin/3.0": {
"pom": "sha256-1Pg7ynlN6ZPv/gtqt/HO572zNJgWc4BVkHgvv6Mj420="
},
"org/sonarsource/parent#parent/54": {
"pom": "sha256-QVl5Y/x9ObDgJArLTYT1dbQCQtbhR9xQsCbUzvwFMV8="
},
"org/sonarsource/scanner/api#sonar-scanner-api-parent/2.15.0.2182": {
"pom": "sha256-JcR02YT0wD5P147u53D0Pqks+5Xrixf3+qyFVpNgFoY="
},
"org/sonarsource/scanner/api#sonar-scanner-api/2.15.0.2182": {
"jar": "sha256-h+foNKu97912pce/pM7ztxUhsfVQ/Iu+qLCphVPjNeg=",
"pom": "sha256-H+gEKIHd2qgREtNNv0k30OM+TQFYYIJ7/R/fb0YLH9U="
},
"org/sonarsource/scanner/gradle#sonarqube-gradle-plugin/3.0": {
"jar": "sha256-KLTNnuKtiAHAxeXJhPNtLizGDRkhwC61jujORTpejb8=",
"pom": "sha256-2jJNuKvT65d8B0lY/9E4vdVTWwYojfN7WiRv53Uad7Y="
},
"org/sonatype/forge#forge-parent/4": {
"pom": "sha256-GDjRMkeQBbS3RZt5jp2ZFVFQkMKICC/c2G2wsQmDokw="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/plexus#plexus-cipher/1.4": {
"jar": "sha256-WhX9uiJmng/dBuENzOYyCHnh9zmPvJEM0Gd7UGcqeMQ=",
"pom": "sha256-pjouI5iMyn+sbJOIbW8FBv0m2I1+jMDLibnG4NbJlK0="
},
"org/sonatype/plexus#plexus-sec-dispatcher/1.3": {
"jar": "sha256-OwVZu4Qy8ok37+bKGT71SoUG0Addc/10BrmxFsahEGM=",
"pom": "sha256-1eZQxQ72lYwCjtAktZrwTPPTjhRTp31UK2tIS8D0ygs="
},
"org/sonatype/spice#spice-parent/12": {
"pom": "sha256-IaGbJtvlw43bURTPTq2/XMtBG8axKP3VlJscyxLzaD4="
},
"org/springframework#spring-asm/3.1.3.RELEASE": {
"jar": "sha256-za8dBwQOdREzok+Zesp9mOrL/mfhsoddzoynOCUngTA=",
"pom": "sha256-f7b7uYdEDEjGc9sVsIdwqcLWySBSBEIZl5z0j0ZvcSM="
},
"org/springframework#spring-core/3.1.3.RELEASE": {
"jar": "sha256-AUp7IdtoD9iGfgJrGMO/idME3sWyEJCotqezy1z8d9I=",
"pom": "sha256-8xqLb1m2oBgOOMnBKboGB7rnoNShC5U3V3DIFKtMx1M="
},
"org/springframework#spring-parent/3.1.3.RELEASE": {
"pom": "sha256-ZOkRARj4KhQnWaMW0J09jY1xfV2VB51/aziO5Hn6eC8="
},
"org/vafer#jdependency/2.7.0": {
"jar": "sha256-1j79V0b/QIlDp91++Frp8Jqn+2O7KxaRFCfObEW1n9A=",
"pom": "sha256-6yRCKwo+nofVrG6oCHeG+1HEsbvg0iXvdSFSxzaiBNA="
}
},
"https://repo.maven.apache.org/maven2": {
"antlr#antlr/2.7.7": {
"jar": "sha256-iPvaS5Ellrn1bo4S5YDMlUus+1F3bs/d0+GPwc9W3Ew=",
"pom": "sha256-EA95O6J/i05CBO20YXHr825U4PlM/AJSf+oHoLsfzrc="
},
"com/atlassian/commonmark#commonmark-ext-gfm-tables/0.15.2": {
"jar": "sha256-Wn3BAWFAwPHGnFV21kvjcYJcWlStc1sMaZuWLMTgpPo=",
"pom": "sha256-rRZxS5MgMZDpRiSFMrWCkDdBQkg7RhdrsD3CrijycN0="
},
"com/atlassian/commonmark#commonmark-parent/0.15.2": {
"pom": "sha256-PhTratCeeq+Uow5I3kexFm+QCz6Ncm+UfMWkD3HkfCU="
},
"com/atlassian/commonmark#commonmark/0.15.2": {
"jar": "sha256-/UmFBUzWYXaB9smSH/yTq2uGQraeV3T48InZc9HGbmo=",
"pom": "sha256-3ZVTaHcyCDS90YRnvtbgKE7UhXKdU8LcLfWEE2vmGaI="
},
"com/atlassian/pom#base-pom/5.0.13": {
"pom": "sha256-CN0hBF/fYQSL7zj/7FbiHuslxuLYRPwJ9rlW4JNzdUM="
},
"com/atlassian/pom#central-pom/5.0.13": {
"pom": "sha256-zihFbTZlB8oPkQIpQqBeOI/Zj4YqbY2zEFxcRJenTOU="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/ibm/icu#icu4j/58.2": {
"jar": "sha256-lT4eg7K+fD6i+I2obBNhT0fp5x01eMhSHX8Yd1a2OWI=",
"pom": "sha256-R7Zq1yxypJmlRL57ixEzX2xz/bcyFxfRGBHfs+k0FGo="
},
"com/miglayout#miglayout-core/5.2": {
"jar": "sha256-Zp8NqP12vlPXX1lA9IFibym1RM2ZJbfaJhEYfSaEvHo=",
"pom": "sha256-scvva6qqt3IaCLKlAZtpajfV4+wKfQzXmRo4MOJrfGA="
},
"com/miglayout#miglayout-parent/5.2": {
"pom": "sha256-+STS0Cl2vIQu0u/4sx4Hp2Zb/NJUY9TXmtvkEFis6Zs="
},
"com/miglayout#miglayout-swing/5.2": {
"jar": "sha256-g2n2guoVPvtoGj9YKsxIjoKpfub0fSU1LwgOl38TjIY=",
"pom": "sha256-52Q1kq9JpxIUc+OUOzdO3Xw/u5zJBdDGq5DOcCvkQqE="
},
"com/sun/activation#all/1.2.0": {
"pom": "sha256-HYUY46x1MqEE5Pe+d97zfJguUwcjxr2z1ncIzOKwwsQ="
},
"javax/activation#javax.activation-api/1.2.0": {
"jar": "sha256-Q/3vC1ts6zGwQksgi5MMdKtY+sLO63s/b9OuuLXKQ5M=",
"pom": "sha256-2ikm88i+iYZDzBCs3sbeCwNRpX+yc1dw+gF3sGrecbk="
},
"javax/xml/bind#jaxb-api-parent/2.4.0-b180830.0359": {
"pom": "sha256-ctEy4shY0iMPFdBI8ek6J5xAxOnshLxW+fLz61r0tLg="
},
"javax/xml/bind#jaxb-api/2.4.0-b180830.0359": {
"jar": "sha256-VrnpcCdTdjAHQ1Fi6niAVe/P78hquSDwMsBBHcVHuDY=",
"pom": "sha256-sck/wwHX9f5M3hPRlTKZJR2jfv/8kfUjg1UEw/+HNwc="
},
"junit#junit/4.12": {
"jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=",
"pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
},
"net/java#jvnet-parent/1": {
"pom": "sha256-KBRAgRJo5l2eJms8yJgpfiFOBPCXQNA4bO60qJI9Y78="
},
"net/java#jvnet-parent/3": {
"pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o="
},
"net/java#jvnet-parent/5": {
"pom": "sha256-GvaZ+Nndq2f5oNIC+9eRXrA2Klpt/V/8VMr6NGXJywo="
},
"net/java/dev/javacc#javacc/4.0": {
"jar": "sha256-z7qy1qzbN2TivLXAhCpZ9YPLXoui61wTqNuYNoqtzC8=",
"pom": "sha256-EBLeGTH+yhXhvQEomKaJBOXTO7TD6IhY+oagD7ePUDg="
},
"org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
"jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
"pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
},
"org/antlr#ST4/4.0.8": {
"jar": "sha256-WMqrxAyfdLC1mT/YaOD2SlDAdZCU5qJRqq+tmO38ejs=",
"pom": "sha256-PAiQ3scRdOs7o9QEyp40GQH/awQhgIsAcTsNuxMGwXw="
},
"org/antlr#antlr-master/3.5.2": {
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
},
"org/antlr#antlr-runtime/3.5.2": {
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
},
"org/antlr#antlr/3.5.2": {
"jar": "sha256-WsNsKs+woPPTfa/iC1tXDyZD4tAAxkjURQPCc4vmQ98=",
"pom": "sha256-Bl5egGYv64WHldPAH3cUJHvdMZRZcF7hOxpLGWj6IuQ="
},
"org/antlr#antlr4-master/4.7.1": {
"pom": "sha256-QSb2e/QT9si8wbGdh7mnJWdCz6ccJQxKmVMNrt6ghow="
},
"org/antlr#antlr4-runtime/4.7.1": {
"jar": "sha256-Q1FtGb6uNZCeBNBq9sDFjBe8lOAHDIXo3JkpymQNyR0=",
"pom": "sha256-zhOGobkOUSy3oli1Ih1C8RJh/9qaElkBzdhs3ypZ/5E="
},
"org/antlr#antlr4/4.7.1": {
"jar": "sha256-os3C8vjriTcogyVo3FTQgOtaFJXts7ZuUblxIqYKDYc=",
"pom": "sha256-k+AkX5wHQx6tBunpyPmO7IJUQb9PbtZr3aboypxoR5Y="
},
"org/glassfish#javax.json/1.0.4": {
"jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=",
"pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ="
},
"org/glassfish#json/1.0.4": {
"pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}
+44
View File
@@ -0,0 +1,44 @@
{ lib
, stdenv
, fetchFromGitHub
, callPackage
, rustPlatform
, substituteAll
, openssl
, Security
, python3Packages
}:
rustPlatform.buildRustPackage rec {
pname = "mitm-cache";
version = "0.1.1";
src = fetchFromGitHub {
owner = "chayleaf";
repo = "mitm-cache";
rev = "v${version}";
hash = "sha256-l9dnyA4Zo4jlbiCMRzUqW3NkiploVpmvxz9i896JkXU=";
};
buildInputs = lib.optionals stdenv.isDarwin [
Security
];
cargoHash = "sha256-6eYOSSlswJGR2IrFo17qVnwI+h2FkyTjLFvwf62nG2c=";
setupHook = substituteAll {
src = ./setup-hook.sh;
inherit openssl;
ephemeral_port_reserve = python3Packages.ephemeral-port-reserve;
};
passthru.fetch = callPackage ./fetch.nix { };
meta = with lib; {
description = "A MITM caching proxy for use in nixpkgs";
homepage = "https://github.com/chayleaf/mitm-cache#readme";
license = licenses.mit;
maintainers = with maintainers; [ chayleaf ];
mainProgram = "mitm-cache";
};
}
+49
View File
@@ -0,0 +1,49 @@
{ lib
, fetchurl
, runCommand
, writeText
}:
{ name ? "deps"
, data
, dontFixup ? true
, ...
}
@ attrs:
let
data' = builtins.removeAttrs
(if builtins.isPath data then lib.importJSON data else data)
[ "!version" ];
urlToPath = url:
if lib.hasPrefix "https://" url then (
let
url' = lib.drop 2 (lib.splitString "/" url);
in "https/${builtins.concatStringsSep "/" url'}"
)
else builtins.replaceStrings ["://"] ["/"] url;
code = ''
mkdir -p "$out"
cd "$out"
'' + builtins.concatStringsSep "" (lib.mapAttrsToList (url: info:
let
key = builtins.head (builtins.attrNames info);
val = info.${key};
path = urlToPath url;
name = baseNameOf path;
source = {
redirect = "$out/${urlToPath val}";
hash = fetchurl { inherit url; hash = val; };
text = writeText name val;
}.${key} or (throw "Unknown key: ${url}");
in ''
mkdir -p "${dirOf path}"
ln -s "${source}" "${path}"
'') data');
in
runCommand name (builtins.removeAttrs attrs [ "name" "data" ] // {
passthru = (attrs.passthru or {}) // {
data = writeText "deps.json" (builtins.toJSON data);
};
}) code
@@ -0,0 +1,21 @@
mitmCacheConfigureHook() {
if [ -d "$mitmCache" ] && [ -z "$MITM_CACHE_CERT_DIR" ]; then
MITM_CACHE_CERT_DIR="$(mktemp -d)"
pushd "$MITM_CACHE_CERT_DIR"
MITM_CACHE_CA="$MITM_CACHE_CERT_DIR/ca.cer"
@openssl@/bin/openssl genrsa -out ca.key 2048
@openssl@/bin/openssl req -x509 -new -nodes -key ca.key -sha256 -days 1 -out ca.cer -subj "/C=AL/ST=a/L=a/O=a/OU=a/CN=example.org"
MITM_CACHE_HOST="127.0.0.1"
MITM_CACHE_PORT="${mitmCachePort:-$(@ephemeral_port_reserve@/bin/ephemeral-port-reserve "$MITM_CACHE_HOST")}"
MITM_CACHE_ADDRESS="$MITM_CACHE_HOST:$MITM_CACHE_PORT"
export http_proxy="$MITM_CACHE_ADDRESS"
export https_proxy="$MITM_CACHE_ADDRESS"
export SSL_CERT_FILE="$MITM_CACHE_CA"
export NIX_SSL_CERT_FILE="$MITM_CACHE_CA"
mitm-cache -l"$MITM_CACHE_ADDRESS" replay "$mitmCache" >/dev/null 2>/dev/null &
popd
fi
}
# prepend it so any other configure hooks can use the generated root CA
preConfigureHooks=(mitmCacheConfigureHook "${preConfigureHooks[@]}")
+73
View File
@@ -0,0 +1,73 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://repo.maven.apache.org/maven2": {
"com/googlecode/json-simple#json-simple/1.1.1": {
"jar": "sha256-TmlpaJK4i0HFXUmrL9zCHurZK/VKzFiMAFBZbDt1GZw=",
"pom": "sha256-Zl9jWQ3vtj1irdIdNSU2LPk3z2ocBeSwFFuujailf4M="
},
"org/apiguardian#apiguardian-api/1.1.0": {
"jar": "sha256-qarp/4rj4XoqGPeRdegrFiZ8JG+708qd+7spCwjc/dQ=",
"pom": "sha256-qUW5y1zZt3sscRhE5lnEPsBw71nZ9Qn6n0wYYbSGJxE="
},
"org/javassist#javassist/3.28.0-GA": {
"jar": "sha256-V9Cp6ShvgvTqqFESUYaZf4Eb784OIGD/ChWnf1qd2ac=",
"pom": "sha256-w2p8E9o6SFKqiBvfnbYLnk0a8UbsKvtTmPltWYP21d0="
},
"org/junit#junit-bom/5.7.0": {
"module": "sha256-Jd5FSzrdZ2VNZpG1PedZO1ApZ7X/VJVHsQTXlh8aUr0=",
"pom": "sha256-NfsV+NC+4rWQCiKDJ2I2ZVL5o0nFbO1guhI85Hc4/wA="
},
"org/junit/jupiter#junit-jupiter-api/5.7.0": {
"jar": "sha256-sD944Nru0td6Cvm81mK0zblpP37nLgGlObUIuExj0YI=",
"module": "sha256-0ae65s1ErW2WcVJhQQ7vIziklENtZnKA0Tc6R8F+JBw=",
"pom": "sha256-oPgj1RPI1GkpNfJML+bnfMSnthR6nopRj3IuULv4YTg="
},
"org/junit/jupiter#junit-jupiter-engine/5.7.0": {
"jar": "sha256-36Jq+UZErCYS3eZiWFL8tVCg0hyqJDJX3lTLpzi6h68=",
"module": "sha256-w2vaSCKO71xAzcmp1jA7uEg4LNsIhLNnfUkYK07HoaQ=",
"pom": "sha256-twLiUIddMx7jxriPNymfvpUfQ5kvSy5KjxROLkzyx+g="
},
"org/junit/platform#junit-platform-commons/1.7.0": {
"jar": "sha256-UzDuh8x1hubiUXWjTpJRYk/xL/UlJp00FdC0ylGbb+o=",
"module": "sha256-sKXHobfkCdH1zJY9muocd8NLkOFj1oQqRInGqgf/juI=",
"pom": "sha256-DNfE+b7mWZEqwdzkbxI80G9Au7c6sxa9lBHHkuPGgKI="
},
"org/junit/platform#junit-platform-engine/1.7.0": {
"jar": "sha256-dfIaINxZSv3IdXNnJbQIzsbQNEh00p80st0wdVACNvI=",
"module": "sha256-ZRCp+ogc70LUFIVTjbxUdJQm2x4LFOxDORXqXyRIB5o=",
"pom": "sha256-IluZxQMv0cuM7Noui1p1Jtal+B+5iimldVf39czanRI="
},
"org/msgpack#msgpack/0.6.12": {
"jar": "sha256-4JymXYUgSI6ApdxCaEior8z9QPSi6zuWRgQlldO9m14=",
"pom": "sha256-lEl9jwL43oFZpbfVE24BD1f12axliGES7O2GlcUFbe4="
},
"org/opentest4j#opentest4j/1.2.0": {
"jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=",
"pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ="
},
"org/postgresql#pgjdbc-core-parent/1.1.2": {
"pom": "sha256-K5B1vOVrI8vfRwy80/7rwgivBf1XfNxcmjbadTRsZ50="
},
"org/postgresql#pgjdbc-core-parent/1.1.5": {
"pom": "sha256-XtK0rdiF6e4eY3opfLNHlPT/LtVCb/zStL3N1uJiPrc="
},
"org/postgresql#pgjdbc-versions/1.1.2": {
"pom": "sha256-FJIccV6cNLFOpOtn1O6cPUGtxYj1639F01f89xgv3P4="
},
"org/postgresql#pgjdbc-versions/1.1.5": {
"pom": "sha256-fktof5IZOQGPdV6TUwtvO/pkOH9zJIiTXAsFo2PEkFw="
},
"org/postgresql#postgresql/42.2.5": {
"jar": "sha256-f/pG+MYZN3zevNF3IbayHs9mWYUBeflv7D0QNc9aDNw=",
"pom": "sha256-QeLEYQz6+o+46jOfZeUECMDzGDV6eKP0hOKi8bUq0ew="
},
"org/postgresql#postgresql/9.4.1212": {
"jar": "sha256-DLKhWL4xrPIY4KThjI89usaKO8NIBkaHc/xECUsMNl0=",
"pom": "sha256-3WEi1R5mRIHFMgl7hzPLJAW6oqrhsgqOrr6jlLErb1A="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
}
}
}
+8 -34
View File
@@ -4,7 +4,6 @@
, fetchFromGitHub
, jdk11
, gradle_6
, perl
, metasploit
, makeWrapper
, makeDesktopItem
@@ -16,6 +15,8 @@ let
pname = "armitage";
version = "unstable-2022-12-05";
gradle = gradle_6;
src = fetchFromGitHub {
owner = "r00t0v3rr1d3";
repo = "armitage";
@@ -46,31 +47,10 @@ let
})
];
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit version src patches;
nativeBuildInputs = [ gradle_6 perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle --no-daemon assemble
'';
# 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 -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
rm -rf $out/tmp
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-6o3HlBfmpjpmMeiRydOme6fJc8caq8EBRVf3nJq9vqo=";
};
in
stdenv.mkDerivation (finalAttrs: {
inherit pname version src patches;
__darwinAllowLocalNetworking = true;
desktopItems = [
(makeDesktopItem {
name = "armitage";
@@ -85,25 +65,19 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
jdk11
gradle_6
gradle
makeWrapper
copyDesktopItems
] ++ lib.optionals stdenv.isDarwin [
writeDarwinBundle
];
buildPhase = ''
runHook preBuild
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
export GRADLE_USER_HOME=$(mktemp -d)
substituteInPlace armitage/build.gradle \
--replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }'
substituteInPlace cortana/build.gradle \
--replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }'
gradle --offline --no-daemon assemble
runHook postBuild
'';
__darwinAllowLocalNetworking = true;
installPhase = ''
runHook preInstall
+1335
View File
File diff suppressed because it is too large Load Diff
+9 -68
View File
@@ -4,9 +4,7 @@
fetchFromGitHub,
makeBinaryWrapper,
makeDesktopItem,
writeText,
jdk17,
perl,
gradle_7,
which,
}:
@@ -25,62 +23,6 @@ let
hash = "sha256-zEQjB57iiKVQnH8VtynpEGKNAa2e+WpqnGt6fnv5Rjs=";
};
deps = stdenvNoCC.mkDerivation {
pname = "${pname}-deps";
inherit src version;
nativeBuildInputs = [
jdk
perl
gradle
];
buildPhase = ''
runHook preBuild
GRADLE_USER_HOME=$PWD gradle -Dorg.gradle.java.home=${jdk} --no-daemon build
runHook postBuild
'';
# Mavenize dependency paths
# e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.0.jar
installPhase = ''
runHook preInstall
find ./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
# com/squareup/okio/okio-jvm/x.y.z/okio-jvm-x.y.z.jar is expected to exist under com/squareup/okio/okio/x.y.z/okio-x.y.z.jar
while IFS="" read -r -d "" path; do
ln -s "$path" ''${path//okio-jvm/okio}
done < <(find "$out" -type f -name 'okio-jvm-*.jar' -print0)
runHook postInstall
'';
# otherwise the package with a namespace starting with info/... gets moved to share/info/...
forceShare = [ "dummy" ];
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-mWQTe/hOWGwWtsUPCZ7gle2FtskcEmJwsGQZITEc/Uc=";
};
# Point to our local deps repo
gradleInit = writeText "init.gradle" ''
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
clear()
maven { url '${deps}' }
}
}
}
gradle.projectsLoaded {
rootProject.allprojects {
repositories {
clear()
maven { url '${deps}' }
}
}
}
'';
in
stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname version src;
@@ -91,17 +33,16 @@ stdenvNoCC.mkDerivation (finalAttrs: {
gradle
];
buildPhase = ''
runHook preBuild
mkdir -p freeplane/build
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
GRADLE_USER_HOME=$PWD \
gradle -Dorg.gradle.java.home=${jdk} \
--no-daemon --offline --init-script ${gradleInit} \
-x test \
build
runHook postBuild
'';
gradleFlags = [ "-Dorg.gradle.java.home=${jdk}" "-x" "test" ];
preBuild = "mkdir -p freeplane/build";
gradleBuildTask = "build";
desktopItems = [
(makeDesktopItem {
+5 -47
View File
@@ -1,41 +1,12 @@
{ lib
, stdenv
, fetchFromGitHub
, emptyDirectory
, writeText
, makeBinaryWrapper
, gradle
, jdk21
, llvmPackages
}:
let
gradleInit = writeText "init.gradle" ''
logger.lifecycle 'Replacing Maven repositories with empty directory...'
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
clear()
maven { url '${emptyDirectory}' }
}
}
repositories {
clear()
maven { url '${emptyDirectory}' }
}
}
}
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
maven { url '${emptyDirectory}' }
}
}
}
'';
in
stdenv.mkDerivation {
pname = "jextract";
version = "unstable-2023-11-27";
@@ -52,27 +23,14 @@ stdenv.mkDerivation {
makeBinaryWrapper
];
env = {
ORG_GRADLE_PROJECT_llvm_home = llvmPackages.libclang.lib;
ORG_GRADLE_PROJECT_jdk21_home = jdk21;
};
buildPhase = ''
runHook preBuild
export GRADLE_USER_HOME=$(mktemp -d)
gradle --console plain --init-script "${gradleInit}" assemble
runHook postBuild
'';
gradleFlags = [
"-Pllvm_home=${llvmPackages.libclang.lib}"
"-Pjdk21_home=${jdk21}"
];
doCheck = true;
checkPhase = ''
runHook preCheck
gradle --console plain --init-script "${gradleInit}" verify
runHook postCheck
'';
gradleCheckTask = "verify";
installPhase = ''
runHook preInstall
+5 -47
View File
@@ -1,41 +1,12 @@
{ lib
, stdenv
, fetchFromGitHub
, emptyDirectory
, writeText
, makeBinaryWrapper
, gradle
, jdk22
, llvmPackages
}:
let
gradleInit = writeText "init.gradle" ''
logger.lifecycle 'Replacing Maven repositories with empty directory...'
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
clear()
maven { url '${emptyDirectory}' }
}
}
repositories {
clear()
maven { url '${emptyDirectory}' }
}
}
}
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
maven { url '${emptyDirectory}' }
}
}
}
'';
in
stdenv.mkDerivation {
pname = "jextract";
version = "unstable-2024-03-13";
@@ -52,27 +23,14 @@ stdenv.mkDerivation {
makeBinaryWrapper
];
env = {
ORG_GRADLE_PROJECT_llvm_home = llvmPackages.libclang.lib;
ORG_GRADLE_PROJECT_jdk22_home = jdk22;
};
buildPhase = ''
runHook preBuild
export GRADLE_USER_HOME=$(mktemp -d)
gradle --console plain --init-script "${gradleInit}" assemble
runHook postBuild
'';
gradleFlags = [
"-Pllvm_home=${llvmPackages.libclang.lib}"
"-Pjdk22_home=${jdk22}"
];
doCheck = true;
checkPhase = ''
runHook preCheck
gradle --console plain --init-script "${gradleInit}" verify
runHook postCheck
'';
gradleCheckTask = "verify";
installPhase = ''
runHook preInstall
File diff suppressed because it is too large Load Diff
@@ -1,34 +0,0 @@
diff --git a/build.gradle b/build.gradle
index c206e2f..b1fda33 100644
--- a/build.gradle
+++ b/build.gradle
@@ -69,19 +69,7 @@ launch4j {
messagesInstanceAlreadyExists="Stirling-PDF is already running."
}
-spotless {
- java {
- target project.fileTree('src/main/java')
- googleJavaFormat('1.19.1').aosp().reorderImports(false)
-
- importOrder('java', 'javax', 'org', 'com', 'net', 'io')
- toggleOffOn()
- trimTrailingWhitespace()
- indentWithSpaces()
- endWithNewline()
- }
-}
dependencies {
//security updates
@@ -163,9 +151,6 @@ dependencies {
annotationProcessor 'org.projectlombok:lombok:1.18.28'
}
-tasks.withType(JavaCompile) {
- dependsOn 'spotlessApply'
-}
compileJava {
options.compilerArgs << '-parameters'
}
@@ -1,16 +0,0 @@
diff --git a/build.gradle b/build.gradle
index 7025b2b..d063da3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -20,6 +20,11 @@ repositories {
}
+tasks.withType(AbstractArchiveTask) {
+ preserveFileTimestamps = false
+ reproducibleFileOrder = true
+}
+
licenseReport {
renderers = [new JsonReportRenderer()]
+15 -63
View File
@@ -2,13 +2,14 @@
lib,
stdenv,
fetchFromGitHub,
substituteAll,
gradle_7,
perl,
makeWrapper,
jre,
}:
let
gradle = gradle_7;
in
stdenv.mkDerivation (finalAttrs: {
pname = "stirling-pdf";
version = "0.25.1";
@@ -21,77 +22,28 @@ stdenv.mkDerivation (finalAttrs: {
};
patches = [
# disable spotless because it tries to fetch files not in the FOD
# and also because it slows down the build process
./disable-spotless.patch
# remove timestamp from the header of a generated .properties file
./remove-props-file-timestamp.patch
# use gradle's built-in method of zeroing out timestamps,
# because stripJavaArchivesHook can't patch signed JAR files
./fix-jar-timestamp.patch
# set the FOD as the only repository gradle can resolve from
(substituteAll {
src = ./use-fod-maven-repo.patch;
inherit (finalAttrs) deps;
})
];
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
name = "${finalAttrs.pname}-${finalAttrs.version}-deps";
inherit (finalAttrs) src;
patches = [ ./disable-spotless.patch ];
nativeBuildInputs = [
gradle_7
perl
];
buildPhase = ''
runHook preBuild
export GRADLE_USER_HOME=$(mktemp -d)
gradle --no-daemon --console=plain build
runHook postBuild
'';
# 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 = ''
runHook preInstall
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
# Mimic existence of okio-3.6.0.jar, originally known as okio-jvm-3.6.0 (and renamed).
# Gradle doesn't detect such renames and only fetches the latter.
# Whenever this package gets updated, please check if this hack is obsolete.
ln -s $out/com/squareup/okio/okio-jvm/3.6.0/okio-jvm-3.6.0.jar $out/com/squareup/okio/okio/3.6.0/okio-3.6.0.jar
runHook postInstall
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-JaTL6/DyBAqXkIQOkbi8MYoIZrhWqc3MpJ7DDB4h+ok=";
mitmCache = gradle.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
# disable spotless because it tries to fetch files not in deps.json
# and also because it slows down the build process
gradleFlags = [ "-x" "spotlessApply" ];
doCheck = true;
nativeBuildInputs = [
gradle_7
gradle
makeWrapper
];
buildPhase = ''
runHook preBuild
export GRADLE_USER_HOME=$(mktemp -d)
gradle --offline --no-daemon --console=plain build
runHook postBuild
'';
installPhase = ''
runHook preInstall
@@ -1,25 +0,0 @@
diff --git a/build.gradle b/build.gradle
index c206e2f..cdaddf7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -16,7 +16,7 @@ version = '0.22.3'
sourceCompatibility = '17'
repositories {
- mavenCentral()
+ maven { url '@deps@' }
}
diff --git a/settings.gradle b/settings.gradle
index f813993..2c87f3c 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1,7 @@
+pluginManagement {
+ repositories {
+ maven { url '@deps@' }
+ }
+}
+
rootProject.name = 'Stirling-PDF'
@@ -31,7 +31,9 @@ jdk.overrideAttrs (finalAttrs: oldAttrs: {
dontConfigure = true;
postPatch = ''
postPatch = let
extra_config = builtins.concatStringsSep " " extraConfig;
in ''
# The rpm/deb task definitions require a Gradle plugin which we don't
# have and so the build fails. We'll simply remove them here because
# they are not needed anyways.
@@ -41,35 +43,29 @@ jdk.overrideAttrs (finalAttrs: oldAttrs: {
for file in $(find installers -name "build.gradle"); do
substituteInPlace $file --replace-warn "workingDir '/usr/bin'" "workingDir '.'"
done
gradleFlagsArray+=(-Pcorretto.extra_config="${extra_config}")
'';
# since we dontConfigure, we must run this manually
preBuild = "gradleConfigureHook";
buildPhase =
let
# The Linux installer is placed at linux/universal/tar whereas the MacOS
# one is at mac/tar.
task =
if stdenv.isDarwin then
":installers:mac:tar:packageBuildResults"
else ":installers:linux:universal:tar:packageBuildResults";
extra_config = builtins.concatStringsSep " " extraConfig;
in
''
runHook preBuild
# The Linux installer is placed at linux/universal/tar whereas the MacOS
# one is at mac/tar.
gradleBuildTask =
if stdenv.isDarwin then
":installers:mac:tar:build"
else ":installers:linux:universal:tar:packageBuildResults";
# Corretto's actual built is triggered via `gradle`.
gradle -Pcorretto.extra_config="${extra_config}" --console=plain --no-daemon ${task}
# Prepare for the installPhase so that it looks like if a normal
# OpenJDK had been built.
dir=build/jdkImageName/images
mkdir -p $dir
file=$(find ./installers -name 'amazon-corretto-${version}*.tar.gz')
tar -xzf $file -C $dir
mv $dir/amazon-corretto-* $dir/jdk
runHook postBuild
'';
postBuild = ''
# Prepare for the installPhase so that it looks like if a normal
# OpenJDK had been built.
dir=build/jdkImageName/images
mkdir -p $dir
file=$(find ./installers -name 'amazon-corretto-${version}*.tar.gz')
tar -xzf $file -C $dir
mv $dir/amazon-corretto-* $dir/jdk
'' + oldAttrs.postBuild or "";
installPhase = oldAttrs.installPhase + ''
# The installPhase will place everything in $out/lib/openjdk and
@@ -1,136 +0,0 @@
{ stdenv, lib, fetchFromGitHub, writeText, gradle_7, pkg-config, perl, cmake
, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_4-headless, python3, ruby, fetchurl, runCommand
, openjdk11-bootstrap
, withMedia ? true
, withWebKit ? false
}:
let
major = "11";
update = ".0.20";
build = "1";
repover = "${major}${update}+${build}";
gradle_ = (gradle_7.override {
java = openjdk11-bootstrap;
});
icuVersionWithSep = s: "71${s}1";
icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip";
icuData = fetchurl {
url = "https://github.com/unicode-org/icu/releases/${icuPath}";
hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM=";
};
icuFakeRepository = runCommand "icu-data-repository" {} ''
install -Dm644 ${icuData} $out/${icuPath}
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}-${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx${major}u";
rev = repover;
sha256 = "sha256-BbBP2DiPZTSn1SBYMCgyiNdF9GD+NqR6YjeVNOQHHn4=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
postPatch = ''
substituteInPlace buildSrc/linux.gradle \
--replace ', "-Werror=implicit-function-declaration"' ""
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
'';
config = writeText "gradle.properties" (''
CONF = Release
JDK_HOME = ${openjdk11-bootstrap.home}
'' + args.gradleProperties or "");
buildPhase = ''
runHook preBuild
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
} // args);
# Fake build to pre-download deps into fixed-output derivation.
# We run nearly full build because I see no other way to download everything that's needed.
# Anyone who knows a better way?
deps = makePackage {
pname = "openjfx-deps";
# 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 -type f -regex '.*/modules.*\.\(jar\|pom\)' \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
rm -rf $out/tmp
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-syceJMUEknBDCHK8eGs6rUU3IQn+HnQfURfCrDxYPa9=";
};
in makePackage {
pname = "openjfx-modular-sdk";
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''
swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)"
substituteInPlace build.gradle \
--replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \
--replace 'name: SWT_FILE_NAME' "files('$swtJar')"
'';
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | sed -E 's,:?${openjdk11-bootstrap}[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
# Remove licenses, otherwise they may conflict with the ones included in the openjdk
rm -rf $out/modules_legal/*
'';
disallowedReferences = [ openjdk11-bootstrap ];
passthru.deps = deps;
# Uses a lot of RAM, OOMs otherwise
requiredSystemFeatures = [ "big-parallel" ];
meta = with lib; {
homepage = "http://openjdk.java.net/projects/openjfx/";
license = licenses.gpl2;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = [ "x86_64-linux" ];
};
}
@@ -0,0 +1,98 @@
{ stdenv, lib, pkgs, fetchFromGitHub, writeText, gradle_7, pkg-config, perl, cmake
, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_4-headless, python3, ruby
, openjdk11-bootstrap
, withMedia ? true
, withWebKit ? false
}:
let
pname = "openjfx-modular-sdk";
major = "11";
update = ".0.20";
build = "1";
repover = "${major}${update}+${build}";
jdk = openjdk11-bootstrap;
gradle = gradle_7;
in stdenv.mkDerivation {
inherit pname;
version = "${major}${update}-${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx${major}u";
rev = repover;
sha256 = "sha256-BbBP2DiPZTSn1SBYMCgyiNdF9GD+NqR6YjeVNOQHHn4=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
config = writeText "gradle.properties" ''
CONF = Release
JDK_HOME = ${jdk.home}
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
'';
postPatch = ''
substituteInPlace buildSrc/linux.gradle \
--replace ', "-Werror=implicit-function-declaration"' ""
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
ln -s $config gradle.properties
'';
mitmCache = gradle.fetchDeps {
attrPath = "openjfx${major}";
pkg = pkgs."openjfx${major}".override { withWebKit = true; };
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
preBuild = ''
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
'';
enableParallelBuilding = false;
gradleBuildTask = "sdk";
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${jdk.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
# Remove licenses, otherwise they may conflict with the ones included in the openjdk
rm -rf $out/modules_legal/*
'';
disallowedReferences = [ jdk gradle.jdk ];
# Uses a lot of RAM, OOMs otherwise
requiredSystemFeatures = [ "big-parallel" ];
meta = with lib; {
homepage = "http://openjdk.java.net/projects/openjfx/";
license = licenses.gpl2;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = [ "x86_64-linux" ];
};
}
+152
View File
@@ -0,0 +1,152 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://download.eclipse.org": {
"eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": {
"jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw="
}
},
"https://github.com": {
"unicode-org/icu/releases/download/release-71-1/icu4c-71_1-data-bin-l": {
"zip": "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="
}
},
"https://repo.maven.apache.org/maven2": {
"com/ibm/icu#icu4j/61.1": {
"jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=",
"pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs="
},
"junit#junit/4.13.2": {
"jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
"pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
},
"net/java#jvnet-parent/3": {
"pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o="
},
"org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
"jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
"pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
},
"org/antlr#ST4/4.1": {
"jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=",
"pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw="
},
"org/antlr#antlr-master/3.5.2": {
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
},
"org/antlr#antlr-runtime/3.5.2": {
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
},
"org/antlr#antlr4-master/4.7.2": {
"pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE="
},
"org/antlr#antlr4-runtime/4.7.2": {
"jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=",
"pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs="
},
"org/antlr#antlr4/4.7.2": {
"pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E="
},
"org/antlr#antlr4/4.7.2/complete": {
"jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ="
},
"org/apache#apache/13": {
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
},
"org/apache/lucene#lucene-core/7.1.0": {
"jar": "sha256-vG3+7tCrp0MCqSCBH/1snkVlvviTzMOvg2Iz36s8UTo=",
"pom": "sha256-d7ysnMSDKiKSGJgng2ASB8yYvldcyIRDNtWuBzkbPuE="
},
"org/apache/lucene#lucene-grouping/7.1.0": {
"jar": "sha256-5wh/sGDRWa1xvW7p6W8BYGpaM1OgxJofHQ49oPUaTlo=",
"pom": "sha256-738k/3YjlZSfxMiDl1npJhD8mx8Nifmbtw+haHNh2Ec="
},
"org/apache/lucene#lucene-parent/7.1.0": {
"pom": "sha256-l7M9mcedTRIoIuWDY0cGvGmfRCvp3tksZiKdEn+WoAc="
},
"org/apache/lucene#lucene-queries/7.1.0": {
"jar": "sha256-qamOR/ueclsDerV+wZts4QVBIoTLXl2aGs99Xv8TSTY=",
"pom": "sha256-pvMWrRvMdKy3f3mP/AIKy9aD3nx5OUrFNgAdE6vktVY="
},
"org/apache/lucene#lucene-queryparser/7.1.0": {
"jar": "sha256-HNuCsiqq3bGJW9OjSVinyaOgb/0NZ6sskNvDegRshlQ=",
"pom": "sha256-K7m67AcL6g3a5aj1rrDOZlJpBeA4THS+18OrIJ52hdM="
},
"org/apache/lucene#lucene-sandbox/7.1.0": {
"jar": "sha256-wZA9Xag+IIZp2NkzdJeeFAIUNYsq32c1sa488kkJW+E=",
"pom": "sha256-WL5E6wSMD0If6eul+30xhr7gk7g72F4w5EKbbctVZMU="
},
"org/apache/lucene#lucene-solr-grandparent/7.1.0": {
"pom": "sha256-3NW0Q/KK2QPk/wfTMigGxTF4BWuctNQU+2gMyArhGsU="
},
"org/apiguardian#apiguardian-api/1.1.2": {
"jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
"module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
"pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
},
"org/glassfish#javax.json/1.0.4": {
"jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=",
"pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ="
},
"org/glassfish#json/1.0.4": {
"pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/junit#junit-bom/5.8.1": {
"module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=",
"pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM="
},
"org/junit/jupiter#junit-jupiter-api/5.8.1": {
"jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=",
"module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=",
"pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8="
},
"org/junit/jupiter#junit-jupiter-engine/5.8.1": {
"jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=",
"module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=",
"pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4="
},
"org/junit/jupiter#junit-jupiter-params/5.8.1": {
"jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=",
"module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=",
"pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws="
},
"org/junit/jupiter#junit-jupiter/5.8.1": {
"jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=",
"module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=",
"pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU="
},
"org/junit/platform#junit-platform-commons/1.8.1": {
"jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=",
"module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=",
"pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ="
},
"org/junit/platform#junit-platform-engine/1.8.1": {
"jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=",
"module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=",
"pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI="
},
"org/junit/vintage#junit-vintage-engine/5.8.1": {
"jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=",
"module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=",
"pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI="
},
"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="
}
}
}
@@ -1,129 +0,0 @@
{ stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradle_6
, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib
, ffmpeg_4-headless, python3, ruby
, withMedia ? true
, withWebKit ? false
}:
let
major = "15";
update = ".0.1";
build = "+1";
repover = "${major}${update}${build}";
gradle_ = (gradle_6.override {
java = openjdk11_headless;
});
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx";
rev = repover;
sha256 = "019glq8rhn6amy3n5jc17vi2wpf1pxpmmywvyz1ga8n09w7xscq1";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
config = writeText "gradle.properties" (''
CONF = Release
JDK_HOME = ${openjdk11_headless.home}
'' + args.gradleProperties or "");
env.NIX_CFLAGS_COMPILE = toString [
#avoids errors about deprecation of GTypeDebugFlags, GTimeVal, etc.
"-DGLIB_DISABLE_DEPRECATION_WARNINGS"
# gstreamer workaround for -fno-common toolchains:
# ld: gsttypefindelement.o:(.bss._gst_disable_registry_cache+0x0): multiple definition of
# `_gst_disable_registry_cache'; gst.o:(.bss._gst_disable_registry_cache+0x0): first defined here
"-fcommon"
];
buildPhase = ''
runHook preBuild
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
gradle --no-daemon $gradleFlags sdk
runHook postBuild
'';
} // args);
# Fake build to pre-download deps into fixed-output derivation.
# We run nearly full build because I see no other way to download everything that's needed.
# Anyone who knows a better way?
deps = makePackage {
pname = "openjfx-deps";
# 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 -type f -regex '.*/modules.*\.\(jar\|pom\)' \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
rm -rf $out/tmp
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-fGLTMM9s/Vn7eMzn6OQR3tL0cGbAYc7c4J4/aW3JvkI=";
};
in makePackage {
pname = "openjfx-modular-sdk";
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
'';
preBuild = ''
swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)"
substituteInPlace build.gradle \
--replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \
--replace 'name: SWT_FILE_NAME' "files('$swtJar')"
'';
installPhase = ''
cp -r build/modular-sdk $out
'';
# glib-2.62 deprecations
# -fcommon: gstreamer workaround for -fno-common toolchains:
# ld: gsttypefindelement.o:(.bss._gst_disable_registry_cache+0x0): multiple definition of
# `_gst_disable_registry_cache'; gst.o:(.bss._gst_disable_registry_cache+0x0): first defined here
env.NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS -fcommon";
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${openjdk11_headless.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ openjdk11_headless ];
passthru.deps = deps;
meta = with lib; {
homepage = "http://openjdk.java.net/projects/openjfx/";
license = licenses.gpl2;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
knownVulnerabilities = [
"This OpenJFX version has reached its end of life."
];
platforms = [ "x86_64-linux" ];
};
}
@@ -0,0 +1,94 @@
{ stdenv, lib, pkgs, fetchFromGitHub, writeText, openjdk11_headless, gradle_6
, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib
, ffmpeg_4-headless, python3, ruby
, withMedia ? true
, withWebKit ? false
}:
let
pname = "openjfx-modular-sdk";
major = "15";
update = ".0.1";
build = "+1";
repover = "${major}${update}${build}";
jdk = openjdk11_headless;
gradle = gradle_6;
in stdenv.mkDerivation {
inherit pname;
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx";
rev = repover;
sha256 = "019glq8rhn6amy3n5jc17vi2wpf1pxpmmywvyz1ga8n09w7xscq1";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
config = writeText "gradle.properties" ''
CONF = Release
JDK_HOME = ${jdk.home}
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
'';
postPatch = ''
ln -s $config gradle.properties
'';
mitmCache = gradle.fetchDeps {
attrPath = "openjfx${major}";
pkg = pkgs."openjfx${major}".override { withWebKit = true; };
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
preBuild = ''
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
# avoids errors about deprecation of GTypeDebugFlags, GTimeVal, etc.
export NIX_CFLAGS_COMPILE="-DGLIB_DISABLE_DEPRECATION_WARNINGS $NIX_CFLAGS_COMPILE"
# gstreamer workaround for -fno-common toolchains:
# ld: gsttypefindelement.o:(.bss._gst_disable_registry_cache+0x0): multiple definition of
# `_gst_disable_registry_cache'; gst.o:(.bss._gst_disable_registry_cache+0x0): first defined here
export NIX_CFLAGS_COMPILE="-fcommon $NIX_CFLAGS_COMPILE"
'';
enableParallelBuilding = false;
gradleBuildTask = "sdk";
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${jdk.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ jdk gradle.jdk ];
meta = with lib; {
homepage = "http://openjdk.java.net/projects/openjfx/";
license = licenses.gpl2;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
knownVulnerabilities = [
"This OpenJFX version has reached its end of life."
];
platforms = [ "x86_64-linux" ];
};
}
+92
View File
@@ -0,0 +1,92 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://download.eclipse.org": {
"eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": {
"jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw="
}
},
"https://repo.maven.apache.org/maven2": {
"com/ibm/icu#icu4j/61.1": {
"jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=",
"pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs="
},
"junit#junit/4.8.2": {
"jar": "sha256-oqosO7K3LadsPmpxUx8e79w1BJSBm68rHYDXFG4CD54=",
"pom": "sha256-3znTTR9YMLLYqSeQxmtXmDWLCz4BRS3IWzciqIGtkj4="
},
"net/java#jvnet-parent/3": {
"pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o="
},
"org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
"jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
"pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
},
"org/antlr#ST4/4.1": {
"jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=",
"pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw="
},
"org/antlr#antlr-master/3.5.2": {
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
},
"org/antlr#antlr-runtime/3.5.2": {
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
},
"org/antlr#antlr4-master/4.7.2": {
"pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE="
},
"org/antlr#antlr4-runtime/4.7.2": {
"jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=",
"pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs="
},
"org/antlr#antlr4/4.7.2": {
"pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E="
},
"org/antlr#antlr4/4.7.2/complete": {
"jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ="
},
"org/apache#apache/13": {
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
},
"org/apache/lucene#lucene-core/7.7.2": {
"jar": "sha256-gUOKydZ4BQxUbSqEEsxyg6XSD9hcNxQhhEfHWBZZT10=",
"pom": "sha256-MPuqRu1exVS+3nILqReeEqTnQVHh+IaSBJbYREuwVZE="
},
"org/apache/lucene#lucene-grouping/7.7.2": {
"jar": "sha256-nKhrWw/YSbq50xpk7RvP8cdTGrHP1z/E/tJDBmX7rUo=",
"pom": "sha256-UezgO9APIm2uObABf5OZPPfXbSju8LQl+MzborrBs3w="
},
"org/apache/lucene#lucene-parent/7.7.2": {
"pom": "sha256-fXiTJSgZw4Sx0lvUA6Go85DYUF+VQOHigRcZymjP7zQ="
},
"org/apache/lucene#lucene-queries/7.7.2": {
"jar": "sha256-n8XsO17OwtKV0/xM+Dc5LfuWntYegaMr0/3SH4DbfHk=",
"pom": "sha256-D4rAB9QDQb6gD3/s7m1Ewu7ZXQTi66KEf2CBJJLOcoQ="
},
"org/apache/lucene#lucene-queryparser/7.7.2": {
"jar": "sha256-v9lKUL8FAf0H5prk9J28FJzjaUoFZrsWTXxui+VeK9Q=",
"pom": "sha256-DmVV70KT9yjEqJhOuuNUK+N7KThK/gcQjPy+R/AS3Us="
},
"org/apache/lucene#lucene-sandbox/7.7.2": {
"jar": "sha256-dqY72JMAjr7tJJeePyUIXIkJ/0vEEv33iAJfntoKvhE=",
"pom": "sha256-zwJCiBB2rdYRwEPZZPtrduPRnAQn7/r/Qhc6ZQ+Bk5s="
},
"org/apache/lucene#lucene-solr-grandparent/7.7.2": {
"pom": "sha256-a0oZeEo3uKoSdf5mCEZKHZvSlLVv6WgRIgfkDEKETqc="
},
"org/glassfish#javax.json/1.0.4": {
"jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=",
"pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ="
},
"org/glassfish#json/1.0.4": {
"pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}
@@ -1,128 +0,0 @@
{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless, gradle_7
, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib
, ffmpeg_4-headless, python3, ruby, fetchurl, runCommand
, withMedia ? true
, withWebKit ? false
}:
let
major = "17";
update = ".0.11";
build = "-ga";
repover = "${major}${update}${build}";
gradle_ = (gradle_7.override {
java = openjdk17_headless;
});
icuVersionWithSep = s: "71${s}1";
icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip";
icuData = fetchurl {
url = "https://github.com/unicode-org/icu/releases/${icuPath}";
hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM=";
};
icuFakeRepository = runCommand "icu-data-repository" {} ''
install -Dm644 ${icuData} $out/${icuPath}
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx${major}u";
rev = repover;
sha256 = "sha256-WV8NHlYlt7buGbirLSorLnS2TnyBD17zUquFfwSL3xE=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
postPatch = ''
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
'';
config = writeText "gradle.properties" (''
CONF = Release
JDK_HOME = ${openjdk17_headless.home}
'' + args.gradleProperties or "");
buildPhase = ''
runHook preBuild
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
} // args);
# Fake build to pre-download deps into fixed-output derivation.
# We run nearly full build because I see no other way to download everything that's needed.
# Anyone who knows a better way?
deps = makePackage {
pname = "openjfx-deps";
# 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 -type f -regex '.*/modules.*\.\(jar\|pom\)' \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
rm -rf $out/tmp
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo=";
};
in makePackage {
pname = "openjfx-modular-sdk";
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''
swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)"
substituteInPlace build.gradle \
--replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \
--replace 'name: SWT_FILE_NAME' "files('$swtJar')"
'';
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${openjdk17_headless.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ openjdk17_headless ];
passthru.deps = deps;
meta = with lib; {
homepage = "http://openjdk.java.net/projects/openjfx/";
license = licenses.gpl2;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = platforms.unix;
};
}
@@ -0,0 +1,90 @@
{ stdenv, lib, pkgs, fetchFromGitHub, writeText, openjdk17_headless, gradle_7
, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib
, ffmpeg_4-headless, python3, ruby
, withMedia ? true
, withWebKit ? false
}:
let
pname = "openjfx-modular-sdk";
major = "17";
update = ".0.11";
build = "-ga";
repover = "${major}${update}${build}";
jdk = openjdk17_headless;
gradle = gradle_7;
in stdenv.mkDerivation {
inherit pname;
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx${major}u";
rev = repover;
sha256 = "sha256-9VfXk2EfMebMyVKPohPRP2QXRFf8XemUtfY0JtBCHyw=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
config = writeText "gradle.properties" ''
CONF = Release
JDK_HOME = ${jdk.home}
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
'';
postPatch = ''
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
ln -s $config gradle.properties
'';
mitmCache = gradle.fetchDeps {
attrPath = "openjfx${major}";
pkg = pkgs."openjfx${major}".override { withWebKit = true; };
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
preBuild = ''
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
'';
enableParallelBuilding = false;
gradleBuildTask = "sdk";
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${jdk.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ jdk gradle.jdk ];
meta = with lib; {
homepage = "http://openjdk.java.net/projects/openjfx/";
license = licenses.gpl2;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = platforms.unix;
};
}
+152
View File
@@ -0,0 +1,152 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://download.eclipse.org": {
"eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": {
"jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw="
}
},
"https://github.com": {
"unicode-org/icu/releases/download/release-71-1/icu4c-71_1-data-bin-l": {
"zip": "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="
}
},
"https://repo.maven.apache.org/maven2": {
"com/ibm/icu#icu4j/61.1": {
"jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=",
"pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs="
},
"junit#junit/4.13.2": {
"jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
"pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
},
"net/java#jvnet-parent/3": {
"pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o="
},
"org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
"jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
"pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
},
"org/antlr#ST4/4.1": {
"jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=",
"pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw="
},
"org/antlr#antlr-master/3.5.2": {
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
},
"org/antlr#antlr-runtime/3.5.2": {
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
},
"org/antlr#antlr4-master/4.7.2": {
"pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE="
},
"org/antlr#antlr4-runtime/4.7.2": {
"jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=",
"pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs="
},
"org/antlr#antlr4/4.7.2": {
"pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E="
},
"org/antlr#antlr4/4.7.2/complete": {
"jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ="
},
"org/apache#apache/13": {
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
},
"org/apache/lucene#lucene-core/7.7.3": {
"jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=",
"pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo="
},
"org/apache/lucene#lucene-grouping/7.7.3": {
"jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=",
"pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU="
},
"org/apache/lucene#lucene-parent/7.7.3": {
"pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU="
},
"org/apache/lucene#lucene-queries/7.7.3": {
"jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=",
"pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA="
},
"org/apache/lucene#lucene-queryparser/7.7.3": {
"jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=",
"pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI="
},
"org/apache/lucene#lucene-sandbox/7.7.3": {
"jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=",
"pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI="
},
"org/apache/lucene#lucene-solr-grandparent/7.7.3": {
"pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4="
},
"org/apiguardian#apiguardian-api/1.1.2": {
"jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
"module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
"pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
},
"org/glassfish#javax.json/1.0.4": {
"jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=",
"pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ="
},
"org/glassfish#json/1.0.4": {
"pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/junit#junit-bom/5.8.1": {
"module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=",
"pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM="
},
"org/junit/jupiter#junit-jupiter-api/5.8.1": {
"jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=",
"module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=",
"pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8="
},
"org/junit/jupiter#junit-jupiter-engine/5.8.1": {
"jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=",
"module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=",
"pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4="
},
"org/junit/jupiter#junit-jupiter-params/5.8.1": {
"jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=",
"module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=",
"pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws="
},
"org/junit/jupiter#junit-jupiter/5.8.1": {
"jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=",
"module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=",
"pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU="
},
"org/junit/platform#junit-platform-commons/1.8.1": {
"jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=",
"module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=",
"pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ="
},
"org/junit/platform#junit-platform-engine/1.8.1": {
"jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=",
"module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=",
"pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI="
},
"org/junit/vintage#junit-vintage-engine/5.8.1": {
"jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=",
"module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=",
"pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI="
},
"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="
}
}
}
@@ -1,148 +0,0 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand
, withMedia ? true
, withWebKit ? false
}:
let
major = "19";
update = ".0.2.1";
build = "+1";
repover = "${major}${update}${build}";
gradle_ = (gradle_7.override {
# note: gradle does not yet support running on 19
java = openjdk17_headless;
});
icuVersionWithSep = s: "68${s}2";
icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "."}-data-bin-l.zip";
icuData = fetchurl {
url = "https://github.com/unicode-org/icu/releases/${icuPath}";
hash = "sha256-ieQCLBTNrskuf8j3IUQS3QLIAQzLom/O58muMP363Lw=";
};
icuFakeRepository = runCommand "icu-data-repository" {} ''
install -Dm644 ${icuData} $out/${icuPath}
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx";
rev = repover;
hash = "sha256-A08GhCGpzWlUG1+f6mcjvkJmMNaOReacQKPEmNpUvLs=";
};
patches = [
# 8295962: Reference to State in Task.java is ambiguous when building with JDK 19
(fetchpatch {
url = "https://github.com/openjdk/jfx/pull/933/commits/cfaee2a52350eff39dd4352484c892716076d3de.patch";
hash = "sha256-hzJMenhvtmHs/6BJj8GfaLp14myV8VCXCLLC8n32yEw=";
})
# ditto
(fetchpatch {
url = "https://github.com/openjdk/jfx/pull/933/commits/bd46ce12df0a93a56fe0d58d3653d08e58409b7f.patch";
hash = "sha256-o9908uw9vYvULmAh/lbfyHhgxz6jpgPq2fcAltWsYoU=";
})
];
postPatch = ''
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
'';
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
config = writeText "gradle.properties" (''
CONF = Release
JDK_HOME = ${openjdk19_headless.home}
'' + args.gradleProperties or "");
buildPhase = ''
runHook preBuild
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
} // args);
# Fake build to pre-download deps into fixed-output derivation.
# We run nearly full build because I see no other way to download everything that's needed.
# Anyone who knows a better way?
deps = makePackage {
pname = "openjfx-deps";
# 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 -type f -regex '.*/modules.*\.\(jar\|pom\)' \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
rm -rf $out/tmp
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
# suspiciously the same as for openjfx 17 ...
# could they really not have changed any of their dependencies?
# or did we miss changing another upstream hash when copy-pasting?
outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo=";
};
in makePackage {
pname = "openjfx-modular-sdk";
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''
swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)"
substituteInPlace build.gradle \
--replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \
--replace 'name: SWT_FILE_NAME' "files('$swtJar')"
'';
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${openjdk19_headless.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ openjdk17_headless openjdk19_headless ];
passthru.deps = deps;
meta = with lib; {
homepage = "https://openjdk.org/projects/openjfx/";
license = licenses.gpl2Classpath;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = platforms.unix;
knownVulnerabilities = [
"This OpenJFX version has reached its end of life."
];
};
}
@@ -0,0 +1,106 @@
{ stdenv, lib, pkgs, fetchFromGitHub, fetchpatch, writeText
, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby
, withMedia ? true
, withWebKit ? false
}:
let
pname = "openjfx-modular-sdk";
major = "19";
update = ".0.2.1";
build = "+1";
repover = "${major}${update}${build}";
jdk = openjdk19_headless;
gradle = gradle_7;
in stdenv.mkDerivation {
inherit pname;
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx";
rev = repover;
hash = "sha256-A08GhCGpzWlUG1+f6mcjvkJmMNaOReacQKPEmNpUvLs=";
};
patches = [
# 8295962: Reference to State in Task.java is ambiguous when building with JDK 19
(fetchpatch {
url = "https://github.com/openjdk/jfx/pull/933/commits/cfaee2a52350eff39dd4352484c892716076d3de.patch";
hash = "sha256-hzJMenhvtmHs/6BJj8GfaLp14myV8VCXCLLC8n32yEw=";
})
# ditto
(fetchpatch {
url = "https://github.com/openjdk/jfx/pull/933/commits/bd46ce12df0a93a56fe0d58d3653d08e58409b7f.patch";
hash = "sha256-o9908uw9vYvULmAh/lbfyHhgxz6jpgPq2fcAltWsYoU=";
})
];
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
config = writeText "gradle.properties" ''
CONF = Release
JDK_HOME = ${jdk.home}
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
'';
postPatch = ''
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
ln -s $config gradle.properties
'';
mitmCache = gradle.fetchDeps {
attrPath = "openjfx${major}";
pkg = pkgs."openjfx${major}".override { withWebKit = true; };
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
preBuild = ''
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
'';
enableParallelBuilding = false;
gradleBuildTask = "sdk";
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${jdk.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ jdk gradle.jdk ];
meta = with lib; {
homepage = "https://openjdk.org/projects/openjfx/";
license = licenses.gpl2Classpath;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = platforms.unix;
knownVulnerabilities = [
"This OpenJFX version has reached its end of life."
];
};
}
+152
View File
@@ -0,0 +1,152 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://download.eclipse.org": {
"eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": {
"jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw="
}
},
"https://github.com": {
"unicode-org/icu/releases/download/release-68-2/icu4c-68.2-data-bin-l": {
"zip": "sha256-ieQCLBTNrskuf8j3IUQS3QLIAQzLom/O58muMP363Lw="
}
},
"https://repo.maven.apache.org/maven2": {
"com/ibm/icu#icu4j/61.1": {
"jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=",
"pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs="
},
"junit#junit/4.13.2": {
"jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
"pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
},
"net/java#jvnet-parent/3": {
"pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o="
},
"org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
"jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
"pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
},
"org/antlr#ST4/4.1": {
"jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=",
"pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw="
},
"org/antlr#antlr-master/3.5.2": {
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
},
"org/antlr#antlr-runtime/3.5.2": {
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
},
"org/antlr#antlr4-master/4.7.2": {
"pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE="
},
"org/antlr#antlr4-runtime/4.7.2": {
"jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=",
"pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs="
},
"org/antlr#antlr4/4.7.2": {
"pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E="
},
"org/antlr#antlr4/4.7.2/complete": {
"jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ="
},
"org/apache#apache/13": {
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
},
"org/apache/lucene#lucene-core/7.7.3": {
"jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=",
"pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo="
},
"org/apache/lucene#lucene-grouping/7.7.3": {
"jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=",
"pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU="
},
"org/apache/lucene#lucene-parent/7.7.3": {
"pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU="
},
"org/apache/lucene#lucene-queries/7.7.3": {
"jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=",
"pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA="
},
"org/apache/lucene#lucene-queryparser/7.7.3": {
"jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=",
"pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI="
},
"org/apache/lucene#lucene-sandbox/7.7.3": {
"jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=",
"pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI="
},
"org/apache/lucene#lucene-solr-grandparent/7.7.3": {
"pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4="
},
"org/apiguardian#apiguardian-api/1.1.2": {
"jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
"module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
"pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
},
"org/glassfish#javax.json/1.0.4": {
"jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=",
"pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ="
},
"org/glassfish#json/1.0.4": {
"pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/junit#junit-bom/5.8.1": {
"module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=",
"pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM="
},
"org/junit/jupiter#junit-jupiter-api/5.8.1": {
"jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=",
"module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=",
"pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8="
},
"org/junit/jupiter#junit-jupiter-engine/5.8.1": {
"jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=",
"module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=",
"pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4="
},
"org/junit/jupiter#junit-jupiter-params/5.8.1": {
"jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=",
"module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=",
"pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws="
},
"org/junit/jupiter#junit-jupiter/5.8.1": {
"jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=",
"module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=",
"pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU="
},
"org/junit/platform#junit-platform-commons/1.8.1": {
"jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=",
"module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=",
"pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ="
},
"org/junit/platform#junit-platform-engine/1.8.1": {
"jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=",
"module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=",
"pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI="
},
"org/junit/vintage#junit-vintage-engine/5.8.1": {
"jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=",
"module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=",
"pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI="
},
"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="
}
}
}
@@ -1,135 +0,0 @@
{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless
, openjdk20_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand
, withMedia ? true
, withWebKit ? false
}:
let
major = "20";
update = ".0.2";
build = "-ga";
repover = "${major}${update}${build}";
gradle_ = (gradle_7.override {
# note: gradle does not yet support running on 19
java = openjdk17_headless;
});
icuVersionWithSep = s: "71${s}1";
icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip";
icuData = fetchurl {
url = "https://github.com/unicode-org/icu/releases/${icuPath}";
hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM=";
};
icuFakeRepository = runCommand "icu-data-repository" {} ''
install -Dm644 ${icuData} $out/${icuPath}
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx20u";
rev = repover;
hash = "sha256-3Hhz4i8fPU2yowb4roylCXzuO9HkW7ZWF9TMA3HIH9o=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
postPatch = ''
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
'';
config = writeText "gradle.properties" (''
CONF = Release
JDK_HOME = ${openjdk20_headless.home}
'' + args.gradleProperties or "");
buildPhase = ''
runHook preBuild
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
} // args);
# Fake build to pre-download deps into fixed-output derivation.
# We run nearly full build because I see no other way to download everything that's needed.
# Anyone who knows a better way?
deps = makePackage {
pname = "openjfx-deps";
# 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 -type f -regex '.*/modules.*\.\(jar\|pom\)' \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
rm -rf $out/tmp
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
# suspiciously the same as for openjfx 17 ...
# could they really not have changed any of their dependencies?
# or did we miss changing another upstream hash when copy-pasting?
outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo=";
};
in makePackage {
pname = "openjfx-modular-sdk";
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''
swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)"
substituteInPlace build.gradle \
--replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \
--replace 'name: SWT_FILE_NAME' "files('$swtJar')"
'';
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${openjdk20_headless.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ openjdk17_headless openjdk20_headless ];
passthru.deps = deps;
meta = with lib; {
homepage = "https://openjdk.org/projects/openjfx/";
license = licenses.gpl2Classpath;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = platforms.unix;
knownVulnerabilities = [
"This OpenJFX version has reached its end of life."
];
};
}
@@ -0,0 +1,93 @@
{ stdenv, lib, pkgs, fetchFromGitHub, writeText
, openjdk20_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby
, withMedia ? true
, withWebKit ? false
}:
let
pname = "openjfx-modular-sdk";
major = "20";
update = ".0.2";
build = "-ga";
repover = "${major}${update}${build}";
jdk = openjdk20_headless;
gradle = gradle_7;
in stdenv.mkDerivation {
inherit pname;
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx20u";
rev = repover;
hash = "sha256-3Hhz4i8fPU2yowb4roylCXzuO9HkW7ZWF9TMA3HIH9o=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
config = writeText "gradle.properties" ''
CONF = Release
JDK_HOME = ${jdk.home}
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
'';
postPatch = ''
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
ln -s $config gradle.properties
'';
mitmCache = gradle.fetchDeps {
attrPath = "openjfx${major}";
pkg = pkgs."openjfx${major}".override { withWebKit = true; };
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
preBuild = ''
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
'';
enableParallelBuilding = false;
gradleBuildTask = "sdk";
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${jdk.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ jdk gradle.jdk ];
meta = with lib; {
homepage = "https://openjdk.org/projects/openjfx/";
license = licenses.gpl2Classpath;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = platforms.unix;
knownVulnerabilities = [
"This OpenJFX version has reached its end of life."
];
};
}
+152
View File
@@ -0,0 +1,152 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://download.eclipse.org": {
"eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": {
"jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw="
}
},
"https://github.com": {
"unicode-org/icu/releases/download/release-71-1/icu4c-71_1-data-bin-l": {
"zip": "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="
}
},
"https://repo.maven.apache.org/maven2": {
"com/ibm/icu#icu4j/61.1": {
"jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=",
"pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs="
},
"junit#junit/4.13.2": {
"jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
"pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
},
"net/java#jvnet-parent/3": {
"pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o="
},
"org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
"jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
"pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
},
"org/antlr#ST4/4.1": {
"jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=",
"pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw="
},
"org/antlr#antlr-master/3.5.2": {
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
},
"org/antlr#antlr-runtime/3.5.2": {
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
},
"org/antlr#antlr4-master/4.7.2": {
"pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE="
},
"org/antlr#antlr4-runtime/4.7.2": {
"jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=",
"pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs="
},
"org/antlr#antlr4/4.7.2": {
"pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E="
},
"org/antlr#antlr4/4.7.2/complete": {
"jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ="
},
"org/apache#apache/13": {
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
},
"org/apache/lucene#lucene-core/7.7.3": {
"jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=",
"pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo="
},
"org/apache/lucene#lucene-grouping/7.7.3": {
"jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=",
"pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU="
},
"org/apache/lucene#lucene-parent/7.7.3": {
"pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU="
},
"org/apache/lucene#lucene-queries/7.7.3": {
"jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=",
"pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA="
},
"org/apache/lucene#lucene-queryparser/7.7.3": {
"jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=",
"pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI="
},
"org/apache/lucene#lucene-sandbox/7.7.3": {
"jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=",
"pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI="
},
"org/apache/lucene#lucene-solr-grandparent/7.7.3": {
"pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4="
},
"org/apiguardian#apiguardian-api/1.1.2": {
"jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
"module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
"pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
},
"org/glassfish#javax.json/1.0.4": {
"jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=",
"pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ="
},
"org/glassfish#json/1.0.4": {
"pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/junit#junit-bom/5.8.1": {
"module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=",
"pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM="
},
"org/junit/jupiter#junit-jupiter-api/5.8.1": {
"jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=",
"module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=",
"pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8="
},
"org/junit/jupiter#junit-jupiter-engine/5.8.1": {
"jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=",
"module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=",
"pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4="
},
"org/junit/jupiter#junit-jupiter-params/5.8.1": {
"jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=",
"module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=",
"pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws="
},
"org/junit/jupiter#junit-jupiter/5.8.1": {
"jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=",
"module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=",
"pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU="
},
"org/junit/platform#junit-platform-commons/1.8.1": {
"jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=",
"module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=",
"pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ="
},
"org/junit/platform#junit-platform-engine/1.8.1": {
"jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=",
"module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=",
"pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI="
},
"org/junit/vintage#junit-vintage-engine/5.8.1": {
"jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=",
"module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=",
"pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI="
},
"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="
}
}
}
@@ -1,132 +0,0 @@
{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless
, openjdk21_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand
, withMedia ? true
, withWebKit ? false
}:
let
major = "21";
update = ".0.3";
build = "-ga";
repover = "${major}${update}${build}";
gradle_ = (gradle_7.override {
# note: gradle does not yet support running on 19
java = openjdk17_headless;
});
icuVersionWithSep = s: "73${s}1";
icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip";
icuData = fetchurl {
url = "https://github.com/unicode-org/icu/releases/${icuPath}";
hash = "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA=";
};
icuFakeRepository = runCommand "icu-data-repository" {} ''
install -Dm644 ${icuData} $out/${icuPath}
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx21u";
rev = repover;
hash = "sha256-7z0GIbkQwG9mXY9dssaicqaKpMo3FkNEpyAvkswoQQ4=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
postPatch = ''
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
'';
config = writeText "gradle.properties" (''
CONF = Release
JDK_HOME = ${openjdk21_headless.home}
'' + args.gradleProperties or "");
buildPhase = ''
runHook preBuild
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
} // args);
# Fake build to pre-download deps into fixed-output derivation.
# We run nearly full build because I see no other way to download everything that's needed.
# Anyone who knows a better way?
deps = makePackage {
pname = "openjfx-deps";
# 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 -type f -regex '.*/modules.*\.\(jar\|pom\)' \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
rm -rf $out/tmp
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
# suspiciously the same as for openjfx 17 ...
# could they really not have changed any of their dependencies?
# or did we miss changing another upstream hash when copy-pasting?
outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo=";
};
in makePackage {
pname = "openjfx-modular-sdk";
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''
swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)"
substituteInPlace build.gradle \
--replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \
--replace 'name: SWT_FILE_NAME' "files('$swtJar')"
'';
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${openjdk21_headless.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ openjdk17_headless openjdk21_headless ];
passthru.deps = deps;
meta = with lib; {
homepage = "https://openjdk.org/projects/openjfx/";
license = licenses.gpl2Classpath;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = platforms.unix;
};
}
@@ -0,0 +1,90 @@
{ stdenv, lib, pkgs, fetchFromGitHub, writeText
, openjdk21_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby
, withMedia ? true
, withWebKit ? false
}:
let
pname = "openjfx-modular-sdk";
major = "21";
update = ".0.3";
build = "-ga";
repover = "${major}${update}${build}";
jdk = openjdk21_headless;
gradle = gradle_7;
in stdenv.mkDerivation {
inherit pname;
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx21u";
rev = repover;
hash = "sha256-7z0GIbkQwG9mXY9dssaicqaKpMo3FkNEpyAvkswoQQ4=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
config = writeText "gradle.properties" ''
CONF = Release
JDK_HOME = ${jdk.home}
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
'';
postPatch = ''
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
ln -s $config gradle.properties
'';
mitmCache = gradle.fetchDeps {
attrPath = "openjfx${major}";
pkg = pkgs."openjfx${major}".override { withWebKit = true; };
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
preBuild = ''
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
'';
enableParallelBuilding = false;
gradleBuildTask = "sdk";
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${jdk.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ jdk gradle.jdk ];
meta = with lib; {
homepage = "https://openjdk.org/projects/openjfx/";
license = licenses.gpl2Classpath;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = platforms.unix;
};
}
+152
View File
@@ -0,0 +1,152 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://download.eclipse.org": {
"eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": {
"jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw="
}
},
"https://github.com": {
"unicode-org/icu/releases/download/release-73-1/icu4c-73_1-data-bin-l": {
"zip": "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA="
}
},
"https://repo.maven.apache.org/maven2": {
"com/ibm/icu#icu4j/61.1": {
"jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=",
"pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs="
},
"junit#junit/4.13.2": {
"jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
"pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
},
"net/java#jvnet-parent/3": {
"pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o="
},
"org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
"jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
"pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
},
"org/antlr#ST4/4.1": {
"jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=",
"pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw="
},
"org/antlr#antlr-master/3.5.2": {
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
},
"org/antlr#antlr-runtime/3.5.2": {
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
},
"org/antlr#antlr4-master/4.7.2": {
"pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE="
},
"org/antlr#antlr4-runtime/4.7.2": {
"jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=",
"pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs="
},
"org/antlr#antlr4/4.7.2": {
"pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E="
},
"org/antlr#antlr4/4.7.2/complete": {
"jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ="
},
"org/apache#apache/13": {
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
},
"org/apache/lucene#lucene-core/7.7.3": {
"jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=",
"pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo="
},
"org/apache/lucene#lucene-grouping/7.7.3": {
"jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=",
"pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU="
},
"org/apache/lucene#lucene-parent/7.7.3": {
"pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU="
},
"org/apache/lucene#lucene-queries/7.7.3": {
"jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=",
"pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA="
},
"org/apache/lucene#lucene-queryparser/7.7.3": {
"jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=",
"pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI="
},
"org/apache/lucene#lucene-sandbox/7.7.3": {
"jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=",
"pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI="
},
"org/apache/lucene#lucene-solr-grandparent/7.7.3": {
"pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4="
},
"org/apiguardian#apiguardian-api/1.1.2": {
"jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
"module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
"pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
},
"org/glassfish#javax.json/1.0.4": {
"jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=",
"pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ="
},
"org/glassfish#json/1.0.4": {
"pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/junit#junit-bom/5.8.1": {
"module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=",
"pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM="
},
"org/junit/jupiter#junit-jupiter-api/5.8.1": {
"jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=",
"module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=",
"pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8="
},
"org/junit/jupiter#junit-jupiter-engine/5.8.1": {
"jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=",
"module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=",
"pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4="
},
"org/junit/jupiter#junit-jupiter-params/5.8.1": {
"jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=",
"module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=",
"pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws="
},
"org/junit/jupiter#junit-jupiter/5.8.1": {
"jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=",
"module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=",
"pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU="
},
"org/junit/platform#junit-platform-commons/1.8.1": {
"jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=",
"module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=",
"pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ="
},
"org/junit/platform#junit-platform-engine/1.8.1": {
"jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=",
"module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=",
"pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI="
},
"org/junit/vintage#junit-vintage-engine/5.8.1": {
"jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=",
"module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=",
"pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI="
},
"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="
}
}
}
@@ -1,137 +0,0 @@
{ stdenv
, lib
, fetchFromGitHub
, fetchurl
, runCommand
, writeText
, openjdk21_headless
, gradle
, pkg-config
, perl
, cmake
, gperf
, gtk2
, gtk3
, libXtst
, libXxf86vm
, glib
, alsa-lib
, ffmpeg_4
, python3
, ruby
, withMedia ? true
, withWebKit ? false
}:
let
major = "22";
update = ".0.1";
build = "-ga";
repover = "${major}${update}${build}";
icuVersionWithSep = s: "73${s}1";
icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip";
icuData = fetchurl {
url = "https://github.com/unicode-org/icu/releases/${icuPath}";
hash = "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA=";
};
icuFakeRepository = runCommand "icu-data-repository" {} ''
install -Dm644 ${icuData} $out/${icuPath}
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx22u";
rev = repover;
hash = "sha256-VoEufSO+LciUCvoAM86MG1iMjCA3FSb60Ik4OP2Rk/Q=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
config = writeText "gradle.properties" (''
CONF = Release
JDK_HOME = ${openjdk21_headless.home}
'' + args.gradleProperties or "");
buildPhase = ''
runHook preBuild
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
} // args);
# Fake build to pre-download deps into fixed-output derivation.
# We run nearly full build because I see no other way to download everything that's needed.
# Anyone who knows a better way?
deps = makePackage {
pname = "openjfx-deps";
# 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 -type f -regex '.*/modules.*\.\(jar\|pom\)' \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
rm -rf $out/tmp
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-2I7LvYcudlB4DKJ/wEiTjY6nICUxUY52euosUqOA+Bs=";
};
in
makePackage {
pname = "openjfx-modular-sdk";
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''
swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)"
substituteInPlace build.gradle \
--replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \
--replace 'name: SWT_FILE_NAME' "files('$swtJar')"
'';
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${openjdk21_headless.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ openjdk21_headless openjdk21_headless ];
passthru.deps = deps;
meta = with lib; {
homepage = "https://openjdk.org/projects/openjfx/";
license = licenses.gpl2Classpath;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = platforms.unix;
};
}
@@ -0,0 +1,101 @@
{ stdenv
, lib
, pkgs
, fetchFromGitHub
, writeText
, openjdk21_headless
, gradle
, pkg-config
, perl
, cmake
, gperf
, gtk2
, gtk3
, libXtst
, libXxf86vm
, glib
, alsa-lib
, ffmpeg_4
, python3
, ruby
, withMedia ? true
, withWebKit ? false
}:
let
pname = "openjfx-modular-sdk";
major = "22";
update = ".0.1";
build = "-ga";
repover = "${major}${update}${build}";
jdk = openjdk21_headless;
in stdenv.mkDerivation {
inherit pname;
version = "${major}${update}${build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx22u";
rev = repover;
hash = "sha256-VoEufSO+LciUCvoAM86MG1iMjCA3FSb60Ik4OP2Rk/Q=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
config = writeText "gradle.properties" ''
CONF = Release
JDK_HOME = ${jdk.home}
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
'';
postPatch = ''
ln -s $config gradle.properties
'';
mitmCache = gradle.fetchDeps {
attrPath = "openjfx${major}";
pkg = pkgs."openjfx${major}".override { withWebKit = true; };
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
preBuild = ''
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
'';
enableParallelBuilding = false;
gradleBuildTask = "sdk";
installPhase = ''
cp -r build/modular-sdk $out
'';
stripDebugList = [ "." ];
postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${jdk.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
'';
disallowedReferences = [ jdk gradle.jdk ];
meta = with lib; {
homepage = "https://openjdk.org/projects/openjfx/";
license = licenses.gpl2Classpath;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = platforms.unix;
};
}
+152
View File
@@ -0,0 +1,152 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://download.eclipse.org": {
"eclipse/updates/4.30/R-4.30-202312010110/plugins/org.eclipse.swt.gtk.linux.x86_64_3.124.200.v20231113-1355": {
"jar": "sha256-Q048o4oWnZ9Y33AxXiSxbxEeayfbWOf1HoxtoLS4SIs="
}
},
"https://github.com": {
"unicode-org/icu/releases/download/release-73-1/icu4c-73_1-data-bin-l": {
"zip": "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA="
}
},
"https://repo.maven.apache.org/maven2": {
"com/ibm/icu#icu4j/61.1": {
"jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=",
"pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs="
},
"junit#junit/4.13.2": {
"jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
"pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
},
"net/java#jvnet-parent/3": {
"pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o="
},
"org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
"jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
"pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
},
"org/antlr#ST4/4.1": {
"jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=",
"pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw="
},
"org/antlr#antlr-master/3.5.2": {
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
},
"org/antlr#antlr-runtime/3.5.2": {
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
},
"org/antlr#antlr4-master/4.7.2": {
"pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE="
},
"org/antlr#antlr4-runtime/4.7.2": {
"jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=",
"pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs="
},
"org/antlr#antlr4/4.7.2": {
"pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E="
},
"org/antlr#antlr4/4.7.2/complete": {
"jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ="
},
"org/apache#apache/13": {
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
},
"org/apache/lucene#lucene-core/7.7.3": {
"jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=",
"pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo="
},
"org/apache/lucene#lucene-grouping/7.7.3": {
"jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=",
"pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU="
},
"org/apache/lucene#lucene-parent/7.7.3": {
"pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU="
},
"org/apache/lucene#lucene-queries/7.7.3": {
"jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=",
"pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA="
},
"org/apache/lucene#lucene-queryparser/7.7.3": {
"jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=",
"pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI="
},
"org/apache/lucene#lucene-sandbox/7.7.3": {
"jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=",
"pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI="
},
"org/apache/lucene#lucene-solr-grandparent/7.7.3": {
"pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4="
},
"org/apiguardian#apiguardian-api/1.1.2": {
"jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
"module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
"pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
},
"org/glassfish#javax.json/1.0.4": {
"jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=",
"pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ="
},
"org/glassfish#json/1.0.4": {
"pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/junit#junit-bom/5.8.1": {
"module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=",
"pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM="
},
"org/junit/jupiter#junit-jupiter-api/5.8.1": {
"jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=",
"module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=",
"pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8="
},
"org/junit/jupiter#junit-jupiter-engine/5.8.1": {
"jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=",
"module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=",
"pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4="
},
"org/junit/jupiter#junit-jupiter-params/5.8.1": {
"jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=",
"module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=",
"pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws="
},
"org/junit/jupiter#junit-jupiter/5.8.1": {
"jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=",
"module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=",
"pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU="
},
"org/junit/platform#junit-platform-commons/1.8.1": {
"jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=",
"module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=",
"pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ="
},
"org/junit/platform#junit-platform-engine/1.8.1": {
"jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=",
"module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=",
"pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI="
},
"org/junit/vintage#junit-vintage-engine/5.8.1": {
"jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=",
"module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=",
"pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI="
},
"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="
}
}
}
+5 -35
View File
@@ -3,7 +3,6 @@
, fetchgit
, jdk_headless
, gradle
, perl
, makeWrapper
}:
@@ -39,41 +38,14 @@ stdenv.mkDerivation rec {
sed -i -e '/conscrypt/s/testImplementation/implementation/' build.gradle
'';
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit src version postPatch;
nativeBuildInputs = [ gradle perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle --no-daemon build
'';
# 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 =~ s/okio-jvm/okio/r)}" #e' \
| sh
'';
# Don't move info to share/
forceShare = [ "dummy" ];
outputHashMode = "recursive";
# Downloaded jars differ by platform
outputHash = "sha256-cs95YI0SpvzCo5x5trMXlVUGepNKIH9oZ95AfLErKIU=";
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
preBuild = ''
# Use the local packages from -deps
sed -i -e '/repositories {/a maven { url uri("${deps}") }' build.gradle
'';
__darwinAllowLocalNetworking = true;
buildPhase = ''
runHook preBuild
export GRADLE_USER_HOME=$(mktemp -d)
gradle --offline --no-daemon build
runHook postBuild
'';
doCheck = true;
nativeBuildInputs = [ gradle makeWrapper ];
@@ -83,8 +55,6 @@ stdenv.mkDerivation rec {
--add-flags "-jar $out/lib/apksigner.jar"
'';
__darwinAllowLocalNetworking = true;
meta = with lib; {
description = "Command line tool to sign and verify Android APKs";
mainProgram = "apksigner";
+119
View File
@@ -0,0 +1,119 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://jcenter.bintray.com": {
"com/google#google/1": {
"pom": "sha256-zW2xehGjHt55TMvR3w5Nl1D2QCNHMfIc/4hamZcnfoE="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/google/errorprone#error_prone_annotations/2.2.0": {
"jar": "sha256-br0iyhudjsBtQd6NZOBZaYHZYHtCA1+e03T53icaSBo=",
"pom": "sha256-XgJY6huk5RoTN0JoC8IkSPerIUvkBz6GGfZF7xvkLdU="
},
"com/google/errorprone#error_prone_parent/2.2.0": {
"pom": "sha256-xGCQLd9ezmiDLGsnHOUqCSiwXPOmrIGo9UjHPL1UETg="
},
"com/google/gradle#osdetector-gradle-plugin/1.6.2": {
"jar": "sha256-hFw+/OY70j2WLyELE77rqwXE1YOJihsaf/uMez7X1dQ=",
"pom": "sha256-W/T2le0Rd+gFJFJbbloECl1+pLFhlrERCILGLmmlVeg="
},
"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/27.0.1-jre": {
"pom": "sha256-MX6IKRJi4M8oBelWwYhQ8dRWXIXC4REvXZ0Iqxcy5pY="
},
"com/google/guava#guava/27.0.1-jre": {
"jar": "sha256-4cgU/QRJKifDjgMX6r6qGz6VDsgBAjnkAP6QrWyRB7Q=",
"pom": "sha256-ao3QQfI6a7FKhuRA/MuZNTe2InE1eg2sCjyw/zkVjzY="
},
"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.1": {
"jar": "sha256-KZSn63jycQvT07+2ObLJTiGc7awNTQhNUW54wW3d7PY=",
"pom": "sha256-8MmMVx6Tp8tN0Y3w+jCPCWPnoGIKwtQkTmHnCdA61r4="
},
"com/google/protobuf#protobuf-bom/3.8.0": {
"pom": "sha256-WjrGCFOIDEORPNXLY7Np626WRuHtDEgGnsmpMTd700c="
},
"com/google/protobuf#protobuf-gradle-plugin/0.8.11": {
"jar": "sha256-gFr+/pf6AYFXpWvxQtvuStIo0RSyq3s97le5fD4teHk=",
"pom": "sha256-RBeVBVv4AjSXKcjFWdrVcmi4C4tk6KPePK2lQmo45aA="
},
"com/google/protobuf#protobuf-javalite/3.8.0": {
"jar": "sha256-HSWDsgkvIdvCnJCabwV+u4bYTkxU/LHXvAAmO4AaM/g=",
"pom": "sha256-4EnZCbCH/zokFi4H0KgIFE7BnnwK6Z1Ee0dZZ83361s="
},
"com/google/protobuf#protobuf-parent/3.8.0": {
"pom": "sha256-cGPoFu/yyZcFW9KmbuLJtObNEvhcj8lW5UhweQmAHEU="
},
"com/google/protobuf#protoc/3.8.0": {
"pom": "sha256-0bqQU0Wx2o1GXQ0DCkzgiuVX0nz8krZiMvEN3ks4V9I="
},
"com/google/protobuf/protoc/3.8.0/protoc-3.8.0-linux-x86_64": {
"exe": "sha256-eeGGIvawJqOETt7d5Fzw4M98+8emLCho2dgtvtYSZeQ="
},
"commons-lang#commons-lang/2.6": {
"jar": "sha256-UPEbCfh3wpTVbyRGP0fSj5Kc9QRPZIZhwPDPuumi9Jw=",
"pom": "sha256-7Xa4iRwwtWYonHQ2Vvik1DWYaYJDjUDFZ8YmIzJH5xE="
},
"junit#junit/4.13": {
"jar": "sha256-S4Uy9jvcDgZhUH+UfrMkqVTR26xjGtGciqmgD+7R2GM=",
"pom": "sha256-mg3Ew/orCG5wgiZzfvS7N4R8PLHOTiA1F8CfYwWyJn4="
},
"kr/motd/maven#os-maven-plugin/1.6.2": {
"jar": "sha256-OgxJXeHOvIP2e+qhd2p5NvAvEfKt3Th5WWp4sqhryqM=",
"pom": "sha256-bXDR8vJydzDXedMqH9L7seoI51pnpQotjn0P2zoqSvM="
},
"org/apache#apache/7": {
"pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU="
},
"org/apache/commons#commons-parent/17": {
"pom": "sha256-lucYuvU0h07mLOTULeJl8t2s2IORpUDgMNWdmPp8RAg="
},
"org/bouncycastle#bcprov-jdk15on/1.68": {
"jar": "sha256-9zKkbI3n4iMvIAfGgqIdH0zIqKAUm2t71qoa/cZaD40=",
"pom": "sha256-2QfezWhfnNlx5xvfbOWXzzqVt8j/ajSCNRv9irwXz+A="
},
"org/checkerframework#checker-qual/2.5.2": {
"jar": "sha256-ZLAmkci51OdwD47i50Lc5+osboHmYrdSLJ7jv1aMBAo=",
"pom": "sha256-3EzUOKNkYtATwjOMjiBtECoyKgDzNynolV7iGYWcnt4="
},
"org/codehaus/mojo#animal-sniffer-annotations/1.17": {
"jar": "sha256-kmVPST7P7FIILnY1Tw6/h2SNw9XOwuPDzblHwBZ0elM=",
"pom": "sha256-6VarXS60j6uuEjANDNLTKU1KKkGrwgaMI8tNYK12y+U="
},
"org/codehaus/mojo#animal-sniffer-parent/1.17": {
"pom": "sha256-GKA98W4qGExYLbexJWM8Fft3FAJ6hMG1MtcpM9wIuB8="
},
"org/codehaus/mojo#mojo-parent/40": {
"pom": "sha256-/GSNzcQE+L9m4Fg5FOz5gBdmGCASJ76hFProUEPLdV4="
},
"org/conscrypt#conscrypt-openjdk-uber/2.5.1": {
"jar": "sha256-AfnHQstZKhUeLmK9U5eomAYoqWcAH82s1KpHRGeGhfM=",
"pom": "sha256-XivA41GARnUwxVpnqvq+XvmOBg7raY6a9tCw3N26lc0="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}
@@ -0,0 +1,245 @@
# Gradle Setup Hook
## Introduction
Gradle build scripts are written in a DSL, computing the list of Gradle
dependencies is a turing-complete task, not just in theory but in
practice. Fetching all of the dependencies often requires building some
native code, running some commands to check the host platform, or just
fetching some files using either JVM code or commands like `curl` or
`wget`.
This practice is widespread and isn't considered a bad practice in the
Java world, so all we can do is run Gradle to check what dependencies
end up being fetched, and allow derivation authors to apply workarounds
so they can run the code necessary for fetching the dependencies our
script doesn't fetch.
"Run Gradle to check what dependencies end up being fetched" isn't a
straightforward task. For example, Gradle usually uses Maven
repositories, which have features such as "snapshots", a way to always
use the latest version of a dependency as opposed to a fixed version.
Obviously, this is horrible for reproducibility. Additionally, Gradle
doesn't offer a way to export the list of dependency URLs and hashes (it
does in a way, but it's far from being complete, and as such is useless
for nixpkgs). Even if did, it would be annoying to use considering
fetching non-Gradle dependendencies in Gradle scripts is commonplace.
That's why the setup hook uses mitm-cache, a program designed for
intercepting all HTTP requests, recording all the files that were
accessed, creating a Nix derivation with all of them, and then allowing
the Gradle derivation to access these files.
## Maven Repositories
(Reference: [Repository
Layout](https://cwiki.apache.org/confluence/display/MAVENOLD/Repository+Layout+-+Final))
Most of Gradle dependencies are fetched from Maven repositories. For
each dependency, Gradle finds the first repo where it can successfully
fetch that dependency, and uses that repo for it. Different repos might
actually return different files for the same artifact because of e.g.
pom normalization. Different repos may be used for the same artifact
even across a single package (for example, if two build scripts define
repositories in a different order).
The artifact metadata is specified in a .pom file, and the artifacts
themselves are typically .jar files. The URL format is as follows:
`<repo>/<group-id>/<artifact-id>/<base-version>/<artifact-id>-<version>[-<classifier>].<ext>`
For example:
- `https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.pom`
- `https://oss.sonatype.org/content/groups/public/com/tobiasdiez/easybind/2.2.1-SNAPSHOT/easybind-2.2.1-20230117.075740-16.pom`
Where:
- `<repo>` is the repo base (`https://repo.maven.apache.org/maven2`)
- `<group-id>` is the group ID with dots replaced with slashes
(`org.slf4j` -> `org/slf4j`)
- `<artifact-id>` is the artifact ID (`slf4j-api`)
- `<base-version>` is the artifact version (`2.0.9` for normal
artifacts, `2.2.1-SNAPSHOT` for snapshots)
- `<version>` is the artifact version - can be either `<base-version>`
or `<version-base>-<timestamp>-<build-num>` (`2.0.9` for normal
artifacts, and either `2.2.1-SNAPSHOT` or `2.2.1-20230117.075740-16`
for snapshots)
- `<version-base>` - `<base-version>` without the `-SNAPSHOT` suffix
- `<timestamp>` - artifact build timestamp in the `YYYYMMDD.HHMMSS`
format (UTC)
- `<build-num>` - a counter that's incremented by 1 for each new
snapshot build
- `<classifier>` is an optional classifier for allowing a single .pom to
refer to multiple .jar files. .pom files don't have classifiers, as
they describe metadata.
- `<ext>` is the extension. .pom
Note that the artifact ID can contain `-`, so you can't extract the
artifact ID and version from just the file name.
Additionally, the files in the repository may have associated signature
files, formed by appending `.asc` to the filename, and hashsum files,
formed by appending `.md5` or `.sha1` to the filename. The signatures
are harmless, but the `.md5`/`.sha1` files are rejected.
The reasoning is as follows - consider two files `a.jar` and `b.jar`,
that have the same hash. Gradle will fetch `a.jar.sha1`, find out that
it hasn't yet downloaded a file with this hash, and then fetch `a.jar`,
and finally download `b.jar.sha1`, locate it in its cache, and then
*not* download `b.jar`. This means `b.jar` won't be stored in the MITM
cache. Then, consider that on a later invocation, the fetching order
changed, whether it was because of a running on different system,
changed behavior after a Gradle update, or any other source of
nondeterminism - `b.jar` is fetched before `a.jar`. Gradle will first
fetch `b.jar.sha1`, not find it in its cache, attempt to fetch `b.jar`,
and fail, as the cache doesn't have that file.
For the same reason, the proxy strips all checksum/etag headers. An
alternative would be to make the proxy remember previous checksums and
etags, but that would complicate the implementation - however, such a
feature can be implemented if necessary. Note that checksum/etag header
stripping is hardcoded, but `.md5/.sha1` file rejection is configured
via CLI arguments.
**Caveat**: Gradle .module files also contain file hashes, in md5, sha1,
sha256, sha512 formats. It posed no problem as of yet, but it might in
the future. If it does pose problems, the deps derivation code can be
extended to find all checksums in .module files and copy existing files
there if their hash matches.
## Snapshots
Snapshots are a way to publish the very latest, unstable version of a
dependency that constantly changes. Any project that depends on a
snapshot will depend on this rolling version, rather than a fixed
version. It's easy to understand why this is a bad idea for reproducible
builds. Still, they can be dealt with by the logic in `gradle.fetchDeps`
and `gradle.updateDeps`.
First, as you can see above, while normal artifacts have the same
`base-version` and `version`, for snapshots it usually (but not
necessarily) differs.
Second, for figuring out where to download the snapshot, Gradle consults
`maven-metadata.xml`. With that in mind...
## Maven Metadata
(Reference: [Maven
Metadata](https://maven.apache.org/repositories/metadata.html),
[Metadata](https://maven.apache.org/ref/3.9.8/maven-repository-metadata/repository-metadata.html)
Maven metadata files are called `maven-metadata.xml`.
There are three levels of metadata: "G level", "A level", "V level",
representing group, artifact, or version metadata.
G level metadata is currently unsupported. It's only used for Maven
plugins, which Gradle presumably doesn't use.
A level metadata is used for getting the version list for an artifact.
It's an xml with the following items:
- `<groupId>` - group ID
- `<artifactId>` - artifact ID
- `<versioning>`
- `<latest>` - the very latest base version (e.g. `2.2.1-SNAPSHOT`)
- `<release>` - the latest non-snapshot version
- `<versions>` - the version list, each in a `<version>` tag
- `<lastUpdated>` - the metadata update timestamp (UTC,
`YYYYMMDDHHMMSS`)
V level metadata is used for listing the snapshot versions. It has the
following items:
- `<groupId>` - group ID
- `<artifactId>` - artifact ID
- `<versioning>`
- `<lastUpdated>` - the metadata update timestamp (UTC,
`YYYYMMDDHHMMSS`)
- `<snapshot>` - info about the latest snapshot version
- `<timestamp>` - build timestamp (UTC, `YYYYMMDD.HHMMSS`)
- `<buildNumber>` - build number
- `<snapshotVersions>` - the list of all available snapshot file info,
each info is enclosed in a `<snapshotVersion>`
- `<classifier>` - classifier (optional)
- `<extension>` - file extension
- `<value>` - snapshot version (as opposed to base version)
- `<updated>` - snapshot build timestamp (UTC, `YYYYMMDDHHMMSS`)
## Lockfile Format
The mitm-cache lockfile format is described in the [mitm-cache
README](https://github.com/chayleaf/mitm-cache#readme).
The nixpkgs Gradle lockfile format is more complicated:
```json
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://oss.sonatype.org/content/repositories/snapshots/com/badlogicgames/gdx-controllers": {
"gdx-controllers#gdx-controllers-core/2.2.4-20231021.200112-6/SNAPSHOT": {
"jar": "sha256-Gdz2J1IvDJFktUD2XeGNS0SIrOyym19X/+dCbbbe3/U=",
"pom": "sha256-90QW/Mtz1jbDUhKjdJ88ekhulZR2a7eCaEJoswmeny4="
},
"gdx-controllers-core/2.2.4-SNAPSHOT/maven-metadata": {
"xml": {
"groupId": "com.badlogicgames.gdx-controllers"
}
}
},
"https://repo.maven.apache.org/maven2": {
"com/badlogicgames/gdx#gdx-backend-lwjgl3/1.12.1": {
"jar": "sha256-B3OwjHfBoHcJPFlyy4u2WJuRe4ZF/+tKh7gKsDg41o0=",
"module": "sha256-9O7d2ip5+E6OiwN47WWxC8XqSX/mT+b0iDioCRTTyqc=",
"pom": "sha256-IRSihaCUPC2d0QzB0MVDoOWM1DXjcisTYtnaaxR9SRo="
}
}
}
```
`!comment` is a human-readable description explaining what the file is,
`!version` is the lockfile version (note that while it shares the name
with mitm-cache's `!version`, they don't actually have to be in sync and
can be bumped separately).
The other keys are parts of a URL. Each URL is split into three parts.
They are joined like this: `<part1>/<part2>.<part3>`.
Some URLs may have a `#` in them. In that case, the part after `#` is
parsed as `#<artifact-id>/<version>[/SNAPSHOT][/<classifier>].<ext>` and
expanded into
`<artifact-id>/<base-version>/<artifact-id>-<version>[-<classifier>].<ext>`.
Each URL has a value associated with it. The value may be:
- an SRI hash (string)
- for `maven-metadata.xml` - an attrset containing the parts of the
metadata that can't be generated in Nix code (e.g. `groupId`, which is
challenging to parse from a URL because it's not always possible to
discern where the repo base ends and the group ID begins).
`compress-deps-json.py` converts the JSON from mitm-cache format into
nixpkgs Gradle lockfile format. `fetch.nix` does the opposite.
## Security Considerations
Lockfiles won't be human-reviewed. They must be tampering-resistant.
That's why it's imperative that nobody can inject their own contents
into the lockfiles.
This is achieved in a very simple way - the `deps.json` only contains
the following:
- `maven-metadata.xml` URLs and small pieces of the contained metadata
(most of it will be generated in Nix, i.e. the area of injection is
minimal, and the parts that aren't generated in Nix are validated).
- artifact/other file URLs and associated hashes (Nix will complain if
the hash doesn't match, and Gradle won't even access the URL if it
doesn't match)
Please be mindful of the above when working on Gradle support for
nixpkgs.
@@ -0,0 +1,163 @@
import json
import sys
from typing import Dict, Set
# this compresses MITM URL lists with Gradle-specific optimizations
# specifically, it splits each url into up to 3 parts - they will be
# concatenated like part1/part2.part3 or part1.part2
# part3 is simply always the file extension, but part1 and part2 is
# optimized using special heuristics
# additionally, if part2 ends with /a/b/{a}-{b}, the all occurences of
# /{a}/{b}/ are replaced with #
# finally, anything that ends with = is considered SHA256, anything that
# starts with http is considered a redirect URL, anything else is
# considered text
with open(sys.argv[1], "rt") as f:
data: dict = json.load(f)
new_data: Dict[str, Dict[str, Dict[str, dict]]] = {}
for url, info in data.items():
if url == "!version":
continue
ext, base = map(lambda x: x[::-1], url[::-1].split(".", 1))
if base.endswith(".tar"):
base = base[:-4]
ext = "tar." + ext
# special logic for Maven repos
if ext in ["jar", "pom", "module"]:
comps = base.split("/")
if "-" in comps[-1]:
# convert base/name/ver/name-ver into base#name/ver
filename = comps[-1]
name = comps[-3]
basever = comps[-2]
ver = basever
is_snapshot = ver.endswith("-SNAPSHOT")
if is_snapshot:
ver = ver.removesuffix("-SNAPSHOT")
if filename.startswith(f"{name}-{ver}"):
if is_snapshot:
if filename.startswith(f"{name}-{ver}-SNAPSHOT"):
ver += "-SNAPSHOT"
else:
ver += "-".join(
filename.removeprefix(f"{name}-{ver}").split("-")[:3]
)
comp_end = comps[-1].removeprefix(f"{name}-{ver}")
else:
ver, name, comp_end = None, None, None
if name and ver and (not comp_end or comp_end.startswith("-")):
base = "/".join(comps[:-1]) + "/"
base = base.replace(f"/{name}/{basever}/", "#")
base += f"{name}/{ver}"
if is_snapshot:
base += "/SNAPSHOT"
if comp_end:
base += "/" + comp_end[1:]
scheme, rest = base.split("/", 1)
if scheme not in new_data.keys():
new_data[scheme] = {}
if rest not in new_data[scheme].keys():
new_data[scheme][rest] = {}
if "hash" in info.keys():
new_data[scheme][rest][ext] = info["hash"]
elif "text" in info.keys() and ext == "xml":
# nix code in fetch-deps.nix will autogenerate metadata xml files groupId
# is part of the URL, but it can be tricky to parse as we don't know the
# exact repo base, so take it from the xml and pass it to nix
xml = "".join(info["text"].split())
new_data[scheme][rest][ext] = {
"groupId": xml.split("<groupId>")[1].split("</groupId>")[0],
}
if "<release>" in xml:
new_data[scheme][rest][ext]["release"] = xml.split("<release>")[1].split(
"</release>"
)[0]
if "<latest>" in xml:
latest = xml.split("<latest>")[1].split("</latest>")[0]
if latest != new_data[scheme][rest][ext].get("release"):
new_data[scheme][rest][ext]["latest"] = latest
if "<lastUpdated>" in xml:
new_data[scheme][rest][ext]["lastUpdated"] = xml.split("<lastUpdated>")[
1
].split("</lastUpdated>")[0]
else:
raise Exception("Unsupported key: " + repr(info))
# At this point, we have a map by part1 (initially the scheme), part2 (initially a
# slash-separated string without the scheme and with potential # substitution as
# seen above), extension.
# Now, push some segments from "part2" into "part1" like this:
# https # part1
# domain1/b # part2
# domain1/c
# domain2/a
# domain2/c
# ->
# https/domain1 # part1
# b # part2
# c
# https/domain2 # part1
# a # part2
# c
# This helps reduce the lockfile size because a Gradle project will usually use lots
# of files from a single Maven repo
data = new_data
changed = True
while changed:
changed = False
new_data = {}
for part1, info1 in data.items():
starts: Set[str] = set()
# by how many bytes the file size will be increased (roughly)
lose = 0
# by how many bytes the file size will be reduced (roughly)
win = 0
# how many different initial part2 segments there are
count = 0
for part2, info2 in info1.items():
if "/" not in part2:
# can't push a segment from part2 into part1
count = 0
break
st = part2.split("/", 1)[0]
if st not in starts:
lose += len(st) + 1
count += 1
starts.add(st)
win += len(st) + 1
if count == 0:
new_data[part1] = info1
continue
# only allow pushing part2 segments into path1 if *either*:
# - the domain isn't yet part of part1
# - the initial part2 segment is always the same
if count != 1 and "." in part1:
new_data[part1] = info1
continue
# some heuristics that may or may not work well (originally this was
# used when the above if wasn't here, but perhaps it's useless now)
lose += (count - 1) * max(0, len(part1) - 4)
if win > lose or ("." not in part1 and win >= lose):
changed = True
for part2, info2 in info1.items():
st, part3 = part2.split("/", 1)
new_part1 = part1 + "/" + st
if new_part1 not in new_data.keys():
new_data[new_part1] = {}
new_data[new_part1][part3] = info2
else:
new_data[part1] = info1
data = new_data
new_data["!comment"] = "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual." # type: ignore
new_data["!version"] = 1 # type: ignore
with open(sys.argv[2], "wt") as f:
json.dump(new_data, f, sort_keys=True, indent=1)
f.write("\n")
@@ -130,6 +130,7 @@ rec {
'';
};
};
passthru.jdk = defaultJava;
meta = with lib; {
inherit platforms;
@@ -179,4 +180,43 @@ rec {
hash = "sha256-PiQCKFON6fGHcqV06ZoLqVnoPW7zUQFDgazZYxeBOJo=";
defaultJava = jdk11;
};
wrapGradle = {
lib, callPackage, mitm-cache, substituteAll, symlinkJoin, concatTextFile, makeSetupHook
}:
gradle-unwrapped:
lib.makeOverridable (args:
let
gradle = gradle-unwrapped.override args;
in symlinkJoin {
name = "gradle-${gradle.version}";
paths = [
(makeSetupHook { name = "gradle-setup-hook"; } (concatTextFile {
name = "setup-hook.sh";
files = [
(mitm-cache.setupHook)
(substituteAll {
src = ./setup-hook.sh;
# jdk used for keytool
inherit (gradle) jdk;
init_script = ./init-build.gradle;
})
];
}))
gradle
mitm-cache
];
passthru = {
fetchDeps = callPackage ./fetch-deps.nix { inherit mitm-cache; };
inherit (gradle) jdk;
};
meta = gradle.meta // {
# prefer normal gradle/mitm-cache over this wrapper, this wrapper only provides the setup hook
# and passthru
priority = (gradle.meta.priority or 0) + 1;
};
}) { };
}
@@ -0,0 +1,222 @@
{ mitm-cache
, lib
, pkgs
, stdenv
, callPackage
}:
let
getPkg = attrPath:
lib.getAttrFromPath
(lib.splitString "." (toString attrPath))
pkgs;
in
# the derivation to fetch/update deps for
{ pkg ? getPkg attrPath
, pname ? null
, attrPath ? pname
# bwrap flags for the update script (this will be put in bash as-is)
# this is relevant for downstream users
, bwrapFlags ? "--ro-bind \"$PWD\" \"$PWD\""
# deps path (relative to the package directory, or absolute)
, data
# redirect stdout to stderr to allow the update script to be used with update script combinators
, silent ? true
, useBwrap ? stdenv.isLinux
} @ attrs:
let
data' = builtins.removeAttrs
(if builtins.isPath data then lib.importJSON data
else if builtins.isString data then lib.importJSON "${dirOf pkg.meta.position}/${data}"
else data)
[ "!comment" "!version" ];
parseArtifactUrl = url: let
extension = lib.last (lib.splitString "." url);
splitUrl = lib.splitString "/" url;
artifactId = builtins.elemAt splitUrl (builtins.length splitUrl - 3);
baseVer = builtins.elemAt splitUrl (builtins.length splitUrl - 2);
filename = builtins.elemAt splitUrl (builtins.length splitUrl - 1);
filenameNoExt = lib.removeSuffix ".${extension}" filename;
verCls = lib.removePrefix "${artifactId}-" filenameNoExt;
in rec {
inherit artifactId baseVer filename extension;
isSnapshot = lib.hasSuffix "-SNAPSHOT" baseVer;
version =
if isSnapshot && !lib.hasPrefix "SNAPSHOT" verCls
then builtins.concatStringsSep "-" (lib.take 3 (lib.splitString "-" verCls))
else baseVer;
classifier =
if verCls == version then null
else lib.removePrefix "${version}-" verCls;
# for snapshots
timestamp = builtins.elemAt (lib.splitString "-" version) 1;
buildNum = builtins.elemAt (lib.splitString "-" version) 2;
};
parseMetadataUrl = url: let
xmlBase = lib.removeSuffix "/maven-metadata.xml" url;
vMeta = lib.hasSuffix "-SNAPSHOT" xmlBase;
splitBase = lib.splitString "/" xmlBase;
in
if vMeta then {
vMeta = true;
baseVer = builtins.elemAt splitBase (builtins.length splitBase - 1);
artifactId = builtins.elemAt splitBase (builtins.length splitBase - 2);
} else {
vMeta = false;
baseVer = null;
artifactId = builtins.elemAt splitBase (builtins.length splitBase - 1);
};
extractHashArtifact = afterHash: let
nameVer = builtins.match "([^/]*)/([^/]*)(/SNAPSHOT)?(/.*)?" afterHash;
artifactId = builtins.elemAt nameVer 0;
version = builtins.elemAt nameVer 1;
isSnapshot = builtins.elemAt nameVer 2 != null;
cls = builtins.elemAt nameVer 3;
in rec {
inherit artifactId version isSnapshot;
baseVer =
if !isSnapshot then version
else builtins.head (builtins.match "(.*)-([^-]*)-([^-]*)" version) + "-SNAPSHOT";
classifier =
if cls == null then null
else lib.removePrefix "/" cls;
clsSuf =
if classifier == null then ""
else "-${classifier}";
};
# replace base#name/ver with base/name/ver/name-ver
decompressNameVer = prefix: let
splitHash = lib.splitString "#" (builtins.concatStringsSep "/" prefix);
inherit (extractHashArtifact (lib.last splitHash)) artifactId baseVer version clsSuf;
in
if builtins.length splitHash == 1 then builtins.head splitHash
else builtins.concatStringsSep "/${artifactId}/${baseVer}/" (lib.init splitHash ++ [ "${artifactId}-${version}${clsSuf}" ]);
# `visit` all elements in attrs and merge into a set
# attrs will be passed as parent1, parent1 will be passed as parent2
visitAttrs = parent1: prefix: attrs:
builtins.foldl'
(a: b: a // b)
{}
(lib.mapAttrsToList (visit parent1 attrs prefix) attrs);
# convert a compressed deps.json into an uncompressed json used for mitm-cache.fetch
visit = parent2: parent1: prefix: k: v:
# groupId being present means this is a metadata xml "leaf" and we shouldn't descend further
if builtins.isAttrs v && !v?groupId
then visitAttrs parent1 (prefix ++ [k]) v
else let
url = "${decompressNameVer prefix}.${k}";
in {
${url} =
if builtins.isString v then { hash = v; }
else {
text = let
xmlBase = lib.removeSuffix "/maven-metadata.xml" url;
meta = parseMetadataUrl url // v;
inherit (meta) groupId vMeta artifactId baseVer;
fileList = builtins.filter (x: lib.hasPrefix xmlBase x && x != url) (builtins.attrNames finalData);
jarPomList = map parseArtifactUrl fileList;
sortedJarPomList =
lib.sort
(a: b: lib.splitVersion a.version < lib.splitVersion b.version)
jarPomList;
uniqueVersionFiles =
builtins.map ({ i, x }: x)
(builtins.filter ({ i, x }: i == 0 || (builtins.elemAt sortedJarPomList (i - 1)).version != x.version)
(lib.imap0 (i: x: { inherit i x; }) sortedJarPomList));
uniqueVersions' = map (x: x.version) uniqueVersionFiles;
releaseVersions = map (x: x.version) (builtins.filter (x: !x.isSnapshot) uniqueVersionFiles);
latestVer = v.latest or v.release or (lib.last uniqueVersions');
releaseVer = v.release or (lib.last releaseVersions);
# The very latest version isn't necessarily used by Gradle, so it may not be present in the MITM data.
# In order to generate better metadata xml, if the latest version is known but wasn't fetched by Gradle,
# add it anyway.
uniqueVersions =
uniqueVersions'
++ lib.optional (!builtins.elem releaseVer uniqueVersions') releaseVer
++ lib.optional (!builtins.elem latestVer uniqueVersions' && releaseVer != latestVer) latestVer;
lastUpdated = v.lastUpdated or
(if vMeta then builtins.replaceStrings ["."] [""] snapshotTs
else "20240101123456");
# the following are only used for snapshots
snapshotTsAndNum = lib.splitString "-" latestVer;
snapshotTs = builtins.elemAt snapshotTsAndNum 1;
snapshotNum = lib.last snapshotTsAndNum;
indent = x: s: builtins.concatStringsSep "\n" (map (s: x + s) (lib.splitString "\n" s));
containsSpecialXmlChars = s: builtins.match ''.*[<>"'&].*'' s != null;
in
# make sure all user-provided data is safe
assert lib.hasInfix "${builtins.replaceStrings ["."] ["/"] groupId}/${artifactId}" url;
assert !containsSpecialXmlChars groupId;
assert !containsSpecialXmlChars lastUpdated;
if vMeta then ''
<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${baseVer}</version>
<versioning>
<snapshot>
<timestamp>${snapshotTs}</timestamp>
<buildNumber>${snapshotNum}</buildNumber>
</snapshot>
<lastUpdated>${lastUpdated}</lastUpdated>
<snapshotVersions>
${builtins.concatStringsSep "\n" (map (x: indent " " ''
<snapshotVersion>${
lib.optionalString
(x.classifier != null)
"\n <classifier>${x.classifier}</classifier>"
}
<extension>${x.extension}</extension>
<value>${x.version}</value>
<updated>${builtins.replaceStrings ["."] [""] x.timestamp}</updated>
</snapshotVersion>'') sortedJarPomList)}
</snapshotVersions>
</versioning>
</metadata>
''
else
assert !containsSpecialXmlChars latestVer;
assert !containsSpecialXmlChars releaseVer;
''
<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<versioning>
<latest>${latestVer}</latest>
<release>${releaseVer}</release>
<versions>
${builtins.concatStringsSep "\n" (map (x: " <version>${x}</version>") uniqueVersions)}
</versions>
<lastUpdated>${lastUpdated}</lastUpdated>
</versioning>
</metadata>
'';
};
};
finalData = visitAttrs {} [] data';
in
mitm-cache.fetch {
name = "${pkg.pname or pkg.name}-deps";
data = finalData // { "!version" = 1; };
passthru = lib.optionalAttrs (!builtins.isAttrs data) {
updateScript = callPackage ./update-deps.nix { } {
inherit pkg pname attrPath bwrapFlags data silent useBwrap;
};
};
}
@@ -0,0 +1,8 @@
gradle.projectsLoaded {
rootProject.allprojects {
tasks.withType(AbstractArchiveTask) {
preserveFileTimestamps = false
reproducibleFileOrder = true
}
}
}
@@ -0,0 +1,10 @@
gradle.projectsLoaded {
rootProject.allprojects {
task nixDownloadDeps {
doLast {
configurations.findAll{it.canBeResolved}.each{it.resolve()}
buildscript.configurations.findAll{it.canBeResolved}.each{it.resolve()}
}
}
}
}
@@ -0,0 +1,70 @@
gradleConfigureHook() {
if [ -z "${GRADLE_USER_HOME-}" ]; then
GRADLE_USER_HOME="$(mktemp -d)"
fi
export GRADLE_USER_HOME
export TERM=dumb
gradleFlagsArray+=(--no-daemon --console plain --init-script "${gradleInitScript:-@init_script@}")
if [ -n "${MITM_CACHE_CA-}" ]; then
if [ -z "${MITM_CACHE_KEYSTORE-}" ]; then
MITM_CACHE_KEYSTORE="$MITM_CACHE_CERT_DIR/keystore"
MITM_CACHE_KS_PWD="$(head -c10 /dev/random | base32)"
echo y | @jdk@/bin/keytool -importcert -file "$MITM_CACHE_CA" -alias alias -keystore "$MITM_CACHE_KEYSTORE" -storepass "$MITM_CACHE_KS_PWD"
fi
gradleFlagsArray+=(-Dhttp.proxyHost="$MITM_CACHE_HOST" -Dhttp.proxyPort="$MITM_CACHE_PORT")
gradleFlagsArray+=(-Dhttps.proxyHost="$MITM_CACHE_HOST" -Dhttps.proxyPort="$MITM_CACHE_PORT")
gradleFlagsArray+=(-Djavax.net.ssl.trustStore="$MITM_CACHE_KEYSTORE" -Djavax.net.ssl.trustStorePassword="$MITM_CACHE_KS_PWD")
else
gradleFlagsArray+=(--offline)
fi
if ! [[ -v enableParallelBuilding ]]; then
enableParallelBuilding=1
fi
if ! [[ -v enableParallelChecking ]]; then
enableParallelChecking=1
fi
if ! [[ -v enableParallelUpdating ]]; then
enableParallelUpdating=1
fi
}
gradle() {
command gradle $gradleFlags "${gradleFlagsArray[@]}" "$@"
}
gradleBuildPhase() {
runHook preBuild
gradle ${enableParallelBuilding:+--parallel} ${gradleBuildTask:-assemble}
runHook postBuild
}
gradleCheckPhase() {
runHook preCheck
gradle ${enableParallelChecking:+--parallel} ${gradleCheckTask:-test}
runHook postCheck
}
gradleUpdateScript() {
runHook preBuild
runHook preGradleUpdate
gradle ${enableParallelUpdating:+--parallel} ${gradleUpdateTask:-nixDownloadDeps}
runHook postGradleUpdate
}
if [ -z "${dontUseGradleConfigure-}" ]; then
preConfigureHooks+=(gradleConfigureHook)
fi
if [ -z "${dontUseGradleBuild-}" ] && [ -z "${buildPhase-}" ]; then
buildPhase=gradleBuildPhase
fi
if [ -z "${dontUseGradleCheck-}" ] && [ -z "${checkPhase-}" ]; then
checkPhase=gradleCheckPhase
fi
@@ -0,0 +1,122 @@
{ lib
, runtimeShell
, srcOnly
, writeTextFile
, writeShellScript
, path
, bubblewrap
, coreutils
, curl
, jq
, mitm-cache
, nix
, openssl
, procps
, python3
}:
lib.makeOverridable
({ pkg, pname, attrPath, bwrapFlags, data, silent, useBwrap }:
let
keep = [ "MITM_CACHE_HOST" "MITM_CACHE_PORT" "MITM_CACHE_ADDRESS" "MITM_CACHE_CA" "MITM_CACHE_CERT_DIR" ];
gradleScript = writeShellScript "gradle-commands.sh" ''
set -eo pipefail
export http_proxy="$MITM_CACHE_ADDRESS"
export https_proxy="$MITM_CACHE_ADDRESS"
export SSL_CERT_FILE="$MITM_CACHE_CA"
export NIX_SSL_CERT_FILE="$MITM_CACHE_CA"
export GRADLE_USER_HOME="$(${coreutils}/bin/mktemp -d)"
export IN_GRADLE_UPDATE_DEPS=1
trap "${coreutils}/bin/rm -rf '$GRADLE_USER_HOME'" SIGINT SIGTERM ERR EXIT
cd "$(${coreutils}/bin/mktemp -d)"
${coreutils}/bin/mkdir out
export out="$PWD/out"
trap "${coreutils}/bin/rm -rf '$PWD'" SIGINT SIGTERM ERR EXIT
source "$stdenv/setup"
phases="''${prePhases[*]:-} unpackPhase patchPhase ''${preConfigurePhases[*]:-} configurePhase gradleUpdateScript" genericBuild
'';
source = srcOnly (pkg.overrideAttrs (old: {
mitmCache = "";
gradleInitScript = ./init-deps.gradle;
}));
sourceDrvPath = builtins.unsafeDiscardOutputDependency source.drvPath;
nixShellKeep = lib.concatMapStringsSep " " (x: "--keep ${x}") keep;
in
writeTextFile {
name = "fetch-deps.sh";
executable = true;
# see pkgs/common-updater/combinators.nix
derivationArgs.passthru =
{ supportedFeatures = lib.optional silent "silent"; }
// lib.optionalAttrs (attrPath != null) { inherit attrPath; };
text = ''
#!${runtimeShell}
set -eo pipefail
export PATH="${lib.makeBinPath [
bubblewrap coreutils curl jq mitm-cache openssl
procps python3.pkgs.ephemeral-port-reserve
]}:$PATH"
outPath="${
# if this is an absolute path in nix store, use path relative to the store path
if lib.hasPrefix "${builtins.storeDir}/" (toString data)
then builtins.concatStringsSep "/" (lib.drop 1 (lib.splitString "/" (lib.removePrefix "${builtins.storeDir}/" (toString data))))
# if this is an absolute path anywhere else, just use that path
else if lib.hasPrefix "/" (toString data)
then toString data
# otherwise, use a path relative to the package
else "${dirOf pkg.meta.position}/${data}"
}"
pushd "$(mktemp -d)" >/dev/null
MITM_CACHE_DIR="$PWD"
trap "rm -rf '$MITM_CACHE_DIR'" SIGINT SIGTERM ERR EXIT
openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -sha256 -days 1 -out ca.cer -subj "/C=AL/ST=a/L=a/O=a/OU=a/CN=example.org"
export MITM_CACHE_HOST=127.0.0.1
export MITM_CACHE_PORT="''${mitmCachePort:-$(ephemeral-port-reserve "$MITM_CACHE_HOST")}"
export MITM_CACHE_ADDRESS="$MITM_CACHE_HOST:$MITM_CACHE_PORT"
# forget all redirects - this makes the lockfiles predictable
# not only does this strip CDN URLs, but it also improves security - since the redirects aren't
# stored in the lockfile, a malicious actor can't change the redirect URL stored in the lockfile
mitm-cache \
-l"$MITM_CACHE_ADDRESS" \
record \
--reject '\.(md5|sha(1|256|512:?):?)$' \
--forget-redirects-from '.*' \
--record-text '/maven-metadata\.xml$' >/dev/null 2>/dev/null &
MITM_CACHE_PID="$!"
# wait for mitm-cache to fully start
for i in {0..20}; do
ps -p "$MITM_CACHE_PID" >/dev/null || (echo "Failed to start mitm-cache" && exit 1)
curl -so/dev/null "$MITM_CACHE_ADDRESS" && break
[[ "$i" -eq 20 ]] && (echo "Failed to start mitm-cache" && exit 1)
sleep 0.5
done
trap "kill '$MITM_CACHE_PID'" SIGINT SIGTERM ERR EXIT
export MITM_CACHE_CERT_DIR="$PWD"
export MITM_CACHE_CA="$MITM_CACHE_CERT_DIR/ca.cer"
popd >/dev/null
useBwrap="''${USE_BWRAP:-${toString useBwrap}}"
if [ -n "$useBwrap" ]; then
# bwrap isn't necessary, it's only used to prevent messy build scripts from touching ~
bwrap \
--unshare-all --share-net --clearenv --chdir / --setenv HOME /homeless-shelter \
--tmpfs /home --bind /tmp /tmp --ro-bind /nix /nix --ro-bind /run /run --proc /proc --dev /dev \
--ro-bind ${toString path} ${toString path} --bind "$MITM_CACHE_CERT_DIR" "$MITM_CACHE_CERT_DIR" \
${builtins.concatStringsSep " " (map (x: "--setenv ${x} \"\$${x}\"") keep)} \
--setenv NIX_BUILD_SHELL bash ${bwrapFlags} ''${BWRAP_FLAGS:-} \
-- ${nix}/bin/nix-shell --pure --run ${gradleScript} ${nixShellKeep} ${sourceDrvPath}
else
NIX_BUILD_SHELL=bash nix-shell --pure --run ${gradleScript} ${nixShellKeep} ${sourceDrvPath}
fi${lib.optionalString silent " >&2"}
kill -s SIGINT "$MITM_CACHE_PID"
for i in {0..20}; do
# check for valid json
if jq -e 1 "$MITM_CACHE_DIR/out.json" >/dev/null 2>/dev/null; then
exec ${python3.interpreter} ${./compress-deps-json.py} "$MITM_CACHE_DIR/out.json" "$outPath"
fi
sleep 1
done
exit 1
'';
})
+21 -52
View File
@@ -1,8 +1,14 @@
{ lib, stdenv, runtimeShell, writeText, fetchFromGitHub, gradle_7, openjdk17, git, perl, cmake }:
{ lib, stdenv, runtimeShell, fetchFromGitHub, gradle_7, openjdk17 }:
let
pname = "fastddsgen";
version = "3.3.0";
gradle = gradle_7;
in
stdenv.mkDerivation {
inherit pname version;
src = fetchFromGitHub {
owner = "eProsima";
repo = "Fast-DDS-Gen";
@@ -11,65 +17,21 @@ let
hash = "sha256-oqbSIzsYUwD8bTqGKZ9he9d18EDq9mHZFoNUp0RK0qU=";
};
gradle = gradle_7;
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit src version;
nativeBuildInputs = [ gradle openjdk17 perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d);
gradle --no-daemon -x submodulesUpdate assemble
'';
# perl code mavenizes paths (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
'';
dontStrip = true;
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-YkVRp6TXI7/5O+u0DDYiCq7DITfGJ4lT/L4hT90JOL8=";
};
in
stdenv.mkDerivation {
inherit pname src version;
nativeBuildInputs = [ gradle openjdk17 ];
# use our offline deps
postPatch = ''
sed -ie '1i\
pluginManagement {\
repositories {\
maven { url "${deps}" }\
}\
}' thirdparty/idl-parser/settings.gradle
sed -ie "s#mavenCentral()#maven { url '${deps}' }#g" build.gradle
sed -ie "s#mavenCentral()#maven { url '${deps}' }#g" thirdparty/idl-parser/build.gradle
'';
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
buildPhase = ''
runHook preBuild
__darwinAllowLocalNetworking = true;
export GRADLE_USER_HOME=$(mktemp -d)
# Run gradle with daemon to make installPhase faster
gradle --offline -x submodulesUpdate assemble
runHook postBuild
'';
gradleFlags = [ "-x" "submodulesUpdate" ];
installPhase = ''
runHook preInstall
gradle --offline -x submodulesUpdate install --install_path=$out
gradle install --install_path=$out
# Override the default start script to use absolute java path
cat <<EOF >$out/bin/fastddsgen
@@ -81,6 +43,13 @@ stdenv.mkDerivation {
runHook postInstall
'';
postGradleUpdate = ''
cd thirdparty/idl-parser
# fix "Task 'submodulesUpdate' not found"
gradleFlags=
gradle nixDownloadDeps
'';
meta = with lib; {
description = "Fast-DDS IDL code generator tool";
mainProgram = "fastddsgen";
+93
View File
@@ -0,0 +1,93 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://repo.maven.apache.org/maven2": {
"com/ibm/icu#icu4j/72.1": {
"jar": "sha256-PfVyskCmjRO1zXeK0jk+iF0mQRQ0zY8JisWYfqLmTOM=",
"pom": "sha256-Pe8rKa9KGa2AXLFTBWklqJqQP5L77hre4S7S/BTETug="
},
"org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
"jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
"pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
},
"org/antlr#ST4/4.3.4": {
"jar": "sha256-+SesOExG10n4texolypTrtIeADE1CSmWFu23O/oV/zM=",
"pom": "sha256-nnwfPkiZGUQOjBMInlljcp1bf4D3AjO/uuMJxkmryj4="
},
"org/antlr#antlr-master/3.5.3": {
"pom": "sha256-6p43JQ9cTC52tlOL6XtX8zSb2lhe31PzypfiB7OFuJU="
},
"org/antlr#antlr-runtime/3.5.3": {
"jar": "sha256-aL+fWjPfyzQDNJXFh+Yja+9ON6pmEpGfWx6EO5Bmn7k=",
"pom": "sha256-EymODgqvr0FP99RAZCfKtuxPv6NkJ/bXEDxDLzLAfSU="
},
"org/antlr#antlr4-master/4.13.0": {
"pom": "sha256-IiBv17pJUVLlJvUO/sn8j03QX8tD38+PJk6Dffa2Qk8="
},
"org/antlr#antlr4-runtime/4.13.0": {
"jar": "sha256-vX97XQe8CwR/EJFbMspLsd6eV9gEkJiILkRTyIwHal0=",
"pom": "sha256-GY40+1rHWXsaPDGTAwHgjOlB5cpQQRbdVKOnU3iRSn8="
},
"org/antlr#antlr4/4.13.0": {
"jar": "sha256-HA3rJpklFJIvuLmWGRmPCcMveYQkbcatHDu8SYPeHTU=",
"pom": "sha256-OdLSWEk8QnvL1EAGP34PQqt4j6wVp4wP73RK5hk2d8k="
},
"org/apiguardian#apiguardian-api/1.1.0": {
"jar": "sha256-qarp/4rj4XoqGPeRdegrFiZ8JG+708qd+7spCwjc/dQ=",
"pom": "sha256-qUW5y1zZt3sscRhE5lnEPsBw71nZ9Qn6n0wYYbSGJxE="
},
"org/junit/jupiter#junit-jupiter-api/5.5.2": {
"jar": "sha256-JJov29OTGYfAKY0AygjtJISW4PwR4EY8CMT4LgzHmxw=",
"pom": "sha256-dqFdgNhYehpaOlsULSzrNzBPvZEZi6QlSG5X920IiGA="
},
"org/junit/jupiter#junit-jupiter-engine/5.5.2": {
"jar": "sha256-bXd9qYduLvegM26PCY+NdKWmT4EKo6Si9fO3Zs6Xg3s=",
"pom": "sha256-Ay/vTiVjCE05fq5IGjiAEPRDQBr2JSv9N312MH9vi/4="
},
"org/junit/platform#junit-platform-commons/1.5.2": {
"jar": "sha256-/ESv38DyDIXnGmbnlDKBrvO8Hg/WLS1po2y2kB5oLBA=",
"pom": "sha256-O9DU3tYyqK+MpYf7Z2QBnedxsda8uJrNViQ1oQCfqto="
},
"org/junit/platform#junit-platform-engine/1.5.2": {
"jar": "sha256-/yC6StjADvF7rvnFVRL5wC2aaHQPfxrAGppqoCOZMfg=",
"pom": "sha256-LUuVVVwh4IXrwd299C156x1VZA3Bk7G35hACQP0vGJ8="
},
"org/openjdk/nashorn#nashorn-core/15.4": {
"jar": "sha256-b4FuhN/WOoHU6qeCnAgze7r/PsaD/zv2u9kNAXoA3G8=",
"pom": "sha256-aan3ueR+zPR7vO5yGtT7A5yn2bZQF05thgKq23flrCM="
},
"org/opentest4j#opentest4j/1.2.0": {
"jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=",
"pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ="
},
"org/ow2#ow2/1.5": {
"pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs="
},
"org/ow2/asm#asm-analysis/7.3.1": {
"jar": "sha256-Rrio79S5T6y1q0s1r+MO4FRq56Q9LGTm3vVsLxaP76U=",
"pom": "sha256-be7rsjbIAyhFrcO3XuWrEiPr1T5M8+hTQsMTvaBtVH8="
},
"org/ow2/asm#asm-commons/7.3.1": {
"jar": "sha256-h82Ls8a/a8uzP8pIBgxQZfZuv2o9fem/GL/1G88Vbrw=",
"pom": "sha256-2jEe/3FqEUJ8JCS1iFvR+0lC2QNml2zW1aVae6DfWkA="
},
"org/ow2/asm#asm-tree/7.3.1": {
"jar": "sha256-+RpKiqhoxcRmW7T9E0AZqR+fi5IWUn+6KV48i1Qit4s=",
"pom": "sha256-yrFmzVNdMJgzasVcG2du7WYxZbWG+gPXmWBSO+0f8Ew="
},
"org/ow2/asm#asm-util/7.3.1": {
"jar": "sha256-GCEoWSdC7UiDrIK/IF8Te2v74SNMaOb+sTdZ51qFtyk=",
"pom": "sha256-DzYMMOEoeTfh1C/txvrWmCT9Vl5P//7RQS7I2HMD+8o="
},
"org/ow2/asm#asm/7.3.1": {
"jar": "sha256-L2fhHO7IGevYjd7lMAq6aZscurLiDCLpfPAn076TlZs=",
"pom": "sha256-6s3NUA1lJ+ljiI2u2jGSPkvCQaJUJNzDisyi5gHn/eI="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}
+8 -59
View File
@@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, openjdk, openjfx, gradle_7, makeDesktopItem, perl, writeText, makeWrapper }:
{ lib, stdenv, fetchFromGitHub, openjdk, openjfx, gradle_7, makeDesktopItem, makeWrapper }:
let
jdk = openjdk.override (lib.optionalAttrs stdenv.isLinux {
enableJavaFX = true;
@@ -17,57 +17,6 @@ let
gradle = gradle_7;
deps = stdenv.mkDerivation {
name = "${pname}-deps";
inherit src;
nativeBuildInputs = [ jdk perl gradle ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d);
gradle --no-daemon build
'';
# Mavenize dependency paths
# e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.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
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "0d6qs0wg2nfxyq85q46a8dcdqknz9pypb2qmvc8k2w8vcdac1y7n";
};
# Point to our local deps repo
gradleInit = writeText "init.gradle" ''
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
clear()
maven { url '${deps}' }
}
}
}
logger.lifecycle 'Replacing Maven repositories with ${deps}...'
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
clear()
maven { url '${deps}' }
}
}
repositories {
clear()
maven { url '${deps}' }
}
}
}
'';
desktopItem = makeDesktopItem {
name = pname;
desktopName = pname;
@@ -79,16 +28,16 @@ let
in stdenv.mkDerivation rec {
inherit pname version src;
nativeBuildInputs = [ jdk gradle makeWrapper ];
nativeBuildInputs = [ gradle makeWrapper ];
buildPhase = ''
runHook preBuild
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
export GRADLE_USER_HOME=$(mktemp -d)
gradle --offline --no-daemon --info --init-script ${gradleInit} build
__darwinAllowLocalNetworking = true;
runHook postBuild
'';
doCheck = true;
installPhase = ''
runHook preInstall
+177
View File
@@ -0,0 +1,177 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://plugins.gradle.org/m2": {
"com/github/javaparser#javaparser-core/3.6.23": {
"jar": "sha256-Jd6Y4JulJ3cBiHFxQWx1BmsMkK4QyER5wIy62OwC2ko=",
"pom": "sha256-uS4cfUmFkaRUByoI4abESgjvT5YyH772jlPnQagyO84="
},
"com/github/javaparser#javaparser-parent/3.6.23": {
"pom": "sha256-RrplfMwXfcIrmXLTDq3vB+pK2Y7C2ZJ4mi2pyMaOEMY="
},
"com/github/javaparser#javaparser-symbol-solver-core/3.6.23": {
"jar": "sha256-xgZHY43ddl13bN0jDhzWlmT5BYVrnTUgHcpZFcHhhLM=",
"pom": "sha256-IxlhRqtmo5sFxOIsoQ3rcpbBvmPuI5Vpax21wO7ayiQ="
},
"com/github/javaparser#javaparser-symbol-solver-logic/3.6.23": {
"jar": "sha256-iUKL5AoLtSXiC5BwTUzmhE/Min2ePxCaSmIckIICKSo=",
"pom": "sha256-+c70XJwzh7J95a0unepGR18S5nLrMTuo2hl9n5KTuUs="
},
"com/github/javaparser#javaparser-symbol-solver-model/3.6.23": {
"jar": "sha256-Oyot02mnKEgZJIkaRC7gHztEFr9a84kGv+CXAEEHbRs=",
"pom": "sha256-l9XodywQqD1zerqsIXaufDIYN2FzS1Nshd66kOdsfV0="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/google/errorprone#error_prone_annotations/2.0.18": {
"jar": "sha256-y0z62HC/VjoHGZ8+vqV2Pw3sRA/NoLMYZAsf6qeIZWs=",
"pom": "sha256-kUQScZLW9hLCNmgl3OrrI7DVMTC4Pgvx/+EH0UcKhIc="
},
"com/google/errorprone#error_prone_parent/2.0.18": {
"pom": "sha256-zxSZVSebB9TxHoF5hcEWSmnpMNc9t0QbQ6bvU7vShsQ="
},
"com/google/gradle#osdetector-gradle-plugin/1.6.1": {
"jar": "sha256-N/Sm2S8lh2Ls9i/XcYZSK77LXaGyDevHj4NhuFbfDac=",
"pom": "sha256-i4MRE6lOCXvEnh7KTTJ/0iNAVwRU1Ey7ccJSuZ5sTD8="
},
"com/google/guava#guava-parent/23.4-jre": {
"pom": "sha256-EO8XbFPNj5Wd7Wr3QFFumbX8IKogHjqRmLuSGUpqOTQ="
},
"com/google/guava#guava/23.4-jre": {
"jar": "sha256-JmKjPwn+urUCPdv1J4DLjSpuDEmiTbgJStwOlEgBqBA=",
"pom": "sha256-Iuu7g72VwApr6oeMtbm7imAuoSpmRnsM+k+XtBTqXQ4="
},
"com/google/j2objc#j2objc-annotations/1.1": {
"jar": "sha256-KZSn63jycQvT07+2ObLJTiGc7awNTQhNUW54wW3d7PY=",
"pom": "sha256-8MmMVx6Tp8tN0Y3w+jCPCWPnoGIKwtQkTmHnCdA61r4="
},
"kr/motd/maven#os-maven-plugin/1.6.0": {
"jar": "sha256-HNnWwIn5ZnEbx9lWSXaz/+ZRAmFqUkdoHMIwlc+90aw=",
"pom": "sha256-zRUfUQeKRnd7UPgoO4gqis4MCLu+F0RrP56mPIEi/Kg="
},
"org/beryx#badass-jlink-plugin/2.6.5": {
"jar": "sha256-WXeNmHfVtqkDyRN2ZfzzSoHFprSdPDpxt70FDJVSWrA=",
"pom": "sha256-ytOd1e29JuGnOxYHCShfkLTAjwmT85n2Qsley3Bs4LQ="
},
"org/beryx/jlink#org.beryx.jlink.gradle.plugin/2.6.5": {
"pom": "sha256-n3jKnoCItgThUQZCBW3b+WsQZ+zn/SZuZwc/y/dsW/Y="
},
"org/codehaus#codehaus-parent/4": {
"pom": "sha256-a4cjfejC4XQM+AYnx/POPhXeGTC7JQxVoeypT6PgFN8="
},
"org/codehaus/mojo#animal-sniffer-annotations/1.14": {
"jar": "sha256-IGgyC9a610TDZzqwSPZ+ML749RiZb6OAAzVWYAZpkF0=",
"pom": "sha256-GHnxmgWZHj7ZWRC5ZokzM5awxGeiFdxNH5ABhAS3KiY="
},
"org/codehaus/mojo#animal-sniffer-parent/1.14": {
"pom": "sha256-9RVQoGsUEL1JYssOcd8Lkhpgp+9Hv6nEgloUvnIxbuo="
},
"org/codehaus/mojo#mojo-parent/34": {
"pom": "sha256-Pjldb7xDwJo3dMrIaUzlJzmDBeo/1UktgOJa8n04Kpw="
},
"org/javamodularity#moduleplugin/1.4.0": {
"jar": "sha256-DsRpRPMp5s7qu+4mT39lW3VOz+qXti1zeROvm/cnWkk=",
"pom": "sha256-ys6MmZmVjsvuHC00/yZVxHvgOrtlFInDustCNl+e33s="
},
"org/javassist#javassist/3.23.1-GA": {
"jar": "sha256-0rFMCXY1IzdGJPMqCdbjH8sXQIKpet21ri1YC0dP2AY=",
"pom": "sha256-TBjLCfVKXn3uusVCUbXsZaXgSuRgZ/Mb3OMzwvDujJk="
},
"org/openjfx#javafx-plugin/0.0.7": {
"jar": "sha256-cMNMLi/MFLDiEkJuYhbX7xktB+i4fw3O8y1drZ+6tK0=",
"pom": "sha256-JVTXrl0EsYMJcp5LkHmy8iQKXTfr1GxrC97HZ8q/svk="
},
"org/openjfx/javafxplugin#org.openjfx.javafxplugin.gradle.plugin/0.0.7": {
"pom": "sha256-SybdZ/HqOekf+cyybnONJwR1DlhFYYajVz9QadOIe1U="
},
"org/ow2#ow2/1.5": {
"pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs="
},
"org/ow2/asm#asm-analysis/7.0": {
"jar": "sha256-6YH49lDE2QC7AzZQsY4SL6axYerdX4iXjQh1H3LuhHQ=",
"pom": "sha256-xrVEd+nVuuHnrd/y4ky/kqr/L/CP1rwFlsOTPD+twss="
},
"org/ow2/asm#asm-commons/7.0": {
"jar": "sha256-/tNI7wWVjj6EajrAdKEq9feTbvPSHORKYsT6CKdxkn0=",
"pom": "sha256-9MaXiGzbSlskcgVKC140Nx6bSOYgvkDD7Ujh9LbVHrQ="
},
"org/ow2/asm#asm-tree/7.0": {
"jar": "sha256-z9egh0+d42qZnBJ/7q37/m4E1Kce6VTXrz2FPwvkimw=",
"pom": "sha256-05590S9P9TWgg50ZScOcdkQ1WkRwIgyUt2pcFoxXoGg="
},
"org/ow2/asm#asm-util/7.0": {
"jar": "sha256-dfu8pEDvRj9BwrCrGoCr5n6RCsSG2mCnhjy8tbrn4UU=",
"pom": "sha256-4HvOS7VdWgb0wQ2RL8ne6Km5wE7FSbu4208g2zRwb3U="
},
"org/ow2/asm#asm/7.0": {
"jar": "sha256-uI72ZGizyXitDJf9bpCXnlYVW0rGkIm6ekTpqn/+ms8=",
"pom": "sha256-g/ZbEIPVzk+Lp/lUXP6f8XgkWJyafMgsOkaVgB5PX2g="
},
"org/slf4j#slf4j-api/1.7.25": {
"jar": "sha256-GMSgCV1cHaa4F1kudnuyPSndL1YK1033X/OWHb3iW3k=",
"pom": "sha256-fNnXoLXZPf1GGhSIkbQ1Cc9AOpx/n7SQYNNVTfHIHh4="
},
"org/slf4j#slf4j-parent/1.7.25": {
"pom": "sha256-GPXFISDbA26I1hNviDnIMtB0vdqVx1bG9CkknS21SsY="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
},
"https://repo.maven.apache.org/maven2/org": {
"openjfx#javafx-base/11.0.2": {
"jar": "sha256-Hy+IiY9U8aKeK1jKrrChEFBZigdSTyls2a72wAu5PQ8=",
"pom": "sha256-F/QWaIULgDukqDp+LZYDm2nwcniLvbqI4J/sgVegMpw="
},
"openjfx#javafx-base/11.0.2/linux": {
"jar": "sha256-hMNW8TRL/TqnS1WiOgzgeLTF5qm+iFPajeQV5ez81Bs="
},
"openjfx#javafx-controls/11.0.2": {
"jar": "sha256-YBBsLPUqfzHsobjQipUs9Lk7Wx2FSSp1XpeggIpp/5o=",
"pom": "sha256-WI5hxbroHQl2C2DYz7E7ERtC09RwwKCpnaBqtq/XjQM="
},
"openjfx#javafx-controls/11.0.2/linux": {
"jar": "sha256-wXIELPTOd/xon61lWSVrEbmcb7ic5f0bM9/DRLhqCpc="
},
"openjfx#javafx-fxml/11.0.2": {
"pom": "sha256-hqY8PXMIR6kmAEQ3YosWH88GXj0vrzSjwTjK4j3FDxg="
},
"openjfx#javafx-fxml/11.0.2/linux": {
"jar": "sha256-IsRLJbxYjfZiPgT6EnuLyCQj8flI6a/ySFr0pokOL5Q="
},
"openjfx#javafx-graphics/11.0.2": {
"jar": "sha256-3ukAoYanC66CZoRcVrA62aJOaXy1K6PaQhxgSQibNjg=",
"pom": "sha256-5O3+os2WNa3JLTqbp81ew6VqsbF+pKJWDRIr+97gU8g="
},
"openjfx#javafx-graphics/11.0.2/linux": {
"jar": "sha256-+yCVZOUN49jQVdmzzWnUahbT7xjsVRYvwTANFAip1QI="
},
"openjfx#javafx-media/11.0.2": {
"jar": "sha256-buLos8kx27mNmLuVqoIDP9tvQ839Vp5gYT21g0Yp0CU=",
"pom": "sha256-ea0fX/vvejwnrd8jvXYICIN23mLl1w/tQRKKMu0f0Ps="
},
"openjfx#javafx-media/11.0.2/linux": {
"jar": "sha256-SQgWhhxhQ6jpPDBRreX/ZcJ8h5zE0lSZmBQ3RnZDF9Y="
},
"openjfx#javafx-swing/11.0.2": {
"pom": "sha256-huvlJlgb5jeG3hJxPMFL23wVAwzPacjJ7lluwyUtB7M="
},
"openjfx#javafx-swing/11.0.2/linux": {
"jar": "sha256-5WLb2tBbKGTo3F75chsMmiyxcxWdpElqJ4K4zR5lsUw="
},
"openjfx#javafx-web/11.0.2": {
"pom": "sha256-VPT4QZplXM2lGzDG+canNTR6h9myctpnwMndXps/UcU="
},
"openjfx#javafx-web/11.0.2/linux": {
"jar": "sha256-FWUzbTr1okARbBPkPepcPZpnSWMnuCj6EL9n6unlsa8="
},
"openjfx#javafx/11.0.2": {
"pom": "sha256-vGfwPQ2VsXURSpjv/7E+RORq2eOsGe/w6OBjpudnWtg="
}
}
}
+72 -95
View File
@@ -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;
};
}
+294
View File
@@ -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="
}
}
}
@@ -14,7 +14,7 @@ callPackage ./generic.nix rec {
hash = "sha256-1msmjKDEd/pFMqLB4vJgR6GPC9z4CnNew2hlemLw2d0=";
};
depsHash = "sha256-vihoR0bPh7590sRxeYJ1uuynNRxtRBuiFUrdmsRNUJc=";
depsPath = ./deps.json;
passthru.tests = {
shattered-pixel-dungeon-starts = nixosTests.shattered-pixel-dungeon;
+252
View File
@@ -0,0 +1,252 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://oss.sonatype.org/content/repositories/snapshots/com/badlogicgames": {
"gdx-controllers#gdx-controllers-core/2.2.4-20231021.200112-6/SNAPSHOT": {
"jar": "sha256-Gdz2J1IvDJFktUD2XeGNS0SIrOyym19X/+dCbbbe3/U=",
"pom": "sha256-90QW/Mtz1jbDUhKjdJ88ekhulZR2a7eCaEJoswmeny4="
},
"gdx-controllers#gdx-controllers-desktop/2.2.4-20231021.200114-6/SNAPSHOT": {
"jar": "sha256-4mhLijZwQHk2pP5qXIIzrsO9CwNC3CDti/5szclkVa8=",
"pom": "sha256-10+zD8flpKIPzji5NFgtYcwE5O74hSzzvvqBh84wLf4="
},
"gdx-controllers/gdx-controllers-core/2.2.4-SNAPSHOT/maven-metadata": {
"xml": {
"groupId": "com.badlogicgames.gdx-controllers",
"lastUpdated": "20231021200112"
}
},
"gdx-controllers/gdx-controllers-desktop/2.2.4-SNAPSHOT/maven-metadata": {
"xml": {
"groupId": "com.badlogicgames.gdx-controllers",
"lastUpdated": "20231021200114"
}
}
},
"https://repo.maven.apache.org/maven2": {
"com/badlogicgames/gdx#gdx-backend-lwjgl3/1.12.1": {
"jar": "sha256-B3OwjHfBoHcJPFlyy4u2WJuRe4ZF/+tKh7gKsDg41o0=",
"module": "sha256-9O7d2ip5+E6OiwN47WWxC8XqSX/mT+b0iDioCRTTyqc=",
"pom": "sha256-IRSihaCUPC2d0QzB0MVDoOWM1DXjcisTYtnaaxR9SRo="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.12.1": {
"pom": "sha256-cAGFUunqi4o21kDX8V86OT6aMmXjJUqyMHLHhUWLBm4="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.12.1/natives-desktop": {
"jar": "sha256-1g5ZN21QWpk+yLogowR3rwaQKx4pJ/8uN17/2/Ql2UE="
},
"com/badlogicgames/gdx#gdx-freetype/1.12.1": {
"jar": "sha256-rbjskAa7YdrW0pdslaHeGN5eGmUULRilgH0OUkyL8WU=",
"module": "sha256-HG9UGDxQFjSvGqLrKEkE7YnVvqtURs7FyqWwunHdXKE=",
"pom": "sha256-pLaMZBcEufzo+xszIlcUPJSYJJQg1uY6rm7tb6fHyT8="
},
"com/badlogicgames/gdx#gdx-jnigen-loader/2.3.1": {
"jar": "sha256-ZJDdoiWmHHYCwnu+xOSBE3/1lfjOCy3bpBTww0Bq7mA=",
"module": "sha256-nNWFK9nlHTbRJxrypGzZfOwk5XEHblQTbsmtNxhGua8=",
"pom": "sha256-7e2XZPzSpbw8peeAUEHppiAZ+ovkNLWZ8D1JR+KkQng="
},
"com/badlogicgames/gdx#gdx-platform/1.12.1": {
"pom": "sha256-bZhlcVVYfr/+qIAG20v12CgcyUetGduKZP28TnOzkZc="
},
"com/badlogicgames/gdx#gdx-platform/1.12.1/natives-desktop": {
"jar": "sha256-P+utqUwiNjYQkXufuMJLD55h4+bGnHO9DTUDhYTA4e0="
},
"com/badlogicgames/gdx#gdx/1.12.1": {
"jar": "sha256-jTIJ6UghH96c2swrAfrO0yPlSKpS73jlx2CEWoh0aXA=",
"module": "sha256-7Th6fCSDcEBGAyOsXYZIZwKAPw88K1h448x4If03n6o=",
"pom": "sha256-Qg9vfLMYtQsglKsHYme67w6bBlI0yHqWCqkvtCEYpZY="
},
"com/badlogicgames/jamepad#jamepad/2.26.5.0": {
"jar": "sha256-sO+RC6Uxyt/gQYSWow2Hy6xGAhsGJUf1tZR+A1Q1cRo=",
"module": "sha256-KGmFPVwJdU2vuY9u6veZLc2Q6K3uFxL/bgjmUgBKflA=",
"pom": "sha256-Up7mQ8lbw+6SfuSnRqwFaOQSnbb5dscD82IjN9/6Inc="
},
"com/badlogicgames/jlayer#jlayer/1.0.1-gdx": {
"jar": "sha256-qrze3C4/pBxOE4hwUj10MzfxiZMQgGMLoaIoVTjNAPs=",
"pom": "sha256-nGCRe2JnOIvFeWpSDswPF8ed2hVGUM0FQdTEE4ghv0k="
},
"org/jcraft#jorbis/0.0.17": {
"jar": "sha256-4GfymjcBQmtn7ZcwNpScbljKW7U+73JAsuceKG0lKp4=",
"pom": "sha256-GN47DZMq+Zgy202DL2g1B/vdWgsMJN1oDoTOb1cYLiQ="
},
"org/json#json/20170516": {
"jar": "sha256-gT835IIPGFTopOtPgN+UvxsfLsbDtyaS8jq5pVYlavY=",
"pom": "sha256-ZMFVQ6PV2yeaIK6w36A0oqecIVn4zUAd6kj/DyNMGN0="
},
"org/lwjgl#lwjgl-glfw/3.3.3": {
"jar": "sha256-vtx1f9KxslUUbbJrdLnL0fz1ZEuJtHsQT6chx0FgQlk=",
"pom": "sha256-fJuPWGrEz36esvNnrphUzK7i2Nf2LiOHxJ0sGvrtirM="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux": {
"jar": "sha256-uDBgYrF3QfNCaQiHUUIfGsIaWXv7vQxsYSJjAc3nRLg="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux-arm32": {
"jar": "sha256-3Z1NZxT8k1nUfdoNR8HYyLvkmQG393wj/Kepyb/CmFg="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux-arm64": {
"jar": "sha256-zGE5yD95nQ4UhOpMIByM5tV8jHokSlIXEWqAax60F5s="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-macos": {
"jar": "sha256-qJtVNirsnlo7vRNkYBu4WxR9trrmiJHKmiMtbPstVew="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-macos-arm64": {
"jar": "sha256-uUUdZ7wXyQb7goKlUi8liwIvMFaeC2LaAB1ZChe0Xhk="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-windows": {
"jar": "sha256-mBVbRR38b1hQid7HehL5wFeJxNzrjaRy+dMIFgEBpw0="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-windows-x86": {
"jar": "sha256-lkZVXUBfDSo6lXa1BvV8FjKvZPaaiuWMsESK4EqceCQ="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3": {
"jar": "sha256-6Z4xJp5meKS/xi7yTFCkgcAcvdAEhh7Omlm6EnaMZRY=",
"pom": "sha256-IJuMfX+cGXLVyNX5zhmjUW/5BxRD0N+Khm2hNDvS46k="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux": {
"jar": "sha256-TkoT1wFdQmBbvPfvn66tRt6sZAnkN3qO1K6oFfFGNLM="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux-arm32": {
"jar": "sha256-5IM/wmIeLnMCBXPmKZcJIPHNHfmE/hyc7bszSNzDeG8="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux-arm64": {
"jar": "sha256-44PVJBwNR/QBKnU+C//+Ra/DDQBiGbm9iQN1ahA3ibU="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-macos": {
"jar": "sha256-ICTapcaqQHhmQUi3OQ+4sjHyNw6g4X1AeJTbp+nlZOw="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-macos-arm64": {
"jar": "sha256-Y5Vuokb/ZKqpzg4dbjzK1obPv5N9H81suNX0T2OCFgw="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-windows": {
"jar": "sha256-mUnI5JmYvQyHjYQohAEfE4PihRAFCR4LK897dnG4SOs="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-windows-x86": {
"jar": "sha256-2bTgbiqEIFWD+wVEDSI4OFqRywGgYN2x03YiOuIl8Uo="
},
"org/lwjgl#lwjgl-openal/3.3.3": {
"jar": "sha256-rg6Cdnys8Ikh9Xj7qdhHU93rAM6toFEKK0qIK+KPv5U=",
"pom": "sha256-f6aiEbvk5FuCmHU31kN6e1KUM07TrBbLhElV70PV5w8="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux": {
"jar": "sha256-kDD+2SinHqwv30zhZDzE7HJNhxDjtDe9znUL3J6YKyo="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux-arm32": {
"jar": "sha256-xyXRfh5GJsf0O29NCKRnSW4JECXnHxn0+x8xN8Tabmc="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux-arm64": {
"jar": "sha256-q/OSSHs1h9qJtlUlAAjfSjYKL9Xh7gCr1h9/UpFSBaE="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-macos": {
"jar": "sha256-gmSuMqyfQTxPRQGGPF9udXam/avcXQUtMoG7rMM3fx0="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-macos-arm64": {
"jar": "sha256-OZJGOhao3xn2MRewiD6tDtko3U3wF/VbXk4St6JwSJo="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-windows": {
"jar": "sha256-49p8PbJcgduNQl7x49v6FQALBA1mnwCLCBPJQzOslsg="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-windows-x86": {
"jar": "sha256-hSyk42sf390++2zkLwi30PlXsExLz714BXsMeZ85kjE="
},
"org/lwjgl#lwjgl-opengl/3.3.3": {
"jar": "sha256-UGLadQ5ffsieJ+i2e31A+oxLFokBWeNfgoEWzmyOyh4=",
"pom": "sha256-RDkltWQq0xjUnfrpe66c3QnkkCWzAqlLAQf8iIm+bN0="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux": {
"jar": "sha256-2COpLGooELURLaME3MarzUyxAnBvdPfpNKIjzqIFElA="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux-arm32": {
"jar": "sha256-BbGiXD+3Ipdao78siIQ3I9puEFmhktVo3e/AGkV/qkc="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux-arm64": {
"jar": "sha256-Cyt1Mn1HRRY0EjNI1VUDrgPlFVGwyIea6QyOS04aT5w="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-macos": {
"jar": "sha256-TBBz0OWumZZtDvHWp3lXWEdtJH2TD9xewYZeOMuEfM4="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-macos-arm64": {
"jar": "sha256-8bPx3oP5c6uuOkvDLbWyKa5dVcyA27xffIQYEv4gtf4="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-windows": {
"jar": "sha256-9F5fYFlrA7Lj2LmKEjyFXr0LUVTIFV3CpWuJDMyQdHc="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-windows-x86": {
"jar": "sha256-nZnSA95OMShsrnU6HfuYE2fJNzTxlEZEunG+Uhs68sw="
},
"org/lwjgl#lwjgl-stb/3.3.3": {
"jar": "sha256-DP96pG6p1w/MIIVwFSk+qA+/Ia3Kw0YAyE2puBpEypM=",
"pom": "sha256-jR2kP3mIdcV5yokH95rk/D6tFVQl6pVVxvqqsT1Q5J0="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux": {
"jar": "sha256-xEiQaN3G3ESxAwcZQ/gBotB2Y01LdNtHCSf4SjCCGeE="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux-arm32": {
"jar": "sha256-/WYDpBauUJJiAxV7ajQOiPX60GyAjvQcsDUBcTn+Lzw="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux-arm64": {
"jar": "sha256-F/DPG45SLuprS5fBkHCznlT1+H7YT7iVhXR+QPkF4ds="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-macos": {
"jar": "sha256-MpN6NS20usPpKqG72uKYipWOS5B6tbVXdky6gtsgupc="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-macos-arm64": {
"jar": "sha256-sfZYdf2d3SgJe+YHYCniuPq168FibiHO92FhHfynFcI="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-windows": {
"jar": "sha256-0Sq4Zv4RaekkrFtNa7d2eueEKp/IZSeYaCwAabtz/PI="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-windows-x86": {
"jar": "sha256-RkJORUWXM7JsSnsN0mlSCctpONr6OpASxqVoLJSixA4="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3": {
"jar": "sha256-7gUVBU7hmj9AiEJv7p2HnrLuZXsH5QZOTiyFH2rc8Us=",
"pom": "sha256-LBvRGfQeZaVEYT+R5xYOAGuBkW5zpu919UkkLMTzvvI="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-linux": {
"jar": "sha256-oHb6BaTRdHYuq1hS7nLCnRSrEKVlTyf7AGZO8bUsDAU="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-linux-arm64": {
"jar": "sha256-gNNOdtFcBJUXRBSIMpCDkdqLFPaKAwtksLQHAqNzkdc="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-macos": {
"jar": "sha256-RGXdRv35MJwM5kw1KaDaZ5L7ZxHDKB6MXbqTXmqb/Dw="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-macos-arm64": {
"jar": "sha256-b32XlBRlHjQ9yLiz+q3g4tnk/fmdVl1WI+EtQNuuSiI="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-windows": {
"jar": "sha256-AihZEfHIgXNfpNDrFB/+qv2aK7k0nZj3wfuKnLScD1g="
},
"org/lwjgl#lwjgl/3.3.3": {
"jar": "sha256-3Jx7LUjoOW1oiV+JAv+gHkYlPeRN/pJ1M/8JRX6/7sQ=",
"pom": "sha256-gx1Gb8AWKUUrRhNzEeFYI8CWx9b66VKYxke5+/XWgfQ="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux": {
"jar": "sha256-5mNzjFGaBvbWWYgvqOTgmvfxDpIZKe5cxUp1h/Yu1Mk="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux-arm32": {
"jar": "sha256-cNP3SNRawTWDKplV6lGcpv7Tqn0dR+tnR8uHk2hGyUE="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux-arm64": {
"jar": "sha256-OXp5pdiQcobUAY0CbLw3NYxTu7aqvDoVNPGf8jt/hVg="
},
"org/lwjgl#lwjgl/3.3.3/natives-macos": {
"jar": "sha256-ApTuTi3X72vvr/r8C7maKom3YHC1zYMC89dWJLZ4bQM="
},
"org/lwjgl#lwjgl/3.3.3/natives-macos-arm64": {
"jar": "sha256-UKycoJ5Z8FHcrPTcCyFF6ekW5qsUYzt1aUIxv+WTFKg="
},
"org/lwjgl#lwjgl/3.3.3/natives-windows": {
"jar": "sha256-XuY6GRh+/lu4dH/ST3sTJX2zSN9a1kEROjaV5D8hOVk="
},
"org/lwjgl#lwjgl/3.3.3/natives-windows-x86": {
"jar": "sha256-IqIjOCYlVOteEzyEQd7u2shNoILrO6yE0DLaT682l0k="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}
@@ -2,7 +2,7 @@
, fetchFromGitHub
}:
callPackage ./generic.nix rec {
callPackage ../generic.nix rec {
pname = "experienced-pixel-dungeon";
version = "2.18";
@@ -13,13 +13,6 @@ callPackage ./generic.nix rec {
hash = "sha256-jOKHBd9LaDn3oqLdQWqAcJnicktlbkDGw00nT8JveoI=";
};
postPatch = ''
substituteInPlace build.gradle \
--replace-fail "gdxControllersVersion = '2.2.4-SNAPSHOT'" "gdxControllersVersion = '2.2.3'"
'';
depsHash = "sha256-PyBEhlOOVD3/YH4SWs1yMkdg3U96znk1/VV6SAr8S30=";
desktopName = "Experienced Pixel Dungeon";
meta = {
@@ -0,0 +1,252 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://oss.sonatype.org/content/repositories/snapshots/com/badlogicgames": {
"gdx-controllers#gdx-controllers-core/2.2.4-20231021.200112-6/SNAPSHOT": {
"jar": "sha256-Gdz2J1IvDJFktUD2XeGNS0SIrOyym19X/+dCbbbe3/U=",
"pom": "sha256-90QW/Mtz1jbDUhKjdJ88ekhulZR2a7eCaEJoswmeny4="
},
"gdx-controllers#gdx-controllers-desktop/2.2.4-20231021.200114-6/SNAPSHOT": {
"jar": "sha256-4mhLijZwQHk2pP5qXIIzrsO9CwNC3CDti/5szclkVa8=",
"pom": "sha256-10+zD8flpKIPzji5NFgtYcwE5O74hSzzvvqBh84wLf4="
},
"gdx-controllers/gdx-controllers-core/2.2.4-SNAPSHOT/maven-metadata": {
"xml": {
"groupId": "com.badlogicgames.gdx-controllers",
"lastUpdated": "20231021200112"
}
},
"gdx-controllers/gdx-controllers-desktop/2.2.4-SNAPSHOT/maven-metadata": {
"xml": {
"groupId": "com.badlogicgames.gdx-controllers",
"lastUpdated": "20231021200114"
}
}
},
"https://repo.maven.apache.org/maven2": {
"com/badlogicgames/gdx#gdx-backend-lwjgl3/1.12.1": {
"jar": "sha256-B3OwjHfBoHcJPFlyy4u2WJuRe4ZF/+tKh7gKsDg41o0=",
"module": "sha256-9O7d2ip5+E6OiwN47WWxC8XqSX/mT+b0iDioCRTTyqc=",
"pom": "sha256-IRSihaCUPC2d0QzB0MVDoOWM1DXjcisTYtnaaxR9SRo="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.12.1": {
"pom": "sha256-cAGFUunqi4o21kDX8V86OT6aMmXjJUqyMHLHhUWLBm4="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.12.1/natives-desktop": {
"jar": "sha256-1g5ZN21QWpk+yLogowR3rwaQKx4pJ/8uN17/2/Ql2UE="
},
"com/badlogicgames/gdx#gdx-freetype/1.12.1": {
"jar": "sha256-rbjskAa7YdrW0pdslaHeGN5eGmUULRilgH0OUkyL8WU=",
"module": "sha256-HG9UGDxQFjSvGqLrKEkE7YnVvqtURs7FyqWwunHdXKE=",
"pom": "sha256-pLaMZBcEufzo+xszIlcUPJSYJJQg1uY6rm7tb6fHyT8="
},
"com/badlogicgames/gdx#gdx-jnigen-loader/2.3.1": {
"jar": "sha256-ZJDdoiWmHHYCwnu+xOSBE3/1lfjOCy3bpBTww0Bq7mA=",
"module": "sha256-nNWFK9nlHTbRJxrypGzZfOwk5XEHblQTbsmtNxhGua8=",
"pom": "sha256-7e2XZPzSpbw8peeAUEHppiAZ+ovkNLWZ8D1JR+KkQng="
},
"com/badlogicgames/gdx#gdx-platform/1.12.1": {
"pom": "sha256-bZhlcVVYfr/+qIAG20v12CgcyUetGduKZP28TnOzkZc="
},
"com/badlogicgames/gdx#gdx-platform/1.12.1/natives-desktop": {
"jar": "sha256-P+utqUwiNjYQkXufuMJLD55h4+bGnHO9DTUDhYTA4e0="
},
"com/badlogicgames/gdx#gdx/1.12.1": {
"jar": "sha256-jTIJ6UghH96c2swrAfrO0yPlSKpS73jlx2CEWoh0aXA=",
"module": "sha256-7Th6fCSDcEBGAyOsXYZIZwKAPw88K1h448x4If03n6o=",
"pom": "sha256-Qg9vfLMYtQsglKsHYme67w6bBlI0yHqWCqkvtCEYpZY="
},
"com/badlogicgames/jamepad#jamepad/2.26.5.0": {
"jar": "sha256-sO+RC6Uxyt/gQYSWow2Hy6xGAhsGJUf1tZR+A1Q1cRo=",
"module": "sha256-KGmFPVwJdU2vuY9u6veZLc2Q6K3uFxL/bgjmUgBKflA=",
"pom": "sha256-Up7mQ8lbw+6SfuSnRqwFaOQSnbb5dscD82IjN9/6Inc="
},
"com/badlogicgames/jlayer#jlayer/1.0.1-gdx": {
"jar": "sha256-qrze3C4/pBxOE4hwUj10MzfxiZMQgGMLoaIoVTjNAPs=",
"pom": "sha256-nGCRe2JnOIvFeWpSDswPF8ed2hVGUM0FQdTEE4ghv0k="
},
"org/jcraft#jorbis/0.0.17": {
"jar": "sha256-4GfymjcBQmtn7ZcwNpScbljKW7U+73JAsuceKG0lKp4=",
"pom": "sha256-GN47DZMq+Zgy202DL2g1B/vdWgsMJN1oDoTOb1cYLiQ="
},
"org/json#json/20170516": {
"jar": "sha256-gT835IIPGFTopOtPgN+UvxsfLsbDtyaS8jq5pVYlavY=",
"pom": "sha256-ZMFVQ6PV2yeaIK6w36A0oqecIVn4zUAd6kj/DyNMGN0="
},
"org/lwjgl#lwjgl-glfw/3.3.3": {
"jar": "sha256-vtx1f9KxslUUbbJrdLnL0fz1ZEuJtHsQT6chx0FgQlk=",
"pom": "sha256-fJuPWGrEz36esvNnrphUzK7i2Nf2LiOHxJ0sGvrtirM="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux": {
"jar": "sha256-uDBgYrF3QfNCaQiHUUIfGsIaWXv7vQxsYSJjAc3nRLg="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux-arm32": {
"jar": "sha256-3Z1NZxT8k1nUfdoNR8HYyLvkmQG393wj/Kepyb/CmFg="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux-arm64": {
"jar": "sha256-zGE5yD95nQ4UhOpMIByM5tV8jHokSlIXEWqAax60F5s="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-macos": {
"jar": "sha256-qJtVNirsnlo7vRNkYBu4WxR9trrmiJHKmiMtbPstVew="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-macos-arm64": {
"jar": "sha256-uUUdZ7wXyQb7goKlUi8liwIvMFaeC2LaAB1ZChe0Xhk="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-windows": {
"jar": "sha256-mBVbRR38b1hQid7HehL5wFeJxNzrjaRy+dMIFgEBpw0="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-windows-x86": {
"jar": "sha256-lkZVXUBfDSo6lXa1BvV8FjKvZPaaiuWMsESK4EqceCQ="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3": {
"jar": "sha256-6Z4xJp5meKS/xi7yTFCkgcAcvdAEhh7Omlm6EnaMZRY=",
"pom": "sha256-IJuMfX+cGXLVyNX5zhmjUW/5BxRD0N+Khm2hNDvS46k="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux": {
"jar": "sha256-TkoT1wFdQmBbvPfvn66tRt6sZAnkN3qO1K6oFfFGNLM="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux-arm32": {
"jar": "sha256-5IM/wmIeLnMCBXPmKZcJIPHNHfmE/hyc7bszSNzDeG8="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux-arm64": {
"jar": "sha256-44PVJBwNR/QBKnU+C//+Ra/DDQBiGbm9iQN1ahA3ibU="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-macos": {
"jar": "sha256-ICTapcaqQHhmQUi3OQ+4sjHyNw6g4X1AeJTbp+nlZOw="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-macos-arm64": {
"jar": "sha256-Y5Vuokb/ZKqpzg4dbjzK1obPv5N9H81suNX0T2OCFgw="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-windows": {
"jar": "sha256-mUnI5JmYvQyHjYQohAEfE4PihRAFCR4LK897dnG4SOs="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-windows-x86": {
"jar": "sha256-2bTgbiqEIFWD+wVEDSI4OFqRywGgYN2x03YiOuIl8Uo="
},
"org/lwjgl#lwjgl-openal/3.3.3": {
"jar": "sha256-rg6Cdnys8Ikh9Xj7qdhHU93rAM6toFEKK0qIK+KPv5U=",
"pom": "sha256-f6aiEbvk5FuCmHU31kN6e1KUM07TrBbLhElV70PV5w8="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux": {
"jar": "sha256-kDD+2SinHqwv30zhZDzE7HJNhxDjtDe9znUL3J6YKyo="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux-arm32": {
"jar": "sha256-xyXRfh5GJsf0O29NCKRnSW4JECXnHxn0+x8xN8Tabmc="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux-arm64": {
"jar": "sha256-q/OSSHs1h9qJtlUlAAjfSjYKL9Xh7gCr1h9/UpFSBaE="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-macos": {
"jar": "sha256-gmSuMqyfQTxPRQGGPF9udXam/avcXQUtMoG7rMM3fx0="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-macos-arm64": {
"jar": "sha256-OZJGOhao3xn2MRewiD6tDtko3U3wF/VbXk4St6JwSJo="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-windows": {
"jar": "sha256-49p8PbJcgduNQl7x49v6FQALBA1mnwCLCBPJQzOslsg="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-windows-x86": {
"jar": "sha256-hSyk42sf390++2zkLwi30PlXsExLz714BXsMeZ85kjE="
},
"org/lwjgl#lwjgl-opengl/3.3.3": {
"jar": "sha256-UGLadQ5ffsieJ+i2e31A+oxLFokBWeNfgoEWzmyOyh4=",
"pom": "sha256-RDkltWQq0xjUnfrpe66c3QnkkCWzAqlLAQf8iIm+bN0="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux": {
"jar": "sha256-2COpLGooELURLaME3MarzUyxAnBvdPfpNKIjzqIFElA="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux-arm32": {
"jar": "sha256-BbGiXD+3Ipdao78siIQ3I9puEFmhktVo3e/AGkV/qkc="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux-arm64": {
"jar": "sha256-Cyt1Mn1HRRY0EjNI1VUDrgPlFVGwyIea6QyOS04aT5w="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-macos": {
"jar": "sha256-TBBz0OWumZZtDvHWp3lXWEdtJH2TD9xewYZeOMuEfM4="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-macos-arm64": {
"jar": "sha256-8bPx3oP5c6uuOkvDLbWyKa5dVcyA27xffIQYEv4gtf4="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-windows": {
"jar": "sha256-9F5fYFlrA7Lj2LmKEjyFXr0LUVTIFV3CpWuJDMyQdHc="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-windows-x86": {
"jar": "sha256-nZnSA95OMShsrnU6HfuYE2fJNzTxlEZEunG+Uhs68sw="
},
"org/lwjgl#lwjgl-stb/3.3.3": {
"jar": "sha256-DP96pG6p1w/MIIVwFSk+qA+/Ia3Kw0YAyE2puBpEypM=",
"pom": "sha256-jR2kP3mIdcV5yokH95rk/D6tFVQl6pVVxvqqsT1Q5J0="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux": {
"jar": "sha256-xEiQaN3G3ESxAwcZQ/gBotB2Y01LdNtHCSf4SjCCGeE="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux-arm32": {
"jar": "sha256-/WYDpBauUJJiAxV7ajQOiPX60GyAjvQcsDUBcTn+Lzw="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux-arm64": {
"jar": "sha256-F/DPG45SLuprS5fBkHCznlT1+H7YT7iVhXR+QPkF4ds="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-macos": {
"jar": "sha256-MpN6NS20usPpKqG72uKYipWOS5B6tbVXdky6gtsgupc="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-macos-arm64": {
"jar": "sha256-sfZYdf2d3SgJe+YHYCniuPq168FibiHO92FhHfynFcI="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-windows": {
"jar": "sha256-0Sq4Zv4RaekkrFtNa7d2eueEKp/IZSeYaCwAabtz/PI="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-windows-x86": {
"jar": "sha256-RkJORUWXM7JsSnsN0mlSCctpONr6OpASxqVoLJSixA4="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3": {
"jar": "sha256-7gUVBU7hmj9AiEJv7p2HnrLuZXsH5QZOTiyFH2rc8Us=",
"pom": "sha256-LBvRGfQeZaVEYT+R5xYOAGuBkW5zpu919UkkLMTzvvI="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-linux": {
"jar": "sha256-oHb6BaTRdHYuq1hS7nLCnRSrEKVlTyf7AGZO8bUsDAU="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-linux-arm64": {
"jar": "sha256-gNNOdtFcBJUXRBSIMpCDkdqLFPaKAwtksLQHAqNzkdc="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-macos": {
"jar": "sha256-RGXdRv35MJwM5kw1KaDaZ5L7ZxHDKB6MXbqTXmqb/Dw="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-macos-arm64": {
"jar": "sha256-b32XlBRlHjQ9yLiz+q3g4tnk/fmdVl1WI+EtQNuuSiI="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-windows": {
"jar": "sha256-AihZEfHIgXNfpNDrFB/+qv2aK7k0nZj3wfuKnLScD1g="
},
"org/lwjgl#lwjgl/3.3.3": {
"jar": "sha256-3Jx7LUjoOW1oiV+JAv+gHkYlPeRN/pJ1M/8JRX6/7sQ=",
"pom": "sha256-gx1Gb8AWKUUrRhNzEeFYI8CWx9b66VKYxke5+/XWgfQ="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux": {
"jar": "sha256-5mNzjFGaBvbWWYgvqOTgmvfxDpIZKe5cxUp1h/Yu1Mk="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux-arm32": {
"jar": "sha256-cNP3SNRawTWDKplV6lGcpv7Tqn0dR+tnR8uHk2hGyUE="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux-arm64": {
"jar": "sha256-OXp5pdiQcobUAY0CbLw3NYxTu7aqvDoVNPGf8jt/hVg="
},
"org/lwjgl#lwjgl/3.3.3/natives-macos": {
"jar": "sha256-ApTuTi3X72vvr/r8C7maKom3YHC1zYMC89dWJLZ4bQM="
},
"org/lwjgl#lwjgl/3.3.3/natives-macos-arm64": {
"jar": "sha256-UKycoJ5Z8FHcrPTcCyFF6ekW5qsUYzt1aUIxv+WTFKg="
},
"org/lwjgl#lwjgl/3.3.3/natives-windows": {
"jar": "sha256-XuY6GRh+/lu4dH/ST3sTJX2zSN9a1kEROjaV5D8hOVk="
},
"org/lwjgl#lwjgl/3.3.3/natives-windows-x86": {
"jar": "sha256-IqIjOCYlVOteEzyEQd7u2shNoILrO6yE0DLaT682l0k="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}
+10 -35
View File
@@ -2,10 +2,10 @@
{ pname
, version
, src
, depsHash
, meta
, desktopName
, patches ? [ ./disable-beryx.patch ]
, depsPath ? null
, lib
, stdenv
@@ -53,30 +53,18 @@ let
keywords = [ "roguelike" "dungeon" "crawler" ];
};
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit version src patches postPatch;
nativeBuildInputs = [ gradle perl ] ++ attrs.nativeBuildInputs or [];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
# https://github.com/gradle/gradle/issues/4426
${lib.optionalString stdenv.isDarwin "export TERM=dumb"}
gradle --no-daemon desktop:release
'';
# 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 = depsHash;
};
depsPath' = if depsPath != null then depsPath else ./${pname}/deps.json;
in stdenv.mkDerivation (cleanAttrs // {
inherit pname version src patches postPatch;
mitmCache = gradle.fetchDeps {
inherit pname;
data = depsPath';
};
__darwinAllowLocalNetworking = true;
nativeBuildInputs = [
gradle
perl
@@ -86,18 +74,7 @@ in stdenv.mkDerivation (cleanAttrs // {
desktopItems = [ desktopItem ];
buildPhase = ''
runHook preBuild
export GRADLE_USER_HOME=$(mktemp -d)
# https://github.com/gradle/gradle/issues/4426
${lib.optionalString stdenv.isDarwin "export TERM=dumb"}
# point to offline repo
sed -ie "s#repositories {#repositories { maven { url '${deps}' };#g" build.gradle
gradle --offline --no-daemon desktop:release
runHook postBuild
'';
gradleBuildTask = "desktop:release";
installPhase = ''
runHook preInstall
@@ -131,8 +108,6 @@ in stdenv.mkDerivation (cleanAttrs // {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.all;
# https://github.com/NixOS/nixpkgs/pull/99885#issuecomment-740065005
broken = stdenv.isDarwin;
mainProgram = pname;
} // meta;
})
@@ -2,7 +2,7 @@
, fetchFromGitHub
}:
callPackage ./generic.nix rec {
callPackage ../generic.nix rec {
pname = "rat-king-adventure";
version = "1.5.3";
@@ -13,8 +13,6 @@ callPackage ./generic.nix rec {
hash = "sha256-Q/smIObu7khcRnwdT8m7+WstpPE1tbDFJcZ4OGYJ338=";
};
depsHash = "sha256-yE6zuLnFLtNq76AhtyE+giGLF2vcCqF7sfIvcY8W6Lg=";
desktopName = "Rat King Adventure";
meta = {
@@ -0,0 +1,238 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://repo.maven.apache.org/maven2": {
"com/badlogicgames/gdx#gdx-backend-lwjgl3/1.11.0": {
"jar": "sha256-my0CJorGB5QwSi4E5ep1H62fX5bsyvFdgCOm4LF6994=",
"module": "sha256-o7gpPFXSp2lb60LCcKrfKpQcK4NqQL8Ob4W6OOY0VwY=",
"pom": "sha256-wa55d83hp9muWlhfDe8Ap2d4LzcR5/+RYTX2UPA2HOo="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.11.0": {
"pom": "sha256-a5PHPPIyrqNpnueP5GEkJ14KwbsROJkXUcz96l8Au9c="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.11.0/natives-desktop": {
"jar": "sha256-9GCzmqhP9bnWC4mT4j/zKtpWellmThTrfha7VcWk9yE="
},
"com/badlogicgames/gdx#gdx-freetype/1.11.0": {
"jar": "sha256-u5hP1RQ13YCN0HaSWOqzJikXG19OnkPzmvRUPh7E3yI=",
"module": "sha256-n5oGuAY9dyn7H94+ippXm3vuPUqevY+xrDubsj78b/M=",
"pom": "sha256-xkjQNIE46uOtYmScUTA8R5rr5czpsbXQeLX3rkVQG+0="
},
"com/badlogicgames/gdx#gdx-jnigen-loader/2.3.1": {
"jar": "sha256-ZJDdoiWmHHYCwnu+xOSBE3/1lfjOCy3bpBTww0Bq7mA=",
"module": "sha256-nNWFK9nlHTbRJxrypGzZfOwk5XEHblQTbsmtNxhGua8=",
"pom": "sha256-7e2XZPzSpbw8peeAUEHppiAZ+ovkNLWZ8D1JR+KkQng="
},
"com/badlogicgames/gdx#gdx-platform/1.11.0": {
"pom": "sha256-8cBBk8LQnXP8lVNQL05ZFMIOgDWrdpoZ0z4bxJJ0AkA="
},
"com/badlogicgames/gdx#gdx-platform/1.11.0/natives-desktop": {
"jar": "sha256-yUFpxwl25LGMCL1qKWtETqiLtUlF67EtHy5DK5L4OTA="
},
"com/badlogicgames/gdx#gdx/1.11.0": {
"jar": "sha256-IxU8Z+GVYGROD6EjUjK12F7kHPKJKBwtp+yMKONXULk=",
"module": "sha256-twUVE1CLWninINOZQrsifRvrOrzgBpskstIAA2TPbbM=",
"pom": "sha256-2W6H3BZixRugifIY1Cy3/U3b3sZQiytosvCsZ5dvJSU="
},
"com/badlogicgames/gdx-controllers#gdx-controllers-core/2.2.2": {
"jar": "sha256-DKa7jeeMTIY2ycrjhvrAU4LdMp9y1xCU+62wL89aEAQ=",
"pom": "sha256-Y0QV6aRkzGOr46Gb6+AYM2OdS95sUt2zIoaOQduz724="
},
"com/badlogicgames/gdx-controllers#gdx-controllers-desktop/2.2.2": {
"jar": "sha256-oJnxlAyrkj1QtnHH4uK6HkXq44+mxdzq6piktPUqTl0=",
"pom": "sha256-ZAhAV2hHVAbq8aLVysozRiKXIYdZmkssHWSOf+rarn8="
},
"com/badlogicgames/jamepad#jamepad/2.0.20.0": {
"jar": "sha256-6fFqB9SpRCSs0DiOw6P+TsZLfhiWxlgUwv9rRisTs2Y=",
"module": "sha256-vXFX36GUJsdj2VgYbnHR3+lKnBRgBeEI9pwUameDrmY=",
"pom": "sha256-+gwaoDndosNqw/VslH3vLEOptLnkbCPhrqddHQaZ3eQ="
},
"com/badlogicgames/jlayer#jlayer/1.0.1-gdx": {
"jar": "sha256-qrze3C4/pBxOE4hwUj10MzfxiZMQgGMLoaIoVTjNAPs=",
"pom": "sha256-nGCRe2JnOIvFeWpSDswPF8ed2hVGUM0FQdTEE4ghv0k="
},
"org/jcraft#jorbis/0.0.17": {
"jar": "sha256-4GfymjcBQmtn7ZcwNpScbljKW7U+73JAsuceKG0lKp4=",
"pom": "sha256-GN47DZMq+Zgy202DL2g1B/vdWgsMJN1oDoTOb1cYLiQ="
},
"org/json#json/20170516": {
"jar": "sha256-gT835IIPGFTopOtPgN+UvxsfLsbDtyaS8jq5pVYlavY=",
"pom": "sha256-ZMFVQ6PV2yeaIK6w36A0oqecIVn4zUAd6kj/DyNMGN0="
},
"org/lwjgl#lwjgl-glfw/3.3.1": {
"jar": "sha256-CLvDTrdS+GPjf4OrHHsMIvfLJtD4+wpKSoxgKKxFs4U=",
"pom": "sha256-TKQrQ8iqDodIWWB0d0C5lFqqH99+QTTm+iTo+d8cF2A="
},
"org/lwjgl#lwjgl-glfw/3.3.1/natives-linux": {
"jar": "sha256-Ze0Ev/fQf+ybf958OxHEBShsjWbk609Mm3kuJn7OWwY="
},
"org/lwjgl#lwjgl-glfw/3.3.1/natives-linux-arm32": {
"jar": "sha256-hOvo8klGPrF84PrpnYsto8G/kcjUEHOjtYNFd7dS4/s="
},
"org/lwjgl#lwjgl-glfw/3.3.1/natives-linux-arm64": {
"jar": "sha256-IgDyzcENHaZ215o+oFybpVnaCZUFwbdWtu0iL2FagSA="
},
"org/lwjgl#lwjgl-glfw/3.3.1/natives-macos": {
"jar": "sha256-G2z/nmSKci7gzBRmlhIFKqW6gJRp+os/sh8kw6vnDek="
},
"org/lwjgl#lwjgl-glfw/3.3.1/natives-macos-arm64": {
"jar": "sha256-nHlVeHSNWPQtXUcu2A0ulpk71Psf/ABYztosYx7zmJo="
},
"org/lwjgl#lwjgl-glfw/3.3.1/natives-windows": {
"jar": "sha256-nnROy4QCnXrO2uh24lV2WRhKKa/uVeRT9KslZzSb+Ek="
},
"org/lwjgl#lwjgl-glfw/3.3.1/natives-windows-x86": {
"jar": "sha256-pYAgBm4ePVP/xMf7ShWMDLP/tPM6rrPlTSVScyGUxBI="
},
"org/lwjgl#lwjgl-jemalloc/3.3.1": {
"jar": "sha256-7kn8Co2UVkUuVM1vd3gj7aZm4sY/wU1lsv0sws/tXb4=",
"pom": "sha256-+ZSGEVVV8RPaHOOs1f7LyWk7X9o1P/era9Lj1//dsn4="
},
"org/lwjgl#lwjgl-jemalloc/3.3.1/natives-linux": {
"jar": "sha256-m3mvXH/Q2UkG7h0qU6NCCidQfWYiS0/0a59ncmRd7TQ="
},
"org/lwjgl#lwjgl-jemalloc/3.3.1/natives-linux-arm32": {
"jar": "sha256-Bj8Lsu2V5d4q0G4Q0xJ/hJDdviBKyj5qOc5C3pF4TF8="
},
"org/lwjgl#lwjgl-jemalloc/3.3.1/natives-linux-arm64": {
"jar": "sha256-X4nVRq4fr1Gv+/sMZBR60swze/ajLwv4fEbTTDQvxdU="
},
"org/lwjgl#lwjgl-jemalloc/3.3.1/natives-macos": {
"jar": "sha256-B6qwMJQFjjiph2upM54IoiQDlO+Ii35/z9R2I1j22Wg="
},
"org/lwjgl#lwjgl-jemalloc/3.3.1/natives-macos-arm64": {
"jar": "sha256-500OE6wC9BAsIMF/DUFmCK2FNDSV7K4wAp32VousLSc="
},
"org/lwjgl#lwjgl-jemalloc/3.3.1/natives-windows": {
"jar": "sha256-Il8331UAYUZ1vprLYnjLbJyAo0kmR5iyz8fsQ08e1HI="
},
"org/lwjgl#lwjgl-jemalloc/3.3.1/natives-windows-x86": {
"jar": "sha256-Y5uy113z3Vnqewv4uEfgr1cHRpTXk5ILoclTeJeyw9g="
},
"org/lwjgl#lwjgl-openal/3.3.1": {
"jar": "sha256-cyXuG5GooQwGJsabVXqI8t9qwb3KDlLiqS0yQknyytA=",
"pom": "sha256-+ZzowctqhyXSbdyzNFxAPNu8x8qO6WYIu/PCxP2WaiE="
},
"org/lwjgl#lwjgl-openal/3.3.1/natives-linux": {
"jar": "sha256-C3OB9R7cYQy2ByRdw0p2LSsht0R4FARAaKGmADu4eDg="
},
"org/lwjgl#lwjgl-openal/3.3.1/natives-linux-arm32": {
"jar": "sha256-PQ39lwowYdM7FdvxjT7u/PB83EFx6skgUU8DhkY4mmI="
},
"org/lwjgl#lwjgl-openal/3.3.1/natives-linux-arm64": {
"jar": "sha256-RPO9inlEGNtNU+51Rtkdl9nK9/QuE+ojU2PMM18u9ig="
},
"org/lwjgl#lwjgl-openal/3.3.1/natives-macos": {
"jar": "sha256-UYTKJLjf6XJVtstVjFKb1qOImBu+VeITcY4/0r2ehuQ="
},
"org/lwjgl#lwjgl-openal/3.3.1/natives-macos-arm64": {
"jar": "sha256-wi7Lzvj+5K7q+YEDLfPiy8MKkRqQJS7awfFJeX1YdXU="
},
"org/lwjgl#lwjgl-openal/3.3.1/natives-windows": {
"jar": "sha256-X35maqJMqLP7dY5ywD/7nYCbMEicantH6tZ8aXf/ZU4="
},
"org/lwjgl#lwjgl-openal/3.3.1/natives-windows-x86": {
"jar": "sha256-fVtbb61e+7Lowk80dgDHy8bv3RNh/TewtaEzGSMehR4="
},
"org/lwjgl#lwjgl-opengl/3.3.1": {
"jar": "sha256-5DbSFE86Nv/3cv1kIzMWgJt5XzkN79TVVmD8aG58KDQ=",
"pom": "sha256-LL9XxnqNBGatgI4aJ/4908EQ6KwC3IqyushKhRl3VUE="
},
"org/lwjgl#lwjgl-opengl/3.3.1/natives-linux": {
"jar": "sha256-vPzZ+N/SKUiK2ew1PUjHsC3lyiG63UCS8ZAiOaHtBpA="
},
"org/lwjgl#lwjgl-opengl/3.3.1/natives-linux-arm32": {
"jar": "sha256-IDPJfXY+YL2sAX/bsI06Q7vlwXqjZ7QsU3ycw6tAYY8="
},
"org/lwjgl#lwjgl-opengl/3.3.1/natives-linux-arm64": {
"jar": "sha256-EFjEunNUzavz75NZUeKT91tJYedT13/XU13ccy4oPyg="
},
"org/lwjgl#lwjgl-opengl/3.3.1/natives-macos": {
"jar": "sha256-cR8plyiIUJJiqVfxsxOL+ptQVRnRHfbldj0cmj+LPF0="
},
"org/lwjgl#lwjgl-opengl/3.3.1/natives-macos-arm64": {
"jar": "sha256-29EQBE6uitvKjjx6cwUpo1FVnnTOqIe7PNbvDcAW8pU="
},
"org/lwjgl#lwjgl-opengl/3.3.1/natives-windows": {
"jar": "sha256-hRubWTysIeOvUd1MMD6N8/5qNEo/gda5vMGG5+VAv9o="
},
"org/lwjgl#lwjgl-opengl/3.3.1/natives-windows-x86": {
"jar": "sha256-aD2K09DQl3puoYuIpMvn6P1PBsGrIbq+2riDCXQLzGA="
},
"org/lwjgl#lwjgl-stb/3.3.1": {
"jar": "sha256-ZOXMzi/Hy88Mg0pb6GQtniSYzj/jHBT/HfdBh4o/gSE=",
"pom": "sha256-dKgsbPvqhNIxAk2f2FgO2VumPCAafUeqsmO6hofDCVk="
},
"org/lwjgl#lwjgl-stb/3.3.1/natives-linux": {
"jar": "sha256-+BuZjoxdYj1XHi/NRvy4e30w7SXfd95jrsjP7bNMSnA="
},
"org/lwjgl#lwjgl-stb/3.3.1/natives-linux-arm32": {
"jar": "sha256-6xnGjFt5MUjKOT24bzHQ3pVALZ9MFOUADjkYSA9iKkc="
},
"org/lwjgl#lwjgl-stb/3.3.1/natives-linux-arm64": {
"jar": "sha256-XOyb0h8xIAJaLIOB3BCax+yI5o5xX9fK27kPXVVfZZs="
},
"org/lwjgl#lwjgl-stb/3.3.1/natives-macos": {
"jar": "sha256-oXjWYDA5nGmJeN/kqVALdVep2vTAYeg8iHAzfpsL0+c="
},
"org/lwjgl#lwjgl-stb/3.3.1/natives-macos-arm64": {
"jar": "sha256-DXoP8tto86vkFpFn4vSJ3/d72igvQvhuQelEvnxDbdg="
},
"org/lwjgl#lwjgl-stb/3.3.1/natives-windows": {
"jar": "sha256-/W/3om6GRa95oNIcpz6NyeRz80AtEzPlRKgdIcpQd+c="
},
"org/lwjgl#lwjgl-stb/3.3.1/natives-windows-x86": {
"jar": "sha256-v3PjtRu0MOWIvRWOlsyimOmMoS8p3FzxRFwfDFw5uhs="
},
"org/lwjgl#lwjgl-tinyfd/3.3.1": {
"jar": "sha256-SI9R7ZXw+sSNHYfLDjusCMAS3L9u88FohoXXCM28zVY=",
"pom": "sha256-78RtVita7rFRzJnBhn5KUeVLzwWs+2EwOtZUh45Nyq8="
},
"org/lwjgl#lwjgl-tinyfd/3.3.1/natives-linux": {
"jar": "sha256-e9cLKCM/RiGdoZiaw+n27vcuvyEc43Uv8eZFzqQYpM8="
},
"org/lwjgl#lwjgl-tinyfd/3.3.1/natives-linux-arm64": {
"jar": "sha256-pLai7OGbhNkzyXmwx1+46BgCpoLVJEmWXDP0xaH+cAw="
},
"org/lwjgl#lwjgl-tinyfd/3.3.1/natives-macos": {
"jar": "sha256-H1yGorLASVqlahKnTHwvwsk1PMOKoAzBOjJAR2QcMk0="
},
"org/lwjgl#lwjgl-tinyfd/3.3.1/natives-macos-arm64": {
"jar": "sha256-EY1ViXZdZobUeDcZwt6MpmWiSX2LncKK00/RDtU0P6o="
},
"org/lwjgl#lwjgl-tinyfd/3.3.1/natives-windows": {
"jar": "sha256-7McVIQloBZdWnZsyIEXynBp93uxxgs9pGJ2uFUE4ucg="
},
"org/lwjgl#lwjgl/3.3.1": {
"jar": "sha256-z4P5DjL7lz/17fyk7zX1XKUbtwpXm2ofKQdE9VLo5IQ=",
"pom": "sha256-xMXHr6uOt4JTZqIwhsPf7droMIwRXF1iF6gm7DJLN+M="
},
"org/lwjgl#lwjgl/3.3.1/natives-linux": {
"jar": "sha256-Iu8q+jGhdAozfsnGgGxrjZfpMaY+LEMnDLrxT7P2/E4="
},
"org/lwjgl#lwjgl/3.3.1/natives-linux-arm32": {
"jar": "sha256-9rVYGOx25ewBfiW8OvbsTbe3ol56KhdW+i/6uojIZWQ="
},
"org/lwjgl#lwjgl/3.3.1/natives-linux-arm64": {
"jar": "sha256-T9lq94+cKTsXAAEcfbGg7AI3xNGIPjf6vgj3To0uAiQ="
},
"org/lwjgl#lwjgl/3.3.1/natives-macos": {
"jar": "sha256-9I5hCpgdylFbm75zRcx240UME0BLBS2Kw1fvCvjpCr8="
},
"org/lwjgl#lwjgl/3.3.1/natives-macos-arm64": {
"jar": "sha256-cZfomrgKKiGDtO6SXMtE5XLwy3V6kndq34JlJpIAo2o="
},
"org/lwjgl#lwjgl/3.3.1/natives-windows": {
"jar": "sha256-CT0T1ipkNLxla/EKOzfiUw/ZrzsLwg+OlUW+WGWdFEM="
},
"org/lwjgl#lwjgl/3.3.1/natives-windows-x86": {
"jar": "sha256-6QwfnPVwGu7ymC6/CQWiuZH0YiuKf4JQ6vCHO1oKAiM="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}
@@ -2,7 +2,7 @@
, fetchFromGitHub
}:
callPackage ./generic.nix rec {
callPackage ../generic.nix rec {
pname = "rkpd2";
version = "2.0.6";
@@ -13,8 +13,6 @@ callPackage ./generic.nix rec {
hash = "sha256-jwH0nEsv3agUCZt5Mhuv1JSeELOKfrsj3cnmAJsV9sM=";
};
depsHash = "sha256-vihoR0bPh7590sRxeYJ1uuynNRxtRBuiFUrdmsRNUJc=";
desktopName = "Rat King Pixel Dungeon 2";
meta = {
+252
View File
@@ -0,0 +1,252 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://oss.sonatype.org/content/repositories/snapshots/com/badlogicgames": {
"gdx-controllers#gdx-controllers-core/2.2.4-20231021.200112-6/SNAPSHOT": {
"jar": "sha256-Gdz2J1IvDJFktUD2XeGNS0SIrOyym19X/+dCbbbe3/U=",
"pom": "sha256-90QW/Mtz1jbDUhKjdJ88ekhulZR2a7eCaEJoswmeny4="
},
"gdx-controllers#gdx-controllers-desktop/2.2.4-20231021.200114-6/SNAPSHOT": {
"jar": "sha256-4mhLijZwQHk2pP5qXIIzrsO9CwNC3CDti/5szclkVa8=",
"pom": "sha256-10+zD8flpKIPzji5NFgtYcwE5O74hSzzvvqBh84wLf4="
},
"gdx-controllers/gdx-controllers-core/2.2.4-SNAPSHOT/maven-metadata": {
"xml": {
"groupId": "com.badlogicgames.gdx-controllers",
"lastUpdated": "20231021200112"
}
},
"gdx-controllers/gdx-controllers-desktop/2.2.4-SNAPSHOT/maven-metadata": {
"xml": {
"groupId": "com.badlogicgames.gdx-controllers",
"lastUpdated": "20231021200114"
}
}
},
"https://repo.maven.apache.org/maven2": {
"com/badlogicgames/gdx#gdx-backend-lwjgl3/1.12.1": {
"jar": "sha256-B3OwjHfBoHcJPFlyy4u2WJuRe4ZF/+tKh7gKsDg41o0=",
"module": "sha256-9O7d2ip5+E6OiwN47WWxC8XqSX/mT+b0iDioCRTTyqc=",
"pom": "sha256-IRSihaCUPC2d0QzB0MVDoOWM1DXjcisTYtnaaxR9SRo="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.12.1": {
"pom": "sha256-cAGFUunqi4o21kDX8V86OT6aMmXjJUqyMHLHhUWLBm4="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.12.1/natives-desktop": {
"jar": "sha256-1g5ZN21QWpk+yLogowR3rwaQKx4pJ/8uN17/2/Ql2UE="
},
"com/badlogicgames/gdx#gdx-freetype/1.12.1": {
"jar": "sha256-rbjskAa7YdrW0pdslaHeGN5eGmUULRilgH0OUkyL8WU=",
"module": "sha256-HG9UGDxQFjSvGqLrKEkE7YnVvqtURs7FyqWwunHdXKE=",
"pom": "sha256-pLaMZBcEufzo+xszIlcUPJSYJJQg1uY6rm7tb6fHyT8="
},
"com/badlogicgames/gdx#gdx-jnigen-loader/2.3.1": {
"jar": "sha256-ZJDdoiWmHHYCwnu+xOSBE3/1lfjOCy3bpBTww0Bq7mA=",
"module": "sha256-nNWFK9nlHTbRJxrypGzZfOwk5XEHblQTbsmtNxhGua8=",
"pom": "sha256-7e2XZPzSpbw8peeAUEHppiAZ+ovkNLWZ8D1JR+KkQng="
},
"com/badlogicgames/gdx#gdx-platform/1.12.1": {
"pom": "sha256-bZhlcVVYfr/+qIAG20v12CgcyUetGduKZP28TnOzkZc="
},
"com/badlogicgames/gdx#gdx-platform/1.12.1/natives-desktop": {
"jar": "sha256-P+utqUwiNjYQkXufuMJLD55h4+bGnHO9DTUDhYTA4e0="
},
"com/badlogicgames/gdx#gdx/1.12.1": {
"jar": "sha256-jTIJ6UghH96c2swrAfrO0yPlSKpS73jlx2CEWoh0aXA=",
"module": "sha256-7Th6fCSDcEBGAyOsXYZIZwKAPw88K1h448x4If03n6o=",
"pom": "sha256-Qg9vfLMYtQsglKsHYme67w6bBlI0yHqWCqkvtCEYpZY="
},
"com/badlogicgames/jamepad#jamepad/2.26.5.0": {
"jar": "sha256-sO+RC6Uxyt/gQYSWow2Hy6xGAhsGJUf1tZR+A1Q1cRo=",
"module": "sha256-KGmFPVwJdU2vuY9u6veZLc2Q6K3uFxL/bgjmUgBKflA=",
"pom": "sha256-Up7mQ8lbw+6SfuSnRqwFaOQSnbb5dscD82IjN9/6Inc="
},
"com/badlogicgames/jlayer#jlayer/1.0.1-gdx": {
"jar": "sha256-qrze3C4/pBxOE4hwUj10MzfxiZMQgGMLoaIoVTjNAPs=",
"pom": "sha256-nGCRe2JnOIvFeWpSDswPF8ed2hVGUM0FQdTEE4ghv0k="
},
"org/jcraft#jorbis/0.0.17": {
"jar": "sha256-4GfymjcBQmtn7ZcwNpScbljKW7U+73JAsuceKG0lKp4=",
"pom": "sha256-GN47DZMq+Zgy202DL2g1B/vdWgsMJN1oDoTOb1cYLiQ="
},
"org/json#json/20170516": {
"jar": "sha256-gT835IIPGFTopOtPgN+UvxsfLsbDtyaS8jq5pVYlavY=",
"pom": "sha256-ZMFVQ6PV2yeaIK6w36A0oqecIVn4zUAd6kj/DyNMGN0="
},
"org/lwjgl#lwjgl-glfw/3.3.3": {
"jar": "sha256-vtx1f9KxslUUbbJrdLnL0fz1ZEuJtHsQT6chx0FgQlk=",
"pom": "sha256-fJuPWGrEz36esvNnrphUzK7i2Nf2LiOHxJ0sGvrtirM="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux": {
"jar": "sha256-uDBgYrF3QfNCaQiHUUIfGsIaWXv7vQxsYSJjAc3nRLg="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux-arm32": {
"jar": "sha256-3Z1NZxT8k1nUfdoNR8HYyLvkmQG393wj/Kepyb/CmFg="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux-arm64": {
"jar": "sha256-zGE5yD95nQ4UhOpMIByM5tV8jHokSlIXEWqAax60F5s="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-macos": {
"jar": "sha256-qJtVNirsnlo7vRNkYBu4WxR9trrmiJHKmiMtbPstVew="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-macos-arm64": {
"jar": "sha256-uUUdZ7wXyQb7goKlUi8liwIvMFaeC2LaAB1ZChe0Xhk="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-windows": {
"jar": "sha256-mBVbRR38b1hQid7HehL5wFeJxNzrjaRy+dMIFgEBpw0="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-windows-x86": {
"jar": "sha256-lkZVXUBfDSo6lXa1BvV8FjKvZPaaiuWMsESK4EqceCQ="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3": {
"jar": "sha256-6Z4xJp5meKS/xi7yTFCkgcAcvdAEhh7Omlm6EnaMZRY=",
"pom": "sha256-IJuMfX+cGXLVyNX5zhmjUW/5BxRD0N+Khm2hNDvS46k="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux": {
"jar": "sha256-TkoT1wFdQmBbvPfvn66tRt6sZAnkN3qO1K6oFfFGNLM="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux-arm32": {
"jar": "sha256-5IM/wmIeLnMCBXPmKZcJIPHNHfmE/hyc7bszSNzDeG8="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux-arm64": {
"jar": "sha256-44PVJBwNR/QBKnU+C//+Ra/DDQBiGbm9iQN1ahA3ibU="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-macos": {
"jar": "sha256-ICTapcaqQHhmQUi3OQ+4sjHyNw6g4X1AeJTbp+nlZOw="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-macos-arm64": {
"jar": "sha256-Y5Vuokb/ZKqpzg4dbjzK1obPv5N9H81suNX0T2OCFgw="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-windows": {
"jar": "sha256-mUnI5JmYvQyHjYQohAEfE4PihRAFCR4LK897dnG4SOs="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-windows-x86": {
"jar": "sha256-2bTgbiqEIFWD+wVEDSI4OFqRywGgYN2x03YiOuIl8Uo="
},
"org/lwjgl#lwjgl-openal/3.3.3": {
"jar": "sha256-rg6Cdnys8Ikh9Xj7qdhHU93rAM6toFEKK0qIK+KPv5U=",
"pom": "sha256-f6aiEbvk5FuCmHU31kN6e1KUM07TrBbLhElV70PV5w8="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux": {
"jar": "sha256-kDD+2SinHqwv30zhZDzE7HJNhxDjtDe9znUL3J6YKyo="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux-arm32": {
"jar": "sha256-xyXRfh5GJsf0O29NCKRnSW4JECXnHxn0+x8xN8Tabmc="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux-arm64": {
"jar": "sha256-q/OSSHs1h9qJtlUlAAjfSjYKL9Xh7gCr1h9/UpFSBaE="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-macos": {
"jar": "sha256-gmSuMqyfQTxPRQGGPF9udXam/avcXQUtMoG7rMM3fx0="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-macos-arm64": {
"jar": "sha256-OZJGOhao3xn2MRewiD6tDtko3U3wF/VbXk4St6JwSJo="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-windows": {
"jar": "sha256-49p8PbJcgduNQl7x49v6FQALBA1mnwCLCBPJQzOslsg="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-windows-x86": {
"jar": "sha256-hSyk42sf390++2zkLwi30PlXsExLz714BXsMeZ85kjE="
},
"org/lwjgl#lwjgl-opengl/3.3.3": {
"jar": "sha256-UGLadQ5ffsieJ+i2e31A+oxLFokBWeNfgoEWzmyOyh4=",
"pom": "sha256-RDkltWQq0xjUnfrpe66c3QnkkCWzAqlLAQf8iIm+bN0="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux": {
"jar": "sha256-2COpLGooELURLaME3MarzUyxAnBvdPfpNKIjzqIFElA="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux-arm32": {
"jar": "sha256-BbGiXD+3Ipdao78siIQ3I9puEFmhktVo3e/AGkV/qkc="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux-arm64": {
"jar": "sha256-Cyt1Mn1HRRY0EjNI1VUDrgPlFVGwyIea6QyOS04aT5w="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-macos": {
"jar": "sha256-TBBz0OWumZZtDvHWp3lXWEdtJH2TD9xewYZeOMuEfM4="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-macos-arm64": {
"jar": "sha256-8bPx3oP5c6uuOkvDLbWyKa5dVcyA27xffIQYEv4gtf4="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-windows": {
"jar": "sha256-9F5fYFlrA7Lj2LmKEjyFXr0LUVTIFV3CpWuJDMyQdHc="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-windows-x86": {
"jar": "sha256-nZnSA95OMShsrnU6HfuYE2fJNzTxlEZEunG+Uhs68sw="
},
"org/lwjgl#lwjgl-stb/3.3.3": {
"jar": "sha256-DP96pG6p1w/MIIVwFSk+qA+/Ia3Kw0YAyE2puBpEypM=",
"pom": "sha256-jR2kP3mIdcV5yokH95rk/D6tFVQl6pVVxvqqsT1Q5J0="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux": {
"jar": "sha256-xEiQaN3G3ESxAwcZQ/gBotB2Y01LdNtHCSf4SjCCGeE="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux-arm32": {
"jar": "sha256-/WYDpBauUJJiAxV7ajQOiPX60GyAjvQcsDUBcTn+Lzw="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux-arm64": {
"jar": "sha256-F/DPG45SLuprS5fBkHCznlT1+H7YT7iVhXR+QPkF4ds="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-macos": {
"jar": "sha256-MpN6NS20usPpKqG72uKYipWOS5B6tbVXdky6gtsgupc="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-macos-arm64": {
"jar": "sha256-sfZYdf2d3SgJe+YHYCniuPq168FibiHO92FhHfynFcI="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-windows": {
"jar": "sha256-0Sq4Zv4RaekkrFtNa7d2eueEKp/IZSeYaCwAabtz/PI="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-windows-x86": {
"jar": "sha256-RkJORUWXM7JsSnsN0mlSCctpONr6OpASxqVoLJSixA4="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3": {
"jar": "sha256-7gUVBU7hmj9AiEJv7p2HnrLuZXsH5QZOTiyFH2rc8Us=",
"pom": "sha256-LBvRGfQeZaVEYT+R5xYOAGuBkW5zpu919UkkLMTzvvI="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-linux": {
"jar": "sha256-oHb6BaTRdHYuq1hS7nLCnRSrEKVlTyf7AGZO8bUsDAU="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-linux-arm64": {
"jar": "sha256-gNNOdtFcBJUXRBSIMpCDkdqLFPaKAwtksLQHAqNzkdc="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-macos": {
"jar": "sha256-RGXdRv35MJwM5kw1KaDaZ5L7ZxHDKB6MXbqTXmqb/Dw="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-macos-arm64": {
"jar": "sha256-b32XlBRlHjQ9yLiz+q3g4tnk/fmdVl1WI+EtQNuuSiI="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-windows": {
"jar": "sha256-AihZEfHIgXNfpNDrFB/+qv2aK7k0nZj3wfuKnLScD1g="
},
"org/lwjgl#lwjgl/3.3.3": {
"jar": "sha256-3Jx7LUjoOW1oiV+JAv+gHkYlPeRN/pJ1M/8JRX6/7sQ=",
"pom": "sha256-gx1Gb8AWKUUrRhNzEeFYI8CWx9b66VKYxke5+/XWgfQ="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux": {
"jar": "sha256-5mNzjFGaBvbWWYgvqOTgmvfxDpIZKe5cxUp1h/Yu1Mk="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux-arm32": {
"jar": "sha256-cNP3SNRawTWDKplV6lGcpv7Tqn0dR+tnR8uHk2hGyUE="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux-arm64": {
"jar": "sha256-OXp5pdiQcobUAY0CbLw3NYxTu7aqvDoVNPGf8jt/hVg="
},
"org/lwjgl#lwjgl/3.3.3/natives-macos": {
"jar": "sha256-ApTuTi3X72vvr/r8C7maKom3YHC1zYMC89dWJLZ4bQM="
},
"org/lwjgl#lwjgl/3.3.3/natives-macos-arm64": {
"jar": "sha256-UKycoJ5Z8FHcrPTcCyFF6ekW5qsUYzt1aUIxv+WTFKg="
},
"org/lwjgl#lwjgl/3.3.3/natives-windows": {
"jar": "sha256-XuY6GRh+/lu4dH/ST3sTJX2zSN9a1kEROjaV5D8hOVk="
},
"org/lwjgl#lwjgl/3.3.3/natives-windows-x86": {
"jar": "sha256-IqIjOCYlVOteEzyEQd7u2shNoILrO6yE0DLaT682l0k="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}
@@ -2,7 +2,7 @@
, fetchFromGitHub
}:
callPackage ./generic.nix rec {
callPackage ../generic.nix rec {
pname = "shorter-pixel-dungeon";
version = "1.4.0";
@@ -13,13 +13,6 @@ callPackage ./generic.nix rec {
hash = "sha256-iG90T/Ho8/JY3HgkACiBnGdbUGsVRlfxXbcNFHhzZi4=";
};
postPatch = ''
substituteInPlace build.gradle \
--replace-fail "gdxControllersVersion = '2.2.4-SNAPSHOT'" "gdxControllersVersion = '2.2.3'"
'';
depsHash = "sha256-PyBEhlOOVD3/YH4SWs1yMkdg3U96znk1/VV6SAr8S30=";
desktopName = "Shorter Pixel Dungeon";
meta = {
@@ -0,0 +1,252 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://oss.sonatype.org/content/repositories/snapshots/com/badlogicgames": {
"gdx-controllers#gdx-controllers-core/2.2.4-20231021.200112-6/SNAPSHOT": {
"jar": "sha256-Gdz2J1IvDJFktUD2XeGNS0SIrOyym19X/+dCbbbe3/U=",
"pom": "sha256-90QW/Mtz1jbDUhKjdJ88ekhulZR2a7eCaEJoswmeny4="
},
"gdx-controllers#gdx-controllers-desktop/2.2.4-20231021.200114-6/SNAPSHOT": {
"jar": "sha256-4mhLijZwQHk2pP5qXIIzrsO9CwNC3CDti/5szclkVa8=",
"pom": "sha256-10+zD8flpKIPzji5NFgtYcwE5O74hSzzvvqBh84wLf4="
},
"gdx-controllers/gdx-controllers-core/2.2.4-SNAPSHOT/maven-metadata": {
"xml": {
"groupId": "com.badlogicgames.gdx-controllers",
"lastUpdated": "20231021200112"
}
},
"gdx-controllers/gdx-controllers-desktop/2.2.4-SNAPSHOT/maven-metadata": {
"xml": {
"groupId": "com.badlogicgames.gdx-controllers",
"lastUpdated": "20231021200114"
}
}
},
"https://repo.maven.apache.org/maven2": {
"com/badlogicgames/gdx#gdx-backend-lwjgl3/1.12.1": {
"jar": "sha256-B3OwjHfBoHcJPFlyy4u2WJuRe4ZF/+tKh7gKsDg41o0=",
"module": "sha256-9O7d2ip5+E6OiwN47WWxC8XqSX/mT+b0iDioCRTTyqc=",
"pom": "sha256-IRSihaCUPC2d0QzB0MVDoOWM1DXjcisTYtnaaxR9SRo="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.12.1": {
"pom": "sha256-cAGFUunqi4o21kDX8V86OT6aMmXjJUqyMHLHhUWLBm4="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.12.1/natives-desktop": {
"jar": "sha256-1g5ZN21QWpk+yLogowR3rwaQKx4pJ/8uN17/2/Ql2UE="
},
"com/badlogicgames/gdx#gdx-freetype/1.12.1": {
"jar": "sha256-rbjskAa7YdrW0pdslaHeGN5eGmUULRilgH0OUkyL8WU=",
"module": "sha256-HG9UGDxQFjSvGqLrKEkE7YnVvqtURs7FyqWwunHdXKE=",
"pom": "sha256-pLaMZBcEufzo+xszIlcUPJSYJJQg1uY6rm7tb6fHyT8="
},
"com/badlogicgames/gdx#gdx-jnigen-loader/2.3.1": {
"jar": "sha256-ZJDdoiWmHHYCwnu+xOSBE3/1lfjOCy3bpBTww0Bq7mA=",
"module": "sha256-nNWFK9nlHTbRJxrypGzZfOwk5XEHblQTbsmtNxhGua8=",
"pom": "sha256-7e2XZPzSpbw8peeAUEHppiAZ+ovkNLWZ8D1JR+KkQng="
},
"com/badlogicgames/gdx#gdx-platform/1.12.1": {
"pom": "sha256-bZhlcVVYfr/+qIAG20v12CgcyUetGduKZP28TnOzkZc="
},
"com/badlogicgames/gdx#gdx-platform/1.12.1/natives-desktop": {
"jar": "sha256-P+utqUwiNjYQkXufuMJLD55h4+bGnHO9DTUDhYTA4e0="
},
"com/badlogicgames/gdx#gdx/1.12.1": {
"jar": "sha256-jTIJ6UghH96c2swrAfrO0yPlSKpS73jlx2CEWoh0aXA=",
"module": "sha256-7Th6fCSDcEBGAyOsXYZIZwKAPw88K1h448x4If03n6o=",
"pom": "sha256-Qg9vfLMYtQsglKsHYme67w6bBlI0yHqWCqkvtCEYpZY="
},
"com/badlogicgames/jamepad#jamepad/2.26.5.0": {
"jar": "sha256-sO+RC6Uxyt/gQYSWow2Hy6xGAhsGJUf1tZR+A1Q1cRo=",
"module": "sha256-KGmFPVwJdU2vuY9u6veZLc2Q6K3uFxL/bgjmUgBKflA=",
"pom": "sha256-Up7mQ8lbw+6SfuSnRqwFaOQSnbb5dscD82IjN9/6Inc="
},
"com/badlogicgames/jlayer#jlayer/1.0.1-gdx": {
"jar": "sha256-qrze3C4/pBxOE4hwUj10MzfxiZMQgGMLoaIoVTjNAPs=",
"pom": "sha256-nGCRe2JnOIvFeWpSDswPF8ed2hVGUM0FQdTEE4ghv0k="
},
"org/jcraft#jorbis/0.0.17": {
"jar": "sha256-4GfymjcBQmtn7ZcwNpScbljKW7U+73JAsuceKG0lKp4=",
"pom": "sha256-GN47DZMq+Zgy202DL2g1B/vdWgsMJN1oDoTOb1cYLiQ="
},
"org/json#json/20170516": {
"jar": "sha256-gT835IIPGFTopOtPgN+UvxsfLsbDtyaS8jq5pVYlavY=",
"pom": "sha256-ZMFVQ6PV2yeaIK6w36A0oqecIVn4zUAd6kj/DyNMGN0="
},
"org/lwjgl#lwjgl-glfw/3.3.3": {
"jar": "sha256-vtx1f9KxslUUbbJrdLnL0fz1ZEuJtHsQT6chx0FgQlk=",
"pom": "sha256-fJuPWGrEz36esvNnrphUzK7i2Nf2LiOHxJ0sGvrtirM="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux": {
"jar": "sha256-uDBgYrF3QfNCaQiHUUIfGsIaWXv7vQxsYSJjAc3nRLg="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux-arm32": {
"jar": "sha256-3Z1NZxT8k1nUfdoNR8HYyLvkmQG393wj/Kepyb/CmFg="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-linux-arm64": {
"jar": "sha256-zGE5yD95nQ4UhOpMIByM5tV8jHokSlIXEWqAax60F5s="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-macos": {
"jar": "sha256-qJtVNirsnlo7vRNkYBu4WxR9trrmiJHKmiMtbPstVew="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-macos-arm64": {
"jar": "sha256-uUUdZ7wXyQb7goKlUi8liwIvMFaeC2LaAB1ZChe0Xhk="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-windows": {
"jar": "sha256-mBVbRR38b1hQid7HehL5wFeJxNzrjaRy+dMIFgEBpw0="
},
"org/lwjgl#lwjgl-glfw/3.3.3/natives-windows-x86": {
"jar": "sha256-lkZVXUBfDSo6lXa1BvV8FjKvZPaaiuWMsESK4EqceCQ="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3": {
"jar": "sha256-6Z4xJp5meKS/xi7yTFCkgcAcvdAEhh7Omlm6EnaMZRY=",
"pom": "sha256-IJuMfX+cGXLVyNX5zhmjUW/5BxRD0N+Khm2hNDvS46k="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux": {
"jar": "sha256-TkoT1wFdQmBbvPfvn66tRt6sZAnkN3qO1K6oFfFGNLM="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux-arm32": {
"jar": "sha256-5IM/wmIeLnMCBXPmKZcJIPHNHfmE/hyc7bszSNzDeG8="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-linux-arm64": {
"jar": "sha256-44PVJBwNR/QBKnU+C//+Ra/DDQBiGbm9iQN1ahA3ibU="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-macos": {
"jar": "sha256-ICTapcaqQHhmQUi3OQ+4sjHyNw6g4X1AeJTbp+nlZOw="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-macos-arm64": {
"jar": "sha256-Y5Vuokb/ZKqpzg4dbjzK1obPv5N9H81suNX0T2OCFgw="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-windows": {
"jar": "sha256-mUnI5JmYvQyHjYQohAEfE4PihRAFCR4LK897dnG4SOs="
},
"org/lwjgl#lwjgl-jemalloc/3.3.3/natives-windows-x86": {
"jar": "sha256-2bTgbiqEIFWD+wVEDSI4OFqRywGgYN2x03YiOuIl8Uo="
},
"org/lwjgl#lwjgl-openal/3.3.3": {
"jar": "sha256-rg6Cdnys8Ikh9Xj7qdhHU93rAM6toFEKK0qIK+KPv5U=",
"pom": "sha256-f6aiEbvk5FuCmHU31kN6e1KUM07TrBbLhElV70PV5w8="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux": {
"jar": "sha256-kDD+2SinHqwv30zhZDzE7HJNhxDjtDe9znUL3J6YKyo="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux-arm32": {
"jar": "sha256-xyXRfh5GJsf0O29NCKRnSW4JECXnHxn0+x8xN8Tabmc="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-linux-arm64": {
"jar": "sha256-q/OSSHs1h9qJtlUlAAjfSjYKL9Xh7gCr1h9/UpFSBaE="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-macos": {
"jar": "sha256-gmSuMqyfQTxPRQGGPF9udXam/avcXQUtMoG7rMM3fx0="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-macos-arm64": {
"jar": "sha256-OZJGOhao3xn2MRewiD6tDtko3U3wF/VbXk4St6JwSJo="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-windows": {
"jar": "sha256-49p8PbJcgduNQl7x49v6FQALBA1mnwCLCBPJQzOslsg="
},
"org/lwjgl#lwjgl-openal/3.3.3/natives-windows-x86": {
"jar": "sha256-hSyk42sf390++2zkLwi30PlXsExLz714BXsMeZ85kjE="
},
"org/lwjgl#lwjgl-opengl/3.3.3": {
"jar": "sha256-UGLadQ5ffsieJ+i2e31A+oxLFokBWeNfgoEWzmyOyh4=",
"pom": "sha256-RDkltWQq0xjUnfrpe66c3QnkkCWzAqlLAQf8iIm+bN0="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux": {
"jar": "sha256-2COpLGooELURLaME3MarzUyxAnBvdPfpNKIjzqIFElA="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux-arm32": {
"jar": "sha256-BbGiXD+3Ipdao78siIQ3I9puEFmhktVo3e/AGkV/qkc="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-linux-arm64": {
"jar": "sha256-Cyt1Mn1HRRY0EjNI1VUDrgPlFVGwyIea6QyOS04aT5w="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-macos": {
"jar": "sha256-TBBz0OWumZZtDvHWp3lXWEdtJH2TD9xewYZeOMuEfM4="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-macos-arm64": {
"jar": "sha256-8bPx3oP5c6uuOkvDLbWyKa5dVcyA27xffIQYEv4gtf4="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-windows": {
"jar": "sha256-9F5fYFlrA7Lj2LmKEjyFXr0LUVTIFV3CpWuJDMyQdHc="
},
"org/lwjgl#lwjgl-opengl/3.3.3/natives-windows-x86": {
"jar": "sha256-nZnSA95OMShsrnU6HfuYE2fJNzTxlEZEunG+Uhs68sw="
},
"org/lwjgl#lwjgl-stb/3.3.3": {
"jar": "sha256-DP96pG6p1w/MIIVwFSk+qA+/Ia3Kw0YAyE2puBpEypM=",
"pom": "sha256-jR2kP3mIdcV5yokH95rk/D6tFVQl6pVVxvqqsT1Q5J0="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux": {
"jar": "sha256-xEiQaN3G3ESxAwcZQ/gBotB2Y01LdNtHCSf4SjCCGeE="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux-arm32": {
"jar": "sha256-/WYDpBauUJJiAxV7ajQOiPX60GyAjvQcsDUBcTn+Lzw="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-linux-arm64": {
"jar": "sha256-F/DPG45SLuprS5fBkHCznlT1+H7YT7iVhXR+QPkF4ds="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-macos": {
"jar": "sha256-MpN6NS20usPpKqG72uKYipWOS5B6tbVXdky6gtsgupc="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-macos-arm64": {
"jar": "sha256-sfZYdf2d3SgJe+YHYCniuPq168FibiHO92FhHfynFcI="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-windows": {
"jar": "sha256-0Sq4Zv4RaekkrFtNa7d2eueEKp/IZSeYaCwAabtz/PI="
},
"org/lwjgl#lwjgl-stb/3.3.3/natives-windows-x86": {
"jar": "sha256-RkJORUWXM7JsSnsN0mlSCctpONr6OpASxqVoLJSixA4="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3": {
"jar": "sha256-7gUVBU7hmj9AiEJv7p2HnrLuZXsH5QZOTiyFH2rc8Us=",
"pom": "sha256-LBvRGfQeZaVEYT+R5xYOAGuBkW5zpu919UkkLMTzvvI="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-linux": {
"jar": "sha256-oHb6BaTRdHYuq1hS7nLCnRSrEKVlTyf7AGZO8bUsDAU="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-linux-arm64": {
"jar": "sha256-gNNOdtFcBJUXRBSIMpCDkdqLFPaKAwtksLQHAqNzkdc="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-macos": {
"jar": "sha256-RGXdRv35MJwM5kw1KaDaZ5L7ZxHDKB6MXbqTXmqb/Dw="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-macos-arm64": {
"jar": "sha256-b32XlBRlHjQ9yLiz+q3g4tnk/fmdVl1WI+EtQNuuSiI="
},
"org/lwjgl#lwjgl-tinyfd/3.3.3/natives-windows": {
"jar": "sha256-AihZEfHIgXNfpNDrFB/+qv2aK7k0nZj3wfuKnLScD1g="
},
"org/lwjgl#lwjgl/3.3.3": {
"jar": "sha256-3Jx7LUjoOW1oiV+JAv+gHkYlPeRN/pJ1M/8JRX6/7sQ=",
"pom": "sha256-gx1Gb8AWKUUrRhNzEeFYI8CWx9b66VKYxke5+/XWgfQ="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux": {
"jar": "sha256-5mNzjFGaBvbWWYgvqOTgmvfxDpIZKe5cxUp1h/Yu1Mk="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux-arm32": {
"jar": "sha256-cNP3SNRawTWDKplV6lGcpv7Tqn0dR+tnR8uHk2hGyUE="
},
"org/lwjgl#lwjgl/3.3.3/natives-linux-arm64": {
"jar": "sha256-OXp5pdiQcobUAY0CbLw3NYxTu7aqvDoVNPGf8jt/hVg="
},
"org/lwjgl#lwjgl/3.3.3/natives-macos": {
"jar": "sha256-ApTuTi3X72vvr/r8C7maKom3YHC1zYMC89dWJLZ4bQM="
},
"org/lwjgl#lwjgl/3.3.3/natives-macos-arm64": {
"jar": "sha256-UKycoJ5Z8FHcrPTcCyFF6ekW5qsUYzt1aUIxv+WTFKg="
},
"org/lwjgl#lwjgl/3.3.3/natives-windows": {
"jar": "sha256-XuY6GRh+/lu4dH/ST3sTJX2zSN9a1kEROjaV5D8hOVk="
},
"org/lwjgl#lwjgl/3.3.3/natives-windows-x86": {
"jar": "sha256-IqIjOCYlVOteEzyEQd7u2shNoILrO6yE0DLaT682l0k="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}
@@ -4,7 +4,7 @@
, substitute
}:
callPackage ./generic.nix rec {
callPackage ../generic.nix rec {
pname = "summoning-pixel-dungeon";
version = "1.2.5a";
@@ -21,8 +21,6 @@ callPackage ./generic.nix rec {
substitutions = [ "--subst-var-by" "version" version ];
})];
depsHash = "sha256-0P/BcjNnbDN25DguRcCyzPuUG7bouxEx1ySodIbSwvg=";
desktopName = "Summoning Pixel Dungeon";
meta = {
@@ -0,0 +1,177 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://repo.maven.apache.org/maven2": {
"com/badlogicgames/gdx#gdx-backend-lwjgl3/1.10.0": {
"jar": "sha256-d++ydeqgB5DWDTfjfoOywrohsQc+9HWIoNytlE2wQPA=",
"pom": "sha256-uMxeWteXeontAQkrkwVjHaMmig33+nOtRB+p+98MMR0="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.10.0": {
"pom": "sha256-IwJUobNWR3huT995tgEnT1WlvDUHweu5MNQLnYQtHmI="
},
"com/badlogicgames/gdx#gdx-freetype-platform/1.10.0/natives-desktop": {
"jar": "sha256-seXxOGFJ8yzo5P0nArn9cefzkiXnhthi9HJRSw1u7UM="
},
"com/badlogicgames/gdx#gdx-freetype/1.10.0": {
"jar": "sha256-/w9zEsBjV6vsBm1JKWuPZVS0D6HMPla5wgiVdBaWoSU=",
"pom": "sha256-U8Gwv4iBQJv5t6rf5NBhZEUbfChBfKhJECjEj36UtHU="
},
"com/badlogicgames/gdx#gdx-parent/1.10.0": {
"pom": "sha256-AYAdm3Dejy2nDDIhir83qOiJLpQBa/LUOzq5vzMVM4A="
},
"com/badlogicgames/gdx#gdx-platform/1.10.0": {
"pom": "sha256-3jAHeUCQqrP43j+EUMT8baNr3cdnl9E+8r+RsiQzPQw="
},
"com/badlogicgames/gdx#gdx-platform/1.10.0/natives-desktop": {
"jar": "sha256-CUvIkr+UISzmdLtaO+sUyYUwwf9vac1OQ4uTpvVWask="
},
"com/badlogicgames/gdx#gdx/1.10.0": {
"jar": "sha256-/7SbBnEeNLGhdd8XMRsPOuDoW/RsVpoTfsANKRuyyuE=",
"pom": "sha256-vhyhtPolCV13nAxCdpMKDe/64+lYsnhuycZtx/LxN9Y="
},
"com/badlogicgames/jlayer#jlayer/1.0.1-gdx": {
"jar": "sha256-qrze3C4/pBxOE4hwUj10MzfxiZMQgGMLoaIoVTjNAPs=",
"pom": "sha256-nGCRe2JnOIvFeWpSDswPF8ed2hVGUM0FQdTEE4ghv0k="
},
"org/jcraft#jorbis/0.0.17": {
"jar": "sha256-4GfymjcBQmtn7ZcwNpScbljKW7U+73JAsuceKG0lKp4=",
"pom": "sha256-GN47DZMq+Zgy202DL2g1B/vdWgsMJN1oDoTOb1cYLiQ="
},
"org/json#json/20170516": {
"jar": "sha256-gT835IIPGFTopOtPgN+UvxsfLsbDtyaS8jq5pVYlavY=",
"pom": "sha256-ZMFVQ6PV2yeaIK6w36A0oqecIVn4zUAd6kj/DyNMGN0="
},
"org/lwjgl#lwjgl-glfw/3.2.3": {
"jar": "sha256-7yec2u7eTKNE51alb4WoXL0Dn3kxARl1Zy3BuQC1nI8=",
"pom": "sha256-DY2qM/0T4KBNt+H+299oliGWkx/20Y4giZN9r5Fx7y4="
},
"org/lwjgl#lwjgl-glfw/3.2.3/natives-linux": {
"jar": "sha256-Y99GHednfhZY0TcK5wUBqGx6Qv9H9mkpKNTVvNHmxYk="
},
"org/lwjgl#lwjgl-glfw/3.2.3/natives-linux-arm32": {
"jar": "sha256-E9pTVkPR4RvpMcdKDDa5hdoIJuF2ckSu140IdxwSa3M="
},
"org/lwjgl#lwjgl-glfw/3.2.3/natives-linux-arm64": {
"jar": "sha256-5IkX7vQXhQb20mbEUowS+vlhs3nyN/d3lhTPXc9R0jM="
},
"org/lwjgl#lwjgl-glfw/3.2.3/natives-macos": {
"jar": "sha256-ZOZIODO8lNp/Oc9x75lo/7/zSE8FS+Mz8Cc34eMUidA="
},
"org/lwjgl#lwjgl-glfw/3.2.3/natives-windows": {
"jar": "sha256-GSct3hyelmZGtmayqmtZXr9Zj+dRnNtKsGwbM9jga6w="
},
"org/lwjgl#lwjgl-glfw/3.2.3/natives-windows-x86": {
"jar": "sha256-tva+jC2llyvp41zzlr7sRnXoudkYPBVHXEb8lnKgTU4="
},
"org/lwjgl#lwjgl-jemalloc/3.2.3": {
"jar": "sha256-b3kNvndetWvmOOnZezVTE8DK83TxNUWZZnB1ahXL/m8=",
"pom": "sha256-rl4zlsr8aV3BVRgNcIGkkFAlYUlBzd8Iz5llXvG02bI="
},
"org/lwjgl#lwjgl-jemalloc/3.2.3/natives-linux": {
"jar": "sha256-kET+UTHXjN63S7ezybOhsVX6dTDjtMK5HLMC7rTCnS0="
},
"org/lwjgl#lwjgl-jemalloc/3.2.3/natives-linux-arm32": {
"jar": "sha256-UAuvqQH46bc9lep28RfStuf9fc7YjiqISgCrIf9NlqI="
},
"org/lwjgl#lwjgl-jemalloc/3.2.3/natives-linux-arm64": {
"jar": "sha256-gPCtzfusC3iQexpywu2A1BW2uGWvrd2qTBA3Rymys98="
},
"org/lwjgl#lwjgl-jemalloc/3.2.3/natives-macos": {
"jar": "sha256-b/7STgWbCRdgdU1rCrWuWUkNBMIJ+EuEpXHxy9ZS5EE="
},
"org/lwjgl#lwjgl-jemalloc/3.2.3/natives-windows": {
"jar": "sha256-y9QXTlytKkDRJpMrA9jTlrmzJIQTXV4/KoofNKpLIiQ="
},
"org/lwjgl#lwjgl-jemalloc/3.2.3/natives-windows-x86": {
"jar": "sha256-y/Qtr6UVizabe8U01zYEw5VQdbRI9yMAT/P7HpAd4Qo="
},
"org/lwjgl#lwjgl-openal/3.2.3": {
"jar": "sha256-mxv99go/57psSJdkEdMRV1+yt6fnRX5VidFYhxmCD7A=",
"pom": "sha256-E9O+StiSkp6SE78rHUkMbrY3JLjehQ6zrntaKjdmG+8="
},
"org/lwjgl#lwjgl-openal/3.2.3/natives-linux": {
"jar": "sha256-7d0+6RfFkO0g/JssVGO3PRI7LhUCwvlNb3NU7OVT7Xc="
},
"org/lwjgl#lwjgl-openal/3.2.3/natives-linux-arm32": {
"jar": "sha256-oZyXuR9FBUx+7DrViWz/qhIekPD4j3H8X3lo5aL5Hns="
},
"org/lwjgl#lwjgl-openal/3.2.3/natives-linux-arm64": {
"jar": "sha256-YX4XOLZsxZEqmE2shuCDVnuPUHCADFQgsGW2Fk0fyvY="
},
"org/lwjgl#lwjgl-openal/3.2.3/natives-macos": {
"jar": "sha256-1tCCMsvvMw3llL6cQZmpY0q1vsagUTXQt20ygnR/yS0="
},
"org/lwjgl#lwjgl-openal/3.2.3/natives-windows": {
"jar": "sha256-PePin8ODpITjfpIYrezKb6EqNUZV3bu4y+ryuMT2FA4="
},
"org/lwjgl#lwjgl-openal/3.2.3/natives-windows-x86": {
"jar": "sha256-mY6z6IVtwnHCNL5lCh/Urqr/CIFl2Q9SEgURSODtHxw="
},
"org/lwjgl#lwjgl-opengl/3.2.3": {
"jar": "sha256-ELzDdQbgHRR31l8fzwqmcslet4UmWyi38yHIOBCT7aI=",
"pom": "sha256-hQ+jXJN9DPfjsxVKW1ujkDFWF1Cino0aoBNphk0wLLA="
},
"org/lwjgl#lwjgl-opengl/3.2.3/natives-linux": {
"jar": "sha256-Rm6LrhgYxMWEdx7gk8inNeJvVvslqB3eVnUWCqovoEU="
},
"org/lwjgl#lwjgl-opengl/3.2.3/natives-linux-arm32": {
"jar": "sha256-FsLVHzvUR4FzhcdTByx4YIsrMCpsZASW1WH93+d1ZAw="
},
"org/lwjgl#lwjgl-opengl/3.2.3/natives-linux-arm64": {
"jar": "sha256-2OMYjUTPv4k33/CcuPClU/hwHw635mSjzKcLcGFtVOw="
},
"org/lwjgl#lwjgl-opengl/3.2.3/natives-macos": {
"jar": "sha256-5LTQzZE41SJxwdXBjkPJrF020acnxH5e5AMctFznMMo="
},
"org/lwjgl#lwjgl-opengl/3.2.3/natives-windows": {
"jar": "sha256-wI494xYyFjrF90b6lF8ZJBQuCFIL2cgbfdG129GwuLs="
},
"org/lwjgl#lwjgl-opengl/3.2.3/natives-windows-x86": {
"jar": "sha256-POzFHWcd92u2DMmu95hM9EVAoKc1i4brAXy7gNj3G3s="
},
"org/lwjgl#lwjgl-tinyfd/3.2.3": {
"jar": "sha256-eklNyHUeXvjLec5xaMfbVmZIE3grkZK7ETDkMpuRQBE=",
"pom": "sha256-9JHY/FlAu9WYtNNtbchR///Ugeqj6pE80de/GCJoLI0="
},
"org/lwjgl#lwjgl-tinyfd/3.2.3/natives-linux": {
"jar": "sha256-s9m98zg+6BfMJ5VcWGTYC6NuhtjvSqLH+G3NL6c96Rg="
},
"org/lwjgl#lwjgl-tinyfd/3.2.3/natives-macos": {
"jar": "sha256-Oq75QsQaT+7i1rdrzurx/2vd3/AxWm3domCvBvjrHUQ="
},
"org/lwjgl#lwjgl-tinyfd/3.2.3/natives-windows": {
"jar": "sha256-Q/M1D+EtGrpiB6b28cq72ujoB110OqCcz2hQ8kh6MTo="
},
"org/lwjgl#lwjgl/3.2.3": {
"jar": "sha256-+ZKMO0tUBkOhu9WShtPHF15HCEkmGgwpqBOJ9SJlrYs=",
"pom": "sha256-IL2EdryHg3IwMY1rmvYuN1cL2qIqEqJAwwIs0k+t/W0="
},
"org/lwjgl#lwjgl/3.2.3/natives-linux": {
"jar": "sha256-ACgQEp/GrEzfzfGQ4YpkOlAhtjAPSJwQJrvF0AFAyi4="
},
"org/lwjgl#lwjgl/3.2.3/natives-linux-arm32": {
"jar": "sha256-RrY5yizuoll7Z8yeAEgz0OgnEd92q15SzenGTwGdRNY="
},
"org/lwjgl#lwjgl/3.2.3/natives-linux-arm64": {
"jar": "sha256-Pbazlfu2icsYvSetIAVfS8aV7pNZHXHR6kXzEoHG8AM="
},
"org/lwjgl#lwjgl/3.2.3/natives-macos": {
"jar": "sha256-XFIMRlqEA0uLwj4dfs1iG7mcQ3zSVOpGtTGXRI0bgSg="
},
"org/lwjgl#lwjgl/3.2.3/natives-windows": {
"jar": "sha256-vfUZuaqQ95mVQROhXfqEsnPuR4GHaz7N6/GSzk+Iomw="
},
"org/lwjgl#lwjgl/3.2.3/natives-windows-x86": {
"jar": "sha256-Trduz48tvJzT+iexpL+XhOqRxK/DhpEHRhPVv3o03I8="
},
"org/sonatype/oss#oss-parent/5": {
"pom": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}
@@ -34,35 +34,6 @@ let
# Shared libraries needed by the Java application
libraries = lib.makeLibraryPath [ ghostscript ];
# Fixed-output derivation that fetches the Java dependencies
javaDeps = stdenv.mkDerivation {
pname = "cie-java-deps";
inherit src version;
nativeBuildInputs = [ gradle ];
buildPhase = ''
# Run the fetchDeps task
export GRADLE_USER_HOME=$(mktemp -d)
gradle --no-daemon -b cie-java/build.gradle fetchDeps
'';
installPhase = ''
# Build a tree compatible with the maven repository format
pushd "$GRADLE_USER_HOME/caches/modules-2/files-2.1"
find -type f | awk -F/ -v OFS=/ -v out="$out" '{
infile = $0
gsub(/\./, "/", $2)
system("install -m644 -D "infile" "out"/"$2"/"$3"/"$4"/"$6)
}'
popd
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-fxrjo4iduXzTgMqmQGwdI1vLMA4EZLObsHyKGZ6b14I=";
};
in
stdenv.mkDerivation {
@@ -101,26 +72,40 @@ stdenv.mkDerivation {
# libraries and the Java application builds.
preConfigure = "pushd libs";
postBuild = ''
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
gradleFlags = [
"-Dorg.gradle.java.home=${jre}"
"--build-file" "cie-java/build.gradle"
];
gradleBuildTask = "standalone";
buildPhase = ''
runHook preBuild
ninjaBuildPhase
pushd ../..
gradleBuildPhase
popd
# Use the packages in javaDeps for both plugins and dependencies
localRepo="maven { url uri('${javaDeps}') }"
sed -i cie-java/settings.gradle -e "1i \
pluginManagement { repositories { $localRepo } }"
substituteInPlace cie-java/build.gradle \
--replace 'mavenCentral()' "$localRepo"
runHook postBuild
'';
# Build the Java application
export GRADLE_USER_HOME=$(mktemp -d)
gradle standalone \
--no-daemon \
--offline \
--parallel \
--info -Dorg.gradle.java.home=${jre} \
--build-file cie-java/build.gradle
doCheck = true;
pushd libs/build
checkPhase = ''
runHook preCheck
mesonCheckPhase
pushd ../..
gradleCheckPhase
popd
runHook postCheck
'';
postInstall = ''
@@ -144,7 +129,7 @@ stdenv.mkDerivation {
install -Dm644 LICENSE "$out/share/licenses/cieid/LICENSE"
'';
passthru = { inherit javaDeps; };
preGradleUpdate = "cd ../..";
meta = with lib; {
homepage = "https://github.com/M0Rf30/cie-middleware-linux";
+185
View File
@@ -0,0 +1,185 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://plugins.gradle.org/m2": {
"com/diffplug/durian#durian-collect/1.2.0": {
"jar": "sha256-sZTAuIAhzBFsIcHcdvScLB/hda9by3TIume527+aSMw=",
"pom": "sha256-i7diCGoKT9KmRzu/kFx0R2OvodWaVjD3O7BLeHLAn/M="
},
"com/diffplug/durian#durian-core/1.2.0": {
"jar": "sha256-F+0KrLOjwWMjMyFou96thpTzKACytH1p1KTEmxFNXa4=",
"pom": "sha256-hwMg6QdVNxsBeW/oG6Ul/R3ui3A0b1VFUe7dQonwtmI="
},
"com/diffplug/durian#durian-io/1.2.0": {
"jar": "sha256-CV/R3HeIjAc/C+OaAYFW7lJnInmLCd6eKF7yE14W6sQ=",
"pom": "sha256-NQkZQkMk4nUKPdwvobzmqQrIziklaYpgqbTR1uSSL/4="
},
"com/diffplug/durian#durian-swt.os/4.2.2": {
"jar": "sha256-a1Mca0vlgaizLq2GHdwVwsk7IMZl+00z4DgUg8JERfQ=",
"module": "sha256-rVlQLGknZu48M0vkliigDctNka4aSPJjLitxUStDXPk=",
"pom": "sha256-GzxJFP1eLM4pZq1wdWY5ZBFFwdNCB3CTV4Py3yY2kIU="
},
"com/diffplug/spotless#com.diffplug.spotless.gradle.plugin/6.25.0": {
"pom": "sha256-9FyCsS+qzYWs1HTrppkyL6XeqIQIskfQ5L3pQSkIIjo="
},
"com/diffplug/spotless#spotless-lib-extra/2.45.0": {
"jar": "sha256-YCy7zTgo7pz7LjCn+bMDNcaScTB3FBTUzdKU0h/ly2c=",
"module": "sha256-9pnkNfTlzgPbYJpHaO6wNj1uB8ZfvPrx/GKcTnbuf7A=",
"pom": "sha256-5x2LkRDdSNLn9KVLi/uozlWpbmteu9T0OpJGZJz1b7A="
},
"com/diffplug/spotless#spotless-lib/2.45.0": {
"jar": "sha256-sllply4dmAKAyirlKRl+2bMWCq5ItQbPGTXwG9Exhmc=",
"module": "sha256-+x+8+TUAczrHWcp99E8P9mVTEze0LaAS4on/CINNiQ8=",
"pom": "sha256-WKd8IsQLIc8m29tCEwFu9HrM9bBwchfHkyqQ9D+PMNw="
},
"com/diffplug/spotless#spotless-plugin-gradle/6.25.0": {
"jar": "sha256-9euQikxdpGKZ51Q/qtoEAtLEt31Yx7Qy1Lblk0mygKM=",
"module": "sha256-RoHRe/PJIF2DeOynBcAAywzJjcx40DATy2iJjGvSx0Q=",
"pom": "sha256-q1ZuPYS2w/rHqPySXy279TzZdZywOvPAfQ3EN9OXqNo="
},
"com/googlecode/concurrent-trees#concurrent-trees/2.6.1": {
"jar": "sha256-BONySYTipcv1VgbPo3KlvT08XSohUzpwBOPN5Tl2H6U=",
"pom": "sha256-Q8K5sULnBV0fKlgn8QlEkl0idH2XVrMlDAeqtHU4qXE="
},
"com/googlecode/javaewah#JavaEWAH/1.2.3": {
"jar": "sha256-1lImlJcTxMYaeE9BxRFn57Axb5N2Q5jrup5DNrPZVMI=",
"pom": "sha256-5O1sZpYgNm+ZOSBln+CsfLyD11PbwNwOseUplzr5byM="
},
"com/squareup/okhttp3#okhttp/4.12.0": {
"jar": "sha256-sQUAgbFLt6On5VpNPvAbXc+rxFO0VzpPwBl2cZHV9OA=",
"module": "sha256-YH4iD/ghW5Kdgpu/VPMyiU8UWbTXlZea6vy8wc6lTPM=",
"pom": "sha256-fHNwQKlBlSLnxQzAJ0FqcP58dinlKyGZNa3mtBGcfTg="
},
"com/squareup/okio#okio-jvm/3.6.0": {
"jar": "sha256-Z1Q/Bzb8QirpJ+0OUEuYvF4mn9oNNQBXkzfLcT2ihBI=",
"module": "sha256-scIZnhwMyWnvYcu+SvLsr5sGQRvd4By69vyRNN/gToo=",
"pom": "sha256-YbTXxRWgiU/62SX9cFJiDBQlqGQz/TURO1+rDeiQpX8="
},
"com/squareup/okio#okio/3.6.0": {
"module": "sha256-akesUDZOZZhFlAH7hvm2z832N7mzowRbHMM8v0xAghg=",
"pom": "sha256-rrO3CiTBA+0MVFQfNfXFEdJ85gyuN2pZbX1lNpf4zJU="
},
"commons-codec#commons-codec/1.16.0": {
"jar": "sha256-VllfsgsLhbyR0NUD2tULt/G5r8Du1d/6bLslkpAASE0=",
"pom": "sha256-bLWVeBnfOTlW/TEaOgw/XuwevEm6Wy0J8/ROYWf6PnQ="
},
"dev/equo/ide#solstice/1.7.5": {
"jar": "sha256-BuFLxDrMMx2ra16iAfxnNk7RI/mCyF+lEx8IF+1lrk8=",
"module": "sha256-eYp7cGdyE27iijLt2GOx6fgWE6NJhAXXS+ilyb6/9U8=",
"pom": "sha256-20U7urXn2opDE5sNzTuuZykzIfKcTZH1p5XZ/2xS3d8="
},
"org/apache#apache/29": {
"pom": "sha256-PkkDcXSCC70N9jQgqXclWIY5iVTCoGKR+mH3J6w1s3c="
},
"org/apache/commons#commons-parent/58": {
"pom": "sha256-LUsS4YiZBjq9fHUni1+pejcp2Ah4zuy2pA2UbpwNVZA="
},
"org/eclipse/jgit#org.eclipse.jgit-parent/6.7.0.202309050840-r": {
"pom": "sha256-u56FQW2Y0HMfx2f41w6EaAQWAdZnKuItsqx5n3qjkR8="
},
"org/eclipse/jgit#org.eclipse.jgit/6.7.0.202309050840-r": {
"jar": "sha256-tWRHfQkiQaqrUMhKxd0aw3XAGCBE1+VlnTpgqQ4ugBo=",
"pom": "sha256-BNB83b8ZjfpuRIuan7lA94HAEq2T2eqCBv4KTTplwZI="
},
"org/eclipse/platform#org.eclipse.osgi/3.18.300": {
"jar": "sha256-urlD5Y7dFzCSOGctunpFrsni2svd24GKjPF3I+oT+iI=",
"pom": "sha256-4nl2N1mZxUJ/y8//PzvCD77a+tiqRRArN59cL5fI/rQ="
},
"org/jetbrains#annotations/13.0": {
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
},
"org/jetbrains/kotlin#kotlin-stdlib-common/1.9.10": {
"jar": "sha256-zeM0G6GKK6JisLfPbFWyDJDo1DTkLJoT5qP3cNuWWog=",
"pom": "sha256-fUtwVHkQZ2s738iSWojztr+yRYLJeEVCgFVEzu9JCpI="
},
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.8.21": {
"pom": "sha256-m7EH1dXjkwvFl38AekPNILfSTZGxweUo6m7g8kjxTTY="
},
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.9.10": {
"jar": "sha256-rGNhv5rR7TgsIQPZcSxHzewWYjK0kD7VluiHawaBybc=",
"pom": "sha256-x/pnx5YTILidhaPKWaLhjCxlhQhFWV3K5LRq9pRe3NU="
},
"org/jetbrains/kotlin#kotlin-stdlib-jdk8/1.8.21": {
"pom": "sha256-ODnXKNfDCaXDaLAnC0S08ceHj/XKXTKpogT6o0kUWdg="
},
"org/jetbrains/kotlin#kotlin-stdlib-jdk8/1.9.10": {
"jar": "sha256-pMdNlNZM4avlN2D+A4ndlB9vxVjQ2rNeR8CFoR7IDyg=",
"pom": "sha256-X0uU3TBlp3ZMN/oV3irW2B9A1Z+Msz8X0YHGOE+3py4="
},
"org/jetbrains/kotlin#kotlin-stdlib/1.8.21": {
"pom": "sha256-/gzZ4yGT5FMzP9Kx9XfmYvtavGkHECu5Z4F7wTEoD9c="
},
"org/jetbrains/kotlin#kotlin-stdlib/1.9.10": {
"jar": "sha256-VemJxRK4CQd5n4VDCfO8d4LFs9E5MkQtA3nVxHJxFQQ=",
"pom": "sha256-fin79z/fceBnnT3ufmgP1XNGT6AWRKT1irgZ0sCI09I="
},
"org/junit#junit-bom/5.9.3": {
"module": "sha256-tAH9JZAeWCpSSqU0PEs54ovFbiSWHBBpvytLv87ka5M=",
"pom": "sha256-TQMpzZ5y8kIOXKFXJMv+b/puX9KIg2FRYnEZD9w0Ltc="
},
"org/slf4j#slf4j-api/1.7.36": {
"jar": "sha256-0+9XXj5JeWeNwBvx3M5RAhSTtNEft/G+itmCh3wWocA=",
"pom": "sha256-+wRqnCKUN5KLsRwtJ8i113PriiXmDL0lPZhSEN7cJoQ="
},
"org/slf4j#slf4j-parent/1.7.36": {
"pom": "sha256-uziNN/vN083mTDzt4hg4aTIY3EUfBAQMXfNgp47X6BI="
},
"org/sonatype/oss#oss-parent/5": {
"pom": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/tukaani#xz/1.9": {
"jar": "sha256-IRswbPxE+Plt86Cj3a91uoxSie7XfWDXL4ibuFX1NeU=",
"pom": "sha256-CTvhsDMxvOKTLWglw36YJy12Ieap6fuTKJoAJRi43Vo="
}
},
"https://repo.maven.apache.org/maven2": {
"com/google/code/gson#gson-parent/2.10.1": {
"pom": "sha256-QkjgiCQmxhUYI4XWCGw+8yYudplXGJ4pMGKAuFSCuDM="
},
"com/google/code/gson#gson/2.10.1": {
"jar": "sha256-QkHBSncnw0/uplB+yAExij1KkPBw5FJWgQefuU7kxZM=",
"pom": "sha256-0rEVY09cCF20ucn/wmWOieIx/b++IkISGhzZXU2Ujdc="
},
"commons-io#commons-io/2.15.1": {
"jar": "sha256-pYrxLuG2jP0uuwwnyu8WTwhDgaAOyBpIzCdf1+pU4VQ=",
"pom": "sha256-Fxoa+CtnWetXQLO4gJrKgBE96vEVMDby9ERZAd/T+R0="
},
"commons-logging#commons-logging/1.3.0": {
"jar": "sha256-ZtPJgEcLmbDFEdrT38CueyZewfsUTpa8AlOooXX9NNk=",
"pom": "sha256-je/afOtIiP/k1OYyeJVqGjxRS3W4Nj1nFqG9Zv6WLH8="
},
"net/java/dev/jna#jna/5.14.0": {
"jar": "sha256-NO0eHyf6iWvKUNvE6ZzzcylnzsOHp6DV40hsCWc/6MY=",
"pom": "sha256-4E4llRUB3yWtx7Hc22xTNzyUiXuE0+FJISknY+4Hrj0="
},
"org/apache#apache/31": {
"pom": "sha256-VV0MnqppwEKv+SSSe5OB6PgXQTbTVe6tRFIkRS5ikcw="
},
"org/apache/commons#commons-parent/65": {
"pom": "sha256-bPNJX8LmrJE6K38uA/tZCPs/Ip+wbTNY3EVnjVrz424="
},
"org/apache/pdfbox#fontbox/3.0.2": {
"jar": "sha256-ds8EEOkD49txQDKvu0WNWiO5IlO5/fiAA18J6orTraw=",
"pom": "sha256-hthT5W8q+Yb6c1s/kH6jh6KXNCLH0F8TwDasuRNal90="
},
"org/apache/pdfbox#pdfbox-io/3.0.2": {
"jar": "sha256-nW535C437zaC53aBEpwxRRXog9UKvB3aljguejHnDjg=",
"pom": "sha256-yD3gYR+UMN4W2dakjfXJEPgrkfHgU1xB9Woy9iYwz0c="
},
"org/apache/pdfbox#pdfbox-parent/3.0.2": {
"pom": "sha256-kN6rEjTjkUu8B07Ax3Y7+kFHgICziISpOwtVVxnWY0g="
},
"org/apache/pdfbox#pdfbox/3.0.2": {
"jar": "sha256-yv4sysEB6ao63z9+p23/AuWIWislWLdfr/l0dvBIfuI=",
"pom": "sha256-wMNAwn6AF2V+Y81PaJUG8U03Y10NFebRpAjysZFGax8="
},
"org/junit#junit-bom/5.10.1": {
"module": "sha256-IbCvz//i7LN3D16wCuehn+rulOdx+jkYFzhQ2ueAZ7c=",
"pom": "sha256-IcSwKG9LIAaVd/9LIJeKhcEArIpGtvHIZy+6qzN7w/I="
}
}
}
+3 -11
View File
@@ -23,21 +23,13 @@ let
gradle
];
buildPhase = args.buildPhase or ''
runHook preBuild
preBuild = ''
# Set project name, otherwise defaults to directory name
echo -e '\nrootProject.name = "${pname}"' >> settings.gradle
export GRADLE_USER_HOME=$(mktemp -d)
gradle \
--offline \
--no-daemon \
-PGHIDRA_INSTALL_DIR=${ghidra}/lib/ghidra
runHook postBuild
'';
gradleFlags = [ "-PGHIDRA_INSTALL_DIR=${ghidra}/lib/ghidra" ];
installPhase = args.installPhase or ''
runHook preInstall
+10 -74
View File
@@ -4,7 +4,6 @@
lib,
callPackage,
gradle_7,
perl,
makeBinaryWrapper,
openjdk17,
unzip,
@@ -76,69 +75,6 @@ let
HERE
'';
# Adds a gradle step that downloads all the dependencies to the gradle cache.
addResolveStep = ''
cat >>build.gradle <<HERE
task resolveDependencies {
doLast {
project.rootProject.allprojects.each { subProject ->
subProject.buildscript.configurations.each { configuration ->
resolveConfiguration(subProject, configuration, "buildscript config \''${configuration.name}")
}
subProject.configurations.each { configuration ->
resolveConfiguration(subProject, configuration, "config \''${configuration.name}")
}
}
}
}
void resolveConfiguration(subProject, configuration, name) {
if (configuration.canBeResolved) {
logger.info("Resolving project {} {}", subProject.name, name)
configuration.resolve()
}
}
HERE
'';
# fake build to pre-download deps into fixed-output derivation
# Taken from mindustry derivation.
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit version src patches;
postPatch = addResolveStep;
nativeBuildInputs = [
gradle
perl
] ++ lib.optional stdenv.isDarwin xcbuild;
buildPhase = ''
runHook preBuild
export HOME="$NIX_BUILD_TOP/home"
mkdir -p "$HOME"
export JAVA_TOOL_OPTIONS="-Duser.home='$HOME'"
export GRADLE_USER_HOME="$HOME/.gradle"
# First, fetch the static dependencies.
gradle --no-daemon --info -Dorg.gradle.java.home=${openjdk17} -I gradle/support/fetchDependencies.gradle init
# Then, fetch the maven dependencies.
gradle --no-daemon --info -Dorg.gradle.java.home=${openjdk17} resolveDependencies
runHook postBuild
'';
# 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 = ''
runHook preInstall
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/maven/$x/$3/$4/$5" #e' \
| sh
cp -r dependencies $out/dependencies
runHook postInstall
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-66gL4UFlBUo2JIEOXoF6tFvXtBdEX4b2MeSrV1b6Vg4=";
};
in
stdenv.mkDerivation (finalAttrs: {
inherit
@@ -187,20 +123,20 @@ stdenv.mkDerivation (finalAttrs: {
__darwinAllowLocalNetworking = true;
buildPhase = ''
runHook preBuild
export HOME="$NIX_BUILD_TOP/home"
mkdir -p "$HOME"
export JAVA_TOOL_OPTIONS="-Duser.home='$HOME'"
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
ln -s ${deps}/dependencies dependencies
gradleFlags = [ "-Dorg.gradle.java.home=${openjdk17}" ];
sed -i "s#mavenLocal()#mavenLocal(); maven { url '${deps}/maven' }#g" build.gradle
gradle --offline --no-daemon --info -Dorg.gradle.java.home=${openjdk17} buildGhidra
runHook postBuild
preBuild = ''
export JAVA_TOOL_OPTIONS="-Duser.home=$NIX_BUILD_TOP/home"
gradle -I gradle/support/fetchDependencies.gradle init
'';
gradleBuildTask = "buildGhidra";
installPhase = ''
runHook preInstall
+754
View File
@@ -0,0 +1,754 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://archive.eclipse.org": {
"tools/cdt/releases/8.6/cdt-8.6.0": {
"zip": "sha256-gbfRnVfEowCfR2FpmnLo1kK14dklHSu5jfQ4seKPi6k="
}
},
"https://files.pythonhosted.org/packages": {
"27/d6/003e593296a85fd6ed616ed962795b2f87709c3eee2bca4f6d0fe55c6d00/wheel-0.37.1-py2.py3-none-any": {
"whl": "sha256-S9zX2EATgIYSbNCSVNxhlftPxvAcBQodcjbyYw2x0io="
},
"2d/e0/f877c91e036fcaed2a827f80d6cbdf1d26cffc3333c9ebda31c55c45f050/Pybag-2.2.10-py3-none-any": {
"whl": "sha256-gc8eM91mfdIX3FahIzJnluZ5m4Vp8sbvt4wWN1yvmys="
},
"50/8f/518a37381e55a8857a638afa86143efa5508434613541402d20611a1b322/comtypes-1.4.1-py3-none-any": {
"whl": "sha256-ogig48ocClNic12g/2YYIoAdzocxK4lNfXUq3QEKIbA="
},
"83/1c/25b79fc3ec99b19b0a0730cc47356f7e2959863bf9f3cd314332bddb4f68/pywin32-306-cp312-cp312-win_amd64": {
"whl": "sha256-NyV3lMGtOe6b5lLaBGLcLjlMgVnf2ROopOjrb9NG2g4="
},
"8d/14/619e24a4c70df2901e1f4dbc50a6291eb63a759172558df326347dce1f0d/protobuf-3.20.3-py2.py3-none-any": {
"whl": "sha256-p8ptSIqo/38ynUxUWy262KwxRk8dixyHrRNGcXcx5Ns="
},
"90/c7/6dc0a455d111f68ee43f27793971cf03fe29b6ef972042549db29eec39a2/psutil-5.9.8": {
"tar.gz": "sha256-a+Em4yJUht/yhqj7mgYkalJT9MfFO0depfWsk05kGUw="
},
"c7/42/be1c7bbdd83e1bfb160c94b9cafd8e25efc7400346cf7ccdbdb452c467fa/setuptools-68.0.0-py3-none-any": {
"whl": "sha256-EeUsZ0FaOB0Q1rRiztnPuXBmF58OhxOZ4AbEqxAfyF8="
},
"d0/dd/b28df50316ca193dd1275a4c47115a720796d9e1501c1888c4bfa5dc2260/capstone-5.0.1-py3-none-win_amd64": {
"whl": "sha256-G/pcgeaIDK9BoxlGzW0tBpwEi8wi7fEhJUtQGgSN5nU="
}
},
"https://ftp.postgresql.org": {
"pub/source/v15.3/postgresql-15.3": {
"tar.gz": "sha256-CG04Uz4odHlmpNXx546kMuM6ePIdy5EzAQ7LUYn62Yw="
}
},
"https://github.com": {
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.1/FunctionID/vs2012_x64": {
"fidb": "sha256-1OmKs/eQuDF5MhhDC7oNiySl+/TaZbDB/6jLDPvrDNw="
},
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.1/FunctionID/vs2012_x86": {
"fidb": "sha256-pJDtfi7SHlh0Wf6urOcDa37eTOhOcuEN/YxXQ0ppGLY="
},
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.1/FunctionID/vs2015_x64": {
"fidb": "sha256-4E6eQPnstgHIX02E7Zv2a0U2O+HR6CwWLkyZArjLUI8="
},
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.1/FunctionID/vs2015_x86": {
"fidb": "sha256-tm7mlmU+LtNlkZ3qrviFEDEgx5LiLnmvcNEgnX4dhkQ="
},
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.1/FunctionID/vs2017_x64": {
"fidb": "sha256-1fpfaXKYF0+lPSR9NZnmoSiEYFrRgce5VOI4DsHwvYk="
},
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.1/FunctionID/vs2017_x86": {
"fidb": "sha256-04nLjXb/SlnKNfiRuFIccq1fDfluJTlzotIahhSkzIE="
},
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.1/FunctionID/vs2019_x64": {
"fidb": "sha256-FQAHeW/DakBpZgrWJEmq2q890Rs4ZKXvIeeYMcnOkRg="
},
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.1/FunctionID/vs2019_x86": {
"fidb": "sha256-62MKNvqlhqNx63NNwLvY0TzK72l/PbWHJZY1jz3SQyo="
},
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.1/FunctionID/vsOlder_x64": {
"fidb": "sha256-jDtR9GYM0n4aDWEKnz8tX7yDOmasnuQ5PuLySB6FWGY="
},
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.1/FunctionID/vsOlder_x86": {
"fidb": "sha256-mGBca2uSFKlF2ETkHIWGDVRkmkW8p4c+9pkcDpNyB4c="
},
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.1/lib/java-sarif-2.1-modified": {
"jar": "sha256-f3NlZklHVtJxql5LGvbIncUNB0qxxjdKR9+CImQiawE="
},
"pxb1988/dex2jar/releases/download/v2.1/dex2jar-2.1": {
"zip": "sha256-epvfhD1D3k0elOwue29VglAXsMSn7jn/gmYOJJOkbwg="
}
},
"https://repo.maven.apache.org/maven2": {
"biz/aQute/bnd#biz.aQute.bnd.util/7.0.0": {
"jar": "sha256-OVddFQJJliqcbUbM5+Zy53fIqGIKHS0iDH8sCnmediM=",
"pom": "sha256-+dgDJLl2Hp3ipFoP6naPWZRH9AxuQZ8gje2MrxIYAMU="
},
"biz/aQute/bnd#biz.aQute.bndlib/7.0.0": {
"jar": "sha256-gKVp0AbzLpJc7kzor5Jrfm/aqqtcy/1f5MnN/5xN0t8=",
"pom": "sha256-mOuywO2iBtxb79bFJsjCAneApDvymekXyzwDXwOYp9I="
},
"com/beust#jcommander/1.64": {
"jar": "sha256-FWvnNhmcmQMh2f93CQsZlinPyYZeLWwT980pG7FkGBc=",
"pom": "sha256-F84MMunPlTZ4+CCuXyrZLu85bYQPZn/JnyOtwK0l0yg="
},
"com/formdev#flatlaf/3.2.1": {
"jar": "sha256-fYMX/hOyYIiZTWZmOvjofBI5DugIf3unS2hjj0pV9EA=",
"module": "sha256-kU7FLZBJj8ctFju0F1UhHnW7yfy3ip5wTZn/Mvfzywg=",
"pom": "sha256-uKf+YYO269HIAaqwdGnF2UFRQFSftLdpkqyALuJeGtE="
},
"com/github/rotty3000#phidias/0.3.7": {
"jar": "sha256-yNB2DOOw7RRT1DW83THjTwvjrAkCTn4amLijzr9Ka7U=",
"pom": "sha256-FY+kDQZfFCR5B7aSIiRY152eFjsTz1tfrHvgIkLMK60="
},
"com/github/tomnelson#jungrapht-layout/1.4": {
"jar": "sha256-owQBKdw57SMms2yhXGNEIu5XmkYXhmj5lELjiz5gcJk=",
"pom": "sha256-TO0lLb8YrUWTvoW6bWycCdvB7tZEjZtZneziavTnyN4="
},
"com/github/tomnelson#jungrapht-visualization-parent/1.4": {
"pom": "sha256-s5gyFq8VA62ryVOkKXKO1kpORbvDj++2wgOiiUPCq+w="
},
"com/github/tomnelson#jungrapht-visualization/1.4": {
"jar": "sha256-lwU6HdLNqyY/tWEfG8grhiswmflR480FZOPiPRk/Tdg=",
"pom": "sha256-YE8saHqHsq0L90QETPJmynWuKdPPCa383C5WEjDOtoY="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/google/code/gson#gson-parent/2.9.0": {
"pom": "sha256-r3gcmldm/+oxGg3wU2V2pk3sxmGqEQxN5cc6yL9DRCQ="
},
"com/google/code/gson#gson/2.9.0": {
"jar": "sha256-yW1gVRMxoZbaxUt0WqZCzQeO+JtvJnFGtwXywsvvBS0=",
"pom": "sha256-cZDQsH8njp9MYD9E5UOUD4HPGiVZ+FHG8pjJuyvil4w="
},
"com/google/errorprone#error_prone_annotations/2.2.0": {
"jar": "sha256-br0iyhudjsBtQd6NZOBZaYHZYHtCA1+e03T53icaSBo=",
"pom": "sha256-XgJY6huk5RoTN0JoC8IkSPerIUvkBz6GGfZF7xvkLdU="
},
"com/google/errorprone#error_prone_annotations/2.21.1": {
"jar": "sha256-0fPGaqkaxSVJ4Arjsgi6S5r31y1o8jBkNVO+s45hGKw=",
"pom": "sha256-9ZiID+766p1nTcQdsTqzcAS/A3drW7IcBN7ejpIMHxI="
},
"com/google/errorprone#error_prone_parent/2.2.0": {
"pom": "sha256-xGCQLd9ezmiDLGsnHOUqCSiwXPOmrIGo9UjHPL1UETg="
},
"com/google/errorprone#error_prone_parent/2.21.1": {
"pom": "sha256-MrsLX/JB/Wuh/upEiuu5zt7xaZvnPLbzGTZTh7gr+Sw="
},
"com/google/gradle#osdetector-gradle-plugin/1.7.0": {
"jar": "sha256-29oheMFO1rk6GEsay/ONchBwAiUmaMERz0EeyjfkHKY=",
"pom": "sha256-6BYywu6apI5+zwVHUSwcOGVgwNRqlY7lBVD3693xNRc="
},
"com/google/guava#failureaccess/1.0.1": {
"jar": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=",
"pom": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk="
},
"com/google/guava#guava-parent/19.0": {
"pom": "sha256-O3b/Q+zfEPdNo25KritHDJ0GPgU8XKAm9VEq6U8cPhA="
},
"com/google/guava#guava-parent/26.0-android": {
"pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ="
},
"com/google/guava#guava-parent/27.0.1-jre": {
"pom": "sha256-MX6IKRJi4M8oBelWwYhQ8dRWXIXC4REvXZ0Iqxcy5pY="
},
"com/google/guava#guava-parent/27.1-android": {
"pom": "sha256-1oF79aZ2AKOTpoA9UfR8159KXth1cqg3K++S4nNRgXI="
},
"com/google/guava#guava-parent/32.1.3-jre": {
"pom": "sha256-8oPB8EiXqaiKP6T/RoBOZeghFICaCc0ECUv33gGxhXs="
},
"com/google/guava#guava/19.0": {
"pom": "sha256-rdwGTafxB3/fTckOWqqIfNeQhQ0bdP4ubiXV94VRrGM="
},
"com/google/guava#guava/27.0.1-jre": {
"jar": "sha256-4cgU/QRJKifDjgMX6r6qGz6VDsgBAjnkAP6QrWyRB7Q=",
"pom": "sha256-ao3QQfI6a7FKhuRA/MuZNTe2InE1eg2sCjyw/zkVjzY="
},
"com/google/guava#guava/27.1-android": {
"pom": "sha256-KUYNJundBml2Ak+RJoMlzxHzkScNiPi1MewGQqNbwNw="
},
"com/google/guava#guava/32.1.3-jre": {
"jar": "sha256-bU4rWhGKq2Lm5eKdGFoCJO7YLIXECsPTPPBKJww7N0Q=",
"module": "sha256-9f/3ZCwS52J7wUKJ/SZ+JgLBf5WQ4jUiw+YxB/YcKUI=",
"pom": "sha256-cA5tRudbWTmiKkHCXsK7Ei88vvTv7UXjMS/dy+mT2zM="
},
"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.1": {
"jar": "sha256-KZSn63jycQvT07+2ObLJTiGc7awNTQhNUW54wW3d7PY=",
"pom": "sha256-8MmMVx6Tp8tN0Y3w+jCPCWPnoGIKwtQkTmHnCdA61r4="
},
"com/google/j2objc#j2objc-annotations/2.8": {
"jar": "sha256-8CqV+hpele2z7YWf0Pt99wnRIaNSkO/4t03OKrf01u0=",
"pom": "sha256-N/h3mLGDhRE8kYv6nhJ2/lBzXvj6hJtYAMUZ1U2/Efg="
},
"com/google/protobuf#protobuf-bom/3.17.3": {
"pom": "sha256-bf431vImF9VqQUzNrf+NmFhaH3kXEr6HbCYWZxDR2N0="
},
"com/google/protobuf#protobuf-bom/3.21.8": {
"pom": "sha256-+7Ds/DyjGFddtifjOuRUwT1qTcp68UXRTT9m4IY8PPo="
},
"com/google/protobuf#protobuf-gradle-plugin/0.8.18": {
"jar": "sha256-RP2JrzepsvHdQcCUqbtzPAe/f8eg4jhooQuvbjUfpeA=",
"pom": "sha256-Gwqekab09LYqWmB4wibudwqo3FdnueRzwvwY8KOImAQ="
},
"com/google/protobuf#protobuf-java/3.17.3": {
"jar": "sha256-SsVJsZJpQUGVgEnwYKHIJqMzQvYZ4QjO2MF9mHf14+0=",
"pom": "sha256-Km8izVJli4uxTBANs+F5NT+MNR0ENzo79voKOzlGStw="
},
"com/google/protobuf#protobuf-java/3.21.8": {
"jar": "sha256-C4WBrYENLfrv0Nz78VabFFBEhlAjjX4v1rF2yTLQjJU=",
"pom": "sha256-OJBUBuApx6MYaW8O4RnFXM7HizN+oR5MMZWfDgardAg="
},
"com/google/protobuf#protobuf-parent/3.17.3": {
"pom": "sha256-T09Q5moqvM/o7SCbU/q3C4k+NfQ77FqB98GESbY+hrE="
},
"com/google/protobuf#protobuf-parent/3.21.8": {
"pom": "sha256-bHKyrDl1sAnR5FdQlVnp+onyV4vShD3LTWo+XPgRFws="
},
"com/googlecode/json-simple#json-simple/1.1.1": {
"jar": "sha256-TmlpaJK4i0HFXUmrL9zCHurZK/VKzFiMAFBZbDt1GZw=",
"pom": "sha256-Zl9jWQ3vtj1irdIdNSU2LPk3z2ocBeSwFFuujailf4M="
},
"com/h2database#h2/2.2.220": {
"jar": "sha256-l4q4YwGNP5ZeOIgFccNik+qLEKgIYZQVnE1dILUPClc=",
"pom": "sha256-tbp8XBcINbyupnWMWfo8EOvNepx5LiWzm4a559X72Mo="
},
"com/jcraft#jsch/0.1.55": {
"jar": "sha256-1JKxWm0uo/HMOcQiyVPEDBIokHPb6DYNmMD2+ex0/EQ=",
"pom": "sha256-dHx0jR8BBx6j0PhHb2jUqCOjE7dycB2FUck+qqV/n5k="
},
"com/opencsv#opencsv/5.4": {
"jar": "sha256-n94e8+VEQE406u4V5L97p0uANV15gJOwUk1jpZk2JCs=",
"pom": "sha256-uGQpmn0KIQIKgxaZQ499P4VAirJKNOkR+qmf9oTrdv0="
},
"com/oracle/labs/olcut#olcut-config-protobuf/5.2.0": {
"jar": "sha256-xmqG5GT9gi9xzu6JuSU3l8Pc/fZWxNsr+W2kceuXs8o=",
"pom": "sha256-JCBA8xgQ+I6pnGF7RUBrhmdtOvJa7jzZIoysQpd0zmk="
},
"com/oracle/labs/olcut#olcut-core/5.2.0": {
"jar": "sha256-5T6OCQrUJo0iqlPgaCu76rHIHiyoRBP6Q2AqQWP2vhk=",
"pom": "sha256-G912ta/r+7rg+FHQjJ46WmgwP40cMHY4rxuChHVvCgM="
},
"com/oracle/labs/olcut#olcut/5.2.0": {
"pom": "sha256-SRIriefVQhUkr5IsQrsnF0x7vhL2oKKWwiEJgIUW/B4="
},
"commons-beanutils#commons-beanutils/1.9.4": {
"jar": "sha256-fZOMgXiQKARcCMBl6UvnX8KAUnYg1b1itRnVg4UyNoo=",
"pom": "sha256-w1zKe2HUZ42VeMvAuQG4cXtTmr+SVEQdp4uP5g3gZNA="
},
"commons-collections#commons-collections/3.2.2": {
"jar": "sha256-7urpF5FxRKaKdB1MDf9mqlxcX9hVk/8he87T/Iyng7g=",
"pom": "sha256-1dgfzCiMDYxxHDAgB8raSqmiJu0aES1LqmTLHWMiFws="
},
"commons-io#commons-io/2.11.0": {
"jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=",
"pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k="
},
"commons-lang#commons-lang/2.6": {
"jar": "sha256-UPEbCfh3wpTVbyRGP0fSj5Kc9QRPZIZhwPDPuumi9Jw=",
"pom": "sha256-7Xa4iRwwtWYonHQ2Vvik1DWYaYJDjUDFZ8YmIzJH5xE="
},
"commons-logging#commons-logging/1.2": {
"jar": "sha256-2t3qHqC+D1aXirMAa4rJKDSv7vvZt+TmMW/KV98PpjY=",
"pom": "sha256-yRq1qlcNhvb9B8wVjsa8LFAIBAKXLukXn+JBAHOfuyA="
},
"javax/help#javahelp/2.0.05": {
"jar": "sha256-/PSSLTj/hRhPHSMoMXu2CCbhTalIq9YG7j1bjGpw3r0=",
"pom": "sha256-uIEr4lGsoTl/S2pCO/Tt06KERONFOyIDtTSTNrmVgik="
},
"junit#junit/4.10": {
"jar": "sha256-NqdHyh4LhvbqiAVbhyO7hwMNYndm2mKIvwd6/e6w91o=",
"pom": "sha256-IqG/C6rothBretgCbs8nxZ5+R920nWKXUDa+rbLGLrU="
},
"junit#junit/4.12": {
"jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=",
"pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
},
"kr/motd/maven#os-maven-plugin/1.7.0": {
"jar": "sha256-lDBTUBpCnlPRxNYhUu7BJfo2Yg4NxmtzkKiVCXz96s4=",
"pom": "sha256-xPVqjuqlJp76BdsB4xMJBf9b24frKuPnZhVOmuoYO6Y="
},
"msv#isorelax/20050913": {
"jar": "sha256-NCcVJDHPf5Z/kuaeXKwWFHxdj7S05ainL1KReI78/4w=",
"pom": "sha256-u54IxYm/b2BxTQ+dMcLtdwPK9nf+muOSFrzKt3SkfNk="
},
"msv#msv/20050913": {
"jar": "sha256-FL46VQ5QhDO0/hB3XVQOnrWLPvBO10Vrx8fShckMh6I=",
"pom": "sha256-eoaknOHugXmjgCLiMZHkjPW1fkEEr2tXSJ3bjN7GoNY="
},
"msv#relaxngDatatype/20050913": {
"jar": "sha256-TUWpPrXNwyYxlmZzyVS4P8m2CgaBu93O+ixJdtBM3fI=",
"pom": "sha256-F/kF72gZZRismj53oNXlGY1g9D/8kEsiCcoEZhfyLfk="
},
"msv#xsdlib/20050913": {
"jar": "sha256-a476GP9XDAkW2nAsRpBrnooTnhwF2/Hk2L3rokTBsrM=",
"pom": "sha256-Ti8Z4AifVdrd/gOXbyhwCXvAaJcWVQ/p3r10KwrKZ5Y="
},
"net/java/dev/javacc#javacc/5.0": {
"jar": "sha256-cRExYbyM9mQVFVQcKBgCi4fHjsLo/6p1MXaG7giWe4k=",
"pom": "sha256-lBZg1Hgi+cDYDUDqBtSYH83CuHzGJTgbVF79fmtEnO8="
},
"net/java/dev/jna#jna-platform/5.14.0": {
"jar": "sha256-rkys6zhAcwwlN/m3+1WgG6ulgChrQSKVFIi87lWMJEk=",
"pom": "sha256-bLoOBPnuyxZIYAB5O7J+EDsPTQSF4FVOK0wK7RPS7RY="
},
"net/java/dev/jna#jna/5.14.0": {
"jar": "sha256-NO0eHyf6iWvKUNvE6ZzzcylnzsOHp6DV40hsCWc/6MY=",
"pom": "sha256-4E4llRUB3yWtx7Hc22xTNzyUiXuE0+FJISknY+4Hrj0="
},
"net/java/dev/timingframework#timingframework/1.0": {
"jar": "sha256-dGHpJGw7BRkWRaf5TBBGgMwxhlu02RIIKsAv93Egz0s=",
"pom": "sha256-EHm33r9dRb/PyG6euBCvHRhqN11glaDpHKKM2a8pwtA="
},
"net/sf/jung#jung-algorithms/2.1.1": {
"jar": "sha256-7ROOL2srLxOvYaE/F4i85vHeiFjELucKfUHmKDk3owo=",
"pom": "sha256-INw/C+7taPkCw/AtO6qJ8eI0xNSWeyIS15HBjw/a6Qs="
},
"net/sf/jung#jung-api/2.1.1": {
"jar": "sha256-bLc1ljw21RVdDeXxmgNIW5om5nVQ4WCz3YkAmm9RaU4=",
"pom": "sha256-3vtMVoVkg6Trdxnh4WiqYKtjnkPJJRKGZYNzLyPxOgs="
},
"net/sf/jung#jung-graph-impl/2.1.1": {
"jar": "sha256-SRHaBNd7T3u0ZaZa48w6AAyuTVK1h5EePAtMS2Q0k8E=",
"pom": "sha256-DXLiLd6PiBAEu7aagzjuxtnpGTlg9BRDOBlhYPhJqLQ="
},
"net/sf/jung#jung-parent/2.1.1": {
"pom": "sha256-os5T0/ynH/HQQ3FfmhowSo5KrhwGRa2QOMrkxSE2i+Q="
},
"net/sf/jung#jung-visualization/2.1.1": {
"jar": "sha256-kzuibCMIw79FZsOCiXm2itdCJyRXFxLlrw3odr3/oq4=",
"pom": "sha256-ayUROtpk+JgoOQmGsyWE0nNsBE+7iVz1Bo6BQWo9l+w="
},
"net/sf/sevenzipjbinding#sevenzipjbinding-all-platforms/16.02-2.01": {
"jar": "sha256-cvq1Op0x4W1lP+H0AAEdAqf2vGqR6GNLXPrVzhXUZ7s=",
"pom": "sha256-u3FCxepITF/phCbcFezhuYu/3UZTRWqI2idCHXJnAmU="
},
"net/sf/sevenzipjbinding#sevenzipjbinding/16.02-2.01": {
"jar": "sha256-Ezyj9pyMc12Jl8CUd1BPSKny5h6ntwSzcUqQZrHvuI4=",
"pom": "sha256-pdF4WGwNvc4V3cKlKBaE04ek8jW10bklWzls7TaWhcE="
},
"org/antlr#ST4/4.0.8": {
"jar": "sha256-WMqrxAyfdLC1mT/YaOD2SlDAdZCU5qJRqq+tmO38ejs=",
"pom": "sha256-PAiQ3scRdOs7o9QEyp40GQH/awQhgIsAcTsNuxMGwXw="
},
"org/antlr#antlr-master/3.5.2": {
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
},
"org/antlr#antlr-runtime/3.5.2": {
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
},
"org/antlr#antlr/3.5.2": {
"jar": "sha256-WsNsKs+woPPTfa/iC1tXDyZD4tAAxkjURQPCc4vmQ98=",
"pom": "sha256-Bl5egGYv64WHldPAH3cUJHvdMZRZcF7hOxpLGWj6IuQ="
},
"org/apache#apache/13": {
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
},
"org/apache#apache/16": {
"pom": "sha256-n4X/L9fWyzCXqkf7QZ7n8OvoaRCfmKup9Oyj9J50pA4="
},
"org/apache#apache/19": {
"pom": "sha256-kfejMJbqabrCy69tAf65NMrAAsSNjIz6nCQLQPHsId8="
},
"org/apache#apache/21": {
"pom": "sha256-rxDBCNoBTxfK+se1KytLWjocGCZfoq+XoyXZFDU3s4A="
},
"org/apache#apache/23": {
"pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw="
},
"org/apache#apache/27": {
"pom": "sha256-srD8aeIqZQw4kvHDZtdwdvKVdcZzjfTHpwpEhESEzfk="
},
"org/apache#apache/7": {
"pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU="
},
"org/apache/commons#commons-collections4/4.1": {
"jar": "sha256-sf6LWWi1fYRlQlNX7S2dxpVQRRi+0t9bVlxLjmjByKU=",
"pom": "sha256-wK1C6RA1N5YNmnTaWOzCTdGjehPR5MSPCWm+k+QBg2k="
},
"org/apache/commons#commons-collections4/4.4": {
"jar": "sha256-Hfi5QwtcjtFD14FeQD4z71NxskAKrb6b2giDdi4IRtE=",
"pom": "sha256-JxvWc4Oa9G5zr/lX4pGNS/lvWsT2xs9NW+k/0fEnHE0="
},
"org/apache/commons#commons-compress/1.21": {
"jar": "sha256-auz9VFlyillWAc+gcljRMZcv/Dm0kutIvdWWV3ovJEo=",
"pom": "sha256-Z1uwI8m+7d4yMpSZebl0Kl/qlGKApVobRi1Mp4AQiM0="
},
"org/apache/commons#commons-dbcp2/2.9.0": {
"jar": "sha256-iHcgkSxcu83/bg4h1QNJN1Vfj/xZc4Hv+Pp38zzm1k4=",
"pom": "sha256-XtPwH1ee+0xru81m9VnpwV6ZwUCVeeAZG7pUHF/meYY="
},
"org/apache/commons#commons-lang3/3.11": {
"pom": "sha256-mA1mXYP+0EZlE08FeOUHRCoOdQaRBzeEORsKeYhySnU="
},
"org/apache/commons#commons-lang3/3.12.0": {
"jar": "sha256-2RnZBEhsA3+NGTQS2gyS4iqfokIwudZ6V4VcXDHH6U4=",
"pom": "sha256-gtMfHcxFg+/9dE6XkWWxbaZL+GvKYj/F0bA+2U9FyFo="
},
"org/apache/commons#commons-lang3/3.9": {
"pom": "sha256-pAIkKbmEJbQwGBkVchJ5pS9hDzRki9rEh9TKy76N/rU="
},
"org/apache/commons#commons-parent/17": {
"pom": "sha256-lucYuvU0h07mLOTULeJl8t2s2IORpUDgMNWdmPp8RAg="
},
"org/apache/commons#commons-parent/34": {
"pom": "sha256-Oi5p0G1kHR87KTEm3J4uTqZWO/jDbIfgq2+kKS0Et5w="
},
"org/apache/commons#commons-parent/38": {
"pom": "sha256-VY2WF0Xrrcxdw5HP3n1HQIbUyq7iTdPm35Me2fa1tJU="
},
"org/apache/commons#commons-parent/39": {
"pom": "sha256-h80n4aAqXD622FBZzphpa7G0TCuLZQ8FZ8ht9g+mHac="
},
"org/apache/commons#commons-parent/47": {
"pom": "sha256-io7LVwVTv58f+uIRqNTKnuYwwXr+WSkzaPunvZtC/Lc="
},
"org/apache/commons#commons-parent/48": {
"pom": "sha256-Hh996TcKe3kB8Sjx2s0UIr504/R/lViw954EwGN8oLQ="
},
"org/apache/commons#commons-parent/51": {
"pom": "sha256-m3edGLItjeVZYFVY57sKCjGz8Awqu5yHgRfDmKrKvso="
},
"org/apache/commons#commons-parent/52": {
"pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4="
},
"org/apache/commons#commons-parent/54": {
"pom": "sha256-AA2Bh5UrIjcC/eKW33mVY/Nd6CznKttOe/FXNCN4++M="
},
"org/apache/commons#commons-pool2/2.11.1": {
"jar": "sha256-6gUF7nUV5YsawOaG5NGl2ffYCOJRphvDcaoFlbmWP4M=",
"pom": "sha256-wbsCmUpK34loDfepitujPFUnaDAUJy1liFuzA27NSMM="
},
"org/apache/commons#commons-text/1.10.0": {
"jar": "sha256-dwzZA/p7YE0ffve6F/hBCGZylLK0eL6O0a87/7SuABg=",
"pom": "sha256-OI3VI0i6GEKqOK64l8kdJwsUZh64daIP2YAxU1qydWc="
},
"org/apache/commons#commons-text/1.8": {
"pom": "sha256-9s/bqlnHCtfj/r5xTgkRmQFWrAkFKV2PKjt1HgXlmhI="
},
"org/apache/commons#commons-text/1.9": {
"pom": "sha256-n5IWz8lE3KeC5jEdYnV/13Fk/mfaKbWPAVaH+gn0QFA="
},
"org/apache/felix#felix-parent/6": {
"pom": "sha256-Ngi2sgD2yPSIx3zBWYR9UV5pZugzO4XY4E45Sgk7VZU="
},
"org/apache/felix#org.apache.felix.framework/7.0.5": {
"jar": "sha256-q6cpMsX/5S0a6ftzVBVHS8gwX9BPBQ6FHzqPZ9oYNP0=",
"pom": "sha256-CBAm1JP4dt+OsPPxyPhdpyy+N99VeDPpaLQMMNrL/Kk="
},
"org/apache/logging#logging-parent/3": {
"pom": "sha256-djouwrgJTUFh3rbCZLEmIIW5vjC/OjHCzhNyQuV3Iqc="
},
"org/apache/logging/log4j#log4j-api/2.17.1": {
"jar": "sha256-sNikyKtPuLGIjQCVgicDsObUeTxBlVAgPanmkZYWHeQ=",
"pom": "sha256-HirO8yILKb4QrgmXKLFYsY2UP5Ghk8xFAbtC+SnB6Io="
},
"org/apache/logging/log4j#log4j-core/2.17.1": {
"jar": "sha256-yWfyI0h5gLk2TpSnx/mooB/T7nwZvb8LD5+MuFEfPUE=",
"pom": "sha256-C7s79tTSKhv6PDwJJ8KUEK8UoPsm47Ark3JvXH6Yqv0="
},
"org/apache/logging/log4j#log4j/2.17.1": {
"pom": "sha256-lnq8AkRDqcsJaTVVmvXprW8P9hN1+Esn1EDS+nCAawk="
},
"org/bouncycastle#bcpkix-jdk15on/1.69": {
"jar": "sha256-QIN20Xqqh4nnrNBV/kBCiaEfozX9fGinUykEn7fSjtI=",
"pom": "sha256-WrvkytLCMJR0ZvsgmiJn48xqDTgKajGRWVnTqtm4F2w="
},
"org/bouncycastle#bcprov-jdk15on/1.69": {
"jar": "sha256-5Gm9Ofk2mZ8lYAJjEAP/AioilR2p1b2Xicer+pdjopI=",
"pom": "sha256-/YHicUSVvOeeauazAp2s0kzyz/NAJB2lgQVYlae6eN4="
},
"org/bouncycastle#bcutil-jdk15on/1.69": {
"jar": "sha256-KeQOJGbQQNgqbw6ZY10LwrujqUJRz3k5zwtpMhyu/Ak=",
"pom": "sha256-p2e8fzQtGTKJfso8i6zHAEygOAv6dSnyOpc0VJZcffw="
},
"org/checkerframework#checker-compat-qual/2.5.2": {
"pom": "sha256-da9ztewybj29yUayH9RoAtXafGEsO/Hlh1N0yY1+pP0="
},
"org/checkerframework#checker-qual/2.5.2": {
"jar": "sha256-ZLAmkci51OdwD47i50Lc5+osboHmYrdSLJ7jv1aMBAo=",
"pom": "sha256-3EzUOKNkYtATwjOMjiBtECoyKgDzNynolV7iGYWcnt4="
},
"org/checkerframework#checker-qual/3.31.0": {
"module": "sha256-UYkl4iqnmMH71voXwYN0aR8f57G+fdNw1Omv7us7Ds8=",
"pom": "sha256-Q1ecPr5H54NYp/MvlnN471YXWyKUszUYNYTwvSNZUjE="
},
"org/checkerframework#checker-qual/3.37.0": {
"jar": "sha256-5M4TdswnNeHd4iC2KtCRP1EpdwTarRVaM/OGvF2w2fc=",
"module": "sha256-clinadyqJrmBVNIp2FzHLls2ZrC8tjfS2vFuxJiVZjg=",
"pom": "sha256-AjkvvUziGQH5RWFUcrHU1NNZGzqr3wExBfXJLsMstPA="
},
"org/codehaus#codehaus-parent/3": {
"pom": "sha256-UOslOs0LbuBI9DLZ/Do7NiZO+z2h/6f7B/bE1LeoyjE="
},
"org/codehaus/mojo#animal-sniffer-annotations/1.17": {
"jar": "sha256-kmVPST7P7FIILnY1Tw6/h2SNw9XOwuPDzblHwBZ0elM=",
"pom": "sha256-6VarXS60j6uuEjANDNLTKU1KKkGrwgaMI8tNYK12y+U="
},
"org/codehaus/mojo#animal-sniffer-annotations/1.9": {
"jar": "sha256-zZb+60fzSyVZcEcV23sXmgOjch+dxAksNFxxjim0LeQ=",
"pom": "sha256-/nEJDiNXjdGapqj+9Rhvz6WPSPgHBnKprIlFhis7fz0="
},
"org/codehaus/mojo#animal-sniffer-parent/1.17": {
"pom": "sha256-GKA98W4qGExYLbexJWM8Fft3FAJ6hMG1MtcpM9wIuB8="
},
"org/codehaus/mojo#animal-sniffer-parent/1.9": {
"pom": "sha256-nyDSRN5e5OZQmbJ3tpiE7xr4EROcAJcl3TzPqPsaxjs="
},
"org/codehaus/mojo#mojo-parent/28": {
"pom": "sha256-WrbfH5JfxhOX3y0XNSu8mK8UZOhT7SF+CeU9IKMm9wc="
},
"org/codehaus/mojo#mojo-parent/40": {
"pom": "sha256-/GSNzcQE+L9m4Fg5FOz5gBdmGCASJ76hFProUEPLdV4="
},
"org/fusesource#fusesource-pom/1.12": {
"pom": "sha256-xA2WDarc73sBwbHGZXr7rE//teUxaPj8sLKLhOb9zKE="
},
"org/fusesource/jansi#jansi/2.3.2": {
"jar": "sha256-+dWXnFx7oxN8d/QYR16wIYn4/Ip1+nP/w/8dEv6UVWc=",
"pom": "sha256-ywU3vsxjUsFUcz22+v0JAPlYRgOgsLnPjyJFVjEs2+E="
},
"org/hamcrest#hamcrest-core/1.1": {
"jar": "sha256-A2HRST/w2U+GE1nv6pEgByBjUHITR5LvtyF/bgnVz/s=",
"pom": "sha256-OXOH9AbGjMtAP0d8y+wcgYz8a4/0+tpaM+Jhg6hBfIM="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.1": {
"pom": "sha256-FOaVChpimMvLg8+UKcrEFf8nMWf28Vh2hZQTsNbAfjo="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/hamcrest#hamcrest/2.2": {
"jar": "sha256-XmKEaonwXNeM2cGlU/NA0AJFg4DDIEVd0fj8VJeoocE=",
"pom": "sha256-s2E3N2xLP8923DN+KhvFtpGirBqpZqtdJiCak4EvpX0="
},
"org/jacoco#org.jacoco.agent/0.8.11": {
"jar": "sha256-0+2F3qeKntVYRqdzjjoMoVxwLGYe5LyMv+Aqi59KmcA=",
"pom": "sha256-FuBen0liG4fFPmk1AUDzxG1C2WbGepM730sGOiscj8U="
},
"org/jacoco#org.jacoco.ant/0.8.11": {
"jar": "sha256-gdfriJDZvjCpOWEsKVYDVBBjUpzdA6UyZaunRHS3C3w=",
"pom": "sha256-ftED2VnQzue6v7Ewf6bkUbFpb/01JwYVU7VQ3lUgHYU="
},
"org/jacoco#org.jacoco.build/0.8.11": {
"pom": "sha256-W4SxXPLu8+WeuRvCJ4SDMQCwnfmRHjMZAww7xki9iws="
},
"org/jacoco#org.jacoco.core/0.8.11": {
"jar": "sha256-/NGIxohHP8jcwMbKrzVeeziVAiQ1J8M7lZej7Ch5H0c=",
"pom": "sha256-u2E18Qo2NJy4SlYA/Yz3P8EpahNbLxStzYPejPJMq7E="
},
"org/jacoco#org.jacoco.report/0.8.11": {
"jar": "sha256-g5MpWuJGgO0QytgzOQcED5KLhxMySRWBylvHhOLLT74=",
"pom": "sha256-jjtzR3nV4/1oPsAVQT1S+WGYTFDLkEX9orI7/160I4E="
},
"org/jdom#jdom-legacy/1.1.3": {
"jar": "sha256-Ar1hpyXor5sBdrQ78pgW0MdIuKuVE4W9EnvjdIkyWgo=",
"pom": "sha256-bWWTi3CxFyMBy0LY5l7gVzpXHtOfOvEBOp5ukp/flow="
},
"org/jgrapht#jgrapht-core/1.5.1": {
"jar": "sha256-pNgQy2Pgp3p1PRRwlP6p3ULoLPxXqiifn4UinyYEO7Q=",
"pom": "sha256-KknxKWxTwJ4OCiVdogMgVq3fKlu6WFyAF3Eg/IELQRM="
},
"org/jgrapht#jgrapht-io/1.5.1": {
"jar": "sha256-hsf8ZswZB7/CazZtTdKSzQ2ihr3h/QiKEcDZcp1tzFw=",
"pom": "sha256-jMvAH5otyMV0llX6FSck3dJ8FIIpxWeV+CC7V6GEp4g="
},
"org/jgrapht#jgrapht/1.5.1": {
"pom": "sha256-X9k28p0qw4blfbTL+JtZLFth3GpA03qhUw9eVLNQx9I="
},
"org/jheaps#jheaps/0.13": {
"jar": "sha256-Y0FCkMNJf4rA8QIgkgcIjexG/UdH4PVqJsaTCOhcZBU=",
"pom": "sha256-SH2xJbFxCY4/qDOFNaxZR2kirCxFK1ehTTz2YfIohDA="
},
"org/jline#jline-builtins/3.20.0": {
"jar": "sha256-prFPiYOXb7Sd67PZ6KFb+V9yTXFp8TFaYu+lin+omeI=",
"pom": "sha256-9T2EkbSNrQfnIR8M5BIhS5un25YmYZAxsqhvgMgrZrE="
},
"org/jline#jline-parent/3.20.0": {
"pom": "sha256-cXjGACAsS8Jux6S2IlXu829wVsrSpeYjnFdL7qXCEMo="
},
"org/jline#jline-reader/3.20.0": {
"jar": "sha256-rNHJTR4iiqe3li9psh7Tqf2CjrOmPkuvkIaVTmJq8fA=",
"pom": "sha256-2fF+3XIcAqExcgN21sB4eHgutrb6/rX/QkBKtXFD4TY="
},
"org/jline#jline-style/3.20.0": {
"jar": "sha256-C7ERYF4BAM6E05YfMLQNqgiOnC7FxnHn75D0L2rdBrY=",
"pom": "sha256-48nFXt7Ob0ru5jplYjiaS++NA1j6iq3GdKPeZR4w4ao="
},
"org/jline#jline-terminal-jansi/3.20.0": {
"jar": "sha256-wX/++o8GDa79OPJXRAcOQI9LrFPD6BOuoZKMxgcmD+Q=",
"pom": "sha256-Q3JhhBr0j5oZT9WygHJSCKds+jzKFgBAx6QoDrAn2+s="
},
"org/jline#jline-terminal/3.20.0": {
"jar": "sha256-EhJRcOeVUZum3IAQwHC1PHaq6StIXB43Uw5Uq13QjUM=",
"pom": "sha256-EMo7z1F48YUH8hCmOtljeJaFM0OtHBKRoBmhFvIWpUg="
},
"org/junit#junit-bom/5.7.1": {
"module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=",
"pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q="
},
"org/junit#junit-bom/5.7.2": {
"module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=",
"pom": "sha256-zRSqqGmZH4ICHFhdVw0x/zQry6WLtEIztwGTdxuWSHs="
},
"org/junit#junit-bom/5.8.0-M1": {
"module": "sha256-vgUUcTA6UD9MIkZwdbJ0kEE3fd1tWoywc53tZ9kW2C0=",
"pom": "sha256-dxREMv/Gi9mKeQqxBpYZ2RAyz8Dk4TwIFjqgPaNv1uI="
},
"org/junit#junit-bom/5.9.0": {
"module": "sha256-oFTq9QFrWLvN6GZgREp8DdPiyvhNKhrV/Ey1JZecGbk=",
"pom": "sha256-2D6H8Wds3kQZHuxc2mkEkjkvJpI7HkmBSMpznf7XUpU="
},
"org/junit#junit-bom/5.9.1": {
"module": "sha256-kCbBZWaQ+hRa117Og2dCEaoSrYkwqRsQfC9c3s4vGxw=",
"pom": "sha256-sWPBz8j8H9WLRXoA1YbATEbphtdZBOnKVMA6l9ZbSWw="
},
"org/osgi#org.osgi.core/5.0.0": {
"jar": "sha256-tEDGv/KGMyr89crgZ7YGli52HA3wDl/Yp0bwsxJlYZs=",
"pom": "sha256-4AHZl0MYUeq4uTOLW32f5eaOGutDpYV5JLChWIbuNjk="
},
"org/osgi#org.osgi.util.promise/1.3.0": {
"jar": "sha256-cFPFfn19iP7GuQl5o68SXh0ruEcmijKKLx7WWtCkwYU=",
"pom": "sha256-rcyK9ce+Z7BSEF4Mncq43ibaxvGbxamrcpRqMydscQA="
},
"org/ow2#ow2/1.3": {
"pom": "sha256-USFcZ9LAaNi30vb4D1E3KgmAdd7MxEjUvde5h7qDKPs="
},
"org/ow2#ow2/1.5.1": {
"pom": "sha256-Mh3bt+5v5PU96mtM1tt0FU1r+kI5HB92OzYbn0hazwU="
},
"org/ow2/asm#asm-bom/9.6": {
"pom": "sha256-ig5fYk/ikwt6jWmVb0OORe9TKZa01kQJthbErvSxrE4="
},
"org/ow2/asm#asm-commons/9.6": {
"jar": "sha256-eu/Q1cCQFwHGn3UT/tp2X7a+M68s56oXxXgfyHZXxRE=",
"pom": "sha256-qYrkiVM0uvj/hr1mUWIQ29mgPxpuFeR92oKvz2tT13w="
},
"org/ow2/asm#asm-debug-all/5.0.3": {
"jar": "sha256-KWk1asHkD+QUGUjFY2kCOPXXnXaux/2HNTaGejMe3oE=",
"pom": "sha256-nJnXpVVyW8L4N5l3k1zboW1ofZyTtuByXhlhgNSQyZU="
},
"org/ow2/asm#asm-parent/5.0.3": {
"pom": "sha256-wu2r9BKKU030uLSwubVi6U8kK6lawk3GFIVDK4oYjjI="
},
"org/ow2/asm#asm-tree/9.6": {
"jar": "sha256-xD7PF7U5x3fhXae1uGVTs3fi05poPeYoVWfVKDiI5+8=",
"pom": "sha256-G8tIHX/Ba5VbtgygfIz6JCS87ni9xAW7oxx9b13C0RM="
},
"org/ow2/asm#asm/9.6": {
"jar": "sha256-PG+sJCTbPUqFO2afTj0dnDxVIjXhmjGWc/iHCDwjA6E=",
"pom": "sha256-ku7iS8PIQ+SIHUbB3WUFRx7jFC+s+0ZrQoz+paVsa2A="
},
"org/postgresql#postgresql/42.6.2": {
"jar": "sha256-gmKXVPMJwLVx0dQLp0+wU4VfhjdSpGyjB8ez5YYMSy4=",
"pom": "sha256-/5dcZtbZSN/YKp6SbsER7eldPkyRo6DYaQ8xox45NMY="
},
"org/python#jython-standalone/2.7.3": {
"jar": "sha256-2n89gpsUi8+oawWdyWTjqFVv7bAhCWyNsH4wxm+qubQ=",
"pom": "sha256-moD1I2PkBVnKxMjaKsX4uil3ksbpEmN7dIUfKjMHDNI="
},
"org/slf4j#slf4j-api/1.7.25": {
"jar": "sha256-GMSgCV1cHaa4F1kudnuyPSndL1YK1033X/OWHb3iW3k=",
"pom": "sha256-fNnXoLXZPf1GGhSIkbQ1Cc9AOpx/n7SQYNNVTfHIHh4="
},
"org/slf4j#slf4j-nop/1.7.25": {
"jar": "sha256-bLEnE49Btahp+ezdBhrRd5mg4/5yBGAHlxVOsEMu6xI=",
"pom": "sha256-ogpNV7z++b2sp9EVliwN58lEa+TUZre9MNXxmkWc9Jk="
},
"org/slf4j#slf4j-parent/1.7.25": {
"pom": "sha256-GPXFISDbA26I1hNviDnIMtB0vdqVx1bG9CkknS21SsY="
},
"org/smali#baksmali/2.5.2": {
"jar": "sha256-HtI2Jm19xJB6reCxmjT3fvrCU0K2PIrOUuV5A5lBs4k=",
"module": "sha256-g+59x3oek4+5BtaNfUPiRX8s+Im7HecuqtcJJDVfpbU=",
"pom": "sha256-8FzZiasE/SboahreXCGauEgovqfebryA/Bd7YtJ1k4g="
},
"org/smali#dexlib2/2.5.2": {
"jar": "sha256-WlyJgti9fW47saBxMEnjx4txnsMrIPa2GYhc7DCg3WE=",
"module": "sha256-5XDKZe/asrKMAq2P34W9hSIGZrkkuJXKW+r1fXKGiDw=",
"pom": "sha256-BWB6NSDN841drl0MQZZRKjhWpA3rlTny/OCGNalut44="
},
"org/smali#util/2.5.2": {
"jar": "sha256-T1gKnP8+u4PLP9IL7Ijjfk8YN5bKZScymSYRYgKC2uo=",
"module": "sha256-rRt+JSAWcAXJFp2Gv8z/JvXF+b8Ls/qyRMtIIWU9wmE=",
"pom": "sha256-IKx+12/5cPUQB6IPrIvbon7IeUT9Kb2oxnQJZ5LJFFE="
},
"org/sonatype/oss#oss-parent/6": {
"pom": "sha256-tDBtE+j1OSRYobMIZvHP8WGz0uaZmojQWe6jkyyKhJk="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
},
"org/tribuo#tribuo-classification-core/4.2.0": {
"jar": "sha256-+vv5OnIrmrVC7oeaX09lF5bkyuobZ5gNVWL+jdjbqeY=",
"pom": "sha256-gLgGCPTPN93HLmioPGBRyupwvqF+96hTCfWeqdpzBPE="
},
"org/tribuo#tribuo-classification-tree/4.2.0": {
"jar": "sha256-uVozLZJI7RKVgxdkTNQ9cubdit4KJPnKTlLaB72sY6c=",
"pom": "sha256-OrTlGe48n3lzd3MirS7EaR5j1kovRxiR4A1BGQdY2jw="
},
"org/tribuo#tribuo-classification/4.2.0": {
"pom": "sha256-SqINxWFbgU86wjq3xB+s+LpCKbPuzSwa/KeL3/kntcU="
},
"org/tribuo#tribuo-common-tree/4.2.0": {
"jar": "sha256-34iqIWT+X60ITLIxl7LgodbBPk7QbuXCGXausNuVfOk=",
"pom": "sha256-DbCNldwWEPdn/AehmZqXlhVxALozjH4JA2jMVN5NIHU="
},
"org/tribuo#tribuo-common/4.2.0": {
"pom": "sha256-GAZzLdQd51aq3tY2v7qZSD00J72diyAvEEJcr84iykk="
},
"org/tribuo#tribuo-core/4.2.0": {
"jar": "sha256-NFwzfcKHjsdQJJgqqwZycZtznnGOc9eisu/ottXQCb8=",
"pom": "sha256-XkjLxuPn9x+wYPSWdPTXbCLcKEe9flflVCY7+5gYpZ0="
},
"org/tribuo#tribuo-data/4.2.0": {
"jar": "sha256-m8EQCFnODOBCDNbfbOdna25DxSKEXUKGz5FIUmgtYz0=",
"pom": "sha256-SMm4+bX7Nd5toLwWhuMLStMkS6UWMCNw1fqGd1ixruA="
},
"org/tribuo#tribuo-math/4.2.0": {
"jar": "sha256-7NZdhI/2SIAXBLm6D3CmRtQDAgy97SYf1zVIGkeWVRI=",
"pom": "sha256-iCAlohj3F9hakTNsztSg+08CsjFcppZy0oqCc3uWhVE="
},
"org/tribuo#tribuo-util-onnx/4.2.0": {
"jar": "sha256-ohcAq4nLB1/OT8UkA1n5HMj4t/JCiS1lsD+oda0s3Vs=",
"pom": "sha256-Q19d8ELZieF6QHPjcFa++ChKUrw3zIZeF5Xvi7U5KUw="
},
"org/tribuo#tribuo-util-tokenization/4.2.0": {
"jar": "sha256-b0TzDZ0g6amwscMHAbcrPeXtofbXbZXanWkHQmVXdoI=",
"pom": "sha256-6GAT6tT7c0apQghWqMAX/g7aAlhmu0w935AK2JLi/Tg="
},
"org/tribuo#tribuo-util/4.2.0": {
"pom": "sha256-saxG0eBU4acgcz0cMeBMaIxxJb+mIN7RpEQ9BdNMma8="
},
"org/tribuo#tribuo/4.2.0": {
"pom": "sha256-mMQFMwnY7vg2fAbCAmyDHkqwS3nOny0hrGrrKE2dNZQ="
},
"org/tukaani#xz/1.9": {
"jar": "sha256-IRswbPxE+Plt86Cj3a91uoxSie7XfWDXL4ibuFX1NeU=",
"pom": "sha256-CTvhsDMxvOKTLWglw36YJy12Ieap6fuTKJoAJRi43Vo="
}
},
"https://sourceforge.net/projects": {
"pydev/files/pydev/PyDev%206.3.1/PyDev%206.3.1": {
"zip": "sha256-TYH+nYr+dmW46iCETT9RB/RGdCknxZlz6t5PKYCbBpk="
},
"yajsw/files/yajsw/yajsw-stable-13.09/yajsw-stable-13.09": {
"zip": "sha256-Ta5zKlNYRq5d+rdT6CpNX5OtmgWgZeIXK7l3ShsVRTo="
}
},
"https://storage.googleapis.com": {
"google-code-archive-downloads/v2/code.google.com/android4me/AXMLPrinter2": {
"jar": "sha256-AO0Djrarr23eyNICo+16gbUhRY9M1FmUgRXP0C/1nW0="
}
}
}
+9 -80
View File
@@ -5,108 +5,37 @@
, jdk
, quark-engine
, makeWrapper
, perl
, imagemagick
, makeDesktopItem
, copyDesktopItems
, desktopToDarwinBundle
}:
let
stdenv.mkDerivation (finalAttrs: {
pname = "jadx";
version = "1.4.7";
src = fetchFromGitHub {
owner = "skylot";
repo = pname;
rev = "v${version}";
repo = finalAttrs.pname;
rev = "v${finalAttrs.version}";
hash = "sha256-3t2e3WfH/ohkdGWlfV3t9oHJ1Q6YM6nSLOgmzgJEkls=";
};
deps = stdenv.mkDerivation {
name = "${pname}-deps";
inherit src;
nativeBuildInputs = [ gradle jdk perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
export JADX_VERSION=${version}
gradle --no-daemon jar
# Apparently, Gradle won't cache the `compileOnlyApi` dependency
# `org.jetbrains:annotations:22.0.0` which is defined in
# `io.github.skylot:raung-common`. To make it available in the
# output, we patch `build.gradle` and run Gradle again.
substituteInPlace build.gradle \
--replace 'org.jetbrains:annotations:23.0.0' 'org.jetbrains:annotations:22.0.0'
gradle --no-daemon jar
'';
# Mavenize dependency paths
# e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.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
# Work around okio-2.10.0 bug, fixed in 3.0. Remove "-jvm" from filename.
# https://github.com/square/okio/issues/954
mv $out/com/squareup/okio/okio/2.10.0/okio{-jvm,}-2.10.0.jar
'';
outputHashMode = "recursive";
outputHash = "sha256-QebPRmfLtXy4ZlyKeGC5XNzhMTsYI0X36My+nTFvQpM=";
};
in stdenv.mkDerivation (finalAttrs: {
inherit pname version src;
nativeBuildInputs = [ gradle jdk imagemagick makeWrapper copyDesktopItems ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ desktopToDarwinBundle ];
# Otherwise, Gradle fails with `java.net.SocketException: Operation not permitted`
__darwinAllowLocalNetworking = true;
buildPhase = ''
# The installDist Gradle build phase tries to copy some dependency .jar
# files multiple times into the build directory. This ends up failing when
# the dependencies are read directly from the Nix store since they are not
# marked as chmod +w. To work around this, get a local copy of the
# dependency store, and give write permissions.
depsDir=$(mktemp -d)
cp -R ${deps}/* $depsDir
chmod -R u+w $depsDir
mitmCache = gradle.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
gradleInit=$(mktemp)
cat >$gradleInit <<EOF
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
clear()
maven { url '$depsDir' }
}
}
repositories {
clear()
maven { url '$depsDir' }
}
}
}
preBuild = "export JADX_VERSION=${finalAttrs.version}";
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
maven { url '$depsDir' }
}
}
}
EOF
export GRADLE_USER_HOME=$(mktemp -d)
export JADX_VERSION=${version}
gradle --offline --no-daemon --info --init-script $gradleInit pack
'';
gradleBuildTask = "pack";
installPhase = ''
runHook preInstall
+695
View File
@@ -0,0 +1,695 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://dl.google.com/dl/android/maven2/com/android": {
"tools#r8/4.0.48": {
"jar": "sha256-932anr2p4yCS6sTdjhFkSnNi36YO1qOp0NMt5XC79SQ=",
"pom": "sha256-5mEMufgumNH5nOgSUcnnlm/Pgrzr0GR3pbpkzzNJ+xA="
},
"tools/build#aapt2-proto/7.3.1-8691043": {
"jar": "sha256-1eLz4eHrBiJLaHX15RPHKmUYI0J0VxgWDK8ZHUapZmQ=",
"module": "sha256-XHobthipLvWcPWDPgEmPFkYKa/L+qvxK6EfT+2xZ7aw=",
"pom": "sha256-90SV2eV+uTBEowjJ0SDPlOucHbxK9gieeWPwVgf0OWI="
},
"tools/build#apksig/7.4.1": {
"jar": "sha256-bWoTpRrDgGwRr18JZwkgVeNaZ99qdL/xVE2fVRjFrVU=",
"pom": "sha256-PnV6UitSV0bqvN4mcNzsyAKOqmcQyUe74DnIE+nSajM="
}
},
"https://plugins.gradle.org/m2": {
"com/diffplug/durian#durian-collect/1.2.0": {
"jar": "sha256-sZTAuIAhzBFsIcHcdvScLB/hda9by3TIume527+aSMw=",
"pom": "sha256-i7diCGoKT9KmRzu/kFx0R2OvodWaVjD3O7BLeHLAn/M="
},
"com/diffplug/durian#durian-core/1.2.0": {
"jar": "sha256-F+0KrLOjwWMjMyFou96thpTzKACytH1p1KTEmxFNXa4=",
"pom": "sha256-hwMg6QdVNxsBeW/oG6Ul/R3ui3A0b1VFUe7dQonwtmI="
},
"com/diffplug/durian#durian-io/1.2.0": {
"jar": "sha256-CV/R3HeIjAc/C+OaAYFW7lJnInmLCd6eKF7yE14W6sQ=",
"pom": "sha256-NQkZQkMk4nUKPdwvobzmqQrIziklaYpgqbTR1uSSL/4="
},
"com/diffplug/spotless#com.diffplug.spotless.gradle.plugin/6.13.0": {
"pom": "sha256-4qHufTD0GGdheUdAEOYkVE6BP0MHAO4oBjQvKukFMNQ="
},
"com/diffplug/spotless#spotless-lib-extra/2.32.0": {
"jar": "sha256-i8SQYGLclmwFaGL8kmCsfQWTZguEOtZcEbFW6dzLZKE=",
"module": "sha256-a8dLFqcxDey2fs8H1vXOG9x6+bh5Hek+TwfziyxosQo=",
"pom": "sha256-7wDQM9CMLJ7yFDwmJVav40DYs4doI9Zw0pzrct/nhBQ="
},
"com/diffplug/spotless#spotless-lib/2.32.0": {
"jar": "sha256-S6xhJrXWaIZdgFrGGqDiUoi5EN6zPydHZO543raRsuw=",
"module": "sha256-h6cE9aXpl+52z2PjA5+orSSKMx7xV4tfiX7VQ2AZYhM=",
"pom": "sha256-a+Uybvhc5iiiuHq8mwLN+kw1rfeqdZ4a/C2ytQut5Fw="
},
"com/diffplug/spotless#spotless-plugin-gradle/6.13.0": {
"jar": "sha256-Js7wl5w5CHH1wWX6KGAeEAlgkuyW1zWKC/XM2oYJbEk=",
"module": "sha256-i9cKqqO2WIEYk+jSq+bMAxo87Hcbgyto8Dl0JH9kOig=",
"pom": "sha256-NpfHbxQP9djFACOzYUHhMOffXzQD2biONjNpzNeBZmw="
},
"com/formdev#flatlaf/1.0": {
"jar": "sha256-E12NWsOf7CnZs/9SyzBybT+XawaYYVvjJTT9eSTynsc=",
"module": "sha256-dStur7AL/wRCGXCYLcqvz1l7SajJE64M73XkKHYKC68=",
"pom": "sha256-ylkCGnUHptHH0ZM+DN+hxKlpqgTsaMYsMdYTMtMAlpo="
},
"com/github/ben-manes#gradle-versions-plugin/0.45.0": {
"jar": "sha256-RpBMEWJmqzmQy6JpyFGsSUppwhIbz5nkPKU4blLUJaM=",
"module": "sha256-RyWDjnWYFyb1ogLMtL31WY2c34mAdiApHtWi7XAJR4c=",
"pom": "sha256-8TEb3zGSUlFQ0qtWZCgpqnnfiCrp6GNt+97S+d78NDk="
},
"com/github/ben-manes/versions#com.github.ben-manes.versions.gradle.plugin/0.45.0": {
"pom": "sha256-TF+vdABxshvnS8Py3jamb3OZ8ISsA2DTFzt5iYWyh7Q="
},
"com/github/johnrengelman/shadow#com.github.johnrengelman.shadow.gradle.plugin/7.1.2": {
"pom": "sha256-lW5FCF5S6l7zLTRnHruE6xxBqDxFSa8m5oY18QYXmNM="
},
"com/googlecode/concurrent-trees#concurrent-trees/2.6.1": {
"jar": "sha256-BONySYTipcv1VgbPo3KlvT08XSohUzpwBOPN5Tl2H6U=",
"pom": "sha256-Q8K5sULnBV0fKlgn8QlEkl0idH2XVrMlDAeqtHU4qXE="
},
"com/googlecode/javaewah#JavaEWAH/1.1.13": {
"jar": "sha256-TA/aKx0xd1DX6jJONscLK8SDEMCqrme5jfCRXWltcRE=",
"pom": "sha256-lyWx/pxoENl3dQu4RBXqEILEtIjUqDn5cEu09ej8F/Q="
},
"com/squareup/moshi#moshi-kotlin/1.12.0": {
"jar": "sha256-HENsB8FZzRrwMrt5NRpIqY5/eBrIB8/4tXEamZtWZt8=",
"module": "sha256-KnvKZtbM8WhVy1oKp8lRWPaIklomPv5MIEsjclSGH6E=",
"pom": "sha256-gwdSmAK8nLCHd24CabvdaSBG+kpz8ZDVgUpaj5JmJ24="
},
"com/squareup/moshi#moshi/1.12.0": {
"jar": "sha256-7pCR4dGlkm+ptN8mQsH7e7lq7Ahjm2IZwZ4LhyTUJHU=",
"module": "sha256-uGqTFURxITGVpEL4XKBG55oAHG1EbEHU0WiTbahW6+I=",
"pom": "sha256-YbyUJDqTc9mUini25xAAl161EPtvf0aoHq/N3TgeR3k="
},
"com/squareup/okhttp3#okhttp/4.9.3": {
"jar": "sha256-k+zWy6Gdh9zP5WbshI2RqueZ488WwAcJNY6mm9kichk=",
"module": "sha256-gyf+V2cjmG3tSvpeDZ4TKuMCzPVvITwNuCGnQE1A+O8=",
"pom": "sha256-ZN87m63dAOqkvHJ2Qf0VfGXzlGXmjq7KpaHQQX/C8mk="
},
"com/squareup/okio#okio/2.10.0": {
"jar": "sha256-on8JHTSqRS43In4s+oWAnykBKo7yUBqbWhJal45Py8E=",
"module": "sha256-EcvqvDp2XJqAMkL6ICShGFPrCGXaU2xLBa/c27I0Y3A=",
"pom": "sha256-S5YGC20aK5bpDkKtcVitvjRpMWuA/qCBfGwzmT7hzHI="
},
"com/squareup/okio#okio/2.8.0": {
"module": "sha256-F7qrcnA4ml+mOrEoEYZNCgDzgWEbxOsEL6G9WRjtCWU=",
"pom": "sha256-JiFAaP1Mf0N6yP6FdoAqmp3BUcRXWCgHrZryry6MlIE="
},
"com/thoughtworks/xstream#xstream-parent/1.4.19": {
"pom": "sha256-DUgSxOMREJtuOk5gZvgh10kZgTl25P6p5CfPNi8vBYM="
},
"com/thoughtworks/xstream#xstream/1.4.19": {
"jar": "sha256-yayTUnlCGJron8kSBnY1jxHqj3E8Y1qfLHAGP+ZxZjQ=",
"pom": "sha256-7odNIUDKTox3TojfZW7svJZT9bjLmAapq4UFwmm3s34="
},
"commons-beanutils#commons-beanutils/1.9.4": {
"jar": "sha256-fZOMgXiQKARcCMBl6UvnX8KAUnYg1b1itRnVg4UyNoo=",
"pom": "sha256-w1zKe2HUZ42VeMvAuQG4cXtTmr+SVEQdp4uP5g3gZNA="
},
"commons-io#commons-io/2.11.0": {
"jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=",
"pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k="
},
"commons-logging#commons-logging/1.2": {
"jar": "sha256-2t3qHqC+D1aXirMAa4rJKDSv7vvZt+TmMW/KV98PpjY=",
"pom": "sha256-yRq1qlcNhvb9B8wVjsa8LFAIBAKXLukXn+JBAHOfuyA="
},
"edu/sc/seis/launch4j#edu.sc.seis.launch4j.gradle.plugin/2.5.4": {
"pom": "sha256-0kiTtasyoeS0aMK/2OoTMqA9qBFFhgpuz3e/bM6fE6c="
},
"edu/sc/seis/launch4j#launch4j/2.5.4": {
"jar": "sha256-ItJxFUklmcsCnJcoo1nKPuEHXuoMVNMCLP9l8CNB734=",
"module": "sha256-36qMMXxT12p0b8RM8T8onfxF/6dx1e9gRkinCOMv8bA=",
"pom": "sha256-x3C0urW9xQxP3xKUkCBdFmfYKEwGLK5wS7vGy2xXKv8="
},
"gradle/plugin/com/github/johnrengelman#shadow/7.1.2": {
"jar": "sha256-v3BcwupcAYCqhwoPqAs5vxOhTScSjh6zpLZ0vjT1jpA=",
"pom": "sha256-H6qwvkF9ezxBqXzKCsqKWwtkBvw7Etfyjiw0Ex3/k0o="
},
"io/github/x-stream#mxparser/1.2.2": {
"jar": "sha256-ru7iOjMD2BG8qHkOp/JbU0MUhhwDz/Ntr9zCGAlp65c=",
"pom": "sha256-I1AiQk4S8zGB9iraGcxEKAGbaXZXw8OSzjVxYKQi+qg="
},
"net/sf/launch4j#launch4j/3.14": {
"pom": "sha256-xEYpdod2nJWyb2Qg9zsr0qKd90TYllTAdKhVb2Is+Vs="
},
"net/sf/launch4j#launch4j/3.14/core": {
"jar": "sha256-pGVAv4Nrz3s1AHM9n6f1muzYyDeUJz5zZlWrLKdXYjA="
},
"org/apache#apache/13": {
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
},
"org/apache#apache/19": {
"pom": "sha256-kfejMJbqabrCy69tAf65NMrAAsSNjIz6nCQLQPHsId8="
},
"org/apache#apache/23": {
"pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw="
},
"org/apache/ant#ant-launcher/1.10.11": {
"jar": "sha256-2rUw33qYC1rI/X6NIIJDrg0+vW3gmxqiznVjYMwu0lY=",
"pom": "sha256-7SoGiCYb624I7FSzgxLx1ILM8aO4Y8R9KNW5CkRtHB4="
},
"org/apache/ant#ant-parent/1.10.11": {
"pom": "sha256-V6BTJoLzD6MHQWoiWSnVcQrNpy17Je4IyvmNyCzTXbY="
},
"org/apache/ant#ant/1.10.11": {
"jar": "sha256-iMC4m7uq4B4Nn8rpO+eS9au+NAkQb47uhY/fNl28B1Q=",
"pom": "sha256-wiiU2ctGq/XOv27rK8z+TXjhju6jEaDqat3VnftLH+M="
},
"org/apache/commons#commons-parent/34": {
"pom": "sha256-Oi5p0G1kHR87KTEm3J4uTqZWO/jDbIfgq2+kKS0Et5w="
},
"org/apache/commons#commons-parent/47": {
"pom": "sha256-io7LVwVTv58f+uIRqNTKnuYwwXr+WSkzaPunvZtC/Lc="
},
"org/apache/commons#commons-parent/52": {
"pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4="
},
"org/apache/logging#logging-parent/3": {
"pom": "sha256-djouwrgJTUFh3rbCZLEmIIW5vjC/OjHCzhNyQuV3Iqc="
},
"org/apache/logging/log4j#log4j-api/2.17.1": {
"jar": "sha256-sNikyKtPuLGIjQCVgicDsObUeTxBlVAgPanmkZYWHeQ=",
"pom": "sha256-HirO8yILKb4QrgmXKLFYsY2UP5Ghk8xFAbtC+SnB6Io="
},
"org/apache/logging/log4j#log4j-core/2.17.1": {
"jar": "sha256-yWfyI0h5gLk2TpSnx/mooB/T7nwZvb8LD5+MuFEfPUE=",
"pom": "sha256-C7s79tTSKhv6PDwJJ8KUEK8UoPsm47Ark3JvXH6Yqv0="
},
"org/apache/logging/log4j#log4j/2.17.1": {
"pom": "sha256-lnq8AkRDqcsJaTVVmvXprW8P9hN1+Esn1EDS+nCAawk="
},
"org/beryx#badass-runtime-plugin/1.13.0": {
"jar": "sha256-ekslb9N9F6TK7Ms2hpeKmzRYW7WbXxmhmCzwYX+q86g=",
"module": "sha256-FdSu+57WOootchnvCNjEY6VztDoF2UiBAeUmgx3pmMA=",
"pom": "sha256-0bql4D6Gy4kd5e9l0OYNlowgT6/5EQ2TWFmX3EoZW9E="
},
"org/beryx/runtime#org.beryx.runtime.gradle.plugin/1.13.0": {
"pom": "sha256-xlrrkFABYYEdS2cOwaKcaTL5gk5hI00vWQNCJaDSSRg="
},
"org/codehaus/plexus#plexus-utils/3.4.1": {
"jar": "sha256-UtheBLORhyKvEdEoVbSoJX35ag52yPTjhS5vqoUfNXs=",
"pom": "sha256-sUTP+bHGJZ/sT+5b38DzYNacI6vU6m5URTOpSbaeNYI="
},
"org/codehaus/plexus#plexus/8": {
"pom": "sha256-/6NJ2wTnq/ZYhb3FogYvQZfA/50/H04qpXILdyM/dCw="
},
"org/eclipse/jgit#org.eclipse.jgit-parent/5.13.1.202206130422-r": {
"pom": "sha256-3mX8du2PRKV3he4WSRjcPU9V7j/qake8fLG6oZ7xvIM="
},
"org/eclipse/jgit#org.eclipse.jgit/5.13.1.202206130422-r": {
"jar": "sha256-1nk2WmyOVcFJZwEJn15XZUM/aNy2WXWUFrpbIi61BVw=",
"pom": "sha256-PMS+v5yTZXjq4rbST7KpEtiZk6VP0OL7wcirwEmHhRU="
},
"org/jdom#jdom2/2.0.6": {
"jar": "sha256-E0XxG6YG0VYD1nQFUajCGUfAIVZAdw7GcnH+eL6pfPU=",
"pom": "sha256-R7I6ef4za3QbgkNMbgSdaBZSVuQF51wQkh/XL6imXY0="
},
"org/jetbrains#annotations/13.0": {
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
},
"org/jetbrains/kotlin#kotlin-reflect/1.6.21": {
"jar": "sha256-Hh9XIJ9yOMP9FzWhuTOaVlZVB9yiSfg3G/WdkfYBrqo=",
"pom": "sha256-2nHh493COI1nVkFnLi8DFtucnSEvlG8CbUoOahM2p/M="
},
"org/jetbrains/kotlin#kotlin-stdlib-common/1.6.21": {
"jar": "sha256-GDvsWc2fOhSVexkOjIec8RlL0fEGsKe24cu4eQ0kI2M=",
"pom": "sha256-W8FW7nP9PC2sil7FSNWBtjMzNUfC/r7Zz2VH//FSa6I="
},
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.6.21": {
"jar": "sha256-8bBjTbuUFyA4RjAguy3UXKJoSfjOKdYlrLDxVp0R2+4=",
"pom": "sha256-ARzSjruf3oFrA1nVrhCjZ07A/yxTEMBBLCDv6Oo9oG4="
},
"org/jetbrains/kotlin#kotlin-stdlib-jdk8/1.6.21": {
"jar": "sha256-2rRUibR3NtWfzkS4BnbxlHqba8qxD9YOh4qDvYKmlUw=",
"pom": "sha256-g2oReaCNJJFGl9JhLgO4SKCHyAy0sMoj+c+rJH86dcQ="
},
"org/jetbrains/kotlin#kotlin-stdlib/1.6.21": {
"jar": "sha256-c5xSZnK7M3Vzso9jr6gwbrCIsMOgln9W1sifSjASpJI=",
"pom": "sha256-zkJyW6Ab2DbNqmZ9l032hL9vjxXng5JjMgraf/quHzQ="
},
"org/junit#junit-bom/5.7.2": {
"module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=",
"pom": "sha256-zRSqqGmZH4ICHFhdVw0x/zQry6WLtEIztwGTdxuWSHs="
},
"org/ow2#ow2/1.5": {
"pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs="
},
"org/ow2/asm#asm-analysis/9.2": {
"jar": "sha256-h4++UhcxwHLRTS1luYOxvq5q0G/aAAe2qLroH3P0M8Q=",
"pom": "sha256-dzzBor/BTGxKl5xRoHXAI0oL9pT8Or5PrPRU83oUXxs="
},
"org/ow2/asm#asm-commons/9.2": {
"jar": "sha256-vkzlMTiiOLtSLNeBz5Hzulzi9sqT7GLUahYqEnIl4KY=",
"pom": "sha256-AoJOg58qLw5ylZ/dMLSJckDwWvxD3kLXugsYQ3YBwHA="
},
"org/ow2/asm#asm-tree/9.2": {
"jar": "sha256-qr+b0jCRpOv8EJwfPufPPkuJ9rotP1HFJD8Ws8/64BE=",
"pom": "sha256-9h8+vqVSDd8Z9FKwPEJscjG92KgdesKHZctScSJaw3g="
},
"org/ow2/asm#asm/9.2": {
"jar": "sha256-udT+TXGTjfOIOfDspCqqpkz4sxPWeNoDbwyzyhmbR/U=",
"pom": "sha256-37EqGyJL8Bvh/WBAIEZviUJBvLZF3M45Xt2M1vilDfQ="
},
"org/slf4j#slf4j-api/1.7.30": {
"jar": "sha256-zboHlk0btAoHYUhcax6ML4/Z6x0ZxTkorA1/lRAQXFc=",
"pom": "sha256-fgdHdR6bZ+Gdy1IG8E6iLMA9JQxCJCZALq3QNRPywxQ="
},
"org/slf4j#slf4j-parent/1.7.30": {
"pom": "sha256-EWR5VuSKDFv7OsM/bafoPzQQAraFfv0zWlBbaHvjS3U="
},
"org/sonatype/oss#oss-parent/5": {
"pom": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/vafer#jdependency/2.7.0": {
"jar": "sha256-1j79V0b/QIlDp91++Frp8Jqn+2O7KxaRFCfObEW1n9A=",
"pom": "sha256-6yRCKwo+nofVrG6oCHeG+1HEsbvg0iXvdSFSxzaiBNA="
},
"xmlpull#xmlpull/1.1.3.1": {
"jar": "sha256-NOCO5iEWBxy7acDtcNFaelsgjWJ5jFnyEgu4kpMky2M=",
"pom": "sha256-jxD/2N8NPpgZyMyEAnCcaySLxTqVTvbkVHDZrjpXNfs="
}
},
"https://repo.maven.apache.org/maven2": {
"antlr#antlr/2.7.7": {
"jar": "sha256-iPvaS5Ellrn1bo4S5YDMlUus+1F3bs/d0+GPwc9W3Ew=",
"pom": "sha256-EA95O6J/i05CBO20YXHr825U4PlM/AJSf+oHoLsfzrc="
},
"ch/qos/logback#logback-classic/1.3.5": {
"jar": "sha256-nWi52vL7uYoJsEReDGSsMJ2dDhVraFELY3kTl8l+MuQ=",
"pom": "sha256-7HWshxo9E2HbsPjbbSUDW6uJpeqXPxhKse+pHO7oRsU="
},
"ch/qos/logback#logback-core/1.3.5": {
"jar": "sha256-sfDsOT8vW7rx3sthYk3hg4ZjTDGX6e7WnRwSNN3XVvM=",
"pom": "sha256-HgdGJT8D995vW70VQzaqTXWGlCEPac//bo61+O/DVSg="
},
"ch/qos/logback#logback-parent/1.3.5": {
"pom": "sha256-EYAKLQpLzUQpZNpWHBGhHxbkS4n+prEKiRoQkigHn1s="
},
"com/beust#jcommander/1.81": {
"jar": "sha256-nYtCl5yZ89qpkQL+m6H7JfUiJstIz1i8GKy5MTLkGgU=",
"module": "sha256-yQiuLdCRx1kB8zhnWrOWNOGfmyFjaUZwwSLiir5aDoI=",
"pom": "sha256-8CBdB5nUsdc0JS/Z+g3T63x1H1/762eyVeQStV/i41U="
},
"com/beust#jcommander/1.82": {
"jar": "sha256-3urBV8jeaCKHjYXQx7yEZ6GcyEhNN3iPeATwOd3igLE=",
"module": "sha256-k2oti84PhNoYUA9OEZSIuTEG26qDuEYv6Za80OHDixY=",
"pom": "sha256-JGNEFwtRO4Acz4EiNNThMkoPbtKoHpCqYYkTtmucwXM="
},
"com/fifesoft#rsyntaxtextarea/3.3.2": {
"jar": "sha256-TAslPpJ8Ho8zUkhBcNA98Iu39QORc6vAXP+dERwyqks=",
"module": "sha256-ctL5lETQWlYoNVrzcGQm8Ea+Yzpm4a+wdt2xLTdoi9Y=",
"pom": "sha256-KwgwlBEYFM9LGWtMEA75Nc2ztgJ9Z9HAtWLPc0LRNgk="
},
"com/formdev#flatlaf-extras/3.0": {
"jar": "sha256-wAud4HI/J1PtR7c1t6RLVK6rJt6bO5dTIYgftTVTx1E=",
"module": "sha256-FkTiG6Si+TVfX7Ap9WZoo5KsEqUpSQ1nu2VWJoKmoek=",
"pom": "sha256-B1lbUVRfuH8a1+CDuKEjm/h7/P64KAc4bOaFP59vCWI="
},
"com/formdev#flatlaf-intellij-themes/3.0": {
"jar": "sha256-N3qzctH/ln9MPMO0us78YYWgYnehChoUOlwqITjZObA=",
"module": "sha256-sKyuEQ8TM+zDL3YDcQrw4HjM1OV+uBLrZG/Wnd6sRv8=",
"pom": "sha256-dSGPJNAI5MRhs8b6JQ5w1c0yJ6ChWzcXexL/z3fF33Y="
},
"com/formdev#flatlaf/3.0": {
"jar": "sha256-lpsnqmEscOy4VmTlXYxfdnimGI+dt8UUKoH25HXhmGc=",
"module": "sha256-ndu+u4qmfA+PJfYcWspgGYHiWjZ2fM9YuuaMopWgUxs=",
"pom": "sha256-p4oaUVQeiMBghuMPw5BvUdWOUCDETbd52rsS8JEuTPk="
},
"com/formdev#svgSalamander/1.1.4": {
"jar": "sha256-4PGk2RzE9s4I6LRBsbMmuJjiUDZqn0xIk3EoTHhNMhE=",
"pom": "sha256-ndRWBiO6S1ETmg3EnarIjL5dJIzUgrPzoLJfYZutUvk="
},
"com/github/akarnokd#rxjava2-swing/0.3.7": {
"jar": "sha256-umWvI1GP+Ucha7S+kDC7AavSQkHOEy3oPoUdC81S7n4=",
"pom": "sha256-VCbDiy18y9Z5qiBuF6TPrxPrk3IPPnjPjdckAjfNnLE="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/google/code/gson#gson-parent/2.10.1": {
"pom": "sha256-QkjgiCQmxhUYI4XWCGw+8yYudplXGJ4pMGKAuFSCuDM="
},
"com/google/code/gson#gson/2.10.1": {
"jar": "sha256-QkHBSncnw0/uplB+yAExij1KkPBw5FJWgQefuU7kxZM=",
"pom": "sha256-0rEVY09cCF20ucn/wmWOieIx/b++IkISGhzZXU2Ujdc="
},
"com/google/errorprone#error_prone_annotations/2.5.1": {
"jar": "sha256-/4Bia6rxKgk0K+/U6Ey6nVBmL1/Nf3qbNJCmt8+H5mw=",
"pom": "sha256-mDrX/g+m9vkeLSBHf1CJ7Mw/TY7GxR1utFWDlw4nnTw="
},
"com/google/errorprone#error_prone_annotations/2.7.1": {
"jar": "sha256-zVJXwIokbPhiiBeuccuCK+GS75H2iByko/z/Tx3hz/M=",
"pom": "sha256-Mahy4RScXzqLwF+03kVeXqYI7PrRryIst2N8psdi7iU="
},
"com/google/errorprone#error_prone_parent/2.5.1": {
"pom": "sha256-oXp2d0gqOlGkX14IFAByrNMyzLEvI4mbAFLYCnKcLlI="
},
"com/google/errorprone#error_prone_parent/2.7.1": {
"pom": "sha256-Cm4kLigQToCTQFrjeWlmCkOLccTBtz/E/3FtuJ2ojeY="
},
"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/30.1.1-jre": {
"pom": "sha256-BCK9Rcokl7+hiq0mmDJJZe1w2gkHuKfUWberO17tODQ="
},
"com/google/guava#guava-parent/31.0.1-jre": {
"pom": "sha256-s7a2qnCZwRgXrO6FsyL9kffuMq6mn+CD7jbIc17AZ4g="
},
"com/google/guava#guava/30.1.1-jre": {
"jar": "sha256-RM4inOJtiAvzr8Niu/zsNNfmkD0ZW7sdufO24NmDTwY=",
"pom": "sha256-bRjJGIrUt4Vft/6m8Xk3VLQfoXR4Ea4ePXU9b8ydzFk="
},
"com/google/guava#guava/31.0.1-jre": {
"jar": "sha256-1b6U1l6HvSGfsxk60VF7qlWjuI/JHSHPc1gmq1rwh7k=",
"pom": "sha256-K+VmkgwhxgxcyvKCeGfK/3ZmRuIRO3/MPunCSkCy85Y="
},
"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/google/protobuf#protobuf-bom/3.21.12": {
"pom": "sha256-O72GqUBXpnHmPVX532EsZBlz1ecNba4qtFYk/xrfUcU="
},
"com/google/protobuf#protobuf-java/3.21.12": {
"jar": "sha256-Pz7b2pKGJGCA8+r1Yd1rDVorHxAI9pCRFchgnOrp34c=",
"pom": "sha256-CXiOUXdwUnUK3bE39cMbdwDlY6UsncRQlXqGVM/gVrU="
},
"com/google/protobuf#protobuf-parent/3.21.12": {
"pom": "sha256-fj44jW/7fyDmb/JfRbk3i0Igt7L9Jh9rO8IGs9/4u8g="
},
"com/jakewharton/android/repackaged#dalvik-dx/11.0.0_r3": {
"jar": "sha256-N1gaVv3tFexviLRtPHcEzHAKM3H5519BshIeMod2m6k=",
"pom": "sha256-p1xwnmYDV+amCkqI5dm/UQEH5TJ2JzabwfgDDzmJONE="
},
"com/puppycrawl/tools#checkstyle/9.3": {
"jar": "sha256-BGPjBJgPVGC5ZPSBzMJaEPslO2AQDBnlD8mSiSiVl38=",
"pom": "sha256-p9y0ZmVtZ/oKUNkE/d8U/GtTmEa4FO3/djXHRdW9MDQ="
},
"commons-beanutils#commons-beanutils/1.9.4": {
"jar": "sha256-fZOMgXiQKARcCMBl6UvnX8KAUnYg1b1itRnVg4UyNoo=",
"pom": "sha256-w1zKe2HUZ42VeMvAuQG4cXtTmr+SVEQdp4uP5g3gZNA="
},
"commons-collections#commons-collections/3.2.2": {
"jar": "sha256-7urpF5FxRKaKdB1MDf9mqlxcX9hVk/8he87T/Iyng7g=",
"pom": "sha256-1dgfzCiMDYxxHDAgB8raSqmiJu0aES1LqmTLHWMiFws="
},
"hu/kazocsaba#image-viewer/1.2.3": {
"jar": "sha256-wqNLddLK8alfjMGXGam6MNEJZhi9sIez22/8ELrAUik=",
"pom": "sha256-7Wev/h7E7cGYGKhqSZqe8DfWujf3GFvTBbs62otf+qw="
},
"info/picocli#picocli/4.6.2": {
"jar": "sha256-R1TZbq9TFPNaKH2lxnhIsoUGeGj8ptH1Ehp09n8GW2E=",
"pom": "sha256-3q4p2lxR4/6dla9ujzkVbCvBt0niQtATbp4jIINIF5k="
},
"io/github/skylot#jdwp/2.0.0": {
"jar": "sha256-Z01piJwpSc+I/MIGr38ur7FTMWsy5GzO8Tz5FRw3jqw=",
"module": "sha256-0bY96BmtAR3paWge0wxaULPc3FclHTTfnEtnw+6nU3Q=",
"pom": "sha256-2tG6+z2xh4vm/awirm/tYaXN38OXwJruNuP8HKOEIMU="
},
"io/github/skylot#raung-asm/0.0.3": {
"jar": "sha256-o+NOaprRhicntyd7Q2w/jkx0ll3ixsNBNDEB7t23S0w=",
"module": "sha256-Xr/NftSYTE6eV44X6knVOvrHRbSNYS6cnGgQo1Hqr94=",
"pom": "sha256-sU7Vq9Zy3OCw4QwPAe8EgZYLBchyl5xDszVfcstSBYc="
},
"io/github/skylot#raung-common/0.0.3": {
"jar": "sha256-I/bEZ+qWVPA5ii/V+TpjeEZd2M4fzTYInDM5dNcnICg=",
"module": "sha256-tvEtR3+g69ui7+wp1I+H6QcEHOPDuvQwk0FhH7RSuCU=",
"pom": "sha256-yfInb1qT0ikQ2BkEr/0OArStnwhVBsFTyl4k5vVtfVU="
},
"io/github/skylot#raung-disasm/0.0.3": {
"jar": "sha256-j9HSGFHXDY2hfhwJxf0M5ME8zWlnBX1Vtlw8qYP5DaI=",
"module": "sha256-1Vdekft2GEATZ0KC32uKD6viK6ANyilFQD4qIe/QtJI=",
"pom": "sha256-/iYlIgpujopppbkOu/wMVWFIkRjBadAkvBf/3q1y9Y4="
},
"io/reactivex/rxjava2#rxjava/2.2.21": {
"jar": "sha256-Wd9lQahAAY8PTImark9MH0OD9MFv61JoYV++OE0oUBw=",
"pom": "sha256-slvs5QSD3po+Hf0lARwthTMCFu+Kgbhvar69vfmw8Sc="
},
"net/bytebuddy#byte-buddy-agent/1.12.19": {
"jar": "sha256-OnAkDefNzeBOfFBMIyfXA1ucJa4CBogeO/TmeYonPtg=",
"pom": "sha256-taLP9kNoHeFof8QKzSUf7v38oj5nPgSfs8NpK1NSbUs="
},
"net/bytebuddy#byte-buddy-parent/1.12.19": {
"pom": "sha256-cqtv70CegSkh9HKLPEtu9PpTvCX6uwSI/CyuNnNotU0="
},
"net/bytebuddy#byte-buddy-parent/1.12.21": {
"pom": "sha256-/2bYhmBxN+IJXyDJDuCT88gDKRZO/wkaBoi9zjfj5rI="
},
"net/bytebuddy#byte-buddy/1.12.19": {
"pom": "sha256-Q1+4Zkqpt+EgyN1scH1Or6ZC+iYt/21eP3HcJcaeies="
},
"net/bytebuddy#byte-buddy/1.12.21": {
"jar": "sha256-9vRcIjen8TLBZ0WtKlLEzd5YAosR7oCwnw1CL0kw1oU=",
"pom": "sha256-letCyJ/QT2IYfdM7nN8E0t8bh2s3XBatMsClocwaBws="
},
"net/sf/launch4j#launch4j/3.14": {
"pom": "sha256-xEYpdod2nJWyb2Qg9zsr0qKd90TYllTAdKhVb2Is+Vs="
},
"net/sf/launch4j#launch4j/3.14/workdir-linux64": {
"jar": "sha256-mphFGb9E6CWlsEFZfgVPi/qy+Tpm+na30aM79JIcNUY="
},
"net/sf/saxon#Saxon-HE/10.6": {
"jar": "sha256-bQjfguTthrarsaAse3SiaPz8XgBOg7tP8AbsOlCb01Y=",
"pom": "sha256-otbdpDjoZKuTXzG0O1MFLE6HEalQVkJxkZBRPnb0Ekg="
},
"org/antlr#ST4/4.0.8": {
"jar": "sha256-WMqrxAyfdLC1mT/YaOD2SlDAdZCU5qJRqq+tmO38ejs=",
"pom": "sha256-PAiQ3scRdOs7o9QEyp40GQH/awQhgIsAcTsNuxMGwXw="
},
"org/antlr#antlr-master/3.5.2": {
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
},
"org/antlr#antlr-runtime/3.5.2": {
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
},
"org/antlr#antlr/3.5.2": {
"jar": "sha256-WsNsKs+woPPTfa/iC1tXDyZD4tAAxkjURQPCc4vmQ98=",
"pom": "sha256-Bl5egGYv64WHldPAH3cUJHvdMZRZcF7hOxpLGWj6IuQ="
},
"org/antlr#antlr4-master/4.9.3": {
"pom": "sha256-VlzAVNO631DKCgcX2uMRJootZwn93ckKxKQ8YtAZNbk="
},
"org/antlr#antlr4-runtime/4.9.3": {
"jar": "sha256-ExpllJabxPMh1lLqKjO8DjeMoxJoXvh3kbLGCynQHqU=",
"pom": "sha256-T35E5OoGKfo6dZsRFv65+yiBTpX3keHu7dIMEoideqQ="
},
"org/antlr#stringtemplate/3.2.1": {
"jar": "sha256-9mznLpZeUwHLDwIOVNK6atdv65Gzy/ww278AwGpt9tc=",
"pom": "sha256-tF6CZVqlpI8z0TpD5DRUJrFWM1s14kta6hLbWCPBahY="
},
"org/apache#apache/16": {
"pom": "sha256-n4X/L9fWyzCXqkf7QZ7n8OvoaRCfmKup9Oyj9J50pA4="
},
"org/apache#apache/19": {
"pom": "sha256-kfejMJbqabrCy69tAf65NMrAAsSNjIz6nCQLQPHsId8="
},
"org/apache#apache/23": {
"pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw="
},
"org/apache#apache/27": {
"pom": "sha256-srD8aeIqZQw4kvHDZtdwdvKVdcZzjfTHpwpEhESEzfk="
},
"org/apache/commons#commons-lang3/3.12.0": {
"jar": "sha256-2RnZBEhsA3+NGTQS2gyS4iqfokIwudZ6V4VcXDHH6U4=",
"pom": "sha256-gtMfHcxFg+/9dE6XkWWxbaZL+GvKYj/F0bA+2U9FyFo="
},
"org/apache/commons#commons-parent/39": {
"pom": "sha256-h80n4aAqXD622FBZzphpa7G0TCuLZQ8FZ8ht9g+mHac="
},
"org/apache/commons#commons-parent/47": {
"pom": "sha256-io7LVwVTv58f+uIRqNTKnuYwwXr+WSkzaPunvZtC/Lc="
},
"org/apache/commons#commons-parent/52": {
"pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4="
},
"org/apache/commons#commons-parent/54": {
"pom": "sha256-AA2Bh5UrIjcC/eKW33mVY/Nd6CznKttOe/FXNCN4++M="
},
"org/apache/commons#commons-text/1.10.0": {
"jar": "sha256-dwzZA/p7YE0ffve6F/hBCGZylLK0eL6O0a87/7SuABg=",
"pom": "sha256-OI3VI0i6GEKqOK64l8kdJwsUZh64daIP2YAxU1qydWc="
},
"org/apiguardian#apiguardian-api/1.1.2": {
"jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
"module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
"pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
},
"org/assertj#assertj-build/3.24.2": {
"pom": "sha256-1/yMSqgAWDsmxGfrD67eCvXnynkMS+TU0jVDFYPSbq0="
},
"org/assertj#assertj-core/3.24.2": {
"jar": "sha256-3z0LNI8f6Aa93csQ+krmPGZ56YiNS8cFXwmEhReXaqM=",
"pom": "sha256-f7mxojdOtQ7SubWYRcaScxEeoYOaQpj5QAqA4rLFyA4="
},
"org/assertj#assertj-parent/3.24.2": {
"pom": "sha256-DFAETrW96ehEI7yhOv9dX0PTdSqzxj9zva5p/EqxoKw="
},
"org/checkerframework#checker-qual/3.12.0": {
"jar": "sha256-/xB4WsKjV+xd6cKTy5gqLLtgXAMJ6kzBy5ubxtvn88s=",
"module": "sha256-0EeUnBuBCRwsORN3H6wvMqL6VJuj1dVIzIwLbfpJN3c=",
"pom": "sha256-d1t6425iggs7htwao5rzfArEuF/0j3/khakionkPRrk="
},
"org/checkerframework#checker-qual/3.8.0": {
"jar": "sha256-yIwual/a658m/Ph5JkBC3oqe6dN24kd4OP6qvPpE3aY=",
"pom": "sha256-fm1Z4tO8AbHwT6NmcZOm1BcBmbFPulOnqONr92AiOac="
},
"org/eclipse/jdt#ecj/3.32.0": {
"jar": "sha256-B+A0xEoBnAxjlKBu57XDROVRj2CDwP0Eby2P0WpnYOI=",
"pom": "sha256-nHgB0Qv3Z4qRIwZCCOcFiSsd99CTbaLUoO3TyIqXtHU="
},
"org/hamcrest#hamcrest-core/2.2": {
"jar": "sha256-CU9dkrS32ciiv1PMadNWJDronDSZRXvLS5L37Tv5WHk=",
"pom": "sha256-9/3i//UQGl/Do54ogQuRHC2iAt3CvVB2X4nnxv+M590="
},
"org/hamcrest#hamcrest-library/2.2": {
"jar": "sha256-OFFSOiAaDUglwlphpu3FBxKCWjm9PQM5G5jEjKPLOWw=",
"pom": "sha256-9YrYNdJCZDElnYbk/jpPUWHmcdkWxcvs81c4vN6C/P8="
},
"org/hamcrest#hamcrest/2.2": {
"jar": "sha256-XmKEaonwXNeM2cGlU/NA0AJFg4DDIEVd0fj8VJeoocE=",
"pom": "sha256-s2E3N2xLP8923DN+KhvFtpGirBqpZqtdJiCak4EvpX0="
},
"org/javassist#javassist/3.28.0-GA": {
"jar": "sha256-V9Cp6ShvgvTqqFESUYaZf4Eb784OIGD/ChWnf1qd2ac=",
"pom": "sha256-w2p8E9o6SFKqiBvfnbYLnk0a8UbsKvtTmPltWYP21d0="
},
"org/jetbrains#annotations/24.0.0": {
"jar": "sha256-/xEvVM6HS4romc/WjwMV2WyfQGozi47KgMdtEOLlovc=",
"pom": "sha256-q4eN2sP6teB48NqVHqvWf77d09KvFzn+t/lHFgJ1Xws="
},
"org/junit#junit-bom/5.7.1": {
"module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=",
"pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q="
},
"org/junit#junit-bom/5.9.0": {
"module": "sha256-oFTq9QFrWLvN6GZgREp8DdPiyvhNKhrV/Ey1JZecGbk=",
"pom": "sha256-2D6H8Wds3kQZHuxc2mkEkjkvJpI7HkmBSMpznf7XUpU="
},
"org/junit#junit-bom/5.9.1": {
"module": "sha256-kCbBZWaQ+hRa117Og2dCEaoSrYkwqRsQfC9c3s4vGxw=",
"pom": "sha256-sWPBz8j8H9WLRXoA1YbATEbphtdZBOnKVMA6l9ZbSWw="
},
"org/junit#junit-bom/5.9.2": {
"module": "sha256-qxN7pajjLJsGa/kSahx23VYUtyS6XAsCVJdyten0zx8=",
"pom": "sha256-LtB9ZYRRMfUzaoZHbJpAVrWdC1i5gVqzZ5uw82819wU="
},
"org/junit/jupiter#junit-jupiter-api/5.9.2": {
"jar": "sha256-92ehcPlxJ7CtNYK/M1jqu7vpgdn5ZBGFPmKdknaSb9U=",
"module": "sha256-y9Ae2F1HTMhbIT/iBrzpgmbWdZzSjWxeQb/kUJCepHs=",
"pom": "sha256-EK9g+mkKzNzr85TsWECdzs/x3sNwJopnA2ChFfcxxVw="
},
"org/junit/jupiter#junit-jupiter-engine/5.9.2": {
"jar": "sha256-dM/Ek4j3YEE/80jKLJqzlSdIS1fe7NFX8idaX4pf6XE=",
"module": "sha256-WmigqdMTI0BieAXap0YY+zTEXMUZp8LsgzQedDixOTM=",
"pom": "sha256-nfOOgj4a3Zplas+5Wc5zsHAE32yffANnwmt0PmVrWa8="
},
"org/junit/platform#junit-platform-commons/1.9.2": {
"jar": "sha256-Yko9dF7x0o6VWmpnr47boP38XJutaApz9npwu5UKaD0=",
"module": "sha256-a6TIRhPluJ5mjuaomXHw2Q0OG4FyG4tf4MgAWPDOue4=",
"pom": "sha256-JAI/IMI1ppYJ+y+Vpgc4VX/PlBPzrpKpLhMpVH1hRck="
},
"org/junit/platform#junit-platform-engine/1.9.2": {
"jar": "sha256-JfI9xTWgkencgMAI+vKdy5K+kC5pEfd6c2+68BmQg2c=",
"module": "sha256-HehRQa+fWBU+JFdQaaE3X7vt169dhEy+MoeWU0nLofc=",
"pom": "sha256-LflCCmsk5fTzFCNeAc2cO49kYoXbL26C2G7gbvevTiQ="
},
"org/mockito#mockito-bom/4.11.0": {
"pom": "sha256-2FMadGyYj39o7V8YjN6pRQBq6pk+xd+eUk4NJ9YUkdo="
},
"org/mockito#mockito-core/4.10.0": {
"jar": "sha256-vBSafXSmWCf6rVb9zTfy9T9DbuOcKfCIJ2+hs4S/g3o=",
"pom": "sha256-Dzw6IxhyvrM1D0WynDIPI/KTKMjDgCrbs5WIbS+OsyU="
},
"org/objenesis#objenesis-parent/3.3": {
"pom": "sha256-MFw4SqLx4cf+U6ltpBw+w1JDuX1CjSSo93mBjMEL5P8="
},
"org/objenesis#objenesis/3.3": {
"jar": "sha256-At/QsEOaVZHjW3CO0vVHTrCUj1Or90Y36Vm45O9pv+s=",
"pom": "sha256-ugxA2iZpoEi24k73BmpHHw+8v8xQnmo+hWyk3fphStM="
},
"org/opentest4j#opentest4j/1.2.0": {
"jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=",
"pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ="
},
"org/ow2#ow2/1.5.1": {
"pom": "sha256-Mh3bt+5v5PU96mtM1tt0FU1r+kI5HB92OzYbn0hazwU="
},
"org/ow2/asm#asm-analysis/9.4": {
"jar": "sha256-e1+MXjvzQbW7Vw0m83nj/evcMnMhhxWcQkeRZAU/Nz0=",
"pom": "sha256-fZtgkidiP2x+9v13+gbaWG0Na6wRTPPnICDaiFPYdZw="
},
"org/ow2/asm#asm-tree/9.4": {
"jar": "sha256-xC1HnPJFZqIesgr37q7vToa9tKiGMGz3L0g7ZedbKs8=",
"pom": "sha256-x+nvk73YqzYwMs5TgvzGTQAtbFicF1IzI2zSmOUaPBY="
},
"org/ow2/asm#asm-util/9.4": {
"jar": "sha256-PXkyuT/1UFZkHnz7YB+WvNXNBx4bBQPHilAUIyKXoj4=",
"pom": "sha256-ugQzwHsMD2mA8suPgEH/WcgemEgeEBliEFFi43IvH5I="
},
"org/ow2/asm#asm/9.4": {
"jar": "sha256-OdDis9xFr2Wgmwl5RXUKlKEm4FLhJPk0aEQ6HQ4V84E=",
"pom": "sha256-SDdR5I+y0fQ8Ya06sA/6Rm7cAzPY/C/bWibpXTKYI5Q="
},
"org/reactivestreams#reactive-streams/1.0.3": {
"jar": "sha256-He4EgQctGckptiPhVeFNL2CF3AEVKaCg2+/ITPVx2GU=",
"pom": "sha256-zO1GcXX0JXgz9ssHUQ/5ezx1oG4aWNiCo515hT1RxgI="
},
"org/reflections#reflections/0.10.2": {
"jar": "sha256-k4otCP5UBQ12ELlE2N3DoJNVcQ2ea+CqyDjbwE6aKCU=",
"pom": "sha256-tsqj6301vXVu1usKKoGGi408D29CJE/q5BdgrGYwbYc="
},
"org/slf4j#slf4j-api/2.0.6": {
"jar": "sha256-LyqS1BCyaBOdfWO3XtJeIZlc/kEAwZvyNXfP28gHe9o=",
"pom": "sha256-i06GxT0ng2CPGuohPZBsW6xcBDPgCxkjm7FnZLn6NzY="
},
"org/slf4j#slf4j-parent/2.0.6": {
"pom": "sha256-FIJlDL4x5AjB3IkCHLrh0wRK1KAb+PYro2C2qBOhMSQ="
},
"org/smali#baksmali/2.5.2": {
"jar": "sha256-HtI2Jm19xJB6reCxmjT3fvrCU0K2PIrOUuV5A5lBs4k=",
"module": "sha256-g+59x3oek4+5BtaNfUPiRX8s+Im7HecuqtcJJDVfpbU=",
"pom": "sha256-8FzZiasE/SboahreXCGauEgovqfebryA/Bd7YtJ1k4g="
},
"org/smali#dexlib2/2.5.2": {
"jar": "sha256-WlyJgti9fW47saBxMEnjx4txnsMrIPa2GYhc7DCg3WE=",
"module": "sha256-5XDKZe/asrKMAq2P34W9hSIGZrkkuJXKW+r1fXKGiDw=",
"pom": "sha256-BWB6NSDN841drl0MQZZRKjhWpA3rlTny/OCGNalut44="
},
"org/smali#smali/2.5.2": {
"jar": "sha256-E2xcRlPWUxvXtvEPNfhpHLlkMucn0wtNVXmCbuAelBk=",
"module": "sha256-3ubU7dlRzZ7W5xd4wA81AoCJw7e+/HIwojoeqxalV3s=",
"pom": "sha256-NSyCM7StGa2AyNSrKY8jvdMHeHrE/phZDs30CODcZOY="
},
"org/smali#util/2.5.2": {
"jar": "sha256-T1gKnP8+u4PLP9IL7Ijjfk8YN5bKZScymSYRYgKC2uo=",
"module": "sha256-rRt+JSAWcAXJFp2Gv8z/JvXF+b8Ls/qyRMtIIWU9wmE=",
"pom": "sha256-IKx+12/5cPUQB6IPrIvbon7IeUT9Kb2oxnQJZ5LJFFE="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
},
"tools/profiler#async-profiler/2.9": {
"jar": "sha256-bE6ZPCjPKIKWTKyCoPlugaMlhABDiEUmVlAXsvYsW6Q=",
"pom": "sha256-oDKflhfii6+4Rj+/btPUskpJc5oVvhlwRVB27V1SgU8="
}
}
}
+22 -61
View File
@@ -7,8 +7,6 @@
, gradle_6
, makeDesktopItem
, copyDesktopItems
, perl
, writeText
, runtimeShell
}:
@@ -16,6 +14,8 @@ let
pname = "jd-gui";
version = "1.6.6";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "java-decompiler";
repo = pname;
@@ -23,58 +23,7 @@ let
hash = "sha256-QHiZPYFwDQzbXVSuhwzQqBRXlkG9QVU+Jl6SKvBoCwQ=";
};
patches = [
# https://github.com/java-decompiler/jd-gui/pull/362
(fetchpatch {
name = "nebula-plugin-gradle-6-compatibility.patch";
url = "https://github.com/java-decompiler/jd-gui/commit/91f805f9dc8ce0097460e63c8095ccea870687e6.patch";
hash = "sha256-9eaM9Mx2FaKIhGSOHjATKN/CrtvJeXyrH8Mdx8LNtpE=";
})
];
deps = stdenv.mkDerivation {
name = "${pname}-deps";
inherit src patches;
nativeBuildInputs = [ jdk perl gradle_6 ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d);
gradle --no-daemon jar
'';
# Mavenize dependency paths
# e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.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
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-gqUyZE+MoZRYCcJx95Qc4dZIC3DZvxee6UQhpfveDI4=";
};
# Point to our local deps repo
gradleInit = writeText "init.gradle" ''
logger.lifecycle 'Replacing Maven repositories with ${deps}...'
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
clear()
maven { url '${deps}' }
}
}
repositories {
clear()
maven { url '${deps}' }
}
}
}
'';
gradle = gradle_6;
desktopItem = makeDesktopItem {
name = "jd-gui";
@@ -89,15 +38,27 @@ let
};
in stdenv.mkDerivation rec {
inherit pname version src patches;
name = "${pname}-${version}";
inherit pname version src;
nativeBuildInputs = [ jdk gradle_6 copyDesktopItems ];
patches = [
# https://github.com/java-decompiler/jd-gui/pull/362
(fetchpatch {
name = "nebula-plugin-gradle-6-compatibility.patch";
url = "https://github.com/java-decompiler/jd-gui/commit/91f805f9dc8ce0097460e63c8095ccea870687e6.patch";
hash = "sha256-9eaM9Mx2FaKIhGSOHjATKN/CrtvJeXyrH8Mdx8LNtpE=";
})
];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle --offline --no-daemon --info --init-script ${gradleInit} jar
'';
nativeBuildInputs = [ jdk gradle copyDesktopItems ];
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
gradleBuildTask = "jar";
installPhase = let
jar = "$out/share/jd-gui/${name}.jar";
+210
View File
@@ -0,0 +1,210 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://jcenter.bintray.com": {
"com/bmuschko#gradle-docker-plugin/3.2.1": {
"jar": "sha256-BfgdS5EdMR7nrEhJ6/eLMD4HdDQY1OiaVZVCK/OAIxQ=",
"pom": "sha256-slOHkvEGJnUa9sjeAgdH/1E4kntOKfL69KjtOsFKzSE="
},
"com/fifesoft#rsyntaxtextarea/3.0.4": {
"jar": "sha256-76a7i/iJ6WnAwIGQ5AsolZbqDO3sA/7yNwGAdcsBSQU=",
"pom": "sha256-Dat8ku0cJsdYs0EjYsDXjQy4v2RB2i5q4FqGPAO3W64="
},
"com/netflix/nebula#gradle-ospackage-plugin/8.5.6": {
"jar": "sha256-sQK7oYx9F4OlcSgZj6/vNYr+/nIVufi783YpFCjvkGk=",
"module": "sha256-CQGrawL62gDjdBsDaCwdRtgDDQQ0aexWDIrl8jrwsYw=",
"pom": "sha256-zr2oKXDuN6bO9Ppzs81hOR+zFWseT5si55TrZ1yUdfs="
},
"com/thoughtworks/xstream#xstream-parent/1.4.10": {
"pom": "sha256-RncMfpQQkzv62s69yR5ekLAjxhoako27hXa2kh2DBsw="
},
"com/thoughtworks/xstream#xstream/1.4.10": {
"jar": "sha256-oVh/NfphdRNgfIbsnm5N5euKzfmjptf3RY+KjECwCFg=",
"pom": "sha256-pKn/aI9xPaPqwEQS5QoMml4XPmkh/kRt2wfUkB2aNBc="
},
"com/yuvimasory#orange-extensions/1.3.0": {
"jar": "sha256-M1gGPRjFV56evw/eRWQOqy1FJ9HummKDyTZ5zqRG3YY=",
"pom": "sha256-MBQbN96epg6iqwnPBCVAc4hHqKG8A1o7a9A2OsMvV7I="
},
"commons-beanutils#commons-beanutils/1.7.0": {
"jar": "sha256-JLyqIMy9x8hWzgwK6hRFZpQ0A+Lp8nvZd5zaHXaCPvQ=",
"pom": "sha256-tqymRloosCdobwJdV3AvkK0NEo4U0c/OygvYcfAIStk="
},
"commons-io#commons-io/2.6": {
"jar": "sha256-+HfTBGYKwqFC84ZbrfyXHex+1zx0fH+NXS9ROcpzZRM=",
"pom": "sha256-DCOGOJOiKR9aev29jRWSOzlIr9h+Vj+jQc3Pbq4zimA="
},
"commons-logging#commons-logging/1.2": {
"jar": "sha256-2t3qHqC+D1aXirMAa4rJKDSv7vvZt+TmMW/KV98PpjY=",
"pom": "sha256-yRq1qlcNhvb9B8wVjsa8LFAIBAKXLukXn+JBAHOfuyA="
},
"edu/sc/seis/gradle#launch4j/2.4.4": {
"jar": "sha256-Q3jZCBGaI9GKG9t0HAnL+KRhoNfFNSFo3PQHZmFC3FY=",
"pom": "sha256-Cfk0ecS6AgtilLVZvLVOHdRNsB+iLGDZLa0o0zHJFqs="
},
"junit#junit/4.12": {
"jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=",
"pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
},
"net/sf/launch4j#launch4j/3.12": {
"pom": "sha256-rVGWVL75ed10qYwXKlR93sPNhWSAORnj296G05Srvpc="
},
"net/sf/launch4j#launch4j/3.12/core": {
"jar": "sha256-XUbxMJCI4cijjw9KV84ITUZBakNdG5OZW8OFKooysIU="
},
"net/sf/launch4j#launch4j/3.12/workdir-linux64": {
"jar": "sha256-XlgZsoDyUT9EfHBsXejU3OceVlxFMUv0+pv+0MXs57k="
},
"net/sf/proguard#proguard-base/6.1.0": {
"jar": "sha256-gdCEOhP5zuZehDy8c/Km8U/MeyfHxgEDyLxx3umFp24=",
"pom": "sha256-H39OO6GpBYFGL9Jn6eEWfiAcCk9h5pq1DUV/SMBQFXY="
},
"net/sf/proguard#proguard-gradle/6.1.0": {
"jar": "sha256-rQfrlm3lIewsMYLaYg0xpaNTTwXMjmDDlNG41EGCmvQ=",
"pom": "sha256-tEDYJgbG4nVImE2JcLeF8LWCJhvDhhecWS2VMKO6TzQ="
},
"net/sf/proguard#proguard-parent/6.1.0": {
"pom": "sha256-v7pHjLrr8KfIx139/iBxnls33nzAgA+iYjoFgOaJEXE="
},
"org/abego/treelayout#org.abego.treelayout.core/1.0.1": {
"jar": "sha256-grnjYxrMcIwRUhb6ePl3gNioHbt/FfjYIpGh3DqDsdA=",
"pom": "sha256-fIy/ymTpcEQNTyh/NRapbABpKgOU/KHVexKpepbw6hE="
},
"org/antlr#ST4/4.0.8": {
"jar": "sha256-WMqrxAyfdLC1mT/YaOD2SlDAdZCU5qJRqq+tmO38ejs=",
"pom": "sha256-PAiQ3scRdOs7o9QEyp40GQH/awQhgIsAcTsNuxMGwXw="
},
"org/antlr#antlr-master/3.5.2": {
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
},
"org/antlr#antlr-runtime/3.5.2": {
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
},
"org/antlr#antlr4-runtime/4.5": {
"jar": "sha256-tcQNVavm6kxWFPjxHoNy2YQ07TwRKNWLjuoduVWXN6s=",
"pom": "sha256-hRz5esL2utOZacMOx95PhBu2R1J/Rl7CDMur+yKHIpg="
},
"org/antlr#antlr4/4.5": {
"jar": "sha256-do7i3es2pP5kNMgFoTyVI41LZBPlL3ce0meKGEGOMNk=",
"pom": "sha256-4Mhs6hXMEO/K6UuvsOEADmv8xBgUK11ybNe8OyL+dwI="
},
"org/apache#apache/13": {
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
},
"org/apache#apache/18": {
"pom": "sha256-eDEwcoX9R1u8NrIK4454gvEcMVOx1ZMPhS1E7ajzPBc="
},
"org/apache#apache/19": {
"pom": "sha256-kfejMJbqabrCy69tAf65NMrAAsSNjIz6nCQLQPHsId8="
},
"org/apache#apache/21": {
"pom": "sha256-rxDBCNoBTxfK+se1KytLWjocGCZfoq+XoyXZFDU3s4A="
},
"org/apache/ant#ant-launcher/1.10.6": {
"jar": "sha256-wDqhjaSwHJ791kGYNkvC/PL7nqWElxYVup8aCaRoUCY=",
"pom": "sha256-CGuKg9hhebR7pgMeuGiOlGiKAz/qmW8ttwltSLIn6KY="
},
"org/apache/ant#ant-parent/1.10.6": {
"pom": "sha256-n+ReOBBPxGOdqFs4WdeUqT7oMkIrx57D5zfA/QvWmiA="
},
"org/apache/ant#ant-parent/1.9.1": {
"pom": "sha256-kQ71Ysi7ahrZAOGY9U2pG4bQ0o3wG8Eah9tlbZBv1us="
},
"org/apache/ant#ant/1.10.6": {
"jar": "sha256-bFy9iMELt61iTlY3oDdbAQ9AZ/ZJfNj85wtaXxDTtBo=",
"pom": "sha256-AEhxs7RrtMSGoyTlA3CgnKBY72zLhOp6Ceyks/Djx1c="
},
"org/apache/ant#ant/1.9.1": {
"pom": "sha256-wtNC6vx3d7G97/vmCp5NeRIOvV34/PwOY7TesMcOPFQ="
},
"org/apache/commons#commons-compress/1.18": {
"jar": "sha256-Xy3x5GeCXkysWZbUSJDEIBwAC0PAsjz/wHgtKKC+ubA=",
"pom": "sha256-Zyxf6SvT6rQ+jVMzjK1coHO2Up3k6ys4hZo+qmyegRk="
},
"org/apache/commons#commons-compress/1.8": {
"pom": "sha256-OPhEKHDCaR2YIlGfLP+46JxwQQBQt8RsuhdqiCGeRCk="
},
"org/apache/commons#commons-lang3/3.9": {
"jar": "sha256-3i4dzc8++ReozoWGYaBnJqmpRPKOM61/ngi+pE3DwjA=",
"pom": "sha256-pAIkKbmEJbQwGBkVchJ5pS9hDzRki9rEh9TKy76N/rU="
},
"org/apache/commons#commons-parent/33": {
"pom": "sha256-U9ABE1Li5RBvN52vzNrHdU7G8PeCQ8AwXklp9azd+Ps="
},
"org/apache/commons#commons-parent/34": {
"pom": "sha256-Oi5p0G1kHR87KTEm3J4uTqZWO/jDbIfgq2+kKS0Et5w="
},
"org/apache/commons#commons-parent/42": {
"pom": "sha256-zTE0lMZwtIPsJWlyrxaYszDlmPgHACNU63ZUefYEsJw="
},
"org/apache/commons#commons-parent/47": {
"pom": "sha256-io7LVwVTv58f+uIRqNTKnuYwwXr+WSkzaPunvZtC/Lc="
},
"org/apache/commons#commons-parent/48": {
"pom": "sha256-Hh996TcKe3kB8Sjx2s0UIr504/R/lViw954EwGN8oLQ="
},
"org/bouncycastle#bcpg-jdk15on/1.62": {
"jar": "sha256-+EduQ4RO2yAOoLL7OTWVLSI/O2syOmctcxYipLkpQ+A=",
"pom": "sha256-372CfVICQmFhq7AdlCOOakMDsvzWkp5sUpWPjW3wciY="
},
"org/bouncycastle#bcprov-jdk15on/1.62": {
"jar": "sha256-L6CrcbFU2imsE0CXvGu6zZCYfdTEAFUWFZ5klNHVLqI=",
"pom": "sha256-cA/nligsj+84xi/Cw974WM5EmrXzwiCINjYXVth5viY="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/jd#jd-core/1.1.3": {
"jar": "sha256-M/YP91x33AiQXnZ2lKOPe2q3kr0uWDH0HitWNUu4Bvs=",
"pom": "sha256-n1Gs7cjKfNmu9LZ3nbLdOkFqcILMtO8Z67VHfBHG6wQ="
},
"org/ow2#ow2/1.5": {
"pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs="
},
"org/ow2/asm#asm/7.1": {
"jar": "sha256-SrL6K20sycyx6qBeoynEB7R7E+0pFfYvjEuMyWJY1N4=",
"pom": "sha256-Dyl0Lq2mWIpGxnn0maZ1Xks5OXZwBPK9nAIBnP0dMYA="
},
"org/redline-rpm#redline/1.2.9": {
"jar": "sha256-zEe5s3Tr9DoPAmv4amdL9uNqVr04lqyIEcUIPTW79OE=",
"pom": "sha256-k94nVXykHsKx/LMHxAhtdDtYdig/41FRUi8oaJjmfGw="
},
"org/slf4j#slf4j-api/1.7.5": {
"jar": "sha256-/jCCUkXSM2yFncONYMD8XzZo2/Kc1YaCjStWZ+w1W5E=",
"pom": "sha256-r6+OdAGbIw0/Vv3XyT+xBwwNyjTz0tWrXeqfxha9XKQ="
},
"org/slf4j#slf4j-parent/1.7.5": {
"pom": "sha256-xDvFoCLb/Z3oK+Iy3/5GIIy8feEsFDhbXagk4zHlNbs="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
},
"org/tukaani#xz/1.4": {
"pom": "sha256-/kqLT1R/okQ0L7r0pOgPDEg3HYXMQBtYUViRKENiWJI="
},
"org/tukaani#xz/1.8": {
"jar": "sha256-jHlks2/j8MvmRLBPy/+E5JHOgZF9svW/oMuo6VSK/10=",
"pom": "sha256-8p51y4jrSsv35apcCe1V6sLLrmAdY6nzdSMfRUUsEBM="
},
"org/vafer#jdeb/1.8": {
"jar": "sha256-N0/gKgkxTabsghngBVmOdgMjoavktxXMM84+KpvNqTI=",
"pom": "sha256-MQdFSRqXEzi0XcwhFMRt6GWvNOWLI96d2JJfEGFewBY="
},
"xmlpull#xmlpull/1.1.3.1": {
"jar": "sha256-NOCO5iEWBxy7acDtcNFaelsgjWJ5jFnyEgu4kpMky2M=",
"pom": "sha256-jxD/2N8NPpgZyMyEAnCcaySLxTqVTvbkVHDZrjpXNfs="
},
"xpp3#xpp3_min/1.1.4c": {
"jar": "sha256-v8kOnjLQ6rHzl/uXS18VCoFRiDgqxB83KnFJ1bwXgAg=",
"pom": "sha256-tbRqwMCdpBsE28dTRWtIkShWp/+7FJBnaRC1EMRx0T8="
}
}
}
+12 -60
View File
@@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitLab, gradle, jre, perl, writeText, runtimeShell }:
{ lib, stdenv, fetchFromGitLab, gradle, jre, runtimeShell }:
let
stdenv.mkDerivation rec {
pname = "pdftk";
version = "3.3.3";
@@ -11,66 +11,18 @@ let
hash = "sha256-ciKotTHSEcITfQYKFZ6sY2LZnXGChBJy0+eno8B3YHY=";
};
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit src version;
nativeBuildInputs = [ gradle perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle -Dfile.encoding=utf-8 shadowJar;
'';
# Mavenize dependency paths
# e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.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
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-Mx5CdiRxuql22kbLozzr9Rs2E2Svzg2zN1138Xa0pMc=";
};
# Point to our local deps repo
gradleInit = writeText "init.gradle" ''
logger.lifecycle 'Replacing Maven repositories with ${deps}...'
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
clear()
maven { url '${deps}' }
}
}
repositories {
clear()
maven { url '${deps}' }
}
}
}
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
maven { url '${deps}' }
}
}
}
'';
in stdenv.mkDerivation rec {
inherit pname version src;
nativeBuildInputs = [ gradle ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle --offline --no-daemon --info --init-script ${gradleInit} shadowJar
'';
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
gradleFlags = [ "-Dfile.encoding=utf-8" ];
gradleBuildTask = "shadowJar";
installPhase = ''
mkdir -p $out/{bin,share/pdftk,share/man/man1}
+215
View File
@@ -0,0 +1,215 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://plugins.gradle.org/m2": {
"com/diffplug/durian#durian-collect/1.2.0": {
"jar": "sha256-sZTAuIAhzBFsIcHcdvScLB/hda9by3TIume527+aSMw=",
"pom": "sha256-i7diCGoKT9KmRzu/kFx0R2OvodWaVjD3O7BLeHLAn/M="
},
"com/diffplug/durian#durian-core/1.2.0": {
"jar": "sha256-F+0KrLOjwWMjMyFou96thpTzKACytH1p1KTEmxFNXa4=",
"pom": "sha256-hwMg6QdVNxsBeW/oG6Ul/R3ui3A0b1VFUe7dQonwtmI="
},
"com/diffplug/durian#durian-io/1.2.0": {
"jar": "sha256-CV/R3HeIjAc/C+OaAYFW7lJnInmLCd6eKF7yE14W6sQ=",
"pom": "sha256-NQkZQkMk4nUKPdwvobzmqQrIziklaYpgqbTR1uSSL/4="
},
"com/diffplug/spotless#com.diffplug.spotless.gradle.plugin/6.10.0": {
"pom": "sha256-KBM628w3hpIzn4fzKVkykdnjBnmrwpsBVCzmULjHoL4="
},
"com/diffplug/spotless#spotless-lib-extra/2.29.0": {
"jar": "sha256-m0zpiqT128dYUP5tmnnoeNMYvnGPmX5epAUsiFYhuqs=",
"module": "sha256-QW44lubwZ/WXlI70QVDJk43wV6NCt31X20gqj5aWgeg=",
"pom": "sha256-hf5PLJpFEVVtzqLbzFth9+f+VlxgedC5ItVmLJCIu+8="
},
"com/diffplug/spotless#spotless-lib/2.29.0": {
"jar": "sha256-G/rNp1jy4JDwLBVoR3PlORR/3od/rezZsAY3v536q8c=",
"module": "sha256-Rty7wtfX0d47lSZoX66uA20b/XwrvhL3izIuD1xLVk8=",
"pom": "sha256-v0UZJkr/2hRWrbjIHLazJ5AiMBqn/tdbNKlM34Oj4bo="
},
"com/diffplug/spotless#spotless-plugin-gradle/6.10.0": {
"jar": "sha256-p8P8jOFdk311AFsuSclmXdp2UfLSLk7Kn7G03eR79As=",
"module": "sha256-m6j/efMjDs5rZomCishSor+pbZl8JXKjre7wtrFckq0=",
"pom": "sha256-+PCTwoomONZy0ML6LCljz5WFVKoeFHuuvLIEsViM4ns="
},
"com/fasterxml#oss-parent/38": {
"pom": "sha256-yD+PRd/cqNC2s2YcYLP4R4D2cbEuBvka1dHBodH5Zug="
},
"com/fasterxml/jackson#jackson-base/2.11.2": {
"pom": "sha256-k0uchkLt8xBMUAKC+4EGxzxWeBw9xMdelr2NG7Ha3p0="
},
"com/fasterxml/jackson#jackson-bom/2.11.2": {
"pom": "sha256-2qQsw65gqJH9ssh0ZxtiPc0tH+/Kd7z7OU/rHRInfME="
},
"com/fasterxml/jackson#jackson-parent/2.11": {
"pom": "sha256-wbChPYz+Y7QLD66EWLmUYxae0MYPf8lj7z8FJXFQy+g="
},
"com/fasterxml/jackson/core#jackson-annotations/2.11.2": {
"jar": "sha256-kNYC0ZVd9QmxVpYYz/hpmUyvlIPLgqPMs5eCpc2lQSY=",
"pom": "sha256-AEEc6Dh0WAKZWB4oOuRaXtN7AFHm9WO2miVQeKtYk+4="
},
"com/fasterxml/jackson/core#jackson-core/2.11.2": {
"jar": "sha256-+NdoxOiIRSK+WIHdKpGuyBLQjU8FhStDQZDiLeZZ38k=",
"pom": "sha256-QL3NBekAYAtBM3NCz1xpwln9ii+en0p5aNYebvWeOYw="
},
"com/fasterxml/jackson/core#jackson-databind/2.11.2": {
"jar": "sha256-y4kLSq2O0hp7V+PI95JNvcoa7/nd0nyw/zckMDeuE0I=",
"pom": "sha256-9a5wZBwK4Svl+UaDjujKE9qIk+d7RNkNXuJfPfjhYQU="
},
"com/github/johnrengelman/shadow#com.github.johnrengelman.shadow.gradle.plugin/7.1.2": {
"pom": "sha256-lW5FCF5S6l7zLTRnHruE6xxBqDxFSa8m5oY18QYXmNM="
},
"com/googlecode/concurrent-trees#concurrent-trees/2.6.1": {
"jar": "sha256-BONySYTipcv1VgbPo3KlvT08XSohUzpwBOPN5Tl2H6U=",
"pom": "sha256-Q8K5sULnBV0fKlgn8QlEkl0idH2XVrMlDAeqtHU4qXE="
},
"com/googlecode/javaewah#JavaEWAH/1.1.12": {
"jar": "sha256-sZIEMxrG4gS++vUIpo9S7GtGONnZus3b69Q1+cTVAPI=",
"pom": "sha256-BhhOmwWeCAkRgnE2r17Hj1fuTDvBn2MutWGw34+HiM4="
},
"commons-io#commons-io/2.11.0": {
"jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=",
"pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k="
},
"gradle/plugin/com/github/johnrengelman#shadow/7.1.2": {
"jar": "sha256-v3BcwupcAYCqhwoPqAs5vxOhTScSjh6zpLZ0vjT1jpA=",
"pom": "sha256-H6qwvkF9ezxBqXzKCsqKWwtkBvw7Etfyjiw0Ex3/k0o="
},
"gradle/plugin/org/mikeneck#graalvm-native-image-plugin/1.4.1": {
"jar": "sha256-hxjq0IdN8UuGNB6IOkxkp3amRd0GbzcO2o+0xaPPZSI=",
"pom": "sha256-nNX2P1cnBVME1ZPa+uqiQK5dE/nZ3xn6meED8wc0lKo="
},
"org/apache#apache/23": {
"pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw="
},
"org/apache/ant#ant-launcher/1.10.11": {
"jar": "sha256-2rUw33qYC1rI/X6NIIJDrg0+vW3gmxqiznVjYMwu0lY=",
"pom": "sha256-7SoGiCYb624I7FSzgxLx1ILM8aO4Y8R9KNW5CkRtHB4="
},
"org/apache/ant#ant-parent/1.10.11": {
"pom": "sha256-V6BTJoLzD6MHQWoiWSnVcQrNpy17Je4IyvmNyCzTXbY="
},
"org/apache/ant#ant/1.10.11": {
"jar": "sha256-iMC4m7uq4B4Nn8rpO+eS9au+NAkQb47uhY/fNl28B1Q=",
"pom": "sha256-wiiU2ctGq/XOv27rK8z+TXjhju6jEaDqat3VnftLH+M="
},
"org/apache/commons#commons-parent/52": {
"pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4="
},
"org/apache/logging#logging-parent/3": {
"pom": "sha256-djouwrgJTUFh3rbCZLEmIIW5vjC/OjHCzhNyQuV3Iqc="
},
"org/apache/logging/log4j#log4j-api/2.17.1": {
"jar": "sha256-sNikyKtPuLGIjQCVgicDsObUeTxBlVAgPanmkZYWHeQ=",
"pom": "sha256-HirO8yILKb4QrgmXKLFYsY2UP5Ghk8xFAbtC+SnB6Io="
},
"org/apache/logging/log4j#log4j-core/2.17.1": {
"jar": "sha256-yWfyI0h5gLk2TpSnx/mooB/T7nwZvb8LD5+MuFEfPUE=",
"pom": "sha256-C7s79tTSKhv6PDwJJ8KUEK8UoPsm47Ark3JvXH6Yqv0="
},
"org/apache/logging/log4j#log4j/2.17.1": {
"pom": "sha256-lnq8AkRDqcsJaTVVmvXprW8P9hN1+Esn1EDS+nCAawk="
},
"org/codehaus/groovy#groovy-xml/3.0.10": {
"jar": "sha256-vCrVETWWo6m7ZQ2mRx8biRUFQheCF0p/5g15DttinoU=",
"pom": "sha256-Zwf5O1jO4BxBc/uuhNLh2DDKQc00LZBgbNW3GKn/fSk="
},
"org/codehaus/groovy#groovy/3.0.10": {
"jar": "sha256-3/762oKUhlvlA1UVwDIPtnlEPShfSl+K2tzwDBEw6Ew=",
"pom": "sha256-SYKt9KbGxQVnsL489JSCXmwqJ9izhx2eGIIqdCcreao="
},
"org/codehaus/plexus#plexus-utils/3.4.1": {
"jar": "sha256-UtheBLORhyKvEdEoVbSoJX35ag52yPTjhS5vqoUfNXs=",
"pom": "sha256-sUTP+bHGJZ/sT+5b38DzYNacI6vU6m5URTOpSbaeNYI="
},
"org/codehaus/plexus#plexus/8": {
"pom": "sha256-/6NJ2wTnq/ZYhb3FogYvQZfA/50/H04qpXILdyM/dCw="
},
"org/eclipse/jgit#org.eclipse.jgit-parent/5.13.0.202109080827-r": {
"pom": "sha256-oY/X0MQf2o2PHEoktQAKhmRWFHokdG7mzEcx54ihje4="
},
"org/eclipse/jgit#org.eclipse.jgit/5.13.0.202109080827-r": {
"jar": "sha256-2r+DafDN+M8Xt/faS9qTIMVwu3VMiOC+t7hSgSz1zSU=",
"pom": "sha256-qEF3Rc+i2V1qlxHpQT/KmE/FZmt2J7rRVAzyfUYq6BM="
},
"org/jdom#jdom2/2.0.6": {
"jar": "sha256-E0XxG6YG0VYD1nQFUajCGUfAIVZAdw7GcnH+eL6pfPU=",
"pom": "sha256-R7I6ef4za3QbgkNMbgSdaBZSVuQF51wQkh/XL6imXY0="
},
"org/jetbrains#annotations/13.0": {
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
},
"org/jetbrains/kotlin#kotlin-stdlib-common/1.3.21": {
"jar": "sha256-zqYfe2EYleZPWFaal1f8CrDVgvEHIR4ZMODOKgrdUqc=",
"pom": "sha256-HkQzMKGrEIPdEjMesYI7zaGM06YWLtxTagNeTeHXhz0="
},
"org/jetbrains/kotlin#kotlin-stdlib/1.3.21": {
"jar": "sha256-OLojcNnwb1BDPgayyndblEc8LieF9BCSYHmreTxysDQ=",
"pom": "sha256-nOHqMzlsW/5I7IQSoM1WHsyQnXHI+TZZZ6FPnyT9uaU="
},
"org/junit#junit-bom/5.7.2": {
"module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=",
"pom": "sha256-zRSqqGmZH4ICHFhdVw0x/zQry6WLtEIztwGTdxuWSHs="
},
"org/mikeneck/graalvm-native-image#org.mikeneck.graalvm-native-image.gradle.plugin/1.4.1": {
"pom": "sha256-vxSiyLGrQgrTQ+r8tt9YEbEtbZsn+mBcM/7yz9QZeW8="
},
"org/ow2#ow2/1.5": {
"pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs="
},
"org/ow2/asm#asm-analysis/9.2": {
"jar": "sha256-h4++UhcxwHLRTS1luYOxvq5q0G/aAAe2qLroH3P0M8Q=",
"pom": "sha256-dzzBor/BTGxKl5xRoHXAI0oL9pT8Or5PrPRU83oUXxs="
},
"org/ow2/asm#asm-commons/9.2": {
"jar": "sha256-vkzlMTiiOLtSLNeBz5Hzulzi9sqT7GLUahYqEnIl4KY=",
"pom": "sha256-AoJOg58qLw5ylZ/dMLSJckDwWvxD3kLXugsYQ3YBwHA="
},
"org/ow2/asm#asm-tree/9.2": {
"jar": "sha256-qr+b0jCRpOv8EJwfPufPPkuJ9rotP1HFJD8Ws8/64BE=",
"pom": "sha256-9h8+vqVSDd8Z9FKwPEJscjG92KgdesKHZctScSJaw3g="
},
"org/ow2/asm#asm/9.2": {
"jar": "sha256-udT+TXGTjfOIOfDspCqqpkz4sxPWeNoDbwyzyhmbR/U=",
"pom": "sha256-37EqGyJL8Bvh/WBAIEZviUJBvLZF3M45Xt2M1vilDfQ="
},
"org/slf4j#slf4j-api/1.7.30": {
"jar": "sha256-zboHlk0btAoHYUhcax6ML4/Z6x0ZxTkorA1/lRAQXFc=",
"pom": "sha256-fgdHdR6bZ+Gdy1IG8E6iLMA9JQxCJCZALq3QNRPywxQ="
},
"org/slf4j#slf4j-parent/1.7.30": {
"pom": "sha256-EWR5VuSKDFv7OsM/bafoPzQQAraFfv0zWlBbaHvjS3U="
},
"org/sonatype/oss#oss-parent/5": {
"pom": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/vafer#jdependency/2.7.0": {
"jar": "sha256-1j79V0b/QIlDp91++Frp8Jqn+2O7KxaRFCfObEW1n9A=",
"pom": "sha256-6yRCKwo+nofVrG6oCHeG+1HEsbvg0iXvdSFSxzaiBNA="
}
},
"https://repo.maven.apache.org/maven2/org": {
"apache#apache/23": {
"pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw="
},
"apache/commons#commons-lang3/3.12.0": {
"jar": "sha256-2RnZBEhsA3+NGTQS2gyS4iqfokIwudZ6V4VcXDHH6U4=",
"pom": "sha256-gtMfHcxFg+/9dE6XkWWxbaZL+GvKYj/F0bA+2U9FyFo="
},
"apache/commons#commons-parent/52": {
"pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4="
},
"bouncycastle#bcprov-jdk18on/1.71": {
"jar": "sha256-80M6l9eA/p+j3D1WKkHezVmy5hfOiE3pBgNJrBR1AEU=",
"pom": "sha256-u90garzosxsfGnMBORtEO6bN4X5y3udcH9LkEBFsXIc="
},
"junit#junit-bom/5.7.1": {
"module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=",
"pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q="
}
}
}
+20 -9
View File
@@ -1391,6 +1391,10 @@ with pkgs;
makeHardcodeGsettingsPatch = callPackage ../build-support/make-hardcode-gsettings-patch { };
mitm-cache = callPackage ../build-support/mitm-cache {
inherit (darwin.apple_sdk.frameworks) Security;
};
# intended to be used like nix-build -E 'with import <nixpkgs> { }; enableDebugging fooPackage'
enableDebugging = pkg: pkg.override { stdenv = stdenvAdapters.keepDebugInfo pkg.stdenv; };
@@ -18568,10 +18572,17 @@ with pkgs;
inherit jdk11 jdk17 jdk21;
};
gradleGen = gradle-packages.gen;
gradle_6 = callPackage gradle-packages.gradle_6 { };
gradle_7 = callPackage gradle-packages.gradle_7 { };
gradle_8 = callPackage gradle-packages.gradle_8 { };
gradle = gradle_8;
wrapGradle = callPackage gradle-packages.wrapGradle { };
gradle_6-unwrapped = callPackage gradle-packages.gradle_6 { };
gradle_7-unwrapped = callPackage gradle-packages.gradle_7 { };
gradle_8-unwrapped = callPackage gradle-packages.gradle_8 { };
gradle-unwrapped = gradle_8-unwrapped;
gradle_6 = wrapGradle gradle_6-unwrapped;
gradle_7 = wrapGradle gradle_7-unwrapped;
gradle_8 = wrapGradle gradle_8-unwrapped;
gradle = wrapGradle gradle-unwrapped;
grcov = callPackage ../development/tools/misc/grcov { };
@@ -36785,11 +36796,11 @@ with pkgs;
};
shattered-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon { };
rkpd2 = callPackage ../games/shattered-pixel-dungeon/rkpd2.nix { };
rat-king-adventure = callPackage ../games/shattered-pixel-dungeon/rat-king-adventure.nix { };
experienced-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix { };
summoning-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon/summoning-pixel-dungeon.nix { };
shorter-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix { };
rkpd2 = callPackage ../games/shattered-pixel-dungeon/rkpd2 { };
rat-king-adventure = callPackage ../games/shattered-pixel-dungeon/rat-king-adventure { };
experienced-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon/experienced-pixel-dungeon { };
summoning-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon/summoning-pixel-dungeon { };
shorter-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon/shorter-pixel-dungeon { };
shticker-book-unwritten = callPackage ../games/shticker-book-unwritten { };
+7 -7
View File
@@ -3,13 +3,13 @@
with pkgs;
let
openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11.nix { };
openjfx15 = callPackage ../development/compilers/openjdk/openjfx/15.nix { };
openjfx17 = callPackage ../development/compilers/openjdk/openjfx/17.nix { };
openjfx19 = callPackage ../development/compilers/openjdk/openjfx/19.nix { };
openjfx20 = callPackage ../development/compilers/openjdk/openjfx/20.nix { };
openjfx21 = callPackage ../development/compilers/openjdk/openjfx/21.nix { };
openjfx22 = callPackage ../development/compilers/openjdk/openjfx/22.nix { };
openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11 { };
openjfx15 = callPackage ../development/compilers/openjdk/openjfx/15 { };
openjfx17 = callPackage ../development/compilers/openjdk/openjfx/17 { };
openjfx19 = callPackage ../development/compilers/openjdk/openjfx/19 { };
openjfx20 = callPackage ../development/compilers/openjdk/openjfx/20 { };
openjfx21 = callPackage ../development/compilers/openjdk/openjfx/21 { };
openjfx22 = callPackage ../development/compilers/openjdk/openjfx/22 { };
in {
inherit openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21 openjfx22;