aboutsummaryrefslogtreecommitdiff
path: root/pkgs/development/mobile
diff options
context:
space:
mode:
authorVladimír Čunát <v@cunat.cz>2019-08-24 08:19:05 +0200
committerVladimír Čunát <v@cunat.cz>2019-08-24 08:55:37 +0200
commit2e6bf42a2207d5ecfe6e67de2def6e004a0eb1f1 (patch)
tree36de0660dc2c9f3731bd8b60ec852ca0c452efce /pkgs/development/mobile
parent84a91208a948be5eca97ea182c4256d9d6ecf171 (diff)
parent8943fb5f24b9e1aa1d577be4e214d166643269fd (diff)
Merge branch 'master' into staging-next
There ver very many conflicts, basically all due to name -> pname+version. Fortunately, almost everything was auto-resolved by kdiff3, and for now I just fixed up a couple evaluation problems, as verified by the tarball job. There might be some fallback to these conflicts, but I believe it should be minimal. Hydra nixpkgs: ?compare=1538299
Diffstat (limited to 'pkgs/development/mobile')
-rw-r--r--pkgs/development/mobile/androidenv/build-app.nix8
-rw-r--r--pkgs/development/mobile/androidenv/compose-android-packages.nix57
-rw-r--r--pkgs/development/mobile/androidenv/default.nix4
-rw-r--r--pkgs/development/mobile/androidenv/emulate-app.nix49
-rw-r--r--pkgs/development/mobile/xpwn/default.nix20
5 files changed, 69 insertions, 69 deletions
diff --git a/pkgs/development/mobile/androidenv/build-app.nix b/pkgs/development/mobile/androidenv/build-app.nix
index 62cdeb43032..6f4b32b486b 100644
--- a/pkgs/development/mobile/androidenv/build-app.nix
+++ b/pkgs/development/mobile/androidenv/build-app.nix
@@ -1,4 +1,4 @@
-{ composeAndroidPackages, stdenv, ant, jdk, gnumake, gawk }:
+{ composeAndroidPackages, stdenv, lib, ant, jdk, gnumake, gawk }:
{ name
, release ? false, keyStore ? null, keyAlias ? null, keyStorePassword ? null, keyAliasPassword ? null
@@ -16,11 +16,11 @@ let
extraArgs = removeAttrs args ([ "name" ] ++ builtins.attrNames androidSdkFormalArgs);
in
stdenv.mkDerivation ({
- name = stdenv.lib.replaceChars [" "] [""] name; # Android APKs may contain white spaces in their names, but Nix store paths cannot
+ name = lib.replaceChars [" "] [""] name; # Android APKs may contain white spaces in their names, but Nix store paths cannot
ANDROID_HOME = "${androidsdk}/libexec/android-sdk";
buildInputs = [ jdk ant ];
buildPhase = ''
- ${stdenv.lib.optionalString release ''
+ ${lib.optionalString release ''
# Provide key singing attributes
( echo "key.store=${keyStore}"
echo "key.alias=${keyAlias}"
@@ -31,7 +31,7 @@ stdenv.mkDerivation ({
export ANDROID_SDK_HOME=`pwd` # Key files cannot be stored in the user's home directory. This overrides it.
- ${stdenv.lib.optionalString (args ? includeNDK && args.includeNDK) ''
+ ${lib.optionalString (args ? includeNDK && args.includeNDK) ''
export GNUMAKE=${gnumake}/bin/make
export NDK_HOST_AWK=${gawk}/bin/gawk
${androidsdk}/libexec/android-sdk/ndk-bundle/ndk-build
diff --git a/pkgs/development/mobile/androidenv/compose-android-packages.nix b/pkgs/development/mobile/androidenv/compose-android-packages.nix
index e5802c12e81..6e6a349cccc 100644
--- a/pkgs/development/mobile/androidenv/compose-android-packages.nix
+++ b/pkgs/development/mobile/androidenv/compose-android-packages.nix
@@ -21,7 +21,7 @@
}:
let
- inherit (pkgs) stdenv fetchurl makeWrapper unzip;
+ inherit (pkgs) stdenv lib fetchurl makeWrapper unzip;
# Determine the Android os identifier from Nix's system identifier
os = if stdenv.system == "x86_64-linux" then "linux"
@@ -59,12 +59,12 @@ let
};
system-images-packages =
- stdenv.lib.recursiveUpdate
+ lib.recursiveUpdate
system-images-packages-android
- (stdenv.lib.recursiveUpdate system-images-packages-android-tv
- (stdenv.lib.recursiveUpdate system-images-packages-android-wear
- (stdenv.lib.recursiveUpdate system-images-packages-android-wear-cn
- (stdenv.lib.recursiveUpdate system-images-packages-google_apis system-images-packages-google_apis_playstore))));
+ (lib.recursiveUpdate system-images-packages-android-tv
+ (lib.recursiveUpdate system-images-packages-android-wear
+ (lib.recursiveUpdate system-images-packages-android-wear-cn
+ (lib.recursiveUpdate system-images-packages-google_apis system-images-packages-google_apis_playstore))));
# Generated addons
addons = import ./generated/addons.nix {
@@ -77,15 +77,13 @@ rec {
};
platform-tools = import ./platform-tools.nix {
- inherit deployAndroidPackage os autoPatchelfHook pkgs;
- inherit (stdenv) lib;
+ inherit deployAndroidPackage os autoPatchelfHook pkgs lib;
package = packages.platform-tools."${platformToolsVersion}";
};
build-tools = map (version:
import ./build-tools.nix {
- inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686;
- inherit (stdenv) lib;
+ inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686 lib;
package = packages.build-tools."${version}";
}
) buildToolsVersions;
@@ -96,8 +94,7 @@ rec {
};
emulator = import ./emulator.nix {
- inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686;
- inherit (stdenv) lib;
+ inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686 lib;
package = packages.emulator."${emulatorVersion}"."${os}";
};
@@ -115,12 +112,18 @@ rec {
}
) platformVersions;
- system-images = stdenv.lib.flatten (map (apiVersion:
+ system-images = lib.flatten (map (apiVersion:
map (type:
map (abiVersion:
deployAndroidPackage {
inherit os;
package = system-images-packages.${apiVersion}.${type}.${abiVersion};
+ # Patch 'google_apis' system images so they're recognized by the sdk.
+ # Without this, `android list targets` shows 'Tag/ABIs : no ABIs' instead
+ # of 'Tag/ABIs : google_apis*/*' and the emulator fails with an ABI-related error.
+ patchInstructions = lib.optionalString (lib.hasPrefix "google_apis" type) ''
+ sed -i '/^Addon.Vendor/d' source.properties
+ '';
}
) abiVersions
) systemImageTypes
@@ -128,23 +131,20 @@ rec {
lldb = map (version:
import ./lldb.nix {
- inherit deployAndroidPackage os autoPatchelfHook pkgs;
- inherit (stdenv) lib;
+ inherit deployAndroidPackage os autoPatchelfHook pkgs lib;
package = packages.lldb."${version}";
}
) lldbVersions;
cmake = map (version:
import ./cmake.nix {
- inherit deployAndroidPackage os autoPatchelfHook pkgs;
- inherit (stdenv) lib;
+ inherit deployAndroidPackage os autoPatchelfHook pkgs lib;
package = packages.cmake."${version}";
}
) cmakeVersions;
ndk-bundle = import ./ndk-bundle {
- inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs platform-tools;
- inherit (stdenv) lib;
+ inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs lib platform-tools;
package = packages.ndk-bundle."${ndkVersion}";
};
@@ -164,24 +164,24 @@ rec {
# Function that automatically links all plugins for which multiple versions can coexist
linkPlugins = {name, plugins}:
- stdenv.lib.optionalString (plugins != []) ''
+ lib.optionalString (plugins != []) ''
mkdir -p ${name}
- ${stdenv.lib.concatMapStrings (plugin: ''
+ ${lib.concatMapStrings (plugin: ''
ln -s ${plugin}/libexec/android-sdk/${name}/* ${name}
'') plugins}
'';
# Function that automatically links a plugin for which only one version exists
linkPlugin = {name, plugin, check ? true}:
- stdenv.lib.optionalString check ''
+ lib.optionalString check ''
ln -s ${plugin}/libexec/android-sdk/* ${name}
'';
# Links all plugins related to a requested platform
linkPlatformPlugins = {name, plugins, check}:
- stdenv.lib.optionalString check ''
+ lib.optionalString check ''
mkdir -p ${name}
- ${stdenv.lib.concatMapStrings (plugin: ''
+ ${lib.concatMapStrings (plugin: ''
ln -s ${plugin}/libexec/android-sdk/${name}/* ${name}
'') plugins}
''; # */
@@ -194,8 +194,7 @@ rec {
https://developer.android.com/studio/terms
by setting nixpkgs config option 'android_sdk.accept_license = true;'
'' else import ./tools.nix {
- inherit deployAndroidPackage requireFile packages toolsVersion autoPatchelfHook makeWrapper os pkgs pkgs_i686;
- inherit (stdenv) lib;
+ inherit deployAndroidPackage requireFile packages toolsVersion autoPatchelfHook makeWrapper os pkgs pkgs_i686 lib;
postInstall = ''
# Symlink all requested plugins
@@ -210,9 +209,9 @@ rec {
${linkPlugins { name = "cmake"; plugins = cmake; }}
${linkPlugin { name = "ndk-bundle"; plugin = ndk-bundle; check = includeNDK; }}
- ${stdenv.lib.optionalString includeSystemImages ''
+ ${lib.optionalString includeSystemImages ''
mkdir -p system-images
- ${stdenv.lib.concatMapStrings (system-image: ''
+ ${lib.concatMapStrings (system-image: ''
apiVersion=$(basename $(echo ${system-image}/libexec/android-sdk/system-images/*))
type=$(basename $(echo ${system-image}/libexec/android-sdk/system-images/*/*))
mkdir -p system-images/$apiVersion/$type
@@ -224,7 +223,7 @@ rec {
${linkPlatformPlugins { name = "add-ons"; plugins = google-apis; check = useGoogleTVAddOns; }}
# Link extras
- ${stdenv.lib.concatMapStrings (identifier:
+ ${lib.concatMapStrings (identifier:
let
path = addons.extras."${identifier}".path;
addon = deployAndroidPackage {
diff --git a/pkgs/development/mobile/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix
index b0516746071..14882bc2243 100644
--- a/pkgs/development/mobile/androidenv/default.nix
+++ b/pkgs/development/mobile/androidenv/default.nix
@@ -10,12 +10,12 @@ rec {
};
buildApp = import ./build-app.nix {
- inherit (pkgs) stdenv jdk ant gnumake gawk;
+ inherit (pkgs) stdenv lib jdk ant gnumake gawk;
inherit composeAndroidPackages;
};
emulateApp = import ./emulate-app.nix {
- inherit (pkgs) stdenv;
+ inherit (pkgs) stdenv lib;
inherit composeAndroidPackages;
};
diff --git a/pkgs/development/mobile/androidenv/emulate-app.nix b/pkgs/development/mobile/androidenv/emulate-app.nix
index 6c8f6d664d7..fa9a56fadba 100644
--- a/pkgs/development/mobile/androidenv/emulate-app.nix
+++ b/pkgs/development/mobile/androidenv/emulate-app.nix
@@ -1,24 +1,21 @@
-{ composeAndroidPackages, stdenv }:
+{ composeAndroidPackages, stdenv, lib }:
{ name, app ? null
-, platformVersion ? "16", abiVersion ? "armeabi-v7a", systemImageType ? "default", useGoogleAPIs ? false
+, platformVersion ? "16", abiVersion ? "armeabi-v7a", systemImageType ? "default"
, enableGPU ? false, extraAVDFiles ? []
, package ? null, activity ? null
-, avdHomeDir ? null
-}@args:
+, avdHomeDir ? null, sdkExtraArgs ? {}
+}:
let
- androidSdkArgNames = builtins.attrNames (builtins.functionArgs composeAndroidPackages);
-
- # Extract the parameters meant for the Android SDK
- androidParams = {
+ sdkArgs = {
platformVersions = [ platformVersion ];
includeEmulator = true;
includeSystemImages = true;
systemImageTypes = [ systemImageType ];
abiVersions = [ abiVersion ];
- };
+ } // sdkExtraArgs;
- androidsdkComposition = (composeAndroidPackages androidParams).androidsdk;
+ sdk = (composeAndroidPackages sdkArgs).androidsdk;
in
stdenv.mkDerivation {
inherit name;
@@ -44,7 +41,7 @@ stdenv.mkDerivation {
''}
# We need to specify the location of the Android SDK root folder
- export ANDROID_SDK_ROOT=${androidsdkComposition}/libexec/android-sdk
+ export ANDROID_SDK_ROOT=${sdk}/libexec/android-sdk
# We have to look for a free TCP port
@@ -52,7 +49,7 @@ stdenv.mkDerivation {
for i in $(seq 5554 2 5584)
do
- if [ -z "$(${androidsdkComposition}/libexec/android-sdk/platform-tools/adb devices | grep emulator-$i)" ]
+ if [ -z "$(${sdk}/libexec/android-sdk/platform-tools/adb devices | grep emulator-$i)" ]
then
port=$i
break
@@ -70,41 +67,41 @@ stdenv.mkDerivation {
export ANDROID_SERIAL="emulator-$port"
# Create a virtual android device for testing if it does not exists
- ${androidsdkComposition}/libexec/android-sdk/tools/android list targets
+ ${sdk}/libexec/android-sdk/tools/android list targets
- if [ "$(${androidsdkComposition}/libexec/android-sdk/tools/android list avd | grep 'Name: device')" = "" ]
+ if [ "$(${sdk}/libexec/android-sdk/tools/android list avd | grep 'Name: device')" = "" ]
then
# Create a virtual android device
- yes "" | ${androidsdkComposition}/libexec/android-sdk/tools/android create avd -n device -t 1 --abi ${systemImageType}/${abiVersion} $NIX_ANDROID_AVD_FLAGS
+ yes "" | ${sdk}/libexec/android-sdk/tools/android create avd -n device -t 1 --abi ${systemImageType}/${abiVersion} $NIX_ANDROID_AVD_FLAGS
- ${stdenv.lib.optionalString enableGPU ''
+ ${lib.optionalString enableGPU ''
# Enable GPU acceleration
echo "hw.gpu.enabled=yes" >> $ANDROID_SDK_HOME/.android/avd/device.avd/config.ini
''}
- ${stdenv.lib.concatMapStrings (extraAVDFile: ''
+ ${lib.concatMapStrings (extraAVDFile: ''
ln -sf ${extraAVDFile} $ANDROID_SDK_HOME/.android/avd/device.avd
'') extraAVDFiles}
fi
# Launch the emulator
- ${androidsdkComposition}/libexec/android-sdk/emulator/emulator -avd device -no-boot-anim -port $port $NIX_ANDROID_EMULATOR_FLAGS &
+ ${sdk}/libexec/android-sdk/emulator/emulator -avd device -no-boot-anim -port $port $NIX_ANDROID_EMULATOR_FLAGS &
# Wait until the device has completely booted
echo "Waiting until the emulator has booted the device and the package manager is ready..." >&2
- ${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port wait-for-device
+ ${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port wait-for-device
echo "Device state has been reached" >&2
- while [ -z "$(${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell getprop dev.bootcomplete | grep 1)" ]
+ while [ -z "$(${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell getprop dev.bootcomplete | grep 1)" ]
do
sleep 5
done
echo "dev.bootcomplete property is 1" >&2
- #while [ -z "$(${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell getprop sys.boot_completed | grep 1)" ]
+ #while [ -z "$(${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell getprop sys.boot_completed | grep 1)" ]
#do
#sleep 5
#done
@@ -113,10 +110,10 @@ stdenv.mkDerivation {
echo "ready" >&2
- ${stdenv.lib.optionalString (app != null) ''
+ ${lib.optionalString (app != null) ''
# Install the App through the debugger, if it has not been installed yet
- if [ -z "${package}" ] || [ "$(${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell pm list packages | grep package:${package})" = "" ]
+ if [ -z "${package}" ] || [ "$(${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell pm list packages | grep package:${package})" = "" ]
then
if [ -d "${app}" ]
then
@@ -125,12 +122,12 @@ stdenv.mkDerivation {
appPath="${app}"
fi
- ${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port install "$appPath"
+ ${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port install "$appPath"
fi
# Start the application
- ${stdenv.lib.optionalString (package != null && activity != null) ''
- ${androidsdkComposition}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell am start -a android.intent.action.MAIN -n ${package}/${activity}
+ ${lib.optionalString (package != null && activity != null) ''
+ ${sdk}/libexec/android-sdk/platform-tools/adb -s emulator-$port shell am start -a android.intent.action.MAIN -n ${package}/${activity}
''}
''}
EOF
diff --git a/pkgs/development/mobile/xpwn/default.nix b/pkgs/development/mobile/xpwn/default.nix
index d62902e4f6e..9ec5977d594 100644
--- a/pkgs/development/mobile/xpwn/default.nix
+++ b/pkgs/development/mobile/xpwn/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, fetchgit, cmake, zlib, libpng, bzip2, libusb, openssl }:
+{ stdenv, fetchFromGitHub, cmake, zlib, libpng, bzip2, libusb, openssl }:
-stdenv.mkDerivation {
- name = "xpwn-0.5.8git";
+stdenv.mkDerivation rec {
+ pname = "xpwn";
+ version = "0.5.8git";
- src = fetchgit {
- url = "git://github.com/dborca/xpwn.git";
- rev = "4534da88d4e8a32cdc9da9b5326e2cc482c95ef0";
- sha256 = "1h1ak40fg5bym0hifpii9q2hqdp2m387cwfzb4bl6qq36xpkd6wv";
+ src = fetchFromGitHub {
+ owner = "planetbeing";
+ repo = pname;
+ rev = "ac362d4ffe4d0489a26144a1483ebf3b431da899";
+ sha256 = "1qw9vbk463fpnvvvfgzxmn9add2p30k832s09mlycr7z1hrh3wyf";
};
preConfigure = ''
@@ -18,7 +20,9 @@ stdenv.mkDerivation {
sed -i -e '/install/d' CMakeLists.txt
'';
- buildInputs = [ cmake zlib libpng bzip2 libusb openssl ];
+ strictDeps = true;
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ zlib libpng bzip2 libusb openssl ];
meta = with stdenv.lib; {
homepage = "http://planetbeing.lighthouseapp.com/projects/15246-xpwn";