Commit dc491896 authored by FliegendeWurst's avatar FliegendeWurst Committed by Masum Reza
Browse files

apksigner: 34.0.5-unstable-2024-03-06 -> 35.0.6-unstable-2024-11-15

This changes the package to the upstream's distribution archive.
parent 776edac7
Loading
Loading
Loading
Loading
+522 −56

File changed.

Preview size limit exceeded, changes collapsed.

+22 −26
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
  jdk_headless,
  gradle_8,
  makeWrapper,
  bashNonInteractive,
}:
let
  # "Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0."
@@ -12,36 +13,19 @@ let
in
stdenv.mkDerivation rec {
  pname = "apksigner";
  version = "34.0.5-unstable-2024-03-06";
  # Major version is derived from the API version of the corresponding Android release.
  # Patch version is derived from the release number.
  # For example, Android 15 had releases starting at r24 -> r30 is patch 6.
  version = "35.0.6";

  src = fetchgit {
    # use pname here because the final jar uses this as the filename
    name = pname;
    url = "https://android.googlesource.com/platform/tools/apksig";
    rev = "ac5cbb07d87cc342fcf07715857a812305d69888";
    hash = "sha256-sLAs7XEkhNkQjB/nhBODxI3QzxFvLWM1SBKDuXp6gvw=";
    rev = "refs/tags/android-15.0.0_r30";
    hash = "sha256-f/PggxvBv8nYUyL9Ukd4YVpunpRWbLL5UYsYhsiDWRE=";
  };

  postPatch = ''
    cat >> build.gradle <<EOF

    apply plugin: 'application'
    mainClassName = "com.android.apksigner.ApkSignerTool"
    sourceSets.main.java.srcDirs = [ 'src/apksigner/java', 'src/main/java' ]
    jar {
        manifest { attributes "Main-Class": "com.android.apksigner.ApkSignerTool" }
        from { (configurations.runtimeClasspath).collect { it.isDirectory() ? it : zipTree(it) } } {
            exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/native/*.dll'
        }
        from('src/apksigner/java') {
            include 'com/android/apksigner/*.txt'
        }
    }
    tasks.named("processTestResources") { dependsOn("extractTestProto") }
    EOF
    sed -i -e '/conscrypt/s/testImplementation/implementation/' build.gradle
  '';

  mitmCache = gradle.fetchDeps {
    inherit pname;
    data = ./deps.json;
@@ -56,10 +40,22 @@ stdenv.mkDerivation rec {
    makeWrapper
  ];

  buildInputs = [
    # required for startup script generated by Gradle
    bashNonInteractive
  ];

  installPhase = ''
    install -Dm444 build/libs/apksigner.jar -t $out/lib
    makeWrapper "${jdk_headless}/bin/java" "$out/bin/apksigner" \
      --add-flags "-jar $out/lib/apksigner.jar"
    runHook preInstall

    mkdir -p $out/opt
    tar xf build/distributions/apksigner.tar
    mv apksigner $out/opt
    mkdir -p $out/bin
    makeWrapper $out/opt/apksigner/bin/apksigner $out/bin/apksigner \
      --set JAVA_HOME ${jdk_headless.home}

    runHook postInstall
  '';

  meta = {