about summary refs log tree commit diff
path: root/pkgs/development/mobile
diff options
context:
space:
mode:
authorSander van der Burg <svanderburg@gmail.com>2016-02-01 15:11:28 +0000
committerSander van der Burg <svanderburg@gmail.com>2016-02-01 15:11:28 +0000
commit4d0e732168d1747f2d01fac74d70b7f112a247f4 (patch)
tree9a28e253d17f76601150425348642154b424ac20 /pkgs/development/mobile
parent0c5ad78c18526425d57f3052790a53f67a3e2749 (diff)
titaniumenv: fix android builds on darwin and get rid of allowUnfree since the OpenJDK just works fine
Diffstat (limited to 'pkgs/development/mobile')
-rw-r--r--pkgs/development/mobile/titaniumenv/build-app.nix29
-rw-r--r--pkgs/development/mobile/titaniumenv/examples/default.nix13
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 53fce61a999ee..934d032e47918 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 <<EOF
+      #! ${stdenv.shell} -e
+      
+      if [ "\$1" = "-version" ]
+      then
+          ${jdk}/bin/javac "\$@" 2>&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 6dd80a216ded5..ffeefdbbbcfa3 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 {