1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitLab,
5 pythonOlder,
6 pythonAtLeast,
7 argcomplete,
8 requests,
9 setuptools,
10 looseversion,
11 gnupg,
12}:
13
14buildPythonPackage rec {
15 pname = "sdkmanager";
16 version = "0.6.11";
17 pyproject = true;
18
19 disabled = pythonOlder "3.5";
20
21 src = fetchFromGitLab {
22 owner = "fdroid";
23 repo = "sdkmanager";
24 tag = version;
25 hash = "sha256-UBBko5copc5y9kdUr8jqJgijxRLfpRuJmT1QSow/eVg=";
26 };
27
28 pythonRelaxDeps = [ "urllib3" ];
29
30 build-system = [ setuptools ];
31
32 dependencies =
33 [
34 argcomplete
35 requests
36 ]
37 ++ requests.optional-dependencies.socks
38 ++ lib.optionals (pythonAtLeast "3.12") [ looseversion ];
39
40 postInstall = ''
41 wrapProgram $out/bin/sdkmanager \
42 --suffix PATH : ${lib.makeBinPath [ gnupg ]}
43 '';
44
45 # has no tests
46 doCheck = false;
47
48 pythonImportsCheck = [ "sdkmanager" ];
49
50 meta = {
51 homepage = "https://gitlab.com/fdroid/sdkmanager";
52 description = "Drop-in replacement for sdkmanager from the Android SDK written in Python";
53 mainProgram = "sdkmanager";
54 license = lib.licenses.agpl3Plus;
55 maintainers = with lib.maintainers; [ linsui ];
56 };
57}