summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix19
-rw-r--r--pkgs/misc/apulse/default.nix11
-rw-r--r--pkgs/misc/jackaudio/clang.patch22
-rw-r--r--pkgs/misc/jackaudio/darwin-cf.patch49
-rw-r--r--pkgs/misc/jackaudio/default.nix28
-rw-r--r--pkgs/os-specific/darwin/apple-sdk/frameworks.nix3
-rw-r--r--pkgs/os-specific/linux/fscrypt/default.nix33
-rw-r--r--pkgs/os-specific/linux/fuse/common.nix58
-rw-r--r--pkgs/os-specific/linux/fuse/default.nix4
-rw-r--r--pkgs/os-specific/linux/fuse/fuse3-install.patch24
-rw-r--r--pkgs/os-specific/linux/fuse/fuse3-install_man.patch8
-rw-r--r--pkgs/os-specific/linux/fuse/fuse3-no-udev.patch12
-rw-r--r--pkgs/servers/openafs-client/default.nix8
-rw-r--r--pkgs/tools/admin/salt/default.nix4
-rw-r--r--pkgs/tools/admin/salt/fix-libcrypto-loading.patch15
-rw-r--r--pkgs/tools/filesystems/encfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/build-man-pages.patch11
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/default.nix22
-rw-r--r--pkgs/top-level/all-packages.nix4
19 files changed, 283 insertions, 56 deletions
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 1e61cabb7a12..28cc273c679c 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -23,10 +23,11 @@
 , pango
 
 , audioSupport ? mediaSupport
-, pulseaudioSupport ? audioSupport
+, pulseaudioSupport ? false
 , libpulseaudio
+, apulse
 
-# Media support (implies pulseaudio support)
+# Media support (implies audio support)
 , mediaSupport ? false
 , gstreamer
 , gst-plugins-base
@@ -158,6 +159,11 @@ stdenv.mkDerivation rec {
     # and torLibPath for accuracy, but this is more convenient ...
     libPath=${libPath}:$TBB_IN_STORE:$TBB_IN_STORE/TorBrowser/Tor
 
+    # apulse uses a non-standard library path.  For now special-case it.
+    ${optionalString (audioSupport && !pulseaudioSupport) ''
+      libPath=${apulse}/lib/apulse:$libPath
+    ''}
+
     # Fixup paths to pluggable transports.
     sed -i TorBrowser/Data/Tor/torrc-defaults \
         -e "s,./TorBrowser,$TBB_IN_STORE/TorBrowser,g"
@@ -218,6 +224,13 @@ stdenv.mkDerivation rec {
     // toggling the pref takes effect.
     lockPref("browser.tabs.remote.autostart.2", ${if disableContentSandbox then "false" else "true"});
 
+    // Allow sandbox access to sound devices if using ALSA directly
+    ${if (audioSupport && !pulseaudioSupport) then ''
+      pref("security.sandbox.content.write_path_whitelist", "/dev/snd/");
+    '' else ''
+      clearPref("security.sandbox.content.write_path_whitelist");
+    ''}
+
     ${optionalString (extraPrefs != "") ''
       ${extraPrefs}
     ''}
@@ -336,6 +349,8 @@ stdenv.mkDerivation rec {
       PULSE_SERVER="\''${PULSE_SERVER:-}" \
       PULSE_COOKIE="\''${PULSE_COOKIE:-}" \
       \
+      APULSE_PLAYBACK_DEVICE="\''${APULSE_PLAYBACK_DEVICE:-plughw:0,0}" \
+      \
       TOR_SKIP_LAUNCH="\''${TOR_SKIP_LAUNCH:-}" \
       TOR_CONTROL_PORT="\''${TOR_CONTROL_PORT:-}" \
       TOR_SOCKS_PORT="\''${TOR_SOCKS_PORT:-}" \
diff --git a/pkgs/misc/apulse/default.nix b/pkgs/misc/apulse/default.nix
index 12d774467c52..4b2323eaa716 100644
--- a/pkgs/misc/apulse/default.nix
+++ b/pkgs/misc/apulse/default.nix
@@ -2,17 +2,20 @@
 
 stdenv.mkDerivation rec {
   name = "apulse-${version}";
-  version = "0.1.6";
+  version = "0.1.10";
 
   src = fetchFromGitHub {
     owner = "i-rinat";
     repo = "apulse";
     rev = "v${version}";
-    sha256 = "1w0mqa8gcrvvlns3pryhmlsc0g1irdnwsawx4g34wgwrp9paqqzm";
+    sha256 = "018gaxn647wz1vjbr49hfrch9svnv0d1nzijc8ckb4fsr8vv95a1";
   };
 
-  buildInputs =
-    [ alsaLib cmake pkgconfig glib ];
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ alsaLib glib ];
 
   meta = with stdenv.lib; {
     description = "PulseAudio emulation for ALSA";
diff --git a/pkgs/misc/jackaudio/clang.patch b/pkgs/misc/jackaudio/clang.patch
new file mode 100644
index 000000000000..131f8c4c04dd
--- /dev/null
+++ b/pkgs/misc/jackaudio/clang.patch
@@ -0,0 +1,22 @@
+diff --git a/tests/test.cpp b/tests/test.cpp
+index 8a8a811..31e8459 100644
+--- a/tests/test.cpp
++++ b/tests/test.cpp
+@@ -479,7 +479,7 @@ int process4(jack_nframes_t nframes, void *arg)
+ 	jack_nframes_t delta_time = cur_time - last_time;
+ 
+ 	Log("calling process4 callback : jack_frame_time = %ld delta_time = %ld\n", cur_time, delta_time);
+-	if (delta_time > 0  && (jack_nframes_t)abs(delta_time - cur_buffer_size) > tolerance) {
++	if (delta_time > 0  && (jack_nframes_t)fabs(delta_time - cur_buffer_size) > tolerance) {
+ 		printf("!!! ERROR !!! jack_frame_time seems to return incorrect values cur_buffer_size = %d, delta_time = %d tolerance %d\n", cur_buffer_size, delta_time, tolerance);
+ 	}
+ 
+@@ -1064,7 +1064,7 @@ int main (int argc, char *argv[])
+     }
+     jack_sleep(1 * 1000);
+     cur_buffer_size = jack_get_buffer_size(client1);
+-    if (abs((old_buffer_size * factor) - cur_buffer_size) > 5) {  // Tolerance needed for dummy driver...
++    if (fabs((old_buffer_size * factor) - cur_buffer_size) > 5) {  // Tolerance needed for dummy driver...
+         printf("!!! ERROR !!! Buffer size has not been changed !\n");
+         printf("!!! Maybe jack was compiled without the '--enable-resize' flag...\n");
+     } else {
diff --git a/pkgs/misc/jackaudio/darwin-cf.patch b/pkgs/misc/jackaudio/darwin-cf.patch
new file mode 100644
index 000000000000..0fc0902a0c48
--- /dev/null
+++ b/pkgs/misc/jackaudio/darwin-cf.patch
@@ -0,0 +1,49 @@
+diff --git a/common/Jackdmp.cpp b/common/Jackdmp.cpp
+index 7eea281..4b8d75d 100644
+--- a/common/Jackdmp.cpp
++++ b/common/Jackdmp.cpp
+@@ -50,43 +50,11 @@ are "hard-coded" in the source. A much better approach would be to use the contr
+ - get available drivers and their possible parameters, then prepare to parse them.
+ */
+
+-#ifdef __APPLE__
+-#include <CoreFoundation/CFNotificationCenter.h>
+-#include <CoreFoundation/CoreFoundation.h>
+-
+-static void notify_server_start(const char* server_name)
+-{
+-    // Send notification to be used in the JackRouter plugin
+-    CFStringRef ref = CFStringCreateWithCString(NULL, server_name, kCFStringEncodingMacRoman);
+-    CFNotificationCenterPostNotificationWithOptions(CFNotificationCenterGetDistributedCenter(),
+-            CFSTR("com.grame.jackserver.start"),
+-            ref,
+-            NULL,
+-            kCFNotificationDeliverImmediately | kCFNotificationPostToAllSessions);
+-    CFRelease(ref);
+-}
+-
+-static void notify_server_stop(const char* server_name)
+-{
+-    // Send notification to be used in the JackRouter plugin
+-    CFStringRef ref1 = CFStringCreateWithCString(NULL, server_name, kCFStringEncodingMacRoman);
+-    CFNotificationCenterPostNotificationWithOptions(CFNotificationCenterGetDistributedCenter(),
+-            CFSTR("com.grame.jackserver.stop"),
+-            ref1,
+-            NULL,
+-            kCFNotificationDeliverImmediately | kCFNotificationPostToAllSessions);
+-    CFRelease(ref1);
+-}
+-
+-#else
+-
+ static void notify_server_start(const char* server_name)
+ {}
+ static void notify_server_stop(const char* server_name)
+ {}
+
+-#endif
+-
+ static void copyright(FILE* file)
+ {
+     fprintf(file, "jackdmp " VERSION "\n"
+
diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix
index 52f288deba33..20da91efede8 100644
--- a/pkgs/misc/jackaudio/default.nix
+++ b/pkgs/misc/jackaudio/default.nix
@@ -1,9 +1,12 @@
 { stdenv, fetchFromGitHub, pkgconfig, python2Packages, makeWrapper
 , bash, libsamplerate, libsndfile, readline, eigen, celt
+# Darwin Dependencies
+, aften, AudioToolbox, CoreAudio, CoreFoundation
 
 # Optional Dependencies
 , dbus ? null, libffado ? null, alsaLib ? null
 , libopus ? null
+, darwin
 
 # Extra options
 , prefix ? ""
@@ -16,7 +19,7 @@ let
 
   libOnly = prefix == "lib";
 
-  optDbus = shouldUsePkg dbus;
+  optDbus = if stdenv.isDarwin then null else shouldUsePkg dbus;
   optPythonDBus = if libOnly then null else shouldUsePkg dbus-python;
   optLibffado = if libOnly then null else shouldUsePkg libffado;
   optAlsaLib = if libOnly then null else shouldUsePkg alsaLib;
@@ -34,21 +37,36 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig python makeWrapper ];
-  buildInputs = [ python libsamplerate libsndfile readline eigen celt
+  buildInputs = [ libsamplerate libsndfile readline eigen celt
     optDbus optPythonDBus optLibffado optAlsaLib optLibopus
-  ];
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [ aften AudioToolbox CoreAudio CoreFoundation ];
 
-  patchPhase = ''
-    substituteInPlace svnversion_regenerate.sh --replace /bin/bash ${bash}/bin/bash
+  # CoreFoundation 10.10 doesn't include CFNotificationCenter.h yet.
+  patches = stdenv.lib.optionals stdenv.isDarwin [ ./clang.patch ./darwin-cf.patch ];
+
+  prePatch = ''
+    substituteInPlace svnversion_regenerate.sh \
+        --replace /bin/bash ${bash}/bin/bash
+  '';
+
+  # It looks like one of the frameworks depends on <CoreFoundation/CFAttributedString.h>
+  # since frameworks are impure we also have to use the impure CoreFoundation here.
+  # FIXME: remove when CoreFoundation is updated to 10.11
+  preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+    export NIX_CFLAGS_COMPILE="-F${CoreFoundation}/Library/Frameworks $NIX_CFLAGS_COMPILE"
   '';
 
   configurePhase = ''
+    runHook preConfigure
+
     python waf configure --prefix=$out \
       ${optionalString (optDbus != null) "--dbus"} \
       --classic \
       ${optionalString (optLibffado != null) "--firewire"} \
       ${optionalString (optAlsaLib != null) "--alsa"} \
       --autostart=${if (optDbus != null) then "dbus" else "classic"} \
+
+    runHook postConfigure
   '';
 
   buildPhase = ''
diff --git a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
index 7b930e86a39f..081f713d0549 100644
--- a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
+++ b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
@@ -23,6 +23,9 @@ with frameworks; with libs; {
   CalendarStore           = [];
   Cocoa                   = [ AppKit ];
   Collaboration           = [];
+  # Impure version of CoreFoundation, this should not be used unless another
+  # framework includes headers that are not available in the pure version.
+  CoreFoundation          = [];
   CoreAudio               = [ CF IOKit ];
   CoreAudioKit            = [ AudioUnit ];
   CoreData                = [];
diff --git a/pkgs/os-specific/linux/fscrypt/default.nix b/pkgs/os-specific/linux/fscrypt/default.nix
new file mode 100644
index 000000000000..1564069a0a98
--- /dev/null
+++ b/pkgs/os-specific/linux/fscrypt/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, libargon2, pam }:
+
+# Don't use this for anything important yet!
+
+buildGoPackage rec {
+  name = "fscrypt-${version}";
+  version = "0.2.1";
+
+  goPackagePath = "github.com/google/fscrypt";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "fscrypt";
+    rev = version;
+    sha256 = "0ais6l0dxinnspi6cjnzyk55cdkfsz2bzbaybg6cb4q8a5kzaccq";
+  };
+
+  buildInputs = [ libargon2 pam ];
+
+  meta = with stdenv.lib; {
+    description =
+      "A high-level tool for the management of Linux filesystem encryption";
+    longDescription = ''
+      This tool manages metadata, key generation, key wrapping, PAM integration,
+      and provides a uniform interface for creating and modifying encrypted
+      directories.
+    '';
+    inherit (src.meta) homepage;
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/os-specific/linux/fuse/common.nix b/pkgs/os-specific/linux/fuse/common.nix
index 8938eaae8183..b18b6de0d140 100644
--- a/pkgs/os-specific/linux/fuse/common.nix
+++ b/pkgs/os-specific/linux/fuse/common.nix
@@ -1,8 +1,10 @@
 { version, sha256Hash, maintainers }:
 
 { stdenv, fetchFromGitHub, fetchpatch
-, utillinux, autoconf, automake, libtool, gettext
-, fusePackages }:
+, fusePackages, utillinux, gettext
+, autoconf, automake, libtool
+, meson, ninja, pkgconfig
+}:
 
 let
   isFuse3 = stdenv.lib.hasPrefix "3" version;
@@ -16,15 +18,25 @@ in stdenv.mkDerivation rec {
     sha256 = sha256Hash;
   };
 
-  patches = stdenv.lib.optional
-    (!isFuse3 && stdenv.isAarch64)
-    (fetchpatch {
-      url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch";
-      sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa";
-  });
-
-  nativeBuildInputs = [ libtool autoconf automake ];
-  buildInputs = [ gettext utillinux ];
+  patches =
+    stdenv.lib.optional
+      (!isFuse3 && stdenv.isAarch64)
+      (fetchpatch {
+        url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch";
+        sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa";
+      })
+    ++ stdenv.lib.optionals isFuse3 [
+      ./fuse3-no-udev.patch # only required for udevrulesdir
+      ./fuse3-install.patch
+      # install_man makes the build non-reproducible by encoding the date
+      ./fuse3-install_man.patch
+    ];
+
+
+  nativeBuildInputs = if isFuse3
+    then [ meson ninja pkgconfig ]
+    else [ autoconf automake libtool ];
+  buildInputs = stdenv.lib.optional (!isFuse3) gettext;
 
   outputs = [ "out" ] ++ stdenv.lib.optional isFuse3 "common";
 
@@ -39,27 +51,27 @@ in stdenv.mkDerivation rec {
     export NIX_CFLAGS_COMPILE="-DFUSERMOUNT_DIR=\"/run/wrappers/bin\""
 
     sed -e 's@/bin/@${utillinux}/bin/@g' -i lib/mount_util.c
-    sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh
-
-    ./makeconf.sh
-  '';
-
-  postFixup = if isFuse3 then ''
-    cd $out
-
+    '' + (if isFuse3 then ''
+      # The configure phase will delete these files (temporary workaround for
+      # ./fuse3-install_man.patch)
+      install -D -m444 doc/fusermount3.1 $out/share/man/man1/fusermount3.1
+      install -D -m444 doc/mount.fuse.8 $out/share/man/man8/mount.fuse.8
+    '' else ''
+      sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh
+      ./makeconf.sh
+    '');
+
+  postFixup = "cd $out\n" + (if isFuse3 then ''
     mv bin/mount.fuse3 bin/mount.fuse
-    mv etc/udev/rules.d/99-fuse3.rules etc/udev/rules.d/99-fuse.rules
 
     install -D -m555 bin/mount.fuse $common/bin/mount.fuse
     install -D -m444 etc/udev/rules.d/99-fuse.rules $common/etc/udev/rules.d/99-fuse.rules
     install -D -m444 share/man/man8/mount.fuse.8.gz $common/share/man/man8/mount.fuse.8.gz
   '' else ''
-    cd $out
-
     cp ${fusePackages.fuse_3.common}/bin/mount.fuse bin/mount.fuse
     cp ${fusePackages.fuse_3.common}/etc/udev/rules.d/99-fuse.rules etc/udev/rules.d/99-fuse.rules
     cp ${fusePackages.fuse_3.common}/share/man/man8/mount.fuse.8.gz share/man/man8/mount.fuse.8.gz
-  '';
+  '');
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix
index 1a6c45c7cee9..669d115aab99 100644
--- a/pkgs/os-specific/linux/fuse/default.nix
+++ b/pkgs/os-specific/linux/fuse/default.nix
@@ -13,8 +13,8 @@ in {
   };
 
   fuse_3 = mkFuse {
-    version = "3.1.1";
-    sha256Hash = "14mazl2i55fp4vjphwgcmk3mp2x3mhqwh9nci0rd0jl5lhpdmpq6";
+    version = "3.2.0";
+    sha256Hash = "0bfpwkfamg4rcbq1s7v5rblpisqq73z6d5j3dxypgqll07hfg51x";
     maintainers = [ maintainers.primeos ];
   };
 }
diff --git a/pkgs/os-specific/linux/fuse/fuse3-install.patch b/pkgs/os-specific/linux/fuse/fuse3-install.patch
new file mode 100644
index 000000000000..f77639367acf
--- /dev/null
+++ b/pkgs/os-specific/linux/fuse/fuse3-install.patch
@@ -0,0 +1,24 @@
+--- a/util/install_helper.sh	1970-01-01 01:00:01.000000000 +0100
++++ b/util/install_helper.sh	2017-09-21 23:43:50.703942577 +0200
+@@ -11,19 +11,11 @@
+ udevrulesdir="$3"
+ prefix="${MESON_INSTALL_DESTDIR_PREFIX}"
+ 
+-chown root:root "${prefix}/${bindir}/fusermount3"
+-chmod u+s "${prefix}/${bindir}/fusermount3"
+-
+-if test ! -e "${DESTDIR}/dev/fuse"; then
+-    mkdir -p "${DESTDIR}/dev"
+-    mknod "${DESTDIR}/dev/fuse" -m 0666 c 10 229
+-fi
+-
+ install -D -m 644 "${MESON_SOURCE_ROOT}/util/udev.rules" \
+-        "${DESTDIR}/${udevrulesdir}/99-fuse3.rules"
++        "${prefix}/${udevrulesdir}/99-fuse.rules"
+ 
+ install -D -m 755 "${MESON_SOURCE_ROOT}/util/init_script" \
+-        "${DESTDIR}/etc/init.d/fuse3"
++        "${prefix}/etc/init.d/fuse3"
+ 
+ if test -x /usr/sbin/update-rc.d && test -z "${DESTDIR}"; then
+     /usr/sbin/update-rc.d fuse3 start 34 S . start 41 0 6 . || /bin/true
diff --git a/pkgs/os-specific/linux/fuse/fuse3-install_man.patch b/pkgs/os-specific/linux/fuse/fuse3-install_man.patch
new file mode 100644
index 000000000000..491f92e364f6
--- /dev/null
+++ b/pkgs/os-specific/linux/fuse/fuse3-install_man.patch
@@ -0,0 +1,8 @@
+--- a/doc/meson.build	1970-01-01 01:00:01.000000000 +0100
++++ b/doc/meson.build	2017-09-22 01:53:01.859190506 +0200
+@@ -1,5 +1,4 @@
+ # Attention, emacs, please use -*- mode: python -*-
+ # (even though this isn't actually Python code)
+ 
+-install_man('fusermount3.1', 'mount.fuse.8')
+ 
diff --git a/pkgs/os-specific/linux/fuse/fuse3-no-udev.patch b/pkgs/os-specific/linux/fuse/fuse3-no-udev.patch
new file mode 100644
index 000000000000..c48abfe59c53
--- /dev/null
+++ b/pkgs/os-specific/linux/fuse/fuse3-no-udev.patch
@@ -0,0 +1,12 @@
++++ b/util/meson.build	2017-09-23 20:59:31.555392297 +0200
+--- a/util/meson.build	2017-09-23 20:59:58.333180437 +0200
+@@ -18,8 +18,7 @@
+            install: true,
+            install_dir: get_option('sbindir'))
+ 
+-udev = dependency('udev')
+-udevrulesdir = join_paths(udev.get_pkgconfig_variable('udevdir'), 'rules.d')
++udevrulesdir = 'etc/udev/rules.d'
+ 
+ meson.add_install_script('install_helper.sh', get_option('sysconfdir'),
+                          get_option('bindir'), udevrulesdir)
diff --git a/pkgs/servers/openafs-client/default.nix b/pkgs/servers/openafs-client/default.nix
index 93c854d8e08b..263df09ebb56 100644
--- a/pkgs/servers/openafs-client/default.nix
+++ b/pkgs/servers/openafs-client/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "openafs-${version}-${kernel.version}";
-  version = "1.6.21";
+  version = "1.6.21.1";
 
   src = fetchurl {
     url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
-    sha256 = "ba9c1f615edd53b64fc271ad369c49a816acedca70cdd090975033469a84118f";
+    sha256 = "0nisxnfl8nllcfmi7mxj1gngkpxd4jp1wapbkhz07qwqynq9dn5f";
   };
 
   nativeBuildInputs = [ autoconf automake flex yacc perl which ];
@@ -46,8 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.ipl10;
     platforms = platforms.linux;
     maintainers = [ maintainers.z77z ];
-    broken =
-      (builtins.compareVersions kernel.version  "3.18" == -1) ||
-      (builtins.compareVersions kernel.version "4.13" == 0);
+    broken = versionOlder kernel.version "3.18";
   };
 }
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index 7fdef68f30f7..5afe14209f64 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -8,12 +8,12 @@
 
 python2Packages.buildPythonApplication rec {
   pname = "salt";
-  version = "2016.11.5";
+  version = "2017.7.1";
   name = "${pname}-${version}";
 
   src = python2Packages.fetchPypi {
     inherit pname version;
-    sha256 = "1gpq6s87vy782z4b5h6s7zwndcxnllbdr2wldxr9hyp4lfj2f55q";
+    sha256 = "079kymgxyzhf47dd42l7f42jp45gx5im4k3g31bj25p1s0aq91py";
   };
 
   propagatedBuildInputs = with python2Packages; [
diff --git a/pkgs/tools/admin/salt/fix-libcrypto-loading.patch b/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
index fa2c5c0aa521..f7560b1fc56d 100644
--- a/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
+++ b/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
@@ -1,11 +1,14 @@
 diff --git a/salt/utils/rsax931.py b/salt/utils/rsax931.py
-index 9eb1f4a..d764f7a 100644
+index f827cc6db8..b728595186 100644
 --- a/salt/utils/rsax931.py
 +++ b/salt/utils/rsax931.py
-@@ -36,7 +36,6 @@ def _load_libcrypto():
-                 'libcrypto.so*'))
+@@ -47,6 +47,9 @@ def _load_libcrypto():
              lib = lib[0] if len(lib) > 0 else None
--        if lib:
--            return cdll.LoadLibrary(lib)
-+        return cdll.LoadLibrary('@libcrypto@')
+         if lib:
+             return cdll.LoadLibrary(lib)
++        else:
++            return cdll.LoadLibrary('@libcrypto@')
++
          raise OSError('Cannot locate OpenSSL libcrypto')
+ 
+ 
diff --git a/pkgs/tools/filesystems/encfs/default.nix b/pkgs/tools/filesystems/encfs/default.nix
index 518edbb3ea4e..3df76d828318 100644
--- a/pkgs/tools/filesystems/encfs/default.nix
+++ b/pkgs/tools/filesystems/encfs/default.nix
@@ -5,10 +5,10 @@
 
 stdenv.mkDerivation rec {
   name = "encfs-${version}";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
-    sha256 = "1pyldd802db987m13jfmy491mp8mnsv2mwki0ra4wbnngbqgalhv";
+    sha256 = "0isx7n4r8znk02464s0wvlzk6ry5mlnq3kgnd0rapnhjwdvwqr5y";
     rev = "v${version}";
     repo = "encfs";
     owner = "vgough";
diff --git a/pkgs/tools/filesystems/sshfs-fuse/build-man-pages.patch b/pkgs/tools/filesystems/sshfs-fuse/build-man-pages.patch
new file mode 100644
index 000000000000..fba1d250c42b
--- /dev/null
+++ b/pkgs/tools/filesystems/sshfs-fuse/build-man-pages.patch
@@ -0,0 +1,11 @@
+--- a/meson.build	2017-09-23 22:02:57.770555382 +0200
++++ b/meson.build	2017-09-23 23:11:28.258095182 +0200
+@@ -25,7 +25,7 @@
+ endif
+ 
+ 
+-rst2man = find_program('rst2man', required: false)
++rst2man = find_program('rst2man.py', required: true)
+   
+ cfg = configuration_data()
+ 
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index 274be305da84..eace7c2783e1 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -1,17 +1,25 @@
-{ stdenv, fetchFromGitHub, pkgconfig, glib, fuse3, autoreconfHook }:
+{ stdenv, fetchFromGitHub, meson, pkgconfig, ninja, glib, fuse3
+, buildManPages ? true, docutils
+}:
 
-stdenv.mkDerivation rec {
-  version = "3.2.0";
+let
+  inherit (stdenv.lib) optional;
+  rpath = stdenv.lib.makeLibraryPath [ fuse3 glib ];
+in stdenv.mkDerivation rec {
+  version = "3.3.0";
   name = "sshfs-fuse-${version}";
 
   src = fetchFromGitHub {
     owner = "libfuse";
     repo = "sshfs";
     rev = "sshfs-${version}";
-    sha256 = "09pqdibhcj1p7m6vxkqiprvbcxp9iq2lm1hb6w7p8iarmvp80rlv";
+    sha256 = "1hn5c0059ppjqygdhvapxm7lrqm5bnpwaxgjylskz04c0vr8nygp";
   };
 
-  buildInputs = [ pkgconfig glib fuse3 autoreconfHook ];
+  patches = optional buildManPages ./build-man-pages.patch;
+
+  nativeBuildInputs = [ meson pkgconfig ninja ];
+  buildInputs = [ fuse3 glib ] ++ optional buildManPages docutils;
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optional
     (stdenv.system == "i686-linux")
@@ -22,6 +30,10 @@ stdenv.mkDerivation rec {
     ln -sf $out/bin/sshfs $out/sbin/mount.sshfs
   '';
 
+  postFixup = ''
+       patchelf --set-rpath '${rpath}' "$out/bin/sshfs"
+  '';
+
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
     description = "FUSE-based filesystem that allows remote filesystems to be mounted over SSH";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 257d116ec79d..4df368a51edf 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12024,6 +12024,9 @@ with pkgs;
 
   dstat = callPackage ../os-specific/linux/dstat { };
 
+  # unstable until the first 1.x release
+  fscrypt-experimental = callPackage ../os-specific/linux/fscrypt { };
+
   fwupd = callPackage ../os-specific/linux/firmware/fwupd { inherit (gnome2) gtk_doc; inherit (python3Packages) pygobject3 pillow; };
 
   fwupdate = callPackage ../os-specific/linux/firmware/fwupdate { };
@@ -18886,6 +18889,7 @@ with pkgs;
 
   jack2Full = callPackage ../misc/jackaudio {
     libopus = libopus.override { withCustomModes = true; };
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox CoreAudio CoreFoundation;
   };
   libjack2 = jack2Full.override { prefix = "lib"; };