pdftk: convert to gradle setup hook

chayleaf 9b877fd5 dcf6957b

+224 -57
+9 -57
pkgs/tools/typesetting/pdftk/default.nix
··· 1 - { lib, stdenv, fetchFromGitLab, gradle, jre, perl, writeText, runtimeShell }: 2 3 - let 4 pname = "pdftk"; 5 version = "3.3.3"; 6 ··· 11 hash = "sha256-ciKotTHSEcITfQYKFZ6sY2LZnXGChBJy0+eno8B3YHY="; 12 }; 13 14 - deps = stdenv.mkDerivation { 15 - pname = "${pname}-deps"; 16 - inherit src version; 17 18 - nativeBuildInputs = [ gradle perl ]; 19 - 20 - buildPhase = '' 21 - export GRADLE_USER_HOME=$(mktemp -d) 22 - gradle -Dfile.encoding=utf-8 shadowJar; 23 - ''; 24 - 25 - # Mavenize dependency paths 26 - # 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 27 - installPhase = '' 28 - find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ 29 - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ 30 - | sh 31 - ''; 32 - 33 - outputHashAlgo = "sha256"; 34 - outputHashMode = "recursive"; 35 - outputHash = "sha256-Mx5CdiRxuql22kbLozzr9Rs2E2Svzg2zN1138Xa0pMc="; 36 }; 37 38 - # Point to our local deps repo 39 - gradleInit = writeText "init.gradle" '' 40 - logger.lifecycle 'Replacing Maven repositories with ${deps}...' 41 - gradle.projectsLoaded { 42 - rootProject.allprojects { 43 - buildscript { 44 - repositories { 45 - clear() 46 - maven { url '${deps}' } 47 - } 48 - } 49 - repositories { 50 - clear() 51 - maven { url '${deps}' } 52 - } 53 - } 54 - } 55 56 - settingsEvaluated { settings -> 57 - settings.pluginManagement { 58 - repositories { 59 - maven { url '${deps}' } 60 - } 61 - } 62 - } 63 - ''; 64 65 - in stdenv.mkDerivation rec { 66 - inherit pname version src; 67 - 68 - nativeBuildInputs = [ gradle ]; 69 - 70 - buildPhase = '' 71 - export GRADLE_USER_HOME=$(mktemp -d) 72 - gradle --offline --no-daemon --info --init-script ${gradleInit} shadowJar 73 - ''; 74 75 installPhase = '' 76 mkdir -p $out/{bin,share/pdftk,share/man/man1}
··· 1 + { lib, stdenv, fetchFromGitLab, gradle, jre, runtimeShell }: 2 3 + stdenv.mkDerivation rec { 4 pname = "pdftk"; 5 version = "3.3.3"; 6 ··· 11 hash = "sha256-ciKotTHSEcITfQYKFZ6sY2LZnXGChBJy0+eno8B3YHY="; 12 }; 13 14 + nativeBuildInputs = [ gradle ]; 15 16 + mitmCache = gradle.fetchDeps { 17 + inherit pname; 18 + data = ./deps.json; 19 }; 20 21 + __darwinAllowLocalNetworking = true; 22 23 + gradleFlags = [ "-Dfile.encoding=utf-8" ]; 24 25 + gradleBuildTask = "shadowJar"; 26 27 installPhase = '' 28 mkdir -p $out/{bin,share/pdftk,share/man/man1}
+215
pkgs/tools/typesetting/pdftk/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/diffplug/durian#durian-collect/1.2.0": { 6 + "jar": "sha256-sZTAuIAhzBFsIcHcdvScLB/hda9by3TIume527+aSMw=", 7 + "pom": "sha256-i7diCGoKT9KmRzu/kFx0R2OvodWaVjD3O7BLeHLAn/M=" 8 + }, 9 + "com/diffplug/durian#durian-core/1.2.0": { 10 + "jar": "sha256-F+0KrLOjwWMjMyFou96thpTzKACytH1p1KTEmxFNXa4=", 11 + "pom": "sha256-hwMg6QdVNxsBeW/oG6Ul/R3ui3A0b1VFUe7dQonwtmI=" 12 + }, 13 + "com/diffplug/durian#durian-io/1.2.0": { 14 + "jar": "sha256-CV/R3HeIjAc/C+OaAYFW7lJnInmLCd6eKF7yE14W6sQ=", 15 + "pom": "sha256-NQkZQkMk4nUKPdwvobzmqQrIziklaYpgqbTR1uSSL/4=" 16 + }, 17 + "com/diffplug/spotless#com.diffplug.spotless.gradle.plugin/6.10.0": { 18 + "pom": "sha256-KBM628w3hpIzn4fzKVkykdnjBnmrwpsBVCzmULjHoL4=" 19 + }, 20 + "com/diffplug/spotless#spotless-lib-extra/2.29.0": { 21 + "jar": "sha256-m0zpiqT128dYUP5tmnnoeNMYvnGPmX5epAUsiFYhuqs=", 22 + "module": "sha256-QW44lubwZ/WXlI70QVDJk43wV6NCt31X20gqj5aWgeg=", 23 + "pom": "sha256-hf5PLJpFEVVtzqLbzFth9+f+VlxgedC5ItVmLJCIu+8=" 24 + }, 25 + "com/diffplug/spotless#spotless-lib/2.29.0": { 26 + "jar": "sha256-G/rNp1jy4JDwLBVoR3PlORR/3od/rezZsAY3v536q8c=", 27 + "module": "sha256-Rty7wtfX0d47lSZoX66uA20b/XwrvhL3izIuD1xLVk8=", 28 + "pom": "sha256-v0UZJkr/2hRWrbjIHLazJ5AiMBqn/tdbNKlM34Oj4bo=" 29 + }, 30 + "com/diffplug/spotless#spotless-plugin-gradle/6.10.0": { 31 + "jar": "sha256-p8P8jOFdk311AFsuSclmXdp2UfLSLk7Kn7G03eR79As=", 32 + "module": "sha256-m6j/efMjDs5rZomCishSor+pbZl8JXKjre7wtrFckq0=", 33 + "pom": "sha256-+PCTwoomONZy0ML6LCljz5WFVKoeFHuuvLIEsViM4ns=" 34 + }, 35 + "com/fasterxml#oss-parent/38": { 36 + "pom": "sha256-yD+PRd/cqNC2s2YcYLP4R4D2cbEuBvka1dHBodH5Zug=" 37 + }, 38 + "com/fasterxml/jackson#jackson-base/2.11.2": { 39 + "pom": "sha256-k0uchkLt8xBMUAKC+4EGxzxWeBw9xMdelr2NG7Ha3p0=" 40 + }, 41 + "com/fasterxml/jackson#jackson-bom/2.11.2": { 42 + "pom": "sha256-2qQsw65gqJH9ssh0ZxtiPc0tH+/Kd7z7OU/rHRInfME=" 43 + }, 44 + "com/fasterxml/jackson#jackson-parent/2.11": { 45 + "pom": "sha256-wbChPYz+Y7QLD66EWLmUYxae0MYPf8lj7z8FJXFQy+g=" 46 + }, 47 + "com/fasterxml/jackson/core#jackson-annotations/2.11.2": { 48 + "jar": "sha256-kNYC0ZVd9QmxVpYYz/hpmUyvlIPLgqPMs5eCpc2lQSY=", 49 + "pom": "sha256-AEEc6Dh0WAKZWB4oOuRaXtN7AFHm9WO2miVQeKtYk+4=" 50 + }, 51 + "com/fasterxml/jackson/core#jackson-core/2.11.2": { 52 + "jar": "sha256-+NdoxOiIRSK+WIHdKpGuyBLQjU8FhStDQZDiLeZZ38k=", 53 + "pom": "sha256-QL3NBekAYAtBM3NCz1xpwln9ii+en0p5aNYebvWeOYw=" 54 + }, 55 + "com/fasterxml/jackson/core#jackson-databind/2.11.2": { 56 + "jar": "sha256-y4kLSq2O0hp7V+PI95JNvcoa7/nd0nyw/zckMDeuE0I=", 57 + "pom": "sha256-9a5wZBwK4Svl+UaDjujKE9qIk+d7RNkNXuJfPfjhYQU=" 58 + }, 59 + "com/github/johnrengelman/shadow#com.github.johnrengelman.shadow.gradle.plugin/7.1.2": { 60 + "pom": "sha256-lW5FCF5S6l7zLTRnHruE6xxBqDxFSa8m5oY18QYXmNM=" 61 + }, 62 + "com/googlecode/concurrent-trees#concurrent-trees/2.6.1": { 63 + "jar": "sha256-BONySYTipcv1VgbPo3KlvT08XSohUzpwBOPN5Tl2H6U=", 64 + "pom": "sha256-Q8K5sULnBV0fKlgn8QlEkl0idH2XVrMlDAeqtHU4qXE=" 65 + }, 66 + "com/googlecode/javaewah#JavaEWAH/1.1.12": { 67 + "jar": "sha256-sZIEMxrG4gS++vUIpo9S7GtGONnZus3b69Q1+cTVAPI=", 68 + "pom": "sha256-BhhOmwWeCAkRgnE2r17Hj1fuTDvBn2MutWGw34+HiM4=" 69 + }, 70 + "commons-io#commons-io/2.11.0": { 71 + "jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=", 72 + "pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k=" 73 + }, 74 + "gradle/plugin/com/github/johnrengelman#shadow/7.1.2": { 75 + "jar": "sha256-v3BcwupcAYCqhwoPqAs5vxOhTScSjh6zpLZ0vjT1jpA=", 76 + "pom": "sha256-H6qwvkF9ezxBqXzKCsqKWwtkBvw7Etfyjiw0Ex3/k0o=" 77 + }, 78 + "gradle/plugin/org/mikeneck#graalvm-native-image-plugin/1.4.1": { 79 + "jar": "sha256-hxjq0IdN8UuGNB6IOkxkp3amRd0GbzcO2o+0xaPPZSI=", 80 + "pom": "sha256-nNX2P1cnBVME1ZPa+uqiQK5dE/nZ3xn6meED8wc0lKo=" 81 + }, 82 + "org/apache#apache/23": { 83 + "pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw=" 84 + }, 85 + "org/apache/ant#ant-launcher/1.10.11": { 86 + "jar": "sha256-2rUw33qYC1rI/X6NIIJDrg0+vW3gmxqiznVjYMwu0lY=", 87 + "pom": "sha256-7SoGiCYb624I7FSzgxLx1ILM8aO4Y8R9KNW5CkRtHB4=" 88 + }, 89 + "org/apache/ant#ant-parent/1.10.11": { 90 + "pom": "sha256-V6BTJoLzD6MHQWoiWSnVcQrNpy17Je4IyvmNyCzTXbY=" 91 + }, 92 + "org/apache/ant#ant/1.10.11": { 93 + "jar": "sha256-iMC4m7uq4B4Nn8rpO+eS9au+NAkQb47uhY/fNl28B1Q=", 94 + "pom": "sha256-wiiU2ctGq/XOv27rK8z+TXjhju6jEaDqat3VnftLH+M=" 95 + }, 96 + "org/apache/commons#commons-parent/52": { 97 + "pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4=" 98 + }, 99 + "org/apache/logging#logging-parent/3": { 100 + "pom": "sha256-djouwrgJTUFh3rbCZLEmIIW5vjC/OjHCzhNyQuV3Iqc=" 101 + }, 102 + "org/apache/logging/log4j#log4j-api/2.17.1": { 103 + "jar": "sha256-sNikyKtPuLGIjQCVgicDsObUeTxBlVAgPanmkZYWHeQ=", 104 + "pom": "sha256-HirO8yILKb4QrgmXKLFYsY2UP5Ghk8xFAbtC+SnB6Io=" 105 + }, 106 + "org/apache/logging/log4j#log4j-core/2.17.1": { 107 + "jar": "sha256-yWfyI0h5gLk2TpSnx/mooB/T7nwZvb8LD5+MuFEfPUE=", 108 + "pom": "sha256-C7s79tTSKhv6PDwJJ8KUEK8UoPsm47Ark3JvXH6Yqv0=" 109 + }, 110 + "org/apache/logging/log4j#log4j/2.17.1": { 111 + "pom": "sha256-lnq8AkRDqcsJaTVVmvXprW8P9hN1+Esn1EDS+nCAawk=" 112 + }, 113 + "org/codehaus/groovy#groovy-xml/3.0.10": { 114 + "jar": "sha256-vCrVETWWo6m7ZQ2mRx8biRUFQheCF0p/5g15DttinoU=", 115 + "pom": "sha256-Zwf5O1jO4BxBc/uuhNLh2DDKQc00LZBgbNW3GKn/fSk=" 116 + }, 117 + "org/codehaus/groovy#groovy/3.0.10": { 118 + "jar": "sha256-3/762oKUhlvlA1UVwDIPtnlEPShfSl+K2tzwDBEw6Ew=", 119 + "pom": "sha256-SYKt9KbGxQVnsL489JSCXmwqJ9izhx2eGIIqdCcreao=" 120 + }, 121 + "org/codehaus/plexus#plexus-utils/3.4.1": { 122 + "jar": "sha256-UtheBLORhyKvEdEoVbSoJX35ag52yPTjhS5vqoUfNXs=", 123 + "pom": "sha256-sUTP+bHGJZ/sT+5b38DzYNacI6vU6m5URTOpSbaeNYI=" 124 + }, 125 + "org/codehaus/plexus#plexus/8": { 126 + "pom": "sha256-/6NJ2wTnq/ZYhb3FogYvQZfA/50/H04qpXILdyM/dCw=" 127 + }, 128 + "org/eclipse/jgit#org.eclipse.jgit-parent/5.13.0.202109080827-r": { 129 + "pom": "sha256-oY/X0MQf2o2PHEoktQAKhmRWFHokdG7mzEcx54ihje4=" 130 + }, 131 + "org/eclipse/jgit#org.eclipse.jgit/5.13.0.202109080827-r": { 132 + "jar": "sha256-2r+DafDN+M8Xt/faS9qTIMVwu3VMiOC+t7hSgSz1zSU=", 133 + "pom": "sha256-qEF3Rc+i2V1qlxHpQT/KmE/FZmt2J7rRVAzyfUYq6BM=" 134 + }, 135 + "org/jdom#jdom2/2.0.6": { 136 + "jar": "sha256-E0XxG6YG0VYD1nQFUajCGUfAIVZAdw7GcnH+eL6pfPU=", 137 + "pom": "sha256-R7I6ef4za3QbgkNMbgSdaBZSVuQF51wQkh/XL6imXY0=" 138 + }, 139 + "org/jetbrains#annotations/13.0": { 140 + "jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=", 141 + "pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" 142 + }, 143 + "org/jetbrains/kotlin#kotlin-stdlib-common/1.3.21": { 144 + "jar": "sha256-zqYfe2EYleZPWFaal1f8CrDVgvEHIR4ZMODOKgrdUqc=", 145 + "pom": "sha256-HkQzMKGrEIPdEjMesYI7zaGM06YWLtxTagNeTeHXhz0=" 146 + }, 147 + "org/jetbrains/kotlin#kotlin-stdlib/1.3.21": { 148 + "jar": "sha256-OLojcNnwb1BDPgayyndblEc8LieF9BCSYHmreTxysDQ=", 149 + "pom": "sha256-nOHqMzlsW/5I7IQSoM1WHsyQnXHI+TZZZ6FPnyT9uaU=" 150 + }, 151 + "org/junit#junit-bom/5.7.2": { 152 + "module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=", 153 + "pom": "sha256-zRSqqGmZH4ICHFhdVw0x/zQry6WLtEIztwGTdxuWSHs=" 154 + }, 155 + "org/mikeneck/graalvm-native-image#org.mikeneck.graalvm-native-image.gradle.plugin/1.4.1": { 156 + "pom": "sha256-vxSiyLGrQgrTQ+r8tt9YEbEtbZsn+mBcM/7yz9QZeW8=" 157 + }, 158 + "org/ow2#ow2/1.5": { 159 + "pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs=" 160 + }, 161 + "org/ow2/asm#asm-analysis/9.2": { 162 + "jar": "sha256-h4++UhcxwHLRTS1luYOxvq5q0G/aAAe2qLroH3P0M8Q=", 163 + "pom": "sha256-dzzBor/BTGxKl5xRoHXAI0oL9pT8Or5PrPRU83oUXxs=" 164 + }, 165 + "org/ow2/asm#asm-commons/9.2": { 166 + "jar": "sha256-vkzlMTiiOLtSLNeBz5Hzulzi9sqT7GLUahYqEnIl4KY=", 167 + "pom": "sha256-AoJOg58qLw5ylZ/dMLSJckDwWvxD3kLXugsYQ3YBwHA=" 168 + }, 169 + "org/ow2/asm#asm-tree/9.2": { 170 + "jar": "sha256-qr+b0jCRpOv8EJwfPufPPkuJ9rotP1HFJD8Ws8/64BE=", 171 + "pom": "sha256-9h8+vqVSDd8Z9FKwPEJscjG92KgdesKHZctScSJaw3g=" 172 + }, 173 + "org/ow2/asm#asm/9.2": { 174 + "jar": "sha256-udT+TXGTjfOIOfDspCqqpkz4sxPWeNoDbwyzyhmbR/U=", 175 + "pom": "sha256-37EqGyJL8Bvh/WBAIEZviUJBvLZF3M45Xt2M1vilDfQ=" 176 + }, 177 + "org/slf4j#slf4j-api/1.7.30": { 178 + "jar": "sha256-zboHlk0btAoHYUhcax6ML4/Z6x0ZxTkorA1/lRAQXFc=", 179 + "pom": "sha256-fgdHdR6bZ+Gdy1IG8E6iLMA9JQxCJCZALq3QNRPywxQ=" 180 + }, 181 + "org/slf4j#slf4j-parent/1.7.30": { 182 + "pom": "sha256-EWR5VuSKDFv7OsM/bafoPzQQAraFfv0zWlBbaHvjS3U=" 183 + }, 184 + "org/sonatype/oss#oss-parent/5": { 185 + "pom": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0=" 186 + }, 187 + "org/sonatype/oss#oss-parent/7": { 188 + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" 189 + }, 190 + "org/vafer#jdependency/2.7.0": { 191 + "jar": "sha256-1j79V0b/QIlDp91++Frp8Jqn+2O7KxaRFCfObEW1n9A=", 192 + "pom": "sha256-6yRCKwo+nofVrG6oCHeG+1HEsbvg0iXvdSFSxzaiBNA=" 193 + } 194 + }, 195 + "https://repo.maven.apache.org/maven2/org": { 196 + "apache#apache/23": { 197 + "pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw=" 198 + }, 199 + "apache/commons#commons-lang3/3.12.0": { 200 + "jar": "sha256-2RnZBEhsA3+NGTQS2gyS4iqfokIwudZ6V4VcXDHH6U4=", 201 + "pom": "sha256-gtMfHcxFg+/9dE6XkWWxbaZL+GvKYj/F0bA+2U9FyFo=" 202 + }, 203 + "apache/commons#commons-parent/52": { 204 + "pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4=" 205 + }, 206 + "bouncycastle#bcprov-jdk18on/1.71": { 207 + "jar": "sha256-80M6l9eA/p+j3D1WKkHezVmy5hfOiE3pBgNJrBR1AEU=", 208 + "pom": "sha256-u90garzosxsfGnMBORtEO6bN4X5y3udcH9LkEBFsXIc=" 209 + }, 210 + "junit#junit-bom/5.7.1": { 211 + "module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=", 212 + "pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q=" 213 + } 214 + } 215 + }