scenic-view: convert to gradle setup hook

chayleaf 9b470f38 9b877fd5

+185 -59
+8 -59
pkgs/development/tools/scenic-view/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub, openjdk, openjfx, gradle_7, makeDesktopItem, perl, writeText, makeWrapper }: 2 let 3 jdk = openjdk.override (lib.optionalAttrs stdenv.isLinux { 4 enableJavaFX = true; ··· 17 18 gradle = gradle_7; 19 20 - deps = stdenv.mkDerivation { 21 - name = "${pname}-deps"; 22 - inherit src; 23 - 24 - nativeBuildInputs = [ jdk perl gradle ]; 25 - 26 - buildPhase = '' 27 - export GRADLE_USER_HOME=$(mktemp -d); 28 - gradle --no-daemon build 29 - ''; 30 - 31 - # Mavenize dependency paths 32 - # 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 33 - installPhase = '' 34 - find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ 35 - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ 36 - | sh 37 - ''; 38 - 39 - outputHashAlgo = "sha256"; 40 - outputHashMode = "recursive"; 41 - outputHash = "0d6qs0wg2nfxyq85q46a8dcdqknz9pypb2qmvc8k2w8vcdac1y7n"; 42 - }; 43 - 44 - # Point to our local deps repo 45 - gradleInit = writeText "init.gradle" '' 46 - settingsEvaluated { settings -> 47 - settings.pluginManagement { 48 - repositories { 49 - clear() 50 - maven { url '${deps}' } 51 - } 52 - } 53 - } 54 - logger.lifecycle 'Replacing Maven repositories with ${deps}...' 55 - gradle.projectsLoaded { 56 - rootProject.allprojects { 57 - buildscript { 58 - repositories { 59 - clear() 60 - maven { url '${deps}' } 61 - } 62 - } 63 - repositories { 64 - clear() 65 - maven { url '${deps}' } 66 - } 67 - } 68 - } 69 - ''; 70 - 71 desktopItem = makeDesktopItem { 72 name = pname; 73 desktopName = pname; ··· 79 80 in stdenv.mkDerivation rec { 81 inherit pname version src; 82 - nativeBuildInputs = [ jdk gradle makeWrapper ]; 83 84 - buildPhase = '' 85 - runHook preBuild 86 87 - export GRADLE_USER_HOME=$(mktemp -d) 88 - gradle --offline --no-daemon --info --init-script ${gradleInit} build 89 90 - runHook postBuild 91 - ''; 92 93 installPhase = '' 94 runHook preInstall
··· 1 + { lib, stdenv, fetchFromGitHub, openjdk, openjfx, gradle_7, makeDesktopItem, makeWrapper }: 2 let 3 jdk = openjdk.override (lib.optionalAttrs stdenv.isLinux { 4 enableJavaFX = true; ··· 17 18 gradle = gradle_7; 19 20 desktopItem = makeDesktopItem { 21 name = pname; 22 desktopName = pname; ··· 28 29 in stdenv.mkDerivation rec { 30 inherit pname version src; 31 + nativeBuildInputs = [ gradle makeWrapper ]; 32 33 + mitmCache = gradle.fetchDeps { 34 + inherit pname; 35 + data = ./deps.json; 36 + }; 37 38 + __darwinAllowLocalNetworking = true; 39 40 + doCheck = true; 41 42 installPhase = '' 43 runHook preInstall
+177
pkgs/development/tools/scenic-view/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://plugins.gradle.org/m2": { 5 + "com/github/javaparser#javaparser-core/3.6.23": { 6 + "jar": "sha256-Jd6Y4JulJ3cBiHFxQWx1BmsMkK4QyER5wIy62OwC2ko=", 7 + "pom": "sha256-uS4cfUmFkaRUByoI4abESgjvT5YyH772jlPnQagyO84=" 8 + }, 9 + "com/github/javaparser#javaparser-parent/3.6.23": { 10 + "pom": "sha256-RrplfMwXfcIrmXLTDq3vB+pK2Y7C2ZJ4mi2pyMaOEMY=" 11 + }, 12 + "com/github/javaparser#javaparser-symbol-solver-core/3.6.23": { 13 + "jar": "sha256-xgZHY43ddl13bN0jDhzWlmT5BYVrnTUgHcpZFcHhhLM=", 14 + "pom": "sha256-IxlhRqtmo5sFxOIsoQ3rcpbBvmPuI5Vpax21wO7ayiQ=" 15 + }, 16 + "com/github/javaparser#javaparser-symbol-solver-logic/3.6.23": { 17 + "jar": "sha256-iUKL5AoLtSXiC5BwTUzmhE/Min2ePxCaSmIckIICKSo=", 18 + "pom": "sha256-+c70XJwzh7J95a0unepGR18S5nLrMTuo2hl9n5KTuUs=" 19 + }, 20 + "com/github/javaparser#javaparser-symbol-solver-model/3.6.23": { 21 + "jar": "sha256-Oyot02mnKEgZJIkaRC7gHztEFr9a84kGv+CXAEEHbRs=", 22 + "pom": "sha256-l9XodywQqD1zerqsIXaufDIYN2FzS1Nshd66kOdsfV0=" 23 + }, 24 + "com/google/code/findbugs#jsr305/3.0.2": { 25 + "jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=", 26 + "pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4=" 27 + }, 28 + "com/google/errorprone#error_prone_annotations/2.0.18": { 29 + "jar": "sha256-y0z62HC/VjoHGZ8+vqV2Pw3sRA/NoLMYZAsf6qeIZWs=", 30 + "pom": "sha256-kUQScZLW9hLCNmgl3OrrI7DVMTC4Pgvx/+EH0UcKhIc=" 31 + }, 32 + "com/google/errorprone#error_prone_parent/2.0.18": { 33 + "pom": "sha256-zxSZVSebB9TxHoF5hcEWSmnpMNc9t0QbQ6bvU7vShsQ=" 34 + }, 35 + "com/google/gradle#osdetector-gradle-plugin/1.6.1": { 36 + "jar": "sha256-N/Sm2S8lh2Ls9i/XcYZSK77LXaGyDevHj4NhuFbfDac=", 37 + "pom": "sha256-i4MRE6lOCXvEnh7KTTJ/0iNAVwRU1Ey7ccJSuZ5sTD8=" 38 + }, 39 + "com/google/guava#guava-parent/23.4-jre": { 40 + "pom": "sha256-EO8XbFPNj5Wd7Wr3QFFumbX8IKogHjqRmLuSGUpqOTQ=" 41 + }, 42 + "com/google/guava#guava/23.4-jre": { 43 + "jar": "sha256-JmKjPwn+urUCPdv1J4DLjSpuDEmiTbgJStwOlEgBqBA=", 44 + "pom": "sha256-Iuu7g72VwApr6oeMtbm7imAuoSpmRnsM+k+XtBTqXQ4=" 45 + }, 46 + "com/google/j2objc#j2objc-annotations/1.1": { 47 + "jar": "sha256-KZSn63jycQvT07+2ObLJTiGc7awNTQhNUW54wW3d7PY=", 48 + "pom": "sha256-8MmMVx6Tp8tN0Y3w+jCPCWPnoGIKwtQkTmHnCdA61r4=" 49 + }, 50 + "kr/motd/maven#os-maven-plugin/1.6.0": { 51 + "jar": "sha256-HNnWwIn5ZnEbx9lWSXaz/+ZRAmFqUkdoHMIwlc+90aw=", 52 + "pom": "sha256-zRUfUQeKRnd7UPgoO4gqis4MCLu+F0RrP56mPIEi/Kg=" 53 + }, 54 + "org/beryx#badass-jlink-plugin/2.6.5": { 55 + "jar": "sha256-WXeNmHfVtqkDyRN2ZfzzSoHFprSdPDpxt70FDJVSWrA=", 56 + "pom": "sha256-ytOd1e29JuGnOxYHCShfkLTAjwmT85n2Qsley3Bs4LQ=" 57 + }, 58 + "org/beryx/jlink#org.beryx.jlink.gradle.plugin/2.6.5": { 59 + "pom": "sha256-n3jKnoCItgThUQZCBW3b+WsQZ+zn/SZuZwc/y/dsW/Y=" 60 + }, 61 + "org/codehaus#codehaus-parent/4": { 62 + "pom": "sha256-a4cjfejC4XQM+AYnx/POPhXeGTC7JQxVoeypT6PgFN8=" 63 + }, 64 + "org/codehaus/mojo#animal-sniffer-annotations/1.14": { 65 + "jar": "sha256-IGgyC9a610TDZzqwSPZ+ML749RiZb6OAAzVWYAZpkF0=", 66 + "pom": "sha256-GHnxmgWZHj7ZWRC5ZokzM5awxGeiFdxNH5ABhAS3KiY=" 67 + }, 68 + "org/codehaus/mojo#animal-sniffer-parent/1.14": { 69 + "pom": "sha256-9RVQoGsUEL1JYssOcd8Lkhpgp+9Hv6nEgloUvnIxbuo=" 70 + }, 71 + "org/codehaus/mojo#mojo-parent/34": { 72 + "pom": "sha256-Pjldb7xDwJo3dMrIaUzlJzmDBeo/1UktgOJa8n04Kpw=" 73 + }, 74 + "org/javamodularity#moduleplugin/1.4.0": { 75 + "jar": "sha256-DsRpRPMp5s7qu+4mT39lW3VOz+qXti1zeROvm/cnWkk=", 76 + "pom": "sha256-ys6MmZmVjsvuHC00/yZVxHvgOrtlFInDustCNl+e33s=" 77 + }, 78 + "org/javassist#javassist/3.23.1-GA": { 79 + "jar": "sha256-0rFMCXY1IzdGJPMqCdbjH8sXQIKpet21ri1YC0dP2AY=", 80 + "pom": "sha256-TBjLCfVKXn3uusVCUbXsZaXgSuRgZ/Mb3OMzwvDujJk=" 81 + }, 82 + "org/openjfx#javafx-plugin/0.0.7": { 83 + "jar": "sha256-cMNMLi/MFLDiEkJuYhbX7xktB+i4fw3O8y1drZ+6tK0=", 84 + "pom": "sha256-JVTXrl0EsYMJcp5LkHmy8iQKXTfr1GxrC97HZ8q/svk=" 85 + }, 86 + "org/openjfx/javafxplugin#org.openjfx.javafxplugin.gradle.plugin/0.0.7": { 87 + "pom": "sha256-SybdZ/HqOekf+cyybnONJwR1DlhFYYajVz9QadOIe1U=" 88 + }, 89 + "org/ow2#ow2/1.5": { 90 + "pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs=" 91 + }, 92 + "org/ow2/asm#asm-analysis/7.0": { 93 + "jar": "sha256-6YH49lDE2QC7AzZQsY4SL6axYerdX4iXjQh1H3LuhHQ=", 94 + "pom": "sha256-xrVEd+nVuuHnrd/y4ky/kqr/L/CP1rwFlsOTPD+twss=" 95 + }, 96 + "org/ow2/asm#asm-commons/7.0": { 97 + "jar": "sha256-/tNI7wWVjj6EajrAdKEq9feTbvPSHORKYsT6CKdxkn0=", 98 + "pom": "sha256-9MaXiGzbSlskcgVKC140Nx6bSOYgvkDD7Ujh9LbVHrQ=" 99 + }, 100 + "org/ow2/asm#asm-tree/7.0": { 101 + "jar": "sha256-z9egh0+d42qZnBJ/7q37/m4E1Kce6VTXrz2FPwvkimw=", 102 + "pom": "sha256-05590S9P9TWgg50ZScOcdkQ1WkRwIgyUt2pcFoxXoGg=" 103 + }, 104 + "org/ow2/asm#asm-util/7.0": { 105 + "jar": "sha256-dfu8pEDvRj9BwrCrGoCr5n6RCsSG2mCnhjy8tbrn4UU=", 106 + "pom": "sha256-4HvOS7VdWgb0wQ2RL8ne6Km5wE7FSbu4208g2zRwb3U=" 107 + }, 108 + "org/ow2/asm#asm/7.0": { 109 + "jar": "sha256-uI72ZGizyXitDJf9bpCXnlYVW0rGkIm6ekTpqn/+ms8=", 110 + "pom": "sha256-g/ZbEIPVzk+Lp/lUXP6f8XgkWJyafMgsOkaVgB5PX2g=" 111 + }, 112 + "org/slf4j#slf4j-api/1.7.25": { 113 + "jar": "sha256-GMSgCV1cHaa4F1kudnuyPSndL1YK1033X/OWHb3iW3k=", 114 + "pom": "sha256-fNnXoLXZPf1GGhSIkbQ1Cc9AOpx/n7SQYNNVTfHIHh4=" 115 + }, 116 + "org/slf4j#slf4j-parent/1.7.25": { 117 + "pom": "sha256-GPXFISDbA26I1hNviDnIMtB0vdqVx1bG9CkknS21SsY=" 118 + }, 119 + "org/sonatype/oss#oss-parent/7": { 120 + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" 121 + }, 122 + "org/sonatype/oss#oss-parent/9": { 123 + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" 124 + } 125 + }, 126 + "https://repo.maven.apache.org/maven2/org": { 127 + "openjfx#javafx-base/11.0.2": { 128 + "jar": "sha256-Hy+IiY9U8aKeK1jKrrChEFBZigdSTyls2a72wAu5PQ8=", 129 + "pom": "sha256-F/QWaIULgDukqDp+LZYDm2nwcniLvbqI4J/sgVegMpw=" 130 + }, 131 + "openjfx#javafx-base/11.0.2/linux": { 132 + "jar": "sha256-hMNW8TRL/TqnS1WiOgzgeLTF5qm+iFPajeQV5ez81Bs=" 133 + }, 134 + "openjfx#javafx-controls/11.0.2": { 135 + "jar": "sha256-YBBsLPUqfzHsobjQipUs9Lk7Wx2FSSp1XpeggIpp/5o=", 136 + "pom": "sha256-WI5hxbroHQl2C2DYz7E7ERtC09RwwKCpnaBqtq/XjQM=" 137 + }, 138 + "openjfx#javafx-controls/11.0.2/linux": { 139 + "jar": "sha256-wXIELPTOd/xon61lWSVrEbmcb7ic5f0bM9/DRLhqCpc=" 140 + }, 141 + "openjfx#javafx-fxml/11.0.2": { 142 + "pom": "sha256-hqY8PXMIR6kmAEQ3YosWH88GXj0vrzSjwTjK4j3FDxg=" 143 + }, 144 + "openjfx#javafx-fxml/11.0.2/linux": { 145 + "jar": "sha256-IsRLJbxYjfZiPgT6EnuLyCQj8flI6a/ySFr0pokOL5Q=" 146 + }, 147 + "openjfx#javafx-graphics/11.0.2": { 148 + "jar": "sha256-3ukAoYanC66CZoRcVrA62aJOaXy1K6PaQhxgSQibNjg=", 149 + "pom": "sha256-5O3+os2WNa3JLTqbp81ew6VqsbF+pKJWDRIr+97gU8g=" 150 + }, 151 + "openjfx#javafx-graphics/11.0.2/linux": { 152 + "jar": "sha256-+yCVZOUN49jQVdmzzWnUahbT7xjsVRYvwTANFAip1QI=" 153 + }, 154 + "openjfx#javafx-media/11.0.2": { 155 + "jar": "sha256-buLos8kx27mNmLuVqoIDP9tvQ839Vp5gYT21g0Yp0CU=", 156 + "pom": "sha256-ea0fX/vvejwnrd8jvXYICIN23mLl1w/tQRKKMu0f0Ps=" 157 + }, 158 + "openjfx#javafx-media/11.0.2/linux": { 159 + "jar": "sha256-SQgWhhxhQ6jpPDBRreX/ZcJ8h5zE0lSZmBQ3RnZDF9Y=" 160 + }, 161 + "openjfx#javafx-swing/11.0.2": { 162 + "pom": "sha256-huvlJlgb5jeG3hJxPMFL23wVAwzPacjJ7lluwyUtB7M=" 163 + }, 164 + "openjfx#javafx-swing/11.0.2/linux": { 165 + "jar": "sha256-5WLb2tBbKGTo3F75chsMmiyxcxWdpElqJ4K4zR5lsUw=" 166 + }, 167 + "openjfx#javafx-web/11.0.2": { 168 + "pom": "sha256-VPT4QZplXM2lGzDG+canNTR6h9myctpnwMndXps/UcU=" 169 + }, 170 + "openjfx#javafx-web/11.0.2/linux": { 171 + "jar": "sha256-FWUzbTr1okARbBPkPepcPZpnSWMnuCj6EL9n6unlsa8=" 172 + }, 173 + "openjfx#javafx/11.0.2": { 174 + "pom": "sha256-vGfwPQ2VsXURSpjv/7E+RORq2eOsGe/w6OBjpudnWtg=" 175 + } 176 + } 177 + }