summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/altcoins/default.nix3
-rw-r--r--pkgs/applications/display-managers/sddm/default.nix9
-rw-r--r--pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch59
-rw-r--r--pkgs/applications/display-managers/sddm/series1
-rw-r--r--pkgs/applications/editors/android-studio/packages.nix6
-rw-r--r--pkgs/applications/editors/eclipse/default.nix23
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix6
-rw-r--r--pkgs/applications/editors/rstudio/default.nix8
-rw-r--r--pkgs/applications/editors/vscode/default.nix8
-rw-r--r--pkgs/applications/graphics/digikam/0001-Disable-fno-operator-names.patch25
-rw-r--r--pkgs/applications/graphics/digikam/default.nix22
-rw-r--r--pkgs/applications/misc/alacritty/default.nix8
-rw-r--r--pkgs/applications/misc/bitcoinarmory/default.nix6
-rw-r--r--pkgs/applications/misc/blender/default.nix9
-rw-r--r--pkgs/applications/misc/electrum/default.nix2
-rw-r--r--pkgs/applications/misc/playonlinux/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix15
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix12
-rw-r--r--pkgs/applications/science/math/caffe/default.nix23
-rw-r--r--pkgs/applications/science/math/cntk/default.nix98
-rw-r--r--pkgs/applications/science/misc/root/ROOT-8728-extra.patch175
-rw-r--r--pkgs/applications/science/misc/root/default.nix14
-rw-r--r--pkgs/applications/science/misc/root/thisroot.patch15
-rw-r--r--pkgs/applications/virtualization/docker/default.nix38
-rw-r--r--pkgs/applications/virtualization/lkl/default.nix6
-rw-r--r--pkgs/applications/virtualization/xen/4.5.nix3
-rw-r--r--pkgs/applications/window-managers/sway/default.nix8
27 files changed, 261 insertions, 345 deletions
diff --git a/pkgs/applications/altcoins/default.nix b/pkgs/applications/altcoins/default.nix
index 0264ce397762..1a21efc32322 100644
--- a/pkgs/applications/altcoins/default.nix
+++ b/pkgs/applications/altcoins/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, boost155, boost162, boost163, openssl_1_1_0, haskellPackages, darwin, libsForQt5 }:
+{ callPackage, boost155, boost162, openssl_1_1_0, haskellPackages, darwin, libsForQt5 }:
 
 rec {
 
@@ -59,6 +59,5 @@ rec {
   zcash = callPackage ./zcash {
     withGui = false;
     openssl = openssl_1_1_0;
-    boost = boost163;
   };
 }
diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix
index 3ce8d075410b..86a963bdac48 100644
--- a/pkgs/applications/display-managers/sddm/default.nix
+++ b/pkgs/applications/display-managers/sddm/default.nix
@@ -1,11 +1,11 @@
-{ mkDerivation, lib, copyPathsToStore, fetchFromGitHub, fetchpatch
+{ mkDerivation, lib, fetchFromGitHub, fetchpatch
 , cmake, extra-cmake-modules, pkgconfig, libxcb, libpthreadstubs, lndir
 , libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd
 }:
 
 let
 
-  version = "0.15.0";
+  version = "0.16.0";
 
 in mkDerivation rec {
   name = "sddm-${version}";
@@ -14,11 +14,10 @@ in mkDerivation rec {
     owner = "sddm";
     repo = "sddm";
     rev = "v${version}";
-    sha256 = "1wissgl7wd7fblq8ghz8n2fr6wqip7h88p9fiarfpvi1918fgng8";
+    sha256 = "1j0rc8nk8bz7sxa0bc6lx9v7r3zlcfyicngfjqb894ni9k71kzsb";
   };
 
-  patches =
-    copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [ ./sddm-ignore-config-mtime.patch ];
 
   postPatch =
     # Module Qt5::Test must be included in `find_package` before it is used.
diff --git a/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch
index 836df2de292d..aac09dfe876b 100644
--- a/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch
+++ b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch
@@ -1,28 +1,43 @@
-From e9d82bfbc49993a5be2c93f6b72a969630587f26 Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@gmail.com>
-Date: Mon, 23 Nov 2015 06:56:28 -0600
-Subject: [PATCH 1/2] ignore config mtime
-
----
- src/common/ConfigReader.cpp | 5 -----
- 1 file changed, 5 deletions(-)
-
 diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp
-index cfc9940..5bf5a6a 100644
+index 4b5983c..911c511 100644
 --- a/src/common/ConfigReader.cpp
 +++ b/src/common/ConfigReader.cpp
-@@ -138,11 +138,6 @@ namespace SDDM {
-         QString currentSection = QStringLiteral(IMPLICIT_SECTION);
+@@ -147,16 +147,13 @@ namespace SDDM {
+         // * m_path (classic fallback /etc/sddm.conf)
  
-         QFile in(m_path);
--        QDateTime modificationTime = QFileInfo(in).lastModified();
--        if (modificationTime <= m_fileModificationTime) {
+         QStringList files;
+-        QDateTime latestModificationTime = QFileInfo(m_path).lastModified();
+ 
+         if (!m_sysConfigDir.isEmpty()) {
+             //include the configDir in modification time so we also reload on any files added/removed
+             QDir dir(m_sysConfigDir);
+             if (dir.exists()) {
+-                latestModificationTime = std::max(latestModificationTime,  QFileInfo(m_sysConfigDir).lastModified());
+                 foreach (const QFileInfo &file, dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::LocaleAware)) {
+                     files << (file.absoluteFilePath());
+-                    latestModificationTime = std::max(latestModificationTime, file.lastModified());
+                 }
+             }
+         }
+@@ -164,21 +161,14 @@ namespace SDDM {
+             //include the configDir in modification time so we also reload on any files added/removed
+             QDir dir(m_configDir);
+             if (dir.exists()) {
+-                latestModificationTime = std::max(latestModificationTime,  QFileInfo(m_configDir).lastModified());
+                 foreach (const QFileInfo &file, dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::LocaleAware)) {
+                     files << (file.absoluteFilePath());
+-                    latestModificationTime = std::max(latestModificationTime, file.lastModified());
+                 }
+             }
+         }
+ 
+         files << m_path;
+ 
+-        if (latestModificationTime <= m_fileModificationTime) {
 -            return;
 -        }
--        m_fileModificationTime = modificationTime;
- 
-         in.open(QIODevice::ReadOnly);
-         while (!in.atEnd()) {
--- 
-2.6.3
-
+-        m_fileModificationTime = latestModificationTime;
+-
+         foreach (const QString &filepath, files) {
+             loadInternal(filepath);
+         }
diff --git a/pkgs/applications/display-managers/sddm/series b/pkgs/applications/display-managers/sddm/series
deleted file mode 100644
index cb6ea65fedb1..000000000000
--- a/pkgs/applications/display-managers/sddm/series
+++ /dev/null
@@ -1 +0,0 @@
-sddm-ignore-config-mtime.patch
\ No newline at end of file
diff --git a/pkgs/applications/editors/android-studio/packages.nix b/pkgs/applications/editors/android-studio/packages.nix
index 061d75d4016f..4e834afa9d06 100644
--- a/pkgs/applications/editors/android-studio/packages.nix
+++ b/pkgs/applications/editors/android-studio/packages.nix
@@ -27,9 +27,9 @@ in rec {
 
   preview = mkStudio rec {
     pname = "android-studio-preview";
-    version = "3.0.0.16"; # "Android Studio 3.0 RC 1"
-    build = "171.4392136";
-    sha256Hash = "13zaqbbl7bqhiwh0ybbxkfv0h90qsfpa7sim778n2j32jjvdcby5";
+    version = "3.0.0.17"; # "Android Studio 3.0 RC 2"
+    build = "171.4402976";
+    sha256Hash = "18f5cq1dcmyjxaq520kqjac332bpp35pis02yplh6gzp65i4bvvf";
 
     meta = stable.meta // {
       description = "The Official IDE for Android (preview version)";
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index b039bd168d87..5ef29081cf01 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -8,6 +8,9 @@
 
 assert stdenv ? glibc;
 
+# http://download.eclipse.org/eclipse/downloads/ is the main place to
+# find the downloads needed for new versions
+
 rec {
 
   buildEclipse = import ./build-eclipse.nix {
@@ -111,16 +114,16 @@ rec {
   };
 
   eclipse-platform-47 = buildEclipse {
-    name = "eclipse-platform-4.7";
+    name = "eclipse-platform-4.7.1a";
     description = "Eclipse Platform Oxygen";
     sources = {
       "x86_64-linux" = fetchurl {
-          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7-201706120950/eclipse-platform-4.7-linux-gtk-x86_64.tar.gz;
-          sha256 = "0hrgijydxvd2zz1npv5qw8d79f48a6lsdw3qy1wqf7k59aqyg2fq";
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.1a-201710090410/eclipse-platform-4.7.1a-linux-gtk-x86_64.tar.gz;
+          sha256 = "13gyrnhyhdpsrbi5nl0fhpwrqz3gdyqq3r0m1f2z3y6yr75sgw33";
         };
       "i686-linux" = fetchurl {
-          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7-201706120950/eclipse-platform-4.7-linux-gtk.tar.gz;
-          sha256 = "00m89j26m8nj190q144wx8d88mldx1z6i797p8isg3rhbz3x5dbc";
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.1a-201710090410/eclipse-platform-4.7.1a-linux-gtk.tar.gz;
+          sha256 = "013dfk23wa4jy177ywrkkr16wdjf6jxzjcz6mkl4ygki47yj9c5s";
         };
     };
   };
@@ -165,16 +168,16 @@ rec {
   };
 
   eclipse-sdk-47 = buildEclipse {
-    name = "eclipse-sdk-4.7";
+    name = "eclipse-sdk-4.7.1a";
     description = "Eclipse Oxygen Classic";
     sources = {
       "x86_64-linux" = fetchurl {
-          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7-201706120950/eclipse-SDK-4.7-linux-gtk-x86_64.tar.gz;
-          sha256 = "1nz0hl0gg4a8iffnaggbhdw0ra8a7wljlimvijbbybh0nhvfd9n3";
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.1a-201710090410/eclipse-SDK-4.7.1a-linux-gtk-x86_64.tar.gz;
+          sha256 = "05xpdbig170rw7k5dx33dlyz187wv62mma8s5wxrqi7f4117sx4y";
         };
       "i686-linux" = fetchurl {
-          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7-201706120950/eclipse-SDK-4.7-linux-gtk.tar.gz;
-          sha256 = "0dar69v7d7bkl18si45bccvil809a85ghb7k88m1q2cq1kd2r8z5";
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.1a-201710090410/eclipse-SDK-4.7.1a-linux-gtk.tar.gz;
+          sha256 = "09c9m88k1cm9bhd900p5yf2q9pijrymgjcbhmagz0fcwhldrv0ys";
         };
     };
   };
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index b9b0ee61c0b0..f3459e57d9b2 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -364,12 +364,12 @@ rec {
 
   jdt = buildEclipseUpdateSite rec {
     name = "jdt-${version}";
-    version = "4.7";
+    version = "4.7.1a";
 
     src = fetchzip {
       stripRoot = false;
-      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7-201706120950/org.eclipse.jdt-4.7.zip";
-      sha256 = "0y17shnlh90gg9226lraknvdnp2i71ck91dnxbbzvxl8b64v8v1p";
+      url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.1a-201710090410/org.eclipse.jdt-4.7.1a.zip;
+      sha256 = "1hpvpj8ghfk8aqbzfrpcxw3wxrczq6zd3bpx4sxjrsi926jsjaf4";
     };
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix
index bf8374fdaaa1..a5049e4236b3 100644
--- a/pkgs/applications/editors/rstudio/default.nix
+++ b/pkgs/applications/editors/rstudio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, makeDesktopItem, cmake, boost163, zlib, openssl,
+{ stdenv, fetchurl, fetchpatch, makeDesktopItem, cmake, boost, zlib, openssl,
 R, qt5, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc
 }:
 
@@ -10,7 +10,9 @@ in
 stdenv.mkDerivation rec {
   name = "RStudio-${version}";
 
-  buildInputs = [ cmake boost163 zlib openssl R qt5.full qt5.qtwebkit qt5.qtwebchannel libuuid unzip ant jdk makeWrapper pandoc ];
+  nativeBuildInputs = [ cmake unzip ant jdk makeWrapper pandoc ];
+
+  buildInputs = [ boost zlib openssl R qt5.full qt5.qtwebkit qt5.qtwebchannel libuuid ];
 
   src = fetchurl {
     url = "https://github.com/rstudio/rstudio/archive/v${version}.tar.gz";
@@ -96,6 +98,8 @@ stdenv.mkDerivation rec {
       cp ${pandoc}/bin/pandoc dependencies/common/pandoc/
     '';
 
+  enableParallelBuilding = true;
+
   cmakeFlags = [ "-DRSTUDIO_TARGET=Desktop" "-DQT_QMAKE_EXECUTABLE=$NIX_QT5_TMP/bin/qmake" ];
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix
index b5b2a49c42b6..23bcdae5fb21 100644
--- a/pkgs/applications/editors/vscode/default.nix
+++ b/pkgs/applications/editors/vscode/default.nix
@@ -2,7 +2,7 @@
   makeWrapper, libXScrnSaver, libxkbfile, libsecret }:
 
 let
-  version = "1.17.1";
+  version = "1.17.2";
   channel = "stable";
 
   plat = {
@@ -12,9 +12,9 @@ let
   }.${stdenv.system};
 
   sha256 = {
-    "i686-linux" = "09nvibfn2z5cxjcdxqa2xy63jqwpvfgk7hdy1pc0mnpszz6kn4v7";
-    "x86_64-linux" = "1fb3hil7dggnz7hks1i806ckd3wl5g0a2syjdbh9dx5iqarp2782";
-    "x86_64-darwin" = "1vgbsmbcsdxc0h0ny61a3rhbwxzrfzkxl47sy3w410xcqlv8ad2v";
+    "i686-linux" = "04mnj74pqkgfgdacq4643qrd7ybka1366lr7mwn0f70lk05wb2h2";
+    "x86_64-linux" = "0y37wwvq6flaa2fh2r6b9cplbcszq726zrx6b8slzq6s5wl2lgmr";
+    "x86_64-darwin" = "1cqyir7ijwafy68d5vbw47cs1x2lqs1wjnvhhw15yi2d7c14fq7q";
   }.${stdenv.system};
 
   archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz";
diff --git a/pkgs/applications/graphics/digikam/0001-Disable-fno-operator-names.patch b/pkgs/applications/graphics/digikam/0001-Disable-fno-operator-names.patch
deleted file mode 100644
index 149a2b2b1aca..000000000000
--- a/pkgs/applications/graphics/digikam/0001-Disable-fno-operator-names.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From beb9ad0149adfe448acfa650fb3e171d5fdd7e27 Mon Sep 17 00:00:00 2001
-From: Moritz Ulrich <moritz@tarn-vedra.de>
-Date: Wed, 22 Feb 2017 15:28:11 +0100
-Subject: [PATCH] Disable `-fno-operator-names`
-
----
- core/CMakeLists.txt | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt
-index 89e06827e6..01d0c88ea9 100644
---- a/core/CMakeLists.txt
-+++ b/core/CMakeLists.txt
-@@ -98,6 +98,8 @@ include(MacroOpenCV)
- include(MacroJPEG)
- include(MacroBoolTo01)
- 
-+string(REPLACE "-fno-operator-names" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-+
- # ==================================================================================================
- 
- option(ENABLE_OPENCV3               "Build digiKam with OpenCV3 instead OpenCV2 (default=OFF)"                           OFF)
--- 
-2.11.1
-
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index 96b1ca54d558..44ee807fe984 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -8,6 +8,7 @@
 , qtsvg
 , qtwebkit
 
+, kcalcore
 , kconfigwidgets
 , kcoreaddons
 , kdoctools
@@ -28,12 +29,15 @@
 , lensfun
 , libgphoto2
 , libkipi
+, libksane
 , liblqr1
 , libqtav
 , libusb1
+, mesa
 , marble
 , mysql
-, opencv
+, opencv3
+, pcre
 , threadweaver
 
 # For panorama and focus stacking
@@ -46,17 +50,15 @@
 
 mkDerivation rec {
   name    = "digikam-${version}";
-  version = "5.4.0";
+  version = "5.7.0";
 
   src = fetchurl {
     url = "http://download.kde.org/stable/digikam/${name}.tar.xz";
-    sha256 = "0dgsgji14l5zvxny36hrfsp889fsfrsbbn9bg57m18404xp903kg";
+    sha256 = "1xah079g47fih8l9qy1ifppfvmq5yms5y1z54nvxdyz8nsszy19n";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules kdoctools wrapGAppsHook ];
 
-  patches = [ ./0001-Disable-fno-operator-names.patch ];
-
   buildInputs = [
     bison
     boost
@@ -68,19 +70,21 @@ mkDerivation rec {
     lensfun
     libgphoto2
     libkipi
+    libksane
     liblqr1
     libqtav
     libusb1
+    mesa
     mysql
-    opencv
-  ];
+    opencv3
+    pcre
 
-  propagatedBuildInputs = [
     qtbase
     qtxmlpatterns
     qtsvg
     qtwebkit
 
+    kcalcore
     kconfigwidgets
     kcoreaddons
     kfilemetadata
@@ -98,8 +102,6 @@ mkDerivation rec {
   enableParallelBuilding = true;
 
   cmakeFlags = [
-    "-DLIBUSB_LIBRARIES=${libusb1.out}/lib"
-    "-DLIBUSB_INCLUDE_DIR=${libusb1.dev}/include/libusb-1.0"
     "-DENABLE_MYSQLSUPPORT=1"
     "-DENABLE_INTERNALMYSQL=1"
     "-DENABLE_MEDIAPLAYER=1"
diff --git a/pkgs/applications/misc/alacritty/default.nix b/pkgs/applications/misc/alacritty/default.nix
index 79333e7d9fa1..411705e6a6ae 100644
--- a/pkgs/applications/misc/alacritty/default.nix
+++ b/pkgs/applications/misc/alacritty/default.nix
@@ -29,16 +29,16 @@ let
 in
 
 buildRustPackage rec {
-  name = "alacritty-unstable-2017-09-02";
+  name = "alacritty-unstable-2017-10-17";
 
   src = fetchFromGitHub {
     owner = "jwilm";
     repo = "alacritty";
-    rev = "22fa4260fc9210fbb5288090df79c92e7b3788e4";
-    sha256 = "0jjvvm0fm25p1h1rgfqlnhq4bwrjdxpb2pgnmpik9pl7qwy3q7s1";
+    rev = "5ac42bb13bc68c5cbc44869dc9fc9ac19402a6e6";
+    sha256 = "0h37x12r33xwz9vf1n8y24c0ph5w17lhkpfi5q6lbpgidvbs6fyx";
   };
 
-  depsSha256 = "19lrj4i6vzmf22r6xg99zcwvzjpiar8pqin1m2nvv78xzxx5yvgb";
+  depsSha256 = "05gkl2zg546i2pm0gx11s56f7dk72qpm39kml1d2myj81s0vyb5z";
 
   buildInputs = [
     cmake
diff --git a/pkgs/applications/misc/bitcoinarmory/default.nix b/pkgs/applications/misc/bitcoinarmory/default.nix
index f4547c69dc4a..a9d32d4b2522 100644
--- a/pkgs/applications/misc/bitcoinarmory/default.nix
+++ b/pkgs/applications/misc/bitcoinarmory/default.nix
@@ -7,9 +7,9 @@ let
 
   version = "0.96.1";
   sitePackages = pythonPackages.python.sitePackages;
-  inherit (pythonPackages) mkPythonDerivation pyqt4 psutil twisted;
+  inherit (pythonPackages) buildPythonApplication pyqt4 psutil twisted;
 
-in mkPythonDerivation {
+in buildPythonApplication {
 
   name = "bitcoinarmory-${version}";
 
@@ -21,6 +21,8 @@ in mkPythonDerivation {
     sha256 = "0pjk5qx16n3kvs9py62666qkwp2awkgd87by4karbj7vk6p1l14h"; fetchSubmodules = true;
   };
 
+  format = "other";
+
   # FIXME bitcoind doesn't die on shutdown. Need some sort of patch to fix that.
   #patches = [ ./shutdown-fix.patch ];
 
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 86b2ab6eb1ca..b348f253b350 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, stdenv_gcc5, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
+{ stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
 , ilmbase, libXi, libX11, libXext, libXrender
 , libjpeg, libpng, libsamplerate, libsndfile
 , libtiff, mesa, openal, opencolorio, openexr, openimageio, openjpeg_1, python
@@ -10,7 +10,7 @@
 
 with lib;
 
-(if cudaSupport then stdenv_gcc5 else stdenv).mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "blender-2.79";
 
   src = fetchurl {
@@ -57,9 +57,8 @@ with lib;
     ++ optional jackaudioSupport "-DWITH_JACK=ON"
     ++ optionals cudaSupport
       [ "-DWITH_CYCLES_CUDA_BINARIES=ON"
-        # Disable the sm_20 architecture to work around a segfault in
-        # ptxas, as suggested on #blendercoders.
-        "-DCYCLES_CUDA_BINARIES_ARCH=sm_21;sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61"
+        # Disable architectures before sm_30 to support new CUDA toolkits.
+        "-DCYCLES_CUDA_BINARIES_ARCH=sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61"
       ]
     ++ optional colladaSupport "-DWITH_OPENCOLLADA=ON";
 
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index 0781617eb695..abe8d0dde84b 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -13,6 +13,7 @@ python2Packages.buildPythonApplication rec {
     dns
     ecdsa
     jsonrpclib
+    matplotlib
     pbkdf2
     protobuf
     pyaes
@@ -30,7 +31,6 @@ python2Packages.buildPythonApplication rec {
     # TODO plugins
     # amodem
     # btchip
-    # matplotlib
   ];
 
   preBuild = ''
diff --git a/pkgs/applications/misc/playonlinux/default.nix b/pkgs/applications/misc/playonlinux/default.nix
index b604905320b2..3f39a356312e 100644
--- a/pkgs/applications/misc/playonlinux/default.nix
+++ b/pkgs/applications/misc/playonlinux/default.nix
@@ -24,7 +24,7 @@
 assert stdenv.isLinux;
 
 let
-  version = "4.2.10";
+  version = "4.2.12";
 
   binpath = stdenv.lib.makeBinPath
     [ cabextract
@@ -57,7 +57,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz";
-    sha256 = "0ws94hgxajaww450q8ivrp28ypv39mashs29ak41faxf29cr097m";
+    sha256 = "03k8v9dknc5hfrfzqw1nkpifz7wkixv3mvjl1vnp4fx8rj2xrjrq";
   };
 
   nativeBuildInputs = [ makeWrapper ];
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 c9c67c015992..56cab9de5d07 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -98,7 +98,7 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "7.0.6";
+  version = "7.0.7";
 
   lang = "en-US";
 
@@ -108,7 +108,7 @@ let
         "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
         "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
       ];
-      sha256 = "11z3r0577p78ifi9lk4lrh9wb46k77wy77g5p9l8il02760bgq6m";
+      sha256 = "1848j28majbb61r080g6dw0lmh7hbp515iidyjdrpgcwhazzg06j";
     };
 
     "i686-linux" = fetchurl {
@@ -116,7 +116,7 @@ let
         "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
         "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
       ];
-      sha256 = "1r8v5w66clmm76kzpkf0f5jcxs76whb5xrl20rkirp79fybqn4hx";
+      sha256 = "08wvpymmyg16ifz23awnjy0pbva8xh1fdx2i8c1n18x3k12d5r7h";
     };
   };
 in
@@ -246,6 +246,11 @@ stdenv.mkDerivation rec {
     # having to synchronize between local state and store.
     mv TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js defaults/pref/torbrowser.js
 
+    # Preload extensions by moving into the runtime instead of storing under the
+    # user's profile directory.
+    mv "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/extensions/"* \
+      "$TBB_IN_STORE/browser/extensions"
+
     # Hard-code paths to geoip data files.  TBB resolves the geoip files
     # relative to torrc-defaults_path but if we do not hard-code them
     # here, these paths end up being written to the torrc in the user's
@@ -301,10 +306,6 @@ stdenv.mkDerivation rec {
     # easily generated by firefox at startup.
     rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/{compatibility.ini,extensions.ini,extensions.json}
 
-    # Ensure that we're always using the up-to-date extensions.
-    ln -snf "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/extensions" \
-      "\$HOME/TorBrowser/Data/Browser/profile.default/extensions"
-
     ${optionalString pulseaudioSupport ''
       # Figure out some envvars for pulseaudio
       : "\''${XDG_RUNTIME_DIR:=/run/user/\$(id -u)}"
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix
index 53c278bc0650..86c2f53b9add 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix
@@ -16,14 +16,14 @@
 {
   https-everywhere = stdenv.mkDerivation rec {
     name = "https-everywhere-${version}";
-    version = "2017.9.12";
+    version = "2017.10.4";
 
     extid = "https-everywhere-eff@eff.org";
 
     src = fetchgit {
       url = "https://git.torproject.org/https-everywhere.git";
       rev = "refs/tags/${version}";
-      sha256 = "179429pngyksp9xkr86nf2m5q6zmg19c7ng1dhqjfb1vsncwgw66";
+      sha256 = "1g7971xygnhagnb25xjdf6mli6091ai9igx42d0ww88g8i0cqfzj";
       fetchSubmodules = true; # for translations, TODO: remove
     };
 
@@ -47,13 +47,13 @@
 
   noscript = stdenv.mkDerivation rec {
     name = "noscript-${version}";
-    version = "5.0.10";
+    version = "5.1.2";
 
     extid = "{73a6fe31-595d-460b-a920-fcc0f8843232}";
 
     src = fetchurl {
       url = "https://secure.informaction.com/download/releases/noscript-${version}.xpi";
-      sha256 = "18k5karbaj5mhd9cyjbqgik6044bw88rjalkh6anjanxbn503j6g";
+      sha256 = "1fzspdiwhjabwz1yxb3gzj7giz9jbc1xxm65i93rvhzcp537cs42";
     };
 
     unpackPhase = ":";
@@ -88,14 +88,14 @@
 
   tor-launcher = stdenv.mkDerivation rec {
     name = "tor-launcher-${version}";
-    version = "0.2.12.3";
+    version = "0.2.13";
 
     extid = "tor-launcher@torproject.org";
 
     src = fetchgit {
       url = "https://git.torproject.org/tor-launcher.git";
       rev = "refs/tags/${version}";
-      sha256 = "0126x48pjiy2zm4l8jzhk70w24hviaz560ffp4lb9x0ar615bc9q";
+      sha256 = "1f98v88y2clwvjiw77kxqc9cacp5h0489a540nc2wmsx7vnskrq0";
     };
 
     nativeBuildInputs = [ zip ];
diff --git a/pkgs/applications/science/math/caffe/default.nix b/pkgs/applications/science/math/caffe/default.nix
index cb28d38bf1d0..8dc3e3ce43dc 100644
--- a/pkgs/applications/science/math/caffe/default.nix
+++ b/pkgs/applications/science/math/caffe/default.nix
@@ -22,22 +22,23 @@ assert pythonSupport -> (python != null && numpy != null);
 
 stdenv.mkDerivation rec {
   name = "caffe-${version}";
-  version = "1.0-rc5";
+  version = "1.0";
 
   src = fetchFromGitHub {
     owner = "BVLC";
     repo = "caffe";
-    rev = "rc5";
-    sha256 = "0lfmmc0n6xvkpygvxclzrvd0zigb4yfc5612anv2ahlxpfi9031c";
+    rev = version;
+    sha256 = "104jp3cm823i3cdph7hgsnj6l77ygbwsy35mdmzhmsi4jxprd9j3";
   };
 
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ cmake doxygen ];
 
-  cmakeFlags = [ "-DCUDA_ARCH_NAME=All" ]
-               ++ lib.optional (!cudaSupport) "-DCPU_ONLY=ON"
-               ++ lib.optional (!pythonSupport) "-DBUILD_python=OFF";
+  cmakeFlags = [
+    "-DCUDA_ARCH_NAME=All"
+    (if pythonSupport then "-Dpython_version=${python.version}" else "-DBUILD_python=OFF")
+  ] ++ lib.optional (!cudaSupport) "-DCPU_ONLY=ON";
 
   buildInputs = [ boost google-gflags glog protobuf hdf5-cpp lmdb leveldb snappy opencv atlas ]
                 ++ lib.optional cudaSupport cudatoolkit
@@ -49,6 +50,16 @@ stdenv.mkDerivation rec {
   outputs = [ "bin" "out"];
   propagatedBuildOutputs = []; # otherwise propagates out -> bin cycle
 
+  preConfigure = lib.optionalString (cudaSupport && lib.versionAtLeast cudatoolkit.version "9.0") ''
+    # CUDA 9.0 doesn't support sm_20
+    sed -i 's,20 21(20) ,,' cmake/Cuda.cmake
+  '' + lib.optionalString (python.isPy3 or false) ''
+    sed -i \
+      -e 's,"python-py''${boost_py_version}",python3,g' \
+      -e 's,''${Boost_PYTHON-PY''${boost_py_version}_FOUND},''${Boost_PYTHON3_FOUND},g' \
+      cmake/Dependencies.cmake
+  '';
+
   postInstall = ''
     # Internal static library.
     rm $out/lib/libproto.a
diff --git a/pkgs/applications/science/math/cntk/default.nix b/pkgs/applications/science/math/cntk/default.nix
new file mode 100644
index 000000000000..80a5f6f032b7
--- /dev/null
+++ b/pkgs/applications/science/math/cntk/default.nix
@@ -0,0 +1,98 @@
+{ lib, stdenv, fetchgit, fetchFromGitHub, fetchpatch, cmake
+, openblas, opencv3, libzip, boost, protobuf, openmpi
+, onebitSGDSupport ? false
+, cudaSupport ? false, cudatoolkit, nvidia_x11
+, cudnnSupport ? false, cudnn
+}:
+
+assert cudnnSupport -> cudaSupport;
+
+let
+  # Old specific version required for CNTK.
+  cub = fetchFromGitHub {
+    owner = "NVlabs";
+    repo = "cub";
+    rev = "1.4.1";
+    sha256 = "1lcdwblz03c0yq1lxndg566kg14b5qm14x5qixjbmz6wq85kgmqc";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "CNTK-${version}";
+  version = "2.2";
+
+  # Submodules
+  src = fetchgit {
+    url = "https://github.com/Microsoft/CNTK";
+    rev = "v${version}";
+    sha256 = "0q4knrwiyphb2fbqf9jzqvkz2jzj6jmbmang3lavdvsh7z0n8zz9";
+  };
+
+  patches = [
+    # Fix "'exp' was not declared"
+    (fetchpatch {
+      url = "https://github.com/imriss/CNTK/commit/ef1cca6df95cc507deb8471df2c0dd8cbfeef23b.patch";
+      sha256 = "0z7xyrxwric0c4h7rfs05f544mcq6d10wgs0vvfcyd2pcf410hy7";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ openblas opencv3 libzip boost protobuf openmpi ]
+             ++ lib.optional cudaSupport cudatoolkit
+             ++ lib.optional cudnnSupport cudnn;
+
+  configureFlags = [
+    "--with-opencv=${opencv3}"
+    "--with-libzip=${libzip.dev}"
+    "--with-openblas=${openblas}"
+    "--with-boost=${boost.dev}"
+    "--with-protobuf=${protobuf}"
+    "--with-mpi=${openmpi}"
+  ] ++ lib.optionals cudaSupport [
+    "--cuda=yes"
+    "--with-cuda=${cudatoolkit}"
+    "--with-gdk-include=${cudatoolkit}/include"
+    "--with-gdk-nvml-lib=${nvidia_x11}/lib"
+    "--with-cub=${cub}"
+  ] ++ lib.optional onebitSGDSupport "--1bitsgd=yes";
+
+  configurePhase = ''
+    sed -i \
+      -e 's,^GIT_STATUS=.*,GIT_STATUS=,' \
+      -e 's,^GIT_COMMIT=.*,GIT_COMMIT=v${version},' \
+      -e 's,^GIT_BRANCH=.*,GIT_BRANCH=v${version},' \
+      -e 's,^BUILDER=.*,BUILDER=nixbld,' \
+      -e 's,^BUILDMACHINE=.*,BUILDMACHINE=machine,' \
+      -e 's,^BUILDPATH=.*,BUILDPATH=/homeless-shelter,' \
+      -e '/git does not exist/d' \
+      Tools/generate_build_info
+
+    patchShebangs .
+    mkdir build
+    cd build
+    ${lib.optionalString cudnnSupport ''
+      mkdir cuda
+      ln -s ${cudnn}/include cuda
+      export configureFlags="$configureFlags --with-cudnn=$PWD"
+    ''}
+    ../configure $configureFlags
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    # Moving to make patchelf remove references later.
+    mv lib $out
+    cp bin/cntk $out/bin
+  '';
+
+  hardeningDisable = [ "format" ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/Microsoft/CNTK";
+    description = "An open source deep-learning toolkit";
+    license = if onebitSGDSupport then licenses.unfreeRedistributable else licenses.mit;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/applications/science/misc/root/ROOT-8728-extra.patch b/pkgs/applications/science/misc/root/ROOT-8728-extra.patch
deleted file mode 100644
index a396a848f142..000000000000
--- a/pkgs/applications/science/misc/root/ROOT-8728-extra.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx
-index d71cb74..076facb 100644
---- a/core/metacling/src/TCling.cxx
-+++ b/core/metacling/src/TCling.cxx
-@@ -756,7 +756,7 @@ int TCling_GenerateDictionary(const std::vector<std::string> &classes,
-                gSystem->PrependPathName(dirbase, header);
-                dir = gSystem->DirName(dir);
-             }
--            fileContent += TString("#include \"") + header + "\"\n";
-+            fileContent += (TString("#include \"") + header + "\"\n").Data();
-          }
-       }
-       for (it = fwdDecls.begin(); it != fwdDecls.end(); ++it) {
-@@ -1061,7 +1061,7 @@ TCling::TCling(const char *name, const char *title)
-       ROOT::TMetaUtils::SetPathsForRelocatability(clingArgsStorage);
- 
-       // Add -I early so ASTReader can find the headers.
--      std::string interpInclude(TROOT::GetEtcDir());
-+      std::string interpInclude(TROOT::GetEtcDir().Data());
-       clingArgsStorage.push_back("-I" + interpInclude);
- 
-       // Add include path to etc/cling. FIXME: This is a short term solution. The
-@@ -1070,7 +1070,7 @@ TCling::TCling(const char *name, const char *title)
-       clingArgsStorage.push_back("-I" + interpInclude + "/cling");
- 
-       // Add the root include directory and etc/ to list searched by default.
--      clingArgsStorage.push_back(std::string("-I" + TROOT::GetIncludeDir()));
-+      clingArgsStorage.push_back(std::string(("-I" + TROOT::GetIncludeDir()).Data()));
- 
-       // Add the current path to the include path
-       // TCling::AddIncludePath(".");
-diff --git a/hist/hist/src/TFormula.cxx b/hist/hist/src/TFormula.cxx
-index abf3929..e7dad98 100644
---- a/hist/hist/src/TFormula.cxx
-+++ b/hist/hist/src/TFormula.cxx
-@@ -1677,7 +1677,7 @@ void TFormula::ProcessFormula(TString &formula)
-          if(fun.fName.Contains("::")) // add support for nested namespaces
-          {
-             // look for last occurence of "::"
--            std::string name(fun.fName);
-+            std::string name(fun.fName.Data());
-             size_t index = name.rfind("::");
-             assert(index != std::string::npos);
-             TString className = fun.fName(0,fun.fName(0,index).Length());
-@@ -1869,7 +1869,7 @@ void TFormula::ProcessFormula(TString &formula)
- 
-          // save copy of inputFormula in a std::strig for the unordered map
-          // and also formula is same as FClingInput typically and it will be modified
--         std::string inputFormula = std::string(formula);
-+         std::string inputFormula = std::string(formula.Data());
- 
- 
-          // valid input formula - try to put into Cling
-diff --git a/main/src/nbmain.cxx b/main/src/nbmain.cxx
-index 55d4f2f..8490149 100644
---- a/main/src/nbmain.cxx
-+++ b/main/src/nbmain.cxx
-@@ -173,9 +173,9 @@ static bool CreateStamp(string dest)
- 
- int main()
- {
--   string rootbin(TROOT::GetBinDir());
--   string rootlib(TROOT::GetLibDir());
--   string rootetc(TROOT::GetEtcDir());
-+   string rootbin(TROOT::GetBinDir().Data());
-+   string rootlib(TROOT::GetLibDir().Data());
-+   string rootetc(TROOT::GetEtcDir().Data());
- 
-    // If needed, install ROOT notebook files in the user's home directory
- #ifdef WIN32
-diff --git a/math/minuit/src/TMinuitMinimizer.cxx b/math/minuit/src/TMinuitMinimizer.cxx
-index 4e2082a..18215c0 100644
---- a/math/minuit/src/TMinuitMinimizer.cxx
-+++ b/math/minuit/src/TMinuitMinimizer.cxx
-@@ -454,7 +454,7 @@ std::string TMinuitMinimizer::VariableName(unsigned int ivar) const {
-    // return the variable name
-    if (!CheckMinuitInstance()) return std::string();
-    if (!CheckVarIndex(ivar)) return std::string();
--   return std::string(fMinuit->fCpnam[ivar]);
-+   return std::string(fMinuit->fCpnam[ivar].Data());
- }
- 
- int TMinuitMinimizer::VariableIndex(const std::string & ) const {
-diff --git a/tmva/tmva/src/Factory.cxx b/tmva/tmva/src/Factory.cxx
-index 36060ef..a1bbe34 100644
---- a/tmva/tmva/src/Factory.cxx
-+++ b/tmva/tmva/src/Factory.cxx
-@@ -390,7 +390,7 @@ TMVA::MethodBase* TMVA::Factory::BookMethod( TMVA::DataLoader *loader, TString t
-    // initialize methods
-    IMethod* im;
-    if (!boostNum) {
--      im = ClassifierFactory::Instance().Create( std::string(theMethodName),
-+      im = ClassifierFactory::Instance().Create( std::string(theMethodName.Data()),
-                                                  fJobName,
-                                                  methodTitle,
-                                                  loader->DefaultDataSetInfo(),
-@@ -933,7 +933,7 @@ void TMVA::Factory::TrainAllMethods()
- 
-        // recreate
-        m = dynamic_cast<MethodBase*>( ClassifierFactory::Instance()
--                   .Create( std::string(Types::Instance().GetMethodName(methodType)),
-+                   .Create( std::string(Types::Instance().GetMethodName(methodType).Data()),
-                       dataSetInfo, weightfile ) );
-        if( m->GetMethodType() == Types::kCategory ){
-       MethodCategory *methCat = (dynamic_cast<MethodCategory*>(m));
-diff --git a/tmva/tmva/src/MethodBoost.cxx b/tmva/tmva/src/MethodBoost.cxx
-index 1349e5d..2125ab3 100644
---- a/tmva/tmva/src/MethodBoost.cxx
-+++ b/tmva/tmva/src/MethodBoost.cxx
-@@ -389,7 +389,7 @@ void TMVA::MethodBoost::Train()
-       // the first classifier shows the option string output, the rest not
-       if (fCurrentMethodIdx>0) TMVA::MsgLogger::InhibitOutput();
- 
--      IMethod* method = ClassifierFactory::Instance().Create(std::string(fBoostedMethodName),
-+      IMethod* method = ClassifierFactory::Instance().Create(std::string(fBoostedMethodName.Data()),
-                                                              GetJobName(),
-                                                              Form("%s_B%04i", fBoostedMethodTitle.Data(),fCurrentMethodIdx),
-                                                              DataInfo(),
-diff --git a/tmva/tmva/src/MethodCategory.cxx b/tmva/tmva/src/MethodCategory.cxx
-index c2cbe80..d278cca 100644
---- a/tmva/tmva/src/MethodCategory.cxx
-+++ b/tmva/tmva/src/MethodCategory.cxx
-@@ -147,7 +147,7 @@ TMVA::IMethod* TMVA::MethodCategory::AddMethod( const TCut& theCut,
-                                                 const TString& theTitle,
-                                                 const TString& theOptions )
- {
--   std::string addedMethodName = std::string(Types::Instance().GetMethodName(theMethod));
-+   std::string addedMethodName = std::string(Types::Instance().GetMethodName(theMethod).Data());
- 
-    Log() << kINFO << "Adding sub-classifier: " << addedMethodName << "::" << theTitle << Endl;
- 
-diff --git a/tmva/tmva/src/MethodCompositeBase.cxx b/tmva/tmva/src/MethodCompositeBase.cxx
-index 98fa5da..96bd9a3 100644
---- a/tmva/tmva/src/MethodCompositeBase.cxx
-+++ b/tmva/tmva/src/MethodCompositeBase.cxx
-@@ -194,7 +194,7 @@ void TMVA::MethodCompositeBase::ReadWeightsFromXML( void* wghtnode )
-          ((TMVA::MethodBoost*)this)->BookMethod( Types::Instance().GetMethodType( methodTypeName), methodName,  optionString );
-       }
-       fMethods.push_back(ClassifierFactory::Instance().Create(
--                                                              std::string(methodTypeName),jobName, methodName,DataInfo(),optionString));
-+                                                              std::string(methodTypeName.Data()),jobName, methodName,DataInfo(),optionString));
- 
-       fMethodWeight.push_back(methodWeight);
-       MethodBase* meth = dynamic_cast<MethodBase*>(fMethods.back());
-@@ -259,7 +259,7 @@ void  TMVA::MethodCompositeBase::ReadWeightsFromStream( std::istream& istr )
-             ((TMVA::MethodBoost*)this)->BookMethod( Types::Instance().GetMethodType( methodName), methodTitle,  optionString );
-       }
-       else methodTitle=Form("%s (%04i)",GetMethodName().Data(),fCurrentMethodIdx);
--      fMethods.push_back(ClassifierFactory::Instance().Create( std::string(methodName), jobName,
-+      fMethods.push_back(ClassifierFactory::Instance().Create( std::string(methodName.Data()), jobName,
-                                                                methodTitle,DataInfo(), optionString) );
-       fMethodWeight.push_back( methodWeight );
-       if(MethodBase* m = dynamic_cast<MethodBase*>(fMethods.back()) )
-diff --git a/tmva/tmva/src/Reader.cxx b/tmva/tmva/src/Reader.cxx
-index 94a8b28..0b67867 100644
---- a/tmva/tmva/src/Reader.cxx
-+++ b/tmva/tmva/src/Reader.cxx
-@@ -401,7 +401,7 @@ TMVA::IMethod* TMVA::Reader::BookMVA( const TString& methodTag, const TString& w
- 
- TMVA::IMethod* TMVA::Reader::BookMVA( TMVA::Types::EMVA methodType, const TString& weightfile )
- {
--   IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType )),
-+   IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType ).Data()),
-                                                       DataInfo(), weightfile );
- 
-    MethodBase *method = (dynamic_cast<MethodBase*>(im));
-@@ -440,7 +440,7 @@ TMVA::IMethod* TMVA::Reader::BookMVA( TMVA::Types::EMVA methodType, const char*
- #if ROOT_VERSION_CODE >= ROOT_VERSION(5,26,00)
- 
-    // books MVA method from weightfile
--   IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType )),
-+   IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType ).Data()),
-                                                       DataInfo(), "" );
- 
-    MethodBase *method = (dynamic_cast<MethodBase*>(im));
diff --git a/pkgs/applications/science/misc/root/default.nix b/pkgs/applications/science/misc/root/default.nix
index ac04321ae0c4..676395d03d53 100644
--- a/pkgs/applications/science/misc/root/default.nix
+++ b/pkgs/applications/science/misc/root/default.nix
@@ -1,30 +1,24 @@
 { stdenv, fetchurl, fetchpatch, cmake, pcre, pkgconfig, python2
-, libX11, libXpm, libXft, libXext, mesa, zlib, libxml2, lzma, gsl
+, libX11, libXpm, libXft, libXext, mesa, zlib, libxml2, lz4, lzma, gsl, xxHash
 , Cocoa, OpenGL, noSplash ? false }:
 
 stdenv.mkDerivation rec {
   name = "root-${version}";
-  version = "6.10.04";
+  version = "6.10.08";
 
   src = fetchurl {
     url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
-    sha256 = "0nwg4bw02v6vahm2rwfaj7fzp3ffhjg5jk7h20il4246swhxw6s6";
+    sha256 = "12mddl6pqwwc9nr4jqzp6h1jm4zycazd3v88dz306m1nmk97dlic";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake pcre python2 zlib libxml2 lzma gsl ]
+  buildInputs = [ cmake pcre python2 zlib libxml2 lz4 lzma gsl xxHash ]
     ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext mesa ]
     ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
 
   patches = [
     ./sw_vers.patch
-
-    # this prevents thisroot.sh from setting $p, which interferes with stdenv setup
-    ./thisroot.patch
-
-    # https://sft.its.cern.ch/jira/browse/ROOT-8728
-    ./ROOT-8728-extra.patch
   ];
 
   preConfigure = ''
diff --git a/pkgs/applications/science/misc/root/thisroot.patch b/pkgs/applications/science/misc/root/thisroot.patch
deleted file mode 100644
index 57cd5838e64a..000000000000
--- a/pkgs/applications/science/misc/root/thisroot.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/config/thisroot.sh b/config/thisroot.sh
-index 85dee20..532cb28 100644
---- a/config/thisroot.sh
-+++ b/config/thisroot.sh
-@@ -15,8 +15,8 @@ drop_from_path()
-       return 1
-    fi
- 
--   p=$1
--   drop=$2
-+   local p=$1
-+   local drop=$2
- 
-    newpath=`echo $p | sed -e "s;:${drop}:;:;g" \
-                           -e "s;:${drop};;g"   \
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index 49920e28f766..48bb512e1341 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -46,10 +46,10 @@ rec {
       };
 
       # This should go into the containerd derivation once 1.0.0 is out
-      preBuild = (optionalString (version == "17.09.0-ce") ''
+      preBuild = ''
         mkdir $(pwd)/vendor/src
         mv $(pwd)/vendor/{github.com,golang.org,google.golang.org} $(pwd)/vendor/src/
-      '') + oldAttrs.preBuild;
+      '' + oldAttrs.preBuild;
     });
     docker-tini = tini.overrideAttrs  (oldAttrs: rec {
       name = "docker-init";
@@ -122,7 +122,13 @@ rec {
 
     installPhase = ''
       install -Dm755 ./components/cli/docker $out/libexec/docker/docker
-      install -Dm755 ./components/engine/bundles/${version}/dynbinary-daemon/dockerd-${version} $out/libexec/docker/dockerd
+
+      if [ -d "./components/engine/bundles/${version}" ]; then
+        install -Dm755 ./components/engine/bundles/${version}/dynbinary-daemon/dockerd-${version} $out/libexec/docker/dockerd
+      else
+        install -Dm755 ./components/engine/bundles/dynbinary-daemon/dockerd-${version} $out/libexec/docker/dockerd
+      fi
+
       makeWrapper $out/libexec/docker/docker $out/bin/docker \
         --prefix PATH : "$out/libexec/docker:$extraPath"
       makeWrapper $out/libexec/docker/dockerd $out/bin/dockerd \
@@ -175,7 +181,7 @@ rec {
       homepage = https://www.docker.com/;
       description = "An open source project to pack, ship and run any application as a lightweight container";
       license = licenses.asl20;
-      maintainers = with maintainers; [ offline tailhook vdemeester ];
+      maintainers = with maintainers; [ nequissimus offline tailhook vdemeester ];
       platforms = platforms.linux;
     };
   };
@@ -183,18 +189,6 @@ rec {
   # Get revisions from
   # https://github.com/docker/docker-ce/blob/v${version}/components/engine/hack/dockerfile/binaries-commits
 
-  docker_17_06 = dockerGen rec {
-    version = "17.06.2-ce";
-    rev = "cec0b72a9940e047e945a09e1febd781e88366d6"; # git commit
-    sha256 = "1scqx28vzh72ziq00lbx92vsb896mj974j8f0zg11y6qc5n5jx3l";
-    runcRev = "810190ceaa507aa2727d7ae6f4790c76ec150bd2";
-    runcSha256 = "0f1x1z262qg579qb1w21axj3mibq4fbff3gamliw49sdqqnb7vk3";
-    containerdRev = "6e23458c129b551d5c9871e5174f6b1b7f6d1170";
-    containerdSha256 = "12kzc5z1nhxdbizzr494ywilbs6rdv39v5ql7lmfzwh350gwlg93";
-    tiniRev = "949e6facb77383876aeff8a6944dde66b3089574";
-    tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
-  };
-
   docker_17_09 = dockerGen rec {
     version = "17.09.0-ce";
     rev = "afdb6d44a80f777069885a9ee0e0f86cf841b1bb"; # git commit
@@ -206,4 +200,16 @@ rec {
     tiniRev = "949e6facb77383876aeff8a6944dde66b3089574";
     tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
   };
+
+  docker_17_10 = dockerGen rec {
+    version = "17.10.0-ce";
+    rev = "f4ffd2511ce93aa9e5eefdf0e912f77543080b0b"; # git commit
+    sha256 = "07x47cfdaz4lhlga1pchcbqqy0nd2q6zch0ycag18vzi99w4gmh2";
+    runcRev = "0351df1c5a66838d0c392b4ac4cf9450de844e2d";
+    runcSha256 = "1cmkdv6rli7v0y0fddqxvrvzd486fg9ssp3kgkya3szkljzz4xj0";
+    containerdRev = "06b9cb35161009dcb7123345749fef02f7cea8e0";
+    containerdSha256 = "10hms8a2nn69nfnwly6923jzx40c3slpsdhjhff4bxh36flpf9gd";
+    tiniRev = "949e6facb77383876aeff8a6944dde66b3089574";
+    tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
+  };
 }
diff --git a/pkgs/applications/virtualization/lkl/default.nix b/pkgs/applications/virtualization/lkl/default.nix
index b790a15e607f..c62fa63ea594 100644
--- a/pkgs/applications/virtualization/lkl/default.nix
+++ b/pkgs/applications/virtualization/lkl/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, bc, python, fuse, libarchive }:
 
 stdenv.mkDerivation rec {
-  name = "lkl-2017-08-09";
-  rev  = "083cdeece0577635d523244dcf0da86074e23e4e";
+  name = "lkl-2017-10-18";
+  rev  = "bfb315c4612c38427e3239d0a427a125d9ba0ede";
 
   outputs = [ "dev" "lib" "out" ];
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     inherit rev;
     owner  = "lkl";
     repo   = "linux";
-    sha256 = "1fyh0p54jgsqywswj40zbw64jbqx2w10wax1k3j2szzlhjrv9x1a";
+    sha256 = "172ccn2gsybnji7giiqq63bvp9nsw8kri88pjlvinwpwsv7x81aa";
   };
 
   # Fix a /usr/bin/env reference in here that breaks sandboxed builds
diff --git a/pkgs/applications/virtualization/xen/4.5.nix b/pkgs/applications/virtualization/xen/4.5.nix
index 5fe4fa823fea..614122a3b24e 100644
--- a/pkgs/applications/virtualization/xen/4.5.nix
+++ b/pkgs/applications/virtualization/xen/4.5.nix
@@ -1,4 +1,5 @@
 { stdenv, callPackage, fetchurl, fetchpatch, fetchgit
+, ocamlPackages_4_02
 , withInternalQemu ? true
 , withInternalTraditionalQemu ? true
 , withInternalSeabios ? true
@@ -414,4 +415,4 @@ callPackage (import ./generic.nix (rec {
       -i tools/libxl/libxl_device.c
   '';
 
-})) args
+})) ({ ocamlPackages = ocamlPackages_4_02; } // args)
diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix
index 2c94f7f6fecc..8de87d2e8fd6 100644
--- a/pkgs/applications/window-managers/sway/default.nix
+++ b/pkgs/applications/window-managers/sway/default.nix
@@ -5,17 +5,15 @@
 , libXdmcp
 }:
 
-let
-  # TODO: Sway 0.14.0 with wlc 0.0.10 segfaults
-  version = "0.13.0";
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "sway-${version}";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "Sircmpwn";
     repo = "sway";
     rev = "${version}";
-    sha256 = "1vgk4rl51nx66yzpwg4yhnbj7wc30k5q0hh5lf8y0i1nvpal0p3q";
+    sha256 = "1l8v9cdzd44bm4q71d47vqg6933b8j42q1a61r362vz2la1rcpq2";
   };
 
   nativeBuildInputs = [