summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xlib/tests/modules.sh7
-rw-r--r--lib/tests/modules/declare-coerced-value-unsound.nix10
-rw-r--r--lib/tests/modules/define-value-string-arbitrary.nix3
-rw-r--r--lib/tests/modules/define-value-string-bigint.nix3
-rw-r--r--lib/types.nix11
-rw-r--r--maintainers/maintainer-list.nix5
-rw-r--r--nixos/modules/security/acme.nix8
-rw-r--r--pkgs/applications/altcoins/default.nix2
-rw-r--r--pkgs/applications/altcoins/particl/particl-core.nix47
-rw-r--r--pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock4
-rw-r--r--pkgs/applications/editors/neovim/ruby_provider/gemset.nix8
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/lynx/default.nix11
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/kernpcidev.patch18
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch39
-rw-r--r--pkgs/development/arduino/platformio/chrootenv.nix1
-rw-r--r--pkgs/development/compilers/souffle/default.nix15
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwebkit.nix7
-rw-r--r--pkgs/development/libraries/science/math/liblapack/3.5.0.nix64
-rw-r--r--pkgs/development/libraries/science/math/liblapack/default.nix7
-rw-r--r--pkgs/development/mobile/xcodeenv/simulate-app.nix2
-rw-r--r--pkgs/development/python-modules/neovim/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/jbuilder/default.nix6
-rw-r--r--pkgs/tools/X11/xidlehook/default.nix32
-rw-r--r--pkgs/tools/networking/wget/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix9
-rw-r--r--pkgs/top-level/ocaml-packages.nix7
28 files changed, 223 insertions, 117 deletions
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 96a91c0fffbc..c6b3fd912a9b 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -136,7 +136,12 @@ checkConfigOutput "true" "$@" ./define-module-check.nix
 # Check coerced value.
 checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix
 checkConfigOutput "\"24\"" config.value ./declare-coerced-value.nix ./define-value-string.nix
-checkConfigError 'The option value .* in .* is not.*string or signed integer.*' config.value ./declare-coerced-value.nix ./define-value-list.nix
+checkConfigError 'The option value .* in .* is not.*string or signed integer convertible to it' config.value ./declare-coerced-value.nix ./define-value-list.nix
+
+# Check coerced value with unsound coercion
+checkConfigOutput "12" config.value ./declare-coerced-value-unsound.nix
+checkConfigError 'The option value .* in .* is not.*8 bit signed integer.* or string convertible to it' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
+checkConfigError 'unrecognised JSON value' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix
 
 cat <<EOF
 ====== module tests ======
diff --git a/lib/tests/modules/declare-coerced-value-unsound.nix b/lib/tests/modules/declare-coerced-value-unsound.nix
new file mode 100644
index 000000000000..7a017f24e77d
--- /dev/null
+++ b/lib/tests/modules/declare-coerced-value-unsound.nix
@@ -0,0 +1,10 @@
+{ lib, ... }:
+
+{
+  options = {
+    value = lib.mkOption {
+      default = "12";
+      type = lib.types.coercedTo lib.types.str lib.toInt lib.types.ints.s8;
+    };
+  };
+}
diff --git a/lib/tests/modules/define-value-string-arbitrary.nix b/lib/tests/modules/define-value-string-arbitrary.nix
new file mode 100644
index 000000000000..8e3abaf536a0
--- /dev/null
+++ b/lib/tests/modules/define-value-string-arbitrary.nix
@@ -0,0 +1,3 @@
+{
+  value = "foobar";
+}
diff --git a/lib/tests/modules/define-value-string-bigint.nix b/lib/tests/modules/define-value-string-bigint.nix
new file mode 100644
index 000000000000..f27e31985c92
--- /dev/null
+++ b/lib/tests/modules/define-value-string-bigint.nix
@@ -0,0 +1,3 @@
+{
+  value = "1000";
+}
diff --git a/lib/types.nix b/lib/types.nix
index a334db5c7247..17acb92a9441 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -256,7 +256,7 @@ rec {
       functor = (defaultFunctor name) // { wrapped = elemType; };
     };
 
-    nonEmptyListOf = elemType: 
+    nonEmptyListOf = elemType:
       let list = addCheck (types.listOf elemType) (l: l != []);
       in list // { description = "non-empty " + list.description; };
 
@@ -419,16 +419,13 @@ rec {
       assert coercedType.getSubModules == null;
       mkOptionType rec {
         name = "coercedTo";
-        description = "${finalType.description} or ${coercedType.description}";
-        check = x: finalType.check x || coercedType.check x;
+        description = "${finalType.description} or ${coercedType.description} convertible to it";
+        check = x: finalType.check x || (coercedType.check x && finalType.check (coerceFunc x));
         merge = loc: defs:
           let
             coerceVal = val:
               if finalType.check val then val
-              else let
-                coerced = coerceFunc val;
-              in assert finalType.check coerced; coerced;
-
+              else coerceFunc val;
           in finalType.merge loc (map (def: def // { value = coerceVal def.value; }) defs);
         getSubOptions = finalType.getSubOptions;
         getSubModules = finalType.getSubModules;
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 9369a76688cb..782a3ee6aadd 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -998,6 +998,11 @@
     github = "demin-dmitriy";
     name = "Dmitriy Demin";
   };
+  demyanrogozhin = {
+    email = "demyan.rogozhin@gmail.com";
+    github = "demyanrogozhin";
+    name = "Demyan Rogozhin";
+  };
   derchris = {
     email = "derchris@me.com";
     github = "derchrisuk";
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix
index e430c2ddb903..9e5d636241e9 100644
--- a/nixos/modules/security/acme.nix
+++ b/nixos/modules/security/acme.nix
@@ -257,7 +257,7 @@ in
 
                     if [ -e /tmp/lastExitCode ] && [ "$(cat /tmp/lastExitCode)" = "0" ]; then
                       ${if data.activationDelay != null then ''
-                      
+
                       ${data.preDelay}
 
                       if [ -d '${lpath}' ]; then
@@ -266,6 +266,10 @@ in
                         systemctl --wait start acme-setlive-${cert}.service
                       fi
                       '' else data.postRun}
+
+                      # noop ensuring that the "if" block is non-empty even if
+                      # activationDelay == null and postRun == ""
+                      true
                     fi
                   '';
 
@@ -294,7 +298,7 @@ in
                         chown '${data.user}:${data.group}' '${cpath}'
                       fi
                   '';
-                  script = 
+                  script =
                     ''
                       workdir="$(mktemp -d)"
 
diff --git a/pkgs/applications/altcoins/default.nix b/pkgs/applications/altcoins/default.nix
index fa704b596591..9915e0a301a1 100644
--- a/pkgs/applications/altcoins/default.nix
+++ b/pkgs/applications/altcoins/default.nix
@@ -87,4 +87,6 @@ rec {
   parity = callPackage ./parity { };
   parity-beta = callPackage ./parity/beta.nix { };
   parity-ui = callPackage ./parity-ui { };
+
+  particl-core = callPackage ./particl/particl-core.nix { boost = boost165; miniupnpc = miniupnpc_2; withGui = false; };
 }
diff --git a/pkgs/applications/altcoins/particl/particl-core.nix b/pkgs/applications/altcoins/particl/particl-core.nix
new file mode 100644
index 000000000000..2524408429c3
--- /dev/null
+++ b/pkgs/applications/altcoins/particl/particl-core.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, autoreconfHook
+, boost
+, db48
+, fetchurl
+, libevent
+, libtool
+, miniupnpc
+, openssl
+, pkgconfig
+, utillinux
+, zeromq
+, zlib
+, withGui
+, unixtools
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "particl-core-${version}";
+  version     = "0.16.0.4";
+
+  src = fetchurl {
+    url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
+    sha256 = "1yy8pw13rn821jpi1zvzwi3ipxi1bgfxv8g6jz49qlbjzjmjcr68";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [
+    openssl db48 boost zlib miniupnpc libevent zeromq
+    unixtools.hexdump
+  ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ];
+
+  meta = {
+    description = "Privacy-Focused Marketplace & Decentralized Application Platform";
+    longDescription= ''
+      An open source, decentralized privacy platform built for global person to person eCommerce.
+    '';
+    homepage = https://particl.io/;
+    maintainers = with maintainers; [ demyanrogozhin ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock b/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock
index 87b011c4f8b4..a95ced76371d 100644
--- a/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock
+++ b/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock
@@ -1,9 +1,9 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    msgpack (1.2.2)
+    msgpack (1.2.4)
     multi_json (1.13.1)
-    neovim (0.6.2)
+    neovim (0.7.0)
       msgpack (~> 1.0)
       multi_json (~> 1.0)
 
diff --git a/pkgs/applications/editors/neovim/ruby_provider/gemset.nix b/pkgs/applications/editors/neovim/ruby_provider/gemset.nix
index aefecbf5ba83..af887161ea6c 100644
--- a/pkgs/applications/editors/neovim/ruby_provider/gemset.nix
+++ b/pkgs/applications/editors/neovim/ruby_provider/gemset.nix
@@ -2,10 +2,10 @@
   msgpack = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ai0sfdv9jnr333fsvkn7a8vqvn0iwiw83yj603a3i68ds1x6di1";
+      sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.4";
   };
   multi_json = {
     source = {
@@ -19,9 +19,9 @@
     dependencies = ["msgpack" "multi_json"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15r3j9bwlpm1ry7cp6059xb0irvsvvlmw53i28z6sf2khwfj5j53";
+      sha256 = "0b487dzz41im8cwzvfjqgf8kkrp6mpkvcbzhazrmqqw8gxyvfbq4";
       type = "gem";
     };
-    version = "0.6.2";
+    version = "0.7.0";
   };
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 6b2bb541a3a7..eaf304ca9fd4 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -28,6 +28,7 @@
 , libcanberra-gtk2
 , libgnome
 , libgnomeui
+, libnotify
 , defaultIconTheme
 , libGLU_combined
 , nspr
@@ -112,6 +113,7 @@ stdenv.mkDerivation {
       libcanberra-gtk2
       libgnome
       libgnomeui
+      libnotify
       libGLU_combined
       nspr
       nss
diff --git a/pkgs/applications/networking/browsers/lynx/default.nix b/pkgs/applications/networking/browsers/lynx/default.nix
index 9cad2838a39b..9cdd32d2aaed 100644
--- a/pkgs/applications/networking/browsers/lynx/default.nix
+++ b/pkgs/applications/networking/browsers/lynx/default.nix
@@ -9,21 +9,24 @@ assert sslSupport -> openssl != null;
 
 stdenv.mkDerivation rec {
   name = "lynx-${version}";
-  version = "2.8.9dev.16";
+  version = "2.8.9dev.17";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/lynx/tarballs/lynx${version}.tar.bz2"
       "https://invisible-mirror.net/archives/lynx/tarballs/lynx${version}.tar.bz2"
     ];
-    sha256 = "1j0vx871ghkm7fgrafnvd2ml3ywcl8d3gyhq02fhfb851c88lc84";
+    sha256 = "1lvfsnrw5mmwrmn1m76q9mx287xwm3h5lg8sv7bcqilc0ywi2f54";
   };
 
   enableParallelBuilding = true;
 
   hardeningEnable = [ "pie" ];
 
-  configureFlags = [ "--enable-widec" ] ++ stdenv.lib.optional sslSupport "--with-ssl";
+  configureFlags = [
+    "--enable-widec"
+    "--enable-ipv6"
+  ] ++ stdenv.lib.optional sslSupport "--with-ssl";
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ nukeReferences ]
@@ -40,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A text-mode web browser";
-    homepage = http://lynx.invisible-island.net/;
+    homepage = https://lynx.invisible-island.net/;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index ca0520f32a8f..d09a30f98a74 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -94,9 +94,7 @@ in stdenv.mkDerivation {
 
   patches =
      optional enableHardening ./hardened.patch
-  ++ [ ./qtx11extras.patch ];
-
-
+  ++ [ ./qtx11extras.patch ./kernpcidev.patch ];
 
   postPatch = ''
     sed -i -e 's|/sbin/ifconfig|${nettools}/bin/ifconfig|' \
diff --git a/pkgs/applications/virtualization/virtualbox/kernpcidev.patch b/pkgs/applications/virtualization/virtualbox/kernpcidev.patch
new file mode 100644
index 000000000000..5192227d7d01
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/kernpcidev.patch
@@ -0,0 +1,18 @@
+diff --git a/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c b/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c
+index b8019f7..b7d2e39 100644
+--- a/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c
++++ b/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c
+@@ -73,8 +73,11 @@ MODULE_LICENSE("GPL");
+ MODULE_VERSION(VBOX_VERSION_STRING);
+ #endif
+ 
+-
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0)
++# define PCI_DEV_GET(v,d,p)            pci_get_device(v,d,p)
++# define PCI_DEV_PUT(x)                pci_dev_put(x)
++# define PCI_DEV_GET_SLOT(bus, devfn)  pci_get_domain_bus_and_slot(0, bus, devfn)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
+ # define PCI_DEV_GET(v,d,p)            pci_get_device(v,d,p)
+ # define PCI_DEV_PUT(x)                pci_dev_put(x)
+ # define PCI_DEV_GET_SLOT(bus, devfn)  pci_get_bus_and_slot(bus, devfn)
diff --git a/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch b/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch
index bbc803d49c19..7722e2550bdb 100644
--- a/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch
+++ b/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch
@@ -1,8 +1,17 @@
-diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
-index ff3a1acb..b8705d8f 100644
+--- a/daemon/gdm-launch-environment.c
++++ b/daemon/gdm-launch-environment.c
+@@ -126,7 +126,7 @@
+                 "LC_COLLATE", "LC_MONETARY", "LC_MESSAGES", "LC_PAPER",
+                 "LC_NAME", "LC_ADDRESS", "LC_TELEPHONE", "LC_MEASUREMENT",
+                 "LC_IDENTIFICATION", "LC_ALL", "WINDOWPATH", "XCURSOR_PATH",
+-                "XDG_CONFIG_DIRS", NULL
++                "XDG_CONFIG_DIRS", "GDM_SESSIONS_DIR", NULL
+         };
+         char *system_data_dirs;
+         int i;
 --- a/daemon/gdm-session.c
 +++ b/daemon/gdm-session.c
-@@ -344,6 +344,7 @@ get_system_session_dirs (GdmSession *self)
+@@ -345,12 +345,17 @@
          char **search_dirs;
  
          static const char *x_search_dirs[] = {
@@ -10,8 +19,7 @@ index ff3a1acb..b8705d8f 100644
                  "/etc/X11/sessions/",
                  DMCONFDIR "/Sessions/",
                  DATADIR "/gdm/BuiltInSessions/",
-@@ -351,6 +352,10 @@ get_system_session_dirs (GdmSession *self)
-                 NULL
+                 DATADIR "/xsessions/",
          };
  
 +        if (getenv("GDM_SESSIONS_DIR") != NULL) {
@@ -21,3 +29,24 @@ index ff3a1acb..b8705d8f 100644
          static const char *wayland_search_dir = DATADIR "/wayland-sessions/";
  
          search_array = g_array_new (TRUE, TRUE, sizeof (char *));
+--- a/libgdm/gdm-sessions.c
++++ b/libgdm/gdm-sessions.c
+@@ -217,6 +217,7 @@
+ {
+         int         i;
+         const char *xorg_search_dirs[] = {
++                "/var/empty/",
+                 "/etc/X11/sessions/",
+                 DMCONFDIR "/Sessions/",
+                 DATADIR "/gdm/BuiltInSessions/",
+@@ -224,6 +225,10 @@
+                 NULL
+         };
+ 
++        if (g_getenv("GDM_SESSIONS_DIR") != NULL) {
++                xorg_search_dirs[0] = g_getenv("GDM_SESSIONS_DIR");
++        };
++
+ #ifdef ENABLE_WAYLAND_SUPPORT
+         const char *wayland_search_dirs[] = {
+                 DATADIR "/wayland-sessions/",
diff --git a/pkgs/development/arduino/platformio/chrootenv.nix b/pkgs/development/arduino/platformio/chrootenv.nix
index f46e705fb901..ae68e84ab1c2 100644
--- a/pkgs/development/arduino/platformio/chrootenv.nix
+++ b/pkgs/development/arduino/platformio/chrootenv.nix
@@ -20,6 +20,7 @@ let
       };
     in (with pkgs; [
       zlib
+      git
     ]) ++ (with python.pkgs; [
       python
       setuptools
diff --git a/pkgs/development/compilers/souffle/default.nix b/pkgs/development/compilers/souffle/default.nix
index 5289540e944c..099a591b407d 100644
--- a/pkgs/development/compilers/souffle/default.nix
+++ b/pkgs/development/compilers/souffle/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchFromGitHub, autoconf, automake, boost, bison, flex, openjdk, doxygen, perl, graphviz, libtool, lsb-release, ncurses, zlib, sqlite }:
+{ stdenv, fetchFromGitHub
+, boost, bison, flex, openjdk, doxygen
+, perl, graphviz, libtool, ncurses, zlib, sqlite
+, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   version = "1.2.0";
@@ -11,12 +14,10 @@ stdenv.mkDerivation rec {
     sha256 = "1g8yvm40h102mab8lacpl1cwgqsw1js0s1yn4l84l9fjdvlh2ygd";
   };
 
+  nativeBuildInputs = [ autoreconfHook bison flex ];
+
   buildInputs = [
-    autoconf automake boost bison flex openjdk
-    # Used for 1.2.0
-    libtool lsb-release ncurses zlib sqlite
-    # Used for docs
-    doxygen perl graphviz
+    boost openjdk ncurses zlib sqlite doxygen perl graphviz
   ];
 
   patchPhase = ''
@@ -29,8 +30,6 @@ stdenv.mkDerivation rec {
   # for boost and failing there, so we tell it what's what here.
   configureFlags = [ "--with-boost-libdir=${boost}/lib" ];
 
-  preConfigure = "./bootstrap";
-
   meta = with stdenv.lib; {
     description = "A translator of declarative Datalog programs into the C++ language";
     homepage    = "http://souffle-lang.github.io/";
diff --git a/pkgs/development/libraries/qt-5/modules/qtwebkit.nix b/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
index 6834b7ce87b6..d73bc370f990 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
@@ -28,10 +28,15 @@ qtModule {
   preConfigure = ''
     QMAKEPATH="$PWD/Tools/qmake''${QMAKEPATH:+:}$QMAKEPATH"
     fixQtBuiltinPaths . '*.pr?'
+    # Fix hydra's "Log limit exceeded"
+    export qmakeFlags="$qmakeFlags CONFIG+=silent"
   '';
 
   NIX_CFLAGS_COMPILE =
-    [ "-Wno-expansion-to-defined" ] # with gcc7 this warning blows the log over Hydra's limit
+    # with gcc7 this warning blows the log over Hydra's limit
+    [ "-Wno-expansion-to-defined" ]
+    # with clang this warning blows the log over Hydra's limit
+    ++ optional stdenv.isDarwin "-Wno-inconsistent-missing-override"
     ++ optionals flashplayerFix
       [
         ''-DNIXPKGS_LIBGTK2="${getLib gtk2}/lib/libgtk-x11-2.0"''
diff --git a/pkgs/development/libraries/science/math/liblapack/3.5.0.nix b/pkgs/development/libraries/science/math/liblapack/3.5.0.nix
deleted file mode 100644
index 61a45cbab94b..000000000000
--- a/pkgs/development/libraries/science/math/liblapack/3.5.0.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{
-  stdenv,
-  fetchurl,
-  gfortran,
-  cmake,
-  python2,
-  atlas ? null,
-  shared ? false
-}:
-let
-  atlasMaybeShared = if atlas != null then atlas.override { inherit shared; }
-                     else null;
-  usedLibExtension = if shared then ".so" else ".a";
-  inherit (stdenv.lib) optional optionals concatStringsSep;
-  inherit (builtins) hasAttr attrNames;
-  version = "3.5.0";
-in
-
-stdenv.mkDerivation rec {
-  name = "liblapack-${version}";
-  src = fetchurl {
-    url = "http://www.netlib.org/lapack/lapack-${version}.tgz";
-    sha256 = "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s";
-  };
-
-  propagatedBuildInputs = [ atlasMaybeShared ];
-  buildInputs = [ gfortran cmake ];
-  nativeBuildInputs = [ python2 ];
-
-  cmakeFlags = [
-    "-DUSE_OPTIMIZED_BLAS=ON"
-    "-DCMAKE_Fortran_FLAGS=-fPIC"
-  ]
-  ++ (optionals (atlas != null) [
-    "-DBLAS_ATLAS_f77blas_LIBRARY=${atlasMaybeShared}/lib/libf77blas${usedLibExtension}"
-    "-DBLAS_ATLAS_atlas_LIBRARY=${atlasMaybeShared}/lib/libatlas${usedLibExtension}"
-  ])
-  ++ (optional shared "-DBUILD_SHARED_LIBS=ON")
-  # If we're on darwin, CMake will automatically detect impure paths. This switch
-  # prevents that.
-  ++ (optional stdenv.isDarwin "-DCMAKE_OSX_SYSROOT:PATH=''")
-  ;
-
-  doCheck = ! shared;
-
-  checkPhase = "
-    sed -i 's,^#!.*,#!${python2.interpreter},' lapack_testing.py
-    ctest
-  ";
-
-  enableParallelBuilding = true;
-
-  passthru = {
-    blas = atlas;
-  };
-
-  meta = with stdenv.lib; {
-    inherit version;
-    description = "Linear Algebra PACKage";
-    homepage = http://www.netlib.org/lapack/;
-    license = licenses.bsd3;
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix
index baf77696b16f..c68454fbe4a1 100644
--- a/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -13,14 +13,14 @@ let
   usedLibExtension = if shared then ".so" else ".a";
   inherit (stdenv.lib) optional optionals concatStringsSep;
   inherit (builtins) hasAttr attrNames;
-  version = "3.4.1";
+  version = "3.8.0";
 in
 
 stdenv.mkDerivation rec {
   name = "liblapack-${version}";
   src = fetchurl {
-    url = "http://www.netlib.org/lapack/lapack-${version}.tgz";
-    sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f";
+    url = "http://www.netlib.org/lapack/lapack-${version}.tar.gz";
+    sha256 = "1xmwi2mqmipvg950gb0rhgprcps8gy8sjm8ic9rgy2qjlv22rcny";
   };
 
   propagatedBuildInputs = [ atlasMaybeShared ];
@@ -44,7 +44,6 @@ stdenv.mkDerivation rec {
   doCheck = ! shared;
 
   checkPhase = "
-    sed -i 's,^#!.*,#!${python2.interpreter},' lapack_testing.py
     ctest
   ";
 
diff --git a/pkgs/development/mobile/xcodeenv/simulate-app.nix b/pkgs/development/mobile/xcodeenv/simulate-app.nix
index 5f71b5994080..04b6f2cbc834 100644
--- a/pkgs/development/mobile/xcodeenv/simulate-app.nix
+++ b/pkgs/development/mobile/xcodeenv/simulate-app.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
         echo "Please provide a UDID of a simulator:"
         read udid
     else
-        # If a parameter has been provided, consider that a device UDID an use that
+        # If a parameter has been provided, consider that a device UDID and use that
         udid="$1"
     fi
     
diff --git a/pkgs/development/python-modules/neovim/default.nix b/pkgs/development/python-modules/neovim/default.nix
index 646a8e7bb112..6d96732cbb07 100644
--- a/pkgs/development/python-modules/neovim/default.nix
+++ b/pkgs/development/python-modules/neovim/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "neovim";
-  version = "0.2.4";
+  version = "0.2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0accfgyvihs08bwapgakx6w93p4vbrq2448n2z6gw88m2hja9jm3";
+    sha256 = "0xlj54w9bnmq4vidk6r08hwa6az7drahi08w1qf4j9q45rs8mrbc";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/tools/ocaml/jbuilder/default.nix b/pkgs/development/tools/ocaml/jbuilder/default.nix
index d48bc4101113..38fd4323d5ca 100644
--- a/pkgs/development/tools/ocaml/jbuilder/default.nix
+++ b/pkgs/development/tools/ocaml/jbuilder/default.nix
@@ -2,16 +2,18 @@
 
 stdenv.mkDerivation rec {
   name = "jbuilder-${version}";
-  version = "1.0+beta17";
+  version = "1.0+beta20";
   src = fetchFromGitHub {
     owner = "ocaml";
     repo = "dune";
     rev = "${version}";
-    sha256 = "04pyry459hp2r2s9m5xkcq1glzp20ddz5wb1w8nzp3zgygy0431x";
+    sha256 = "0571lzm8caq6wnia7imgy4a27x5l2bvxiflg0jrwwml0ylnii65f";
   };
 
   buildInputs = [ ocaml ];
 
+  dontAddPrefix = true;
+
   installPhase = "${opam}/bin/opam-installer -i --prefix=$out --libdir=$OCAMLFIND_DESTDIR";
 
   preFixup = "rm -rf $out/jbuilder";
diff --git a/pkgs/tools/X11/xidlehook/default.nix b/pkgs/tools/X11/xidlehook/default.nix
new file mode 100644
index 000000000000..a71531eebc5b
--- /dev/null
+++ b/pkgs/tools/X11/xidlehook/default.nix
@@ -0,0 +1,32 @@
+{ lib, rustPlatform, fetchFromGitHub, x11, xorg, libpulseaudio, pkgconfig, patchelf }:
+
+rustPlatform.buildRustPackage rec {
+  name = "xidlehook-${version}";
+  version = "0.4.6";
+
+  src = fetchFromGitHub {
+    owner = "jD91mZM2";
+    repo = "xidlehook";
+    rev = version;
+
+    sha256 = "0h84ichm1v2wdmm4w1n7jr70yfb9hhi7kykvd99ppg00h1x9lr7w";
+  };
+
+  cargoSha256 = "0a1bl6fnfw6xy71q3b5zij52p9skylj1ivqj8my44bfsid2qfn7d";
+
+  buildInputs = [ x11 xorg.libXScrnSaver libpulseaudio ];
+  nativeBuildInputs = [ pkgconfig patchelf ];
+
+  postFixup = ''
+    RPATH="$(patchelf --print-rpath $out/bin/xidlehook)"
+    patchelf --set-rpath "$RPATH:${libpulseaudio}/lib" $out/bin/xidlehook
+  '';
+
+  meta = with lib; {
+    description = "xautolock rewrite in Rust, with a few extra features";
+    homepage = https://github.com/jD91mZM2/xidlehook;
+    license = licenses.mit;
+    maintainers = with maintainers; [ jD91mZM2 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/networking/wget/default.nix b/pkgs/tools/networking/wget/default.nix
index e2d4712d5bc3..5c1636ddb862 100644
--- a/pkgs/tools/networking/wget/default.nix
+++ b/pkgs/tools/networking/wget/default.nix
@@ -5,11 +5,11 @@
 , openssl ? null }:
 
 stdenv.mkDerivation rec {
-  name = "wget-1.19.4";
+  name = "wget-1.19.5";
 
   src = fetchurl {
     url = "mirror://gnu/wget/${name}.tar.lz";
-    sha256 = "16jmcqcasx3q9k4azssryli9qyxfq0sfijw998g8zp58cnwzzh1g";
+    sha256 = "0xfaxmlnih7dhkyks5wi4vrn0n1xshmy6gx6fb2k1120sprydyr9";
   };
 
   patches = [
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7fb532e14c47..8ea5d55a2817 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5772,6 +5772,8 @@ with pkgs;
 
   xiccd = callPackage ../tools/misc/xiccd { };
 
+  xidlehook = callPackage ../tools/X11/xidlehook {};
+
   xorriso = callPackage ../tools/cd-dvd/xorriso { };
 
   xpf = callPackage ../tools/text/xml/xpf {
@@ -14898,6 +14900,8 @@ with pkgs;
 
   stellar-core = self.altcoins.stellar-core;
 
+  particl-core = self.altcoins.particl-core;
+
   aumix = callPackage ../applications/audio/aumix {
     gtkGUI = false;
   };
@@ -19943,7 +19947,7 @@ with pkgs;
     # great feature, but it's of limited use with pre-built binaries
     # coming from a central build farm.
     tolerateCpuTimingInaccuracy = true;
-    liblapack = liblapack_3_5_0WithoutAtlas;
+    liblapack = liblapackWithoutAtlas;
     withLapack = false;
   };
 
@@ -19966,10 +19970,7 @@ with pkgs;
   # without atlas. Etc.
   liblapackWithAtlas = callPackage ../development/libraries/science/math/liblapack {};
   liblapackWithoutAtlas = liblapackWithAtlas.override { atlas = null; };
-  liblapack_3_5_0WithAtlas = callPackage ../development/libraries/science/math/liblapack/3.5.0.nix {};
-  liblapack_3_5_0WithoutAtlas = liblapack_3_5_0WithAtlas.override { atlas = null; };
   liblapack = liblapackWithAtlas;
-  liblapack_3_5_0 = liblapack_3_5_0WithAtlas;
 
   liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { };
 
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 92f772bb25ea..bce2662abfd1 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -1043,5 +1043,10 @@ in rec
 
   ocamlPackages_latest = ocamlPackages_4_06;
 
-  ocamlPackages = ocamlPackages_4_05;
+  ocamlPackages =
+    # OCaml 4.05 is broken on aarch64
+    if system == "aarch64-linux" then
+      ocamlPackages_4_06
+    else
+      ocamlPackages_4_05;
 }