Commit Graph

248 Commits

Author SHA1 Message Date
Jari Vetoniemi
2408ef3c6f androidndk: remove legacy ndks
allows us to remove python2 dependencies and lot more
2022-06-29 18:27:16 +09:00
Jari Vetoniemi
0aded46f08 androidenv: update packages 2022-06-29 18:27:16 +09:00
Jari Vetoniemi
5f1923d67e androidenv: fix android cross-compilers
These were completely broken. Even if they managed to output a binary,
it wouldn't actually run on the actual device.
2022-06-29 18:27:16 +09:00
Manuel Bärenz
0856383b26 androidenv: Fix emulator 2022-06-20 14:30:31 +02:00
Sandro Jäckel
2d1147930b
android tools: fix meta license 2022-06-20 11:26:44 +02:00
Sandro
1fdeb86121
Merge pull request #169468 from Atemu/update/android-env
androidenv: regenerate repo.json
2022-05-31 15:38:21 +02:00
Jakub Sokołowski
b0663a3dc3
androidenv: include autoPatchelfHook only on Linux
This is supposed to fix an issue caused by this PR:
https://github.com/NixOS/nixpkgs/pull/163924

Which made `autoPatchelfHook` available only on Linux, resulting in
builds of Android packages failing with:
```
error: Package ‘auto-patchelf-hook’ in /nix/store/...-nixpkgs-source/pkgs/build-support/trivial-builders.nix:73
    is not supported on ‘x86_64-darwin’, refusing to evaluate.
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-29 23:17:37 +02:00
Artturin
c1fffdfffb treewide: change some glibc to stdenv.cc.libc 2022-05-27 05:57:43 +03:00
Artturin
0c4d65b21e treewide: stdenv.glibc -> glibc 2022-05-25 15:51:20 +03:00
Atemu
1df306132b platform-tools: allow aarch64-darwin 2022-04-20 20:43:45 +02:00
Atemu
928d976aa5 androidenv: regenerate repo.json 2022-04-20 20:33:12 +02:00
Atemu
e48ca2fa56 androidenv: document update procedure 2022-04-20 20:26:59 +02:00
OPNA2608
d2f268745a treewide: autoPatchelfHook only on Linux 2022-03-23 21:37:39 +01:00
Michael Lohmann
962d74ce84
androidenv: default emulatorVersion to one available
The last repo.json update in a0f6a8af81 removed the default emulator version, so it had to be changed (or the repo.json had to be overwritten) for it to work.
Instead use the most recent available emulator version
2021-12-10 20:43:45 +01:00
Ryan Burns
15111f8a9a ndk-bundle: fix build
Since b79483d2b7,
the various architectures of the prebuilt libraries cause
errors, so we need to tell patchelf to ignore missing deps.
2021-11-19 23:37:11 -08:00
flexagoon
2ec2ad064b androidenv: fix emulator build on Linux 2021-11-18 20:02:45 +03:00
Sandro Jäckel
8547db919a
treewide: switch `builtins.fromJSON(builtins.readFile ./file.json)` to lib.importJSON ./file.json 2021-11-03 14:43:52 +01:00
Alyssa Ross
c9ce275aa4
treewide: "does not exists" -> "does not exist"
I noticed this minor grammar mistake when running update.nix, and then
while grepping to find the source I noticed we had it a few times in
Nixpkgs.  Just as easy to fix treewide as it was to fix the one
occurrence I noticed.
2021-09-09 18:45:33 +00:00
Charlotte Van Petegem
a0f6a8af81
androidenv: regenerate repo.json 2021-08-21 12:20:50 +02:00
Pavol Rusnak
68889ed61f
treewide: use quotes for url 2021-06-20 16:26:23 +02:00
AndersonTorres
e9e5f5f84d Change all alsaLib references to alsa-lib 2021-06-10 01:12:49 -03:00
Jonas Chevalier
c6b62f2381
mkShell: introduce packages argument (#122180)
The distinction between the inputs doesn't really make sense in the
mkShell context.  Technically speaking, we should be using the
nativeBuildInputs most of the time.

So in order to make this function more beginner-friendly, add "packages"
as an attribute, that maps to nativeBuildInputs.

This commit also updates all the uses in nixpkgs.
2021-05-13 19:17:29 +02:00
Morgan Jones
a7e5b070be androidenv: Allow multiple ndkVersions to be specified
Android is deprecating ndk.dir in favor of specifying exact NDK
version in Gradle configuration. Ensure that we can support multiple
NDKs, and link them into the location the Android Gradle Plugin expects.
2021-04-24 15:56:08 -06:00
Sandro
151d746ab5
Merge pull request #115229 from rolfschr/android-fix-shebang-in-make-standalone-toolchain 2021-03-30 16:59:38 +02:00
Rolf Schröder
c03f846b46 android: replace '$(pwd)' by '.' 2021-03-27 12:46:58 +01:00
Samuel Gräfenstein
6b6d2abfa0
treewide: xlibs -> xorg
Fix building with `config.allowAliases = false;`.
2021-03-17 00:00:18 +01:00
Rolf Schröder
2985284ccb android: Fix shebangs in auto-generated android toolchain scripts
The script make_standalone_toolchain.py autogenerates some shell scripts
when invoked. These scripts have a hardcoded shebang of '#!/bin/bash'.
The generated scripts obviously do not work in a Nix environment. This
commit makes sure the scripts have the correct shebang.
2021-03-09 21:13:28 +01:00
s1341
aee60bef7a android_prebuilt: Fix eval 2021-03-04 18:17:39 +00:00
Ryan Burns
b98bfb6536 androidenv: do not copy verbosely
Verbose copying can exceed hydra's output limit,
causing spurious failures. For example, see:
https://hydra.nixos.org/eval/1644892?filter=android
2021-01-27 02:03:14 -08:00
zowoq
932941b79c treewide: editorconfig fixes
- remove trailing whitespace
- use spaces for indentation
2021-01-21 13:29:54 +10:00
numinit
5b91d4ab65 Rework androidenv package generation
androidenv did not previously write license files, which caused certain
gradle-based Android tools to fail. Restructure androidenv's list of
Android packages into a single repo.json file to prevent duplication
and enable us to extract the EULA texts, which we then hash with
builtins.hashString to produce the license files that Android gradle
tools look for.

Remove includeDocs and lldbVersions, as these have been removed
from the Android package repositories.

Improve documentation and examples.
2021-01-03 21:27:23 -07:00
Jan Tojnar
3afc4e8a81
androidsdk_9_0: fix evaluation without aliases 2020-12-06 11:07:40 +01:00
John Ericson
452854a13c androidndk: Avoid depending on target-sensative openjdk
We just need jdk for this script that helps set up toolchains. The
script might need to know about the target platform, but the interpreter
that runs it (or part of it) doesn't.
2020-09-08 09:49:39 -04:00
John Ericson
4c489b5f5d deployAndroidPackage: Use pname and version 2020-09-08 09:31:18 -04:00
Matthew Bauer
d0e52b6b32
Merge pull request #95309 from obsidiansystems/mobile-fixes
Support Android 29 in cross-compilation
2020-08-28 14:59:37 -05:00
eyjhb
f13d952121
androidenv: fix convert files not quoting urls 2020-08-19 16:40:28 +02:00
Matthew Bauer
4cbca0893a androidenv: remove duplicate addons.nix entries 2020-08-17 23:51:59 -05:00
Matthew Bauer
074bc78cc8 android: update sdk, ndk to 29, 21 2020-08-17 23:51:53 -05:00
Luca Favatella
7802608649 androidenv/emulate-app: use runtimeShell instead of stdenv.shell
See also https://github.com/NixOS/nixpkgs PR 56408.
2020-08-16 10:27:37 +00:00
eyjhb
2d999d7e6e
androidenv.build-tools: add libc++ to enable buildToolsVersion 29.0.3 2020-08-01 16:53:51 +02:00
vponte
7d69a04d79 androidenv: add missing emulator dynamic libraries 2020-05-30 15:43:32 +02:00
Michael Reilly
84cf00f980
treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Luca Favatella
f01278dea2 androidenv: manually (!) delete more complex version of google images
This commit was built as a revert commit followed by deletion:
* Revert "androidenv: manually (!) delete oldest revision of google
  images".
* Delete other revision.

Using `systemImageType = "google_apis_playstore"` (and `abiVersion =
"x86"` and `platformVersion = "28"` - that I expect resolved to
`97d9d4f4a2afa8b0f5d52e90748e19c10406ca93`), the symptom is:
```
Warning: Observed package id 'system-images;android-28;google_ndk_playstore;x86' in inconsistent location '/nix/store/...-androidsdk/libexec/android-sdk/system-images/android-28/google_apis_playstore/x86' (Expected '/nix/store/...-androidsdk/libexec/android-sdk/system-images/android-28/google_ndk_playstore/x86')
...
Error: Package path is not valid. Valid system image paths are:
system-images;android-28;google_ndk_playstore;x86
```
How is the actual image name `google_ndk_playstore` when the fetched
image has id `google_apis_playstore`?

Attempt keeping - of the two images - the one that looks simpler.

For the `"28".google_apis."x86"` images, in the XML the differences
are: more complex license (what is `arm-dbt`?); higher emulator.
Namely:
```
		<uses-license ref="android-sdk-license"/>
		<dependencies>
			<dependency path="patcher;v4"/>
			<dependency path="emulator">
				<min-revision>
					<major>27</major>
					<minor>1</minor>
					<micro>7</micro>
...
		<uses-license ref="android-sdk-arm-dbt-license"/>
		<dependencies>
			<dependency path="patcher;v4"/>
			<dependency path="emulator">
				<min-revision>
					<major>29</major>
					<minor>1</minor>
					<micro>12</micro>
```

Analogously for `"28".google_apis_playstore."x86"`.
2020-03-09 18:34:16 +00:00
Luca Favatella
c50618898f androidenv/emulate-app: fix image id for recent device manager
Symptom:
```
Available Android targets:
----------
id: 1 or "android-28"
     Name: Android 9
     Type: Platform
     API level: 28
     Revision: 6
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : google_ndk_playstore/x86
...
Error: Invalid --tag google_apis_playstore for the selected target.
```

For creation of AVD, switch from `android` to `avdmanager` as the
latter seems enabling selecting the image with less friction (and is
better documented as not deprecated).  This requires using recent
tools - from https://developer.android.com/studio/releases/sdk-tools :
> SDK Tools, Revision 25.3.0 (March 2017)
> ...
> `android avd` command-line functionality replaced with new
> `avdmanager` tool.

For listing of targets, switch from `android` to `avdmanager` as the
`android` command invocation fails in recent tools.  Symptom (not
missing `s` as backward incompatibility):
```
Invalid or unsupported command "list targets"

Supported commands are:
android list target
android list avd
android list device
android create avd
android move avd
android delete avd
android list sdk
android update sdk
```

References:
- https://developer.android.com/studio/tools/help/android
- https://developer.android.com/studio/command-line/avdmanager
2020-03-09 15:38:49 +00:00
Freeman Latif
954b406ac2 androidenv: add missing linux dependencies
This is extracted from https://github.com/NixOS/nixpkgs PR 78623.

The symptom I observed was:
```
builder for '/nix/store/7zz585ch9jqjvz8k88rf7fs046inxszq-emulator-30.0.3.drv' failed with exit code 1; last 10 log lines:
    libXext.so.6 -> found: /nix/store/qkmj8pa3ka9v335bbgx74ah4080fwdbf-libXext-1.3.4/lib/libXext.so.6
    libXfixes.so.3 -> found: /nix/store/nhp59xxq4g51mgpwgjsp8pvkn7531b86-libXfixes-5.0.3/lib/libXfixes.so.3
    libXi.so.6 -> not found!
    libXrender.so.1 -> not found!
    libXtst.so.6 -> not found!
    libasound.so.2 -> not found!
    libz.so.1 -> found: /nix/store/pb2am7dfsv524pb2z7m8mp8nkcmgd3cl-zlib-1.2.11/lib/libz.so.1
    libdbus-1.so.3 -> found: /nix/store/ddqrvb1b0xdb8g18f4advmq4wk0aiknd-dbus-1.12.16-lib/lib/libdbus-1.so.3
    libGL.so.1 -> found: /nix/store/bbpgyifsh2hv0ivhl3g4ik2nw7d10zdx-emulator-30.0.3/libexec/android-sdk/emulator/lib64/gles_mesa/libGL.so.1
    libc++.so.1 -> found: /nix/store/bbpgyifsh2hv0ivhl3g4ik2nw7d10zdx-emulator-30.0.3/libexec/android-sdk/emulator/lib64/libc++.so.1
```
2020-03-09 04:49:47 +00:00
Luca Favatella
91411f0f21 androidenv: manually (!) delete default images with same name
... complex as apparently dependent on OS of host of emulator.

This shall rather be solved by enhancement of the scripts.
2020-03-09 04:47:40 +00:00
Luca Favatella
72e3836bfb androidenv: manually (!) delete oldest revision of google images
... as same name hence clashing.

This shall rather be solved by enhancement of the scripts.
2020-03-09 04:47:40 +00:00
Luca Favatella
3286057969 androidenv: fix default platform-tools to a known one 2020-03-09 04:47:40 +00:00
Luca Favatella
6da0e0b7d7 androidenv: bump emulator version to latest stable - as per Linux
Move to a known version of the emulator.  Each OS has a distinct
version... pick the one on Linux.  A better solution would be to let
the user of `emulateApp` overload what the emulator version shall be
(and maybe it is already possible and I do not see it) - without need
to reproduce large portions of `default.nix`.

Using the previous emulator showed the following warning:
```
Your emulator is out of date, please update by launching Android Studio:
```

I am not aware of any reasons for not wanting the latest emulator (as
I expect it shall be compatible usually with more system images - not
less), so bump its default version.

Emulator release notes:
https://developer.android.com/studio/releases/emulator
2020-03-09 04:47:40 +00:00
Luca Favatella
e003ca046c androidenv: update the generated expressions
... running `generate.sh`.
2020-03-09 04:47:39 +00:00