about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/science/logic/isabelle/default.nix11
-rw-r--r--pkgs/build-support/fetchadc/builder.sh7
-rw-r--r--pkgs/build-support/fetchadc/default.nix45
-rw-r--r--pkgs/development/compilers/polyml/default.nix4
-rw-r--r--pkgs/development/compilers/rustc/head.nix15
-rw-r--r--pkgs/development/compilers/rustc/override_env.HEAD.patch39
-rw-r--r--pkgs/development/lua-modules/luasql.patch18
-rw-r--r--pkgs/misc/emulators/higan/default.nix21
-rw-r--r--pkgs/misc/sound-of-sorting/default.nix28
-rw-r--r--pkgs/os-specific/darwin/osx-private-sdk/default.nix34
-rw-r--r--pkgs/os-specific/darwin/osx-sdk/default.nix26
-rw-r--r--pkgs/os-specific/darwin/security-tool/default.nix30
-rw-r--r--pkgs/tools/misc/tmux/default.nix5
-rw-r--r--pkgs/tools/networking/strongswan/default.nix4
-rw-r--r--pkgs/tools/networking/strongswan/no-hardcoded-sysconfdir.patch145
-rw-r--r--pkgs/top-level/all-packages.nix17
16 files changed, 413 insertions, 36 deletions
diff --git a/pkgs/applications/science/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix
index 9659ee229307..88bbe820e2f3 100644
--- a/pkgs/applications/science/logic/isabelle/default.nix
+++ b/pkgs/applications/science/logic/isabelle/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, nettools, polyml, proofgeneral }:
+{ stdenv, fetchurl, perl, nettools, java, polyml, proofgeneral }:
 # nettools needed for hostname
 
 let
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
     };
 
   buildInputs = [ perl polyml ]
-             ++ stdenv.lib.optional (!stdenv.isDarwin) nettools;
+             ++ stdenv.lib.optionals (!stdenv.isDarwin) [ nettools java ];
 
   sourceRoot = dirname;
 
@@ -35,10 +35,15 @@ stdenv.mkDerivation {
     substituteInPlace etc/settings \
       --subst-var-by ML_HOME "${polyml}/bin" \
       --subst-var-by PROOFGENERAL_HOME "${proofgeneral}/share/emacs/site-lisp/ProofGeneral"
+    substituteInPlace contrib/jdk/etc/settings \
+      --replace ISABELLE_JDK_HOME= '#ISABELLE_JDK_HOME='
+    substituteInPlace contrib/polyml-5.5.2-1/etc/settings \
+      --replace 'ML_HOME="$POLYML_HOME/$ML_PLATFORM"' \
+                "ML_HOME=\"${polyml}/bin\""
   '';
 
   buildPhase = ''
-    ./bin/isabelle build -s $theories
+    ISABELLE_JDK_HOME=${java} ./bin/isabelle build -s $theories
   '';
 
   installPhase = ''
diff --git a/pkgs/build-support/fetchadc/builder.sh b/pkgs/build-support/fetchadc/builder.sh
new file mode 100644
index 000000000000..ceeaa9213d65
--- /dev/null
+++ b/pkgs/build-support/fetchadc/builder.sh
@@ -0,0 +1,7 @@
+source $stdenv/setup
+
+loginpage=`curl --insecure -s -L -b cookies.txt "$url"`
+
+[[ $loginpage =~ form[^\>]+action=\"([^\"]+)\" ]] && loginurl=${BASH_REMATCH[1]}
+
+curl  --insecure -s --output "$out" -L -b cookies.txt --data "appleId=${adc_user}&accountPassword=${adc_pass}" "https://idmsa.apple.com/IDMSWebAuth/${loginurl}"
diff --git a/pkgs/build-support/fetchadc/default.nix b/pkgs/build-support/fetchadc/default.nix
new file mode 100644
index 000000000000..efd477d59889
--- /dev/null
+++ b/pkgs/build-support/fetchadc/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, curl, adc_user, adc_pass }:
+
+let
+  impureEnvVars = [
+    # We borrow these environment variables from the caller to allow
+    # easy proxy configuration.  This is impure, but a fixed-output
+    # derivation like fetchurl is allowed to do so since its result is
+    # by definition pure.
+    "http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
+  ];
+in
+
+{ # URL to fetch.
+  url
+
+  # Hash of the downloaded file
+, sha256
+
+, # Additional curl options needed for the download to succeed.
+  curlOpts ? ""
+
+, # Name of the file.  If empty, use the basename of `url' (or of the
+  # first element of `urls').
+  name ? ""
+}:
+
+stdenv.mkDerivation {
+  name    = if name != "" then name else baseNameOf (toString url);
+  builder = ./builder.sh;
+
+  buildInputs = [ curl ];
+
+  meta = {
+    # Password-guarded files from ADC are certainly unfree, as far as we're concerned!
+    license = stdenv.lib.licenses.unfree;
+  };
+
+  outputHashAlgo = "sha256";
+  outputHash     =  sha256;
+  outputHashMode = "flat";
+
+  inherit curlOpts url adc_user adc_pass;
+
+  preferLocalBuild = true;
+}
\ No newline at end of file
diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix
index 9c0af4ec9ab3..76bb811dd66d 100644
--- a/pkgs/development/compilers/polyml/default.nix
+++ b/pkgs/development/compilers/polyml/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchurl}:
 
 let
-  version = "5.5.1";
+  version = "5.5.2";
 in
 
 stdenv.mkDerivation {
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/polyml/polyml.${version}.tar.gz";
-    sha256 = "16i0ir5mydl7381aijihkll19khp3z8dq0g2ja6k0pcbpkd0k06g";
+    sha256 = "10m680qdad6bd50bav9xjsgmsxw8yxg55vr7grbg0gvykzl2pzbk";
   };
 
   meta = {
diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix
index b2c5d8740751..ab3458f435b8 100644
--- a/pkgs/development/compilers/rustc/head.nix
+++ b/pkgs/development/compilers/rustc/head.nix
@@ -1,4 +1,6 @@
-{stdenv, fetchurl, fetchgit, which, file, perl, curl, python27, makeWrapper}:
+{ stdenv, fetchurl, fetchgit, which, file, perl, curl, python27, makeWrapper
+, tzdata, git
+}:
 
 assert stdenv.gcc.gcc != null;
 
@@ -63,7 +65,7 @@ in stdenv.mkDerivation {
   configureFlags = [ "--enable-local-rust" "--local-rust-root=$snapshot" ];
 
   # The compiler requires cc, so we patch the source to tell it where to find it
-  patches = [ ./hardcode_paths.HEAD.patch ./local_stage0.HEAD.patch ];
+  patches = [ ./hardcode_paths.HEAD.patch ./local_stage0.HEAD.patch ./override_env.HEAD.patch ];
   postPatch = ''
     substituteInPlace src/librustc/back/link.rs \
       --subst-var-by "ccPath" "${stdenv.gcc}/bin/cc"
@@ -71,6 +73,11 @@ in stdenv.mkDerivation {
       --subst-var-by "arPath" "${stdenv.gcc.binutils}/bin/ar"
   '';
 
-  buildInputs = [ which file perl curl python27 makeWrapper ];
-  enableParallelBuilding = true;
+  buildInputs = [ which file perl curl python27 makeWrapper git ];
+
+  enableParallelBuilding = false; # disabled due to rust-lang/rust#16305
+
+  preCheck = "export TZDIR=${tzdata}/share/zoneinfo";
+
+  doCheck = true;
 }
diff --git a/pkgs/development/compilers/rustc/override_env.HEAD.patch b/pkgs/development/compilers/rustc/override_env.HEAD.patch
new file mode 100644
index 000000000000..c050cde96339
--- /dev/null
+++ b/pkgs/development/compilers/rustc/override_env.HEAD.patch
@@ -0,0 +1,39 @@
+commit 02f4c61bd6a2aedbf56169aff5b3a65c83c89557
+Author: Ricardo M. Correia <rcorreia@wizy.org>
+Date:   Tue Sep 30 15:57:06 2014 +0200
+
+    libstd: Pass-through PATH in test_override_env test
+    
+    In some operating systems (such as NixOS), `env` can only be found in
+    the explicitly-provided PATH, not in default places such as /bin or
+    /usr/bin. So we need to pass-through PATH when spawning the `env`
+    sub-process.
+
+diff --git a/src/libstd/io/process.rs b/src/libstd/io/process.rs
+index 83890d2..8fbf254 100644
+--- a/src/libstd/io/process.rs
++++ b/src/libstd/io/process.rs
+@@ -956,7 +956,22 @@ mod tests {
+     })
+ 
+     iotest!(fn test_override_env() {
+-        let new_env = vec![("RUN_TEST_NEW_ENV", "123")];
++        use os;
++        let mut new_env = vec![("RUN_TEST_NEW_ENV", "123")];
++
++        // In some operating systems (such as NixOS), `env` can only be found in
++        // the explicitly-provided PATH env variable, not in default places
++        // such as /bin or /usr/bin. So we need to pass through PATH to our
++        // sub-process.
++        let path_val: String;
++        match os::getenv("PATH") {
++            None => {}
++            Some(val) => {
++                path_val = val;
++                new_env.push(("PATH", path_val.as_slice()))
++            }
++        }
++
+         let prog = env_cmd().env_set_all(new_env.as_slice()).spawn().unwrap();
+         let result = prog.wait_with_output().unwrap();
+         let output = String::from_utf8_lossy(result.output.as_slice()).into_string();
diff --git a/pkgs/development/lua-modules/luasql.patch b/pkgs/development/lua-modules/luasql.patch
index c2b6b067a2de..e91840101ee5 100644
--- a/pkgs/development/lua-modules/luasql.patch
+++ b/pkgs/development/lua-modules/luasql.patch
@@ -1,8 +1,8 @@
---- a/config	2014-09-19 13:32:52.356775109 +0400
-+++ b/config	2014-09-19 13:33:42.750501633 +0400
+--- a/config	2013-02-18 19:36:44.000000000 +0400
++++ b/config	2014-10-01 08:36:37.104254404 +0400
 @@ -1,12 +1,12 @@
  # $Id: config,v 1.10 2008/05/30 17:21:18 tomas Exp $
-
+ 
  # Driver (leave uncommented ONLY the line with the name of the driver)
 -T= mysql
 +#T= mysql
@@ -13,7 +13,7 @@
 -#T=sqlite3
 +T=sqlite3
  #T=firebird
-
+ 
  # Installation directories
 @@ -37,8 +37,8 @@
  ######## MySQL
@@ -26,14 +26,12 @@
  ######## Oracle OCI8
  #DRIVER_LIBS= -L/home/oracle/OraHome1/lib -lz -lclntsh
  #DRIVER_INCS= -I/home/oracle/OraHome1/rdbms/demo -I/home/oracle/OraHome1/rdbms/public
-@@ -51,8 +51,8 @@
+@@ -51,7 +51,7 @@
  #DRIVER_LIBS= -lsqlite
  #DRIVER_INCS=
- ######## SQLite3
+ ######## SQLite3 
 -#DRIVER_LIBS= -L/opt/local/lib -lsqlite3
--#DRIVER_INCS= -I/opt/local/include
-+DRIVER_LIBS= -L/opt/local/lib -lsqlite3
-+DRIVER_INCS= -I/opt/local/include
++DRIVER_LIBS= -lsqlite3
+ #DRIVER_INCS= -I/opt/local/include
  ######## ODBC
  #DRIVER_LIBS= -L/usr/local/lib -lodbc
- #DRIVER_INCS= -DUNIXODBC -I/usr/local/include
diff --git a/pkgs/misc/emulators/higan/default.nix b/pkgs/misc/emulators/higan/default.nix
index 6ce3ca2356cd..b3c793f00e1c 100644
--- a/pkgs/misc/emulators/higan/default.nix
+++ b/pkgs/misc/emulators/higan/default.nix
@@ -4,12 +4,12 @@
 , udev
 , mesa, SDL
 , libao, openal, pulseaudio
-, profile ? "accuracy" # Options: accuracy, balanced, performance
-, gui ? "gtk" # can be gtk or qt4
+, profile ? "performance" # Options: accuracy, balanced, performance
+, guiToolkit ? "gtk" # can be gtk or qt4
 , gtk ? null, qt4 ? null }:
 
-assert gui == "gtk" || gui == "qt4";
-assert (gui == "gtk" -> gtk != null) || (gui == "qt4" -> qt4 != null);
+assert guiToolkit == "gtk" || guiToolkit == "qt4";
+assert (guiToolkit == "gtk" -> gtk != null) || (guiToolkit == "qt4" -> qt4 != null);
 
 stdenv.mkDerivation rec {
 
@@ -18,19 +18,19 @@ stdenv.mkDerivation rec {
   sourceName = "higan_v${version}-source";
 
   src = fetchurl {
-    url = "http://byuu.org/files/${sourceName}.tar.xz";
+    urls = [ "http://byuu.org/files/${sourceName}.tar.xz" "http://byuu.net/files/${sourceName}.tar.xz" ];
     sha256 = "06qm271pzf3qf2labfw2lx6k0xcd89jndmn0jzmnc40cspwrs52y";
     curlOpts = "--user-agent 'Mozilla/5.0'"; # the good old user-agent trick...
   };
 
   buildInputs = with stdenv.lib;
   [ pkgconfig libX11 libXv udev mesa SDL libao openal pulseaudio ]
-  ++ optionals (gui == "gtk") [ gtk ]
-  ++ optionals (gui == "qt4") [ qt4 ];
+  ++ optionals (guiToolkit == "gtk") [ gtk ]
+  ++ optionals (guiToolkit == "qt4") [ qt4 ];
 
   buildPhase = ''
-    make phoenix=${gui} profile=${profile} -C ananke
-    make phoenix=${gui} profile=${profile}
+    make phoenix=${guiToolkit} profile=${profile} -C ananke
+    make phoenix=${guiToolkit} profile=${profile}
   '';
 
   installPhase = ''
@@ -86,5 +86,4 @@ stdenv.mkDerivation rec {
 # TODO:
 #   - fix the BML and BIOS paths - maybe submitting
 #     a custom patch to Higan project would not be a bad idea...
-#   - config.higan.{gui,profile} options
-#
+#   - Qt support
diff --git a/pkgs/misc/sound-of-sorting/default.nix b/pkgs/misc/sound-of-sorting/default.nix
new file mode 100644
index 000000000000..fa1be80287a2
--- /dev/null
+++ b/pkgs/misc/sound-of-sorting/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl
+, SDL2, wxGTK
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "sound-of-sorting-${version}";
+  version = "0.6.5";
+
+  src = fetchurl {
+    url = "https://github.com/bingmann/sound-of-sorting/archive/${name}.tar.gz";
+    sha256 = "1524bhmy5067z9bjc15hvqslw43adgpdn4272iymq09ahja4x76b";
+  };
+
+  buildInputs = with stdenv.lib;
+  [ wxGTK SDL2 ];
+
+  preConfigure = ''
+    export SDL_CONFIG=${SDL2}/bin/sdl2-config
+  '';
+
+  meta = with stdenv.lib;{
+    description = "Audibilization and Visualization of Sorting Algorithms";
+    homepage = http://panthema.net/2013/sound-of-sorting/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/pkgs/os-specific/darwin/osx-private-sdk/default.nix b/pkgs/os-specific/darwin/osx-private-sdk/default.nix
new file mode 100644
index 000000000000..d12ad24c9f8a
--- /dev/null
+++ b/pkgs/os-specific/darwin/osx-private-sdk/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, python, osx_sdk }:
+
+let
+  sdkVersion = "10.9";
+in stdenv.mkDerivation {
+  name = "PrivateMacOSX${sdkVersion}.sdk";
+
+  src = fetchFromGitHub {
+    owner  = "copumpkin";
+    repo   = "OSXPrivateSDK";
+    rev    = "bde9cba13e6ae62a8e4e0f405008ea719526e7ad";
+    sha256 = "1vj3fxwp32irxjk987p7a223sm5bl5rrlajcvgy69k0wb0fp0krc";
+  };
+
+  buildInputs = [ python ];
+
+  configurePhase = "true";
+
+  buildPhase = ''
+    python PrivateSDK.py -i ${osx_sdk}/Developer/SDKs/MacOSX${sdkVersion}.sdk -o PrivateMacOSX${sdkVersion}.sdk
+  '';
+
+  installPhase = ''
+    mkdir -p $out/Developer/SDKs/
+    mv PrivateMacOSX${sdkVersion}.sdk $out/Developer/SDKs
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A private Mac OS ${version} SDK, suitable for building many of Apple's open source releases";
+    maintainers = with maintainers; [ copumpkin ];
+    platforms   = platforms.darwin;
+    license     = licenses.unfree;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/os-specific/darwin/osx-sdk/default.nix b/pkgs/os-specific/darwin/osx-sdk/default.nix
new file mode 100644
index 000000000000..612bf003743c
--- /dev/null
+++ b/pkgs/os-specific/darwin/osx-sdk/default.nix
@@ -0,0 +1,26 @@
+{ stdenv }:
+
+let
+  version = "10.9";
+in stdenv.mkDerivation {
+  name = "MacOSX10.9.sdk";
+
+  src = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk";
+
+  unpackPhase    = "true";
+  configurePhase = "true";
+  buildPhase     = "true";
+
+  installPhase = ''
+    mkdir -p $out/Developer/SDKs/
+    echo "Source is: $src"
+    cp -r $src $out/Developer/SDKs/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The Mac OS ${version} SDK";
+    maintainers = with maintainers; [ copumpkin ];
+    platforms   = platforms.darwin;
+    license     = licenses.unfree;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/os-specific/darwin/security-tool/default.nix b/pkgs/os-specific/darwin/security-tool/default.nix
new file mode 100644
index 000000000000..49d61f392c5e
--- /dev/null
+++ b/pkgs/os-specific/darwin/security-tool/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, osx_private_sdk }:
+
+stdenv.mkDerivation rec {
+	version = "55115";
+  name    = "SecurityTool-${version}";
+
+  src = fetchurl {
+    url = "http://opensource.apple.com/tarballs/SecurityTool/SecurityTool-${version}.tar.gz";
+    sha256 = "0apcz4vy2z5645jhrs60wj3w27mncjjqv42h5lln36g6qs2n9113";
+  };
+
+  configurePhase = "";
+
+  # Someday we shall purge this impurity!
+  buildPhase = ''
+    /usr/bin/xcodebuild SDKROOT=${osx_private_sdk}/Developer/SDKs/PrivateMacOSX10.9.sdk/
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin/
+    cp build/Release/security $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Command line interface to Mac OS X keychains and Security framework";
+    maintainers = with maintainers; [ copumpkin ];
+    platforms   = platforms.darwin;
+    license     = licenses.apsl20;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index 32f681dabebb..823374771696 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, ncurses, libevent, pkgconfig}:
+{stdenv, fetchurl, ncurses, libevent, pkgconfig, makeWrapper}:
 
 stdenv.mkDerivation rec {
   pname = "tmux";
@@ -12,12 +12,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
 
-  buildInputs = [ ncurses libevent ];
+  buildInputs = [ ncurses libevent makeWrapper ];
 
   postInstall =
     ''
       mkdir -p $out/etc/bash_completion.d
       cp -v examples/bash_completion_tmux.sh $out/etc/bash_completion.d/tmux
+      wrapProgram $out/bin/tmux --prefix TERMINFO : $out/share/terminfo
     '';
 
   meta = {
diff --git a/pkgs/tools/networking/strongswan/default.nix b/pkgs/tools/networking/strongswan/default.nix
index 56ecdb904e29..9358b9aaa2fb 100644
--- a/pkgs/tools/networking/strongswan/default.nix
+++ b/pkgs/tools/networking/strongswan/default.nix
@@ -8,11 +8,11 @@ stdenv.mkDerivation rec {
     sha256 = "1ki6v9c54ykppqnj3prgh62na97yajnvnm2zr1gjxzv05syk035h";
   };
 
-  patches = [ ./respect-path.patch ./no-sysconfdir-write.patch ];
+  patches = [ ./respect-path.patch ./no-hardcoded-sysconfdir.patch ];
 
   buildInputs = [ gmp autoreconfHook gettext pkgconfig ];
 
-  configureFlags = [ "--enable-swanctl" "--sysconfdir=/etc" ];
+  configureFlags = [ "--enable-swanctl" ];
 
   meta = {
     maintainers = [ stdenv.lib.maintainers.shlevy ];
diff --git a/pkgs/tools/networking/strongswan/no-hardcoded-sysconfdir.patch b/pkgs/tools/networking/strongswan/no-hardcoded-sysconfdir.patch
new file mode 100644
index 000000000000..b186b21a5dd9
--- /dev/null
+++ b/pkgs/tools/networking/strongswan/no-hardcoded-sysconfdir.patch
@@ -0,0 +1,145 @@
+commit 8e2b65ebf597a4d48daa3308aa032962110ad8f6
+Author: Shea Levy <shea@shealevy.com>
+Date:   Tue Sep 30 15:14:47 2014 -0400
+
+    Allow specifying the ipsec.conf location in strongswan.conf
+
+diff --git a/conf/options/starter.opt b/conf/options/starter.opt
+index 4e6574d..6d7162a 100644
+--- a/conf/options/starter.opt
++++ b/conf/options/starter.opt
+@@ -3,3 +3,6 @@ starter.load =
+ 
+ starter.load_warning = yes
+ 	Disable charon plugin load option warning.
++
++starter.config_file = ${sysconfdir}/ipsec.conf
++	Location of the ipsec.conf conf file
+diff --git a/src/starter/starter.c b/src/starter/starter.c
+index 5c84593..1f365cc 100644
+--- a/src/starter/starter.c
++++ b/src/starter/starter.c
+@@ -488,7 +488,8 @@ int main (int argc, char **argv)
+ 	}
+ 	if (!config_file)
+ 	{
+-		config_file = CONFIG_FILE;
++		config_file = lib->settings->get_str(lib->settings, "starter.config_file",
++			CONFIG_FILE);
+ 	}
+ 
+ 	init_log("ipsec_starter");
+
+commit 8b839cec684e26ed96f3d891b3ae3565558b2cff
+Author: Shea Levy <shea@shealevy.com>
+Date:   Tue Sep 30 15:11:03 2014 -0400
+
+    Allow specifying the ipsec.secrets location in strongswan.conf
+
+diff --git a/conf/plugins/stroke.opt b/conf/plugins/stroke.opt
+index 2cfc2c6..b3ca2b7 100644
+--- a/conf/plugins/stroke.opt
++++ b/conf/plugins/stroke.opt
+@@ -11,5 +11,8 @@ charon.plugins.stroke.prevent_loglevel_changes = no
+ charon.plugins.stroke.socket = unix://${piddir}/charon.ctl
+ 	Socket provided by the stroke plugin.
+ 
++charon.plugins.stroke.secrets_file = ${sysconfdir}/ipsec.secrets
++	Location of the ipsec.secrets conf file
++
+ charon.plugins.stroke.timeout = 0
+ 	Timeout in ms for any stroke command. Use 0 to disable the timeout.
+diff --git a/src/libcharon/plugins/stroke/stroke_cred.c b/src/libcharon/plugins/stroke/stroke_cred.c
+index f908219..673e492 100644
+--- a/src/libcharon/plugins/stroke/stroke_cred.c
++++ b/src/libcharon/plugins/stroke/stroke_cred.c
+@@ -67,6 +67,7 @@ struct private_stroke_cred_t {
+ 	/**
+ 	 * credentials
+ 	 */
++	char *secrets_file;
+ 	mem_cred_t *creds;
+ 
+ 	/**
+@@ -1297,7 +1298,7 @@ METHOD(stroke_cred_t, reread, void,
+ 	if (msg->reread.flags & REREAD_SECRETS)
+ 	{
+ 		DBG1(DBG_CFG, "rereading secrets");
+-		load_secrets(this, NULL, SECRETS_FILE, 0, prompt);
++		load_secrets(this, NULL, this->secrets_file, 0, prompt);
+ 	}
+ 	if (msg->reread.flags & REREAD_CACERTS)
+ 	{
+@@ -1370,6 +1371,9 @@ stroke_cred_t *stroke_cred_create()
+ 			.cachecrl = _cachecrl,
+ 			.destroy = _destroy,
+ 		},
++		.secrets_file = lib->settings->get_str(lib->settings,
++			"%s.plugins.stroke.secrets_file", SECRETS_FILE,
++			lib->ns),
+ 		.creds = mem_cred_create(),
+ 	);
+ 
+@@ -1380,7 +1384,7 @@ stroke_cred_t *stroke_cred_create()
+ 						FALSE, lib->ns);
+ 
+ 	load_certs(this);
+-	load_secrets(this, NULL, SECRETS_FILE, 0, NULL);
++	load_secrets(this, NULL, this->secrets_file, 0, NULL);
+ 
+ 	return &this->public;
+ }
+diff --git a/src/starter/starter.c b/src/starter/starter.c
+index 71f33ae..5c84593 100644
+--- a/src/starter/starter.c
++++ b/src/starter/starter.c
+@@ -263,8 +263,11 @@ static void generate_selfcert()
+ {
+ 	struct stat stb;
+ 
++	const char *secrets_file = lib->settings->get_str(lib->settings,
++		"charon.plugins.stroke.secrets_file", SECRETS_FILE);
++
+ 	/* if ipsec.secrets file is missing then generate RSA default key pair */
+-	if (stat(SECRETS_FILE, &stb) != 0)
++	if (stat(secrets_file, &stb) != 0)
+ 	{
+ 		mode_t oldmask;
+ 		FILE *f;
+@@ -302,7 +305,7 @@ static void generate_selfcert()
+ 		/* ipsec.secrets is root readable only */
+ 		oldmask = umask(0066);
+ 
+-		f = fopen(SECRETS_FILE, "w");
++		f = fopen(secrets_file, "w");
+ 		if (f)
+ 		{
+ 			fprintf(f, "# /etc/ipsec.secrets - strongSwan IPsec secrets file\n");
+@@ -310,7 +313,7 @@ static void generate_selfcert()
+ 			fprintf(f, ": RSA myKey.der\n");
+ 			fclose(f);
+ 		}
+-		ignore_result(chown(SECRETS_FILE, uid, gid));
++		ignore_result(chown(secrets_file, uid, gid));
+ 		umask(oldmask);
+ 	}
+ }
+
+commit 5f2ca3b99b40c47a9b59c7cc75655e5dd041787e
+Author: Shea Levy <shea@shealevy.com>
+Date:   Tue Sep 30 14:31:50 2014 -0400
+
+    Allow specifying the path to strongswan.conf in the STRONGSWAN_CONF env var
+
+diff -Naur a/src/libstrongswan/library.c b/src/libstrongswan/library.c
+--- a/src/libstrongswan/library.c	2014-06-05 03:50:30.000000000 -0400
++++ b/src/libstrongswan/library.c	2014-09-30 15:25:27.927757711 -0400
+@@ -307,7 +307,7 @@
+ #ifdef STRONGSWAN_CONF
+ 	if (!settings)
+ 	{
+-		settings = STRONGSWAN_CONF;
++		settings = getenv("STRONGSWAN_CONF") ?: STRONGSWAN_CONF;
+ 	}
+ #endif
+ 	this->public.settings = settings_create(settings);
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 191a50df33cc..bd19493ce3ee 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -283,6 +283,11 @@ let
     vs = vs90wrapper;
   };
 
+  fetchadc = import ../build-support/fetchadc {
+    inherit curl stdenv;
+    inherit (config) adc_user adc_pass;
+  };
+
   fetchbower = import ../build-support/fetchbower {
     inherit stdenv git;
     inherit (nodePackages) fetch-bower;
@@ -7553,6 +7558,11 @@ let
     opencflite = callPackage ../os-specific/darwin/opencflite {};
 
     xcode = callPackage ../os-specific/darwin/xcode {};
+
+    osx_sdk = callPackage ../os-specific/darwin/osx-sdk {};
+    osx_private_sdk = callPackage ../os-specific/darwin/osx-private-sdk { inherit osx_sdk; };
+
+    security_tool = callPackage ../os-specific/darwin/security-tool { inherit osx_private_sdk; };
   };
 
   devicemapper = lvm2;
@@ -11496,6 +11506,7 @@ let
   isabelle = import ../applications/science/logic/isabelle {
     inherit (pkgs) stdenv fetchurl nettools perl polyml;
     inherit (pkgs.emacs24Packages) proofgeneral;
+    java = if stdenv.isLinux then jre else jdk;
   };
 
   iprover = callPackage ../applications/science/logic/iprover {};
@@ -11891,6 +11902,8 @@ let
 
   slock = callPackage ../misc/screensavers/slock { };
 
+  soundOfSorting = callPackage ../misc/sound-of-sorting { };
+
   sourceAndTags = import ../misc/source-and-tags {
     inherit pkgs stdenv unzip lib ctags;
     hasktags = haskellPackages.hasktags;
@@ -12084,8 +12097,8 @@ let
   snes9x-gtk = callPackage ../misc/emulators/snes9x-gtk { };
 
   higan = callPackage ../misc/emulators/higan {
-    profile = "accuracy";
-    gui = "gtk";
+    profile = config.higan.profile or "performance";
+    guiToolkit = config.higan.guiToolkit or "gtk";
   };
 
   misc = import ../misc/misc.nix { inherit pkgs stdenv; };