aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/mobile/androidenv
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2020-03-24 10:15:32 +0100
committerKatharina Fey <kookie@spacekookie.de>2020-03-24 10:15:32 +0100
commit96f063dd321abc80ecaa156226cfb7cf9540315a (patch)
tree7a53ef61484fc7bfff6419b1fd635c67199f27d2 /nixpkgs/pkgs/development/mobile/androidenv
parentaf58f08d3d524e7b008b73a8497ea710915ffaf1 (diff)
parentd96bd3394b734487d1c3bfbac0e8f17465e03afe (diff)
Merge commit 'd96bd3394b734487d1c3bfbac0e8f17465e03afe'
Diffstat (limited to 'nixpkgs/pkgs/development/mobile/androidenv')
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/build-tools.nix6
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/convertpackages.xsl2
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/convertsystemimages.xsl69
-rwxr-xr-x[-rw-r--r--]nixpkgs/pkgs/development/mobile/androidenv/generate.sh28
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/generated/packages.nix17
5 files changed, 95 insertions, 27 deletions
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/build-tools.nix b/nixpkgs/pkgs/development/mobile/androidenv/build-tools.nix
index 9e273468cd3..e648c83fa17 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/build-tools.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/build-tools.nix
@@ -7,8 +7,10 @@ deployAndroidPackage {
patchInstructions = ''
${lib.optionalString (os == "linux") ''
addAutoPatchelfSearchPath $packageBaseDir/lib
- addAutoPatchelfSearchPath $packageBaseDir/lib64
- autoPatchelf --no-recurse $packageBaseDir/lib64
+ if [[ -d $packageBaseDir/lib64 ]]; then
+ addAutoPatchelfSearchPath $packageBaseDir/lib64
+ autoPatchelf --no-recurse $packageBaseDir/lib64
+ fi
autoPatchelf --no-recurse $packageBaseDir
''}
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/convertpackages.xsl b/nixpkgs/pkgs/development/mobile/androidenv/convertpackages.xsl
index 9623e01abcd..5c36deb73c0 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/convertpackages.xsl
+++ b/nixpkgs/pkgs/development/mobile/androidenv/convertpackages.xsl
@@ -28,7 +28,7 @@
{
<!-- Convert all remote packages -->
- <xsl:for-each select="remotePackage"><xsl:sort select="@path" />
+ <xsl:for-each select="remotePackage[not(contains(@path, ';') and substring-after(@path, ';') = 'latest')]"><xsl:sort select="@path" />
<!-- Extract the package name from the path -->
<xsl:variable name="name">
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/convertsystemimages.xsl b/nixpkgs/pkgs/development/mobile/androidenv/convertsystemimages.xsl
index 42d19cb6965..de57041f192 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/convertsystemimages.xsl
+++ b/nixpkgs/pkgs/development/mobile/androidenv/convertsystemimages.xsl
@@ -6,7 +6,7 @@
<xsl:param name="imageType" />
- <xsl:output omit-xml-declaration="yes" indent="no" />
+ <xsl:output method="text" omit-xml-declaration="yes" indent="no" />
<xsl:template name="repository-url">
<xsl:variable name="raw-url" select="complete/url"/>
@@ -15,33 +15,62 @@
<xsl:value-of select="$raw-url"/>
</xsl:when>
<xsl:otherwise>
- https://dl.google.com/android/repository/sys-img/<xsl:value-of select="$imageType" />/<xsl:value-of select="$raw-url"/>
+ <xsl:text>https://dl.google.com/android/repository/sys-img/</xsl:text><xsl:value-of select="$imageType" /><xsl:text>/</xsl:text><xsl:value-of select="$raw-url"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
+ <xsl:template mode="revision" match="type-details[codename]">
+ <xsl:value-of select="codename" />-<xsl:value-of select="tag/id" />-<xsl:value-of select="abi" />
+ </xsl:template>
+
+ <xsl:template mode="revision" match="type-details[not(codename)]">
+ <xsl:value-of select="api-level" />-<xsl:value-of select="tag/id" />-<xsl:value-of select="abi" />
+ </xsl:template>
+
+ <xsl:template mode="attrkey" match="type-details[codename]">
+ <xsl:text>"</xsl:text>
+ <xsl:value-of select="codename" />
+ <xsl:text>".</xsl:text>
+ <xsl:value-of select="tag/id" />
+ <xsl:text>."</xsl:text>
+ <xsl:value-of select="abi" />
+ <xsl:text>"</xsl:text>
+ </xsl:template>
+
+ <xsl:template mode="attrkey" match="type-details[not(codename)]">
+ <xsl:text>"</xsl:text>
+ <xsl:value-of select="api-level" />
+ <xsl:text>".</xsl:text>
+ <xsl:value-of select="tag/id" />
+ <xsl:text>."</xsl:text>
+ <xsl:value-of select="abi" />
+ <xsl:text>"</xsl:text>
+ </xsl:template>
+
<xsl:template match="/sys-img:sdk-sys-img">
-{fetchurl}:
+<xsl:text>{fetchurl}:
{
- <xsl:for-each select="remotePackage[starts-with(@path, 'system-images;')]">
- <xsl:variable name="revision">
- <xsl:value-of select="type-details/api-level" />-<xsl:value-of select="type-details/tag/id" />-<xsl:value-of select="type-details/abi" />
- </xsl:variable>
-
- "<xsl:value-of select="type-details/api-level" />".<xsl:value-of select="type-details/tag/id" />."<xsl:value-of select="type-details/abi" />" = {
- name = "system-image-<xsl:value-of select="$revision" />";
- path = "<xsl:value-of select="translate(@path, ';', '/')" />";
- revision = "<xsl:value-of select="$revision" />";
- displayName = "<xsl:value-of select="display-name" />";
- archives.all = fetchurl {
- <xsl:for-each select="archives/archive">
- url = <xsl:call-template name="repository-url"/>;
- sha1 = "<xsl:value-of select="complete/checksum" />";
- </xsl:for-each>
- };
+</xsl:text><xsl:for-each select="remotePackage[starts-with(@path, 'system-images;')]">
+ <xsl:variable name="revision"><xsl:apply-templates mode="revision" select="type-details" /></xsl:variable>
+
+ <xsl:variable name="attrkey"><xsl:apply-templates mode="attrkey" select="type-details" /></xsl:variable>
+
+ <xsl:text> </xsl:text><xsl:value-of select="$attrkey" /><xsl:text> = {
+ name = "system-image-</xsl:text><xsl:value-of select="$revision" /><xsl:text>";
+ path = "</xsl:text><xsl:value-of select="translate(@path, ';', '/')" /><xsl:text>";
+ revision = "</xsl:text><xsl:value-of select="$revision" /><xsl:text>";
+ displayName = "</xsl:text><xsl:value-of select="display-name" /><xsl:text>";
+ archives.all = fetchurl {</xsl:text>
+ <xsl:for-each select="archives/archive"><xsl:text>
+ url = </xsl:text><xsl:call-template name="repository-url"/><xsl:text>;
+ sha1 = "</xsl:text><xsl:value-of select="complete/checksum" /><xsl:text>";</xsl:text>
+ </xsl:for-each><xsl:text>
+ };
};
+</xsl:text>
</xsl:for-each>
-}
+<xsl:text>}</xsl:text>
</xsl:template>
</xsl:stylesheet>
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/generate.sh b/nixpkgs/pkgs/development/mobile/androidenv/generate.sh
index 1c55734f5f4..895a741adff 100644..100755
--- a/nixpkgs/pkgs/development/mobile/androidenv/generate.sh
+++ b/nixpkgs/pkgs/development/mobile/androidenv/generate.sh
@@ -1,16 +1,36 @@
-#!/bin/sh -e
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl libxslt
+
+set -e
+
+die() {
+ echo "$1" >&2
+ exit 1
+}
+
+fetch() {
+ local url="https://dl.google.com/android/repository/$1"
+ echo "$url -> $2"
+ curl -s "$url" -o "$2" || die "Failed to fetch $url"
+}
+
+pushd "$(dirname "$0")" &>/dev/null || exit 1
+
+mkdir -p xml
# Convert base packages
-curl https://dl.google.com/android/repository/repository2-1.xml -o xml/repository2-1.xml
+fetch repository2-1.xml xml/repository2-1.xml
xsltproc convertpackages.xsl xml/repository2-1.xml > generated/packages.nix
# Convert system images
for img in android android-tv android-wear android-wear-cn google_apis google_apis_playstore
do
- curl https://dl.google.com/android/repository/sys-img/$img/sys-img2-1.xml -o xml/$img-sys-img2-1.xml
+ fetch sys-img/$img/sys-img2-1.xml xml/$img-sys-img2-1.xml
xsltproc --stringparam imageType $img convertsystemimages.xsl xml/$img-sys-img2-1.xml > generated/system-images-$img.nix
done
# Convert system addons
-curl https://dl.google.com/android/repository/addon2-1.xml -o xml/addon2-1.xml
+fetch addon2-1.xml xml/addon2-1.xml
xsltproc convertaddons.xsl xml/addon2-1.xml > generated/addons.nix
+
+popd &>/dev/null
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/generated/packages.nix b/nixpkgs/pkgs/development/mobile/androidenv/generated/packages.nix
index db1f7f1b8d3..fc9f50e1316 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/generated/packages.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/generated/packages.nix
@@ -1504,6 +1504,23 @@
};
};
+ "platforms"."29" = {
+
+ name = "platforms";
+ path = "platforms/android-29";
+ revision = "29";
+ displayName = "Android SDK Platform 29";
+ archives = {
+
+ all = fetchurl {
+ url = https://dl.google.com/android/repository/platform-29_r03.zip;
+ sha1 = "670e2e104333dae90e16ea3b615f0b63da5883ae";
+ };
+
+ };
+ };
+
+
"platforms"."3" = {
name = "platforms";