From 4d0e732168d1747f2d01fac74d70b7f112a247f4 Mon Sep 17 00:00:00 2001 From: Sander van der Burg Date: Mon, 1 Feb 2016 15:11:28 +0000 Subject: [PATCH] titaniumenv: fix android builds on darwin and get rid of allowUnfree since the OpenJDK just works fine --- .../mobile/titaniumenv/build-app.nix | 29 +++++++++++++++++++ .../mobile/titaniumenv/examples/default.nix | 13 ++++----- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/pkgs/development/mobile/titaniumenv/build-app.nix b/pkgs/development/mobile/titaniumenv/build-app.nix index 53fce61a999..934d032e479 100644 --- a/pkgs/development/mobile/titaniumenv/build-app.nix +++ b/pkgs/development/mobile/titaniumenv/build-app.nix @@ -20,6 +20,28 @@ let security default-keychain -s login.keychain security delete-keychain $keychainName ''; + + # On Mac OS X, the java executable shows an -unoffical postfix in the version + # number. This confuses the build script's version detector. + # We fix this by creating a wrapper that strips it out of the output. + + javaVersionFixWrapper = stdenv.mkDerivation { + name = "javaVersionFixWrapper"; + buildCommand = '' + mkdir -p $out/bin + cat > $out/bin/javac <&1 | sed "s|-unofficial||" | sed "s|-u60|_60|" >&2 + else + exec ${jdk}/bin/javac "\$@" + fi + EOF + chmod +x $out/bin/javac + ''; + }; in stdenv.mkDerivation { name = stdenv.lib.replaceChars [" "] [""] name; @@ -49,6 +71,13 @@ stdenv.mkDerivation { ${if target == "android" then '' + ${stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") '' + # Hack to make version detection work with OpenJDK on Mac OS X + export PATH=${javaVersionFixWrapper}/bin:$PATH + export JAVA_HOME=${javaVersionFixWrapper} + javac -version + ''} + titanium config --config-file $TMPDIR/config.json --no-colors android.sdk ${androidsdkComposition}/libexec/android-sdk-* titanium config --config-file $TMPDIR/config.json --no-colors android.buildTools.selectedVersion 23.0.1 diff --git a/pkgs/development/mobile/titaniumenv/examples/default.nix b/pkgs/development/mobile/titaniumenv/examples/default.nix index 6dd80a216de..ffeefdbbbcf 100644 --- a/pkgs/development/mobile/titaniumenv/examples/default.nix +++ b/pkgs/development/mobile/titaniumenv/examples/default.nix @@ -5,17 +5,16 @@ , tiVersion ? "5.1.2.GA" , rename ? false , newBundleId ? "com.example.kitchensink", iosMobileProvisioningProfile ? null, iosCertificate ? null, iosCertificateName ? "Example", iosCertificatePassword ? "", iosVersion ? "9.2" -, allowUnfree ? false , enableWirelessDistribution ? false, installURL ? null }: let - pkgs = import nixpkgs { config.allowUnfree = allowUnfree; }; + pkgs = import nixpkgs {}; in rec { kitchensink_android_debug = pkgs.lib.genAttrs systems (system: let - pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; }; + pkgs = import nixpkgs { inherit system; }; in import ./kitchensink { inherit (pkgs) fetchgit; @@ -26,7 +25,7 @@ rec { kitchensink_android_release = pkgs.lib.genAttrs systems (system: let - pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; }; + pkgs = import nixpkgs { inherit system; }; in import ./kitchensink { inherit (pkgs) fetchgit; @@ -38,7 +37,7 @@ rec { emulate_kitchensink_debug = pkgs.lib.genAttrs systems (system: let - pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; }; + pkgs = import nixpkgs { inherit system; }; in import ./emulate-kitchensink { inherit (pkgs) androidenv; @@ -47,7 +46,7 @@ rec { emulate_kitchensink_release = pkgs.lib.genAttrs systems (system: let - pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; }; + pkgs = import nixpkgs { inherit system; }; in import ./emulate-kitchensink { inherit (pkgs) androidenv; @@ -74,7 +73,7 @@ rec { }; } else {}) // (if rename then let - pkgs = import nixpkgs { system = "x86_64-darwin"; config.allowUnfree = allowUnfree; }; + pkgs = import nixpkgs { system = "x86_64-darwin"; }; in { kitchensink_ipa = import ./kitchensink {