From b8ae6b12f822a84f580806834e7610ec21513402 Mon Sep 17 00:00:00 2001 From: Benjamin Asbach Date: Thu, 19 Sep 2019 22:57:20 +0000 Subject: [PATCH 01/82] netbeans: 11.0 -> 11.1 --- pkgs/applications/editors/netbeans/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix index ba01304f723..9185fbd54a6 100644 --- a/pkgs/applications/editors/netbeans/default.nix +++ b/pkgs/applications/editors/netbeans/default.nix @@ -3,7 +3,7 @@ }: let - version = "11.0"; + version = "11.1"; desktopItem = makeDesktopItem { name = "netbeans"; exec = "netbeans"; @@ -18,8 +18,8 @@ stdenv.mkDerivation { pname = "netbeans"; inherit version; src = fetchurl { - url = "mirror://apache/incubator/netbeans/incubating-netbeans/incubating-${version}/incubating-netbeans-${version}-bin.zip"; - sha512 = "15mv59njrnq3sjfzb0n7xcc79kpixygf37cxvbswnvm651cw6lb1i9w8wbjivh0z4zcf3f62vbmshxh5pkaxqpqsg0iyy6gddfbwzwx"; + url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip"; + sha512 = "bb061b9258d524b7b53b3b5ee9aa95111f7a391a5e2c5c0bc949164166af9a03d0cebbde2b47a8853fb765307b4c93ce8389a9c87bef26c92c08cdf446314e4d"; }; buildCommand = '' @@ -48,7 +48,7 @@ stdenv.mkDerivation { convert -resize "$size"x"$size" netbeans_1024x1024x32.png $out/share/icons/hicolor/"$size"x"$size"/apps/netbeans.png fi done; - + # Create desktop item, so we can pick it from the KDE/GNOME menu mkdir -pv $out/share/applications ln -s ${desktopItem}/share/applications/* $out/share/applications From 3954ddd33ba4a34019763ff8cd4c49fd41a5328c Mon Sep 17 00:00:00 2001 From: Benjamin Asbach Date: Thu, 19 Sep 2019 23:05:19 +0000 Subject: [PATCH 02/82] netbeans: added camel case syntax and added Apache prefix for `desktopName` --- pkgs/applications/editors/netbeans/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix index 9185fbd54a6..0b557a21684 100644 --- a/pkgs/applications/editors/netbeans/default.nix +++ b/pkgs/applications/editors/netbeans/default.nix @@ -8,7 +8,7 @@ let name = "netbeans"; exec = "netbeans"; comment = "Integrated Development Environment"; - desktopName = "Netbeans IDE"; + desktopName = "Apache NetBeans IDE"; genericName = "Integrated Development Environment"; categories = "Application;Development;"; icon = "netbeans"; From 1aef41c87697a29cd43d8e936c6726a0d492244f Mon Sep 17 00:00:00 2001 From: Benjamin Asbach Date: Thu, 19 Sep 2019 23:15:28 +0000 Subject: [PATCH 03/82] netbeans: changed hompage url to netbeans space hosted on apache network --- pkgs/applications/editors/netbeans/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix index 0b557a21684..38b92151b29 100644 --- a/pkgs/applications/editors/netbeans/default.nix +++ b/pkgs/applications/editors/netbeans/default.nix @@ -58,7 +58,7 @@ stdenv.mkDerivation { meta = { description = "An integrated development environment for Java, C, C++ and PHP"; - homepage = "https://netbeans.org/"; + homepage = "https://netbeans.apache.org/"; license = stdenv.lib.licenses.asl20; maintainers = with stdenv.lib.maintainers; [ sander rszibele ]; platforms = stdenv.lib.platforms.unix; From eb1cd0d27d42f5a3d969a5a87330d1322812b09c Mon Sep 17 00:00:00 2001 From: Lancelot SIX Date: Fri, 4 Oct 2019 14:12:07 +0200 Subject: [PATCH 04/82] qscintilla: Fix qt4 build --- pkgs/development/libraries/qscintilla/default.nix | 4 ++-- .../libraries/qscintilla/fix-qt4-build.patch | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/libraries/qscintilla/fix-qt4-build.patch diff --git a/pkgs/development/libraries/qscintilla/default.nix b/pkgs/development/libraries/qscintilla/default.nix index 33e57a682b9..a8be20b73b1 100644 --- a/pkgs/development/libraries/qscintilla/default.nix +++ b/pkgs/development/libraries/qscintilla/default.nix @@ -32,7 +32,8 @@ in stdenv.mkDerivation rec { ++ (if withQt5 then [ qmake ] else [ qmake4Hook ]) ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; - patches = lib.optional (stdenv.isDarwin && withQt5) [ xcodePatch ]; + patches = (lib.optional (stdenv.isDarwin && withQt5) xcodePatch) ++ + (lib.optional (!withQt5) ./fix-qt4-build.patch ); # Make sure that libqscintilla2.so is available in $out/lib since it is expected # by some packages such as sqlitebrowser @@ -72,6 +73,5 @@ in stdenv.mkDerivation rec { license = with licenses; [ gpl2 gpl3 ]; # and commercial maintainers = with maintainers; [ peterhoeg ]; platforms = platforms.unix; - broken = !withQt5; }; } diff --git a/pkgs/development/libraries/qscintilla/fix-qt4-build.patch b/pkgs/development/libraries/qscintilla/fix-qt4-build.patch new file mode 100644 index 00000000000..520a55b1ea2 --- /dev/null +++ b/pkgs/development/libraries/qscintilla/fix-qt4-build.patch @@ -0,0 +1,11 @@ +diff -ur QScintilla_gpl-2.11.2/Qt4Qt5/Qsci/qsciscintillabase.h QScintilla_gpl-2.11.2-fix/Qt4Qt5/Qsci/qsciscintillabase.h +--- Qt4Qt5/Qsci/qsciscintillabase.h 2019-06-25 14:49:27.000000000 +0200 ++++ Qt4Qt5-fix/Qsci/qsciscintillabase.h 2019-10-04 10:22:26.337474261 +0200 +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + #include + From 8479d2b54d7a0c3c0da3030e846355b3bec4c493 Mon Sep 17 00:00:00 2001 From: MicrosoftTakeover <49256525+MicrosoftTakeover@users.noreply.github.com> Date: Wed, 16 Oct 2019 13:41:14 -0700 Subject: [PATCH 05/82] minetest 5.0.1 -> 5.1.0 --- pkgs/games/minetest/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix index 52a91165537..0f457cc688b 100644 --- a/pkgs/games/minetest/default.nix +++ b/pkgs/games/minetest/default.nix @@ -73,9 +73,9 @@ let }; v5 = { - version = "5.0.1"; - sha256 = "11i8fqjpdggqfdlx440k5758zy0nbf9phxan9r63mavc7mph88ay"; - dataSha256 = "1hw3n7qqpasq6bivxhq01kr0d58w0gp46s0baxixp1fakd79p8a7"; + version = "5.1.0"; + sha256 = "184n9gxfa7yr0j85z2x736maaymsnppd5jzm326wlqri3c0qqy3z"; + dataSha256 = "1r9fxz2j24q74a9injvbxbf2xk67fzabv616i676zw2cvgv9hn39"; }; in { From ab9fd67b68d6db6de04a6a9643f2d4b8969b23a2 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 17 Oct 2019 19:03:19 +0300 Subject: [PATCH 06/82] awesome: Make sure it compiles with luajit --- .../applications/window-managers/awesome/default.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix index 2551ea80550..b8f31e5b512 100644 --- a/pkgs/applications/window-managers/awesome/default.nix +++ b/pkgs/applications/window-managers/awesome/default.nix @@ -12,7 +12,10 @@ # needed for beautiful.gtk to work assert gtk3Support -> gtk3 != null; -with luaPackages; stdenv.mkDerivation rec { +stdenv.mkDerivation rec { + lgi = luaPackages.lgi; + lua = luaPackages.lua; + ldoc = luaPackages.ldoc; pname = "awesome"; version = "4.3"; @@ -49,8 +52,11 @@ with luaPackages; stdenv.mkDerivation rec { xcbutilxrm ] ++ stdenv.lib.optional gtk3Support gtk3; - #cmakeFlags = "-DGENERATE_MANPAGES=ON"; - cmakeFlags = "-DOVERRIDE_VERSION=${version}"; + cmakeFlags = [ + #"-DGENERATE_MANPAGES=ON" + "-DOVERRIDE_VERSION=${version}" + ] ++ stdenv.lib.optional luaPackages.isLuaJIT "-DLUA_LIBRARY=${lua}/lib/libluajit-5.1.so" + ; GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0"; # LUA_CPATH and LUA_PATH are used only for *building*, see the --search flags From 0f93c22626a675ddfe987b5d4f1680d404305f97 Mon Sep 17 00:00:00 2001 From: edef Date: Wed, 9 Oct 2019 11:42:00 +0000 Subject: [PATCH 07/82] plover.stable: add missing dbus dependency --- pkgs/applications/misc/plover/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/misc/plover/default.nix b/pkgs/applications/misc/plover/default.nix index 8021ffdc8f5..d8b9ae7add5 100644 --- a/pkgs/applications/misc/plover/default.nix +++ b/pkgs/applications/misc/plover/default.nix @@ -19,7 +19,7 @@ nativeBuildInputs = [ setuptools_scm ]; buildInputs = [ pytest mock ]; propagatedBuildInputs = [ - six setuptools pyserial appdirs hidapi wxPython xlib wmctrl + six setuptools pyserial appdirs hidapi wxPython xlib wmctrl dbus-python ]; }; From b954169efc28a80d8b153781e8da602078c39b12 Mon Sep 17 00:00:00 2001 From: edef Date: Wed, 9 Oct 2019 11:55:49 +0000 Subject: [PATCH 08/82] plover.dev: add missing setuptools dependency Without this, it crashes instantly at startup looking for pkg_resources. --- pkgs/applications/misc/plover/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/misc/plover/default.nix b/pkgs/applications/misc/plover/default.nix index d8b9ae7add5..f7019d1eea8 100644 --- a/pkgs/applications/misc/plover/default.nix +++ b/pkgs/applications/misc/plover/default.nix @@ -43,6 +43,6 @@ postPatch = "sed -i /PyQt5/d setup.cfg"; checkInputs = [ pytest mock ]; - propagatedBuildInputs = [ Babel pyqt5 xlib pyserial appdirs wcwidth ]; + propagatedBuildInputs = [ Babel pyqt5 xlib pyserial appdirs wcwidth setuptools ]; }; } From a68219b79bf9f6cd84d443b0eb94f38287c19cd4 Mon Sep 17 00:00:00 2001 From: edef Date: Tue, 8 Oct 2019 06:53:53 +0000 Subject: [PATCH 09/82] nixos/nix-daemon: don't refer to deprecated option aliases The `gc-` prefixed versions of these options have been deprecated since Nix 2.0. --- .../modules/services/continuous-integration/hydra/default.nix | 4 ++-- nixos/modules/services/misc/nix-daemon.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix index 2da10a9a5e2..30c5550f71c 100644 --- a/nixos/modules/services/continuous-integration/hydra/default.nix +++ b/nixos/modules/services/continuous-integration/hydra/default.nix @@ -242,8 +242,8 @@ in environment.variables = hydraEnv; nix.extraOptions = '' - gc-keep-outputs = true - gc-keep-derivations = true + keep-outputs = true + keep-derivations = true # The default (`true') slows Nix down a lot since the build farm # has so many GC roots. diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix index ff4e4f5b97d..c1754c0e0ec 100644 --- a/nixos/modules/services/misc/nix-daemon.nix +++ b/nixos/modules/services/misc/nix-daemon.nix @@ -152,8 +152,8 @@ in type = types.lines; default = ""; example = '' - gc-keep-outputs = true - gc-keep-derivations = true + keep-outputs = true + keep-derivations = true ''; description = "Additional text appended to nix.conf."; }; From 327d406f037d195618569f50bc0b19f1eca49bf5 Mon Sep 17 00:00:00 2001 From: Aaron Andersen Date: Fri, 18 Oct 2019 19:05:35 -0400 Subject: [PATCH 10/82] wordpress: 5.2.3 -> 5.2.4 --- pkgs/servers/web-apps/wordpress/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/web-apps/wordpress/default.nix b/pkgs/servers/web-apps/wordpress/default.nix index 9dbf060aa9a..0cf16f17791 100644 --- a/pkgs/servers/web-apps/wordpress/default.nix +++ b/pkgs/servers/web-apps/wordpress/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "wordpress"; - version = "5.2.3"; + version = "5.2.4"; src = fetchurl { url = "https://wordpress.org/${pname}-${version}.tar.gz"; - sha256 = "07gqdzhnqivyfah386lwyz984y9k2bc0hmji1y2pbvv0a60r63wr"; + sha256 = "1vf5220rw37sxvzy6yxn636ip2lx4bkc84z7q8rdwcs2wkv6md1p"; }; installPhase = '' From 3b0bc6354a5242eb36bdb85e2d74dc10b4c7e4f1 Mon Sep 17 00:00:00 2001 From: edef Date: Sat, 19 Oct 2019 09:44:27 +0000 Subject: [PATCH 11/82] plover.dev: apply the Qt wrapper Without this, it crashes instantly at startup looking for the Qt xcb plugin. Co-authored-by: Kovacsics Robert --- pkgs/applications/misc/plover/default.nix | 10 ++++++++-- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/plover/default.nix b/pkgs/applications/misc/plover/default.nix index f7019d1eea8..77e93eaba7e 100644 --- a/pkgs/applications/misc/plover/default.nix +++ b/pkgs/applications/misc/plover/default.nix @@ -1,4 +1,5 @@ -{ stdenv, fetchurl, python27Packages, python36Packages, wmctrl }: +{ stdenv, fetchurl, python27Packages, python36Packages, wmctrl, + qtbase, mkDerivationWith }: { stable = with python27Packages; buildPythonPackage rec { @@ -23,7 +24,7 @@ ]; }; - dev = with python36Packages; buildPythonPackage rec { + dev = with python36Packages; mkDerivationWith buildPythonPackage rec { pname = "plover"; version = "4.0.0.dev8"; @@ -44,5 +45,10 @@ checkInputs = [ pytest mock ]; propagatedBuildInputs = [ Babel pyqt5 xlib pyserial appdirs wcwidth setuptools ]; + + dontWrapQtApps = true; + makeWrapperArgs = [ + "\${qtWrapperArgs[@]}" + ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e239164a5c4..324f62e84b5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20285,7 +20285,7 @@ in plex-media-player = libsForQt59.callPackage ../applications/video/plex-media-player { }; - plover = recurseIntoAttrs (callPackage ../applications/misc/plover { }); + plover = recurseIntoAttrs (libsForQt5.callPackage ../applications/misc/plover { }); plugin-torture = callPackage ../applications/audio/plugin-torture { }; From b36ee87814496158d11471fd904e4b51e54c5087 Mon Sep 17 00:00:00 2001 From: Dima Date: Sat, 19 Oct 2019 15:39:09 +0200 Subject: [PATCH 12/82] docker-runc: switch to OCI runc 1.0.0-rc8+dev The revision picked is based on https://github.com/docker/docker-ce/blob/19.03/components/engine/hack/dockerfile/install/runc.installer and https://github.com/docker/docker-ce/blob/18.09/components/engine/hack/dockerfile/install/runc.installer This should address CVE-2019-16884. --- pkgs/applications/virtualization/docker/default.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix index 027404439cd..9902ae2140c 100644 --- a/pkgs/applications/virtualization/docker/default.nix +++ b/pkgs/applications/virtualization/docker/default.nix @@ -19,7 +19,7 @@ rec { name = "docker-runc-${version}"; inherit version; src = fetchFromGitHub { - owner = "docker"; + owner = "opencontainers"; repo = "runc"; rev = runcRev; sha256 = runcSha256; @@ -198,14 +198,14 @@ rec { }); # Get revisions from - # https://github.com/docker/docker-ce/tree/v${version}/components/engine/hack/dockerfile/install/* + # https://github.com/docker/docker-ce/tree/${version}/components/engine/hack/dockerfile/install/* docker_18_09 = makeOverridable dockerGen { version = "18.09.9"; rev = "039a7df9ba8097dd987370782fcdd6ea79b26016"; sha256 = "0wqhjx9qs96q2jd091wffn3cyv2aslqn2cvpdpgljk8yr9s0yg7h"; - runcRev = "425e105d5a03fabd737a126ad93d62a9eeede87f"; - runcSha256 = "05s4p12mgmdcy7gjralh41wlgds6m69zdgwbpdn1xjj2487dmhxf"; + runcRev = "3e425f80a8c931f88e6d94a8c831b9d5aa481657"; + runcSha256 = "18psc830b2rkwml1x6vxngam5b5wi3pj14mw817rshpzy87prspj"; containerdRev = "894b81a4b802e4eb2a91d1ce216b8817763c29fb"; containerdSha256 = "0sp5mn5wd3xma4svm6hf67hyhiixzkzz6ijhyjkwdrc4alk81357"; tiniRev = "fec3683b971d9c3ef73f284f176672c44b448662"; @@ -216,8 +216,8 @@ rec { version = "19.03.2"; rev = "6a30dfca03664a0b6bf0646a7d389ee7d0318e6e"; sha256 = "0bghqwxlx4v06bwcv3c2wizbihhf983gvypx5sjcbgmiyd3bgb47"; - runcRev = "425e105d5a03fabd737a126ad93d62a9eeede87f"; - runcSha256 = "05s4p12mgmdcy7gjralh41wlgds6m69zdgwbpdn1xjj2487dmhxf"; + runcRev = "3e425f80a8c931f88e6d94a8c831b9d5aa481657"; + runcSha256 = "18psc830b2rkwml1x6vxngam5b5wi3pj14mw817rshpzy87prspj"; containerdRev = "894b81a4b802e4eb2a91d1ce216b8817763c29fb"; containerdSha256 = "0sp5mn5wd3xma4svm6hf67hyhiixzkzz6ijhyjkwdrc4alk81357"; tiniRev = "fec3683b971d9c3ef73f284f176672c44b448662"; From ed4a09c6f362bdbb1a25d16078dde7580c933663 Mon Sep 17 00:00:00 2001 From: talyz Date: Sat, 19 Oct 2019 16:36:24 +0200 Subject: [PATCH 13/82] gitlab: Get rid of most 'already initialized constant'-warnings On start, unicorn, sidekiq and other parts running ruby code emits quite a few warnings similar to /var/gitlab/state/config/application.rb:202: warning: already initialized constant Gitlab::Application::LOOSE_EE_APP_ASSETS /nix/store/ysb0lgbzxp7a9y4yl8d4f9wrrzy9kafc-gitlab-ee-12.3.5/share/gitlab/config/application.rb:202: warning: previous definition of LOOSE_EE_APP_ASSETS was here /var/gitlab/state/lib/gitlab.rb:38: warning: already initialized constant Gitlab::COM_URL /nix/store/ysb0lgbzxp7a9y4yl8d4f9wrrzy9kafc-gitlab-ee-12.3.5/share/gitlab/lib/gitlab.rb:38: warning: previous definition of COM_URL was here This seems to be caused by the same ruby files being evaluated multiple times due to the paths being different - sometimes they're loaded using the direct path and sometimes through a symlink, due to our split between config and package data. To fix this, we make sure that the offending files in the state directory always reference the store path, regardless of that being the real file or a symlink. --- nixos/modules/services/misc/gitlab.nix | 1 - pkgs/applications/version-management/gitlab/default.nix | 9 ++++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix index 20b87af23a5..f5d37172a10 100644 --- a/nixos/modules/services/misc/gitlab.nix +++ b/nixos/modules/services/misc/gitlab.nix @@ -666,7 +666,6 @@ in { "d ${gitlabConfig.production.shared.path}/artifacts 0750 ${cfg.user} ${cfg.group} -" "d ${gitlabConfig.production.shared.path}/lfs-objects 0750 ${cfg.user} ${cfg.group} -" "d ${gitlabConfig.production.shared.path}/pages 0750 ${cfg.user} ${cfg.group} -" - "L+ ${cfg.statePath}/lib - - - - ${cfg.packages.gitlab}/share/gitlab/lib" "L+ /run/gitlab/config - - - - ${cfg.statePath}/config" "L+ /run/gitlab/log - - - - ${cfg.statePath}/log" "L+ /run/gitlab/tmp - - - - ${cfg.statePath}/tmp" diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix index 99b408bcef3..e6ed0ef53a2 100644 --- a/pkgs/applications/version-management/gitlab/default.nix +++ b/pkgs/applications/version-management/gitlab/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv , ruby, tzdata, git, nettools, nixosTests, nodejs , gitlabEnterprise ? false, callPackage, yarn -, yarn2nix-moretea +, yarn2nix-moretea, replace }: let @@ -118,6 +118,13 @@ stdenv.mkDerivation { sed -i '/ask_to_continue/d' lib/tasks/gitlab/two_factor.rake sed -ri -e '/log_level/a config.logger = Logger.new(STDERR)' config/environments/production.rb + + # Always require lib-files and application.rb through their store + # path, not their relative state directory path. This gets rid of + # warnings and means we don't have to link back to lib from the + # state directory. + ${replace}/bin/replace-literal -f -r -e '../lib' "$out/share/gitlab/lib" config + ${replace}/bin/replace-literal -f -r -e "require_relative 'application'" "require_relative '$out/share/gitlab/config/application'" config ''; buildPhase = '' From e2283d95336f5e495c0dec11a9eff6f52380e3a6 Mon Sep 17 00:00:00 2001 From: Astro Date: Thu, 17 Oct 2019 21:40:57 +0200 Subject: [PATCH 14/82] nixos/collectd: add plugin config --- nixos/modules/services/monitoring/collectd.nix | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/monitoring/collectd.nix b/nixos/modules/services/monitoring/collectd.nix index 6a4c678eb21..3d672613296 100644 --- a/nixos/modules/services/monitoring/collectd.nix +++ b/nixos/modules/services/monitoring/collectd.nix @@ -16,8 +16,15 @@ let NotifyLevel "OKAY" + ${concatStrings (mapAttrsToList (plugin: pluginConfig: '' + LoadPlugin ${plugin} + + ${pluginConfig} + + '') cfg.plugins)} + ${concatMapStrings (f: '' - Include "${f}" + Include "${f}" '') cfg.include} ${cfg.extraConfig} @@ -68,6 +75,15 @@ in { type = listOf str; }; + plugins = mkOption { + default = {}; + example = { cpu = ""; memory = ""; network = "Server 192.168.1.1 25826"; }; + description = '' + Attribute set of plugin names to plugin config segments + ''; + type = types.attrsOf types.str; + }; + extraConfig = mkOption { default = ""; description = '' From efab03957535a1ed749bf286f78fad03e9b0f511 Mon Sep 17 00:00:00 2001 From: Astro Date: Sun, 20 Oct 2019 00:35:55 +0200 Subject: [PATCH 15/82] collectd: parameterize with optional enabledPlugins --- pkgs/tools/system/collectd/default.nix | 63 +---- pkgs/tools/system/collectd/plugins.nix | 342 +++++++++++++++++++++++++ 2 files changed, 351 insertions(+), 54 deletions(-) create mode 100644 pkgs/tools/system/collectd/plugins.nix diff --git a/pkgs/tools/system/collectd/default.nix b/pkgs/tools/system/collectd/default.nix index 3e7e4e5969a..517d0afb95f 100644 --- a/pkgs/tools/system/collectd/default.nix +++ b/pkgs/tools/system/collectd/default.nix @@ -1,45 +1,12 @@ -{ stdenv, fetchurl, fetchpatch, darwin +{ stdenv, fetchurl, fetchpatch, darwin, callPackage , autoreconfHook , pkgconfig -, curl -, iptables -, jdk -, libapparmor -, libatasmart -, libcap_ng -, libcredis -, libdbi -, libgcrypt -, libmemcached, cyrus_sasl -, libmicrohttpd -, libmodbus -, libnotify, gdk-pixbuf -, liboping -, libpcap -, libsigrok -, libvirt -, libxml2 , libtool -, lm_sensors -, lvm2 -, libmysqlclient -, numactl -, postgresql -, protobufc -, python -, rabbitmq-c -, riemann_c_client -, rrdtool -, udev -, varnish -, yajl -, net_snmp -, hiredis -, libmnl -, mosquitto -, rdkafka -, mongoc -}: +, ... +}@args: +let + plugins = callPackage ./plugins.nix args; +in stdenv.mkDerivation rec { version = "5.8.1"; pname = "collectd"; @@ -58,27 +25,15 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig autoreconfHook ]; buildInputs = [ - curl libdbi libgcrypt libmemcached - cyrus_sasl libnotify gdk-pixbuf liboping libpcap libvirt - libxml2 postgresql protobufc rrdtool - varnish yajl jdk libtool python hiredis libmicrohttpd - riemann_c_client mosquitto rdkafka mongoc - ] ++ stdenv.lib.optionals (libmysqlclient != null) [ libmysqlclient - ] ++ stdenv.lib.optionals stdenv.isLinux [ - iptables libatasmart libcredis libmodbus libsigrok - lm_sensors lvm2 rabbitmq-c udev net_snmp libmnl - # those might be no longer required when https://github.com/NixOS/nixpkgs/pull/51767 - # is merged - libapparmor numactl libcap_ng + libtool ] ++ stdenv.lib.optionals stdenv.isDarwin [ - darwin.apple_sdk.frameworks.IOKit darwin.apple_sdk.frameworks.ApplicationServices - ]; + ] ++ plugins.buildInputs; configureFlags = [ "--localstatedir=/var" "--disable-werror" - ]; + ] ++ plugins.configureFlags; # do not create directories in /var during installPhase postConfigure = '' diff --git a/pkgs/tools/system/collectd/plugins.nix b/pkgs/tools/system/collectd/plugins.nix new file mode 100644 index 00000000000..10f85041987 --- /dev/null +++ b/pkgs/tools/system/collectd/plugins.nix @@ -0,0 +1,342 @@ +{ stdenv +, curl +, darwin +, hiredis +, iptables +, jdk +, libatasmart +, libdbi +, libgcrypt +, libmemcached, cyrus_sasl +, libmodbus +, libmicrohttpd +, libmnl +, libmysqlclient +, libnotify, gdk-pixbuf +, liboping +, libpcap +, libsigrok +, libvirt +, libxml2 +, libapparmor, libcap_ng, numactl +, lvm2 +, lm_sensors +, mongoc +, mosquitto +, net_snmp +, postgresql +, protobufc +, python +, rabbitmq-c +, rdkafka +, riemann_c_client +, rrdtool +, udev +, varnish +, yajl +# Defaults to `null` for all supported plugins, +# list of plugin names for a custom build +, enabledPlugins ? null +, ... +}: + +let + plugins = { + aggregation = {}; + amqp = { + buildInputs = [ yajl ] ++ + stdenv.lib.optionals stdenv.isLinux [ rabbitmq-c ]; + }; + apache = { + buildInputs = [ curl ]; + }; + apcups = {}; + apple_sensors = {}; + aquaero = {}; + ascent = { + buildInputs = [ curl libxml2 ]; + }; + barometer = {}; + battery = { + buildInputs = stdenv.lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.IOKit + ]; + }; + bind = { + buildInputs = [ curl libxml2 ]; + }; + ceph = { + buildInputs = [ yajl ]; + }; + cgroups = {}; + chrony = {}; + conntrack = {}; + contextswitch = {}; + cpu = {}; + cpufreq = {}; + cpusleep = {}; + csv = {}; + curl = { + buildInputs = [ curl ]; + }; + curl_json = { + buildInputs = [ curl yajl ]; + }; + curl_xml = { + buildInputs = [ curl libxml2 ]; + }; + dbi = { + buildInputs = [ libdbi ]; + }; + df = {}; + disk = { + buildInputs = stdenv.lib.optionals stdenv.isLinux [ + udev + ] ++ stdenv.lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.IOKit + ]; + }; + dns = { + buildInputs = [ libpcap ]; + }; + dpdkevents = {}; + dpdkstat = {}; + drbd = {}; + email = {}; + entropy = {}; + ethstat = {}; + exec = {}; + fhcount = {}; + filecount = {}; + fscache = {}; + gmond = {}; + gps = {}; + grpc = {}; + hddtemp = {}; + hugepages = {}; + intel_pmu = {}; + intel_rdt = {}; + interface = {}; + ipc = {}; + ipmi = {}; + iptables = { + buildInputs = [ + libpcap + ] ++ stdenv.lib.optionals stdenv.isLinux [ + iptables libmnl + ]; + }; + ipvs = {}; + irq = {}; + java = { + buildInputs = [ jdk libgcrypt libxml2 ]; + }; + load = {}; + logfile = {}; + log_logstash = { + buildInputs = [ yajl ]; + }; + lpar = {}; + lua = {}; + lvm = {}; + madwifi = {}; + match_empty_counter = {}; + match_hashed = {}; + match_regex = {}; + match_timediff = {}; + match_value = {}; + mbmon = {}; + mcelog = {}; + md = {}; + memcachec = { + buildInputs = [ libmemcached cyrus_sasl ]; + }; + memcached = {}; + memory = {}; + mic = {}; + modbus = { + buildInputs = stdenv.lib.optionals stdenv.isLinux [ libmodbus ]; + }; + mqtt = { + buildInputs = [ mosquitto ]; + }; + multimeter = {}; + mysql = { + buildInputs = stdenv.lib.optionals (libmysqlclient != null) [ + libmysqlclient + ]; + }; + netapp = {}; + netlink = { + buildInputs = [ + libpcap + ] ++ stdenv.lib.optionals stdenv.isLinux [ + libmnl + ]; + }; + network = { + buildInputs = [ libgcrypt ]; + }; + nfs = {}; + nginx = { + buildInputs = [ curl ]; + }; + notify_desktop = { + buildInputs = [ libnotify gdk-pixbuf ]; + }; + notify_email = {}; + notify_nagios = {}; + ntpd = {}; + numa = {}; + nut = {}; + olsrd = {}; + onewire = {}; + openldap = {}; + openvpn = {}; + oracle = {}; + ovs_events = { + buildInputs = [ yajl ]; + }; + ovs_stats = { + buildInputs = [ yajl ]; + }; + perl = {}; + pf = {}; + pinba = { + buildInputs = [ protobufc ]; + }; + ping = { + buildInputs = [ liboping ]; + }; + postgresql = { + buildInputs = [ postgresql ]; + }; + powerdns = {}; + processes = {}; + protocols = {}; + python = { + buildInputs = [ python ]; + }; + redis = { + buildInputs = [ hiredis ]; + }; + routeros = {}; + rrdcached = { + buildInputs = [ rrdtool libxml2 ]; + }; + rrdtool = { + buildInputs = [ rrdtool libxml2 ]; + }; + sensors = { + buildInputs = stdenv.lib.optionals stdenv.isLinux [ lm_sensors ]; + }; + serial = {}; + sigrok = { + buildInputs = stdenv.lib.optionals stdenv.isLinux [ libsigrok udev ]; + }; + smart = { + buildInputs = stdenv.lib.optionals stdenv.isLinux [ libatasmart udev ]; + }; + snmp = { + buildInputs = stdenv.lib.optionals stdenv.isLinux [ net_snmp ]; + }; + snmp_agent = { + buildInputs = stdenv.lib.optionals stdenv.isLinux [ net_snmp ]; + }; + statsd = {}; + swap = {}; + synproxy = {}; + syslog = {}; + table = {}; + tail_csv = {}; + tail = {}; + tape = {}; + target_notification = {}; + target_replace = {}; + target_scale = {}; + target_set = {}; + target_v5upgrade = {}; + tcpconns = {}; + teamspeak2 = {}; + ted = {}; + thermal = {}; + threshold = {}; + tokyotyrant = {}; + turbostat = {}; + unixsock = {}; + uptime = {}; + users = {}; + uuid = {}; + varnish = { + buildInputs = [ curl varnish ]; + }; + virt = { + buildInputs = [ libvirt libxml2 yajl ] ++ + stdenv.lib.optionals stdenv.isLinux [ lvm2 udev + # those might be no longer required when https://github.com/NixOS/nixpkgs/pull/51767 + # is merged + libapparmor numactl libcap_ng + ]; + }; + vmem = {}; + vserver = {}; + wireless = {}; + write_graphite = {}; + write_http = { + buildInputs = [ curl yajl ]; + }; + write_kafka = { + buildInputs = [ yajl rdkafka ]; + }; + write_log = { + buildInputs = [ yajl ]; + }; + write_mongodb = { + buildInputs = [ mongoc ]; + }; + write_prometheus = { + buildInputs = [ protobufc libmicrohttpd ]; + }; + write_redis = { + buildInputs = [ hiredis ]; + }; + write_riemann = { + buildInputs = [ protobufc riemann_c_client ]; + }; + write_sensu = {}; + write_tsdb = {}; + xencpu = {}; + xmms = {}; + zfs_arc = {}; + zone = {}; + zookeeper = {}; + }; + + configureFlags = + if enabledPlugins == null + then [] + else (map (plugin: "--enable-${plugin}") enabledPlugins) ++ + (map (plugin: "--disable-${plugin}") + (builtins.filter (plugin: ! builtins.elem plugin enabledPlugins) + (builtins.attrNames plugins)) + ); + + pluginBuildInputs = plugin: + if ! builtins.hasAttr plugin plugins + then throw "Unknown collectd plugin: ${plugin}" + else + let + pluginAttrs = builtins.getAttr plugin plugins; + in + if pluginAttrs ? "buildInputs" + then pluginAttrs.buildInputs + else []; + + buildInputs = + if enabledPlugins == null + then builtins.concatMap pluginBuildInputs + (builtins.attrNames plugins) + else builtins.concatMap pluginBuildInputs enabledPlugins; +in { + inherit configureFlags buildInputs; +} From 06abd2488673f4563d5ae157f9167dd13a6ce469 Mon Sep 17 00:00:00 2001 From: Astro Date: Sun, 20 Oct 2019 00:37:15 +0200 Subject: [PATCH 16/82] nixos/collectd: add option buildMinimalPackage --- .../modules/services/monitoring/collectd.nix | 21 +++++++++++++++++-- pkgs/tools/system/collectd/plugins.nix | 2 ++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/monitoring/collectd.nix b/nixos/modules/services/monitoring/collectd.nix index 3d672613296..b2e44a1e366 100644 --- a/nixos/modules/services/monitoring/collectd.nix +++ b/nixos/modules/services/monitoring/collectd.nix @@ -30,6 +30,15 @@ let ${cfg.extraConfig} ''; + package = + if cfg.buildMinimalPackage + then minimalPackage + else cfg.package; + + minimalPackage = cfg.package.override { + enabledPlugins = [ "syslog" ] ++ builtins.attrNames cfg.plugins; + }; + in { options.services.collectd = with types; { enable = mkEnableOption "collectd agent"; @@ -40,7 +49,15 @@ in { description = '' Which collectd package to use. ''; - type = package; + type = types.package; + }; + + buildMinimalPackage = mkOption { + default = false; + description = '' + Build a minimal collectd package with only the configured `services.collectd.plugins` + ''; + type = types.bool; }; user = mkOption { @@ -105,7 +122,7 @@ in { wantedBy = [ "multi-user.target" ]; serviceConfig = { - ExecStart = "${cfg.package}/sbin/collectd -C ${conf} -f"; + ExecStart = "${package}/sbin/collectd -C ${conf} -f"; User = cfg.user; Restart = "on-failure"; RestartSec = 3; diff --git a/pkgs/tools/system/collectd/plugins.nix b/pkgs/tools/system/collectd/plugins.nix index 10f85041987..8f0603b7cbd 100644 --- a/pkgs/tools/system/collectd/plugins.nix +++ b/pkgs/tools/system/collectd/plugins.nix @@ -41,6 +41,8 @@ }: let + # All plugins and their dependencies. + # Please help complete this! plugins = { aggregation = {}; amqp = { From 690b3c4e196bee50e68ebf92105f674af15b92cc Mon Sep 17 00:00:00 2001 From: Astro Date: Sun, 20 Oct 2019 00:53:23 +0200 Subject: [PATCH 17/82] collectd: add lua plugin buildInputs --- pkgs/tools/system/collectd/plugins.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/system/collectd/plugins.nix b/pkgs/tools/system/collectd/plugins.nix index 8f0603b7cbd..c29ebc925bc 100644 --- a/pkgs/tools/system/collectd/plugins.nix +++ b/pkgs/tools/system/collectd/plugins.nix @@ -20,6 +20,7 @@ , libxml2 , libapparmor, libcap_ng, numactl , lvm2 +, lua , lm_sensors , mongoc , mosquitto @@ -139,7 +140,9 @@ let buildInputs = [ yajl ]; }; lpar = {}; - lua = {}; + lua = { + buildInputs = [ lua ]; + }; lvm = {}; madwifi = {}; match_empty_counter = {}; From d13022417f94a0b006820ec0396d479f3ec814c1 Mon Sep 17 00:00:00 2001 From: Andreas Rammhold Date: Thu, 25 Jul 2019 12:34:22 +0200 Subject: [PATCH 18/82] buildRustPackage: support checkFlags and checkFlagsArray --- pkgs/build-support/rust/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix index 27601e481c6..8b41d992d1e 100644 --- a/pkgs/build-support/rust/default.nix +++ b/pkgs/build-support/rust/default.nix @@ -149,8 +149,8 @@ stdenv.mkDerivation (args // { checkPhase = args.checkPhase or '' runHook preCheck - echo "Running cargo test" - cargo test + echo "Running cargo cargo test -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}" + cargo test -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"} runHook postCheck ''; From 06744bb2d40b1196b7e7ddb80a7be32e218e8463 Mon Sep 17 00:00:00 2001 From: Andreas Rammhold Date: Thu, 25 Jul 2019 12:34:44 +0200 Subject: [PATCH 19/82] rust-cbindgen: skip expand tests The expand tests require unstable rust features. --- pkgs/development/tools/rust/cbindgen/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/rust/cbindgen/default.nix b/pkgs/development/tools/rust/cbindgen/default.nix index d58b848c87e..64b40bdecf3 100644 --- a/pkgs/development/tools/rust/cbindgen/default.nix +++ b/pkgs/development/tools/rust/cbindgen/default.nix @@ -15,8 +15,10 @@ rustPlatform.buildRustPackage rec { buildInputs = stdenv.lib.optional stdenv.isDarwin Security; - # https://github.com/eqrion/cbindgen/issues/338 - RUSTC_BOOTSTRAP = 1; + checkFlags = [ + # https://github.com/eqrion/cbindgen/issues/338 + "--skip test_expand" + ]; meta = with stdenv.lib; { description = "A project for generating C bindings from Rust code"; From e07c2974e67449bbe2f130c04f2cf350affb2ff2 Mon Sep 17 00:00:00 2001 From: Andreas Rammhold Date: Sun, 20 Oct 2019 03:04:23 +0200 Subject: [PATCH 20/82] rust-cbdindgen: 0.9.0 -> 0.9.1 --- pkgs/development/tools/rust/cbindgen/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/rust/cbindgen/default.nix b/pkgs/development/tools/rust/cbindgen/default.nix index 64b40bdecf3..8e08e5e50eb 100644 --- a/pkgs/development/tools/rust/cbindgen/default.nix +++ b/pkgs/development/tools/rust/cbindgen/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "rust-cbindgen"; - version = "0.9.0"; + version = "0.9.1"; src = fetchFromGitHub { owner = "eqrion"; repo = "cbindgen"; rev = "v${version}"; - sha256 = "1sh9kll3ky0d6chp7l7z8j91ckibxkfhi0v7imz2fgzzy2lbqy88"; + sha256 = "1g0vrkwkc8wsyiz04qchw07chg0mg451if02sr17s65chwmbrc19"; }; - cargoSha256 = "1cn84xai1n0f8xwwwwig93dawk73g1w6n6zm4axg5zl4vrmq4j6w"; + cargoSha256 = "1y96m2my0h8fxglxz20y68fr8mnw031pxvzjsq801gwz2p858d75"; buildInputs = stdenv.lib.optional stdenv.isDarwin Security; From 95dfbe2d632b71a72634d2d65e3f738f500ee5ce Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Sun, 20 Oct 2019 12:17:58 +0200 Subject: [PATCH 21/82] doc: organize chapters into parts, and reduce toc depth Reorganize the chapters into parts and reduce the TOC depth to make the TOC useful again. The top-level TOC is very brief, but that is fine because every part will have its own TOC. Section titles of languages/frameworks are also simplified to just the name of the language/framework. --- ....xml => contributing-to-documentation.xml} | 0 doc/doc-support/parameters.xml | 2 +- .../emscripten.section.md | 2 +- doc/languages-frameworks/haskell.section.md | 2 +- doc/languages-frameworks/idris.section.md | 2 +- doc/languages-frameworks/index.xml | 2 +- doc/languages-frameworks/node.section.md | 4 +- doc/languages-frameworks/r.section.md | 4 +- doc/languages-frameworks/rust.section.md | 2 +- doc/languages-frameworks/vim.section.md | 2 +- doc/manual.xml | 44 ++++++++++++------- doc/platform-notes.xml | 2 +- doc/reviewing-contributions.xml | 2 +- 13 files changed, 41 insertions(+), 29 deletions(-) rename doc/{contributing.xml => contributing-to-documentation.xml} (100%) diff --git a/doc/contributing.xml b/doc/contributing-to-documentation.xml similarity index 100% rename from doc/contributing.xml rename to doc/contributing-to-documentation.xml diff --git a/doc/doc-support/parameters.xml b/doc/doc-support/parameters.xml index bc13e2b70de..e4b33e66ee4 100644 --- a/doc/doc-support/parameters.xml +++ b/doc/doc-support/parameters.xml @@ -8,7 +8,7 @@ - + diff --git a/doc/languages-frameworks/emscripten.section.md b/doc/languages-frameworks/emscripten.section.md index 24c49ec1409..80e1094809a 100644 --- a/doc/languages-frameworks/emscripten.section.md +++ b/doc/languages-frameworks/emscripten.section.md @@ -1,4 +1,4 @@ -# User's Guide to Emscripten in Nixpkgs +# Emscripten [Emscripten](https://github.com/kripken/emscripten): An LLVM-to-JavaScript Compiler diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md index 48d22831cd9..1e677450aa1 100644 --- a/doc/languages-frameworks/haskell.section.md +++ b/doc/languages-frameworks/haskell.section.md @@ -3,7 +3,7 @@ title: User's Guide for Haskell in Nixpkgs author: Peter Simons date: 2015-06-01 --- -# User's Guide to the Haskell Infrastructure +# Haskell ## How to install Haskell packages diff --git a/doc/languages-frameworks/idris.section.md b/doc/languages-frameworks/idris.section.md index e88015f08e3..8d7962d7fb9 100644 --- a/doc/languages-frameworks/idris.section.md +++ b/doc/languages-frameworks/idris.section.md @@ -1,4 +1,4 @@ -# Idris packages +# Idris ## Installing Idris diff --git a/doc/languages-frameworks/index.xml b/doc/languages-frameworks/index.xml index cd0b48adb14..86076085799 100644 --- a/doc/languages-frameworks/index.xml +++ b/doc/languages-frameworks/index.xml @@ -1,7 +1,7 @@ - Support for specific programming languages and frameworks + Languages and frameworks The standard build environment makes it easy to build typical Autotools-based packages with very little code. Any other kind of package can be accomodated by overriding the appropriate phases of stdenv. However, there are specialised functions in Nixpkgs to easily build packages for other programming languages, such as Perl or Haskell. These are described in this chapter. diff --git a/doc/languages-frameworks/node.section.md b/doc/languages-frameworks/node.section.md index c6dce04c7b8..4dc95fc1dd9 100644 --- a/doc/languages-frameworks/node.section.md +++ b/doc/languages-frameworks/node.section.md @@ -1,5 +1,5 @@ -Node.js packages -================ +Node.js +======= The `pkgs/development/node-packages` folder contains a generated collection of [NPM packages](https://npmjs.com/) that can be installed with the Nix package manager. diff --git a/doc/languages-frameworks/r.section.md b/doc/languages-frameworks/r.section.md index c8f02bd1478..d4e1617779c 100644 --- a/doc/languages-frameworks/r.section.md +++ b/doc/languages-frameworks/r.section.md @@ -1,5 +1,5 @@ -R packages -========== +R += ## Installation diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md index 83b7b159bd6..31f1abd197b 100644 --- a/doc/languages-frameworks/rust.section.md +++ b/doc/languages-frameworks/rust.section.md @@ -4,7 +4,7 @@ author: Matthias Beyer date: 2017-03-05 --- -# User's Guide to the Rust Infrastructure +# Rust To install the rust compiler and cargo put diff --git a/doc/languages-frameworks/vim.section.md b/doc/languages-frameworks/vim.section.md index 537e7b93e52..05a23d26cf2 100644 --- a/doc/languages-frameworks/vim.section.md +++ b/doc/languages-frameworks/vim.section.md @@ -3,7 +3,7 @@ title: User's Guide for Vim in Nixpkgs author: Marc Weber date: 2016-06-25 --- -# User's Guide to Vim Plugins/Addons/Bundles/Scripts in Nixpkgs +# Vim Both Neovim and Vim can be configured to include your favorite plugins and additional libraries. diff --git a/doc/manual.xml b/doc/manual.xml index ab845e1a108..7015e18d1e9 100644 --- a/doc/manual.xml +++ b/doc/manual.xml @@ -6,20 +6,32 @@ - - - - - - - - - - - - - - - - + + Using Nixpkgs + + + + + + Standard environment + + + + + + + + Languages, frameworks and packages + + + + + + Contributing to Nixpkgs + + + + + + diff --git a/doc/platform-notes.xml b/doc/platform-notes.xml index d8d7692fc9a..5a266fdc0ee 100644 --- a/doc/platform-notes.xml +++ b/doc/platform-notes.xml @@ -1,6 +1,6 @@ + xml:id="chap-platform-notes"> Platform Notes
Darwin (macOS) diff --git a/doc/reviewing-contributions.xml b/doc/reviewing-contributions.xml index 5a14684f9b1..c6fb6256781 100644 --- a/doc/reviewing-contributions.xml +++ b/doc/reviewing-contributions.xml @@ -2,7 +2,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0" - xml:id="sec-reviewing-contributions"> + xml:id="chap-reviewing-contributions"> Reviewing contributions From 115018ff15528f51235a8ac45c4261b7bd6a8173 Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Sun, 20 Oct 2019 12:37:45 +0200 Subject: [PATCH 22/82] doc: merge package notes and package-specific notes Maybe there was an idea behind this separation, but looking at the contents I don't see any reason for these being separate. --- doc/languages-frameworks/index.xml | 4 +- doc/manual.xml | 1 - doc/package-notes.xml | 351 +++++++++++++++++++++++++++ doc/package-specific-user-notes.xml | 357 ---------------------------- 4 files changed, 353 insertions(+), 360 deletions(-) delete mode 100644 doc/package-specific-user-notes.xml diff --git a/doc/languages-frameworks/index.xml b/doc/languages-frameworks/index.xml index 86076085799..9364c764bbf 100644 --- a/doc/languages-frameworks/index.xml +++ b/doc/languages-frameworks/index.xml @@ -9,6 +9,8 @@ + + @@ -27,6 +29,4 @@ - - diff --git a/doc/manual.xml b/doc/manual.xml index 7015e18d1e9..1083af3cdd8 100644 --- a/doc/manual.xml +++ b/doc/manual.xml @@ -23,7 +23,6 @@ Languages, frameworks and packages - diff --git a/doc/package-notes.xml b/doc/package-notes.xml index 770b277cd90..84b7e232eab 100644 --- a/doc/package-notes.xml +++ b/doc/package-notes.xml @@ -419,4 +419,355 @@ stdenv.mkDerivation {
+
+ OpenGL + + + Packages that use OpenGL have NixOS desktop as their primary target. The current solution for loading the GPU-specific drivers is based on libglvnd and looks for the driver implementation in LD_LIBRARY_PATH. If you are using a non-NixOS GNU/Linux/X11 desktop with free software video drivers, consider launching OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of libglvnd and mesa_drivers in LD_LIBRARY_PATH. For proprietary video drivers you might have luck with also adding the corresponding video driver package. + +
+
+ Locales + + + To allow simultaneous use of packages linked against different versions of glibc with different locale archive formats Nixpkgs patches glibc to rely on LOCALE_ARCHIVE environment variable. + + + + On non-NixOS distributions this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the LOCALE_ARCHIVE variable pointing to ${glibcLocales}/lib/locale/locale-archive. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters allLocales and locales of the package. + +
+
+ Emacs + +
+ Configuring Emacs + + + The Emacs package comes with some extra helpers to make it easier to configure. emacsWithPackages allows you to manage packages from ELPA. This means that you will not have to install that packages from within Emacs. For instance, if you wanted to use company, counsel, flycheck, ivy, magit, projectile, and use-package you could use this as a ~/.config/nixpkgs/config.nix override: + + + +{ + packageOverrides = pkgs: with pkgs; { + myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [ + company + counsel + flycheck + ivy + magit + projectile + use-package + ])); + } +} + + + + You can install it like any other packages via nix-env -iA myEmacs. However, this will only install those packages. It will not configure them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provide a default.el file in /share/emacs/site-start/. Emacs knows to load this file automatically when it starts. + + + +{ + packageOverrides = pkgs: with pkgs; rec { + myEmacsConfig = writeText "default.el" '' +;; initialize package + +(require 'package) +(package-initialize 'noactivate) +(eval-when-compile + (require 'use-package)) + +;; load some packages + +(use-package company + :bind ("<C-tab>" . company-complete) + :diminish company-mode + :commands (company-mode global-company-mode) + :defer 1 + :config + (global-company-mode)) + +(use-package counsel + :commands (counsel-descbinds) + :bind (([remap execute-extended-command] . counsel-M-x) + ("C-x C-f" . counsel-find-file) + ("C-c g" . counsel-git) + ("C-c j" . counsel-git-grep) + ("C-c k" . counsel-ag) + ("C-x l" . counsel-locate) + ("M-y" . counsel-yank-pop))) + +(use-package flycheck + :defer 2 + :config (global-flycheck-mode)) + +(use-package ivy + :defer 1 + :bind (("C-c C-r" . ivy-resume) + ("C-x C-b" . ivy-switch-buffer) + :map ivy-minibuffer-map + ("C-j" . ivy-call)) + :diminish ivy-mode + :commands ivy-mode + :config + (ivy-mode 1)) + +(use-package magit + :defer + :if (executable-find "git") + :bind (("C-x g" . magit-status) + ("C-x G" . magit-dispatch-popup)) + :init + (setq magit-completing-read-function 'ivy-completing-read)) + +(use-package projectile + :commands projectile-mode + :bind-keymap ("C-c p" . projectile-command-map) + :defer 5 + :config + (projectile-global-mode)) + ''; + myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [ + (runCommand "default.el" {} '' +mkdir -p $out/share/emacs/site-lisp +cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el +'') + company + counsel + flycheck + ivy + magit + projectile + use-package + ])); + }; +} + + + + This provides a fairly full Emacs start file. It will load in addition to the user's presonal config. You can always disable it by passing -q to the Emacs command. + + + + Sometimes emacsWithPackages is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to Melpa Unstable, and the highest for packages manually defined in pkgs/top-level/emacs-packages.nix). But you can't control this priorities when some package is installed as a dependency. You can override it on per-package-basis, providing all the required dependencies manually - but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package you can use overrideScope'. + + + +overrides = self: super: rec { + haskell-mode = self.melpaPackages.haskell-mode; + ... +}; +((emacsPackagesGen emacs).overrideScope' overrides).emacsWithPackages (p: with p; [ + # here both these package will use haskell-mode of our own choice + ghc-mod + dante +]) + +
+
+
+ DLib + + + DLib is a modern, C++-based toolkit which provides several machine learning algorithms. + + +
+ Compiling without AVX support + + + Especially older CPUs don't support AVX (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms. + + + + On the affected hardware errors like Illegal instruction will occur. In those cases AVX support needs to be disabled: +self: super: { + dlib = super.dlib.override { avxSupport = false; }; +} + +
+
+
+ Unfree software + + + All users of Nixpkgs are free software users, and many users (and developers) of Nixpkgs want to limit and tightly control their exposure to unfree software. At the same time, many users need (or want) to run some specific pieces of proprietary software. Nixpkgs includes some expressions for unfree software packages. By default unfree software cannot be installed and doesn’t show up in searches. To allow installing unfree software in a single Nix invocation one can export NIXPKGS_ALLOW_UNFREE=1. For a persistent solution, users can set allowUnfree in the Nixpkgs configuration. + + + + Fine-grained control is possible by defining allowUnfreePredicate function in config; it takes the mkDerivation parameter attrset and returns true for unfree packages that should be allowed. + +
+
+ Steam + +
+ Steam in Nix + + + Steam is distributed as a .deb file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called steam that in Ubuntu (their target distro) would go to /usr/bin . When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in $HOME. + + + + Nix problems and constraints: + + + + We don't have /bin/bash and many scripts point there. Similarly for /usr/bin/python . + + + + + We don't have the dynamic loader in /lib . + + + + + The steam.sh script in $HOME can not be patched, as it is checked and rewritten by steam. + + + + + The steam binary cannot be patched, it's also checked. + + + + + + + The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented here. This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment. + +
+ +
+ How to play + + + For 64-bit systems it's important to have +hardware.opengl.driSupport32Bit = true; + in your /etc/nixos/configuration.nix. You'll also need +hardware.pulseaudio.support32Bit = true; + if you are using PulseAudio - this will enable 32bit ALSA apps integration. To use the Steam controller or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro, you need to add +hardware.steam-hardware.enable = true; + to your configuration. + +
+ +
+ Troubleshooting + + + + + + Steam fails to start. What do I do? + + + + Try to run +strace steam + to see what is causing steam to fail. + + + + + + Using the FOSS Radeon or nouveau (nvidia) drivers + + + + + + The newStdcpp parameter was removed since NixOS 17.09 and should not be needed anymore. + + + + + Steam ships statically linked with a version of libcrypto that conflics with the one dynamically loaded by radeonsi_dri.so. If you get the error +steam.sh: line 713: 7842 Segmentation fault (core dumped) + have a look at this pull request. + + + + + + + + Java + + + + + + There is no java in steam chrootenv by default. If you get a message like +/home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found + You need to add + steam.override { withJava = true; }; + to your configuration. + + + + + + + +
+ +
+ steam-run + + + The FHS-compatible chroot used for steam can also be used to run other linux games that expect a FHS environment. To do it, add +pkgs.(steam.override { + nativeOnly = true; + newStdcpp = true; + }).run + to your configuration, rebuild, and run the game with +steam-run ./foo + +
+
+
+ Citrix Receiver & Citrix Workspace App + + + + + Please note that the citrix_receiver package has been deprecated since its development was discontinued by upstream and has been replaced by the citrix workspace app. + + + Citrix Receiver and Citrix Workspace App are a remote desktop viewers which provide access to XenDesktop installations. + + +
+ Basic usage + + + The tarball archive needs to be downloaded manually as the license agreements of the vendor for Citrix Receiver or Citrix Workspace need to be accepted first. Then run nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz. With the archive available in the store the package can be built and installed with Nix. + + + + Caution with <command>nix-shell</command> installs + + It's recommended to install Citrix Receiver and/or Citrix Workspace using nix-env -i or globally to ensure that the .desktop files are installed properly into $XDG_CONFIG_DIRS. Otherwise it won't be possible to open .ica files automatically from the browser to start a Citrix connection. + + +
+ +
+ Custom certificates + + + The Citrix Workspace App in nixpkgs trust several certificates from the Mozilla database by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in $ICAROOT, however this directory is a store path in nixpkgs. In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using symlinkJoin: + + { config.allowUnfree = true; }; +let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in +citrix_workspace.override { + inherit extraCerts; +}]]> + + +
+
diff --git a/doc/package-specific-user-notes.xml b/doc/package-specific-user-notes.xml deleted file mode 100644 index a3ee42dc7fa..00000000000 --- a/doc/package-specific-user-notes.xml +++ /dev/null @@ -1,357 +0,0 @@ - - Package-specific usage notes - - These chapters includes some notes that apply to specific packages and should answer some of the frequently asked questions related to Nixpkgs use. Some useful information related to package use can be found in package-specific development notes. - -
- OpenGL - - - Packages that use OpenGL have NixOS desktop as their primary target. The current solution for loading the GPU-specific drivers is based on libglvnd and looks for the driver implementation in LD_LIBRARY_PATH. If you are using a non-NixOS GNU/Linux/X11 desktop with free software video drivers, consider launching OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of libglvnd and mesa_drivers in LD_LIBRARY_PATH. For proprietary video drivers you might have luck with also adding the corresponding video driver package. - -
-
- Locales - - - To allow simultaneous use of packages linked against different versions of glibc with different locale archive formats Nixpkgs patches glibc to rely on LOCALE_ARCHIVE environment variable. - - - - On non-NixOS distributions this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the LOCALE_ARCHIVE variable pointing to ${glibcLocales}/lib/locale/locale-archive. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters allLocales and locales of the package. - -
-
- Emacs - -
- Configuring Emacs - - - The Emacs package comes with some extra helpers to make it easier to configure. emacsWithPackages allows you to manage packages from ELPA. This means that you will not have to install that packages from within Emacs. For instance, if you wanted to use company, counsel, flycheck, ivy, magit, projectile, and use-package you could use this as a ~/.config/nixpkgs/config.nix override: - - - -{ - packageOverrides = pkgs: with pkgs; { - myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [ - company - counsel - flycheck - ivy - magit - projectile - use-package - ])); - } -} - - - - You can install it like any other packages via nix-env -iA myEmacs. However, this will only install those packages. It will not configure them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provide a default.el file in /share/emacs/site-start/. Emacs knows to load this file automatically when it starts. - - - -{ - packageOverrides = pkgs: with pkgs; rec { - myEmacsConfig = writeText "default.el" '' -;; initialize package - -(require 'package) -(package-initialize 'noactivate) -(eval-when-compile - (require 'use-package)) - -;; load some packages - -(use-package company - :bind ("<C-tab>" . company-complete) - :diminish company-mode - :commands (company-mode global-company-mode) - :defer 1 - :config - (global-company-mode)) - -(use-package counsel - :commands (counsel-descbinds) - :bind (([remap execute-extended-command] . counsel-M-x) - ("C-x C-f" . counsel-find-file) - ("C-c g" . counsel-git) - ("C-c j" . counsel-git-grep) - ("C-c k" . counsel-ag) - ("C-x l" . counsel-locate) - ("M-y" . counsel-yank-pop))) - -(use-package flycheck - :defer 2 - :config (global-flycheck-mode)) - -(use-package ivy - :defer 1 - :bind (("C-c C-r" . ivy-resume) - ("C-x C-b" . ivy-switch-buffer) - :map ivy-minibuffer-map - ("C-j" . ivy-call)) - :diminish ivy-mode - :commands ivy-mode - :config - (ivy-mode 1)) - -(use-package magit - :defer - :if (executable-find "git") - :bind (("C-x g" . magit-status) - ("C-x G" . magit-dispatch-popup)) - :init - (setq magit-completing-read-function 'ivy-completing-read)) - -(use-package projectile - :commands projectile-mode - :bind-keymap ("C-c p" . projectile-command-map) - :defer 5 - :config - (projectile-global-mode)) - ''; - myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [ - (runCommand "default.el" {} '' -mkdir -p $out/share/emacs/site-lisp -cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el -'') - company - counsel - flycheck - ivy - magit - projectile - use-package - ])); - }; -} - - - - This provides a fairly full Emacs start file. It will load in addition to the user's presonal config. You can always disable it by passing -q to the Emacs command. - - - - Sometimes emacsWithPackages is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to Melpa Unstable, and the highest for packages manually defined in pkgs/top-level/emacs-packages.nix). But you can't control this priorities when some package is installed as a dependency. You can override it on per-package-basis, providing all the required dependencies manually - but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package you can use overrideScope'. - - - -overrides = self: super: rec { - haskell-mode = self.melpaPackages.haskell-mode; - ... -}; -((emacsPackagesGen emacs).overrideScope' overrides).emacsWithPackages (p: with p; [ - # here both these package will use haskell-mode of our own choice - ghc-mod - dante -]) - -
-
-
- DLib - - - DLib is a modern, C++-based toolkit which provides several machine learning algorithms. - - -
- Compiling without AVX support - - - Especially older CPUs don't support AVX (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms. - - - - On the affected hardware errors like Illegal instruction will occur. In those cases AVX support needs to be disabled: -self: super: { - dlib = super.dlib.override { avxSupport = false; }; -} - -
-
-
- Unfree software - - - All users of Nixpkgs are free software users, and many users (and developers) of Nixpkgs want to limit and tightly control their exposure to unfree software. At the same time, many users need (or want) to run some specific pieces of proprietary software. Nixpkgs includes some expressions for unfree software packages. By default unfree software cannot be installed and doesn’t show up in searches. To allow installing unfree software in a single Nix invocation one can export NIXPKGS_ALLOW_UNFREE=1. For a persistent solution, users can set allowUnfree in the Nixpkgs configuration. - - - - Fine-grained control is possible by defining allowUnfreePredicate function in config; it takes the mkDerivation parameter attrset and returns true for unfree packages that should be allowed. - -
-
- Steam - -
- Steam in Nix - - - Steam is distributed as a .deb file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called steam that in Ubuntu (their target distro) would go to /usr/bin . When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in $HOME. - - - - Nix problems and constraints: - - - - We don't have /bin/bash and many scripts point there. Similarly for /usr/bin/python . - - - - - We don't have the dynamic loader in /lib . - - - - - The steam.sh script in $HOME can not be patched, as it is checked and rewritten by steam. - - - - - The steam binary cannot be patched, it's also checked. - - - - - - - The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented here. This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment. - -
- -
- How to play - - - For 64-bit systems it's important to have -hardware.opengl.driSupport32Bit = true; - in your /etc/nixos/configuration.nix. You'll also need -hardware.pulseaudio.support32Bit = true; - if you are using PulseAudio - this will enable 32bit ALSA apps integration. To use the Steam controller or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro, you need to add -hardware.steam-hardware.enable = true; - to your configuration. - -
- -
- Troubleshooting - - - - - - Steam fails to start. What do I do? - - - - Try to run -strace steam - to see what is causing steam to fail. - - - - - - Using the FOSS Radeon or nouveau (nvidia) drivers - - - - - - The newStdcpp parameter was removed since NixOS 17.09 and should not be needed anymore. - - - - - Steam ships statically linked with a version of libcrypto that conflics with the one dynamically loaded by radeonsi_dri.so. If you get the error -steam.sh: line 713: 7842 Segmentation fault (core dumped) - have a look at this pull request. - - - - - - - - Java - - - - - - There is no java in steam chrootenv by default. If you get a message like -/home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found - You need to add - steam.override { withJava = true; }; - to your configuration. - - - - - - - -
- -
- steam-run - - - The FHS-compatible chroot used for steam can also be used to run other linux games that expect a FHS environment. To do it, add -pkgs.(steam.override { - nativeOnly = true; - newStdcpp = true; - }).run - to your configuration, rebuild, and run the game with -steam-run ./foo - -
-
-
- Citrix Receiver & Citrix Workspace App - - - - - Please note that the citrix_receiver package has been deprecated since its development was discontinued by upstream and has been replaced by the citrix workspace app. - - - Citrix Receiver and Citrix Workspace App are a remote desktop viewers which provide access to XenDesktop installations. - - -
- Basic usage - - - The tarball archive needs to be downloaded manually as the license agreements of the vendor for Citrix Receiver or Citrix Workspace need to be accepted first. Then run nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz. With the archive available in the store the package can be built and installed with Nix. - - - - Caution with <command>nix-shell</command> installs - - It's recommended to install Citrix Receiver and/or Citrix Workspace using nix-env -i or globally to ensure that the .desktop files are installed properly into $XDG_CONFIG_DIRS. Otherwise it won't be possible to open .ica files automatically from the browser to start a Citrix connection. - - -
- -
- Custom certificates - - - The Citrix Workspace App in nixpkgs trust several certificates from the Mozilla database by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in $ICAROOT, however this directory is a store path in nixpkgs. In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using symlinkJoin: - - { config.allowUnfree = true; }; -let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in -citrix_workspace.override { - inherit extraCerts; -}]]> - - -
-
-
From efb55d2a42e1b047c65b1d125cc955df84f8e0af Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Sun, 20 Oct 2019 13:14:30 +0200 Subject: [PATCH 23/82] doc: split packages part into xml file per package --- doc/manual.xml | 2 +- doc/package-notes.xml | 773 --------------------------------- doc/packages/citrix.xml | 44 ++ doc/packages/dlib.xml | 24 + doc/packages/eclipse.xml | 72 +++ doc/packages/elm.xml | 17 + doc/packages/emacs.xml | 131 ++++++ doc/packages/ibus.xml | 57 +++ doc/packages/index.xml | 23 + doc/packages/kakoune.xml | 14 + doc/packages/linux.xml | 85 ++++ doc/packages/locales.xml | 13 + doc/packages/nginx.xml | 25 ++ doc/packages/opengl.xml | 9 + doc/packages/shell-helpers.xml | 25 ++ doc/packages/steam.xml | 131 ++++++ doc/packages/unfree.xml | 13 + doc/packages/weechat.xml | 85 ++++ doc/packages/xorg.xml | 34 ++ 19 files changed, 803 insertions(+), 774 deletions(-) delete mode 100644 doc/package-notes.xml create mode 100644 doc/packages/citrix.xml create mode 100644 doc/packages/dlib.xml create mode 100644 doc/packages/eclipse.xml create mode 100644 doc/packages/elm.xml create mode 100644 doc/packages/emacs.xml create mode 100644 doc/packages/ibus.xml create mode 100644 doc/packages/index.xml create mode 100644 doc/packages/kakoune.xml create mode 100644 doc/packages/linux.xml create mode 100644 doc/packages/locales.xml create mode 100644 doc/packages/nginx.xml create mode 100644 doc/packages/opengl.xml create mode 100644 doc/packages/shell-helpers.xml create mode 100644 doc/packages/steam.xml create mode 100644 doc/packages/unfree.xml create mode 100644 doc/packages/weechat.xml create mode 100644 doc/packages/xorg.xml diff --git a/doc/manual.xml b/doc/manual.xml index 1083af3cdd8..001a5f3eca5 100644 --- a/doc/manual.xml +++ b/doc/manual.xml @@ -23,7 +23,7 @@ Languages, frameworks and packages - + Contributing to Nixpkgs diff --git a/doc/package-notes.xml b/doc/package-notes.xml deleted file mode 100644 index 84b7e232eab..00000000000 --- a/doc/package-notes.xml +++ /dev/null @@ -1,773 +0,0 @@ - - Package Notes - - This chapter contains information about how to use and maintain the Nix expressions for a number of specific packages, such as the Linux kernel or X.org. - - -
- Linux kernel - - - The Nix expressions to build the Linux kernel are in pkgs/os-specific/linux/kernel. - - - - The function that builds the kernel has an argument kernelPatches which should be a list of {name, patch, extraConfig} attribute sets, where name is the name of the patch (which is included in the kernel’s meta.description attribute), patch is the patch itself (possibly compressed), and extraConfig (optional) is a string specifying extra options to be concatenated to the kernel configuration file (.config). - - - - The kernel derivation exports an attribute features specifying whether optional functionality is or isn’t enabled. This is used in NixOS to implement kernel-specific behaviour. For instance, if the kernel has the iwlwifi feature (i.e. has built-in support for Intel wireless chipsets), then NixOS doesn’t have to build the external iwlwifi package: - -modulesTree = [kernel] - ++ pkgs.lib.optional (!kernel.features ? iwlwifi) kernelPackages.iwlwifi - ++ ...; - - - - - How to add a new (major) version of the Linux kernel to Nixpkgs: - - - - Copy the old Nix expression (e.g. linux-2.6.21.nix) to the new one (e.g. linux-2.6.22.nix) and update it. - - - - - Add the new kernel to all-packages.nix (e.g., create an attribute kernel_2_6_22). - - - - - Now we’re going to update the kernel configuration. First unpack the kernel. Then for each supported platform (i686, x86_64, uml) do the following: - - - - Make an copy from the old config (e.g. config-2.6.21-i686-smp) to the new one (e.g. config-2.6.22-i686-smp). - - - - - Copy the config file for this platform (e.g. config-2.6.22-i686-smp) to .config in the kernel source tree. - - - - - Run make oldconfig ARCH={i386,x86_64,um} and answer all questions. (For the uml configuration, also add SHELL=bash.) Make sure to keep the configuration consistent between platforms (i.e. don’t enable some feature on i686 and disable it on x86_64). - - - - - If needed you can also run make menuconfig: - -$ nix-env -i ncurses -$ export NIX_CFLAGS_LINK=-lncurses -$ make menuconfig ARCH=arch - - - - - Copy .config over the new config file (e.g. config-2.6.22-i686-smp). - - - - - - - - Test building the kernel: nix-build -A kernel_2_6_22. If it compiles, ship it! For extra credit, try booting NixOS with it. - - - - - It may be that the new kernel requires updating the external kernel modules and kernel-dependent packages listed in the linuxPackagesFor function in all-packages.nix (such as the NVIDIA drivers, AUFS, etc.). If the updated packages aren’t backwards compatible with older kernels, you may need to keep the older versions around. - - - - -
- -
- X.org - - - The Nix expressions for the X.org packages reside in pkgs/servers/x11/xorg/default.nix. This file is automatically generated from lists of tarballs in an X.org release. As such it should not be modified directly; rather, you should modify the lists, the generator script or the file pkgs/servers/x11/xorg/overrides.nix, in which you can override or add to the derivations produced by the generator. - - - - The generator is invoked as follows: - -$ cd pkgs/servers/x11/xorg -$ cat tarballs-7.5.list extra.list old.list \ - | perl ./generate-expr-from-tarballs.pl - - For each of the tarballs in the .list files, the script downloads it, unpacks it, and searches its configure.ac and *.pc.in files for dependencies. This information is used to generate default.nix. The generator caches downloaded tarballs between runs. Pay close attention to the NOT FOUND: name messages at the end of the run, since they may indicate missing dependencies. (Some might be optional dependencies, however.) - - - - A file like tarballs-7.5.list contains all tarballs in a X.org release. It can be generated like this: - -$ export i="mirror://xorg/X11R7.4/src/everything/" -$ cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) \ - | perl -e 'while (<>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'i'}$2\n"; }; }' \ - | sort > tarballs-7.4.list - - extra.list contains libraries that aren’t part of X.org proper, but are closely related to it, such as libxcb. old.list contains some packages that were removed from X.org, but are still needed by some people or by other packages (such as imake). - - - - If the expression for a package requires derivation attributes that the generator cannot figure out automatically (say, patches or a postInstall hook), you should modify pkgs/servers/x11/xorg/overrides.nix. - -
- - - - - -
- Eclipse - - - The Nix expressions related to the Eclipse platform and IDE are in pkgs/applications/editors/eclipse. - - - - Nixpkgs provides a number of packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages and multiple version are often available. It is possible to list available Eclipse packages by issuing the command: - -$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description - - Once an Eclipse variant is installed it can be run using the eclipse command, as expected. From within Eclipse it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resemble a manually installed Eclipse. - - - - If you prefer to install plugins in a more declarative manner then Nixpkgs also offer a number of Eclipse plugins that can be installed in an Eclipse environment. This type of environment is created using the function eclipseWithPlugins found inside the nixpkgs.eclipses attribute set. This function takes as argument { eclipse, plugins ? [], jvmArgs ? [] } where eclipse is a one of the Eclipse packages described above, plugins is a list of plugin derivations, and jvmArgs is a list of arguments given to the JVM running the Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add - -packageOverrides = pkgs: { - myEclipse = with pkgs.eclipses; eclipseWithPlugins { - eclipse = eclipse-platform; - jvmArgs = [ "-Xmx2048m" ]; - plugins = [ plugins.color-theme ]; - }; -} - - to your Nixpkgs configuration (~/.config/nixpkgs/config.nix) and install it by running nix-env -f '<nixpkgs>' -iA myEclipse and afterward run Eclipse as usual. It is possible to find out which plugins are available for installation using eclipseWithPlugins by running - -$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description - - - - - If there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the buildEclipseUpdateSite and buildEclipsePlugin functions found in the nixpkgs.eclipses.plugins attribute set. Use the buildEclipseUpdateSite function to install a plugin distributed as an Eclipse update site. This function takes { name, src } as argument where src indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available then the buildEclipsePlugin function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes an argument { name, srcFeature, srcPlugin } where srcFeature and srcPlugin are the feature and plugin JARs, respectively. - - - - Expanding the previous example with two plugins using the above functions we have - -packageOverrides = pkgs: { - myEclipse = with pkgs.eclipses; eclipseWithPlugins { - eclipse = eclipse-platform; - jvmArgs = [ "-Xmx2048m" ]; - plugins = [ - plugins.color-theme - (plugins.buildEclipsePlugin { - name = "myplugin1-1.0"; - srcFeature = fetchurl { - url = "http://…/features/myplugin1.jar"; - sha256 = "123…"; - }; - srcPlugin = fetchurl { - url = "http://…/plugins/myplugin1.jar"; - sha256 = "123…"; - }; - }); - (plugins.buildEclipseUpdateSite { - name = "myplugin2-1.0"; - src = fetchurl { - stripRoot = false; - url = "http://…/myplugin2.zip"; - sha256 = "123…"; - }; - }); - ]; - }; -} - - -
-
- Elm - - - To start a development environment do nix-shell -p elmPackages.elm elmPackages.elm-format - - - - To update Elm compiler, see nixpkgs/pkgs/development/compilers/elm/README.md. - - - - To package Elm applications, read about elm2nix. - -
-
- Kakoune - - - Kakoune can be built to autoload plugins: -(kakoune.override { - configure = { - plugins = with pkgs.kakounePlugins; [ parinfer-rust ]; - }; -}) - -
-
- Interactive shell helpers - - - Some packages provide the shell integration to be more useful. But unlike other systems, nix doesn't have a standard share directory location. This is why a bunch PACKAGE-share scripts are shipped that print the location of the corresponding shared folder. Current list of such packages is as following: - - - - autojump: autojump-share - - - - - fzf: fzf-share - - - - E.g. autojump can then used in the .bashrc like this: - - source "$(autojump-share)/autojump.bash" - - -
-
- Weechat - - - Weechat can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, install an expression that overrides its configuration such as -weechat.override {configure = {availablePlugins, ...}: { - plugins = with availablePlugins; [ python perl ]; - } -} - If the configure function returns an attrset without the plugins attribute, availablePlugins will be used automatically. - - - - The plugins currently available are python, perl, ruby, guile, tcl and lua. - - - - The python and perl plugins allows the addition of extra libraries. For instance, the inotify.py script in weechat-scripts requires D-Bus or libnotify, and the fish.py script requires pycrypto. To use these scripts, use the plugin's withPackages attribute: -weechat.override { configure = {availablePlugins, ...}: { - plugins = with availablePlugins; [ - (python.withPackages (ps: with ps; [ pycrypto python-dbus ])) - ]; - }; -} - - - - - In order to also keep all default plugins installed, it is possible to use the following method: -weechat.override { configure = { availablePlugins, ... }: { - plugins = builtins.attrValues (availablePlugins // { - python = availablePlugins.python.withPackages (ps: with ps; [ pycrypto python-dbus ]); - }); -}; } - - - - - WeeChat allows to set defaults on startup using the --run-command. The configure method can be used to pass commands to the program: -weechat.override { - configure = { availablePlugins, ... }: { - init = '' - /set foo bar - /server add freenode chat.freenode.org - ''; - }; -} - Further values can be added to the list of commands when running weechat --run-command "your-commands". - - - - Additionally it's possible to specify scripts to be loaded when starting weechat. These will be loaded before the commands from init: -weechat.override { - configure = { availablePlugins, ... }: { - scripts = with pkgs.weechatScripts; [ - weechat-xmpp weechat-matrix-bridge wee-slack - ]; - init = '' - /set plugins.var.python.jabber.key "val" - '': - }; -} - - - - In nixpkgs there's a subpackage which contains derivations for WeeChat scripts. Such derivations expect a passthru.scripts attribute which contains a list of all scripts inside the store path. Furthermore all scripts have to live in $out/share. An exemplary derivation looks like this: -{ stdenv, fetchurl }: - -stdenv.mkDerivation { - name = "exemplary-weechat-script"; - src = fetchurl { - url = "https://scripts.tld/your-scripts.tar.gz"; - sha256 = "..."; - }; - passthru.scripts = [ "foo.py" "bar.lua" ]; - installPhase = '' - mkdir $out/share - cp foo.py $out/share - cp bar.lua $out/share - ''; -} - -
-
- ibus-engines.typing-booster - - - This package is an ibus-based completion method to speed up typing. - - -
- Activating the engine - - - IBus needs to be configured accordingly to activate typing-booster. The configuration depends on the desktop manager in use. For detailed instructions, please refer to the upstream docs. - - - - On NixOS you need to explicitly enable ibus with given engines before customizing your desktop to use typing-booster. This can be achieved using the ibus module: -{ pkgs, ... }: { - i18n.inputMethod = { - enabled = "ibus"; - ibus.engines = with pkgs.ibus-engines; [ typing-booster ]; - }; -} - -
- -
- Using custom hunspell dictionaries - - - The IBus engine is based on hunspell to support completion in many languages. By default the dictionaries de-de, en-us, fr-moderne es-es, it-it, sv-se and sv-fi are in use. To add another dictionary, the package can be overridden like this: -ibus-engines.typing-booster.override { - langs = [ "de-at" "en-gb" ]; -} - - - - Note: each language passed to langs must be an attribute name in pkgs.hunspellDicts. - -
- -
- Built-in emoji picker - - - The ibus-engines.typing-booster package contains a program named emoji-picker. To display all emojis correctly, a special font such as noto-fonts-emoji is needed: - - - - On NixOS it can be installed using the following expression: -{ pkgs, ... }: { - fonts.fonts = with pkgs; [ noto-fonts-emoji ]; -} - -
-
-
- Nginx - - - Nginx is a reverse proxy and lightweight webserver. - - -
- ETags on static files served from the Nix store - - - HTTP has a couple different mechanisms for caching to prevent clients from having to download the same content repeatedly if a resource has not changed since the last time it was requested. When nginx is used as a server for static files, it implements the caching mechanism based on the Last-Modified response header automatically; unfortunately, it works by using filesystem timestamps to determine the value of the Last-Modified header. This doesn't give the desired behavior when the file is in the Nix store, because all file timestamps are set to 0 (for reasons related to build reproducibility). - - - - Fortunately, HTTP supports an alternative (and more effective) caching mechanism: the ETag response header. The value of the ETag header specifies some identifier for the particular content that the server is sending (e.g. a hash). When a client makes a second request for the same resource, it sends that value back in an If-None-Match header. If the ETag value is unchanged, then the server does not need to resend the content. - - - - As of NixOS 19.09, the nginx package in Nixpkgs is patched such that when nginx serves a file out of /nix/store, the hash in the store path is used as the ETag header in the HTTP response, thus providing proper caching functionality. This happens automatically; you do not need to do modify any configuration to get this behavior. - -
-
-
- OpenGL - - - Packages that use OpenGL have NixOS desktop as their primary target. The current solution for loading the GPU-specific drivers is based on libglvnd and looks for the driver implementation in LD_LIBRARY_PATH. If you are using a non-NixOS GNU/Linux/X11 desktop with free software video drivers, consider launching OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of libglvnd and mesa_drivers in LD_LIBRARY_PATH. For proprietary video drivers you might have luck with also adding the corresponding video driver package. - -
-
- Locales - - - To allow simultaneous use of packages linked against different versions of glibc with different locale archive formats Nixpkgs patches glibc to rely on LOCALE_ARCHIVE environment variable. - - - - On non-NixOS distributions this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the LOCALE_ARCHIVE variable pointing to ${glibcLocales}/lib/locale/locale-archive. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters allLocales and locales of the package. - -
-
- Emacs - -
- Configuring Emacs - - - The Emacs package comes with some extra helpers to make it easier to configure. emacsWithPackages allows you to manage packages from ELPA. This means that you will not have to install that packages from within Emacs. For instance, if you wanted to use company, counsel, flycheck, ivy, magit, projectile, and use-package you could use this as a ~/.config/nixpkgs/config.nix override: - - - -{ - packageOverrides = pkgs: with pkgs; { - myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [ - company - counsel - flycheck - ivy - magit - projectile - use-package - ])); - } -} - - - - You can install it like any other packages via nix-env -iA myEmacs. However, this will only install those packages. It will not configure them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provide a default.el file in /share/emacs/site-start/. Emacs knows to load this file automatically when it starts. - - - -{ - packageOverrides = pkgs: with pkgs; rec { - myEmacsConfig = writeText "default.el" '' -;; initialize package - -(require 'package) -(package-initialize 'noactivate) -(eval-when-compile - (require 'use-package)) - -;; load some packages - -(use-package company - :bind ("<C-tab>" . company-complete) - :diminish company-mode - :commands (company-mode global-company-mode) - :defer 1 - :config - (global-company-mode)) - -(use-package counsel - :commands (counsel-descbinds) - :bind (([remap execute-extended-command] . counsel-M-x) - ("C-x C-f" . counsel-find-file) - ("C-c g" . counsel-git) - ("C-c j" . counsel-git-grep) - ("C-c k" . counsel-ag) - ("C-x l" . counsel-locate) - ("M-y" . counsel-yank-pop))) - -(use-package flycheck - :defer 2 - :config (global-flycheck-mode)) - -(use-package ivy - :defer 1 - :bind (("C-c C-r" . ivy-resume) - ("C-x C-b" . ivy-switch-buffer) - :map ivy-minibuffer-map - ("C-j" . ivy-call)) - :diminish ivy-mode - :commands ivy-mode - :config - (ivy-mode 1)) - -(use-package magit - :defer - :if (executable-find "git") - :bind (("C-x g" . magit-status) - ("C-x G" . magit-dispatch-popup)) - :init - (setq magit-completing-read-function 'ivy-completing-read)) - -(use-package projectile - :commands projectile-mode - :bind-keymap ("C-c p" . projectile-command-map) - :defer 5 - :config - (projectile-global-mode)) - ''; - myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [ - (runCommand "default.el" {} '' -mkdir -p $out/share/emacs/site-lisp -cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el -'') - company - counsel - flycheck - ivy - magit - projectile - use-package - ])); - }; -} - - - - This provides a fairly full Emacs start file. It will load in addition to the user's presonal config. You can always disable it by passing -q to the Emacs command. - - - - Sometimes emacsWithPackages is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to Melpa Unstable, and the highest for packages manually defined in pkgs/top-level/emacs-packages.nix). But you can't control this priorities when some package is installed as a dependency. You can override it on per-package-basis, providing all the required dependencies manually - but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package you can use overrideScope'. - - - -overrides = self: super: rec { - haskell-mode = self.melpaPackages.haskell-mode; - ... -}; -((emacsPackagesGen emacs).overrideScope' overrides).emacsWithPackages (p: with p; [ - # here both these package will use haskell-mode of our own choice - ghc-mod - dante -]) - -
-
-
- DLib - - - DLib is a modern, C++-based toolkit which provides several machine learning algorithms. - - -
- Compiling without AVX support - - - Especially older CPUs don't support AVX (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms. - - - - On the affected hardware errors like Illegal instruction will occur. In those cases AVX support needs to be disabled: -self: super: { - dlib = super.dlib.override { avxSupport = false; }; -} - -
-
-
- Unfree software - - - All users of Nixpkgs are free software users, and many users (and developers) of Nixpkgs want to limit and tightly control their exposure to unfree software. At the same time, many users need (or want) to run some specific pieces of proprietary software. Nixpkgs includes some expressions for unfree software packages. By default unfree software cannot be installed and doesn’t show up in searches. To allow installing unfree software in a single Nix invocation one can export NIXPKGS_ALLOW_UNFREE=1. For a persistent solution, users can set allowUnfree in the Nixpkgs configuration. - - - - Fine-grained control is possible by defining allowUnfreePredicate function in config; it takes the mkDerivation parameter attrset and returns true for unfree packages that should be allowed. - -
-
- Steam - -
- Steam in Nix - - - Steam is distributed as a .deb file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called steam that in Ubuntu (their target distro) would go to /usr/bin . When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in $HOME. - - - - Nix problems and constraints: - - - - We don't have /bin/bash and many scripts point there. Similarly for /usr/bin/python . - - - - - We don't have the dynamic loader in /lib . - - - - - The steam.sh script in $HOME can not be patched, as it is checked and rewritten by steam. - - - - - The steam binary cannot be patched, it's also checked. - - - - - - - The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented here. This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment. - -
- -
- How to play - - - For 64-bit systems it's important to have -hardware.opengl.driSupport32Bit = true; - in your /etc/nixos/configuration.nix. You'll also need -hardware.pulseaudio.support32Bit = true; - if you are using PulseAudio - this will enable 32bit ALSA apps integration. To use the Steam controller or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro, you need to add -hardware.steam-hardware.enable = true; - to your configuration. - -
- -
- Troubleshooting - - - - - - Steam fails to start. What do I do? - - - - Try to run -strace steam - to see what is causing steam to fail. - - - - - - Using the FOSS Radeon or nouveau (nvidia) drivers - - - - - - The newStdcpp parameter was removed since NixOS 17.09 and should not be needed anymore. - - - - - Steam ships statically linked with a version of libcrypto that conflics with the one dynamically loaded by radeonsi_dri.so. If you get the error -steam.sh: line 713: 7842 Segmentation fault (core dumped) - have a look at this pull request. - - - - - - - - Java - - - - - - There is no java in steam chrootenv by default. If you get a message like -/home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found - You need to add - steam.override { withJava = true; }; - to your configuration. - - - - - - - -
- -
- steam-run - - - The FHS-compatible chroot used for steam can also be used to run other linux games that expect a FHS environment. To do it, add -pkgs.(steam.override { - nativeOnly = true; - newStdcpp = true; - }).run - to your configuration, rebuild, and run the game with -steam-run ./foo - -
-
-
- Citrix Receiver & Citrix Workspace App - - - - - Please note that the citrix_receiver package has been deprecated since its development was discontinued by upstream and has been replaced by the citrix workspace app. - - - Citrix Receiver and Citrix Workspace App are a remote desktop viewers which provide access to XenDesktop installations. - - -
- Basic usage - - - The tarball archive needs to be downloaded manually as the license agreements of the vendor for Citrix Receiver or Citrix Workspace need to be accepted first. Then run nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz. With the archive available in the store the package can be built and installed with Nix. - - - - Caution with <command>nix-shell</command> installs - - It's recommended to install Citrix Receiver and/or Citrix Workspace using nix-env -i or globally to ensure that the .desktop files are installed properly into $XDG_CONFIG_DIRS. Otherwise it won't be possible to open .ica files automatically from the browser to start a Citrix connection. - - -
- -
- Custom certificates - - - The Citrix Workspace App in nixpkgs trust several certificates from the Mozilla database by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in $ICAROOT, however this directory is a store path in nixpkgs. In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using symlinkJoin: - - { config.allowUnfree = true; }; -let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in -citrix_workspace.override { - inherit extraCerts; -}]]> - - -
-
-
diff --git a/doc/packages/citrix.xml b/doc/packages/citrix.xml new file mode 100644 index 00000000000..bc685f97932 --- /dev/null +++ b/doc/packages/citrix.xml @@ -0,0 +1,44 @@ +
+ Citrix Workspace + + + + + Please note that the citrix_receiver package has been deprecated since its development was discontinued by upstream and has been replaced by the citrix workspace app. + + + Citrix Receiver and Citrix Workspace App are a remote desktop viewers which provide access to XenDesktop installations. + + +
+ Basic usage + + + The tarball archive needs to be downloaded manually as the license agreements of the vendor for Citrix Receiver or Citrix Workspace need to be accepted first. Then run nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz. With the archive available in the store the package can be built and installed with Nix. + + + + Caution with <command>nix-shell</command> installs + + It's recommended to install Citrix Receiver and/or Citrix Workspace using nix-env -i or globally to ensure that the .desktop files are installed properly into $XDG_CONFIG_DIRS. Otherwise it won't be possible to open .ica files automatically from the browser to start a Citrix connection. + + +
+ +
+ Custom certificates + + + The Citrix Workspace App in nixpkgs trust several certificates from the Mozilla database by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in $ICAROOT, however this directory is a store path in nixpkgs. In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using symlinkJoin: + + { config.allowUnfree = true; }; +let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in +citrix_workspace.override { + inherit extraCerts; +}]]> + + +
+
\ No newline at end of file diff --git a/doc/packages/dlib.xml b/doc/packages/dlib.xml new file mode 100644 index 00000000000..98c211cf9df --- /dev/null +++ b/doc/packages/dlib.xml @@ -0,0 +1,24 @@ +
+ DLib + + + DLib is a modern, C++-based toolkit which provides several machine learning algorithms. + + +
+ Compiling without AVX support + + + Especially older CPUs don't support AVX (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms. + + + + On the affected hardware errors like Illegal instruction will occur. In those cases AVX support needs to be disabled: +self: super: { + dlib = super.dlib.override { avxSupport = false; }; +} + +
+
\ No newline at end of file diff --git a/doc/packages/eclipse.xml b/doc/packages/eclipse.xml new file mode 100644 index 00000000000..968c58d3b5b --- /dev/null +++ b/doc/packages/eclipse.xml @@ -0,0 +1,72 @@ +
+ Eclipse + + + The Nix expressions related to the Eclipse platform and IDE are in pkgs/applications/editors/eclipse. + + + + Nixpkgs provides a number of packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages and multiple version are often available. It is possible to list available Eclipse packages by issuing the command: + +$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description + + Once an Eclipse variant is installed it can be run using the eclipse command, as expected. From within Eclipse it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resemble a manually installed Eclipse. + + + + If you prefer to install plugins in a more declarative manner then Nixpkgs also offer a number of Eclipse plugins that can be installed in an Eclipse environment. This type of environment is created using the function eclipseWithPlugins found inside the nixpkgs.eclipses attribute set. This function takes as argument { eclipse, plugins ? [], jvmArgs ? [] } where eclipse is a one of the Eclipse packages described above, plugins is a list of plugin derivations, and jvmArgs is a list of arguments given to the JVM running the Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add + +packageOverrides = pkgs: { + myEclipse = with pkgs.eclipses; eclipseWithPlugins { + eclipse = eclipse-platform; + jvmArgs = [ "-Xmx2048m" ]; + plugins = [ plugins.color-theme ]; + }; +} + + to your Nixpkgs configuration (~/.config/nixpkgs/config.nix) and install it by running nix-env -f '<nixpkgs>' -iA myEclipse and afterward run Eclipse as usual. It is possible to find out which plugins are available for installation using eclipseWithPlugins by running + +$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description + + + + + If there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the buildEclipseUpdateSite and buildEclipsePlugin functions found in the nixpkgs.eclipses.plugins attribute set. Use the buildEclipseUpdateSite function to install a plugin distributed as an Eclipse update site. This function takes { name, src } as argument where src indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available then the buildEclipsePlugin function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes an argument { name, srcFeature, srcPlugin } where srcFeature and srcPlugin are the feature and plugin JARs, respectively. + + + + Expanding the previous example with two plugins using the above functions we have + +packageOverrides = pkgs: { + myEclipse = with pkgs.eclipses; eclipseWithPlugins { + eclipse = eclipse-platform; + jvmArgs = [ "-Xmx2048m" ]; + plugins = [ + plugins.color-theme + (plugins.buildEclipsePlugin { + name = "myplugin1-1.0"; + srcFeature = fetchurl { + url = "http://…/features/myplugin1.jar"; + sha256 = "123…"; + }; + srcPlugin = fetchurl { + url = "http://…/plugins/myplugin1.jar"; + sha256 = "123…"; + }; + }); + (plugins.buildEclipseUpdateSite { + name = "myplugin2-1.0"; + src = fetchurl { + stripRoot = false; + url = "http://…/myplugin2.zip"; + sha256 = "123…"; + }; + }); + ]; + }; +} + + +
\ No newline at end of file diff --git a/doc/packages/elm.xml b/doc/packages/elm.xml new file mode 100644 index 00000000000..8ee05285265 --- /dev/null +++ b/doc/packages/elm.xml @@ -0,0 +1,17 @@ +
+ Elm + + + To start a development environment do nix-shell -p elmPackages.elm elmPackages.elm-format + + + + To update Elm compiler, see nixpkgs/pkgs/development/compilers/elm/README.md. + + + + To package Elm applications, read about elm2nix. + +
\ No newline at end of file diff --git a/doc/packages/emacs.xml b/doc/packages/emacs.xml new file mode 100644 index 00000000000..a9a26882c9c --- /dev/null +++ b/doc/packages/emacs.xml @@ -0,0 +1,131 @@ +
+ Emacs + +
+ Configuring Emacs + + + The Emacs package comes with some extra helpers to make it easier to configure. emacsWithPackages allows you to manage packages from ELPA. This means that you will not have to install that packages from within Emacs. For instance, if you wanted to use company, counsel, flycheck, ivy, magit, projectile, and use-package you could use this as a ~/.config/nixpkgs/config.nix override: + + + +{ + packageOverrides = pkgs: with pkgs; { + myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [ + company + counsel + flycheck + ivy + magit + projectile + use-package + ])); + } +} + + + + You can install it like any other packages via nix-env -iA myEmacs. However, this will only install those packages. It will not configure them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provide a default.el file in /share/emacs/site-start/. Emacs knows to load this file automatically when it starts. + + + +{ + packageOverrides = pkgs: with pkgs; rec { + myEmacsConfig = writeText "default.el" '' +;; initialize package + +(require 'package) +(package-initialize 'noactivate) +(eval-when-compile + (require 'use-package)) + +;; load some packages + +(use-package company + :bind ("<C-tab>" . company-complete) + :diminish company-mode + :commands (company-mode global-company-mode) + :defer 1 + :config + (global-company-mode)) + +(use-package counsel + :commands (counsel-descbinds) + :bind (([remap execute-extended-command] . counsel-M-x) + ("C-x C-f" . counsel-find-file) + ("C-c g" . counsel-git) + ("C-c j" . counsel-git-grep) + ("C-c k" . counsel-ag) + ("C-x l" . counsel-locate) + ("M-y" . counsel-yank-pop))) + +(use-package flycheck + :defer 2 + :config (global-flycheck-mode)) + +(use-package ivy + :defer 1 + :bind (("C-c C-r" . ivy-resume) + ("C-x C-b" . ivy-switch-buffer) + :map ivy-minibuffer-map + ("C-j" . ivy-call)) + :diminish ivy-mode + :commands ivy-mode + :config + (ivy-mode 1)) + +(use-package magit + :defer + :if (executable-find "git") + :bind (("C-x g" . magit-status) + ("C-x G" . magit-dispatch-popup)) + :init + (setq magit-completing-read-function 'ivy-completing-read)) + +(use-package projectile + :commands projectile-mode + :bind-keymap ("C-c p" . projectile-command-map) + :defer 5 + :config + (projectile-global-mode)) + ''; + myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [ + (runCommand "default.el" {} '' +mkdir -p $out/share/emacs/site-lisp +cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el +'') + company + counsel + flycheck + ivy + magit + projectile + use-package + ])); + }; +} + + + + This provides a fairly full Emacs start file. It will load in addition to the user's presonal config. You can always disable it by passing -q to the Emacs command. + + + + Sometimes emacsWithPackages is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to Melpa Unstable, and the highest for packages manually defined in pkgs/top-level/emacs-packages.nix). But you can't control this priorities when some package is installed as a dependency. You can override it on per-package-basis, providing all the required dependencies manually - but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package you can use overrideScope'. + + + +overrides = self: super: rec { + haskell-mode = self.melpaPackages.haskell-mode; + ... +}; +((emacsPackagesGen emacs).overrideScope' overrides).emacsWithPackages (p: with p; [ + # here both these package will use haskell-mode of our own choice + ghc-mod + dante +]) + +
+
\ No newline at end of file diff --git a/doc/packages/ibus.xml b/doc/packages/ibus.xml new file mode 100644 index 00000000000..561d4d2eabd --- /dev/null +++ b/doc/packages/ibus.xml @@ -0,0 +1,57 @@ +
+ ibus-engines.typing-booster + + + This package is an ibus-based completion method to speed up typing. + + +
+ Activating the engine + + + IBus needs to be configured accordingly to activate typing-booster. The configuration depends on the desktop manager in use. For detailed instructions, please refer to the upstream docs. + + + + On NixOS you need to explicitly enable ibus with given engines before customizing your desktop to use typing-booster. This can be achieved using the ibus module: +{ pkgs, ... }: { + i18n.inputMethod = { + enabled = "ibus"; + ibus.engines = with pkgs.ibus-engines; [ typing-booster ]; + }; +} + +
+ +
+ Using custom hunspell dictionaries + + + The IBus engine is based on hunspell to support completion in many languages. By default the dictionaries de-de, en-us, fr-moderne es-es, it-it, sv-se and sv-fi are in use. To add another dictionary, the package can be overridden like this: +ibus-engines.typing-booster.override { + langs = [ "de-at" "en-gb" ]; +} + + + + Note: each language passed to langs must be an attribute name in pkgs.hunspellDicts. + +
+ +
+ Built-in emoji picker + + + The ibus-engines.typing-booster package contains a program named emoji-picker. To display all emojis correctly, a special font such as noto-fonts-emoji is needed: + + + + On NixOS it can be installed using the following expression: +{ pkgs, ... }: { + fonts.fonts = with pkgs; [ noto-fonts-emoji ]; +} + +
+
\ No newline at end of file diff --git a/doc/packages/index.xml b/doc/packages/index.xml new file mode 100644 index 00000000000..9f3f58a8d90 --- /dev/null +++ b/doc/packages/index.xml @@ -0,0 +1,23 @@ + + Packages + + This chapter contains information about how to use and maintain the Nix expressions for a number of specific packages, such as the Linux kernel or X.org. + + + + + + + + + + + + + + + + + diff --git a/doc/packages/kakoune.xml b/doc/packages/kakoune.xml new file mode 100644 index 00000000000..fd40dad7ca8 --- /dev/null +++ b/doc/packages/kakoune.xml @@ -0,0 +1,14 @@ +
+ Kakoune + + + Kakoune can be built to autoload plugins: +(kakoune.override { + configure = { + plugins = with pkgs.kakounePlugins; [ parinfer-rust ]; + }; +}) + +
\ No newline at end of file diff --git a/doc/packages/linux.xml b/doc/packages/linux.xml new file mode 100644 index 00000000000..3adfacb6e45 --- /dev/null +++ b/doc/packages/linux.xml @@ -0,0 +1,85 @@ +
+ Linux kernel + + + The Nix expressions to build the Linux kernel are in pkgs/os-specific/linux/kernel. + + + + The function that builds the kernel has an argument kernelPatches which should be a list of {name, patch, extraConfig} attribute sets, where name is the name of the patch (which is included in the kernel’s meta.description attribute), patch is the patch itself (possibly compressed), and extraConfig (optional) is a string specifying extra options to be concatenated to the kernel configuration file (.config). + + + + The kernel derivation exports an attribute features specifying whether optional functionality is or isn’t enabled. This is used in NixOS to implement kernel-specific behaviour. For instance, if the kernel has the iwlwifi feature (i.e. has built-in support for Intel wireless chipsets), then NixOS doesn’t have to build the external iwlwifi package: + +modulesTree = [kernel] + ++ pkgs.lib.optional (!kernel.features ? iwlwifi) kernelPackages.iwlwifi + ++ ...; + + + + + How to add a new (major) version of the Linux kernel to Nixpkgs: + + + + Copy the old Nix expression (e.g. linux-2.6.21.nix) to the new one (e.g. linux-2.6.22.nix) and update it. + + + + + Add the new kernel to all-packages.nix (e.g., create an attribute kernel_2_6_22). + + + + + Now we’re going to update the kernel configuration. First unpack the kernel. Then for each supported platform (i686, x86_64, uml) do the following: + + + + Make an copy from the old config (e.g. config-2.6.21-i686-smp) to the new one (e.g. config-2.6.22-i686-smp). + + + + + Copy the config file for this platform (e.g. config-2.6.22-i686-smp) to .config in the kernel source tree. + + + + + Run make oldconfig ARCH={i386,x86_64,um} and answer all questions. (For the uml configuration, also add SHELL=bash.) Make sure to keep the configuration consistent between platforms (i.e. don’t enable some feature on i686 and disable it on x86_64). + + + + + If needed you can also run make menuconfig: + +$ nix-env -i ncurses +$ export NIX_CFLAGS_LINK=-lncurses +$ make menuconfig ARCH=arch + + + + + Copy .config over the new config file (e.g. config-2.6.22-i686-smp). + + + + + + + + Test building the kernel: nix-build -A kernel_2_6_22. If it compiles, ship it! For extra credit, try booting NixOS with it. + + + + + It may be that the new kernel requires updating the external kernel modules and kernel-dependent packages listed in the linuxPackagesFor function in all-packages.nix (such as the NVIDIA drivers, AUFS, etc.). If the updated packages aren’t backwards compatible with older kernels, you may need to keep the older versions around. + + + + +
\ No newline at end of file diff --git a/doc/packages/locales.xml b/doc/packages/locales.xml new file mode 100644 index 00000000000..15954495e21 --- /dev/null +++ b/doc/packages/locales.xml @@ -0,0 +1,13 @@ +
+ Locales + + + To allow simultaneous use of packages linked against different versions of glibc with different locale archive formats Nixpkgs patches glibc to rely on LOCALE_ARCHIVE environment variable. + + + + On non-NixOS distributions this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the LOCALE_ARCHIVE variable pointing to ${glibcLocales}/lib/locale/locale-archive. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters allLocales and locales of the package. + +
\ No newline at end of file diff --git a/doc/packages/nginx.xml b/doc/packages/nginx.xml new file mode 100644 index 00000000000..921a6add2a0 --- /dev/null +++ b/doc/packages/nginx.xml @@ -0,0 +1,25 @@ +
+ Nginx + + + Nginx is a reverse proxy and lightweight webserver. + + +
+ ETags on static files served from the Nix store + + + HTTP has a couple different mechanisms for caching to prevent clients from having to download the same content repeatedly if a resource has not changed since the last time it was requested. When nginx is used as a server for static files, it implements the caching mechanism based on the Last-Modified response header automatically; unfortunately, it works by using filesystem timestamps to determine the value of the Last-Modified header. This doesn't give the desired behavior when the file is in the Nix store, because all file timestamps are set to 0 (for reasons related to build reproducibility). + + + + Fortunately, HTTP supports an alternative (and more effective) caching mechanism: the ETag response header. The value of the ETag header specifies some identifier for the particular content that the server is sending (e.g. a hash). When a client makes a second request for the same resource, it sends that value back in an If-None-Match header. If the ETag value is unchanged, then the server does not need to resend the content. + + + + As of NixOS 19.09, the nginx package in Nixpkgs is patched such that when nginx serves a file out of /nix/store, the hash in the store path is used as the ETag header in the HTTP response, thus providing proper caching functionality. This happens automatically; you do not need to do modify any configuration to get this behavior. + +
+
\ No newline at end of file diff --git a/doc/packages/opengl.xml b/doc/packages/opengl.xml new file mode 100644 index 00000000000..fcb624736b0 --- /dev/null +++ b/doc/packages/opengl.xml @@ -0,0 +1,9 @@ +
+ OpenGL + + + Packages that use OpenGL have NixOS desktop as their primary target. The current solution for loading the GPU-specific drivers is based on libglvnd and looks for the driver implementation in LD_LIBRARY_PATH. If you are using a non-NixOS GNU/Linux/X11 desktop with free software video drivers, consider launching OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of libglvnd and mesa_drivers in LD_LIBRARY_PATH. For proprietary video drivers you might have luck with also adding the corresponding video driver package. + +
\ No newline at end of file diff --git a/doc/packages/shell-helpers.xml b/doc/packages/shell-helpers.xml new file mode 100644 index 00000000000..53416ce7e17 --- /dev/null +++ b/doc/packages/shell-helpers.xml @@ -0,0 +1,25 @@ +
+ Interactive shell helpers + + + Some packages provide the shell integration to be more useful. But unlike other systems, nix doesn't have a standard share directory location. This is why a bunch PACKAGE-share scripts are shipped that print the location of the corresponding shared folder. Current list of such packages is as following: + + + + autojump: autojump-share + + + + + fzf: fzf-share + + + + E.g. autojump can then used in the .bashrc like this: + + source "$(autojump-share)/autojump.bash" + + +
\ No newline at end of file diff --git a/doc/packages/steam.xml b/doc/packages/steam.xml new file mode 100644 index 00000000000..413247ee468 --- /dev/null +++ b/doc/packages/steam.xml @@ -0,0 +1,131 @@ +
+ Steam + +
+ Steam in Nix + + + Steam is distributed as a .deb file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called steam that in Ubuntu (their target distro) would go to /usr/bin . When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in $HOME. + + + + Nix problems and constraints: + + + + We don't have /bin/bash and many scripts point there. Similarly for /usr/bin/python . + + + + + We don't have the dynamic loader in /lib . + + + + + The steam.sh script in $HOME can not be patched, as it is checked and rewritten by steam. + + + + + The steam binary cannot be patched, it's also checked. + + + + + + + The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented here. This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment. + +
+ +
+ How to play + + + For 64-bit systems it's important to have +hardware.opengl.driSupport32Bit = true; + in your /etc/nixos/configuration.nix. You'll also need +hardware.pulseaudio.support32Bit = true; + if you are using PulseAudio - this will enable 32bit ALSA apps integration. To use the Steam controller or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro, you need to add +hardware.steam-hardware.enable = true; + to your configuration. + +
+ +
+ Troubleshooting + + + + + + Steam fails to start. What do I do? + + + + Try to run +strace steam + to see what is causing steam to fail. + + + + + + Using the FOSS Radeon or nouveau (nvidia) drivers + + + + + + The newStdcpp parameter was removed since NixOS 17.09 and should not be needed anymore. + + + + + Steam ships statically linked with a version of libcrypto that conflics with the one dynamically loaded by radeonsi_dri.so. If you get the error +steam.sh: line 713: 7842 Segmentation fault (core dumped) + have a look at this pull request. + + + + + + + + Java + + + + + + There is no java in steam chrootenv by default. If you get a message like +/home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found + You need to add + steam.override { withJava = true; }; + to your configuration. + + + + + + + +
+ +
+ steam-run + + + The FHS-compatible chroot used for steam can also be used to run other linux games that expect a FHS environment. To do it, add +pkgs.(steam.override { + nativeOnly = true; + newStdcpp = true; + }).run + to your configuration, rebuild, and run the game with +steam-run ./foo + +
+
\ No newline at end of file diff --git a/doc/packages/unfree.xml b/doc/packages/unfree.xml new file mode 100644 index 00000000000..b2d8402005e --- /dev/null +++ b/doc/packages/unfree.xml @@ -0,0 +1,13 @@ +
+ Unfree software + + + All users of Nixpkgs are free software users, and many users (and developers) of Nixpkgs want to limit and tightly control their exposure to unfree software. At the same time, many users need (or want) to run some specific pieces of proprietary software. Nixpkgs includes some expressions for unfree software packages. By default unfree software cannot be installed and doesn’t show up in searches. To allow installing unfree software in a single Nix invocation one can export NIXPKGS_ALLOW_UNFREE=1. For a persistent solution, users can set allowUnfree in the Nixpkgs configuration. + + + + Fine-grained control is possible by defining allowUnfreePredicate function in config; it takes the mkDerivation parameter attrset and returns true for unfree packages that should be allowed. + +
\ No newline at end of file diff --git a/doc/packages/weechat.xml b/doc/packages/weechat.xml new file mode 100644 index 00000000000..aeb240d904b --- /dev/null +++ b/doc/packages/weechat.xml @@ -0,0 +1,85 @@ +
+ Weechat + + + Weechat can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, install an expression that overrides its configuration such as +weechat.override {configure = {availablePlugins, ...}: { + plugins = with availablePlugins; [ python perl ]; + } +} + If the configure function returns an attrset without the plugins attribute, availablePlugins will be used automatically. + + + + The plugins currently available are python, perl, ruby, guile, tcl and lua. + + + + The python and perl plugins allows the addition of extra libraries. For instance, the inotify.py script in weechat-scripts requires D-Bus or libnotify, and the fish.py script requires pycrypto. To use these scripts, use the plugin's withPackages attribute: +weechat.override { configure = {availablePlugins, ...}: { + plugins = with availablePlugins; [ + (python.withPackages (ps: with ps; [ pycrypto python-dbus ])) + ]; + }; +} + + + + + In order to also keep all default plugins installed, it is possible to use the following method: +weechat.override { configure = { availablePlugins, ... }: { + plugins = builtins.attrValues (availablePlugins // { + python = availablePlugins.python.withPackages (ps: with ps; [ pycrypto python-dbus ]); + }); +}; } + + + + + WeeChat allows to set defaults on startup using the --run-command. The configure method can be used to pass commands to the program: +weechat.override { + configure = { availablePlugins, ... }: { + init = '' + /set foo bar + /server add freenode chat.freenode.org + ''; + }; +} + Further values can be added to the list of commands when running weechat --run-command "your-commands". + + + + Additionally it's possible to specify scripts to be loaded when starting weechat. These will be loaded before the commands from init: +weechat.override { + configure = { availablePlugins, ... }: { + scripts = with pkgs.weechatScripts; [ + weechat-xmpp weechat-matrix-bridge wee-slack + ]; + init = '' + /set plugins.var.python.jabber.key "val" + '': + }; +} + + + + In nixpkgs there's a subpackage which contains derivations for WeeChat scripts. Such derivations expect a passthru.scripts attribute which contains a list of all scripts inside the store path. Furthermore all scripts have to live in $out/share. An exemplary derivation looks like this: +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "exemplary-weechat-script"; + src = fetchurl { + url = "https://scripts.tld/your-scripts.tar.gz"; + sha256 = "..."; + }; + passthru.scripts = [ "foo.py" "bar.lua" ]; + installPhase = '' + mkdir $out/share + cp foo.py $out/share + cp bar.lua $out/share + ''; +} + +
\ No newline at end of file diff --git a/doc/packages/xorg.xml b/doc/packages/xorg.xml new file mode 100644 index 00000000000..4526121687f --- /dev/null +++ b/doc/packages/xorg.xml @@ -0,0 +1,34 @@ +
+ X.org + + + The Nix expressions for the X.org packages reside in pkgs/servers/x11/xorg/default.nix. This file is automatically generated from lists of tarballs in an X.org release. As such it should not be modified directly; rather, you should modify the lists, the generator script or the file pkgs/servers/x11/xorg/overrides.nix, in which you can override or add to the derivations produced by the generator. + + + + The generator is invoked as follows: + +$ cd pkgs/servers/x11/xorg +$ cat tarballs-7.5.list extra.list old.list \ + | perl ./generate-expr-from-tarballs.pl + + For each of the tarballs in the .list files, the script downloads it, unpacks it, and searches its configure.ac and *.pc.in files for dependencies. This information is used to generate default.nix. The generator caches downloaded tarballs between runs. Pay close attention to the NOT FOUND: name messages at the end of the run, since they may indicate missing dependencies. (Some might be optional dependencies, however.) + + + + A file like tarballs-7.5.list contains all tarballs in a X.org release. It can be generated like this: + +$ export i="mirror://xorg/X11R7.4/src/everything/" +$ cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) \ + | perl -e 'while (<>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'i'}$2\n"; }; }' \ + | sort > tarballs-7.4.list + + extra.list contains libraries that aren’t part of X.org proper, but are closely related to it, such as libxcb. old.list contains some packages that were removed from X.org, but are still needed by some people or by other packages (such as imake). + + + + If the expression for a package requires derivation attributes that the generator cannot figure out automatically (say, patches or a postInstall hook), you should modify pkgs/servers/x11/xorg/overrides.nix. + +
\ No newline at end of file From 16d733bbe58baa9e4dfd1912d13d7fdc59268212 Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Sun, 20 Oct 2019 13:34:32 +0200 Subject: [PATCH 24/82] doc: move fetchers and trivial builders under builders --- doc/{functions => builders}/fetchers.xml | 8 ++++---- doc/{functions => builders}/trivial-builders.xml | 6 +++--- doc/functions.xml | 2 -- doc/manual.xml | 4 +++- 4 files changed, 10 insertions(+), 10 deletions(-) rename doc/{functions => builders}/fetchers.xml (97%) rename doc/{functions => builders}/trivial-builders.xml (97%) diff --git a/doc/functions/fetchers.xml b/doc/builders/fetchers.xml similarity index 97% rename from doc/functions/fetchers.xml rename to doc/builders/fetchers.xml index 369c1fb153e..6f8990e8d16 100644 --- a/doc/functions/fetchers.xml +++ b/doc/builders/fetchers.xml @@ -1,8 +1,8 @@ -
- Fetcher functions + xml:id="chap-pkgs-fetchers"> + Fetchers When using Nix, you will frequently need to download source code and other files from the internet. Nixpkgs comes with a few helper functions that allow you to fetch fixed-output derivations in a structured way. @@ -145,4 +145,4 @@ stdenv.mkDerivation { -
+
diff --git a/doc/functions/trivial-builders.xml b/doc/builders/trivial-builders.xml similarity index 97% rename from doc/functions/trivial-builders.xml rename to doc/builders/trivial-builders.xml index ae9f3a1b255..c99425620b1 100644 --- a/doc/functions/trivial-builders.xml +++ b/doc/builders/trivial-builders.xml @@ -1,7 +1,7 @@ -
+ xml:id="chap-trivial-builders"> Trivial builders @@ -76,4 +76,4 @@ -
+ diff --git a/doc/functions.xml b/doc/functions.xml index 3e126e6b139..81aef5f3a83 100644 --- a/doc/functions.xml +++ b/doc/functions.xml @@ -10,8 +10,6 @@ - - diff --git a/doc/manual.xml b/doc/manual.xml index 001a5f3eca5..d0ded1e2e16 100644 --- a/doc/manual.xml +++ b/doc/manual.xml @@ -21,7 +21,9 @@ - Languages, frameworks and packages + Builders + + From fdee83d0fb46f326265dfa5d84de43416dac770d Mon Sep 17 00:00:00 2001 From: Aaron Andersen Date: Sun, 20 Oct 2019 09:02:45 -0400 Subject: [PATCH 25/82] zabbix: init at 4.4.0 --- pkgs/servers/monitoring/zabbix/versions.nix | 5 +++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 6 insertions(+) diff --git a/pkgs/servers/monitoring/zabbix/versions.nix b/pkgs/servers/monitoring/zabbix/versions.nix index 21557634197..03e9464de01 100644 --- a/pkgs/servers/monitoring/zabbix/versions.nix +++ b/pkgs/servers/monitoring/zabbix/versions.nix @@ -1,4 +1,9 @@ generic: { + v44 = generic { + version = "4.4.0"; + sha256 = "1a4csx1i21lcavfvj5djalcnxnlyh4mhk4dddzm895ipl87afzf4"; + }; + v42 = generic { version = "4.2.7"; sha256 = "09znh8x1sass5mw6wjrfmizjbfls8ad2c16y24ldfj40hlfxz6wx"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e0320c9f2ab..01e7176a822 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15503,6 +15503,7 @@ in server = server-pgsql; }; + zabbix44 = zabbixFor "v44"; zabbix42 = zabbixFor "v42"; zabbix40 = zabbixFor "v40"; zabbix30 = zabbixFor "v30"; From 6f6331dbb38ae8fffbaeba3897cfd8ef09dc4d9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Sun, 20 Oct 2019 19:36:35 +0200 Subject: [PATCH 26/82] softmaker-office: fix product unlock error SoftMaker/FreeOffice collects some system information upon unlocking the product. But in doing so, it attempts to execute /bin/ls. If the execve syscall fails, the whole unlock procedure fails. This works around that by rewriting /bin/ls to the proper path. SoftMaker Office restarts itself upon some operations, such changing the theme and unlocking. Unfortunately, we do not have control over its environment then and it will fail with an error. Starting SoftMaker Office from scratch will then work. Fixes #71228 --- .../applications/office/softmaker/generic.nix | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/office/softmaker/generic.nix b/pkgs/applications/office/softmaker/generic.nix index 9505271db14..56dc6a5e4f7 100644 --- a/pkgs/applications/office/softmaker/generic.nix +++ b/pkgs/applications/office/softmaker/generic.nix @@ -3,6 +3,10 @@ # Dynamic Libraries , curl, libGL, libX11, libXext, libXmu, libXrandr, libXrender + # For fixing up execution of /bin/ls, which is necessary for + # product unlocking. +, coreutils, libredirect + , pname, version, edition, suiteName, src, archive , ... @@ -45,7 +49,22 @@ in stdenv.mkDerivation rec { runHook postUnpack ''; - installPhase = '' + installPhase = let + # SoftMaker/FreeOffice collects some system information upon + # unlocking the product. But in doing so, it attempts to execute + # /bin/ls. If the execve syscall fails, the whole unlock + # procedure fails. This works around that by rewriting /bin/ls + # to the proper path. + # + # SoftMaker Office restarts itself upon some operations, such + # changing the theme and unlocking. Unfortunately, we do not + # have control over its environment then and it will fail + # with an error. + lsIntercept = '' + --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \ + --set NIX_REDIRECTS "/bin/ls=${coreutils}/bin/ls" + ''; + in '' runHook preInstall mkdir -p $out/share @@ -54,9 +73,12 @@ in stdenv.mkDerivation rec { # Wrap rather than symlinking, so that the programs can determine # their resource path. mkdir -p $out/bin - makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker - makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations - makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker + makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker \ + ${lsIntercept} + makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations \ + ${lsIntercept} + makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker \ + ${lsIntercept} for size in 16 32 48 64 96 128 256 512 1024; do mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps From b09794c3b269eec37ea28ba53ee3bc3ac745fccd Mon Sep 17 00:00:00 2001 From: Thilo Uttendorfer Date: Sun, 20 Oct 2019 22:40:18 +0200 Subject: [PATCH 27/82] openxcom: 1.0.0.2018.10.08 -> 1.0.0.2019.10.18 - Updated repo owner --- pkgs/games/openxcom/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/games/openxcom/default.nix b/pkgs/games/openxcom/default.nix index 9b3d92a350d..2958a162bbc 100644 --- a/pkgs/games/openxcom/default.nix +++ b/pkgs/games/openxcom/default.nix @@ -1,15 +1,15 @@ {stdenv, fetchFromGitHub, cmake, libGLU_combined, zlib, openssl, libyamlcpp, boost , SDL, SDL_image, SDL_mixer, SDL_gfx }: -let version = "1.0.0.2018.10.08"; in +let version = "1.0.0.2019.10.18"; in stdenv.mkDerivation { pname = "openxcom"; inherit version; src = fetchFromGitHub { - owner = "SupSuper"; + owner = "OpenXcom"; repo = "OpenXcom"; - rev = "13049d617fe762b91893faaf7c14ddefa49e2f1d"; - sha256 = "0vpcfk3g1bnwwmrln14jkj2wvw2z8igxw2mdb7c3y66466wm93ig"; + rev = "f9853b2cb8c8f741ac58707487ef493416d890a3"; + sha256 = "0kbfawj5wsp1mwfcm5mwpkq6s3d13pailjm5w268gqpxjksziyq0"; }; nativeBuildInputs = [ cmake ]; From 9d54ea9b2d5a4fab5d6702081ad8ceacb71360d1 Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Mon, 21 Oct 2019 10:57:56 +0200 Subject: [PATCH 28/82] doc: move image builders into new images chapter --- doc/builders/images.xml | 12 ++++++++++++ doc/{functions => builders/images}/appimagetools.xml | 0 doc/{functions => builders/images}/dockertools.xml | 0 doc/{functions => builders/images}/ocitools.xml | 0 .../images}/snap/example-firefox.nix | 0 .../images}/snap/example-hello.nix | 0 doc/{functions => builders/images}/snaptools.xml | 0 doc/functions.xml | 4 ---- doc/manual.xml | 1 + 9 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 doc/builders/images.xml rename doc/{functions => builders/images}/appimagetools.xml (100%) rename doc/{functions => builders/images}/dockertools.xml (100%) rename doc/{functions => builders/images}/ocitools.xml (100%) rename doc/{functions => builders/images}/snap/example-firefox.nix (100%) rename doc/{functions => builders/images}/snap/example-hello.nix (100%) rename doc/{functions => builders/images}/snaptools.xml (100%) diff --git a/doc/builders/images.xml b/doc/builders/images.xml new file mode 100644 index 00000000000..5e042a8ada8 --- /dev/null +++ b/doc/builders/images.xml @@ -0,0 +1,12 @@ + + Images + + This chapter describes tools for creating various types of images. + + + + + + diff --git a/doc/functions/appimagetools.xml b/doc/builders/images/appimagetools.xml similarity index 100% rename from doc/functions/appimagetools.xml rename to doc/builders/images/appimagetools.xml diff --git a/doc/functions/dockertools.xml b/doc/builders/images/dockertools.xml similarity index 100% rename from doc/functions/dockertools.xml rename to doc/builders/images/dockertools.xml diff --git a/doc/functions/ocitools.xml b/doc/builders/images/ocitools.xml similarity index 100% rename from doc/functions/ocitools.xml rename to doc/builders/images/ocitools.xml diff --git a/doc/functions/snap/example-firefox.nix b/doc/builders/images/snap/example-firefox.nix similarity index 100% rename from doc/functions/snap/example-firefox.nix rename to doc/builders/images/snap/example-firefox.nix diff --git a/doc/functions/snap/example-hello.nix b/doc/builders/images/snap/example-hello.nix similarity index 100% rename from doc/functions/snap/example-hello.nix rename to doc/builders/images/snap/example-hello.nix diff --git a/doc/functions/snaptools.xml b/doc/builders/images/snaptools.xml similarity index 100% rename from doc/functions/snaptools.xml rename to doc/builders/images/snaptools.xml diff --git a/doc/functions.xml b/doc/functions.xml index 81aef5f3a83..29b27d7d0de 100644 --- a/doc/functions.xml +++ b/doc/functions.xml @@ -12,10 +12,6 @@ - - - - diff --git a/doc/manual.xml b/doc/manual.xml index d0ded1e2e16..525373a3427 100644 --- a/doc/manual.xml +++ b/doc/manual.xml @@ -24,6 +24,7 @@ Builders + From 24b1ef51337cc8267955eedda818cfccb222f2ea Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Mon, 21 Oct 2019 11:19:46 +0200 Subject: [PATCH 29/82] doc: move overrides into separate chapter --- doc/functions.xml | 1 - doc/manual.xml | 1 + doc/{functions => }/overrides.xml | 6 +++--- 3 files changed, 4 insertions(+), 4 deletions(-) rename doc/{functions => }/overrides.xml (98%) diff --git a/doc/functions.xml b/doc/functions.xml index 29b27d7d0de..970367870ee 100644 --- a/doc/functions.xml +++ b/doc/functions.xml @@ -7,7 +7,6 @@ The nixpkgs repository has several utility functions to manipulate Nix expressions. - diff --git a/doc/manual.xml b/doc/manual.xml index 525373a3427..31c507178a8 100644 --- a/doc/manual.xml +++ b/doc/manual.xml @@ -10,6 +10,7 @@ Using Nixpkgs + diff --git a/doc/functions/overrides.xml b/doc/overrides.xml similarity index 98% rename from doc/functions/overrides.xml rename to doc/overrides.xml index 4ba4283c609..991e13a1b82 100644 --- a/doc/functions/overrides.xml +++ b/doc/overrides.xml @@ -1,7 +1,7 @@ -
+ xml:id="chap-overrides"> Overriding @@ -148,4 +148,4 @@ c = lib.makeOverridable f { a = 1; b = 2; }; The variable c however also has some additional functions, like c.override which can be used to override the default arguments. In this example the value of (c.override { a = 4; }).result is 6.
- + From 7673965e300337de052c5afdb5edae8a56a19540 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Mon, 21 Oct 2019 04:20:00 -0500 Subject: [PATCH 30/82] nodejs-12_x: 12.12.0 -> 12.13.0 Changelog: https://github.com/nodejs/node/releases/tag/v12.13.0 --- pkgs/development/web/nodejs/v12.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix index a4e5edd77a4..37a69eb4ddd 100644 --- a/pkgs/development/web/nodejs/v12.nix +++ b/pkgs/development/web/nodejs/v12.nix @@ -5,8 +5,8 @@ let in buildNodejs { inherit enableNpm; - version = "12.12.0"; - sha256 = "1hcc9arbc6vpzjvf3sd6alm2rc18x3ay2p0i36wz2r4pp9d8gynr"; + version = "12.13.0"; + sha256 = "1xmy73q3qjmy68glqxmfrk6baqk655py0cic22h1h0v7rx0iaax8"; patches = stdenv.lib.optionals stdenv.isDarwin [ ./disable-libatomic-darwin.patch ]; } From 5feacc97108f073c840b89beb6139dc77be9b0bd Mon Sep 17 00:00:00 2001 From: chessai Date: Mon, 21 Oct 2019 01:01:14 -0400 Subject: [PATCH 31/82] clfft: init at 2.21.2 --- pkgs/development/libraries/clfft/default.nix | 34 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 pkgs/development/libraries/clfft/default.nix diff --git a/pkgs/development/libraries/clfft/default.nix b/pkgs/development/libraries/clfft/default.nix new file mode 100644 index 00000000000..5eb5b842ecf --- /dev/null +++ b/pkgs/development/libraries/clfft/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, cmake, fftw, fftwFloat, boost166, opencl-clhpp, ocl-icd }: + +let + version = "2.12.2"; +in stdenv.mkDerivation { + pname = "clfft"; + inherit version; + + src = fetchFromGitHub { + owner = "clMathLibraries"; + repo = "clFFT"; + rev = "refs/tags/v${version}"; + sha256 = "134vb6214hn00qy84m4djg4hqs6hw19gkp8d0wlq8gb9m3mfx7na"; + }; + + sourceRoot = "source/src"; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ fftw fftwFloat boost166 opencl-clhpp ocl-icd ]; + + meta = with stdenv.lib; { + description = "Library containing FFT functions written in OpenCL"; + longDescription = '' + clFFT is a software library containing FFT functions written in OpenCL. + In addition to GPU devices, the library also supports running on CPU devices to facilitate debugging and heterogeneous programming. + ''; + license = licenses.asl20; + homepage = "http://clmathlibraries.github.io/clFFT/"; + platforms = [ "i686-linux" "x86_64-linux" ]; + maintainers = with maintainers; [ chessai ]; + inherit version; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bb4abbfc270..568168a798e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10607,6 +10607,8 @@ in clearsilver = callPackage ../development/libraries/clearsilver { }; + clfft = callPackage ../development/libraries/clfft { }; + clipp = callPackage ../development/libraries/clipp { }; clipper = callPackage ../development/libraries/clipper { }; From 2b9713c2815aafaa410acca8600da5dbf7ca6821 Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Mon, 21 Oct 2019 11:39:46 +0200 Subject: [PATCH 32/82] doc: move fhs and mkShell under builders/special In my opinion Functions should only contain pure functions. These are both meant to provide derivations so I put them under Builders. Don't know exactly *where* to put them so "special" it is... --- doc/builders/special.xml | 12 ++++++++++++ .../special}/fhs-environments.xml | 0 .../shell.xml => builders/special/mkshell.xml} | 0 doc/functions.xml | 2 -- doc/manual.xml | 1 + 5 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 doc/builders/special.xml rename doc/{functions => builders/special}/fhs-environments.xml (100%) rename doc/{functions/shell.xml => builders/special/mkshell.xml} (100%) diff --git a/doc/builders/special.xml b/doc/builders/special.xml new file mode 100644 index 00000000000..56d98f02527 --- /dev/null +++ b/doc/builders/special.xml @@ -0,0 +1,12 @@ + + Special builders + + This chapter describes several special builders. + + + + + + diff --git a/doc/functions/fhs-environments.xml b/doc/builders/special/fhs-environments.xml similarity index 100% rename from doc/functions/fhs-environments.xml rename to doc/builders/special/fhs-environments.xml diff --git a/doc/functions/shell.xml b/doc/builders/special/mkshell.xml similarity index 100% rename from doc/functions/shell.xml rename to doc/builders/special/mkshell.xml diff --git a/doc/functions.xml b/doc/functions.xml index 970367870ee..5a9240ec800 100644 --- a/doc/functions.xml +++ b/doc/functions.xml @@ -9,8 +9,6 @@ - - diff --git a/doc/manual.xml b/doc/manual.xml index 31c507178a8..de2c70eaf35 100644 --- a/doc/manual.xml +++ b/doc/manual.xml @@ -25,6 +25,7 @@ Builders + From bf2f1c8e007aed50800672f5dec184bace758cb7 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Mon, 21 Oct 2019 12:47:44 +0200 Subject: [PATCH 33/82] Revert "mbedtls: 2.16.0 -> 2.17.0" This reverts commit ba3b9c0eb8430093069ed319cbfcd7ad48e69edb. cc #60625 #71452 --- pkgs/development/libraries/mbedtls/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/mbedtls/default.nix b/pkgs/development/libraries/mbedtls/default.nix index a06d082b226..047e71f388e 100644 --- a/pkgs/development/libraries/mbedtls/default.nix +++ b/pkgs/development/libraries/mbedtls/default.nix @@ -11,13 +11,14 @@ stdenv.mkDerivation rec { pname = "mbedtls"; - version = "2.17.0"; + name = "mbedtls-${version}"; + version = "2.16.0"; src = fetchFromGitHub { owner = "ARMmbed"; repo = "mbedtls"; rev = "${pname}-${version}"; - sha256 = "1mk3xv61wvqqrzd6jnrz8csyfnwwwwpjzywj3fsfy99p51d7wqgw"; + sha256 = "14gw3rga9qr6j8ssfjy7k4l8spz37gamqxh9qcwas7w48303897l"; }; nativeBuildInputs = [ cmake ninja perl python ]; From 360e57a567a7cb8fbe3d1f41dbb09238eccddefa Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Mon, 21 Oct 2019 12:48:22 +0200 Subject: [PATCH 34/82] mbedtls: 2.16.0 -> 2.16.3 Fixes CVE-2019-16910. Fixes #71452. --- pkgs/development/libraries/mbedtls/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/mbedtls/default.nix b/pkgs/development/libraries/mbedtls/default.nix index 047e71f388e..4d833bb1848 100644 --- a/pkgs/development/libraries/mbedtls/default.nix +++ b/pkgs/development/libraries/mbedtls/default.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation rec { pname = "mbedtls"; name = "mbedtls-${version}"; - version = "2.16.0"; + version = "2.16.3"; src = fetchFromGitHub { owner = "ARMmbed"; repo = "mbedtls"; rev = "${pname}-${version}"; - sha256 = "14gw3rga9qr6j8ssfjy7k4l8spz37gamqxh9qcwas7w48303897l"; + sha256 = "1mzh92yyz93099a1gb2wvwc76jv12d1k1wg9k3dimbgczxgrkirc"; }; nativeBuildInputs = [ cmake ninja perl python ]; From 1d4f48d730c6d73532f8c1f4ef92c438f4a856b2 Mon Sep 17 00:00:00 2001 From: Brian Hicks Date: Mon, 21 Oct 2019 06:04:05 -0500 Subject: [PATCH 35/82] elmPackages.*: update to latest versions elm-language-server: 1.4.1 -> 1.4.2 downstream updates in others --- .../compilers/elm/packages/node-packages.nix | 274 ++++++++++++++---- 1 file changed, 218 insertions(+), 56 deletions(-) diff --git a/pkgs/development/compilers/elm/packages/node-packages.nix b/pkgs/development/compilers/elm/packages/node-packages.nix index 91e027990d6..44afd4ca3cb 100644 --- a/pkgs/development/compilers/elm/packages/node-packages.nix +++ b/pkgs/development/compilers/elm/packages/node-packages.nix @@ -76,13 +76,13 @@ let sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="; }; }; - "@types/node-12.7.12" = { + "@types/node-12.11.1" = { name = "_at_types_slash_node"; packageName = "@types/node"; - version = "12.7.12"; + version = "12.11.1"; src = fetchurl { - url = "https://registry.npmjs.org/@types/node/-/node-12.7.12.tgz"; - sha512 = "KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ=="; + url = "https://registry.npmjs.org/@types/node/-/node-12.11.1.tgz"; + sha512 = "TJtwsqZ39pqcljJpajeoofYRfeZ7/I/OMUQ5pR4q5wOKf2ocrUvBAZUMhWsOvKx3dVc/aaV5GluBivt0sWqA5A=="; }; }; "accepts-1.3.7" = { @@ -382,13 +382,13 @@ let sha512 = "Y+Wvypk3JhH5GPZAvlwJAWOVH/OsOhQMSj37vySuWHwQivoALplPxfBA8b973rFJI7OS+O+1YmmYXIiEXVMAcw=="; }; }; - "bluebird-3.7.0" = { + "bluebird-3.7.1" = { name = "bluebird"; packageName = "bluebird"; - version = "3.7.0"; + version = "3.7.1"; src = fetchurl { - url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz"; - sha512 = "aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg=="; + url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz"; + sha512 = "DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg=="; }; }; "body-parser-1.18.2" = { @@ -787,22 +787,22 @@ let sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d"; }; }; - "core-js-2.6.9" = { + "core-js-2.6.10" = { name = "core-js"; packageName = "core-js"; - version = "2.6.9"; + version = "2.6.10"; src = fetchurl { - url = "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz"; - sha512 = "HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="; + url = "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz"; + sha512 = "I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA=="; }; }; - "core-js-3.2.1" = { + "core-js-3.3.2" = { name = "core-js"; packageName = "core-js"; - version = "3.2.1"; + version = "3.3.2"; src = fetchurl { - url = "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz"; - sha512 = "Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw=="; + url = "https://registry.npmjs.org/core-js/-/core-js-3.3.2.tgz"; + sha512 = "S1FfZpeBchkhyoY76YAdFzKS4zz9aOK7EeFaNA2aJlyXyA+sgqz6xdxmLPGXEAf0nF44MVN1kSjrA9Kt3ATDQg=="; }; }; "core-util-is-1.0.2" = { @@ -1121,13 +1121,22 @@ let sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="; }; }; - "es-abstract-1.15.0" = { + "error-ex-1.3.2" = { + name = "error-ex"; + packageName = "error-ex"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"; + sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="; + }; + }; + "es-abstract-1.16.0" = { name = "es-abstract"; packageName = "es-abstract"; - version = "1.15.0"; + version = "1.16.0"; src = fetchurl { - url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz"; - sha512 = "bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ=="; + url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz"; + sha512 = "xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg=="; }; }; "es-to-primitive-1.2.0" = { @@ -1202,13 +1211,13 @@ let sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA=="; }; }; - "execa-2.1.0" = { + "execa-3.2.0" = { name = "execa"; packageName = "execa"; - version = "2.1.0"; + version = "3.2.0"; src = fetchurl { - url = "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz"; - sha512 = "Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw=="; + url = "https://registry.npmjs.org/execa/-/execa-3.2.0.tgz"; + sha512 = "kJJfVbI/lZE1PZYDI5VPxp8zXPO9rtxOkhpZ0jMKha56AI9y2gGVC6bkukStQf0ka5Rh15BA5m7cCCH4jmHqkw=="; }; }; "expand-brackets-2.1.4" = { @@ -1598,13 +1607,13 @@ let sha512 = "oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw=="; }; }; - "fsevents-2.1.0" = { + "fsevents-2.1.1" = { name = "fsevents"; packageName = "fsevents"; - version = "2.1.0"; + version = "2.1.1"; src = fetchurl { - url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.0.tgz"; - sha512 = "+iXhW3LuDQsno8dOIrCIT/CBjeBWuP7PXe8w9shnj9Lebny/Gx1ZjVBYwexLz36Ri2jKuXMNpV6CYNh8lHHgrQ=="; + url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.1.tgz"; + sha512 = "4FRPXWETxtigtJW/gxzEDsX1LVbPAM93VleB83kZB+ellqbHMkyt2aJfuzNLRvFPnGi6bcE5SvfxgbXPeKteJw=="; }; }; "function-bind-1.1.1" = { @@ -1868,6 +1877,15 @@ let sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f"; }; }; + "hosted-git-info-2.8.5" = { + name = "hosted-git-info"; + packageName = "hosted-git-info"; + version = "2.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz"; + sha512 = "kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg=="; + }; + }; "http-cache-semantics-3.8.1" = { name = "http-cache-semantics"; packageName = "http-cache-semantics"; @@ -1931,6 +1949,15 @@ let sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; }; }; + "human-signals-1.1.1" = { + name = "human-signals"; + packageName = "human-signals"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz"; + sha512 = "SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw=="; + }; + }; "iconv-lite-0.4.19" = { name = "iconv-lite"; packageName = "iconv-lite"; @@ -2057,6 +2084,15 @@ let sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ=="; }; }; + "is-arrayish-0.2.1" = { + name = "is-arrayish"; + packageName = "is-arrayish"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"; + sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d"; + }; + }; "is-binary-path-1.0.1" = { name = "is-binary-path"; packageName = "is-binary-path"; @@ -2390,6 +2426,15 @@ let sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"; }; }; + "json-parse-better-errors-1.0.2" = { + name = "json-parse-better-errors"; + packageName = "json-parse-better-errors"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"; + sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="; + }; + }; "json-schema-0.2.3" = { name = "json-schema"; packageName = "json-schema"; @@ -2903,6 +2948,15 @@ let sha512 = "z9xN2ibI6P0UylFadN7oMcIMsoTeCENC0rZyRM5MVK9AqzSPx+uGqKG6KMPeC/laOV4wOGZq/GH0PTstRNSqOA=="; }; }; + "normalize-package-data-2.5.0" = { + name = "normalize-package-data"; + packageName = "normalize-package-data"; + version = "2.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"; + sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA=="; + }; + }; "normalize-path-2.1.1" = { name = "normalize-path"; packageName = "normalize-path"; @@ -2948,13 +3002,13 @@ let sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f"; }; }; - "npm-run-path-3.1.0" = { + "npm-run-path-4.0.0" = { name = "npm-run-path"; packageName = "npm-run-path"; - version = "3.1.0"; + version = "4.0.0"; src = fetchurl { - url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz"; - sha512 = "Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg=="; + url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.0.tgz"; + sha512 = "8eyAOAH+bYXFPSnNnKr3J+yoybe8O87Is5rtAQ8qRczJz1ajcsjg8l2oZqP+Ppx15Ii3S1vUTjQN2h4YO2tWWQ=="; }; }; "npx-10.2.0" = { @@ -3200,6 +3254,15 @@ let sha512 = "EeHQFFTlEmLrkIQoxbE9w0FuAWHoc1XpthDqnZ/i9keOt701cteyXwAxQFLpVqVjj3feh2TodkihjLaRUtIgLg=="; }; }; + "parse-json-4.0.0" = { + name = "parse-json"; + packageName = "parse-json"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz"; + sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0"; + }; + }; "parseurl-1.3.3" = { name = "parseurl"; packageName = "parseurl"; @@ -3263,6 +3326,15 @@ let sha512 = "8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg=="; }; }; + "path-parse-1.0.6" = { + name = "path-parse"; + packageName = "path-parse"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"; + sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="; + }; + }; "path-to-regexp-0.1.7" = { name = "path-to-regexp"; packageName = "path-to-regexp"; @@ -3362,6 +3434,15 @@ let sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; }; }; + "project-version-1.2.0" = { + name = "project-version"; + packageName = "project-version"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/project-version/-/project-version-1.2.0.tgz"; + sha512 = "o94hj3Ld7/7jeFPZEPuZxsbpeOsPqZMXh5iYIDS7rjhjj4UcYHDlb4pYi43qjXMYM3LUcD6qJhQq9siEzg1KIA=="; + }; + }; "proto-list-1.2.4" = { name = "proto-list"; packageName = "proto-list"; @@ -3497,6 +3578,15 @@ let sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="; }; }; + "read-pkg-4.0.1" = { + name = "read-pkg"; + packageName = "read-pkg"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz"; + sha1 = "963625378f3e1c4d48c85872b5a6ec7d5d093237"; + }; + }; "readable-stream-2.0.6" = { name = "readable-stream"; packageName = "readable-stream"; @@ -3524,13 +3614,13 @@ let sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ=="; }; }; - "readdirp-3.1.3" = { + "readdirp-3.2.0" = { name = "readdirp"; packageName = "readdirp"; - version = "3.1.3"; + version = "3.2.0"; src = fetchurl { - url = "https://registry.npmjs.org/readdirp/-/readdirp-3.1.3.tgz"; - sha512 = "ZOsfTGkjO2kqeR5Mzr5RYDbTGYneSkdNKX2fOX2P5jF7vMrd/GNnIAUtDldeHHumHUCQ3V05YfWUdxMPAsRu9Q=="; + url = "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz"; + sha512 = "crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ=="; }; }; "regenerator-runtime-0.9.6" = { @@ -3650,6 +3740,15 @@ let sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff"; }; }; + "resolve-1.12.0" = { + name = "resolve"; + packageName = "resolve"; + version = "1.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz"; + sha512 = "B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w=="; + }; + }; "resolve-url-0.2.1" = { name = "resolve-url"; packageName = "resolve-url"; @@ -4028,6 +4127,42 @@ let sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3"; }; }; + "spdx-correct-3.1.0" = { + name = "spdx-correct"; + packageName = "spdx-correct"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz"; + sha512 = "lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q=="; + }; + }; + "spdx-exceptions-2.2.0" = { + name = "spdx-exceptions"; + packageName = "spdx-exceptions"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz"; + sha512 = "2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="; + }; + }; + "spdx-expression-parse-3.0.0" = { + name = "spdx-expression-parse"; + packageName = "spdx-expression-parse"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz"; + sha512 = "Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg=="; + }; + }; + "spdx-license-ids-3.0.5" = { + name = "spdx-license-ids"; + packageName = "spdx-license-ids"; + version = "3.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz"; + sha512 = "J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="; + }; + }; "split-1.0.1" = { name = "split"; packageName = "split"; @@ -4604,6 +4739,15 @@ let sha512 = "pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="; }; }; + "validate-npm-package-license-3.0.4" = { + name = "validate-npm-package-license"; + packageName = "validate-npm-package-license"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"; + sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="; + }; + }; "vary-1.1.2" = { name = "vary"; packageName = "vary"; @@ -4784,13 +4928,13 @@ let sha512 = "o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A=="; }; }; - "ws-7.1.2" = { + "ws-7.2.0" = { name = "ws"; packageName = "ws"; - version = "7.1.2"; + version = "7.2.0"; src = fetchurl { - url = "https://registry.npmjs.org/ws/-/ws-7.1.2.tgz"; - sha512 = "gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg=="; + url = "https://registry.npmjs.org/ws/-/ws-7.2.0.tgz"; + sha512 = "+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg=="; }; }; "xmlbuilder-8.2.2" = { @@ -4906,7 +5050,7 @@ in sources."binary-0.3.0" sources."binary-extensions-1.13.1" sources."binwrap-0.2.2" - sources."bluebird-3.7.0" + sources."bluebird-3.7.1" sources."brace-expansion-1.1.11" (sources."braces-2.3.2" // { dependencies = [ @@ -5299,7 +5443,7 @@ in sources."binary-0.3.0" sources."binary-extensions-1.13.1" sources."binwrap-0.2.2" - sources."bluebird-3.7.0" + sources."bluebird-3.7.1" sources."brace-expansion-1.1.11" (sources."braces-2.3.2" // { dependencies = [ @@ -5762,7 +5906,7 @@ in sources."cookie-0.4.0" sources."cookie-signature-1.0.6" sources."copy-descriptor-0.1.1" - sources."core-js-3.2.1" + sources."core-js-3.3.2" sources."core-util-is-1.0.2" sources."cross-spawn-6.0.5" sources."debug-2.6.9" @@ -5777,7 +5921,7 @@ in sources."ee-first-1.1.1" sources."encodeurl-1.0.2" sources."end-of-stream-1.4.4" - sources."es-abstract-1.15.0" + sources."es-abstract-1.16.0" sources."es-to-primitive-1.2.0" sources."escape-html-1.0.3" sources."escape-string-regexp-1.0.5" @@ -6204,7 +6348,7 @@ in sources."content-type-1.0.4" sources."cookie-0.3.1" sources."cookie-signature-1.0.6" - sources."core-js-2.6.9" + sources."core-js-2.6.10" sources."core-util-is-1.0.2" sources."dashdash-1.14.1" sources."debug-2.6.9" @@ -6388,7 +6532,7 @@ in ]; }) sources."fresh-0.5.2" - sources."fsevents-2.1.0" + sources."fsevents-2.1.1" sources."get-stream-4.1.0" sources."glob-parent-5.1.0" sources."has-ansi-2.0.0" @@ -6425,7 +6569,7 @@ in sources."pseudomap-1.0.2" sources."pump-3.0.0" sources."range-parser-1.2.1" - sources."readdirp-3.1.3" + sources."readdirp-3.2.0" sources."requires-port-1.0.0" sources."semver-5.7.1" (sources."send-0.17.1" // { @@ -6470,7 +6614,7 @@ in sha512 = "9AjXLkznJBVLHHO+KErcgFMKeXe3tcudjj3PYIH6gWXG6W3PT+HF+t2zCflvgFPlhJO5H/wQCCo4rfCApltBzg=="; }; dependencies = [ - sources."bluebird-3.7.0" + sources."bluebird-3.7.1" sources."core-util-is-1.0.2" sources."fs-extra-6.0.1" sources."graceful-fs-4.2.2" @@ -6504,10 +6648,10 @@ in "@elm-tooling/elm-language-server" = nodeEnv.buildNodePackage { name = "_at_elm-tooling_slash_elm-language-server"; packageName = "@elm-tooling/elm-language-server"; - version = "1.4.1"; + version = "1.4.2"; src = fetchurl { - url = "https://registry.npmjs.org/@elm-tooling/elm-language-server/-/elm-language-server-1.4.1.tgz"; - sha512 = "gzN/ee5JfQmg/+2xFq49zRN62ZFeMTu5A0unwQpOf3qLZa8Rz7no6OIaCnl6nEkNsaoAjvZxv1aFJOd2TtNtFw=="; + url = "https://registry.npmjs.org/@elm-tooling/elm-language-server/-/elm-language-server-1.4.2.tgz"; + sha512 = "66FzEfP1Pan3Hw417rRVTXFtYcKV6EB8HwEQ6uQcnP1ggpTqV/7D8Mp90Y3JzsDHyIwm7BlsksxY6K+dEOgXqg=="; }; dependencies = [ sources."@nodelib/fs.scandir-2.1.3" @@ -6516,7 +6660,7 @@ in sources."@types/events-3.0.0" sources."@types/glob-7.1.1" sources."@types/minimatch-3.0.3" - sources."@types/node-12.7.12" + sources."@types/node-12.11.1" sources."accepts-1.3.7" sources."ajv-6.10.2" sources."array-flatten-1.1.1" @@ -6542,7 +6686,7 @@ in sources."content-type-1.0.4" sources."cookie-0.3.1" sources."cookie-signature-1.0.6" - sources."core-js-2.6.9" + sources."core-js-2.6.10" sources."core-util-is-1.0.2" sources."cross-spawn-7.0.1" sources."dashdash-1.14.1" @@ -6561,9 +6705,10 @@ in }) sources."encodeurl-1.0.2" sources."end-of-stream-1.4.4" + sources."error-ex-1.3.2" sources."escape-html-1.0.3" sources."etag-1.8.1" - (sources."execa-2.1.0" // { + (sources."execa-3.2.0" // { dependencies = [ sources."is-stream-2.0.0" ]; @@ -6598,13 +6743,16 @@ in sources."graceful-fs-4.2.2" sources."har-schema-2.0.0" sources."har-validator-5.1.3" + sources."hosted-git-info-2.8.5" sources."http-errors-1.6.3" sources."http-signature-1.2.0" + sources."human-signals-1.1.1" sources."iconv-lite-0.4.19" sources."ignore-5.1.4" sources."inflight-1.0.6" sources."inherits-2.0.3" sources."ipaddr.js-1.9.0" + sources."is-arrayish-0.2.1" sources."is-extglob-2.1.1" sources."is-glob-4.0.1" sources."is-number-7.0.0" @@ -6615,6 +6763,7 @@ in sources."isexe-2.0.0" sources."isstream-0.1.2" sources."jsbn-0.1.1" + sources."json-parse-better-errors-1.0.2" sources."json-schema-0.2.3" sources."json-schema-traverse-0.4.1" sources."json-stringify-safe-5.0.1" @@ -6636,7 +6785,8 @@ in sources."ms-2.0.0" sources."negotiator-0.6.2" sources."node-watch-0.5.5" - sources."npm-run-path-3.1.0" + sources."normalize-package-data-2.5.0" + sources."npm-run-path-4.0.0" sources."oauth-sign-0.9.0" sources."on-finished-2.3.0" sources."once-1.4.0" @@ -6646,14 +6796,18 @@ in sources."os-homedir-1.0.2" sources."os-tmpdir-1.0.2" sources."p-finally-2.0.1" + sources."parse-json-4.0.0" sources."parseurl-1.3.3" sources."path-is-absolute-1.0.1" sources."path-key-3.1.0" + sources."path-parse-1.0.6" sources."path-to-regexp-0.1.7" sources."path-type-4.0.0" sources."performance-now-2.1.0" sources."picomatch-2.0.7" + sources."pify-3.0.0" sources."process-nextick-args-1.0.7" + sources."project-version-1.2.0" sources."proxy-addr-2.0.5" sources."psl-1.4.0" sources."pump-3.0.0" @@ -6667,6 +6821,7 @@ in sources."setprototypeof-1.0.3" ]; }) + sources."read-pkg-4.0.1" sources."readable-stream-2.0.6" sources."regenerator-runtime-0.9.6" (sources."request-2.88.0" // { @@ -6675,11 +6830,13 @@ in sources."safe-buffer-5.2.0" ]; }) + sources."resolve-1.12.0" sources."reusify-1.0.4" sources."run-parallel-1.1.9" sources."rxjs-6.5.3" sources."safe-buffer-5.1.1" sources."safer-buffer-2.1.2" + sources."semver-5.7.1" sources."send-0.16.2" sources."serve-static-1.13.2" sources."setprototypeof-1.1.0" @@ -6687,6 +6844,10 @@ in sources."shebang-regex-3.0.0" sources."signal-exit-3.0.2" sources."slash-3.0.0" + sources."spdx-correct-3.1.0" + sources."spdx-exceptions-2.2.0" + sources."spdx-expression-parse-3.0.0" + sources."spdx-license-ids-3.0.5" sources."sshpk-1.16.1" sources."statuses-1.4.0" sources."string_decoder-0.10.31" @@ -6712,6 +6873,7 @@ in sources."util-deprecate-1.0.2" sources."utils-merge-1.0.1" sources."uuid-3.3.3" + sources."validate-npm-package-license-3.0.4" sources."vary-1.1.2" sources."verror-1.10.0" sources."vscode-jsonrpc-4.0.0" @@ -6726,7 +6888,7 @@ in sources."web-tree-sitter-0.15.9" sources."which-2.0.1" sources."wrappy-1.0.2" - sources."ws-7.1.2" + sources."ws-7.2.0" sources."xtend-4.0.2" ]; buildInputs = globalBuildInputs; From 8252861507ef85b45f739c63f27d4e9a80b31b31 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Fri, 18 Oct 2019 17:57:33 +0200 Subject: [PATCH 36/82] lib/trivial: add `pipe` function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `pipe` is a useful operator for creating pipelines of functions. It works around the usual problem of e.g. string operations becoming deeply nested functions. In principle, there are four different ways this function could be written: pipe val [ f1 .. fn ] pipe val [ fn .. f1 ] compose [ f1 .. fn ] val compose [ fn .. f1 ] val The third and fourth form mirror composition of functions, they would be the same as e.g. `(f1 << f2 << f3 .. << fn) val`. However, it is not clear which direction the list should have (as one can see in the second form, which is the most absurd. In order not to confuse users, we decide for the most “intuitive” form, which mirrors the way unix pipes work (thus the name `pipe`). The flow of data goes from left to right. Co-Authored-By: Silvan Mosberger --- lib/default.nix | 4 ++-- lib/tests/misc.nix | 25 +++++++++++++++++++++++++ lib/trivial.nix | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 2 deletions(-) diff --git a/lib/default.nix b/lib/default.nix index f293a1defb1..74d508ec1d6 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -57,8 +57,8 @@ let hasAttr head isAttrs isBool isInt isList isString length lessThan listToAttrs pathExists readFile replaceStrings seq stringLength sub substring tail; - inherit (trivial) id const concat or and bitAnd bitOr bitXor bitNot - boolToString mergeAttrs flip mapNullable inNixShell min max + inherit (trivial) id const pipe concat or and bitAnd bitOr bitXor + bitNot boolToString mergeAttrs flip mapNullable inNixShell min max importJSON warn info showWarnings nixpkgsVersion version mod compare splitByAndCompare functionArgs setFunctionArgs isFunction; inherit (fixedPoints) fix fix' converge extends composeExtensions diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index e5d76d4e57b..b064faa1e1b 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -18,6 +18,31 @@ runTests { expected = 2; }; + testPipe = { + expr = pipe 2 [ + (x: x + 2) # 2 + 2 = 4 + (x: x * 2) # 4 * 2 = 8 + ]; + expected = 8; + }; + + testPipeEmpty = { + expr = pipe 2 []; + expected = 2; + }; + + testPipeStrings = { + expr = pipe [ 3 4 ] [ + (map toString) + (map (s: s + "\n")) + concatStrings + ]; + expected = '' + 3 + 4 + ''; + }; + /* testOr = { expr = or true false; diff --git a/lib/trivial.nix b/lib/trivial.nix index 54c66cfce7b..3a25e31fb05 100644 --- a/lib/trivial.nix +++ b/lib/trivial.nix @@ -29,6 +29,43 @@ rec { # Value to ignore y: x; + /* Pipes a value through a list of functions, left to right. + + Type: pipe :: a -> [] -> + Example: + pipe 2 [ + (x: x + 2) # 2 + 2 = 4 + (x: x * 2) # 4 * 2 = 8 + ] + => 8 + + # ideal to do text transformations + pipe [ "a/b" "a/c" ] [ + + # create the cp command + (map (file: ''cp "${src}/${file}" $out\n'')) + + # concatenate all commands into one string + lib.concatStrings + + # make that string into a nix derivation + (pkgs.runCommand "copy-to-out" {}) + + ] + => + + The output type of each function has to be the input type + of the next function, and the last function returns the + final value. + */ + pipe = val: functions: + let reverseApply = x: f: f x; + in builtins.foldl' reverseApply val functions; + /* note please don’t add a function like `compose = flip pipe`. + This would confuse users, because the order of the functions + in the list is not clear. With pipe, it’s obvious that it + goes first-to-last. With `compose`, not so much. + */ ## Named versions corresponding to some builtin operators. From b1c21ad6f0cb54ab047798ad6c955f62e382d0a1 Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Mon, 21 Oct 2019 07:32:23 -0400 Subject: [PATCH 37/82] zoom-us: 3.0.303290.1010 -> 3.0.306796.1020 --- .../networking/instant-messengers/zoom-us/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix index 9c06a737598..277f10691f0 100644 --- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix +++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -14,11 +14,11 @@ assert pulseaudioSupport -> libpulseaudio != null; let inherit (stdenv.lib) concatStringsSep makeBinPath optional; - version = "3.0.303290.1010"; + version = "3.0.306796.1020"; srcs = { x86_64-linux = fetchurl { url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz"; - sha256 = "0rs18csmwb8r5n0fc1ka1zjz3f0rydm6fxiy1pa1c2k5bmya56f9"; + sha256 = "0nh93pyincwfmx3z5x4s0ym3n0ff492nwd9wh3xkcl518pslxpxy"; }; }; From ad5994f18214aa5a8dfdb51f70d2c8e55f47288f Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Mon, 21 Oct 2019 07:34:51 -0400 Subject: [PATCH 38/82] oh-my-zsh: 2019-10-19 -> 2019-10-20 --- pkgs/shells/zsh/oh-my-zsh/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix index 6ebe81dc9f8..3850ef2ca59 100644 --- a/pkgs/shells/zsh/oh-my-zsh/default.nix +++ b/pkgs/shells/zsh/oh-my-zsh/default.nix @@ -4,13 +4,13 @@ { stdenv, fetchgit }: stdenv.mkDerivation rec { - version = "2019-10-19"; + version = "2019-10-20"; pname = "oh-my-zsh"; - rev = "05dfd0ae8520e58e852c574f55c83fe6f49fb189"; + rev = "a7c740b1d7d0033c6de118439c7935962b2a5c2a"; src = fetchgit { inherit rev; url = "https://github.com/robbyrussell/oh-my-zsh"; - sha256 = "1ky926ih9b56xgh8xp8dsnzjliwzd8rr0cqn4wjf74z42bg2cnw0"; + sha256 = "1kwmjizldfsvxppf8xmgqh0644gnfvcns4l9cjpcvd0nk616yg0f"; }; pathsToLink = [ "/share/oh-my-zsh" ]; From cfe3c8930000a1c6aaafbfa6d7f32040d92ff36f Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Mon, 21 Oct 2019 08:00:49 -0400 Subject: [PATCH 39/82] sbt-extras: 2019-09-30 -> 2019-10-21 --- .../development/tools/build-managers/sbt-extras/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/build-managers/sbt-extras/default.nix b/pkgs/development/tools/build-managers/sbt-extras/default.nix index a07cbab285c..33e8e7cad5d 100644 --- a/pkgs/development/tools/build-managers/sbt-extras/default.nix +++ b/pkgs/development/tools/build-managers/sbt-extras/default.nix @@ -1,8 +1,8 @@ { stdenv, fetchFromGitHub, which, curl, makeWrapper, jdk }: let - rev = "aa4425cc96aee5119fb9fee9138b3d3bdb6482f7"; - version = "2019-09-30"; + rev = "f0669e9b6745b65fae3ec58c2d6a2bef133db456"; + version = "2019-10-21"; in stdenv.mkDerivation { name = "sbt-extras-${version}"; @@ -12,7 +12,7 @@ stdenv.mkDerivation { owner = "paulp"; repo = "sbt-extras"; inherit rev; - sha256 = "15xkd1l0ka1fl77g7p498krvk0mcn25jq6jp4zyq5r8dla5rn832"; + sha256 = "1pc8l78qp51ixa26z0n1djwmazpxw1p4j4w4njil7ywxl9xvr92i"; }; dontBuild = true; From 9d281cc9fe6b0febad5ed48b51c6c3eaecf545f4 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 05:52:35 -0700 Subject: [PATCH 40/82] cutelyst: 2.8.0 -> 2.9.0 (#71519) --- pkgs/development/libraries/cutelyst/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/cutelyst/default.nix b/pkgs/development/libraries/cutelyst/default.nix index e84fbe89aa9..6cd464e5539 100644 --- a/pkgs/development/libraries/cutelyst/default.nix +++ b/pkgs/development/libraries/cutelyst/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "cutelyst"; - version = "2.8.0"; + version = "2.9.0"; src = fetchFromGitHub { owner = "cutelyst"; repo = "cutelyst"; rev = "v${version}"; - sha256 = "02jys32qkyksa2dmanyg4x0y5lh4ra0xbn2mfr2k84slrxbgjs1g"; + sha256 = "13h2sj131s31qdzdwa3hx7ildmvlk8mv9s0j99kvx1ijaq49z79f"; }; nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ]; From 49945b95d02a6a3bc692a486d3701055657e3e68 Mon Sep 17 00:00:00 2001 From: davidak Date: Mon, 21 Oct 2019 14:57:35 +0200 Subject: [PATCH 41/82] xzoom: fix version --- pkgs/tools/X11/xzoom/default.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/X11/xzoom/default.nix b/pkgs/tools/X11/xzoom/default.nix index d1867e3b077..e414576b523 100644 --- a/pkgs/tools/X11/xzoom/default.nix +++ b/pkgs/tools/X11/xzoom/default.nix @@ -1,19 +1,21 @@ { stdenv, fetchurl, libX11, libXext, libXt, imake, gccmakedep}: stdenv.mkDerivation rec { - name = "${pname}-${version}.${patchlevel}"; + name = "${pname}-${version}"; pname = "xzoom"; - version = "0.3"; - patchlevel = "24"; + major = "0"; + minor = "3"; + patch = "24"; + version = "${major}.${minor}.${patch}"; # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev) src = fetchurl { - url = "http://www.ibiblio.org/pub/linux/libs/X/${pname}-${version}.tgz"; + url = "http://www.ibiblio.org/pub/linux/libs/X/${pname}-${major}.${minor}.tgz"; sha256 = "0jzl5py4ny4n4i58lxx2hdwq9zphqf7h3m14spl3079y5mlzssxj"; }; patches = [ (fetchurl { - url = "http://http.debian.net/debian/pool/main/x/xzoom/xzoom_${version}-${patchlevel}.diff.gz"; + url = "http://http.debian.net/debian/pool/main/x/xzoom/xzoom_${major}.${minor}-${patch}.diff.gz"; sha256 = "0zhc06whbvaz987bzzzi2bz6h9jp6rv812qs7b71drivvd820qbh"; }) ]; From b0e4d7b9ea970c13e0509d7b4fbe1729d016abe9 Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Mon, 21 Oct 2019 09:14:35 -0400 Subject: [PATCH 42/82] ammonite: 1.7.1 -> 1.7.4 --- pkgs/development/tools/ammonite/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/ammonite/default.nix b/pkgs/development/tools/ammonite/default.nix index d44a6666ee9..ad33edf004f 100644 --- a/pkgs/development/tools/ammonite/default.nix +++ b/pkgs/development/tools/ammonite/default.nix @@ -8,7 +8,7 @@ let common = { scalaVersion, sha256 }: stdenv.mkDerivation rec { pname = "ammonite"; - version = "1.7.1"; + version = "1.7.4"; src = fetchurl { url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}"; @@ -39,6 +39,6 @@ stdenv.mkDerivation rec { }; }; in { - ammonite_2_12 = common { scalaVersion = "2.12"; sha256 = "0isg9flnzc2ldbx6q0lg0xyg9lnvqkd8qhgfln8p1hbzdq0n6jd0"; }; - ammonite_2_13 = common { scalaVersion = "2.13"; sha256 = "01dyc6bilhcr1mwrpmhjc8nhzfqgjh44bx36gd3gk9mkvlbys5mp"; }; + ammonite_2_12 = common { scalaVersion = "2.12"; sha256 = "0d2xjhxrly4cv5fpjv1i0a74ayij7c2x5sb6lsgzxpq7jj0bk1m6"; }; + ammonite_2_13 = common { scalaVersion = "2.13"; sha256 = "0hmdizzf8l8i07vdfik24iby39xg1vjfp1cwgjpbcmxv8klf50b0"; }; } From a7077637f91bdccc6548e944f24292ccf3927de4 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sun, 6 Oct 2019 11:07:04 +0300 Subject: [PATCH 43/82] snzip: init at 1.0.4 --- pkgs/tools/archivers/snzip/default.nix | 31 ++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/tools/archivers/snzip/default.nix diff --git a/pkgs/tools/archivers/snzip/default.nix b/pkgs/tools/archivers/snzip/default.nix new file mode 100644 index 00000000000..031cac64b75 --- /dev/null +++ b/pkgs/tools/archivers/snzip/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub +, autoreconfHook +, pkgconfig +, snappy +}: + +stdenv.mkDerivation rec { + pname = "snzip"; + version = "1.0.4"; + + src = fetchFromGitHub { + owner = "kubo"; + repo = "snzip"; + rev = version; + sha256 = "1v8li1zv9f2g31iyi9y9zx42rjvwkaw221g60pmkbv53y667i325"; + }; + + buildInputs = [ snappy ]; + # We don't use a release tarball so we don't have a `./configure` script to + # run. That's why we generate it. + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + + meta = with stdenv.lib; { + description = "A compression/decompression tool based on snappy"; + homepage = "https://github.com/kubo/snzip"; + maintainers = with maintainers; [ doronbehar ]; + license = licenses.bsd2; + platforms = platforms.linux; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index be06f08f965..d70ba57c531 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10169,6 +10169,8 @@ in snore = callPackage ../tools/misc/snore { }; + snzip = callPackage ../tools/archivers/snzip { }; + snowman = qt5.callPackage ../development/tools/analysis/snowman { }; sparse = callPackage ../development/tools/analysis/sparse { }; From 6f8c6d29c811f49380a251278931498cbcd4899f Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 07:38:31 -0700 Subject: [PATCH 44/82] drawio: 11.3.0 -> 12.1.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/drawio/versions --- pkgs/applications/graphics/drawio/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix index 88cff0035c7..f29f2a92705 100644 --- a/pkgs/applications/graphics/drawio/default.nix +++ b/pkgs/applications/graphics/drawio/default.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { pname = "drawio"; - version = "11.3.0"; + version = "12.1.0"; src = fetchurl { url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm"; - sha256 = "00xq2pi84nbdnlbsaj4k9i93skz1nknxvhd2f2cgdm0b3sp86qbk"; + sha256 = "02gwhnbl9fzgf1z8c9bkm3rxzyncp7v57yqc322r85vg0wxir3f8"; }; nativeBuildInputs = [ From a2255300db9064c76926c2b92c6bea2f398714f2 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 07:52:17 -0700 Subject: [PATCH 45/82] diffoscope: 125 -> 126 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/diffoscope/versions --- pkgs/tools/misc/diffoscope/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix index 9cb76b2ce37..cf2a01faf1c 100644 --- a/pkgs/tools/misc/diffoscope/default.nix +++ b/pkgs/tools/misc/diffoscope/default.nix @@ -9,11 +9,11 @@ # Note: when upgrading this package, please run the list-missing-tools.sh script as described below! python3Packages.buildPythonApplication rec { pname = "diffoscope"; - version = "125"; + version = "126"; src = fetchurl { url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2"; - sha256 = "0qwib44f43hinidbdjqnr2zanj678mgckx34x48jyywppvbj8yq4"; + sha256 = "0jbmpxj3y1gnmd00pj9x3jrx0hnjlkrzvk1m9miswgfq0ac1ws3p"; }; patches = [ From 0ee02a9d42b5fe1825b0f7cee7a9986bb4ba975d Mon Sep 17 00:00:00 2001 From: Renaud Date: Mon, 21 Oct 2019 16:52:41 +0200 Subject: [PATCH 46/82] mbedtls: disable auto updates Repology indicates dev releases as newer version so disable @r-ryantm automatic updates. cc @fpletz --- pkgs/development/libraries/mbedtls/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/mbedtls/default.nix b/pkgs/development/libraries/mbedtls/default.nix index 4d833bb1848..603b9be610a 100644 --- a/pkgs/development/libraries/mbedtls/default.nix +++ b/pkgs/development/libraries/mbedtls/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { pname = "mbedtls"; name = "mbedtls-${version}"; - version = "2.16.3"; + version = "2.16.3"; # nixpkgs-update: no auto update src = fetchFromGitHub { owner = "ARMmbed"; From 58ddd8f16a6799b2463b7d27ccad36c74a93ebfe Mon Sep 17 00:00:00 2001 From: Renaud Date: Mon, 21 Oct 2019 17:45:53 +0200 Subject: [PATCH 47/82] libechonest: 2.3.0 -> 2.3.1 (#71525) Just a package revamp + one less sha1 hash in nixpkgs --- .../libraries/libechonest/default.nix | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/libechonest/default.nix b/pkgs/development/libraries/libechonest/default.nix index 855386114c1..cde046bf132 100644 --- a/pkgs/development/libraries/libechonest/default.nix +++ b/pkgs/development/libraries/libechonest/default.nix @@ -1,20 +1,36 @@ -{ stdenv, fetchurl, cmake, qt4, qjson, doxygen, boost }: +{ stdenv, fetchFromGitHub, fetchpatch, cmake, doxygen, qt4, qjson }: stdenv.mkDerivation rec { pname = "libechonest"; - version = "2.3.0"; + version = "2.3.1"; - src = fetchurl { - url = "http://files.lfranchi.com/${pname}-${version}.tar.bz2"; - sha1 = "cf1b279c96f15c87c36fdeb23b569a60cdfb01db"; + src = fetchFromGitHub { + owner = "lfranchi"; + repo = pname; + rev = version; + sha256 = "0xbavf9f355dl1d3qv59x4ryypqrdanh9xdvw2d0q66l008crdkq"; }; - buildInputs = [ cmake qt4 qjson doxygen boost ]; + patches = [ + (fetchpatch { + url = "https://github.com/lfranchi/libechonest/commit/009514f65044823ef29045397d4b58dd04d09977.patch"; + sha256 = "0dmmpi7hixdngwiv045ilqrzyzkf56xpfyihcsx5i3xya2m0mynx"; + }) + (fetchpatch { + url = "https://github.com/lfranchi/libechonest/commit/3ce779536d56a163656e8098913f923e6cda2b5c.patch"; + sha256 = "1vasd3sgqah562vxk71jibyws5cbihjjfnffd50qvdm2xqgvbx94"; + }) + ]; + + nativeBuildInputs = [ cmake doxygen ]; + buildInputs = [ qt4 qjson ]; + enableParallelBuilding = true; + doCheck = false; # requires network access meta = { description = "A C++/Qt wrapper around the Echo Nest API"; - homepage = http://projects.kde.org/projects/playground/libs/libechonest; + homepage = "https://projects.kde.org/projects/playground/libs/libechonest"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.unix; }; From db32ff033369349b55bbcd346139fade76dd99e7 Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Mon, 21 Oct 2019 11:46:17 -0400 Subject: [PATCH 48/82] linux: 5.4-rc3 -> 5.4-rc4 --- pkgs/os-specific/linux/kernel/linux-testing.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix index 23201f1c1b3..10a00021754 100644 --- a/pkgs/os-specific/linux/kernel/linux-testing.nix +++ b/pkgs/os-specific/linux/kernel/linux-testing.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "5.4-rc3"; + version = "5.4-rc4"; extraMeta.branch = "5.4"; # modDirVersion needs to be x.y.z, will always add .0 @@ -11,7 +11,7 @@ buildLinux (args // rec { src = fetchurl { url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz"; - sha256 = "1hp9b71ip8a9mlgnwhr8x7mhy5qkgz57hd5xqskfx3axbsh2j3f5"; + sha256 = "0f0qnk9x1drd0vgawfr1nyr77pm8j00fqjij8qs45b69c1l8bx5i"; }; # Should the testing kernels ever be built on Hydra? From aa910d164d478dfb871bc6a8db416ca887cfc8f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= Date: Mon, 21 Oct 2019 17:01:44 +0200 Subject: [PATCH 49/82] nixos/seahorse: use seahorse's askpass by default --- nixos/modules/programs/seahorse.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/modules/programs/seahorse.nix b/nixos/modules/programs/seahorse.nix index c08b0a85374..b229d2a2c0d 100644 --- a/nixos/modules/programs/seahorse.nix +++ b/nixos/modules/programs/seahorse.nix @@ -31,6 +31,8 @@ with lib; config = mkIf config.programs.seahorse.enable { + programs.ssh.askPassword = mkDefault "${pkgs.gnome3.seahorse}/libexec/seahorse/ssh-askpass"; + environment.systemPackages = [ pkgs.gnome3.seahorse ]; From 6c4114c99a8b9e82f27472188add1cd1727c0113 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 04:45:13 -0700 Subject: [PATCH 50/82] calcurse: 4.5.0 -> 4.5.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/calcurse/versions --- pkgs/applications/misc/calcurse/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/calcurse/default.nix b/pkgs/applications/misc/calcurse/default.nix index 402198a9732..8f8934cb084 100644 --- a/pkgs/applications/misc/calcurse/default.nix +++ b/pkgs/applications/misc/calcurse/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "calcurse"; - version = "4.5.0"; + version = "4.5.1"; src = fetchurl { url = "https://calcurse.org/files/${pname}-${version}.tar.gz"; - sha256 = "1vjwcmp51h7dsvwn0qx93w9chp3wp970v7d9mjhk7jyamcbfywn3"; + sha256 = "0cgkd285x5pk62lmdx9fjxl46c5lj8wj2cqbxq7d99yb4il5fdjk"; }; buildInputs = [ ncurses gettext python3 python3Packages.wrapPython ]; From 64dbf3a22ddeb258c979abad9744796d80241921 Mon Sep 17 00:00:00 2001 From: Sascha Grunert Date: Mon, 21 Oct 2019 09:23:32 +0200 Subject: [PATCH 51/82] podman: 1.6.1 -> 1.6.2 Signed-off-by: Sascha Grunert --- pkgs/applications/virtualization/podman/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix index 35a89f3f989..59a0f00e7c6 100644 --- a/pkgs/applications/virtualization/podman/default.nix +++ b/pkgs/applications/virtualization/podman/default.nix @@ -5,13 +5,13 @@ buildGoPackage rec { pname = "podman"; - version = "1.6.1"; + version = "1.6.2"; src = fetchFromGitHub { owner = "containers"; repo = "libpod"; rev = "v${version}"; - sha256 = "0s9jxcjx9bkml606rn29358pfavd85m6zshra4qkpbc1iwa6hgr9"; + sha256 = "0cwyrzjjgxclnzc1yx6vm2bvq73mldwxfwalkprzlg8vpqbxji8y"; }; goPackagePath = "github.com/containers/libpod"; From 45ffe82c43cb69a57622935220bb0950dade7934 Mon Sep 17 00:00:00 2001 From: Johannes Schleifenbaum Date: Mon, 21 Oct 2019 10:00:53 +0200 Subject: [PATCH 52/82] dbeaver: 6.2.2 -> 6.2.3 --- pkgs/applications/misc/dbeaver/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix index 179dc85b2a9..191c6a31972 100644 --- a/pkgs/applications/misc/dbeaver/default.nix +++ b/pkgs/applications/misc/dbeaver/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { pname = "dbeaver-ce"; - version = "6.2.2"; + version = "6.2.3"; desktopItem = makeDesktopItem { name = "dbeaver"; @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz"; - sha256 = "0qpa0wh5lr5lxk9cdv5p1cmbdk1kw1lfqmsfgqxvgfysc1mgjgp1"; + sha256 = "1v4sllzvaz4fj8s14ddzw11wczlghbdppv8fl5jg6xglg687sgaj"; }; installPhase = '' From 8e5de3a0cdb3cea91c9f0276d84f656e619c0ab2 Mon Sep 17 00:00:00 2001 From: Renaud Date: Mon, 21 Oct 2019 18:25:40 +0200 Subject: [PATCH 53/82] libcutl: fix regex Attempt to fix #71544 --- pkgs/development/libraries/libcutl/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libcutl/default.nix b/pkgs/development/libraries/libcutl/default.nix index 9abd3b7ccc1..b13805aa37a 100644 --- a/pkgs/development/libraries/libcutl/default.nix +++ b/pkgs/development/libraries/libcutl/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { license = licenses.mit; }; - majmin = builtins.head ( builtins.match "([[:digit:]]\.[[:digit:]]*+)\.*" "${version}" ); + majmin = builtins.head ( builtins.match "([[:digit:]]\.[[:digit:]]+)\.*" "${version}" ); src = fetchurl { url = "https://codesynthesis.com/download/${pname}/${majmin}/${pname}-${version}.tar.bz2"; sha256 = "070j2x02m4gm1fn7gnymrkbdxflgzxwl7m96aryv8wp3f3366l8j"; From 6a2a395241ea222bc8617806e9e63c133492317f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20P=C3=A4tzel?= Date: Wed, 16 Oct 2019 19:45:26 +0200 Subject: [PATCH 54/82] pythonPackages.mesa: init at 0.8.6 --- .../python-modules/mesa/default.nix | 34 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 pkgs/development/python-modules/mesa/default.nix diff --git a/pkgs/development/python-modules/mesa/default.nix b/pkgs/development/python-modules/mesa/default.nix new file mode 100644 index 00000000000..cab480f84fd --- /dev/null +++ b/pkgs/development/python-modules/mesa/default.nix @@ -0,0 +1,34 @@ +{ stdenv, buildPythonPackage, fetchFromGitHub, isPy27 +, cookiecutter, networkx , pandas, tornado, tqdm +, pytest }: + +buildPythonPackage rec { + pname = "mesa"; + version = "0.8.6"; + + # According to their docs, this library is for Python 3+. + disabled = isPy27; + + src = fetchFromGitHub { + owner = "projectmesa"; + repo = "mesa"; + rev = "v${version}"; + sha256 = "0d8c636zhswxd91ldlmdxxlyym2fj3bk1iqmpc1jp3hg7vvc7w03"; + }; + + checkInputs = [ pytest ]; + + # Ignore test which tries to mkdir in unreachable location. + checkPhase = '' + pytest tests -k "not scaffold" + ''; + + propagatedBuildInputs = [ cookiecutter networkx pandas tornado tqdm ]; + + meta = with stdenv.lib; { + homepage = "https://github.com/projectmesa/mesa"; + description = "An agent-based modeling (or ABM) framework in Python"; + license = licenses.asl20; + maintainers = [ maintainers.dpaetzel ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e577d40486f..6e81ca4e2c5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3798,6 +3798,8 @@ in { memory_profiler = callPackage ../development/python-modules/memory_profiler { }; + mesa = callPackage ../development/python-modules/mesa { }; + metaphone = callPackage ../development/python-modules/metaphone { }; mezzanine = callPackage ../development/python-modules/mezzanine { }; From 3db3c787d50f37536ab1fe6603759bd8db580aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20P=C3=A4tzel?= Date: Mon, 21 Oct 2019 08:09:02 +0200 Subject: [PATCH 55/82] pythonPackages.pyside: inherit mesa from pkgs --- pkgs/top-level/python-packages.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 6e81ca4e2c5..36c5c36ddc7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1039,7 +1039,9 @@ in { pyschedule = callPackage ../development/python-modules/pyschedule { }; - pyside = callPackage ../development/python-modules/pyside { }; + pyside = callPackage ../development/python-modules/pyside { + inherit (pkgs) mesa; + }; pysideShiboken = callPackage ../development/python-modules/pyside/shiboken.nix { inherit (pkgs) libxml2 libxslt; # Do not need the Python bindings. From a2a6f1be179fe345a5ce20b299770f5d8c45e2e2 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 10:37:18 -0700 Subject: [PATCH 56/82] pantheon.elementary-wallpapers: 5.3 -> 5.4 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/elementary-wallpapers/versions --- .../pantheon/artwork/elementary-wallpapers/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix index 30145541750..c48dd761e08 100644 --- a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix +++ b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { pname = "elementary-wallpapers"; - version = "5.3"; + version = "5.4"; repoName = "wallpapers"; @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "1i0zf9gzhwm8hgq5cp1xnxipqjvgzd9wfiicz612hgp6ivc0z0ag"; + sha256 = "1ihvv9v8m5f2n2v3bgg769l52wbg241zgp3d45q6phk7p8s1gz3s"; }; passthru = { From b73b9399ba6e9aa7f17ed6e5cea0dbff363a31d0 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 11:24:52 -0700 Subject: [PATCH 57/82] golly: 3.2 -> 3.3 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/golly/versions --- pkgs/applications/science/misc/golly/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/misc/golly/default.nix b/pkgs/applications/science/misc/golly/default.nix index 74fa4cc02ed..4af233a6d55 100644 --- a/pkgs/applications/science/misc/golly/default.nix +++ b/pkgs/applications/science/misc/golly/default.nix @@ -1,10 +1,10 @@ {stdenv, fetchurl, wxGTK, perl, python2, zlib, libGLU_combined, libX11}: stdenv.mkDerivation rec { pname = "golly"; - version = "3.2"; + version = "3.3"; src = fetchurl { - sha256 = "0cg9mbwmf4q6qxhqlnzrxh9y047banxdb8pd3hgj3smmja2zf0jd"; + sha256 = "1j3ksnar4rdam4xiyspgyrs1pifbvxfxkrn65brkwxpx39mpgzc8"; url="mirror://sourceforge/project/golly/golly/golly-${version}/golly-${version}-src.tar.gz"; }; From 5955b96940c999bed5cb813b8bd2b2dc30189fcc Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 08:48:38 -0700 Subject: [PATCH 58/82] ffmpegthumbnailer: 2.2.1 -> 2.2.2 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/ffmpegthumbnailer/versions --- pkgs/development/libraries/ffmpegthumbnailer/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/ffmpegthumbnailer/default.nix b/pkgs/development/libraries/ffmpegthumbnailer/default.nix index 4e6a987eb71..6f5b1840c24 100644 --- a/pkgs/development/libraries/ffmpegthumbnailer/default.nix +++ b/pkgs/development/libraries/ffmpegthumbnailer/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "ffmpegthumbnailer"; - version = "2.2.1"; + version = "2.2.2"; src = fetchFromGitHub { owner = "dirkvdb"; repo = "ffmpegthumbnailer"; rev = version; - sha256 = "0mcdvyzny3yrdx23f3ww0i6lgkh68nzfcdla9d4vkc8l2b1kla1j"; + sha256 = "1bakbr714j7yxdal1f5iq0gcl4cxggbbgj227ihdh5kvygqlwich"; }; nativeBuildInputs = [ cmake pkgconfig ]; From 417834eb7aa5852ea5d447cc53e03886673968a0 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 11:45:35 -0700 Subject: [PATCH 59/82] iosevka-bin: 2.3.0 -> 2.3.2 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/iosevka-bin/versions --- pkgs/data/fonts/iosevka/bin.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix index 962769b8144..d6d986c699a 100644 --- a/pkgs/data/fonts/iosevka/bin.nix +++ b/pkgs/data/fonts/iosevka/bin.nix @@ -1,7 +1,7 @@ { stdenv, fetchzip }: let - version = "2.3.0"; + version = "2.3.2"; in fetchzip { name = "iosevka-bin-${version}"; @@ -12,7 +12,7 @@ in fetchzip { unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka ''; - sha256 = "0nry6zsmvcj44rijhbvrry84rh5hrixzb4n1mx9c27vvpy33a56w"; + sha256 = "1dkfh354scjgzq7kgy4cn70z030wmfgxixqp8p9m6i0ps8gccjgs"; meta = with stdenv.lib; { homepage = https://be5invis.github.io/Iosevka/; From 18ad0a8028c48625527a790c5c2f09e7847a7840 Mon Sep 17 00:00:00 2001 From: Aaron Andersen Date: Mon, 21 Oct 2019 15:04:11 -0400 Subject: [PATCH 60/82] unixODBCDrivers.msodbcsql17: add missing openssl dependency --- pkgs/development/libraries/unixODBCDrivers/default.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/unixODBCDrivers/default.nix b/pkgs/development/libraries/unixODBCDrivers/default.nix index 44e7ed17f0c..c1810443bdb 100644 --- a/pkgs/development/libraries/unixODBCDrivers/default.nix +++ b/pkgs/development/libraries/unixODBCDrivers/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, unixODBC, cmake, postgresql, mysql, libmysqlclient, sqlite, zlib, libxml2, dpkg, lib, openssl, kerberos, curl, libuuid, autoPatchelfHook }: +{ fetchurl, stdenv, unixODBC, cmake, postgresql, mysql, libmysqlclient, sqlite, zlib, libxml2, dpkg, lib, openssl, kerberos, libuuid, patchelf }: # I haven't done any parameter tweaking.. So the defaults provided here might be bad @@ -138,8 +138,7 @@ sha256 = "0jb16irr7qlgd2zshg0vyia7zqipd0pcvwfcr6z807pss1mnzj8w"; }; - nativeBuildInputs = [ autoPatchelfHook ]; - buildInputs = [ unixODBC dpkg kerberos libuuid stdenv.cc.cc ]; + nativeBuildInputs = [ dpkg patchelf ]; unpackPhase = "dpkg -x $src ./"; buildPhase = ""; @@ -150,6 +149,11 @@ cp -r opt/microsoft/msodbcsql${versionMajor}/lib64 opt/microsoft/msodbcsql${versionMajor}/share $out/ ''; + postFixup = '' + patchelf --set-rpath ${lib.makeLibraryPath [ unixODBC openssl.out kerberos libuuid stdenv.cc.cc ]} \ + $out/lib/libmsodbcsql-${versionMajor}.${versionMinor}.so.${versionAdditional} + ''; + passthru = { fancyName = "ODBC Driver 17 for SQL Server"; driver = "lib/libmsodbcsql-${versionMajor}.${versionMinor}.so.${versionAdditional}"; From 5235b190459f0fb55ebf0a05887fc89b7f1fb5de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domen=20Ko=C5=BEar?= Date: Mon, 21 Oct 2019 16:31:02 +0200 Subject: [PATCH 61/82] Elm: 0.19.0 -> 0.19.1 --- pkgs/development/compilers/elm/default.nix | 21 +++++----- .../compilers/elm/fetchElmDeps.nix | 6 +-- pkgs/development/compilers/elm/makeDotElm.nix | 10 ++--- .../compilers/elm/packages/elm-srcs.nix | 38 +++++++++++------- .../compilers/elm/packages/elm.nix | 24 +++++------ .../compilers/elm/packages/elmi-to-json.nix | 22 +++++----- pkgs/development/compilers/elm/registry.dat | Bin 0 -> 86479 bytes pkgs/development/compilers/elm/update.sh | 7 ++-- pkgs/development/compilers/elm/versions.dat | Bin 94810 -> 0 bytes .../configuration-ghc-8.8.x.nix | 10 +++++ 10 files changed, 80 insertions(+), 58 deletions(-) create mode 100644 pkgs/development/compilers/elm/registry.dat delete mode 100644 pkgs/development/compilers/elm/versions.dat diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index 6949f6e3b2a..9dbde319f0a 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -4,7 +4,7 @@ let fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; }; - hsPkgs = haskell.packages.ghc865.override { + hsPkgs = haskell.packages.ghc881.override { overrides = self: super: with haskell.lib; let elmPkgs = rec { elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: { @@ -12,14 +12,9 @@ let enableParallelBuilding = false; preConfigure = self.fetchElmDeps { elmPackages = (import ./packages/elm-srcs.nix); - versionsDat = ./versions.dat; + elmVersion = drv.version; + registryDat = ./registry.dat; }; - patches = [ - (fetchpatch { - url = "https://github.com/elm/compiler/pull/1886/commits/39d86a735e28da514be185d4c3256142c37c2a8a.patch"; - sha256 = "0nni5qx1523rjz1ja42z6z9pijxvi3fgbw1dhq5qi11mh1nb9ay7"; - }) - ]; buildTools = drv.buildTools or [] ++ [ makeWrapper ]; jailbreak = true; postInstall = '' @@ -32,8 +27,14 @@ let The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo: `package/nix/build.sh` */ - elm-format = justStaticExecutables (doJailbreak (self.callPackage ./packages/elm-format.nix {})); - elmi-to-json = justStaticExecutables (self.callPackage ./packages/elmi-to-json.nix {}); + #elm-format = justStaticExecutables (doJailbreak (self.callPackage ./packages/elm-format.nix {})); + elmi-to-json = justStaticExecutables (overrideCabal (self.callPackage ./packages/elmi-to-json.nix {}) (drv: { + prePatch = '' + substituteInPlace package.yaml --replace "- -Werror" "" + hpack + ''; + jailbreak = true; + })); inherit fetchElmDeps; elmVersion = elmPkgs.elm.version; diff --git a/pkgs/development/compilers/elm/fetchElmDeps.nix b/pkgs/development/compilers/elm/fetchElmDeps.nix index 3da2445e0c5..05dffaa9e2e 100644 --- a/pkgs/development/compilers/elm/fetchElmDeps.nix +++ b/pkgs/development/compilers/elm/fetchElmDeps.nix @@ -1,11 +1,11 @@ {stdenv, lib, fetchurl}: -{elmPackages, versionsDat}: +{elmPackages, registryDat, elmVersion}: let - makeDotElm = import ./makeDotElm.nix {inherit stdenv lib fetchurl versionsDat;}; + makeDotElm = import ./makeDotElm.nix {inherit stdenv lib fetchurl registryDat;}; in '' export ELM_HOME=`pwd`/.elm -'' + (makeDotElm "0.19.0" elmPackages) +'' + (makeDotElm elmVersion elmPackages) diff --git a/pkgs/development/compilers/elm/makeDotElm.nix b/pkgs/development/compilers/elm/makeDotElm.nix index 1bc8e61d27c..3ceaae450f0 100644 --- a/pkgs/development/compilers/elm/makeDotElm.nix +++ b/pkgs/development/compilers/elm/makeDotElm.nix @@ -1,4 +1,4 @@ -{stdenv, lib, fetchurl, versionsDat}: +{stdenv, lib, fetchurl, registryDat}: ver: deps: let cmds = lib.mapAttrsToList (name: info: let @@ -20,11 +20,11 @@ ver: deps: }; in '' - mkdir -p .elm/${ver}/package/${name} - cp -R ${pkg} .elm/${ver}/package/${name}/${info.version} + mkdir -p .elm/${ver}/packages/${name} + cp -R ${pkg} .elm/${ver}/packages/${name}/${info.version} '') deps; in (lib.concatStrings cmds) + '' - mkdir -p .elm/${ver}/package; - cp ${versionsDat} .elm/${ver}/package/versions.dat; + mkdir -p .elm/${ver}/packages; + cp ${registryDat} .elm/${ver}/packages/registry.dat; chmod -R +w .elm '' diff --git a/pkgs/development/compilers/elm/packages/elm-srcs.nix b/pkgs/development/compilers/elm/packages/elm-srcs.nix index e1f941626dd..0d4523b8b09 100644 --- a/pkgs/development/compilers/elm/packages/elm-srcs.nix +++ b/pkgs/development/compilers/elm/packages/elm-srcs.nix @@ -6,8 +6,8 @@ }; "elm/json" = { - sha256 = "1g0hafkqf2q633r7ir9wxpb1lnlzskhpsyi0h5bkzj0gl072zfnb"; - version = "1.0.0"; + sha256 = "1a107nmm905dih4w4mjjkkpdcjbgaf5qjvr7fl30kkpkckfjjnrw"; + version = "1.1.2"; }; "elm/html" = { @@ -16,8 +16,8 @@ }; "elm/svg" = { - sha256 = "08x0v8p9wm699jjmsnbq69pxv3jh60j4f6fg7y6hyr7xxj85y390"; - version = "1.0.0"; + sha256 = "1cwcj73p61q45wqwgqvrvz3aypjyy3fw732xyxdyj6s256hwkn0k"; + version = "1.0.1"; }; "elm/project-metadata-utils" = { @@ -26,23 +26,33 @@ }; "elm/browser" = { - sha256 = "1apmvyax93nvmagwj00y16zx10kfv640cxpi64xgqbgy7d2wphy4"; - version = "1.0.0"; + sha256 = "1zlmx672glg7fdgkvh5jm47y85pv7pdfr5mkhg6x7ar6k000vyka"; + version = "1.0.1"; }; "elm/core" = { - sha256 = "10kr86h4v5h4p0586q406a5wbl8xvr1jyrf6097zp2wb8sv21ylw"; - version = "1.0.0"; + sha256 = "1l0qdbczw91kzz8sx5d5zwz9x662bspy7p21dsr3f2rigxiix2as"; + version = "1.0.2"; }; "elm/http" = { - sha256 = "1igmm89ialzrjib1j8xagkxalq1x2gj4l0hfxcd66mpwmvg7psl8"; - version = "1.0.0"; + sha256 = "008bs76mnp48b4dw8qwjj4fyvzbxvlrl4xpa2qh1gg2kfwyw56v1"; + version = "2.0.0"; + }; + + "elm/bytes" = { + sha256 = "040d7irrawcbnq9jxhzx8p9qacdlw5bncy6lgndd6inm53rvvwbp"; + version = "1.0.7"; + }; + + "elm/file" = { + sha256 = "15vw1ilbg0msimq2k9magwigp8lwqrgvz3vk6qia6b3ldahvw8jr"; + version = "1.0.1"; }; "elm/parser" = { - sha256 = "0k4zlq30lrvawqvzwbvsl0hrmwf9s832mb41z7fdspm4549dj7wc"; - version = "1.0.0"; + sha256 = "0a3cxrvbm7mwg9ykynhp7vjid58zsw03r63qxipxp3z09qks7512"; + version = "1.1.0"; }; "elm/url" = { @@ -56,7 +66,7 @@ }; "elm/virtual-dom" = { - sha256 = "0hm8g92h7z39km325dlnhk8n00nlyjkqp3r3jppr37k2k13md6aq"; - version = "1.0.0"; + sha256 = "0q1v5gi4g336bzz1lgwpn5b1639lrn63d8y6k6pimcyismp2i1yg"; + version = "1.0.2"; }; } diff --git a/pkgs/development/compilers/elm/packages/elm.nix b/pkgs/development/compilers/elm/packages/elm.nix index 4edd9bebbc6..644a53fd619 100644 --- a/pkgs/development/compilers/elm/packages/elm.nix +++ b/pkgs/development/compilers/elm/packages/elm.nix @@ -1,29 +1,29 @@ { mkDerivation, ansi-terminal, ansi-wl-pprint, base, binary , bytestring, containers, directory, edit-distance, fetchgit -, file-embed, filepath, ghc-prim, haskeline, HTTP, http-client -, http-client-tls, http-types, language-glsl, logict, mtl, network -, parsec, process, raw-strings-qq, scientific, SHA, snap-core -, snap-server, stdenv, template-haskell, text, time +, file-embed, filelock, filepath, ghc-prim, haskeline, HTTP +, http-client, http-client-tls, http-types, language-glsl, mtl +, network, parsec, process, raw-strings-qq, scientific, SHA +, snap-core, snap-server, stdenv, template-haskell, time , unordered-containers, utf8-string, vector, zip-archive }: mkDerivation { pname = "elm"; - version = "0.19.0"; + version = "0.19.1"; src = fetchgit { url = "https://github.com/elm/compiler"; - sha256 = "13jks6c6i80z71mjjfg46ri570g5ini0k3xw3857v6z66zcl56x4"; - rev = "d5cbc41aac23da463236bbc250933d037da4055a"; + sha256 = "1rdg3xp3js9xadclk3cdypkscm5wahgsfmm4ldcw3xswzhw6ri8w"; + rev = "c9aefb6230f5e0bda03205ab0499f6e4af924495"; fetchSubmodules = true; }; isLibrary = false; isExecutable = true; executableHaskellDepends = [ ansi-terminal ansi-wl-pprint base binary bytestring containers - directory edit-distance file-embed filepath ghc-prim haskeline HTTP - http-client http-client-tls http-types language-glsl logict mtl - network parsec process raw-strings-qq scientific SHA snap-core - snap-server template-haskell text time unordered-containers - utf8-string vector zip-archive + directory edit-distance file-embed filelock filepath ghc-prim + haskeline HTTP http-client http-client-tls http-types language-glsl + mtl network parsec process raw-strings-qq scientific SHA snap-core + snap-server template-haskell time unordered-containers utf8-string + vector zip-archive ]; homepage = "https://elm-lang.org"; description = "The `elm` command line interface"; diff --git a/pkgs/development/compilers/elm/packages/elmi-to-json.nix b/pkgs/development/compilers/elm/packages/elmi-to-json.nix index f6a0b9e2426..87b02f013f8 100644 --- a/pkgs/development/compilers/elm/packages/elmi-to-json.nix +++ b/pkgs/development/compilers/elm/packages/elmi-to-json.nix @@ -1,27 +1,27 @@ -{ mkDerivation, aeson, async, base, binary, bytestring, containers -, directory, filepath, hpack, optparse-applicative, safe-exceptions -, stdenv, text, fetchgit +{ mkDerivation, aeson, base, binary, bytestring, containers +, directory, fetchgit, filepath, ghc-prim, hpack +, optparse-applicative, stdenv, text, unliftio +, unordered-containers }: mkDerivation { pname = "elmi-to-json"; - version = "0.19.4"; + version = "1.2.0"; src = fetchgit { url = "https://github.com/stoeffel/elmi-to-json.git"; - rev = "357ad96f05e4c68023b036f27f6f65c4377c7427"; - sha256 = "0vj9fdqgg2zd1nxpll6v02fk6bcyhx00xhp3s8sd7ycvirwsim9n"; + sha256 = "1kxai87h2g0749yq0fkxwk3xaavydraaivhnavbwr62q2hw4wrj7"; + rev = "af08ceafe742a252f1f1f3c229b0ce3b3e00084d"; + fetchSubmodules = true; }; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - aeson async base binary bytestring containers directory filepath - optparse-applicative safe-exceptions text + aeson base binary bytestring containers directory filepath ghc-prim + optparse-applicative text unliftio unordered-containers ]; libraryToolDepends = [ hpack ]; executableHaskellDepends = [ base ]; testHaskellDepends = [ base ]; - preConfigure = "hpack"; + prePatch = "hpack"; homepage = "https://github.com/stoeffel/elmi-to-json#readme"; - description = "Translates elmi binary files to JSON representation"; license = stdenv.lib.licenses.bsd3; - maintainers = with stdenv.lib.maintainers; [ turbomack ]; } diff --git a/pkgs/development/compilers/elm/registry.dat b/pkgs/development/compilers/elm/registry.dat new file mode 100644 index 0000000000000000000000000000000000000000..14fcb12a74600af0db57c591206c9d18b3bf2207 GIT binary patch literal 86479 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%0D)gFw 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 YItF+$fS3htgn`$x!pwr%&cMI`033hf4*&oF literal 0 HcmV?d00001 diff --git a/pkgs/development/compilers/elm/update.sh b/pkgs/development/compilers/elm/update.sh index 920b95e5ad9..c2500b462ad 100755 --- a/pkgs/development/compilers/elm/update.sh +++ b/pkgs/development/compilers/elm/update.sh @@ -1,8 +1,9 @@ #!/usr/bin/env nix-shell #!nix-shell -p cabal2nix elm2nix -i bash ../../.. -cabal2nix https://github.com/elm/compiler --revision d5cbc41aac23da463236bbc250933d037da4055a > packages/elm.nix -elm2nix snapshot > versions.dat -pushd "$(nix-build -A elmPackages.elm.src --no-out-link ../../../..)/ui/browser" +cabal2nix https://github.com/elm/compiler --revision c9aefb6230f5e0bda03205ab0499f6e4af924495 > packages/elm.nix +echo "need to manually copy registry.dat from an existing elm project" +#elm2nix snapshot > registry.dat +pushd "$(nix-build -A elmPackages.elm.src --no-out-link ../../../..)/reactor" elm2nix convert > $OLDPWD/packages/elm-srcs.nix popd diff --git a/pkgs/development/compilers/elm/versions.dat b/pkgs/development/compilers/elm/versions.dat deleted file mode 100644 index 9dcfd8a2808f666b0cff1a54b79a6543e46451d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94810 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 diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix index 79210747260..5c54a90ce7e 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix @@ -66,6 +66,7 @@ self: super: { th-expand-syns = doJailbreak super.th-expand-syns; # TODO: remove when upstream accepts https://github.com/snapframework/io-streams-haproxy/pull/17 io-streams-haproxy = doJailbreak super.io-streams-haproxy; # base >=4.5 && <4.13 + snap-server = doJailbreak super.snap-server; # use latest version to fix the build generics-sop = self.generics-sop_0_5_0_0; @@ -106,6 +107,15 @@ self: super: { url = "https://github.com/simonmar/alex/commit/deaae6eddef5186bfd0e42e2c3ced39e26afa4d6.patch"; sha256 = "1v40gmnw4lqyk271wngdwz8whpfdhmza58srbkka8icwwwrck3l5"; }); + # https://github.com/snapframework/snap-core/issues/288 + snap-core = overrideCabal super.snap-core (drv: { prePatch = "substituteInPlace src/Snap/Internal/Core.hs --replace 'fail = Fail.fail' ''"; }); + # needs a release + json = overrideCabal super.json (drv: { prePatch = "substituteInPlace json.cabal --replace '4.13' '4.14'"; patches = [( + pkgs.fetchpatch { + url = "https://github.com/GaloisInc/json/commit/9d36ca5d865be7e4b2126b68a444b901941d2492.patch"; + sha256 = "0vyi5nbivkqg6zngq7rb3wwcj9043m4hmyk155nrcddl8j2smfzv"; + } + )]; }); # Upstream ships a broken Setup.hs file. csv = overrideCabal super.csv (drv: { prePatch = "rm Setup.hs"; }); From fe143bac5b8dbdbdc9332abc3f2acdf839652c9e Mon Sep 17 00:00:00 2001 From: Malte Brandy Date: Mon, 21 Oct 2019 22:36:27 +0200 Subject: [PATCH 62/82] nixos/redis: Disable hugepages for redis via sysctl and not via a systemd-oneshot --- nixos/modules/services/databases/redis.nix | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/nixos/modules/services/databases/redis.nix b/nixos/modules/services/databases/redis.nix index 9c389d80a6d..5861323e5ea 100644 --- a/nixos/modules/services/databases/redis.nix +++ b/nixos/modules/services/databases/redis.nix @@ -186,9 +186,9 @@ in config = mkIf config.services.redis.enable { - boot.kernel.sysctl = mkIf cfg.vmOverCommit { - "vm.overcommit_memory" = "1"; - }; + boot.kernel.sysctl = { + "vm.nr_hugepages" = "0"; + } // mkIf cfg.vmOverCommit { "vm.overcommit_memory" = "1"; }; networking.firewall = mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.port ]; @@ -198,14 +198,6 @@ in environment.systemPackages = [ cfg.package ]; - systemd.services.disable-transparent-huge-pages = { - description = "Disable Transparent Huge Pages (required by Redis)"; - before = [ "redis.service" ]; - wantedBy = [ "redis.service" ]; - script = "echo never > /sys/kernel/mm/transparent_hugepage/enabled"; - serviceConfig.Type = "oneshot"; - }; - systemd.services.redis = { description = "Redis Server"; From 2e71b42edc5fd8521f3d207fa9754a4c08b4447e Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 10:11:44 -0700 Subject: [PATCH 63/82] fanficfare: 3.11.0 -> 3.12.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/fanficfare/versions --- pkgs/tools/text/fanficfare/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/text/fanficfare/default.nix b/pkgs/tools/text/fanficfare/default.nix index 556b868e161..b0d66dfd93e 100644 --- a/pkgs/tools/text/fanficfare/default.nix +++ b/pkgs/tools/text/fanficfare/default.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "FanFicFare"; - version = "3.11.0"; + version = "3.12.0"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "1w1crc32p5rnbah6x9km6yvjiy5qrmpmvzb4ignsprfxjq803r3a"; + sha256 = "1hzb668fga9y422670iw22ggfn8a9jp2jdxs2xhzbqxnfrw08wq0"; }; propagatedBuildInputs = with python3Packages; [ From f2d81e480f12f9fb762ad3817c8837e9200dd0fe Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 09:13:07 -0700 Subject: [PATCH 64/82] tridactyl-native: 1.16.3 -> 1.17.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/tridactyl-native/versions --- pkgs/tools/networking/tridactyl-native/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/tridactyl-native/default.nix b/pkgs/tools/networking/tridactyl-native/default.nix index 9667f1a74c5..665d988f48e 100644 --- a/pkgs/tools/networking/tridactyl-native/default.nix +++ b/pkgs/tools/networking/tridactyl-native/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "tridactyl-native"; # this is actually the version of tridactyl itself; the native messenger will # probably not change with every tridactyl version - version = "1.16.3"; + version = "1.17.0"; src = fetchFromGitHub { owner = "tridactyl"; repo = "tridactyl"; rev = version; - sha256 = "1cp2iaa9fhlxmbml41wnq984jp2r75n6w0qxz38rd24jxsj5vz06"; + sha256 = "0dpd4jdym644rqm9h83lb8cwfccnwrnqm1g91nl913pj4k5x4hqr"; }; sourceRoot = "source/native"; From bf30d5d6f60f902f74d307cafbed674ee6bd495e Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 15:21:33 -0700 Subject: [PATCH 65/82] ginac: 1.7.7 -> 1.7.8 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/ginac/versions --- pkgs/applications/science/math/ginac/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/math/ginac/default.nix b/pkgs/applications/science/math/ginac/default.nix index 541ed548f88..79f20f06b29 100644 --- a/pkgs/applications/science/math/ginac/default.nix +++ b/pkgs/applications/science/math/ginac/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, cln, pkgconfig, readline, gmp, python }: stdenv.mkDerivation rec { - name = "ginac-1.7.7"; + name = "ginac-1.7.8"; src = fetchurl { url = "${meta.homepage}/${name}.tar.bz2"; - sha256 = "1jsf74cym5v6nq70aij3l7axq8vf7rrc1lnb9siyb9lsfbnnxzqf"; + sha256 = "0rvhdagmrs8ynnylwnxnmmfz1j9zk1g2rr7w6xczsbn7lqd511hc"; }; propagatedBuildInputs = [ cln ]; From b09fbccbafa340d3898dc3cb4a8b4bffd6d1fe9b Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Mon, 21 Oct 2019 19:20:47 -0500 Subject: [PATCH 66/82] libinjection: init at 3.10.0 Signed-off-by: Austin Seipp --- .../libraries/libinjection/default.nix | 37 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 39 insertions(+) create mode 100644 pkgs/development/libraries/libinjection/default.nix diff --git a/pkgs/development/libraries/libinjection/default.nix b/pkgs/development/libraries/libinjection/default.nix new file mode 100644 index 00000000000..b3bdbb41588 --- /dev/null +++ b/pkgs/development/libraries/libinjection/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchFromGitHub +, python +}: + +stdenv.mkDerivation rec { + pname = "libinjection"; + version = "3.10.0"; + + src = fetchFromGitHub { + owner = "client9"; + repo = pname; + rev = "refs/tags/v${version}"; + sha256 = "0chsgam5dqr9vjfhdcp8cgk7la6nf3lq44zs6z6si98cq743550g"; + }; + + nativeBuildInputs = [ python ]; + + patchPhase = '' + patchShebangs src + substituteInPlace src/Makefile \ + --replace /usr/local $out + ''; + + configurePhase = "cd src"; + buildPhase = "make all"; + + # no binaries, so out = library, dev = headers + outputs = [ "out" "dev" ]; + + meta = with stdenv.lib; { + description = "SQL / SQLI tokenizer parser analyzer"; + homepage = "https://github.com/client9/libinjection"; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = with maintainers; [ thoughtpolice ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 96a4f7d9878..f51bcb00eee 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12001,6 +12001,8 @@ in libiio = callPackage ../development/libraries/libiio { }; + libinjection = callPackage ../development/libraries/libinjection { }; + liburing = callPackage ../development/libraries/liburing { }; librseq = callPackage ../development/libraries/librseq { }; From c2eed8b9b08b0c435b6674bf052433de946fefe4 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Mon, 21 Oct 2019 19:56:20 -0400 Subject: [PATCH 67/82] deepin.qt5xcb-plugin: 1.2.2 -> 5.0.1, fix build --- .../deepin/qt5dxcb-plugin/default.nix | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix b/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix index 4d0240c426b..76eac2e0ebb 100644 --- a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix +++ b/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix @@ -3,14 +3,19 @@ mkDerivation rec { pname = "qt5dxcb-plugin"; - version = "1.2.2"; + version = "5.0.1"; - src = fetchFromGitHub { - owner = "linuxdeepin"; - repo = pname; - rev = version; - sha256 = "1zvab6qxdr49pmk6mbk7s0md7bx585p32lca0xbg8mrkajz7g8rq"; - }; + srcs = [ + (fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "1pkhbx4hzjv7n4mscv7dng9ymjcc1csdc82iy62yxshhq32bcfja"; + }) + qtbase.src + ]; + + sourceRoot = "source"; nativeBuildInputs = [ pkgconfig @@ -22,8 +27,16 @@ mkDerivation rec { libSM mtdev cairo + qtbase ]; + postPatch = '' + # The Qt5 platforms plugin is vendored in the package, however what's there is not always up-to-date with what's in nixpkgs. + # We simply copy the headers from qtbase's source tarball. + mkdir -p platformplugin/libqt5xcbqpa-dev/${qtbase.version} + cp -r ../qtbase-everywhere-src-5.12.4/src/plugins/platforms/xcb/*.h platformplugin/libqt5xcbqpa-dev/${qtbase.version}/ + ''; + qmakeFlags = [ "INSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms" ]; From 2c858f06aa99830f50b5caa60e006a3198e3815c Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Mon, 21 Oct 2019 19:31:20 -0500 Subject: [PATCH 68/82] geoip: spruce it up a bit Update metadata (dead URL), add myself as a maintainer, and do some minor touchups, including moving to `pname+version`. Signed-off-by: Austin Seipp --- pkgs/development/libraries/geoip/default.nix | 42 ++++++++++++-------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/pkgs/development/libraries/geoip/default.nix b/pkgs/development/libraries/geoip/default.nix index 1b1f7373709..4525f923286 100644 --- a/pkgs/development/libraries/geoip/default.nix +++ b/pkgs/development/libraries/geoip/default.nix @@ -1,37 +1,45 @@ -# in geoipDatabase, you can insert a package defining ${geoipDatabase}/share/GeoIP -# e.g. geolite-legacy { stdenv, fetchFromGitHub, autoreconfHook -, drvName ? "geoip", geoipDatabase ? "/var/lib/geoip-databases" }: +, drvName ? "geoip" -let version = "1.6.12"; - dataDir = if (stdenv.lib.isDerivation geoipDatabase) then "${toString geoipDatabase}/share/GeoIP" else geoipDatabase; -in stdenv.mkDerivation { - name = "${drvName}-${version}"; +# in geoipDatabase, you can insert a package defining +# "${geoipDatabase}/share/GeoIP" e.g. geolite-legacy +, geoipDatabase ? "/var/lib/geoip-databases" +}: + +let + dataDir = if stdenv.lib.isDerivation geoipDatabase + then "${toString geoipDatabase}/share/GeoIP" + else geoipDatabase; +in +stdenv.mkDerivation rec { + pname = drvName; + version = "1.6.12"; src = fetchFromGitHub { - owner = "maxmind"; - repo = "geoip-api-c"; - rev = "v${version}"; + owner = "maxmind"; + repo = "geoip-api-c"; + rev = "v${version}"; sha256 = "0ixyp3h51alnncr17hqp1p0rlqz9w69nlhm60rbzjjz3vjx52ajv"; }; nativeBuildInputs = [ autoreconfHook ]; + # Cross compilation shenanigans configureFlags = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "ac_cv_func_malloc_0_nonnull=yes" "ac_cv_func_realloc_0_nonnull=yes" ]; + # Fix up the default data directory postConfigure = '' find . -name Makefile.in -exec sed -i -r 's#^pkgdatadir\s*=.+$#pkgdatadir = ${dataDir}#' {} \; ''; - meta = { - description = "Geolocation API"; - maintainers = [ stdenv.lib.maintainers.raskin ]; - license = stdenv.lib.licenses.lgpl21; - platforms = stdenv.lib.platforms.unix; - homepage = http://geolite.maxmind.com/; - downloadPage = "http://geolite.maxmind.com/download/"; + meta = with stdenv.lib; { + description = "An API for GeoIP/Geolocation databases"; + maintainers = with maintainers; [ thoughtpolice raskin ]; + license = licenses.lgpl21; + platforms = platforms.unix; + homepage = "http://maxmind.com"; }; } From 2202b9f7746eb71893b13802a4ac499b48aad435 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 16:17:04 -0700 Subject: [PATCH 69/82] git-secret: 0.3.1 -> 0.3.2 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/git-secret/versions --- .../version-management/git-and-tools/git-secret/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/version-management/git-and-tools/git-secret/default.nix b/pkgs/applications/version-management/git-and-tools/git-secret/default.nix index 494c0a3421f..8477dfac585 100644 --- a/pkgs/applications/version-management/git-and-tools/git-secret/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-secret/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg, gawk }: let - version = "0.3.1"; + version = "0.3.2"; repo = "git-secret"; in stdenv.mkDerivation { @@ -11,7 +11,7 @@ in stdenv.mkDerivation { inherit repo; owner = "sobolevn"; rev = "v${version}"; - sha256 = "0234a2507as242wlybg32f7nd27ffjs50r4p1p95j6vs5s8g413l"; + sha256 = "0n268xlsd9p5f083sqwzpvsqg99fdk876mf8gihkydakrismc45b"; }; buildInputs = [ makeWrapper ]; From 62e827d1fb5a6946416aaee44607d29061408298 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 13:41:46 -0700 Subject: [PATCH 70/82] gallery-dl: 1.10.3 -> 1.10.6 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/gallery_dl/versions --- pkgs/applications/misc/gallery-dl/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix index 169c5c11b8c..b1cd6a36e08 100644 --- a/pkgs/applications/misc/gallery-dl/default.nix +++ b/pkgs/applications/misc/gallery-dl/default.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "gallery_dl"; - version = "1.10.3"; + version = "1.10.6"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "1ippn0zbjy69n178vh4wgyzy6723ynvj2w23mzqw7v2mzcvkhmdz"; + sha256 = "0jbfp072rnb3pkqp10xds57bnlcn87vqjaz68nhpzkwvwhs3hr4w"; }; doCheck = false; From 92cf9bef861d6e500706986e96d5617b0409860f Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 11:48:13 -0700 Subject: [PATCH 71/82] git-quick-stats: 2.0.9 -> 2.0.10 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/git-quick-stats/versions --- pkgs/development/tools/git-quick-stats/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/git-quick-stats/default.nix b/pkgs/development/tools/git-quick-stats/default.nix index 6bcbf7cf9bf..78ea0177efd 100644 --- a/pkgs/development/tools/git-quick-stats/default.nix +++ b/pkgs/development/tools/git-quick-stats/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchFromGitHub }: stdenv.mkDerivation rec { pname = "git-quick-stats"; - version = "2.0.9"; + version = "2.0.10"; src = fetchFromGitHub { repo = "git-quick-stats"; owner = "arzzen"; rev = version; - sha256 = "0y8rzm2jizsh65sxc3jlqp4nfv558rfhr77s9hz4qy4i24z44bgq"; + sha256 = "09wqrrwcilm8ffsj7lkq0vxdnk6yrq0xnl788hpln15q75brsbq6"; }; PREFIX = builtins.placeholder "out"; meta = with stdenv.lib; { From e0675e9693964b7efc73ff188fc9a2bb21cfe9a5 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 11:32:10 -0700 Subject: [PATCH 72/82] fstrm: 0.5.0 -> 0.6.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/fstrm/versions --- pkgs/development/libraries/fstrm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/fstrm/default.nix b/pkgs/development/libraries/fstrm/default.nix index 380f64cf523..40ffe6918a4 100644 --- a/pkgs/development/libraries/fstrm/default.nix +++ b/pkgs/development/libraries/fstrm/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "fstrm"; - version = "0.5.0"; + version = "0.6.0"; src = fetchFromGitHub { owner = "farsightsec"; repo = "fstrm"; rev = "v${version}"; - sha256 = "1vm880h6vpnxqh7v0x17yfim6f2fbxwkm03ms58s2h9akmph9xm5"; + sha256 = "0b6x9wgyn92vykkmd3ynhnpbdl77zb4wf4rm7p0h8p9pwq953hdm"; }; outputs = [ "bin" "out" "dev" ]; From 49ddf90e8b9e2ccd9613aba9190523a14f5075b5 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 09:52:53 -0700 Subject: [PATCH 73/82] drumgizmo: 0.9.17 -> 0.9.18 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/drumgizmo/versions --- pkgs/applications/audio/drumgizmo/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/drumgizmo/default.nix b/pkgs/applications/audio/drumgizmo/default.nix index 11b214f6bb3..86de7df101d 100644 --- a/pkgs/applications/audio/drumgizmo/default.nix +++ b/pkgs/applications/audio/drumgizmo/default.nix @@ -3,12 +3,12 @@ }: stdenv.mkDerivation rec { - version = "0.9.17"; + version = "0.9.18"; pname = "drumgizmo"; src = fetchurl { url = "https://www.drumgizmo.org/releases/${pname}-${version}/${pname}-${version}.tar.gz"; - sha256 = "177c27kz9srds7a659zz9yhp58z0zsk0ydwww7l3jkjlylm1p8x1"; + sha256 = "1vig9pm0dakpk8wa62m9ajj3bz536h0170r8vb98hxbm4wyys8yj"; }; configureFlags = [ "--enable-lv2" ]; From 89c236fe817224c0c48468890b8b08901e8193b5 Mon Sep 17 00:00:00 2001 From: davidak Date: Mon, 21 Oct 2019 16:42:17 +0200 Subject: [PATCH 74/82] reuse: add homepage --- pkgs/tools/package-management/reuse/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/tools/package-management/reuse/default.nix b/pkgs/tools/package-management/reuse/default.nix index d77398610fb..58987f3965c 100644 --- a/pkgs/tools/package-management/reuse/default.nix +++ b/pkgs/tools/package-management/reuse/default.nix @@ -27,6 +27,7 @@ buildPythonApplication rec { meta = with lib; { description = "A tool for compliance with the REUSE Initiative recommendations"; + homepage = "https://github.com/fsfe/reuse-tool"; license = with licenses; [ asl20 cc-by-sa-40 cc0 gpl3 ]; maintainers = [ maintainers.FlorianFranzen ]; }; From 7ae9f72a48d2e1e1ae164d6cda5e965922ebfcdf Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 07:33:22 -0700 Subject: [PATCH 75/82] flexget: 2.21.19 -> 2.21.25 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/flexget/versions --- pkgs/applications/networking/flexget/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix index 6e8ec45a36d..d735c06a531 100644 --- a/pkgs/applications/networking/flexget/default.nix +++ b/pkgs/applications/networking/flexget/default.nix @@ -24,11 +24,11 @@ with python'.pkgs; buildPythonApplication rec { pname = "FlexGet"; - version = "2.21.19"; + version = "2.21.25"; src = fetchPypi { inherit pname version; - sha256 = "1xkxd5p4ps0dnwns64zzlvs252wx0f9fy5b6000gyql7y5cma3kj"; + sha256 = "0l77fgg0w5dca1bwk4fcc1yz1g7njb0x07yx4bazyg821gl15rc9"; }; postPatch = '' From 01c2033572b0d5adb03733ec01009bc648a17c9f Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 07:17:32 -0700 Subject: [PATCH 76/82] cfr: 0.146 -> 0.147 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/cfr/versions --- pkgs/development/tools/java/cfr/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/java/cfr/default.nix b/pkgs/development/tools/java/cfr/default.nix index 382ef28c014..8a7bb005a8c 100644 --- a/pkgs/development/tools/java/cfr/default.nix +++ b/pkgs/development/tools/java/cfr/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "cfr"; - version = "0.146"; + version = "0.147"; src = fetchurl { url = "http://www.benf.org/other/cfr/cfr_${version}.jar"; - sha256 = "16pmn3shhb00x3ba2zazbkprwvc34a6dds8ghc53winbf371xi3c"; + sha256 = "1xafxvxil0k7rwvfia2a67sh18pk8xb2y6qz6cpr31i2i0pwl8ls"; }; nativeBuildInputs = [ makeWrapper ]; From 2f28107251f36892e490902b05fbb4cc48f8410d Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 07:57:16 -0700 Subject: [PATCH 77/82] folly: 2019.09.16.00 -> 2019.10.14.00 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/folly/versions --- pkgs/development/libraries/folly/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix index fe48eda192d..557c9aaa239 100644 --- a/pkgs/development/libraries/folly/default.nix +++ b/pkgs/development/libraries/folly/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "folly"; - version = "2019.09.16.00"; + version = "2019.10.14.00"; src = fetchFromGitHub { owner = "facebook"; repo = "folly"; rev = "v${version}"; - sha256 = "14vdc1rh6z2yhwncpmgyq9c8c0rddhd9l1mnmj9pjhl5hfj45kf6"; + sha256 = "0d32cwwza3hqsr0z4kcrk1cj26ipbwkqm6nz5335rw4k9y5kyz16"; }; nativeBuildInputs = [ cmake ]; From 750c16645564ba477275cd27ec3f17d881b85e07 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 06:33:49 -0700 Subject: [PATCH 78/82] cimg: 2.7.1 -> 2.7.4 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/cimg/versions --- pkgs/development/libraries/cimg/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/cimg/default.nix b/pkgs/development/libraries/cimg/default.nix index 6181122aa7f..e0f72f13df9 100644 --- a/pkgs/development/libraries/cimg/default.nix +++ b/pkgs/development/libraries/cimg/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "cimg"; - version = "2.7.1"; + version = "2.7.4"; src = fetchurl { url = "http://cimg.eu/files/CImg_${version}.zip"; - sha256 = "1lw1hjk65zyd5x9w113yrqyy8db45jdzzkqslkipaiskl9f81y9z"; + sha256 = "1csqac8z2q8dp95sdjn4am8icnxclz28yx3ih5izxxp4s5dpjbjb"; }; nativeBuildInputs = [ unzip ]; From 15dd224a5560605f3b148c789edcd0227d75f2a7 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 06:51:19 -0700 Subject: [PATCH 79/82] bvi: 1.4.0 -> 1.4.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/bvi/versions --- pkgs/applications/editors/bvi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/bvi/default.nix b/pkgs/applications/editors/bvi/default.nix index 3237c543ee6..2e79b80d610 100644 --- a/pkgs/applications/editors/bvi/default.nix +++ b/pkgs/applications/editors/bvi/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "bvi"; - version = "1.4.0"; + version = "1.4.1"; src = fetchurl { url = "mirror://sourceforge/bvi/${pname}-${version}.src.tar.gz"; - sha256 = "00pq9rv7s8inqxq2m3xshxi58691i3pxw9smibcrgh6768l3qnh1"; + sha256 = "0a0yl0dcyff31k3dr4dpgqmlwygp8iaslnr5gmb6814ylxf2ad9h"; }; buildInputs = [ ncurses ]; From 36ffad1d7e7b71696548cfddf37120d18cbb3972 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 07:08:23 -0700 Subject: [PATCH 80/82] catch2: 2.9.2 -> 2.10.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/catch2/versions --- pkgs/development/libraries/catch2/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/catch2/default.nix b/pkgs/development/libraries/catch2/default.nix index f8097599f4f..42e331f6574 100644 --- a/pkgs/development/libraries/catch2/default.nix +++ b/pkgs/development/libraries/catch2/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "catch2"; - version = "2.9.2"; + version = "2.10.0"; src = fetchFromGitHub { owner = "catchorg"; repo = "Catch2"; rev = "v${version}"; - sha256="0wn0vm9mdl4iv3scihdwfbg40appnllzbq4ik3jpr1jdf6ik7par"; + sha256="1mc6zix3hk3ggpihmdd4y0xvq3qvdw9c1arwnmi4nf3g4693k97r"; }; nativeBuildInputs = [ cmake ]; From 9addfc003fb1df07bc77c278399655b50b19400a Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 05:03:51 -0700 Subject: [PATCH 81/82] chirp: 20190905 -> 20190925 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/chirp-daily/versions --- pkgs/applications/radio/chirp/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/radio/chirp/default.nix b/pkgs/applications/radio/chirp/default.nix index 1a9328bb455..c088cefd861 100644 --- a/pkgs/applications/radio/chirp/default.nix +++ b/pkgs/applications/radio/chirp/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { pname = "chirp-daily"; - version = "20190905"; + version = "20190925"; src = fetchurl { url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz"; - sha256 = "01xglzzl94wzkd2d8zmyv6s1xqsfc7biph15k0ap8rlf98874rlf"; + sha256 = "0immgss7nj7395r3csiypksnbn1r2f3j45c5v8qpybz65lpbplps"; }; nativeBuildInputs = [ makeWrapper ]; From 3ca78c1a12a89c5e59fd39589a1092625a2e8e5a Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 21 Oct 2019 15:16:29 -0700 Subject: [PATCH 82/82] grails: 4.0.0 -> 4.0.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/grails/versions --- pkgs/development/web/grails/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/web/grails/default.nix b/pkgs/development/web/grails/default.nix index 5427f66478f..1c5557f7624 100644 --- a/pkgs/development/web/grails/default.nix +++ b/pkgs/development/web/grails/default.nix @@ -11,11 +11,11 @@ let in stdenv.mkDerivation rec { pname = "grails"; - version = "4.0.0"; + version = "4.0.1"; src = fetchurl { url = "https://github.com/grails/grails-core/releases/download/v${version}/grails-${version}.zip"; - sha256 = "13y0q3gcdpfwib3ahrgh36rhr4smbrq2g4xgvnk8c0a6wvmz85sx"; + sha256 = "0igkzxqfm6lvp4s8w6kavdvjriq59q42jmj9ynbc669dvy6y6725"; }; buildInputs = [ unzip ];