diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index a71c804428d..1ccfba68453 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -633,6 +633,7 @@ ./services/networking/dnsdist.nix ./services/networking/dnsmasq.nix ./services/networking/ncdns.nix + ./services/networking/nomad.nix ./services/networking/ejabberd.nix ./services/networking/epmd.nix ./services/networking/ergo.nix diff --git a/nixos/modules/services/networking/nomad.nix b/nixos/modules/services/networking/nomad.nix new file mode 100644 index 00000000000..e6bbb607aaa --- /dev/null +++ b/nixos/modules/services/networking/nomad.nix @@ -0,0 +1,126 @@ +{ config, lib, pkgs, ... }: +with lib; +let + cfg = config.services.nomad; + format = pkgs.formats.json { }; +in +{ + ##### interface + options = { + services.nomad = { + enable = mkEnableOption "Nomad, a distributed, highly available, datacenter-aware scheduler"; + + package = mkOption { + type = types.package; + default = pkgs.nomad; + defaultText = "pkgs.nomad"; + description = '' + The package used for the Nomad agent and CLI. + ''; + }; + + extraPackages = mkOption { + type = types.listOf types.package; + default = [ ]; + description = '' + Extra packages to add to PATH for the Nomad agent process. + ''; + example = literalExample '' + with pkgs; [ cni-plugins ] + ''; + }; + + dropPrivileges = mkOption { + type = types.bool; + default = true; + description = '' + Whether the nomad agent should be run as a non-root nomad user. + ''; + }; + + enableDocker = mkOption { + type = types.bool; + default = true; + description = '' + Enable Docker support. Needed for Nomad's docker driver. + + Note that the docker group membership is effectively equivalent + to being root, see https://github.com/moby/moby/issues/9976. + ''; + }; + + settings = mkOption { + type = format.type; + default = { + # Agrees with `StateDirectory = "nomad"` set below. + data_dir = "/var/lib/nomad"; + }; + description = '' + Configuration for Nomad. See the documentation + for supported values. + ''; + example = literalExample '' + { + # A minimal config example: + server = { + enabled = true; + bootstrap_expect = 1; # for demo; no fault tolerance + }; + client = { + enabled = true; + }; + } + ''; + }; + }; + }; + + ##### implementation + config = mkIf cfg.enable { + environment = { + etc."nomad.json".source = format.generate "nomad.json" cfg.settings; + systemPackages = [ cfg.package ]; + }; + + systemd.services.nomad = { + description = "Nomad"; + wantedBy = [ "multi-user.target" ]; + wants = [ "network-online.target" ]; + after = [ "network-online.target" ]; + restartTriggers = [ config.environment.etc."nomad.json".source ]; + + path = cfg.extraPackages ++ (with pkgs; [ + # Client mode requires at least the following: + coreutils + iproute + iptables + ]); + + serviceConfig = { + DynamicUser = cfg.dropPrivileges; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + ExecStart = "${cfg.package}/bin/nomad agent -config=/etc/nomad.json"; + KillMode = "process"; + KillSignal = "SIGINT"; + LimitNOFILE = 65536; + LimitNPROC = "infinity"; + OOMScoreAdjust = -1000; + Restart = "on-failure"; + RestartSec = 2; + # Agrees with the default `data_dir = "/var/lib/nomad"` in `settings` above. + StateDirectory = "nomad"; + TasksMax = "infinity"; + User = optionalString cfg.dropPrivileges "nomad"; + } // (optionalAttrs cfg.enableDocker { + SupplementaryGroups = "docker"; # space-separated string + }); + unitConfig = { + StartLimitIntervalSec = 10; + StartLimitBurst = 3; + }; + }; + + # Docker support requires the Docker daemon to be running. + virtualisation.docker.enable = mkIf cfg.enableDocker true; + }; +} diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix index 398cec3a2bb..60124f6aa73 100644 --- a/pkgs/applications/misc/gallery-dl/default.nix +++ b/pkgs/applications/misc/gallery-dl/default.nix @@ -2,11 +2,11 @@ buildPythonApplication rec { pname = "gallery_dl"; - version = "1.16.1"; + version = "1.16.3"; src = fetchPypi { inherit pname version; - sha256 = "51d789aac43013e25c1fad553f214cb1f43b1ae02e0651b640f102c5b9280aea"; + sha256 = "5926794d7a602cb9d4edf0a2094b266b790033db0a62689fa01e5272d7388587"; }; propagatedBuildInputs = [ requests ]; diff --git a/pkgs/development/python-modules/JPype1/default.nix b/pkgs/development/python-modules/JPype1/default.nix index 1a58562ab06..d7c199f7146 100644 --- a/pkgs/development/python-modules/JPype1/default.nix +++ b/pkgs/development/python-modules/JPype1/default.nix @@ -9,12 +9,12 @@ buildPythonPackage rec { pname = "JPype1"; - version = "1.2.0"; + version = "1.2.1"; disabled = isPy27; src = fetchPypi { inherit pname version; - sha256 = "62ca03e7f7963ba4ac1065ee48ff661f752b3db3c23549ed8933ab40196a3157"; + sha256 = "f210646127d24be73cfc6d807e2cda1c6b2ab39b7a293008e8b46367af6f2204"; }; propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ diff --git a/pkgs/development/python-modules/ROPGadget/default.nix b/pkgs/development/python-modules/ROPGadget/default.nix index 19280bf03c2..a342b46e3d6 100644 --- a/pkgs/development/python-modules/ROPGadget/default.nix +++ b/pkgs/development/python-modules/ROPGadget/default.nix @@ -3,11 +3,11 @@ buildPythonPackage rec { pname = "ROPGadget"; - version = "6.3"; + version = "6.4"; src = fetchPypi { inherit pname version; - sha256 = "0v34w88if3p4vn46aby24msfnxj6znmkf4848n4d24jnykxcsqk9"; + sha256 = "51d7cbdf51ac8b3f3f00bc0d4ae44433ef58d3bf5495efb316ec918654f1e6c3"; }; propagatedBuildInputs = [ capstone ]; diff --git a/pkgs/development/python-modules/aiowinreg/default.nix b/pkgs/development/python-modules/aiowinreg/default.nix index c6375b21efe..3b02916d229 100644 --- a/pkgs/development/python-modules/aiowinreg/default.nix +++ b/pkgs/development/python-modules/aiowinreg/default.nix @@ -6,13 +6,13 @@ buildPythonPackage rec { pname = "aiowinreg"; - version = "0.0.3"; + version = "0.0.4"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "0gxhx9m45yyr1rmgs7f1jchkgxk2zipk9g3s5ix90d267in8hsn9"; + sha256 = "956278a90ef6958f9e2392891b2a305273f695b15b14489cd2097197d6cbe155"; }; # Project doesn't have tests diff --git a/pkgs/development/python-modules/asyncwhois/default.nix b/pkgs/development/python-modules/asyncwhois/default.nix index a6ec6049ca2..077c5078caa 100644 --- a/pkgs/development/python-modules/asyncwhois/default.nix +++ b/pkgs/development/python-modules/asyncwhois/default.nix @@ -9,12 +9,12 @@ buildPythonPackage rec { pname = "asyncwhois"; - version = "0.2.2"; + version = "0.2.3"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "59ed35fbe646491b6c3e1dcf6db9b4870c3d44c6c023a1c3badd6226551d7b7e"; + sha256 = "95df90d5be581e3c69398abc6a3ec69a4e568852d9d6df4582bfcc0e22ffb3bb"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/authlib/default.nix b/pkgs/development/python-modules/authlib/default.nix index 82014b9be99..3e6faae9af0 100644 --- a/pkgs/development/python-modules/authlib/default.nix +++ b/pkgs/development/python-modules/authlib/default.nix @@ -8,14 +8,14 @@ }: buildPythonPackage rec { - version = "0.15.2"; + version = "0.15.3"; pname = "authlib"; src = fetchFromGitHub { owner = "lepture"; repo = "authlib"; rev = "v${version}"; - sha256 = "0jsqh2nirx3xifsakqdpd3wpdig6czavv3yj4lyqz3wh9xjpvswg"; + sha256 = "1lqicv8awyygqh1z8vhwvx38dw619kgbirdn8c9sc3qilagq1rdx"; }; propagatedBuildInputs = [ cryptography requests ]; diff --git a/pkgs/development/python-modules/avea/default.nix b/pkgs/development/python-modules/avea/default.nix index 10674ca667d..64e0dc28633 100644 --- a/pkgs/development/python-modules/avea/default.nix +++ b/pkgs/development/python-modules/avea/default.nix @@ -6,13 +6,13 @@ buildPythonPackage rec { pname = "avea"; - version = "1.5.1"; + version = "1.5.2"; src = fetchFromGitHub { owner = "k0rventen"; repo = pname; rev = "v${version}"; - sha256 = "13s21dnhbh10dd60xq2cklp5jyv46rpl3nivn1imcswp02930ihz"; + sha256 = "1dirf0zdf4hb941w1dvh97vsvcy4h3w9r8jwdgr1ggmhdf9kfx4v"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/avro/default.nix b/pkgs/development/python-modules/avro/default.nix index 9e08cd8ae1d..6f7b8b9c6c1 100644 --- a/pkgs/development/python-modules/avro/default.nix +++ b/pkgs/development/python-modules/avro/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "avro"; - version = "1.10.0"; + version = "1.10.1"; src = fetchPypi { inherit pname version; - sha256 = "bbf9f89fd20b4cf3156f10ec9fbce83579ece3e0403546c305957f9dac0d2f03"; + sha256 = "b3a405df5aa8654b992d2aca7b80482b858a1919a44dc0b10a682162e8ee340a"; }; patchPhase = '' diff --git a/pkgs/development/python-modules/axis/default.nix b/pkgs/development/python-modules/axis/default.nix index 2eeec3ec722..707d958bab5 100644 --- a/pkgs/development/python-modules/axis/default.nix +++ b/pkgs/development/python-modules/axis/default.nix @@ -9,13 +9,13 @@ buildPythonPackage rec { pname = "axis"; - version = "42"; + version = "43"; src = fetchFromGitHub { owner = "Kane610"; repo = pname; rev = "v${version}"; - sha256 = "1144zkgyf63qlw4dfn1zqcbgaksmxvjc4115jhzi98z0fkvlk34p"; + sha256 = "1p9yfixsrkw7rxbvgybcb653rbqv0x18wzqkh620g193snm9sgm2"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/cftime/default.nix b/pkgs/development/python-modules/cftime/default.nix index 0235c611c61..78dcecfb6a9 100644 --- a/pkgs/development/python-modules/cftime/default.nix +++ b/pkgs/development/python-modules/cftime/default.nix @@ -10,11 +10,11 @@ buildPythonPackage rec { pname = "cftime"; - version = "1.3.0"; + version = "1.3.1"; src = fetchPypi { inherit pname version; - sha256 = "8d6a1144f43b9d7a180d7ceb3aa8015b7133c615fbac231bed184a91129f0207"; + sha256 = "77fd86e69b234d41fa8634d627e9e9ee0501c2a8a95268c2b524d38e0a33f090"; }; checkInputs = [ diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix index 224ff33d5f0..5445157b853 100644 --- a/pkgs/development/python-modules/chalice/default.nix +++ b/pkgs/development/python-modules/chalice/default.nix @@ -22,11 +22,11 @@ buildPythonPackage rec { pname = "chalice"; - version = "1.21.7"; + version = "1.21.9"; src = fetchPypi { inherit pname version; - sha256 = "22512bccb9b881b8d5a33bd45c7ad539dee60f2f8685a5ed8afd5000a962b0f8"; + sha256 = "312f88838c8ea4b4ac79dce0e5b4ba3125130ca66ea99a4694f535501dca95e3"; }; checkInputs = [ watchdog pytest hypothesis mock ]; diff --git a/pkgs/development/python-modules/check-manifest/default.nix b/pkgs/development/python-modules/check-manifest/default.nix index bf847a48ae9..8a2c7488206 100644 --- a/pkgs/development/python-modules/check-manifest/default.nix +++ b/pkgs/development/python-modules/check-manifest/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "check-manifest"; - version = "0.45"; + version = "0.46"; src = fetchPypi { inherit pname version; - sha256 = "636b65a3b685374ad429ff22fe213966765b145f08bc560c8d033b604c7bee4c"; + sha256 = "5895e42a012989bdc51854a02c82c8d6898112a4ab11f2d7878200520b49d428"; }; # Test requires filesystem access diff --git a/pkgs/development/python-modules/databricks-connect/default.nix b/pkgs/development/python-modules/databricks-connect/default.nix index 1c4261c92bf..14c1dd30d13 100644 --- a/pkgs/development/python-modules/databricks-connect/default.nix +++ b/pkgs/development/python-modules/databricks-connect/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "databricks-connect"; - version = "7.3.5"; + version = "7.3.6"; src = fetchPypi { inherit pname version; - sha256 = "c720298b05648f5de8f17de03f93d60ffb30c2d55ce2750e63c17c341a8de5e4"; + sha256 = "e3f72ba94c8da6b5aae44ca6133a46206e378609ec0aefadfbdc9a3722afd8d1"; }; sourceRoot = "."; diff --git a/pkgs/development/python-modules/debian/default.nix b/pkgs/development/python-modules/debian/default.nix index 9f5cb744e55..e97c3420f45 100644 --- a/pkgs/development/python-modules/debian/default.nix +++ b/pkgs/development/python-modules/debian/default.nix @@ -3,11 +3,11 @@ buildPythonPackage rec { pname = "python-debian"; - version = "0.1.38"; + version = "0.1.39"; src = fetchPypi { inherit pname version; - sha256 = "a352bb5f9ef19b0272078f516ee0ec42b05e90ac85651d87c10e7041550dcc1d"; + sha256 = "6cca96239b5981f5203216d2113fea522477628607ed0a8427e15094a792541c"; }; propagatedBuildInputs = [ chardet six ]; diff --git a/pkgs/development/python-modules/evdev/default.nix b/pkgs/development/python-modules/evdev/default.nix index 305ada89552..1a3f2a0e642 100644 --- a/pkgs/development/python-modules/evdev/default.nix +++ b/pkgs/development/python-modules/evdev/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "evdev"; - version = "1.3.0"; + version = "1.4.0"; src = fetchPypi { inherit pname version; - sha256 = "0kb3636yaw9l8xi8s184w0r0n9ic5dw3b8hx048jf9fpzss4kimi"; + sha256 = "8782740eb1a86b187334c07feb5127d3faa0b236e113206dfe3ae8f77fb1aaf1"; }; buildInputs = [ linuxHeaders ]; diff --git a/pkgs/development/python-modules/genpy/default.nix b/pkgs/development/python-modules/genpy/default.nix index 64e253b3201..d5e82332c30 100644 --- a/pkgs/development/python-modules/genpy/default.nix +++ b/pkgs/development/python-modules/genpy/default.nix @@ -7,11 +7,11 @@ buildPythonPackage rec { pname = "genpy"; - version = "2016.1.3"; + version = "2021.1"; src = fetchPypi { inherit pname version; - sha256 = "1c11726f1e8ace8bbdfc87816403c9a59f53a8c3d45c99187ae17c9725d87a91"; + sha256 = "9bc062fa98c5c466ff464d8974be81a6bf67af9247b5e5176215ad1e81a6cdac"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/pkgs/development/python-modules/google-cloud-bigquery/default.nix index b8620ee8b35..5eab2c730f7 100644 --- a/pkgs/development/python-modules/google-cloud-bigquery/default.nix +++ b/pkgs/development/python-modules/google-cloud-bigquery/default.nix @@ -16,11 +16,11 @@ buildPythonPackage rec { pname = "google-cloud-bigquery"; - version = "2.6.1"; + version = "2.6.2"; src = fetchPypi { inherit pname version; - sha256 = "1vs4im0fixmszh6p77icys9g7fymwmkfc6va0ng9kpjv1h6gv68z"; + sha256 = "1c940bf190a681d80b6f6cd7541924ad411de5f0585b2c8c5e420ab750e2024d"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/google-crc32c/default.nix b/pkgs/development/python-modules/google-crc32c/default.nix index aaf16d9e7c8..104e4ec487f 100644 --- a/pkgs/development/python-modules/google-crc32c/default.nix +++ b/pkgs/development/python-modules/google-crc32c/default.nix @@ -2,13 +2,13 @@ buildPythonPackage rec { pname = "google-crc32c"; - version = "1.1.0"; + version = "1.1.1"; src = fetchFromGitHub { owner = "googleapis"; repo = "python-crc32c"; rev = "v${version}"; - sha256 = "0vbidg9yrv9k8xvk8rl43lsf4cg3dci4a9k4srwwrchbxivz1gr6"; + sha256 = "103lqs42b01p6nydjz4id72x7hsrpjyv7g06vrphm8c5g1wa3zp1"; }; buildInputs = [ crc32c ]; diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix index 7f2f8c26339..f3b8393a275 100644 --- a/pkgs/development/python-modules/identify/default.nix +++ b/pkgs/development/python-modules/identify/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "identify"; - version = "1.5.11"; + version = "1.5.13"; src = fetchPypi { inherit pname version; - sha256 = "b2c71bf9f5c482c389cef816f3a15f1c9d7429ad70f497d4a2e522442d80c6de"; + sha256 = "70b638cf4743f33042bebb3b51e25261a0a10e80f978739f17e7fd4837664a66"; }; # Tests not included in PyPI tarball diff --git a/pkgs/development/python-modules/isbnlib/default.nix b/pkgs/development/python-modules/isbnlib/default.nix index 8398117041b..3b03a15b9a4 100644 --- a/pkgs/development/python-modules/isbnlib/default.nix +++ b/pkgs/development/python-modules/isbnlib/default.nix @@ -7,11 +7,11 @@ buildPythonPackage rec { pname = "isbnlib"; - version = "3.10.4"; + version = "3.10.5"; src = fetchPypi { inherit pname version; - sha256 = "f5bfbc362e2a73dfc82449ac459b59a7f6b20bcebf82f6bd87d773dc45073646"; + sha256 = "cb3b400b37a73cf4a0bc698be2ea414e78ff117867baed9313aa8c97596e1b98"; }; checkInputs = [ diff --git a/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix b/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix index dc38acc66f7..71fba8a1222 100644 --- a/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix +++ b/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix @@ -8,11 +8,11 @@ buildPythonPackage rec { pname = "jupyterhub-systemdspawner"; - version = "0.14"; + version = "0.15.0"; src = fetchPypi { inherit pname version; - sha256 = "080dd9cd9292266dad35d1efc7aa1af0ed6993d15eadc79bd959d1ee273d1923"; + sha256 = "b6e2d981657aa5d3794abb89b1650d056524158a3d0f0f706007cae9b6dbeb2b"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/kerberos/default.nix b/pkgs/development/python-modules/kerberos/default.nix index df9babdc582..985339caed5 100644 --- a/pkgs/development/python-modules/kerberos/default.nix +++ b/pkgs/development/python-modules/kerberos/default.nix @@ -6,11 +6,11 @@ buildPythonPackage rec { pname = "kerberos"; - version = "1.3.0"; + version = "1.3.1"; src = fetchPypi { inherit pname version; - sha256 = "19663qxmma0i8bfbjc2iwy5hgq0g4pfb75r023v5dps68zfvffgh"; + sha256 = "cdd046142a4e0060f96a00eb13d82a5d9ebc0f2d7934393ed559bac773460a2c"; }; nativeBuildInputs = [ kerberos ]; diff --git a/pkgs/development/python-modules/keyrings-alt/default.nix b/pkgs/development/python-modules/keyrings-alt/default.nix index eb1f12e0aa3..0b642d0d4f1 100644 --- a/pkgs/development/python-modules/keyrings-alt/default.nix +++ b/pkgs/development/python-modules/keyrings-alt/default.nix @@ -4,12 +4,12 @@ buildPythonPackage rec { pname = "keyrings.alt"; - version = "4.0.1"; + version = "4.0.2"; disabled = isPy27; src = fetchPypi { inherit pname version; - sha256 = "cd23d4c6930b5271134ac815d868164cb6d0d2252ee6dcb07fadfca26caaa230"; + sha256 = "cc475635099d6edd7e475c5a479e5b4da5e811a3af04495a1e9ada488d16fe25"; }; postPatch = '' diff --git a/pkgs/tools/misc/psw/default.nix b/pkgs/tools/misc/psw/default.nix index f32b1deb317..09b9010bed6 100644 --- a/pkgs/tools/misc/psw/default.nix +++ b/pkgs/tools/misc/psw/default.nix @@ -21,6 +21,5 @@ rustPlatform.buildRustPackage rec { homepage = "https://github.com/Wulfsta/psw"; license = with licenses; [ asl20 /* or */ mit ]; maintainers = with maintainers; [ wulfsta ]; - platforms = platforms.linux; }; } diff --git a/pkgs/tools/system/gdu/default.nix b/pkgs/tools/system/gdu/default.nix index 7b1bb36856e..72ee7d5ebc6 100644 --- a/pkgs/tools/system/gdu/default.nix +++ b/pkgs/tools/system/gdu/default.nix @@ -6,21 +6,21 @@ buildGoModule rec { pname = "gdu"; - version = "2.3.0"; + version = "3.0.0"; src = fetchFromGitHub { owner = "dundee"; repo = pname; rev = "v${version}"; - sha256 = "1dc0z6daxpbid2ilpms0dw76qyyc84gx0bcqsx0b3s5p5p154xzq"; + sha256 = "0sfb8bxvdd8r05d0bgfcaw6dpbky7f4fgf0dbly7k7sgl29hkafy"; }; - vendorSha256 = "18a3qwshz8jmw0j29qvmzarxig0kj1n0fnmlx81qzswsyl85kncv"; + vendorSha256 = "0w3k23kly8g9mf8a300xz6bv7g1m2nlp5f112k4viyi9zy6vqbv0"; - buildFlagsArray = [ "-ldflags=-s -w -X main.AppVersion=${version}" ]; + buildFlagsArray = [ "-ldflags=-s -w -X github.com/dundee/gdu/build.Version=${version}" ]; - # analyze/dev_test.go: undefined: processMounts - doCheck = !stdenv.isDarwin; + # tests fail if the version is set + doCheck = false; meta = with lib; { description = "Disk usage analyzer with console interface";