Unverified Commit 980872c9 authored by Ulysses Zhan's avatar Ulysses Zhan
Browse files

apkeditor: 1.4.1 -> 1.4.5; add update script

parent bd820895
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -8,8 +8,8 @@
let
  self = REAndroidLibrary {
    pname = "arsclib";
    # 1.3.5 is not new enough for APKEditor because of API changes
    version = "1.3.5-unstable-2024-10-21";
    # 1.3.8 is not new enough for APKEditor because of API changes
    version = "1.3.8-unstable-2025-09-23";
    projectName = "ARSCLib";

    src = fetchFromGitHub {
@@ -18,8 +18,8 @@ let
      # This is the latest commit at the time of packaging.
      # It can be changed to a stable release ("V${version}")
      # if it is compatible with APKEditor.
      rev = "ed6ccf00e56d7cce13e8648ad46a2678a6093248";
      hash = "sha256-jzd7xkc4O+P9hlGsFGGl2P3pqVvV5+mDyKTRUuGfFSA=";
      rev = "7238433395dea6f7d0fce3139f1659063ac31f42";
      hash = "sha256-93eskC/qdkkNAZFYqSzoFxhmWgzTvDyZmZxOvwELGCs=";
    };

    mitmCache = gradle.fetchDeps {
+3 −3
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@
let
  self = REAndroidLibrary {
    pname = "jcommand";
    version = "0-unstable-2024-09-20";
    version = "0-unstable-2025-01-21";
    projectName = "JCommand";

    src = fetchFromGitHub {
@@ -18,8 +18,8 @@ let
      # it is hard to determine the actual commit that APKEditor is intended to use,
      # so I think we should use the latest commit that doesn't break compilation or basic functionality.
      # Currently this is the latest commit at the time of packaging.
      rev = "714b6263c28dabb34adc858951cf4bc60d6c3fed";
      hash = "sha256-6Em+1ddUkZBCYWs88qtfeGnxISZchFrHgDL8fsgZoQg=";
      rev = "27d5fd21dc7da268182ea81e59007af890adb06e";
      hash = "sha256-sbblGrp16rMGGGt7xAFd9F3ACeadYYEymBEL+s5BZ1E=";
    };

    mitmCache = gradle.fetchDeps {
+11 −3
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
  stdenv,
  fetchFromGitHub,
  callPackage,
  versionCheckHook,

  jre,
  gradle,
@@ -54,7 +55,7 @@ let
  apkeditor =
    let
      pname = "apkeditor";
      version = "1.4.1";
      version = "1.4.5";
      projectName = "APKEditor";
    in
    REAndroidLibrary {
@@ -69,8 +70,8 @@ let
      src = fetchFromGitHub {
        owner = "REAndroid";
        repo = "APKEditor";
        tag = "v${version}";
        hash = "sha256-a72j9qGjJXnTFeqLez2rhBSArFVYCX+Xs7NQd8CY5Yk=";
        tag = "V${version}";
        hash = "sha256-yuNMyEnxTjHPSBPWVD8b+f612hWGGayZHKHxtWtxXDg=";
      };

      patches = [
@@ -99,8 +100,15 @@ let
          --add-flags "-jar $out/${apkeditor.outJar}"
      '';

      doInstallCheck = true;
      nativeInstallCheckInputs = [ versionCheckHook ];

      passthru.updateScript = ./update.sh;

      meta = {
        description = "Powerful android apk resources editor";
        homepage = "https://github.com/REAndroid/APKEditor";
        changelog = "https://github.com/REAndroid/APKEditor/releases/tag/V${version}";
        maintainers = with lib.maintainers; [ ulysseszhan ];
        license = lib.licenses.asl20;
        platforms = lib.platforms.all;
+3 −3
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@
let
  self = REAndroidLibrary {
    pname = "smali";
    version = "0-unstable-2024-10-15";
    version = "0-unstable-2024-11-24";
    projectName = "smali";

    src = fetchFromGitHub {
@@ -18,8 +18,8 @@ let
      # it is hard to determine the actual commit that APKEditor is intended to use,
      # so I think we should use the latest commit that doesn't break compilation or basic functionality.
      # Currently this is the latest commit at the time of packaging.
      rev = "c781eafb31f526abce9fdf406ce2c925fec20d28";
      hash = "sha256-6tkvikgWMUcKwzsgbfpxlB6NZBAlZtTE34M3qPQw7Y4=";
      rev = "76b35b4e0c9e8c874ca3e374bb943bba8d280770";
      hash = "sha256-PhRBjiIKA4EIiafPplZNBErXG8V84Xn0cZLWVPmJelQ=";
    };

    patches = [
+58 −0
Original line number Diff line number Diff line
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq common-updater-scripts

set -euo pipefail

GITHUB_TOKEN="${GITHUB_TOKEN:-}"

nixpkgs_attr() {
  nix-instantiate --eval --raw --attr "$1"
}

github_api() {
  local token_opt=()
  if [[ -n "$GITHUB_TOKEN" ]]; then
    token_opt=(-H "Authorization: Bearer $GITHUB_TOKEN")
  fi
  curl -fsS "${token_opt[@]}" "https://api.github.com$1"
}

update_mitm_cache() {
  if [[ -z "$(nixpkgs_attr "$1.mitmCache.name")" ]]; then
    return
  fi
  "$(nix-build -A "$1.mitmCache.updateScript")"
}

update() {
  echo "Updating $1..." >&2

  local owner="$(nixpkgs_attr "$1.src.owner")"
  local repo="$(nixpkgs_attr "$1.src.repo")"

  local old_version="$(nixpkgs_attr "$1.version")"
  local use_last_commit=0
  if [[ "$old_version" == *unstable* ]]; then
    use_last_commit=1
  fi

  if (( use_last_commit )); then
    local repo_info="$(github_api "/repos/$owner/$repo/commits?per_page=1" | jq ".[0]")"
    local new_rev="$(echo "$repo_info" | jq -r .sha)"
    local date="$(echo "$repo_info" | jq -r .commit.author.date)"
    date="$(date -u -d "$date" +%Y-%m-%d)"
    local new_version="${old_version%%-unstable*}-unstable-$(date -u -d "$date" +%Y-%m-%d)"
    update-source-version "$1" "$new_version" --rev="$new_rev" --ignore-same-version --ignore-same-hash
  else
    local tag="$(github_api "/repos/$owner/$repo/releases/latest" | jq -r .tag_name)"
    local new_version="${tag#V}"
    update-source-version "$1" "$new_version" --ignore-same-version --ignore-same-hash
  fi

  update_mitm_cache "$1"
}

update apkeditor.passthru.deps.arsclib
update apkeditor.passthru.deps.smali
update apkeditor.passthru.deps.jcommand
update apkeditor