freenet: convert to gradle setup hook

chayleaf 7754e354 e7aa9a3a

+248 -52
+8 -52
pkgs/applications/networking/p2p/freenet/default.nix
··· 1 { lib, stdenv, fetchurl, fetchFromGitHub, jdk, jre, gradle, bash, coreutils 2 - , substituteAll, nixosTests, perl, fetchpatch, writeText }: 3 4 let 5 version = "01497"; ··· 45 inherit bash coreutils jre seednodes; 46 }; 47 48 - # https://github.com/freenet/fred/blob/next/build-offline.sh 49 - # fake build to pre-download deps into fixed-output derivation 50 - deps = stdenv.mkDerivation { 51 - pname = "${pname}-deps"; 52 - inherit src version patches; 53 - 54 - nativeBuildInputs = [ gradle perl ]; 55 - buildPhase = '' 56 - export GRADLE_USER_HOME=$(mktemp -d) 57 - gradle --no-daemon build 58 - ''; 59 - # 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) 60 - installPhase = '' 61 - find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ 62 - | 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' \ 63 - | sh 64 - ''; 65 - # Don't move info to share/ 66 - forceShare = [ "dummy" ]; 67 - outputHashMode = "recursive"; 68 - # Downloaded jars differ by platform 69 - outputHash = "sha256-CZf5M3lI7Lz9Pl8U/lNoQ6V6Jxbmkxau8L273XFFS2E="; 70 - outputHashAlgo = "sha256"; 71 }; 72 73 - # Point to our local deps repo 74 - gradleInit = writeText "init.gradle" '' 75 - gradle.projectsLoaded { 76 - rootProject.allprojects { 77 - buildscript { 78 - repositories { 79 - clear() 80 - maven { url '${deps}/'; metadataSources {mavenPom(); artifact()} } 81 - } 82 - } 83 - repositories { 84 - clear() 85 - maven { url '${deps}/'; metadataSources {mavenPom(); artifact()} } 86 - } 87 - } 88 - } 89 90 - settingsEvaluated { settings -> 91 - settings.pluginManagement { 92 - repositories { 93 - maven { url '${deps}/'; metadataSources {mavenPom(); artifact()} } 94 - } 95 - } 96 - } 97 - ''; 98 99 - buildPhase = '' 100 - gradle jar -Dorg.gradle.java.home=${jdk} --offline --no-daemon --info --init-script $gradleInit 101 - ''; 102 103 installPhase = '' 104 runHook preInstall ··· 108 install -Dm555 ${wrapper} $out/bin/freenet 109 substituteInPlace $out/bin/freenet \ 110 --subst-var-by outFreenet $out 111 - ln -s ${deps} $out/deps 112 runHook postInstall 113 ''; 114
··· 1 { lib, stdenv, fetchurl, fetchFromGitHub, jdk, jre, gradle, bash, coreutils 2 + , substituteAll, nixosTests, fetchpatch, writeText }: 3 4 let 5 version = "01497"; ··· 45 inherit bash coreutils jre seednodes; 46 }; 47 48 + mitmCache = gradle.fetchDeps { 49 + inherit pname; 50 + data = ./deps.json; 51 }; 52 53 + # using reproducible archives breaks the build 54 + gradleInitScript = writeText "empty-init-script.gradle" ""; 55 56 + gradleFlags = [ "-Dorg.gradle.java.home=${jdk}" ]; 57 58 + gradleBuildTask = "jar"; 59 60 installPhase = '' 61 runHook preInstall ··· 65 install -Dm555 ${wrapper} $out/bin/freenet 66 substituteInPlace $out/bin/freenet \ 67 --subst-var-by outFreenet $out 68 runHook postInstall 69 ''; 70
+240
pkgs/applications/networking/p2p/freenet/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 + "io/pebbletemplates#pebble-project/3.1.5": { 6 + "pom": "sha256-TSnFtsOFqJp3c0S4sPjcKe/j+q06e5f4faJfAnOnOJM=" 7 + }, 8 + "io/pebbletemplates#pebble/3.1.5": { 9 + "jar": "sha256-0lOm3eWeE4aYqqruVGRh0vH2yL0qo47N00ffF8+Q1vA=", 10 + "pom": "sha256-kGnsr9XZc4ey9mNXp1X5Ghv4kZC0yHZ6zyCJDlFAuzc=" 11 + }, 12 + "junit#junit/4.12": { 13 + "jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=", 14 + "pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ=" 15 + }, 16 + "net/java/dev/jna#jna-platform/4.5.2": { 17 + "jar": "sha256-8dAMFn2JIcbiPGJu+fHDrgvkc8lcaP+gErx65VqH4tY=", 18 + "pom": "sha256-+mLh78vRkHG+SzftEFPa3AymCICzmA9Yq9SX8qnxPQU=" 19 + }, 20 + "net/java/dev/jna#jna/4.5.2": { 21 + "jar": "sha256-DI63rPZyYWVteQBRkd66ujtr9d1gpDc1okVCk4Hb7P8=", 22 + "pom": "sha256-nfQrTM73BF1uT7ZLg3bdCS3XTZc3zGSVx2mO7MvTxE8=" 23 + }, 24 + "org/bouncycastle#bcprov-jdk15on/1.59": { 25 + "jar": "sha256-HDHkTjMdJeRtKTs+juLQcCimfbAR50yyRDKFrtHVnIU=", 26 + "pom": "sha256-QeZGb3GwjQXw0+tdhFXATl42hpxjXhFq4Nt04oAD7OU=" 27 + }, 28 + "org/hamcrest#hamcrest-core/1.3": { 29 + "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=", 30 + "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" 31 + }, 32 + "org/hamcrest#hamcrest-library/1.3": { 33 + "jar": "sha256-cR1kUi+exBCYO9MQk0KW2hNL5CVKElCAoEFuwXjfrRw=", 34 + "pom": "sha256-HOtL+w8JiuKbk1BEsjY+ETIzE/4+0gVd+LeXN9UFYnc=" 35 + }, 36 + "org/hamcrest#hamcrest-parent/1.3": { 37 + "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" 38 + }, 39 + "org/mockito#mockito-core/1.9.5": { 40 + "jar": "sha256-+XSDuglEufoTOqKWOHZN2+rbUew9vAIHTFj6LK7NB/o=", 41 + "pom": "sha256-9DIR3AoX/PzVBDCr1bx0e2/SOu9FaWgrZc8rrw8gcnw=" 42 + }, 43 + "org/objenesis#objenesis/1.0": { 44 + "jar": "sha256-xWlLVdklJ0eTgvJUGZs8ax2HgPZSrWHpylmRmIf0kag=", 45 + "pom": "sha256-JInYiwSZ9V5173Xw8lBUV8cSxc+oR8maRvjes+fqPOs=" 46 + }, 47 + "org/slf4j#slf4j-api/1.7.25": { 48 + "jar": "sha256-GMSgCV1cHaa4F1kudnuyPSndL1YK1033X/OWHb3iW3k=", 49 + "pom": "sha256-fNnXoLXZPf1GGhSIkbQ1Cc9AOpx/n7SQYNNVTfHIHh4=" 50 + }, 51 + "org/slf4j#slf4j-parent/1.7.25": { 52 + "pom": "sha256-GPXFISDbA26I1hNviDnIMtB0vdqVx1bG9CkknS21SsY=" 53 + }, 54 + "org/unbescape#unbescape/1.1.6.RELEASE": { 55 + "jar": "sha256-WXz4fVsaTzhbnRzsl0t7SDq7PuhfxbP4tir45L7JXCw=", 56 + "pom": "sha256-AgOVYrsyfVQcDwUHZ+kYmPo4l0eSZojMITvRG8dRJ9E=" 57 + } 58 + }, 59 + "https://mvn.freenetproject.org": { 60 + "org/freenetproject#freenet-ext/29": { 61 + "jar": "sha256-MvKz1r7t9UE36i+aPr72dmbXafCWawjNF/19tZuk158=" 62 + } 63 + }, 64 + "https://repo.maven.apache.org/maven2": { 65 + "com/android/tools#common/22.7.2": { 66 + "jar": "sha256-6ttGKrkD+J2cPRFUxxHwRni3mSHGgmjTQYuba/NEMk4=", 67 + "pom": "sha256-8zhO5T3Z3fYzOUMDUs3/+WY225ZP0mzxaNvVOt8fSQg=" 68 + }, 69 + "com/android/tools#dvlib/22.7.2": { 70 + "jar": "sha256-/a4X4WbglSc1P37HGgt/PZPMBhxkf8p73ZZjJjO7Z+s=", 71 + "pom": "sha256-Q1HWW5dIC0kjSGhulIFI7Hp/AOVXbZjC9DHPIBxDSpw=" 72 + }, 73 + "com/android/tools#sdk-common/22.7.2": { 74 + "jar": "sha256-l/7SZpQEdLQTNBcmSalIWvV6Qqmsmrcm2S27X6SjPpU=", 75 + "pom": "sha256-Ln4pJV6PBhvVs706Vj7/nqu2xqmLSIHwlpzklOkrhD4=" 76 + }, 77 + "com/android/tools#sdklib/22.7.2": { 78 + "jar": "sha256-qFsaBA/dxaWEWjBuaOK4qx/+LFMS4buyoosTvxOE7RU=", 79 + "pom": "sha256-mGlFT4xtSEwnyYC4eIETnMx/7/Q+7g+MGkhtsbXUPSM=" 80 + }, 81 + "com/android/tools/build#builder-model/0.9.2": { 82 + "jar": "sha256-Utfe2Ho/LgcOOyj3IdFPXtik4s6cVFlT2C3cp0XQ/pU=", 83 + "pom": "sha256-8F2KJ7WoFcgydCbzj7DeW6zpgmAAtE4iR+vTxtcnw28=" 84 + }, 85 + "com/android/tools/build#builder-test-api/0.9.2": { 86 + "jar": "sha256-+i52Ho1fu3bUsVJVeE2nx89qaGW03e1IDXpCxvjqbgo=", 87 + "pom": "sha256-c2xEI3eXn7+LDkxMnGSI6Gg7In6VIXekA6LH+4SB2Fg=" 88 + }, 89 + "com/android/tools/build#builder/0.9.2": { 90 + "jar": "sha256-Vbz5bMADnI7bU9GRVeq+1NfgGgkbZv6zrbb/acJ59Bk=", 91 + "pom": "sha256-UaLeg+swvMwBEbTd3mkxvswC5HwpuqNgm9ErCm7kvvg=" 92 + }, 93 + "com/android/tools/build#gradle/0.9.2": { 94 + "jar": "sha256-gX/QEcuyw4yF/39EWHwTsUCoRUrfk3/Do/KKZggULII=", 95 + "pom": "sha256-DCk9CiNuuQYLtf32UJGE98BPy2xFGXbKkS0LysbBt7Y=" 96 + }, 97 + "com/android/tools/build#manifest-merger/22.7.2": { 98 + "jar": "sha256-KUCCoJLJeibyMtC+EhCamQj7pI/dOfdkWTI2nONiD5Q=", 99 + "pom": "sha256-yTWvDWMw7Lk41paAn7mIG5hMz07owjDEUP8nqVNIFv0=" 100 + }, 101 + "com/android/tools/build/gradle/maven-metadata": { 102 + "xml": { 103 + "groupId": "com.android.tools.build", 104 + "lastUpdated": "20170306221012", 105 + "release": "2.3.0" 106 + } 107 + }, 108 + "com/android/tools/ddms#ddmlib/22.7.2": { 109 + "jar": "sha256-NZ5F7s1IkUbifaIimc7nOzYL1Ox/wCfb2zXKys5BOfk=", 110 + "pom": "sha256-YrMjYBcQ4UiBuJ/LDEJ/DfnNbewtmiY+F17jMt8iMXY=" 111 + }, 112 + "com/android/tools/external/lombok#lombok-ast/0.2.2": { 113 + "jar": "sha256-Ww2J1DBMXGFGDkijsPMTf3EitDOBuLtQWr9HzF/bmoE=", 114 + "pom": "sha256-iuaeannJXNEvRP80ak/B1wrnLTlkqnk3cTbGPIv0074=" 115 + }, 116 + "com/android/tools/layoutlib#layoutlib-api/22.7.2": { 117 + "jar": "sha256-X/eOSXu1N9Hi9toYoVGvyQZ7Cj6Q6KQvHJldOxd0kSw=", 118 + "pom": "sha256-dyDIj0DkMDb+tWMd2uEnO8XSwURDnqGK3/p0J3LzHnM=" 119 + }, 120 + "com/android/tools/lint#lint-api/22.7.2": { 121 + "jar": "sha256-1faoCgpY1ycOFmiZGr+akAkteBBqy1qDRGddCv71Tv4=", 122 + "pom": "sha256-gs32TSJflZ0SMJzK4k21b17zmJzn27TrE/oEW01RaQM=" 123 + }, 124 + "com/android/tools/lint#lint-checks/22.7.2": { 125 + "jar": "sha256-Hrp9wZ3RAhpR3BkT5obPwe4yrP3e26H3NZf2X6ghXzM=", 126 + "pom": "sha256-5/n3/kXskHm5S/kCh6xSbyGQ6/vJyU3LJsGhsG2+uM8=" 127 + }, 128 + "com/android/tools/lint#lint/22.7.2": { 129 + "jar": "sha256-vyzGoCzhz2/wdqBBo6GC8G8chqZfU/vR69VK/cxqjrg=", 130 + "pom": "sha256-PPoEnyzLSe5u7n55c5WjqGrpizxkIIINKEb+B6bqKlc=" 131 + }, 132 + "com/google/guava#guava-parent/15.0": { 133 + "pom": "sha256-9RllyaeD1msuchhUmHcfYJsJcQik/g9xfPwzCBWV2js=" 134 + }, 135 + "com/google/guava#guava/15.0": { 136 + "jar": "sha256-ejRXV3DuvGClR2YW42dqbLbyl1x4xBXipgFKxyS6V4M=", 137 + "pom": "sha256-lxBXG7i0qZL0X/gKSOL+Ws7cdD6/iD1M/cuSBgIruFs=" 138 + }, 139 + "com/squareup#javawriter/2.2.1": { 140 + "jar": "sha256-HIIW3l9u2UaerpQhAybEt/5hFmvlAnaOkCd5xqe6vOo=", 141 + "pom": "sha256-XNmnCSuBlmCSc4cBpL28LkoDm/r8E6NcfKCYEc+7MPA=" 142 + }, 143 + "commons-codec#commons-codec/1.4": { 144 + "jar": "sha256-aqQjTHTzoQNXUaJYIlRYZ8jDcnElpkK24ElmXRhjYxs=", 145 + "pom": "sha256-9fMAaUIboBPna+znYEB9zIACJGHclVXcvXX9sG2aQI8=" 146 + }, 147 + "commons-logging#commons-logging/1.1.1": { 148 + "jar": "sha256-zm+RPK0fDbOq1wGG1lxbx//Mmpnj/o4LE3MSgZ98Ni8=", 149 + "pom": "sha256-0PLhbQVOi7l63ZyiZSXrI0b2koCfzSooeH2ozrPDXug=" 150 + }, 151 + "kxml2#kxml2/2.3.0": { 152 + "pom": "sha256-CVvyT0be2d4LZsqdZx3PVPj2FbqVFQsaMTw0dcVf1qU=" 153 + }, 154 + "net/sf/kxml#kxml2/2.3.0": { 155 + "jar": "sha256-8mTdn3mh/eEM5ezFMiHv8kvkyTMcgwt9UvLwintjPeI=", 156 + "pom": "sha256-Mc5gb06VGJNimbsNJ8l4+mHhhf0d58mHT+lZpT40poU=" 157 + }, 158 + "net/sf/proguard#proguard-base/4.10": { 159 + "jar": "sha256-pCU0cXeR5+2oMDYTNzWP4siLCRmAEfnu0epVkfNUTyQ=", 160 + "pom": "sha256-iYTsEfuzfC9fj1aDRT2mLVtGYU8VxVBxJUH9isYqnWs=" 161 + }, 162 + "net/sf/proguard#proguard-gradle/4.10": { 163 + "jar": "sha256-ijb/GXYIYcPPWijb4aadk+aEfi5aadg5PQhkQv8R0Ms=", 164 + "pom": "sha256-kZNouji8XuG6t3YYOqf2HKBaDg1syDbiOhByk59mK5E=" 165 + }, 166 + "net/sf/proguard#proguard-parent/4.10": { 167 + "pom": "sha256-31W088lOxk4iyZFZ/VmWktA9VNdaFRMXMqovUDOeLGM=" 168 + }, 169 + "org/apache#apache/4": { 170 + "pom": "sha256-npMjomuo6yOU7+8MltMbcN9XCAhjDcFHyrHnNUHMUZQ=" 171 + }, 172 + "org/apache/commons#commons-compress/1.0": { 173 + "jar": "sha256-CehOeXeMoboVtzNll6MhRX/CJb1dQfe0aTXSeSL8KnQ=", 174 + "pom": "sha256-O4swzTU6QIV7IEMRzGQVBLATSET8lhOMIkMlniAo/5E=" 175 + }, 176 + "org/apache/commons#commons-parent/11": { 177 + "pom": "sha256-ueAwbzk0YBBbij+lEFJQxSkbHvqpmVSs4OwceDEJoCo=" 178 + }, 179 + "org/apache/commons#commons-parent/5": { 180 + "pom": "sha256-i9YywAvfgKfeNsIrYPEkUsFH2Oyi8A151maZ6+faoCo=" 181 + }, 182 + "org/apache/httpcomponents#httpclient/4.1.1": { 183 + "jar": "sha256-6uUm0Ipmeb9soTjUWgAFsgum7EpAJ4i+gQlwcTyOR1E=", 184 + "pom": "sha256-rboX2TSKl9TOBfKCZ5cP2BlcYaVssG1eDdFfr/YP4qc=" 185 + }, 186 + "org/apache/httpcomponents#httpcomponents-client/4.1": { 187 + "pom": "sha256-UhW2SHmMbI2bnN42QtO/taTMiUt8hBEAQ1Ln3l0RmCc=" 188 + }, 189 + "org/apache/httpcomponents#httpcomponents-client/4.1.1": { 190 + "pom": "sha256-R1KE5emVUm1+dxUTSgdBLOctWYUEY0I4P13kGIoCKlM=" 191 + }, 192 + "org/apache/httpcomponents#httpcomponents-core/4.1": { 193 + "pom": "sha256-T3l//Zw9FW3g2+wf0eY+n9hYSpPHBDV2VT38twb2TeQ=" 194 + }, 195 + "org/apache/httpcomponents#httpcore/4.1": { 196 + "jar": "sha256-POON5R9OJGaMbRhAV6jQhUH56BXS0xnQ9GLwgwkrKc8=", 197 + "pom": "sha256-T8hq+jjpyfqwmcz0XCvHQ9RT5qsiJJCr/oZxl1w8cyc=" 198 + }, 199 + "org/apache/httpcomponents#httpmime/4.1": { 200 + "jar": "sha256-MWKVZhSOikdoiuQ7Qgq8Ps14PtFbM768AIJL8kybFao=", 201 + "pom": "sha256-2zzZW+wQAWBeFlPyhD6FQucS+iu2cv2cjBrOhsV2c9E=" 202 + }, 203 + "org/apache/httpcomponents#project/4.1.1": { 204 + "pom": "sha256-IbtNRN/1TjOjfBGvaYWacUICrgCWmqtUU+unJ2aI+Ow=" 205 + }, 206 + "org/bouncycastle#bcpkix-jdk15on/1.48": { 207 + "jar": "sha256-U0czNrTlqtd5aKGLFsVNFc28Q/Plehh4eZ7faUHQujc=", 208 + "pom": "sha256-v3z/mqxILUKuuKFVHQDrZ81DbsjNThJuyKHgnITdIX0=" 209 + }, 210 + "org/bouncycastle#bcprov-jdk15on/1.48": { 211 + "jar": "sha256-gEt+Ljuax3Hf07Q94WZmrGAI+GAPSPKN3JTjmhFOIog=", 212 + "pom": "sha256-KRIr50qOwbT8VB49opmL62Irw4wEuovx9Vk4aReCeYI=" 213 + }, 214 + "org/eclipse/jdt/core/compiler#ecj/4.2.2": { 215 + "jar": "sha256-THTfiGENZzssdL9bSLYoS65C+biA8K2JqK2mn+hKDXA=", 216 + "pom": "sha256-sh7YTnfE/FhyYqADSzUx+vt+WxGlMWqbjKo/47fqYj0=" 217 + }, 218 + "org/ow2#ow2/1.3": { 219 + "pom": "sha256-USFcZ9LAaNi30vb4D1E3KgmAdd7MxEjUvde5h7qDKPs=" 220 + }, 221 + "org/ow2/asm#asm-analysis/4.0": { 222 + "jar": "sha256-3VOXq69XIxBJrLEBxFHlmKlHpd0YKYMneVNc/cK68U4=", 223 + "pom": "sha256-7U8zeG58CrtuaOYcK047V7WLFOqu/ewxtwkCXja3/Hg=" 224 + }, 225 + "org/ow2/asm#asm-parent/4.0": { 226 + "pom": "sha256-QFr+Cu5AfJEcXkqoCpSdtVOS8XleE8oCrnKdFV30rBg=" 227 + }, 228 + "org/ow2/asm#asm-tree/4.0": { 229 + "jar": "sha256-2LAWoiBbLhQdtCbAQdKubQ1ButBQBioqUXWiWdNkF9o=", 230 + "pom": "sha256-eskVIWBDQDSQMyuS1unIoqd5QIyy1kgdqdOjXtGKLvw=" 231 + }, 232 + "org/ow2/asm#asm/4.0": { 233 + "jar": "sha256-+y3ekCCke7AkxD2d4KlOc6vveTvwjwE1TMl8stLiqVc=", 234 + "pom": "sha256-5jzvroWeRrEtOd1Yh3oZ+JN0pM6xvLE2Fz+nbUfXhtc=" 235 + }, 236 + "org/sonatype/oss#oss-parent/7": { 237 + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" 238 + } 239 + } 240 + }