Subject: [bug#64808] [PATCH] gnu: Add andorid-sdkmanager.

From: Andreas Enge <[email-masked]>
Date: Mon, 24 Jul 2023 17:43:27 +0200

Am Mon, Jul 24, 2023 at 09:51:35AM -0500 schrieb Distopico:
> The name change make sense, thank you and ANDROID_HOME is the way
> according with the documentation, but "gnupg" is necessary, if you test
> with `--container -N` you will se the error:
> `FileNotFoundError: [Errno 2] No such file or directory: 'gpgv'`
> after run `sdkmanager --list`, "gpgv" is part of gnupg package, for that
> reason I added it in "propagated-inputs". attached a patch with that
> change.

Ah, I see, of course I did have gnupg in my profile already...
I think a better option is to replace the one occurrence of "gpgv"
in the script by the absolute path to the binary; this also registers
a reference with the package.

Could you test the attached patch, please?

Andreas

>From 18c42e27cca61c868fc6b5d06ab8e13cc0a02302 Mon Sep 17 00:00:00 2001
Message-ID: <[email-masked]>
From: Distopico <[email-masked]>
Date: Sun, 23 Jul 2023 13:41:32 -0500
Subject: [PATCH] gnu: Add sdkmanager.

* gnu/packages/android.scm (sdkmanager): New variable.

Co-authored-by: Andreas Enge <[email-masked]>
---
 gnu/packages/android.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index f35c2398bd..b9b8b89208 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2020 Sergey Trofimov <[email-masked]>
 ;;; Copyright © 2021 Guillaume Le Vaillant <[email-masked]>
 ;;; Copyright © 2021 Petr Hodina <[email-masked]>
+;;; Copyright © 2023 Camilo Q.S. (Distopico) <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,6 +39,7 @@ (define-module (gnu packages android)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system pyproject)
   #:use-module (guix build-system trivial)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
@@ -721,6 +723,35 @@ (define-public fastboot
      "This package provides @command{fastboot}, a tool to upload file system images to Android devices.")
     (license license:asl2.0)))
 
+(define-public sdkmanager
+  (package
+    (name "sdkmanager")
+    (version "0.6.5")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "sdkmanager" version ".tar.gz"))
+              (sha256
+               (base32
+                "11as7n2mj3nbqsqb3ivyv9985n73i022s748qvjg36cs8ig50afx"))))
+    (build-system pyproject-build-system)
+    (inputs (list python-requests python-argcomplete python-urllib3 gnupg))
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-before 'build 'patch-gnupg
+                          (lambda _
+                            (substitute* "sdkmanager.py"
+                              (("gpgv")
+                               (string-append #$(this-package-input "gnupg")
+                                              "/bin/gpgv"))))))))
+    (home-page "https://gitlab.com/fdroid/sdkmanager")
+    (synopsis "Replacement for Android sdkmanager written in Python")
+    (description
+     "This package provides a drop-in replacement for sdkmanager from
+the Android SDK.  It is written in Python and part of the F-Droid
+project.  It implements the exact API of the Android sdkmanager command
+line.  The project also attempts to maintain the same terminal output.")
+    (license license:agpl3+)))
+
 (define-public android-udev-rules
   (package
     (name "android-udev-rules")

base-commit: cf9904bcc8dd03e73675475bb4d8746dc434e415
-- 
2.41.0