Commit graph

229 commits

Author SHA1 Message Date
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
Luca Favatella de119ca8ea androidenv: fix packages xsl used in generate.sh
Entry `<remotePackage path="cmdline-tools;latest">` resulted in a
duplicated `"cmdline-tools"."1.0"`.
2020-03-09 04:45:36 +00:00
Tad Fisher d574ea45a2 androidenv: fix system images xsl used in generate.sh
Updated with fixes for `convertsystemimages.xsl`:
- Use `type-details/codename` if it exists, falling back to
  `type-details/api-level`: this results in "Q" rather than "28" for
  preview images
- Use `<xsl:text>` elements to control whitespace in the output.

This is extracted from https://github.com/NixOS/nixpkgs PR 58131.
2020-03-09 03:43:19 +00:00
Tad Fisher 6f80983963 androidenv: update generate.sh to use nix-shell and fail on error
Update generate.sh to run using nix-shell. Also make it fail with
meaningful output instead of writing empty output files.

This is extracted from https://github.com/NixOS/nixpkgs PR 58131.

This relies on the shebang being used.
2020-03-09 03:43:19 +00:00
Sander van der Burg 3deb1caa82 androidenv: add platform SDK 29 2020-03-01 20:23:39 +01:00
Lenz Weber 5ef31532b1 androidenv build-tools: fix old versions under linux 2020-02-14 11:41:57 +01:00
Hernawan Faïz Abdillah 82a2a9eabf
androidenv.lldb: Fix libssl not found 2020-01-07 14:02:13 +07:00
Robin Gloster 760e23136a
treewide: *inputs are lists 2019-12-31 01:09:25 +01:00
Kirill Elagin 2e79c2d969 android: Install platform-tools binaries on all OSes 2019-11-19 22:29:21 +01:00
Jamey Sharp 5d1c9cebd6 deployAndroidPackage: prefer local builds
These derivations just unzip something and maybe do a little patching,
so there's no benefit to sending the zip file off to a build server and
then downloading the unzipped results again.
2019-11-16 14:37:47 +01:00
volth 7b8fb5c06c treewide: remove redundant quotes 2019-09-08 23:38:31 +00:00
Frederik Rietdijk 5061fe0c2c Merge staging-next into staging 2019-08-28 08:26:42 +02:00
volth 35d68ef143 treewide: remove redundant quotes 2019-08-26 21:40:19 +00:00
Erik Arvstedt 1b81302d49
androidenv: rename stdenv.lib -> lib
Removes some visual clutter.
2019-08-17 11:19:06 +02:00
Erik Arvstedt 2ec43d3509
androidenv/emulate-app: rename androidsdkComposition -> sdk
This greatly improves readability by shortening some of the overlong lines.
2019-08-17 11:19:05 +02:00
Erik Arvstedt 0dab612395
androidenv/emulate-app: fix passing extra args to the sdk composition
This feature was originally intended but left unfinished, as indicated
by the unused variables 'args' and 'androidSdkArgNames'.
2019-08-17 11:19:02 +02:00
Erik Arvstedt e48d97f640
androidenv: fix deployment of google_apis* system images
Fixes #56866
2019-08-17 11:18:59 +02:00
volth f3282c8d1e treewide: remove unused variables (#63177)
* treewide: remove unused variables

* making ofborg happy
2019-06-16 19:59:05 +00:00
Matthew Bauer dc42372809
Merge pull request #61168 from matthewbauer/release-cross-fixes
release-cross.nix changes/fixes
2019-06-03 20:13:43 -04:00
edef c89b2de425 androidenv: fix the $out/bin symlink for ndk-bundle 2019-05-24 02:32:14 +00:00