summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/lists.nix2
-rw-r--r--lib/sources.nix37
-rw-r--r--nixos/doc/manual/release-notes/rl-1909.xml35
-rw-r--r--nixos/modules/module-list.nix2
-rw-r--r--nixos/modules/programs/system-config-printer.nix32
-rw-r--r--nixos/modules/rename.nix3
-rw-r--r--nixos/modules/services/desktops/system-config-printer.nix38
-rw-r--r--nixos/modules/services/monitoring/prometheus/default.nix544
-rw-r--r--nixos/modules/services/monitoring/thanos.nix16
-rw-r--r--nixos/modules/services/networking/murmur.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome3.nix3
-rw-r--r--nixos/modules/services/x11/desktop-managers/mate.nix3
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.nix6
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix3
-rw-r--r--nixos/modules/services/x11/desktop-managers/xfce4-14.nix3
-rw-r--r--nixos/modules/virtualisation/railcar.nix14
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/prometheus-2.nix239
-rw-r--r--nixos/tests/prometheus.nix255
-rw-r--r--pkgs/applications/blockchains/go-ethereum-classic/default.nix24
-rw-r--r--pkgs/applications/blockchains/go-ethereum-classic/deps.nix39
-rw-r--r--pkgs/applications/editors/android-studio/common.nix4
-rw-r--r--pkgs/applications/editors/android-studio/default.nix6
-rw-r--r--pkgs/applications/graphics/imv/default.nix38
-rw-r--r--pkgs/applications/graphics/pdfcpu/default.nix6
-rw-r--r--pkgs/applications/misc/hugo/default.nix6
-rw-r--r--pkgs/applications/misc/perkeep/default.nix31
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix10
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix496
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/default.nix46
-rw-r--r--pkgs/applications/networking/mumble/default.nix19
-rw-r--r--pkgs/applications/office/fava/default.nix12
-rw-r--r--pkgs/applications/science/astronomy/gildas/default.nix13
-rw-r--r--pkgs/applications/science/biology/bedtools/default.nix4
-rw-r--r--pkgs/applications/video/makemkv/default.nix6
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix4
-rw-r--r--pkgs/development/compilers/ghc/8.6.5.nix4
-rw-r--r--pkgs/development/compilers/go/1.10.nix187
-rw-r--r--pkgs/development/compilers/mcpp/default.nix5
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix15
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml29
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix1235
-rw-r--r--pkgs/development/interpreters/python/pypy/prebuilt.nix4
-rw-r--r--pkgs/development/libraries/science/math/magma/default.nix19
-rw-r--r--pkgs/development/libraries/zeroc-ice/3.6.nix57
-rw-r--r--pkgs/development/libraries/zeroc-ice/default.nix61
-rw-r--r--pkgs/development/ocaml-modules/lwt/4.x.nix22
-rw-r--r--pkgs/development/python-modules/beancount/default.nix11
-rw-r--r--pkgs/development/python-modules/google_auth/default.nix9
-rw-r--r--pkgs/development/python-modules/libcloud/default.nix4
-rw-r--r--pkgs/development/python-modules/pybind11/default.nix35
-rw-r--r--pkgs/development/python-modules/zeroc-ice/default.nix20
-rw-r--r--pkgs/development/tools/build-managers/bear/default.nix6
-rw-r--r--pkgs/development/tools/dep/default.nix4
-rw-r--r--pkgs/development/tools/gotools/default.nix8
-rw-r--r--pkgs/development/tools/profiling/pyflame/default.nix33
-rw-r--r--pkgs/development/tools/rust/maturin/default.nix6
-rw-r--r--pkgs/misc/vscode-extensions/cpptools/default.nix4
-rw-r--r--pkgs/os-specific/linux/acpid/default.nix4
-rw-r--r--pkgs/os-specific/linux/fscrypt/default.nix8
-rw-r--r--pkgs/os-specific/linux/fscrypt/deps.nix66
-rwxr-xr-xpkgs/os-specific/linux/nvidia-x11/builder.sh3
-rw-r--r--pkgs/servers/monitoring/prometheus/default.nix82
-rw-r--r--pkgs/servers/monitoring/prometheus/snmp-exporter.nix4
-rw-r--r--pkgs/servers/sql/cockroachdb/default.nix4
-rw-r--r--pkgs/tools/admin/eksctl/default.nix4
-rw-r--r--pkgs/tools/backup/diskrsync/default.nix6
-rw-r--r--pkgs/tools/backup/diskrsync/deps.nix37
-rw-r--r--pkgs/tools/graphics/graphviz/default.nix2
-rw-r--r--pkgs/tools/misc/system-config-printer/default.nix3
-rw-r--r--pkgs/tools/networking/tinc/default.nix4
-rw-r--r--pkgs/tools/security/notary/default.nix2
-rw-r--r--pkgs/top-level/aliases.nix3
-rw-r--r--pkgs/top-level/all-packages.nix76
-rw-r--r--pkgs/top-level/python-packages.nix2
80 files changed, 2416 insertions, 1685 deletions
diff --git a/lib/lists.nix b/lib/lists.nix
index d075a02d4755..f9f30412770a 100644
--- a/lib/lists.nix
+++ b/lib/lists.nix
@@ -88,7 +88,7 @@ rec {
/* Strict version of `foldl`.
The difference is that evaluation is forced upon access. Usually used
- with small whole results (in contract with lazily-generated list or large
+ with small whole results (in contrast with lazily-generated list or large
lists where only a part is consumed.)
Type: foldl' :: (b -> a -> b) -> b -> [a] -> b
diff --git a/lib/sources.nix b/lib/sources.nix
index c4680087b245..51bcf5559e32 100644
--- a/lib/sources.nix
+++ b/lib/sources.nix
@@ -36,18 +36,47 @@ rec {
# allowing you to chain multiple calls together without any
# intermediate copies being put in the nix store.
#
- # lib.cleanSourceWith f (lib.cleanSourceWith g ./.) # Succeeds!
- # builtins.filterSource f (builtins.filterSource g ./.) # Fails!
- cleanSourceWith = { filter, src }:
+ # lib.cleanSourceWith {
+ # filter = f;
+ # src = lib.cleanSourceWith {
+ # filter = g;
+ # src = ./.;
+ # };
+ # }
+ # # Succeeds!
+ #
+ # builtins.filterSource f (builtins.filterSource g ./.)
+ # # Fails!
+ #
+ # Parameters:
+ #
+ # src: A path or cleanSourceWith result to filter and/or rename.
+ #
+ # filter: A function (path -> type -> bool)
+ # Optional with default value: constant true (include everything)
+ # The function will be combined with the && operator such
+ # that src.filter is called lazily.
+ # For implementing a filter, see
+ # https://nixos.org/nix/manual/#builtin-filterSource
+ #
+ # name: Optional name to use as part of the store path.
+ # This defaults `src.name` or otherwise `baseNameOf src`.
+ # We recommend setting `name` whenever `src` is syntactically `./.`.
+ # Otherwise, you depend on `./.`'s name in the parent directory,
+ # which can cause inconsistent names, defeating caching.
+ #
+ cleanSourceWith = { filter ? _path: _type: true, src, name ? null }:
let
isFiltered = src ? _isLibCleanSourceWith;
origSrc = if isFiltered then src.origSrc else src;
filter' = if isFiltered then name: type: filter name type && src.filter name type else filter;
+ name' = if name != null then name else if isFiltered then src.name else baseNameOf src;
in {
inherit origSrc;
filter = filter';
- outPath = builtins.filterSource filter' origSrc;
+ outPath = builtins.path { filter = filter'; path = origSrc; name = name'; };
_isLibCleanSourceWith = true;
+ name = name';
};
# Filter sources by a list of regular expressions.
diff --git a/nixos/doc/manual/release-notes/rl-1909.xml b/nixos/doc/manual/release-notes/rl-1909.xml
index ee6ef883068e..ee3b03581529 100644
--- a/nixos/doc/manual/release-notes/rl-1909.xml
+++ b/nixos/doc/manual/release-notes/rl-1909.xml
@@ -144,6 +144,32 @@
but will make sure that the given printers are configured as declared.
</para>
</listitem>
+ <listitem>
+ <para>
+ There is a new <xref linkend="opt-services.system-config-printer.enable"/> and <xref linkend="opt-programs.system-config-printer.enable"/> module
+ for the program of the same name. If you previously had <literal>system-config-printer</literal> enabled through some other
+ means you should migrate to using one of these modules.
+ </para>
+ <itemizedlist>
+ <para>If you're a user of the following desktopManager modules no action is needed:</para>
+ <listitem>
+ <para><option>services.xserver.desktopManager.plasma5</option></para>
+ </listitem>
+ <listitem>
+ <para><option>services.xserver.desktopManager.gnome3</option></para>
+ </listitem>
+ <listitem>
+ <para><option>services.xserver.desktopManager.pantheon</option></para>
+ </listitem>
+ <listitem>
+ <para><option>services.xserver.desktopManager.mate</option></para>
+ <para>
+ Note Mate uses <literal>programs.system-config-printer</literal> as it doesn't
+ use it as a service, but its graphical interface directly.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
</itemizedlist>
</section>
@@ -438,7 +464,14 @@
<literal>packetbeat5</literal>) of the ELK-stack and Elastic beats have been removed.
</para>
</listitem>
-
+ <listitem>
+ <para>
+ For NixOS 19.03, both Prometheus 1 and 2 were available to allow for
+ a seamless transition from version 1 to 2 with existing setups.
+ Because Prometheus 1 is no longer developed, it was removed.
+ Prometheus 2 is now configured with <literal>services.prometheus</literal>.
+ </para>
+ </listitem>
</itemizedlist>
</section>
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index fe28cf7fa492..c21973faa89f 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -151,6 +151,7 @@
./programs/sysdig.nix
./programs/systemtap.nix
./programs/sway.nix
+ ./programs/system-config-printer.nix
./programs/thefuck.nix
./programs/tmux.nix
./programs/tsm-client.nix
@@ -309,6 +310,7 @@
./services/desktops/gnome3/tracker.nix
./services/desktops/gnome3/tracker-miners.nix
./services/desktops/profile-sync-daemon.nix
+ ./services/desktops/system-config-printer.nix
./services/desktops/telepathy.nix
./services/desktops/tumbler.nix
./services/desktops/zeitgeist.nix
diff --git a/nixos/modules/programs/system-config-printer.nix b/nixos/modules/programs/system-config-printer.nix
new file mode 100644
index 000000000000..34592dd7064b
--- /dev/null
+++ b/nixos/modules/programs/system-config-printer.nix
@@ -0,0 +1,32 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+{
+
+ ###### interface
+
+ options = {
+
+ programs.system-config-printer = {
+
+ enable = mkEnableOption "system-config-printer, a Graphical user interface for CUPS administration";
+
+ };
+
+ };
+
+
+ ###### implementation
+
+ config = mkIf config.programs.system-config-printer.enable {
+
+ environment.systemPackages = [
+ pkgs.system-config-printer
+ ];
+
+ services.system-config-printer.enable = true;
+
+ };
+
+}
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 1fa91f05030d..d1303f90ad8d 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -52,10 +52,11 @@ with lib;
(mkRemovedOptionModule [ "services" "misc" "nzbget" "openFirewall" ] "The port used by nzbget is managed through the web interface so you should adjust your firewall rules accordingly.")
(mkRemovedOptionModule [ "services" "prometheus" "alertmanager" "user" ] "The alertmanager service is now using systemd's DynamicUser mechanism which obviates a user setting.")
(mkRemovedOptionModule [ "services" "prometheus" "alertmanager" "group" ] "The alertmanager service is now using systemd's DynamicUser mechanism which obviates a group setting.")
- (mkRemovedOptionModule [ "services" "prometheus2" "alertmanagerURL" ] ''
+ (mkRemovedOptionModule [ "services" "prometheus" "alertmanagerURL" ] ''
Due to incompatibility, the alertmanagerURL option has been removed,
please use 'services.prometheus2.alertmanagers' instead.
'')
+ (mkRenamedOptionModule [ "services" "prometheus2" ] [ "services" "prometheus" ])
(mkRenamedOptionModule [ "services" "tor" "relay" "portSpec" ] [ "services" "tor" "relay" "port" ])
(mkRenamedOptionModule [ "services" "vmwareGuest" ] [ "virtualisation" "vmware" "guest" ])
(mkRenamedOptionModule [ "jobs" ] [ "systemd" "services" ])
diff --git a/nixos/modules/services/desktops/system-config-printer.nix b/nixos/modules/services/desktops/system-config-printer.nix
new file mode 100644
index 000000000000..8a80be266b20
--- /dev/null
+++ b/nixos/modules/services/desktops/system-config-printer.nix
@@ -0,0 +1,38 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+{
+
+ ###### interface
+
+ options = {
+
+ services.system-config-printer = {
+
+ enable = mkEnableOption "system-config-printer, a service for CUPS administration used by printing interfaces";
+
+ };
+
+ };
+
+
+ ###### implementation
+
+ config = mkIf config.services.system-config-printer.enable {
+
+ services.dbus.packages = [
+ pkgs.system-config-printer
+ ];
+
+ systemd.packages = [
+ pkgs.system-config-printer
+ ];
+
+ services.udev.packages = [
+ pkgs.system-config-printer
+ ];
+
+ };
+
+}
diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix
index 647d67533b89..191c0bff9c84 100644
--- a/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixos/modules/services/monitoring/prometheus/default.nix
@@ -4,37 +4,14 @@ with lib;
let
cfg = config.services.prometheus;
- cfg2 = config.services.prometheus2;
- promUser = "prometheus";
- promGroup = "prometheus";
-
- stateDir =
- if cfg.stateDir != null
- then cfg.stateDir
- else
- if cfg.dataDir != null
- then
- # This assumes /var/lib/ is a prefix of cfg.dataDir.
- # This is checked as an assertion below.
- removePrefix stateDirBase cfg.dataDir
- else "prometheus";
- stateDirBase = "/var/lib/";
- workingDir = stateDirBase + stateDir;
- workingDir2 = stateDirBase + cfg2.stateDir;
- # a wrapper that verifies that the configuration is valid
- promtoolCheck = what: name: file: pkgs.runCommand "${name}-${what}-checked"
- { buildInputs = [ cfg.package ]; } ''
- ln -s ${file} $out
- promtool ${what} $out
- '';
+ workingDir = "/var/lib/" + cfg.stateDir;
- # a wrapper that verifies that the configuration is valid for
- # prometheus 2
- prom2toolCheck = what: name: file:
+ # a wrapper that verifies that the configuration is valid
+ promtoolCheck = what: name: file:
pkgs.runCommand
"${name}-${replaceStrings [" "] [""] what}-checked"
- { buildInputs = [ cfg2.package ]; } ''
+ { buildInputs = [ cfg.package ]; } ''
ln -s ${file} $out
promtool ${what} $out
'';
@@ -45,61 +22,34 @@ let
echo '${builtins.toJSON x}' | ${pkgs.jq}/bin/jq . > $out
'';
- # This becomes the main config file for Prometheus 1
+ generatedPrometheusYml = writePrettyJSON "prometheus.yml" promConfig;
+
+ # This becomes the main config file for Prometheus
promConfig = {
global = filterValidPrometheus cfg.globalConfig;
- rule_files = map (promtoolCheck "check-rules" "rules") (cfg.ruleFiles ++ [
+ rule_files = map (promtoolCheck "check rules" "rules") (cfg.ruleFiles ++ [
(pkgs.writeText "prometheus.rules" (concatStringsSep "\n" cfg.rules))
]);
scrape_configs = filterValidPrometheus cfg.scrapeConfigs;
+ alerting = {
+ inherit (cfg) alertmanagers;
+ };
};
- generatedPrometheusYml = writePrettyJSON "prometheus.yml" promConfig;
-
prometheusYml = let
yml = if cfg.configText != null then
pkgs.writeText "prometheus.yml" cfg.configText
else generatedPrometheusYml;
- in promtoolCheck "check-config" "prometheus.yml" yml;
+ in promtoolCheck "check config" "prometheus.yml" yml;
cmdlineArgs = cfg.extraFlags ++ [
- "-storage.local.path=${workingDir}/metrics"
- "-config.file=${prometheusYml}"
- "-web.listen-address=${cfg.listenAddress}"
- "-alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
- "-alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
+ "--storage.tsdb.path=${workingDir}/data/"
+ "--config.file=${prometheusYml}"
+ "--web.listen-address=${cfg.listenAddress}"
+ "--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
+ "--alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
] ++
- optional (cfg.alertmanagerURL != []) "-alertmanager.url=${concatStringsSep "," cfg.alertmanagerURL}" ++
- optional (cfg.webExternalUrl != null) "-web.external-url=${cfg.webExternalUrl}";
-
- # This becomes the main config file for Prometheus 2
- promConfig2 = {
- global = filterValidPrometheus cfg2.globalConfig;
- rule_files = map (prom2toolCheck "check rules" "rules") (cfg2.ruleFiles ++ [
- (pkgs.writeText "prometheus.rules" (concatStringsSep "\n" cfg2.rules))
- ]);
- scrape_configs = filterValidPrometheus cfg2.scrapeConfigs;
- alerting = {
- inherit (cfg2) alertmanagers;
- };
- };
-
- generatedPrometheus2Yml = writePrettyJSON "prometheus.yml" promConfig2;
-
- prometheus2Yml = let
- yml = if cfg2.configText != null then
- pkgs.writeText "prometheus.yml" cfg2.configText
- else generatedPrometheus2Yml;
- in prom2toolCheck "check config" "prometheus.yml" yml;
-
- cmdlineArgs2 = cfg2.extraFlags ++ [
- "--storage.tsdb.path=${workingDir2}/data/"
- "--config.file=${prometheus2Yml}"
- "--web.listen-address=${cfg2.listenAddress}"
- "--alertmanager.notification-queue-capacity=${toString cfg2.aler