fastddsgen: convert to gradle setup hook

chayleaf 346bfec1 3304e8a0

+114 -52
+21 -52
pkgs/development/tools/fastddsgen/default.nix
··· 1 - { lib, stdenv, runtimeShell, writeText, fetchFromGitHub, gradle_7, openjdk17, git, perl, cmake }: 1 + { lib, stdenv, runtimeShell, fetchFromGitHub, gradle_7, openjdk17 }: 2 2 let 3 3 pname = "fastddsgen"; 4 4 version = "3.3.0"; 5 5 6 + gradle = gradle_7; 7 + 8 + in 9 + stdenv.mkDerivation { 10 + inherit pname version; 11 + 6 12 src = fetchFromGitHub { 7 13 owner = "eProsima"; 8 14 repo = "Fast-DDS-Gen"; ··· 11 17 hash = "sha256-oqbSIzsYUwD8bTqGKZ9he9d18EDq9mHZFoNUp0RK0qU="; 12 18 }; 13 19 14 - gradle = gradle_7; 20 + nativeBuildInputs = [ gradle openjdk17 ]; 15 21 16 - # fake build to pre-download deps into fixed-output derivation 17 - deps = stdenv.mkDerivation { 18 - pname = "${pname}-deps"; 19 - inherit src version; 20 - nativeBuildInputs = [ gradle openjdk17 perl ]; 21 - 22 - buildPhase = '' 23 - export GRADLE_USER_HOME=$(mktemp -d); 24 - gradle --no-daemon -x submodulesUpdate assemble 25 - ''; 26 - 27 - # 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) 28 - installPhase = '' 29 - find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ 30 - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ 31 - | sh 32 - ''; 33 - 34 - dontStrip = true; 35 - 36 - outputHashAlgo = "sha256"; 37 - outputHashMode = "recursive"; 38 - outputHash = "sha256-YkVRp6TXI7/5O+u0DDYiCq7DITfGJ4lT/L4hT90JOL8="; 22 + mitmCache = gradle.fetchDeps { 23 + inherit pname; 24 + data = ./deps.json; 39 25 }; 40 - in 41 - stdenv.mkDerivation { 42 - inherit pname src version; 43 26 44 - nativeBuildInputs = [ gradle openjdk17 ]; 45 - 46 - # use our offline deps 47 - postPatch = '' 48 - sed -ie '1i\ 49 - pluginManagement {\ 50 - repositories {\ 51 - maven { url "${deps}" }\ 52 - }\ 53 - }' thirdparty/idl-parser/settings.gradle 54 - sed -ie "s#mavenCentral()#maven { url '${deps}' }#g" build.gradle 55 - sed -ie "s#mavenCentral()#maven { url '${deps}' }#g" thirdparty/idl-parser/build.gradle 56 - ''; 57 - 58 - buildPhase = '' 59 - runHook preBuild 27 + __darwinAllowLocalNetworking = true; 60 28 61 - export GRADLE_USER_HOME=$(mktemp -d) 62 - 63 - # Run gradle with daemon to make installPhase faster 64 - gradle --offline -x submodulesUpdate assemble 65 - 66 - runHook postBuild 67 - ''; 29 + gradleFlags = [ "-x" "submodulesUpdate" ]; 68 30 69 31 installPhase = '' 70 32 runHook preInstall 71 33 72 - gradle --offline -x submodulesUpdate install --install_path=$out 34 + gradle install --install_path=$out 73 35 74 36 # Override the default start script to use absolute java path 75 37 cat <<EOF >$out/bin/fastddsgen ··· 79 41 chmod a+x "$out/bin/fastddsgen" 80 42 81 43 runHook postInstall 44 + ''; 45 + 46 + postGradleUpdate = '' 47 + cd thirdparty/idl-parser 48 + # fix "Task 'submodulesUpdate' not found" 49 + gradleFlags= 50 + gradle nixDownloadDeps 82 51 ''; 83 52 84 53 meta = with lib; {
+93
pkgs/development/tools/fastddsgen/deps.json
··· 1 + { 2 + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", 3 + "!version": 1, 4 + "https://repo.maven.apache.org/maven2": { 5 + "com/ibm/icu#icu4j/72.1": { 6 + "jar": "sha256-PfVyskCmjRO1zXeK0jk+iF0mQRQ0zY8JisWYfqLmTOM=", 7 + "pom": "sha256-Pe8rKa9KGa2AXLFTBWklqJqQP5L77hre4S7S/BTETug=" 8 + }, 9 + "org/abego/treelayout#org.abego.treelayout.core/1.0.3": { 10 + "jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=", 11 + "pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw=" 12 + }, 13 + "org/antlr#ST4/4.3.4": { 14 + "jar": "sha256-+SesOExG10n4texolypTrtIeADE1CSmWFu23O/oV/zM=", 15 + "pom": "sha256-nnwfPkiZGUQOjBMInlljcp1bf4D3AjO/uuMJxkmryj4=" 16 + }, 17 + "org/antlr#antlr-master/3.5.3": { 18 + "pom": "sha256-6p43JQ9cTC52tlOL6XtX8zSb2lhe31PzypfiB7OFuJU=" 19 + }, 20 + "org/antlr#antlr-runtime/3.5.3": { 21 + "jar": "sha256-aL+fWjPfyzQDNJXFh+Yja+9ON6pmEpGfWx6EO5Bmn7k=", 22 + "pom": "sha256-EymODgqvr0FP99RAZCfKtuxPv6NkJ/bXEDxDLzLAfSU=" 23 + }, 24 + "org/antlr#antlr4-master/4.13.0": { 25 + "pom": "sha256-IiBv17pJUVLlJvUO/sn8j03QX8tD38+PJk6Dffa2Qk8=" 26 + }, 27 + "org/antlr#antlr4-runtime/4.13.0": { 28 + "jar": "sha256-vX97XQe8CwR/EJFbMspLsd6eV9gEkJiILkRTyIwHal0=", 29 + "pom": "sha256-GY40+1rHWXsaPDGTAwHgjOlB5cpQQRbdVKOnU3iRSn8=" 30 + }, 31 + "org/antlr#antlr4/4.13.0": { 32 + "jar": "sha256-HA3rJpklFJIvuLmWGRmPCcMveYQkbcatHDu8SYPeHTU=", 33 + "pom": "sha256-OdLSWEk8QnvL1EAGP34PQqt4j6wVp4wP73RK5hk2d8k=" 34 + }, 35 + "org/apiguardian#apiguardian-api/1.1.0": { 36 + "jar": "sha256-qarp/4rj4XoqGPeRdegrFiZ8JG+708qd+7spCwjc/dQ=", 37 + "pom": "sha256-qUW5y1zZt3sscRhE5lnEPsBw71nZ9Qn6n0wYYbSGJxE=" 38 + }, 39 + "org/junit/jupiter#junit-jupiter-api/5.5.2": { 40 + "jar": "sha256-JJov29OTGYfAKY0AygjtJISW4PwR4EY8CMT4LgzHmxw=", 41 + "pom": "sha256-dqFdgNhYehpaOlsULSzrNzBPvZEZi6QlSG5X920IiGA=" 42 + }, 43 + "org/junit/jupiter#junit-jupiter-engine/5.5.2": { 44 + "jar": "sha256-bXd9qYduLvegM26PCY+NdKWmT4EKo6Si9fO3Zs6Xg3s=", 45 + "pom": "sha256-Ay/vTiVjCE05fq5IGjiAEPRDQBr2JSv9N312MH9vi/4=" 46 + }, 47 + "org/junit/platform#junit-platform-commons/1.5.2": { 48 + "jar": "sha256-/ESv38DyDIXnGmbnlDKBrvO8Hg/WLS1po2y2kB5oLBA=", 49 + "pom": "sha256-O9DU3tYyqK+MpYf7Z2QBnedxsda8uJrNViQ1oQCfqto=" 50 + }, 51 + "org/junit/platform#junit-platform-engine/1.5.2": { 52 + "jar": "sha256-/yC6StjADvF7rvnFVRL5wC2aaHQPfxrAGppqoCOZMfg=", 53 + "pom": "sha256-LUuVVVwh4IXrwd299C156x1VZA3Bk7G35hACQP0vGJ8=" 54 + }, 55 + "org/openjdk/nashorn#nashorn-core/15.4": { 56 + "jar": "sha256-b4FuhN/WOoHU6qeCnAgze7r/PsaD/zv2u9kNAXoA3G8=", 57 + "pom": "sha256-aan3ueR+zPR7vO5yGtT7A5yn2bZQF05thgKq23flrCM=" 58 + }, 59 + "org/opentest4j#opentest4j/1.2.0": { 60 + "jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=", 61 + "pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" 62 + }, 63 + "org/ow2#ow2/1.5": { 64 + "pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs=" 65 + }, 66 + "org/ow2/asm#asm-analysis/7.3.1": { 67 + "jar": "sha256-Rrio79S5T6y1q0s1r+MO4FRq56Q9LGTm3vVsLxaP76U=", 68 + "pom": "sha256-be7rsjbIAyhFrcO3XuWrEiPr1T5M8+hTQsMTvaBtVH8=" 69 + }, 70 + "org/ow2/asm#asm-commons/7.3.1": { 71 + "jar": "sha256-h82Ls8a/a8uzP8pIBgxQZfZuv2o9fem/GL/1G88Vbrw=", 72 + "pom": "sha256-2jEe/3FqEUJ8JCS1iFvR+0lC2QNml2zW1aVae6DfWkA=" 73 + }, 74 + "org/ow2/asm#asm-tree/7.3.1": { 75 + "jar": "sha256-+RpKiqhoxcRmW7T9E0AZqR+fi5IWUn+6KV48i1Qit4s=", 76 + "pom": "sha256-yrFmzVNdMJgzasVcG2du7WYxZbWG+gPXmWBSO+0f8Ew=" 77 + }, 78 + "org/ow2/asm#asm-util/7.3.1": { 79 + "jar": "sha256-GCEoWSdC7UiDrIK/IF8Te2v74SNMaOb+sTdZ51qFtyk=", 80 + "pom": "sha256-DzYMMOEoeTfh1C/txvrWmCT9Vl5P//7RQS7I2HMD+8o=" 81 + }, 82 + "org/ow2/asm#asm/7.3.1": { 83 + "jar": "sha256-L2fhHO7IGevYjd7lMAq6aZscurLiDCLpfPAn076TlZs=", 84 + "pom": "sha256-6s3NUA1lJ+ljiI2u2jGSPkvCQaJUJNzDisyi5gHn/eI=" 85 + }, 86 + "org/sonatype/oss#oss-parent/7": { 87 + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" 88 + }, 89 + "org/sonatype/oss#oss-parent/9": { 90 + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" 91 + } 92 + } 93 + }