summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorSander van der Burg <sander@conference-compass.com>2013-01-07 16:52:42 +0100
committerSander van der Burg <sander@conference-compass.com>2013-01-07 16:52:42 +0100
commit5b0ca88d97d005a73a2be38e7a521af70875a718 (patch)
treeb2eba8467fa5e1ecd1cac6ab8513582651647e44 /pkgs/development
parenta547de1ecb14853487d864f70ad5e6a1cb3ce08d (diff)
downloadnixpkgs-5b0ca88d97d005a73a2be38e7a521af70875a718.tar
nixpkgs-5b0ca88d97d005a73a2be38e7a521af70875a718.tar.gz
nixpkgs-5b0ca88d97d005a73a2be38e7a521af70875a718.tar.bz2
nixpkgs-5b0ca88d97d005a73a2be38e7a521af70875a718.tar.lz
nixpkgs-5b0ca88d97d005a73a2be38e7a521af70875a718.tar.xz
nixpkgs-5b0ca88d97d005a73a2be38e7a521af70875a718.tar.zst
nixpkgs-5b0ca88d97d005a73a2be38e7a521af70875a718.zip
- Added xcodeenv: experimental support to build iOS apps through Nix
- Moved mobile development tools into a separate folder
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/apr-util/default.nix2
-rw-r--r--pkgs/development/libraries/v8/default.nix7
-rw-r--r--pkgs/development/mobile/androidenv/addon.xml (renamed from pkgs/development/androidenv/addon.xml)0
-rw-r--r--pkgs/development/mobile/androidenv/addons.nix (renamed from pkgs/development/androidenv/addons.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/androidsdk.nix (renamed from pkgs/development/androidenv/androidsdk.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/build-app.nix (renamed from pkgs/development/androidenv/build-app.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/default.nix (renamed from pkgs/development/androidenv/default.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/emulate-app.nix (renamed from pkgs/development/androidenv/emulate-app.nix)0
-rwxr-xr-xpkgs/development/mobile/androidenv/generate-addons.sh (renamed from pkgs/development/androidenv/generate-addons.sh)0
-rw-r--r--pkgs/development/mobile/androidenv/generate-addons.xsl (renamed from pkgs/development/androidenv/generate-addons.xsl)0
-rwxr-xr-xpkgs/development/mobile/androidenv/generate-platforms.sh (renamed from pkgs/development/androidenv/generate-platforms.sh)0
-rw-r--r--pkgs/development/mobile/androidenv/generate-platforms.xsl (renamed from pkgs/development/androidenv/generate-platforms.xsl)0
-rwxr-xr-xpkgs/development/mobile/androidenv/generate-sysimages.sh (renamed from pkgs/development/androidenv/generate-sysimages.sh)0
-rw-r--r--pkgs/development/mobile/androidenv/generate-sysimages.xsl (renamed from pkgs/development/androidenv/generate-sysimages.xsl)0
-rw-r--r--pkgs/development/mobile/androidenv/platform-tools.nix (renamed from pkgs/development/androidenv/platform-tools.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/platforms-linux.nix (renamed from pkgs/development/androidenv/platforms-linux.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/platforms-macosx.nix (renamed from pkgs/development/androidenv/platforms-macosx.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/repository-7.xml (renamed from pkgs/development/androidenv/repository-7.xml)0
-rw-r--r--pkgs/development/mobile/androidenv/support.nix (renamed from pkgs/development/androidenv/support.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/sysimages.nix (renamed from pkgs/development/androidenv/sysimages.nix)0
-rw-r--r--pkgs/development/mobile/xcodeenv/build-app.nix92
-rw-r--r--pkgs/development/mobile/xcodeenv/default.nix15
-rw-r--r--pkgs/development/mobile/xcodeenv/simulate-app.nix17
-rw-r--r--pkgs/development/mobile/xcodeenv/xcodewrapper.nix24
-rw-r--r--pkgs/development/web/nodejs/default.nix15
25 files changed, 164 insertions, 8 deletions
diff --git a/pkgs/development/libraries/apr-util/default.nix b/pkgs/development/libraries/apr-util/default.nix
index ad02f9b84cc..be3a83975e5 100644
--- a/pkgs/development/libraries/apr-util/default.nix
+++ b/pkgs/development/libraries/apr-util/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, apr, expat
 , sslSupport ? true, openssl
 , bdbSupport ? false, db4
-, ldapSupport ? true, openldap
+, ldapSupport ? false, openldap
 }:
 
 assert sslSupport -> openssl != null;
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index 5cd083a7e33..34026806a52 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
     };
 
     configurePhase = ''
+      ${stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") "export PATH=/usr/bin:$PATH"}
       mkdir build/gyp
       ln -sv ${gyp}/bin/gyp build/gyp/gyp
     '';
@@ -37,7 +38,11 @@ stdenv.mkDerivation rec {
       mkdir -p $out/bin
       mkdir -p $out/lib
       mv -v out/${arch}.release/d8 $out/bin
-      mv -v out/${arch}.release/lib.target/libv8.so $out/lib
+
+      ${if stdenv.system == "x86_64-darwin" then
+        "mv -v out/${arch}.release/libv8.dylib $out/lib"
+      else
+        "mv -v out/${arch}.release/lib.target/libv8.so $out/lib"}
       mv -v include $out/
     '';
 }
diff --git a/pkgs/development/androidenv/addon.xml b/pkgs/development/mobile/androidenv/addon.xml
index fb5d324d778..fb5d324d778 100644
--- a/pkgs/development/androidenv/addon.xml
+++ b/pkgs/development/mobile/androidenv/addon.xml
diff --git a/pkgs/development/androidenv/addons.nix b/pkgs/development/mobile/androidenv/addons.nix
index f26db5c2cb7..f26db5c2cb7 100644
--- a/pkgs/development/androidenv/addons.nix
+++ b/pkgs/development/mobile/androidenv/addons.nix
diff --git a/pkgs/development/androidenv/androidsdk.nix b/pkgs/development/mobile/androidenv/androidsdk.nix
index e8e1f919fe4..e8e1f919fe4 100644
--- a/pkgs/development/androidenv/androidsdk.nix
+++ b/pkgs/development/mobile/androidenv/androidsdk.nix
diff --git a/pkgs/development/androidenv/build-app.nix b/pkgs/development/mobile/androidenv/build-app.nix
index 571cd2be623..571cd2be623 100644
--- a/pkgs/development/androidenv/build-app.nix
+++ b/pkgs/development/mobile/androidenv/build-app.nix
diff --git a/pkgs/development/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix
index a76deb98b6e..a76deb98b6e 100644
--- a/pkgs/development/androidenv/default.nix
+++ b/pkgs/development/mobile/androidenv/default.nix
diff --git a/pkgs/development/androidenv/emulate-app.nix b/pkgs/development/mobile/androidenv/emulate-app.nix
index 3cbe5723806..3cbe5723806 100644
--- a/pkgs/development/androidenv/emulate-app.nix
+++ b/pkgs/development/mobile/androidenv/emulate-app.nix
diff --git a/pkgs/development/androidenv/generate-addons.sh b/pkgs/development/mobile/androidenv/generate-addons.sh
index 9b2cf34eabc..9b2cf34eabc 100755
--- a/pkgs/development/androidenv/generate-addons.sh
+++ b/pkgs/development/mobile/androidenv/generate-addons.sh
diff --git a/pkgs/development/androidenv/generate-addons.xsl b/pkgs/development/mobile/androidenv/generate-addons.xsl
index 0100b980a4e..0100b980a4e 100644
--- a/pkgs/development/androidenv/generate-addons.xsl
+++ b/pkgs/development/mobile/androidenv/generate-addons.xsl
diff --git a/pkgs/development/androidenv/generate-platforms.sh b/pkgs/development/mobile/androidenv/generate-platforms.sh
index 983d8bde87b..983d8bde87b 100755
--- a/pkgs/development/androidenv/generate-platforms.sh
+++ b/pkgs/development/mobile/androidenv/generate-platforms.sh
diff --git a/pkgs/development/androidenv/generate-platforms.xsl b/pkgs/development/mobile/androidenv/generate-platforms.xsl
index 1802ae63efe..1802ae63efe 100644
--- a/pkgs/development/androidenv/generate-platforms.xsl
+++ b/pkgs/development/mobile/androidenv/generate-platforms.xsl
diff --git a/pkgs/development/androidenv/generate-sysimages.sh b/pkgs/development/mobile/androidenv/generate-sysimages.sh
index dc28c27f45f..dc28c27f45f 100755
--- a/pkgs/development/androidenv/generate-sysimages.sh
+++ b/pkgs/development/mobile/androidenv/generate-sysimages.sh
diff --git a/pkgs/development/androidenv/generate-sysimages.xsl b/pkgs/development/mobile/androidenv/generate-sysimages.xsl
index 1224ebbd4e8..1224ebbd4e8 100644
--- a/pkgs/development/androidenv/generate-sysimages.xsl
+++ b/pkgs/development/mobile/androidenv/generate-sysimages.xsl
diff --git a/pkgs/development/androidenv/platform-tools.nix b/pkgs/development/mobile/androidenv/platform-tools.nix
index 55499608290..55499608290 100644
--- a/pkgs/development/androidenv/platform-tools.nix
+++ b/pkgs/development/mobile/androidenv/platform-tools.nix
diff --git a/pkgs/development/androidenv/platforms-linux.nix b/pkgs/development/mobile/androidenv/platforms-linux.nix
index f544fcc08be..f544fcc08be 100644
--- a/pkgs/development/androidenv/platforms-linux.nix
+++ b/pkgs/development/mobile/androidenv/platforms-linux.nix
diff --git a/pkgs/development/androidenv/platforms-macosx.nix b/pkgs/development/mobile/androidenv/platforms-macosx.nix
index a1434bbe56c..a1434bbe56c 100644
--- a/pkgs/development/androidenv/platforms-macosx.nix
+++ b/pkgs/development/mobile/androidenv/platforms-macosx.nix
diff --git a/pkgs/development/androidenv/repository-7.xml b/pkgs/development/mobile/androidenv/repository-7.xml
index 7bbbaf1e362..7bbbaf1e362 100644
--- a/pkgs/development/androidenv/repository-7.xml
+++ b/pkgs/development/mobile/androidenv/repository-7.xml
diff --git a/pkgs/development/androidenv/support.nix b/pkgs/development/mobile/androidenv/support.nix
index 2e9690de7a2..2e9690de7a2 100644
--- a/pkgs/development/androidenv/support.nix
+++ b/pkgs/development/mobile/androidenv/support.nix
diff --git a/pkgs/development/androidenv/sysimages.nix b/pkgs/development/mobile/androidenv/sysimages.nix
index b35b4298983..b35b4298983 100644
--- a/pkgs/development/androidenv/sysimages.nix
+++ b/pkgs/development/mobile/androidenv/sysimages.nix
diff --git a/pkgs/development/mobile/xcodeenv/build-app.nix b/pkgs/development/mobile/xcodeenv/build-app.nix
new file mode 100644
index 00000000000..3ac9e4bb958
--- /dev/null
+++ b/pkgs/development/mobile/xcodeenv/build-app.nix
@@ -0,0 +1,92 @@
+{stdenv, xcodewrapper}:
+{ name
+, src
+, target ? null
+, configuration ? null
+, scheme ? null
+, sdk ? null
+, arch ? null
+, xcodeFlags ? ""
+, release ? false
+, codeSignIdentity ? null
+, certificateFile ? null
+, certificatePassword ? null
+, provisioningProfile ? null
+, generateIPA ? false
+, generateXCArchive ? false
+}:
+
+assert release -> codeSignIdentity != null && certificateFile != null && certificatePassword != null && provisioningProfile != null;
+
+let
+  # Set some default values here
+  
+  _target = if target == null then name else target;
+  _scheme = if scheme == null then name else scheme;
+
+  _configuration = if configuration == null
+    then
+      if release then "Release" else "Debug"
+    else configuration;
+    
+  _arch = if arch == null
+    then
+      if release then "armv7" else "i386"
+    else arch;
+
+  _sdk = if sdk == null
+    then
+      if release then "iphoneos6.0" else "iphonesimulator6.0"
+    else sdk;
+
+  # The following is to prevent repetition
+  deleteKeychain = "security delete-keychain $keychainName";
+in
+stdenv.mkDerivation {
+  inherit name src;
+  buildInputs = [ xcodewrapper ];
+  buildPhase = ''
+    ${stdenv.lib.optionalString release ''
+        export HOME=/Users/$(whoami)
+        keychainName="$(basename $out)"
+        
+        # Create a keychain
+        security create-keychain -p "" $keychainName
+        security default-keychain -s $keychainName
+        security unlock-keychain -p "" $keychainName
+        
+        # Import the certificate into the keychain
+        security import ${certificateFile} -k $keychainName -P "${certificatePassword}" -A 
+
+        # Determine provisioning ID
+        PROVISIONING_PROFILE=$(grep UUID -A1 -a ${provisioningProfile} | grep -o "[-A-Z0-9]\{36\}")
+
+        if [ ! -f "$HOME/Library/MobileDevice/Provisioning Profiles/$PROVISIONING_PROFILE.mobileprovision" ]
+        then
+            # Copy provisioning profile into the home directory
+            mkdir -p "$HOME/Library/MobileDevice/Provisioning Profiles"
+            cp ${provisioningProfile} "$HOME/Library/MobileDevice/Provisioning Profiles/$PROVISIONING_PROFILE.mobileprovision"
+        fi
+        
+        # Check whether the identity can be found
+        security find-identity -p codesigning $keychainName
+      ''}
+
+    # Do the building
+    xcodebuild -target ${_target} -configuration ${_configuration} -scheme ${_scheme} -sdk ${_sdk} -arch ${_arch} ONLY_ACTIVE_ARCH=NO CONFIGURATION_TEMP_DIR=$TMPDIR CONFIGURATION_BUILD_DIR=$out ${if generateXCArchive then "archive" else ""} ${xcodeFlags} ${if release then ''"CODE_SIGN_IDENTITY=${codeSignIdentity}" PROVISIONING_PROFILE=$PROVISIONING_PROFILE OTHER_CODE_SIGN_FLAGS="--keychain $HOME/Library/Keychains/$keychainName"'' else ""}
+    
+    ${stdenv.lib.optionalString release ''
+      ${stdenv.lib.optionalString generateIPA ''
+        # Produce an IPA file
+        xcrun -sdk iphoneos PackageApplication -v $out/*.app -o $out/${name}.ipa
+      ''}
+      
+      # Delete our temp keychain
+      ${deleteKeychain}
+    ''}
+  '';
+  
+  failureHook = stdenv.lib.optionalString release deleteKeychain;
+  
+  installPhase = "true";
+}
diff --git a/pkgs/development/mobile/xcodeenv/default.nix b/pkgs/development/mobile/xcodeenv/default.nix
new file mode 100644
index 00000000000..7f834688e63
--- /dev/null
+++ b/pkgs/development/mobile/xcodeenv/default.nix
@@ -0,0 +1,15 @@
+{stdenv}:
+
+rec {
+  xcodewrapper = import ./xcodewrapper.nix {
+    inherit stdenv;
+  };
+
+  buildApp = import ./build-app.nix {
+    inherit stdenv xcodewrapper;
+  };
+
+  simulateApp = import ./simulate-app.nix {
+    inherit stdenv xcodewrapper;
+  };
+}
diff --git a/pkgs/development/mobile/xcodeenv/simulate-app.nix b/pkgs/development/mobile/xcodeenv/simulate-app.nix
new file mode 100644
index 00000000000..456732abe1f
--- /dev/null
+++ b/pkgs/development/mobile/xcodeenv/simulate-app.nix
@@ -0,0 +1,17 @@
+{stdenv, xcodewrapper}:
+{name, app, device ? "iPhone", baseDir ? ""}:
+
+stdenv.mkDerivation {
+  inherit name;
+  buildCommand = ''
+    ensureDir $out/bin
+    cat > $out/bin/run-test-simulator << "EOF"
+    #! ${stdenv.shell} -e
+
+    cd ${app}/${baseDir}/${name}.app
+    "$(readlink "${xcodewrapper}/bin/iPhone Simulator")" -SimulateApplication ./${name} -SimulateDevice '${device}'
+    EOF
+    chmod +x $out/bin/run-test-simulator
+  '';
+}
+
diff --git a/pkgs/development/mobile/xcodeenv/xcodewrapper.nix b/pkgs/development/mobile/xcodeenv/xcodewrapper.nix
new file mode 100644
index 00000000000..39804b1a248
--- /dev/null
+++ b/pkgs/development/mobile/xcodeenv/xcodewrapper.nix
@@ -0,0 +1,24 @@
+{stdenv}:
+
+let
+  version = "4.5.2";
+in
+stdenv.mkDerivation {
+  name = "xcode-wrapper-"+version;
+  buildCommand = ''
+    ensureDir $out/bin
+    cd $out/bin
+    ln -s /usr/bin/xcode-select
+    ln -s /usr/bin/xcodebuild
+    ln -s /usr/bin/xcrun
+    ln -s /usr/bin/security
+    ln -s "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator"
+
+    # Check if we have the xcodebuild version that we want
+    if [ -z "$($out/bin/xcodebuild -version | grep ${version})" ]
+    then
+        echo "We require xcodebuild version: ${version}"
+        exit 1
+    fi
+  '';
+}
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
index 48d1c306993..4e00e39fc3d 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -12,20 +12,23 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--openssl-includes=${openssl}/include"
     "--openssl-libpath=${openssl}/lib"
-    "--shared-v8"
-    "--shared-v8-includes=${v8}/includes"
-    "--shared-v8-libpath=${v8}/lib"
+    #"--shared-v8"
+    #"--shared-v8-includes=${v8}/includes"
+    #"--shared-v8-libpath=${v8}/lib"
   ];
 
-  patches = stdenv.lib.optional stdenv.isDarwin ./no-arch-flag.patch;
+  #patches = stdenv.lib.optional stdenv.isDarwin ./no-arch-flag.patch;
 
   prePatch = ''
-    sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i tools/{*.py,waf-light,node-waf} configure
+    sed=$(type -p sed)
+    export PATH=/usr/bin:$PATH
+
+    $sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i tools/{*.py,waf-light,node-waf} configure
   '';
 
   postInstall = ''
 
-    sed -e 's|^#!/usr/bin/env node$|#!'$out'/bin/node|' -i $out/lib/node_modules/npm/bin/npm-cli.js
+    $sed -e 's|^#!/usr/bin/env node$|#!'$out'/bin/node|' -i $out/lib/node_modules/npm/bin/npm-cli.js
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
     install_name_tool -change libv8.dylib ${v8}/lib/libv8.dylib $out/bin/node
   '';