jd-gui: convert to gradle setup hook

chayleaf dcf6957b 346bfec1

+232 -61
+22 -61
pkgs/tools/security/jd-gui/default.nix
··· 7 7 , gradle_6 8 8 , makeDesktopItem 9 9 , copyDesktopItems 10 - , perl 11 - , writeText 12 10 , runtimeShell 13 11 }: 14 12 ··· 16 14 pname = "jd-gui"; 17 15 version = "1.6.6"; 18 16 17 + name = "${pname}-${version}"; 18 + 19 19 src = fetchFromGitHub { 20 20 owner = "java-decompiler"; 21 21 repo = pname; ··· 23 23 hash = "sha256-QHiZPYFwDQzbXVSuhwzQqBRXlkG9QVU+Jl6SKvBoCwQ="; 24 24 }; 25 25 26 - patches = [ 27 - # https://github.com/java-decompiler/jd-gui/pull/362 28 - (fetchpatch { 29 - name = "nebula-plugin-gradle-6-compatibility.patch"; 30 - url = "https://github.com/java-decompiler/jd-gui/commit/91f805f9dc8ce0097460e63c8095ccea870687e6.patch"; 31 - hash = "sha256-9eaM9Mx2FaKIhGSOHjATKN/CrtvJeXyrH8Mdx8LNtpE="; 32 - }) 33 - ]; 34 - 35 - deps = stdenv.mkDerivation { 36 - name = "${pname}-deps"; 37 - inherit src patches; 38 - 39 - nativeBuildInputs = [ jdk perl gradle_6 ]; 40 - 41 - buildPhase = '' 42 - export GRADLE_USER_HOME=$(mktemp -d); 43 - gradle --no-daemon jar 44 - ''; 45 - 46 - # Mavenize dependency paths 47 - # 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 48 - installPhase = '' 49 - find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ 50 - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ 51 - | sh 52 - ''; 53 - 54 - outputHashAlgo = "sha256"; 55 - outputHashMode = "recursive"; 56 - outputHash = "sha256-gqUyZE+MoZRYCcJx95Qc4dZIC3DZvxee6UQhpfveDI4="; 57 - }; 58 - 59 - # Point to our local deps repo 60 - gradleInit = writeText "init.gradle" '' 61 - logger.lifecycle 'Replacing Maven repositories with ${deps}...' 62 - 63 - gradle.projectsLoaded { 64 - rootProject.allprojects { 65 - buildscript { 66 - repositories { 67 - clear() 68 - maven { url '${deps}' } 69 - } 70 - } 71 - repositories { 72 - clear() 73 - maven { url '${deps}' } 74 - } 75 - } 76 - } 77 - ''; 26 + gradle = gradle_6; 78 27 79 28 desktopItem = makeDesktopItem { 80 29 name = "jd-gui"; ··· 89 38 }; 90 39 91 40 in stdenv.mkDerivation rec { 92 - inherit pname version src patches; 93 - name = "${pname}-${version}"; 41 + inherit pname version src; 42 + 43 + patches = [ 44 + # https://github.com/java-decompiler/jd-gui/pull/362 45 + (fetchpatch { 46 + name = "nebula-plugin-gradle-6-compatibility.patch"; 47 + url = "https://github.com/java-decompiler/jd-gui/commit/91f805f9dc8ce0097460e63c8095ccea870687e6.patch"; 48 + hash = "sha256-9eaM9Mx2FaKIhGSOHjATKN/CrtvJeXyrH8Mdx8LNtpE="; 49 + }) 50 + ]; 94 51 95 - nativeBuildInputs = [ jdk gradle_6 copyDesktopItems ]; 52 + nativeBuildInputs = [ jdk gradle copyDesktopItems ]; 96 53 97 - buildPhase = '' 98 - export GRADLE_USER_HOME=$(mktemp -d) 99 - gradle --offline --no-daemon --info --init-script ${gradleInit} jar 100 - ''; 54 + mitmCache = gradle.fetchDeps { 55 + inherit pname; 56 + data = ./deps.json; 57 + }; 58 + 59 + __darwinAllowLocalNetworking = true; 60 + 61 + gradleBuildTask = "jar"; 101 62 102 63 installPhase = let 103 64 jar = "$out/share/jd-gui/${name}.jar";
+210
pkgs/tools/security/jd-gui/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://jcenter.bintray.com": { 5 + "com/bmuschko#gradle-docker-plugin/3.2.1": { 6 + "jar": "sha256-BfgdS5EdMR7nrEhJ6/eLMD4HdDQY1OiaVZVCK/OAIxQ=", 7 + "pom": "sha256-slOHkvEGJnUa9sjeAgdH/1E4kntOKfL69KjtOsFKzSE=" 8 + }, 9 + "com/fifesoft#rsyntaxtextarea/3.0.4": { 10 + "jar": "sha256-76a7i/iJ6WnAwIGQ5AsolZbqDO3sA/7yNwGAdcsBSQU=", 11 + "pom": "sha256-Dat8ku0cJsdYs0EjYsDXjQy4v2RB2i5q4FqGPAO3W64=" 12 + }, 13 + "com/netflix/nebula#gradle-ospackage-plugin/8.5.6": { 14 + "jar": "sha256-sQK7oYx9F4OlcSgZj6/vNYr+/nIVufi783YpFCjvkGk=", 15 + "module": "sha256-CQGrawL62gDjdBsDaCwdRtgDDQQ0aexWDIrl8jrwsYw=", 16 + "pom": "sha256-zr2oKXDuN6bO9Ppzs81hOR+zFWseT5si55TrZ1yUdfs=" 17 + }, 18 + "com/thoughtworks/xstream#xstream-parent/1.4.10": { 19 + "pom": "sha256-RncMfpQQkzv62s69yR5ekLAjxhoako27hXa2kh2DBsw=" 20 + }, 21 + "com/thoughtworks/xstream#xstream/1.4.10": { 22 + "jar": "sha256-oVh/NfphdRNgfIbsnm5N5euKzfmjptf3RY+KjECwCFg=", 23 + "pom": "sha256-pKn/aI9xPaPqwEQS5QoMml4XPmkh/kRt2wfUkB2aNBc=" 24 + }, 25 + "com/yuvimasory#orange-extensions/1.3.0": { 26 + "jar": "sha256-M1gGPRjFV56evw/eRWQOqy1FJ9HummKDyTZ5zqRG3YY=", 27 + "pom": "sha256-MBQbN96epg6iqwnPBCVAc4hHqKG8A1o7a9A2OsMvV7I=" 28 + }, 29 + "commons-beanutils#commons-beanutils/1.7.0": { 30 + "jar": "sha256-JLyqIMy9x8hWzgwK6hRFZpQ0A+Lp8nvZd5zaHXaCPvQ=", 31 + "pom": "sha256-tqymRloosCdobwJdV3AvkK0NEo4U0c/OygvYcfAIStk=" 32 + }, 33 + "commons-io#commons-io/2.6": { 34 + "jar": "sha256-+HfTBGYKwqFC84ZbrfyXHex+1zx0fH+NXS9ROcpzZRM=", 35 + "pom": "sha256-DCOGOJOiKR9aev29jRWSOzlIr9h+Vj+jQc3Pbq4zimA=" 36 + }, 37 + "commons-logging#commons-logging/1.2": { 38 + "jar": "sha256-2t3qHqC+D1aXirMAa4rJKDSv7vvZt+TmMW/KV98PpjY=", 39 + "pom": "sha256-yRq1qlcNhvb9B8wVjsa8LFAIBAKXLukXn+JBAHOfuyA=" 40 + }, 41 + "edu/sc/seis/gradle#launch4j/2.4.4": { 42 + "jar": "sha256-Q3jZCBGaI9GKG9t0HAnL+KRhoNfFNSFo3PQHZmFC3FY=", 43 + "pom": "sha256-Cfk0ecS6AgtilLVZvLVOHdRNsB+iLGDZLa0o0zHJFqs=" 44 + }, 45 + "junit#junit/4.12": { 46 + "jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=", 47 + "pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ=" 48 + }, 49 + "net/sf/launch4j#launch4j/3.12": { 50 + "pom": "sha256-rVGWVL75ed10qYwXKlR93sPNhWSAORnj296G05Srvpc=" 51 + }, 52 + "net/sf/launch4j#launch4j/3.12/core": { 53 + "jar": "sha256-XUbxMJCI4cijjw9KV84ITUZBakNdG5OZW8OFKooysIU=" 54 + }, 55 + "net/sf/launch4j#launch4j/3.12/workdir-linux64": { 56 + "jar": "sha256-XlgZsoDyUT9EfHBsXejU3OceVlxFMUv0+pv+0MXs57k=" 57 + }, 58 + "net/sf/proguard#proguard-base/6.1.0": { 59 + "jar": "sha256-gdCEOhP5zuZehDy8c/Km8U/MeyfHxgEDyLxx3umFp24=", 60 + "pom": "sha256-H39OO6GpBYFGL9Jn6eEWfiAcCk9h5pq1DUV/SMBQFXY=" 61 + }, 62 + "net/sf/proguard#proguard-gradle/6.1.0": { 63 + "jar": "sha256-rQfrlm3lIewsMYLaYg0xpaNTTwXMjmDDlNG41EGCmvQ=", 64 + "pom": "sha256-tEDYJgbG4nVImE2JcLeF8LWCJhvDhhecWS2VMKO6TzQ=" 65 + }, 66 + "net/sf/proguard#proguard-parent/6.1.0": { 67 + "pom": "sha256-v7pHjLrr8KfIx139/iBxnls33nzAgA+iYjoFgOaJEXE=" 68 + }, 69 + "org/abego/treelayout#org.abego.treelayout.core/1.0.1": { 70 + "jar": "sha256-grnjYxrMcIwRUhb6ePl3gNioHbt/FfjYIpGh3DqDsdA=", 71 + "pom": "sha256-fIy/ymTpcEQNTyh/NRapbABpKgOU/KHVexKpepbw6hE=" 72 + }, 73 + "org/antlr#ST4/4.0.8": { 74 + "jar": "sha256-WMqrxAyfdLC1mT/YaOD2SlDAdZCU5qJRqq+tmO38ejs=", 75 + "pom": "sha256-PAiQ3scRdOs7o9QEyp40GQH/awQhgIsAcTsNuxMGwXw=" 76 + }, 77 + "org/antlr#antlr-master/3.5.2": { 78 + "pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y=" 79 + }, 80 + "org/antlr#antlr-runtime/3.5.2": { 81 + "jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=", 82 + "pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU=" 83 + }, 84 + "org/antlr#antlr4-runtime/4.5": { 85 + "jar": "sha256-tcQNVavm6kxWFPjxHoNy2YQ07TwRKNWLjuoduVWXN6s=", 86 + "pom": "sha256-hRz5esL2utOZacMOx95PhBu2R1J/Rl7CDMur+yKHIpg=" 87 + }, 88 + "org/antlr#antlr4/4.5": { 89 + "jar": "sha256-do7i3es2pP5kNMgFoTyVI41LZBPlL3ce0meKGEGOMNk=", 90 + "pom": "sha256-4Mhs6hXMEO/K6UuvsOEADmv8xBgUK11ybNe8OyL+dwI=" 91 + }, 92 + "org/apache#apache/13": { 93 + "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0=" 94 + }, 95 + "org/apache#apache/18": { 96 + "pom": "sha256-eDEwcoX9R1u8NrIK4454gvEcMVOx1ZMPhS1E7ajzPBc=" 97 + }, 98 + "org/apache#apache/19": { 99 + "pom": "sha256-kfejMJbqabrCy69tAf65NMrAAsSNjIz6nCQLQPHsId8=" 100 + }, 101 + "org/apache#apache/21": { 102 + "pom": "sha256-rxDBCNoBTxfK+se1KytLWjocGCZfoq+XoyXZFDU3s4A=" 103 + }, 104 + "org/apache/ant#ant-launcher/1.10.6": { 105 + "jar": "sha256-wDqhjaSwHJ791kGYNkvC/PL7nqWElxYVup8aCaRoUCY=", 106 + "pom": "sha256-CGuKg9hhebR7pgMeuGiOlGiKAz/qmW8ttwltSLIn6KY=" 107 + }, 108 + "org/apache/ant#ant-parent/1.10.6": { 109 + "pom": "sha256-n+ReOBBPxGOdqFs4WdeUqT7oMkIrx57D5zfA/QvWmiA=" 110 + }, 111 + "org/apache/ant#ant-parent/1.9.1": { 112 + "pom": "sha256-kQ71Ysi7ahrZAOGY9U2pG4bQ0o3wG8Eah9tlbZBv1us=" 113 + }, 114 + "org/apache/ant#ant/1.10.6": { 115 + "jar": "sha256-bFy9iMELt61iTlY3oDdbAQ9AZ/ZJfNj85wtaXxDTtBo=", 116 + "pom": "sha256-AEhxs7RrtMSGoyTlA3CgnKBY72zLhOp6Ceyks/Djx1c=" 117 + }, 118 + "org/apache/ant#ant/1.9.1": { 119 + "pom": "sha256-wtNC6vx3d7G97/vmCp5NeRIOvV34/PwOY7TesMcOPFQ=" 120 + }, 121 + "org/apache/commons#commons-compress/1.18": { 122 + "jar": "sha256-Xy3x5GeCXkysWZbUSJDEIBwAC0PAsjz/wHgtKKC+ubA=", 123 + "pom": "sha256-Zyxf6SvT6rQ+jVMzjK1coHO2Up3k6ys4hZo+qmyegRk=" 124 + }, 125 + "org/apache/commons#commons-compress/1.8": { 126 + "pom": "sha256-OPhEKHDCaR2YIlGfLP+46JxwQQBQt8RsuhdqiCGeRCk=" 127 + }, 128 + "org/apache/commons#commons-lang3/3.9": { 129 + "jar": "sha256-3i4dzc8++ReozoWGYaBnJqmpRPKOM61/ngi+pE3DwjA=", 130 + "pom": "sha256-pAIkKbmEJbQwGBkVchJ5pS9hDzRki9rEh9TKy76N/rU=" 131 + }, 132 + "org/apache/commons#commons-parent/33": { 133 + "pom": "sha256-U9ABE1Li5RBvN52vzNrHdU7G8PeCQ8AwXklp9azd+Ps=" 134 + }, 135 + "org/apache/commons#commons-parent/34": { 136 + "pom": "sha256-Oi5p0G1kHR87KTEm3J4uTqZWO/jDbIfgq2+kKS0Et5w=" 137 + }, 138 + "org/apache/commons#commons-parent/42": { 139 + "pom": "sha256-zTE0lMZwtIPsJWlyrxaYszDlmPgHACNU63ZUefYEsJw=" 140 + }, 141 + "org/apache/commons#commons-parent/47": { 142 + "pom": "sha256-io7LVwVTv58f+uIRqNTKnuYwwXr+WSkzaPunvZtC/Lc=" 143 + }, 144 + "org/apache/commons#commons-parent/48": { 145 + "pom": "sha256-Hh996TcKe3kB8Sjx2s0UIr504/R/lViw954EwGN8oLQ=" 146 + }, 147 + "org/bouncycastle#bcpg-jdk15on/1.62": { 148 + "jar": "sha256-+EduQ4RO2yAOoLL7OTWVLSI/O2syOmctcxYipLkpQ+A=", 149 + "pom": "sha256-372CfVICQmFhq7AdlCOOakMDsvzWkp5sUpWPjW3wciY=" 150 + }, 151 + "org/bouncycastle#bcprov-jdk15on/1.62": { 152 + "jar": "sha256-L6CrcbFU2imsE0CXvGu6zZCYfdTEAFUWFZ5klNHVLqI=", 153 + "pom": "sha256-cA/nligsj+84xi/Cw974WM5EmrXzwiCINjYXVth5viY=" 154 + }, 155 + "org/hamcrest#hamcrest-core/1.3": { 156 + "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=", 157 + "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" 158 + }, 159 + "org/hamcrest#hamcrest-parent/1.3": { 160 + "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" 161 + }, 162 + "org/jd#jd-core/1.1.3": { 163 + "jar": "sha256-M/YP91x33AiQXnZ2lKOPe2q3kr0uWDH0HitWNUu4Bvs=", 164 + "pom": "sha256-n1Gs7cjKfNmu9LZ3nbLdOkFqcILMtO8Z67VHfBHG6wQ=" 165 + }, 166 + "org/ow2#ow2/1.5": { 167 + "pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs=" 168 + }, 169 + "org/ow2/asm#asm/7.1": { 170 + "jar": "sha256-SrL6K20sycyx6qBeoynEB7R7E+0pFfYvjEuMyWJY1N4=", 171 + "pom": "sha256-Dyl0Lq2mWIpGxnn0maZ1Xks5OXZwBPK9nAIBnP0dMYA=" 172 + }, 173 + "org/redline-rpm#redline/1.2.9": { 174 + "jar": "sha256-zEe5s3Tr9DoPAmv4amdL9uNqVr04lqyIEcUIPTW79OE=", 175 + "pom": "sha256-k94nVXykHsKx/LMHxAhtdDtYdig/41FRUi8oaJjmfGw=" 176 + }, 177 + "org/slf4j#slf4j-api/1.7.5": { 178 + "jar": "sha256-/jCCUkXSM2yFncONYMD8XzZo2/Kc1YaCjStWZ+w1W5E=", 179 + "pom": "sha256-r6+OdAGbIw0/Vv3XyT+xBwwNyjTz0tWrXeqfxha9XKQ=" 180 + }, 181 + "org/slf4j#slf4j-parent/1.7.5": { 182 + "pom": "sha256-xDvFoCLb/Z3oK+Iy3/5GIIy8feEsFDhbXagk4zHlNbs=" 183 + }, 184 + "org/sonatype/oss#oss-parent/7": { 185 + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" 186 + }, 187 + "org/sonatype/oss#oss-parent/9": { 188 + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" 189 + }, 190 + "org/tukaani#xz/1.4": { 191 + "pom": "sha256-/kqLT1R/okQ0L7r0pOgPDEg3HYXMQBtYUViRKENiWJI=" 192 + }, 193 + "org/tukaani#xz/1.8": { 194 + "jar": "sha256-jHlks2/j8MvmRLBPy/+E5JHOgZF9svW/oMuo6VSK/10=", 195 + "pom": "sha256-8p51y4jrSsv35apcCe1V6sLLrmAdY6nzdSMfRUUsEBM=" 196 + }, 197 + "org/vafer#jdeb/1.8": { 198 + "jar": "sha256-N0/gKgkxTabsghngBVmOdgMjoavktxXMM84+KpvNqTI=", 199 + "pom": "sha256-MQdFSRqXEzi0XcwhFMRt6GWvNOWLI96d2JJfEGFewBY=" 200 + }, 201 + "xmlpull#xmlpull/1.1.3.1": { 202 + "jar": "sha256-NOCO5iEWBxy7acDtcNFaelsgjWJ5jFnyEgu4kpMky2M=", 203 + "pom": "sha256-jxD/2N8NPpgZyMyEAnCcaySLxTqVTvbkVHDZrjpXNfs=" 204 + }, 205 + "xpp3#xpp3_min/1.1.4c": { 206 + "jar": "sha256-v8kOnjLQ6rHzl/uXS18VCoFRiDgqxB83KnFJ1bwXgAg=", 207 + "pom": "sha256-tbRqwMCdpBsE28dTRWtIkShWp/+7FJBnaRC1EMRx0T8=" 208 + } 209 + } 210 + }