androidenv: simplify updating and track latest
We can figure out the latest version for every package in mkrepo.rb, instead of repeating ourselves in compose-android-packages. Track the latest non-preview versions of all packages by default, and remove version hardcoding everywhere. Enable the update script.
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
jdk,
|
||||
gnumake,
|
||||
gawk,
|
||||
meta,
|
||||
}:
|
||||
|
||||
{
|
||||
@@ -64,6 +65,8 @@ stdenv.mkDerivation (
|
||||
mkdir -p $out/nix-support
|
||||
echo "file binary-dist \"$(echo $out/*.apk)\"" > $out/nix-support/hydra-build-products
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
}
|
||||
// extraArgs
|
||||
)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{deployAndroidPackage, lib, stdenv, package, os, autoPatchelfHook, makeWrapper, pkgs, pkgsi686Linux, postInstall}:
|
||||
{deployAndroidPackage, lib, stdenv, package, os, autoPatchelfHook, makeWrapper, pkgs, pkgsi686Linux, postInstall, meta}:
|
||||
|
||||
deployAndroidPackage {
|
||||
inherit package;
|
||||
@@ -24,4 +24,6 @@ deployAndroidPackage {
|
||||
cd $out/libexec/android-sdk
|
||||
'' + postInstall;
|
||||
noAuditTmpdir = true; # The checker script gets confused by the build-tools path that is incorrectly identified as a reference to /build
|
||||
|
||||
inherit meta;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{deployAndroidPackage, lib, package, os, autoPatchelfHook, pkgs, stdenv}:
|
||||
{deployAndroidPackage, lib, package, os, autoPatchelfHook, pkgs, stdenv, meta}:
|
||||
|
||||
deployAndroidPackage {
|
||||
inherit package;
|
||||
@@ -7,4 +7,8 @@ deployAndroidPackage {
|
||||
patchInstructions = lib.optionalString (os == "linux") ''
|
||||
autoPatchelf $packageBaseDir/bin
|
||||
'';
|
||||
|
||||
meta = meta // {
|
||||
license = lib.licenses.bsd3;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
pkgs,
|
||||
stdenv,
|
||||
postInstall,
|
||||
meta,
|
||||
}:
|
||||
|
||||
deployAndroidPackage {
|
||||
@@ -46,5 +47,5 @@ deployAndroidPackage {
|
||||
${postInstall}
|
||||
'';
|
||||
|
||||
meta.license = lib.licenses.unfree;
|
||||
inherit meta;
|
||||
}
|
||||
|
||||
@@ -1,27 +1,62 @@
|
||||
{ callPackage, stdenv, lib, fetchurl, ruby, writeText
|
||||
, licenseAccepted ? false
|
||||
{ callPackage, stdenv, stdenvNoCC, lib, fetchurl, ruby, writeText
|
||||
, licenseAccepted ? false, meta
|
||||
}:
|
||||
|
||||
{ cmdLineToolsVersion ? "13.0"
|
||||
, toolsVersion ? "26.1.1"
|
||||
, platformToolsVersion ? "35.0.2"
|
||||
, buildToolsVersions ? [ "35.0.0" ]
|
||||
{ repoJson ? ./repo.json
|
||||
, repoXmls ? null
|
||||
, repo ? (
|
||||
# Reads the repo JSON. If repoXmls is provided, will build a repo JSON into the Nix store.
|
||||
if repoXmls != null then
|
||||
let
|
||||
# Uses mkrepo.rb to create a repo spec.
|
||||
mkRepoJson = { packages ? [], images ? [], addons ? [] }: let
|
||||
mkRepoRuby = (ruby.withPackages (pkgs: with pkgs; [ slop nokogiri ]));
|
||||
mkRepoRubyArguments = lib.lists.flatten [
|
||||
(map (package: ["--packages" "${package}"]) packages)
|
||||
(map (image: ["--images" "${image}"]) images)
|
||||
(map (addon: ["--addons" "${addon}"]) addons)
|
||||
];
|
||||
in
|
||||
stdenvNoCC.mkDerivation {
|
||||
name = "androidenv-repo-json";
|
||||
buildInputs = [ mkRepoRuby ];
|
||||
preferLocalBuild = true;
|
||||
unpackPhase = "true";
|
||||
buildPhase = ''
|
||||
ruby ${./mkrepo.rb} ${lib.escapeShellArgs mkRepoRubyArguments} > repo.json
|
||||
'';
|
||||
installPhase = ''
|
||||
mv repo.json $out
|
||||
'';
|
||||
};
|
||||
repoXmlSpec = {
|
||||
packages = repoXmls.packages or [];
|
||||
images = repoXmls.images or [];
|
||||
addons = repoXmls.addons or [];
|
||||
};
|
||||
in
|
||||
lib.importJSON "${mkRepoJson repoXmlSpec}"
|
||||
else
|
||||
lib.importJSON repoJson
|
||||
)
|
||||
, cmdLineToolsVersion ? repo.latest.cmdline-tools
|
||||
, toolsVersion ? repo.latest.tools
|
||||
, platformToolsVersion ? repo.latest.platform-tools
|
||||
, buildToolsVersions ? [ repo.latest.build-tools ]
|
||||
, includeEmulator ? false
|
||||
, emulatorVersion ? "35.5.2"
|
||||
, platformVersions ? []
|
||||
, emulatorVersion ? repo.latest.emulator
|
||||
, platformVersions ? [ repo.latest.platforms ]
|
||||
, includeSources ? false
|
||||
, includeSystemImages ? false
|
||||
, systemImageTypes ? [ "google_apis" "google_apis_playstore" ]
|
||||
, abiVersions ? [ "x86" "x86_64" "armeabi-v7a" "arm64-v8a" ]
|
||||
, cmakeVersions ? [ ]
|
||||
, cmakeVersions ? [ repo.latest.cmake ]
|
||||
, includeNDK ? false
|
||||
, ndkVersion ? "27.0.12077973"
|
||||
, ndkVersions ? [ndkVersion]
|
||||
, ndkVersion ? repo.latest.ndk
|
||||
, ndkVersions ? [ ndkVersion ]
|
||||
, useGoogleAPIs ? false
|
||||
, useGoogleTVAddOns ? false
|
||||
, includeExtras ? []
|
||||
, repoJson ? ./repo.json
|
||||
, repoXmls ? null
|
||||
, extraLicenses ? []
|
||||
}:
|
||||
|
||||
@@ -42,41 +77,6 @@ let
|
||||
aarch64-darwin = "aarch64";
|
||||
}.${stdenv.hostPlatform.system} or "all";
|
||||
|
||||
# Uses mkrepo.rb to create a repo spec.
|
||||
mkRepoJson = { packages ? [], images ? [], addons ? [] }: let
|
||||
mkRepoRuby = (ruby.withPackages (pkgs: with pkgs; [ slop nokogiri ]));
|
||||
mkRepoRubyArguments = lib.lists.flatten [
|
||||
(builtins.map (package: ["--packages" "${package}"]) packages)
|
||||
(builtins.map (image: ["--images" "${image}"]) images)
|
||||
(builtins.map (addon: ["--addons" "${addon}"]) addons)
|
||||
];
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "androidenv-repo-json";
|
||||
buildInputs = [ mkRepoRuby ];
|
||||
preferLocalBuild = true;
|
||||
unpackPhase = "true";
|
||||
buildPhase = ''
|
||||
ruby ${./mkrepo.rb} ${lib.escapeShellArgs mkRepoRubyArguments} > repo.json
|
||||
'';
|
||||
installPhase = ''
|
||||
mv repo.json $out
|
||||
'';
|
||||
};
|
||||
|
||||
# Reads the repo JSON. If repoXmls is provided, will build a repo JSON into the Nix store.
|
||||
repo = if repoXmls != null then
|
||||
let
|
||||
repoXmlSpec = {
|
||||
packages = repoXmls.packages or [];
|
||||
images = repoXmls.images or [];
|
||||
addons = repoXmls.addons or [];
|
||||
};
|
||||
in
|
||||
lib.importJSON "${mkRepoJson repoXmlSpec}"
|
||||
else
|
||||
lib.importJSON repoJson;
|
||||
|
||||
# Converts all 'archives' keys in a repo spec to fetchurl calls.
|
||||
fetchArchives = attrSet:
|
||||
lib.attrsets.mapAttrsRecursive
|
||||
@@ -137,9 +137,9 @@ let
|
||||
"android-sdk-license"
|
||||
] ++ extraLicenses);
|
||||
in
|
||||
rec {
|
||||
lib.recurseIntoAttrs rec {
|
||||
deployAndroidPackages = callPackage ./deploy-androidpackages.nix {
|
||||
inherit stdenv lib mkLicenses;
|
||||
inherit stdenv lib mkLicenses meta;
|
||||
};
|
||||
|
||||
deployAndroidPackage = ({package, buildInputs ? [], patchInstructions ? "", meta ? {}, ...}@args:
|
||||
@@ -164,12 +164,12 @@ rec {
|
||||
'';
|
||||
|
||||
platform-tools = callPackage ./platform-tools.nix {
|
||||
inherit deployAndroidPackage os;
|
||||
inherit deployAndroidPackage os meta;
|
||||
package = check-version packages "platform-tools" platformToolsVersion;
|
||||
};
|
||||
|
||||
tools = callPackage ./tools.nix {
|
||||
inherit deployAndroidPackage os;
|
||||
inherit deployAndroidPackage os meta;
|
||||
package = check-version packages "tools" toolsVersion;
|
||||
|
||||
postInstall = ''
|
||||
@@ -180,7 +180,7 @@ rec {
|
||||
|
||||
build-tools = map (version:
|
||||
callPackage ./build-tools.nix {
|
||||
inherit deployAndroidPackage os;
|
||||
inherit deployAndroidPackage os meta;
|
||||
package = check-version packages "build-tools" version;
|
||||
|
||||
postInstall = ''
|
||||
@@ -190,7 +190,7 @@ rec {
|
||||
) buildToolsVersions;
|
||||
|
||||
emulator = lib.optionals includeEmulator (callPackage ./emulator.nix {
|
||||
inherit deployAndroidPackage os;
|
||||
inherit deployAndroidPackage os meta;
|
||||
package = check-version packages "emulator" emulatorVersion;
|
||||
|
||||
postInstall = ''
|
||||
@@ -248,7 +248,7 @@ rec {
|
||||
|
||||
cmake = map (version:
|
||||
callPackage ./cmake.nix {
|
||||
inherit deployAndroidPackage os;
|
||||
inherit deployAndroidPackage os meta;
|
||||
package = check-version packages "cmake" version;
|
||||
}
|
||||
) cmakeVersions;
|
||||
@@ -256,7 +256,7 @@ rec {
|
||||
# Creates a NDK bundle.
|
||||
makeNdkBundle = ndkVersion:
|
||||
callPackage ./ndk-bundle {
|
||||
inherit deployAndroidPackage os platform-tools;
|
||||
inherit deployAndroidPackage os platform-tools meta;
|
||||
package = packages.ndk-bundle.${ndkVersion} or packages.ndk.${ndkVersion};
|
||||
};
|
||||
|
||||
@@ -344,7 +344,7 @@ rec {
|
||||
by an environment variable for a single invocation of the nix tools.
|
||||
$ export NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1
|
||||
'' else callPackage ./cmdline-tools.nix {
|
||||
inherit deployAndroidPackage os;
|
||||
inherit deployAndroidPackage os meta;
|
||||
|
||||
package = cmdline-tools-package;
|
||||
|
||||
@@ -369,7 +369,7 @@ rec {
|
||||
package = addons.extras.${identifier};
|
||||
path = package.path;
|
||||
extras = callPackage ./extras.nix {
|
||||
inherit deployAndroidPackage package os;
|
||||
inherit deployAndroidPackage package os meta;
|
||||
};
|
||||
in
|
||||
''
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs ? import <nixpkgs> { },
|
||||
licenseAccepted ?
|
||||
config.android_sdk.accept_license or (builtins.getEnv "NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE" == "1"),
|
||||
licenseAccepted ? config.android_sdk.accept_license or (builtins.getEnv "NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE" == "1"),
|
||||
}:
|
||||
|
||||
rec {
|
||||
lib.recurseIntoAttrs rec {
|
||||
composeAndroidPackages = pkgs.callPackage ./compose-android-packages.nix {
|
||||
inherit licenseAccepted;
|
||||
inherit licenseAccepted meta;
|
||||
};
|
||||
|
||||
buildApp = pkgs.callPackage ./build-app.nix {
|
||||
inherit composeAndroidPackages;
|
||||
inherit composeAndroidPackages meta;
|
||||
};
|
||||
|
||||
emulateApp = pkgs.callPackage ./emulate-app.nix {
|
||||
inherit composeAndroidPackages;
|
||||
inherit composeAndroidPackages meta;
|
||||
};
|
||||
|
||||
androidPkgs = composeAndroidPackages {
|
||||
@@ -40,12 +40,16 @@ rec {
|
||||
system == "x86_64-linux" || system == "x86_64-darwin" || system == "aarch64-darwin";
|
||||
};
|
||||
|
||||
test-suite = pkgs.callPackage ./test-suite.nix { };
|
||||
test-suite = pkgs.callPackage ./test-suite.nix {
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
meta = with pkgs.lib; {
|
||||
description = "Android SDK & sdkmanager";
|
||||
homepage = "https://developer.android.com/tools/sdkmanager";
|
||||
maintainers = with maintainers; [
|
||||
meta = {
|
||||
homepage = "https://developer.android.com/tools";
|
||||
description = "Android SDK tools, packaged in Nixpkgs";
|
||||
license = lib.licenses.unfree;
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = with lib.maintainers; [
|
||||
numinit
|
||||
hadilq
|
||||
];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{stdenv, lib, unzip, mkLicenses}:
|
||||
{packages, nativeBuildInputs ? [], buildInputs ? [], patchesInstructions ? {}, meta ? {}, ...}@args:
|
||||
{stdenv, lib, unzip, mkLicenses, meta}:
|
||||
{packages, nativeBuildInputs ? [], buildInputs ? [], patchesInstructions ? {}, ...}@args:
|
||||
|
||||
let
|
||||
extraParams = removeAttrs args [ "packages" "os" "buildInputs" "nativeBuildInputs" "patchesInstructions" ];
|
||||
@@ -108,7 +108,5 @@ stdenv.mkDerivation ({
|
||||
dontPatchELF = true;
|
||||
dontAutoPatchelf = true;
|
||||
|
||||
meta = {
|
||||
description = lib.concatMapStringsSep "\n" (package: package.displayName) packages;
|
||||
} // meta;
|
||||
inherit meta;
|
||||
} // extraParams)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
stdenv,
|
||||
lib,
|
||||
runtimeShell,
|
||||
meta,
|
||||
}:
|
||||
{
|
||||
name,
|
||||
@@ -195,5 +196,7 @@ stdenv.mkDerivation {
|
||||
chmod +x $out/bin/run-test-emulator
|
||||
'';
|
||||
|
||||
meta.mainProgram = "run-test-emulator";
|
||||
meta = meta // {
|
||||
mainProgram = "run-test-emulator";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ deployAndroidPackage, lib, stdenv, package, os, autoPatchelfHook, makeWrapper, pkgs, pkgsi686Linux, postInstall }:
|
||||
{ deployAndroidPackage, lib, stdenv, package, os, autoPatchelfHook, makeWrapper, pkgs, pkgsi686Linux, postInstall, meta }:
|
||||
|
||||
deployAndroidPackage {
|
||||
inherit package;
|
||||
@@ -69,4 +69,6 @@ deployAndroidPackage {
|
||||
${postInstall}
|
||||
'';
|
||||
dontMoveLib64 = true;
|
||||
|
||||
inherit meta;
|
||||
}
|
||||
|
||||
@@ -27,14 +27,6 @@
|
||||
|
||||
# Copy this file to your Android project.
|
||||
let
|
||||
# Declaration of versions for everything. This is useful since these
|
||||
# versions may be used in multiple places in this Nix expression.
|
||||
android = {
|
||||
platforms = [ "35" ];
|
||||
systemImageTypes = [ "google_apis" ];
|
||||
abis = [ "x86_64" ];
|
||||
};
|
||||
|
||||
# If you copy this example out of nixpkgs, something like this will work:
|
||||
/*
|
||||
androidEnvNixpkgs = fetchTarball {
|
||||
@@ -55,10 +47,6 @@ let
|
||||
};
|
||||
|
||||
sdkArgs = {
|
||||
platformVersions = android.platforms;
|
||||
abiVersions = android.abis;
|
||||
systemImageTypes = android.systemImageTypes;
|
||||
|
||||
includeSystemImages = true;
|
||||
includeEmulator = true;
|
||||
|
||||
@@ -133,7 +121,7 @@ pkgs.mkShell rec {
|
||||
echo "installed_packages_section: ''${installed_packages_section}"
|
||||
|
||||
packages=(
|
||||
"build-tools;35.0.0" "cmdline-tools;13.0" \
|
||||
"build-tools" "cmdline-tools" \
|
||||
"emulator" "platform-tools" "platforms;android-35" \
|
||||
"system-images;android-35;google_apis;x86_64"
|
||||
)
|
||||
|
||||
@@ -26,17 +26,6 @@
|
||||
|
||||
# Copy this file to your Android project.
|
||||
let
|
||||
# Declaration of versions for everything. This is useful since these
|
||||
# versions may be used in multiple places in this Nix expression.
|
||||
android = {
|
||||
versions = {
|
||||
cmdLineToolsVersion = "13.0";
|
||||
platformTools = "35.0.2";
|
||||
buildTools = "35.0.0";
|
||||
};
|
||||
platforms = [ "35" ];
|
||||
};
|
||||
|
||||
# If you copy this example out of nixpkgs, something like this will work:
|
||||
/*
|
||||
androidEnvNixpkgs = fetchTarball {
|
||||
@@ -57,10 +46,6 @@ let
|
||||
};
|
||||
|
||||
sdkArgs = {
|
||||
cmdLineToolsVersion = android.versions.cmdLineToolsVersion;
|
||||
platformToolsVersion = android.versions.platformTools;
|
||||
buildToolsVersions = [ android.versions.buildTools ];
|
||||
platformVersions = android.platforms;
|
||||
includeNDK = false;
|
||||
includeSystemImages = false;
|
||||
includeEmulator = false;
|
||||
@@ -126,7 +111,7 @@ pkgs.mkShell {
|
||||
echo "installed_packages_section: ''${installed_packages_section}"
|
||||
|
||||
packages=(
|
||||
"build-tools;35.0.0" "cmdline-tools;13.0" \
|
||||
"build-tools" "cmdline-tools" \
|
||||
"platform-tools" "platforms;android-35"
|
||||
)
|
||||
|
||||
|
||||
@@ -24,28 +24,6 @@
|
||||
|
||||
# Copy this file to your Android project.
|
||||
let
|
||||
# Declaration of versions for everything. This is useful since these
|
||||
# versions may be used in multiple places in this Nix expression.
|
||||
android = {
|
||||
versions = {
|
||||
cmdLineToolsVersion = "13.0";
|
||||
platformTools = "35.0.2";
|
||||
buildTools = "35.0.0";
|
||||
ndk = [
|
||||
"27.0.12077973"
|
||||
];
|
||||
cmake = "3.6.4111459";
|
||||
emulator = "35.1.4";
|
||||
};
|
||||
|
||||
platforms = [ "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" "35" ];
|
||||
abis = [ "x86_64" ];
|
||||
extras = [
|
||||
"extras;google;gcm"
|
||||
"extras;google;auto"
|
||||
];
|
||||
};
|
||||
|
||||
# If you copy this example out of nixpkgs, something like this will work:
|
||||
/*androidEnvNixpkgs = fetchTarball {
|
||||
name = "androidenv";
|
||||
@@ -64,23 +42,13 @@ let
|
||||
};
|
||||
|
||||
androidComposition = androidEnv.composeAndroidPackages {
|
||||
cmdLineToolsVersion = android.versions.cmdLineToolsVersion;
|
||||
platformToolsVersion = android.versions.platformTools;
|
||||
buildToolsVersions = [android.versions.buildTools];
|
||||
platformVersions = android.platforms;
|
||||
abiVersions = android.abis;
|
||||
|
||||
includeSources = true;
|
||||
includeSystemImages = true;
|
||||
includeEmulator = true;
|
||||
emulatorVersion = android.versions.emulator;
|
||||
|
||||
includeNDK = true;
|
||||
ndkVersions = android.versions.ndk;
|
||||
cmakeVersions = [android.versions.cmake];
|
||||
|
||||
useGoogleAPIs = true;
|
||||
includeExtras = android.extras;
|
||||
|
||||
platformVersions = [ "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" "35" ];
|
||||
|
||||
# If you want to use a custom repo JSON:
|
||||
# repoJson = ../repo.json;
|
||||
@@ -99,6 +67,11 @@ let
|
||||
addons = [ ../xml/addon2-1.xml ];
|
||||
};*/
|
||||
|
||||
includeExtras = [
|
||||
"extras;google;gcm"
|
||||
"extras;google;auto"
|
||||
];
|
||||
|
||||
# Accepting more licenses declaratively:
|
||||
extraLicenses = [
|
||||
# Already accepted for you with the global accept_license = true or
|
||||
@@ -132,12 +105,12 @@ pkgs.mkShell rec {
|
||||
ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk";
|
||||
ANDROID_NDK_ROOT = "${ANDROID_SDK_ROOT}/ndk-bundle";
|
||||
|
||||
# Ensures that we don't have to use a FHS env by using the nix store's aapt2.
|
||||
GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/${android.versions.buildTools}/aapt2";
|
||||
|
||||
shellHook = ''
|
||||
# Ensures that we don't have to use a FHS env by using the nix store's aapt2.
|
||||
export GRADLE_OPTS="-Dorg.gradle.project.android.aapt2FromMavenOverride=$(echo "$ANDROID_SDK_ROOT/build-tools/"*"/aapt2")"
|
||||
|
||||
# Add cmake to the path.
|
||||
cmake_root="$(echo "$ANDROID_SDK_ROOT/cmake/${android.versions.cmake}"*/)"
|
||||
cmake_root="$(echo "$ANDROID_SDK_ROOT/cmake/"*/)"
|
||||
export PATH="$cmake_root/bin:$PATH"
|
||||
|
||||
# Write out local.properties for Android Studio.
|
||||
@@ -169,7 +142,7 @@ pkgs.mkShell rec {
|
||||
|
||||
# FIXME couldn't find platforms;android-34, even though it's in the correct directory!! sdkmanager's bug?!
|
||||
packages=(
|
||||
"build-tools;35.0.0" "platform-tools" \
|
||||
"build-tools" "platform-tools" \
|
||||
"platforms;android-23" "platforms;android-24" "platforms;android-25" "platforms;android-26" \
|
||||
"platforms;android-27" "platforms;android-28" "platforms;android-29" "platforms;android-30" \
|
||||
"platforms;android-31" "platforms;android-32" "platforms;android-33" "platforms;android-35" \
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
autoPatchelfHook,
|
||||
makeWrapper,
|
||||
pkgs,
|
||||
meta,
|
||||
}:
|
||||
|
||||
deployAndroidPackage {
|
||||
@@ -36,4 +37,6 @@ deployAndroidPackage {
|
||||
}
|
||||
fi
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
./fetchrepo.sh && ./mkrepo.sh
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
require 'json'
|
||||
require 'rubygems'
|
||||
require 'nokogiri'
|
||||
require 'slop'
|
||||
|
||||
@@ -467,6 +468,18 @@ opts[:addons].each do |filename|
|
||||
merge result['extras'], extras
|
||||
end
|
||||
|
||||
result['latest'] = {}
|
||||
result['packages'].each do |name, versions|
|
||||
max_version = Gem::Version.new('0')
|
||||
versions.each do |version, package|
|
||||
if package['license'] == 'android-sdk-license' && Gem::Version.correct?(package['revision'])
|
||||
package_version = Gem::Version.new(package['revision'])
|
||||
max_version = package_version if package_version > max_version
|
||||
end
|
||||
end
|
||||
result['latest'][name] = max_version.to_s
|
||||
end
|
||||
|
||||
# As we keep the old packages in the repo JSON file, we should have
|
||||
# a strategy to remove them at some point!
|
||||
# So with this variable we claim it's okay to remove them from the
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ stdenv, lib, pkgs, pkgsHostHost, makeWrapper, autoPatchelfHook
|
||||
, deployAndroidPackage, package, os, platform-tools
|
||||
, deployAndroidPackage, package, os, platform-tools, meta
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -74,4 +74,6 @@ deployAndroidPackage rec {
|
||||
+ lib.optionalString stdenv.hostPlatform.isLinux patchElfBnaries;
|
||||
|
||||
noAuditTmpdir = true; # Audit script gets invoked by the build/ component in the path for the make standalone script
|
||||
|
||||
inherit meta;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{deployAndroidPackage, lib, package, os, autoPatchelfHook, pkgs}:
|
||||
{deployAndroidPackage, lib, package, os, autoPatchelfHook, pkgs, meta}:
|
||||
|
||||
deployAndroidPackage {
|
||||
inherit package;
|
||||
@@ -17,4 +17,5 @@ deployAndroidPackage {
|
||||
ln -s $i
|
||||
done
|
||||
'';
|
||||
inherit meta;
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -2,6 +2,7 @@
|
||||
callPackage,
|
||||
lib,
|
||||
stdenv,
|
||||
meta,
|
||||
}:
|
||||
let
|
||||
examples-shell = callPackage ./examples/shell.nix { licenseAccepted = true; };
|
||||
@@ -25,5 +26,14 @@ stdenv.mkDerivation {
|
||||
|
||||
passthru.tests = all-tests;
|
||||
|
||||
meta.timeout = 60;
|
||||
# This is the toplevel package, so inherit the update script
|
||||
passthru.updateScript = {
|
||||
command = [ ./update.sh ];
|
||||
attrPath = "androidenv.test-suite";
|
||||
supportedFeatures = [ "commit" ];
|
||||
};
|
||||
|
||||
meta = meta // {
|
||||
timeout = 60;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{deployAndroidPackage, lib, stdenv, package, autoPatchelfHook, makeWrapper, os, pkgs, pkgsi686Linux, postInstall}:
|
||||
{deployAndroidPackage, lib, stdenv, package, autoPatchelfHook, makeWrapper, os, pkgs, pkgsi686Linux, postInstall, meta}:
|
||||
|
||||
deployAndroidPackage {
|
||||
name = "androidsdk-tools";
|
||||
@@ -40,5 +40,5 @@ deployAndroidPackage {
|
||||
${postInstall}
|
||||
'';
|
||||
|
||||
meta.license = lib.licenses.unfree;
|
||||
inherit meta;
|
||||
}
|
||||
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
pushd "$(dirname "$0")" &>/dev/null || exit 1
|
||||
./fetchrepo.sh && ./mkrepo.sh
|
||||
popd &>/dev/null
|
||||
Reference in New Issue
Block a user