apksigner: convert to gradle setup hook

chayleaf 3304e8a0 5aa611e4

+124 -35
+5 -35
pkgs/development/tools/apksigner/default.nix
··· 3 3 , fetchgit 4 4 , jdk_headless 5 5 , gradle 6 - , perl 7 6 , makeWrapper 8 7 }: 9 8 ··· 39 38 sed -i -e '/conscrypt/s/testImplementation/implementation/' build.gradle 40 39 ''; 41 40 42 - # fake build to pre-download deps into fixed-output derivation 43 - deps = stdenv.mkDerivation { 44 - pname = "${pname}-deps"; 45 - inherit src version postPatch; 46 - nativeBuildInputs = [ gradle perl ]; 47 - buildPhase = '' 48 - export GRADLE_USER_HOME=$(mktemp -d) 49 - gradle --no-daemon build 50 - ''; 51 - # 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) 52 - installPhase = '' 53 - find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ 54 - | 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' \ 55 - | sh 56 - ''; 57 - # Don't move info to share/ 58 - forceShare = [ "dummy" ]; 59 - outputHashMode = "recursive"; 60 - # Downloaded jars differ by platform 61 - outputHash = "sha256-cs95YI0SpvzCo5x5trMXlVUGepNKIH9oZ95AfLErKIU="; 41 + mitmCache = gradle.fetchDeps { 42 + inherit pname; 43 + data = ./deps.json; 62 44 }; 63 45 64 - preBuild = '' 65 - # Use the local packages from -deps 66 - sed -i -e '/repositories {/a maven { url uri("${deps}") }' build.gradle 67 - ''; 68 - 69 - buildPhase = '' 70 - runHook preBuild 71 - 72 - export GRADLE_USER_HOME=$(mktemp -d) 73 - gradle --offline --no-daemon build 46 + __darwinAllowLocalNetworking = true; 74 47 75 - runHook postBuild 76 - ''; 48 + doCheck = true; 77 49 78 50 nativeBuildInputs = [ gradle makeWrapper ]; 79 51 ··· 82 54 makeWrapper "${jdk_headless}/bin/java" "$out/bin/apksigner" \ 83 55 --add-flags "-jar $out/lib/apksigner.jar" 84 56 ''; 85 - 86 - __darwinAllowLocalNetworking = true; 87 57 88 58 meta = with lib; { 89 59 description = "Command line tool to sign and verify Android APKs";
+119
pkgs/development/tools/apksigner/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/google#google/1": { 6 + "pom": "sha256-zW2xehGjHt55TMvR3w5Nl1D2QCNHMfIc/4hamZcnfoE=" 7 + }, 8 + "com/google/code/findbugs#jsr305/3.0.2": { 9 + "jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=", 10 + "pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4=" 11 + }, 12 + "com/google/errorprone#error_prone_annotations/2.2.0": { 13 + "jar": "sha256-br0iyhudjsBtQd6NZOBZaYHZYHtCA1+e03T53icaSBo=", 14 + "pom": "sha256-XgJY6huk5RoTN0JoC8IkSPerIUvkBz6GGfZF7xvkLdU=" 15 + }, 16 + "com/google/errorprone#error_prone_parent/2.2.0": { 17 + "pom": "sha256-xGCQLd9ezmiDLGsnHOUqCSiwXPOmrIGo9UjHPL1UETg=" 18 + }, 19 + "com/google/gradle#osdetector-gradle-plugin/1.6.2": { 20 + "jar": "sha256-hFw+/OY70j2WLyELE77rqwXE1YOJihsaf/uMez7X1dQ=", 21 + "pom": "sha256-W/T2le0Rd+gFJFJbbloECl1+pLFhlrERCILGLmmlVeg=" 22 + }, 23 + "com/google/guava#failureaccess/1.0.1": { 24 + "jar": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=", 25 + "pom": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk=" 26 + }, 27 + "com/google/guava#guava-parent/26.0-android": { 28 + "pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ=" 29 + }, 30 + "com/google/guava#guava-parent/27.0.1-jre": { 31 + "pom": "sha256-MX6IKRJi4M8oBelWwYhQ8dRWXIXC4REvXZ0Iqxcy5pY=" 32 + }, 33 + "com/google/guava#guava/27.0.1-jre": { 34 + "jar": "sha256-4cgU/QRJKifDjgMX6r6qGz6VDsgBAjnkAP6QrWyRB7Q=", 35 + "pom": "sha256-ao3QQfI6a7FKhuRA/MuZNTe2InE1eg2sCjyw/zkVjzY=" 36 + }, 37 + "com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": { 38 + "jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=", 39 + "pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s=" 40 + }, 41 + "com/google/j2objc#j2objc-annotations/1.1": { 42 + "jar": "sha256-KZSn63jycQvT07+2ObLJTiGc7awNTQhNUW54wW3d7PY=", 43 + "pom": "sha256-8MmMVx6Tp8tN0Y3w+jCPCWPnoGIKwtQkTmHnCdA61r4=" 44 + }, 45 + "com/google/protobuf#protobuf-bom/3.8.0": { 46 + "pom": "sha256-WjrGCFOIDEORPNXLY7Np626WRuHtDEgGnsmpMTd700c=" 47 + }, 48 + "com/google/protobuf#protobuf-gradle-plugin/0.8.11": { 49 + "jar": "sha256-gFr+/pf6AYFXpWvxQtvuStIo0RSyq3s97le5fD4teHk=", 50 + "pom": "sha256-RBeVBVv4AjSXKcjFWdrVcmi4C4tk6KPePK2lQmo45aA=" 51 + }, 52 + "com/google/protobuf#protobuf-javalite/3.8.0": { 53 + "jar": "sha256-HSWDsgkvIdvCnJCabwV+u4bYTkxU/LHXvAAmO4AaM/g=", 54 + "pom": "sha256-4EnZCbCH/zokFi4H0KgIFE7BnnwK6Z1Ee0dZZ83361s=" 55 + }, 56 + "com/google/protobuf#protobuf-parent/3.8.0": { 57 + "pom": "sha256-cGPoFu/yyZcFW9KmbuLJtObNEvhcj8lW5UhweQmAHEU=" 58 + }, 59 + "com/google/protobuf#protoc/3.8.0": { 60 + "pom": "sha256-0bqQU0Wx2o1GXQ0DCkzgiuVX0nz8krZiMvEN3ks4V9I=" 61 + }, 62 + "com/google/protobuf/protoc/3.8.0/protoc-3.8.0-linux-x86_64": { 63 + "exe": "sha256-eeGGIvawJqOETt7d5Fzw4M98+8emLCho2dgtvtYSZeQ=" 64 + }, 65 + "commons-lang#commons-lang/2.6": { 66 + "jar": "sha256-UPEbCfh3wpTVbyRGP0fSj5Kc9QRPZIZhwPDPuumi9Jw=", 67 + "pom": "sha256-7Xa4iRwwtWYonHQ2Vvik1DWYaYJDjUDFZ8YmIzJH5xE=" 68 + }, 69 + "junit#junit/4.13": { 70 + "jar": "sha256-S4Uy9jvcDgZhUH+UfrMkqVTR26xjGtGciqmgD+7R2GM=", 71 + "pom": "sha256-mg3Ew/orCG5wgiZzfvS7N4R8PLHOTiA1F8CfYwWyJn4=" 72 + }, 73 + "kr/motd/maven#os-maven-plugin/1.6.2": { 74 + "jar": "sha256-OgxJXeHOvIP2e+qhd2p5NvAvEfKt3Th5WWp4sqhryqM=", 75 + "pom": "sha256-bXDR8vJydzDXedMqH9L7seoI51pnpQotjn0P2zoqSvM=" 76 + }, 77 + "org/apache#apache/7": { 78 + "pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU=" 79 + }, 80 + "org/apache/commons#commons-parent/17": { 81 + "pom": "sha256-lucYuvU0h07mLOTULeJl8t2s2IORpUDgMNWdmPp8RAg=" 82 + }, 83 + "org/bouncycastle#bcprov-jdk15on/1.68": { 84 + "jar": "sha256-9zKkbI3n4iMvIAfGgqIdH0zIqKAUm2t71qoa/cZaD40=", 85 + "pom": "sha256-2QfezWhfnNlx5xvfbOWXzzqVt8j/ajSCNRv9irwXz+A=" 86 + }, 87 + "org/checkerframework#checker-qual/2.5.2": { 88 + "jar": "sha256-ZLAmkci51OdwD47i50Lc5+osboHmYrdSLJ7jv1aMBAo=", 89 + "pom": "sha256-3EzUOKNkYtATwjOMjiBtECoyKgDzNynolV7iGYWcnt4=" 90 + }, 91 + "org/codehaus/mojo#animal-sniffer-annotations/1.17": { 92 + "jar": "sha256-kmVPST7P7FIILnY1Tw6/h2SNw9XOwuPDzblHwBZ0elM=", 93 + "pom": "sha256-6VarXS60j6uuEjANDNLTKU1KKkGrwgaMI8tNYK12y+U=" 94 + }, 95 + "org/codehaus/mojo#animal-sniffer-parent/1.17": { 96 + "pom": "sha256-GKA98W4qGExYLbexJWM8Fft3FAJ6hMG1MtcpM9wIuB8=" 97 + }, 98 + "org/codehaus/mojo#mojo-parent/40": { 99 + "pom": "sha256-/GSNzcQE+L9m4Fg5FOz5gBdmGCASJ76hFProUEPLdV4=" 100 + }, 101 + "org/conscrypt#conscrypt-openjdk-uber/2.5.1": { 102 + "jar": "sha256-AfnHQstZKhUeLmK9U5eomAYoqWcAH82s1KpHRGeGhfM=", 103 + "pom": "sha256-XivA41GARnUwxVpnqvq+XvmOBg7raY6a9tCw3N26lc0=" 104 + }, 105 + "org/hamcrest#hamcrest-core/1.3": { 106 + "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=", 107 + "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" 108 + }, 109 + "org/hamcrest#hamcrest-parent/1.3": { 110 + "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" 111 + }, 112 + "org/sonatype/oss#oss-parent/7": { 113 + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" 114 + }, 115 + "org/sonatype/oss#oss-parent/9": { 116 + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" 117 + } 118 + } 119 + }