diff options
28 files changed, 443 insertions, 100 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index b2b7fd8305f59..f1c8a4fc74de3 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -13127,6 +13127,12 @@ githubId = 1222539; name = "Roman Naumann"; }; + nanotwerp = { + email = "nanotwerp@gmail.com"; + github = "nanotwerp"; + githubId = 17240342; + name = "Nano Twerpus"; + }; naphta = { github = "naphta"; githubId = 6709831; diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md index 573767d685ba7..7deca72256b95 100644 --- a/nixos/doc/manual/release-notes/rl-2405.section.md +++ b/nixos/doc/manual/release-notes/rl-2405.section.md @@ -42,6 +42,8 @@ In addition to numerous new and upgraded packages, this release has the followin - [Guix](https://guix.gnu.org), a functional package manager inspired by Nix. Available as [services.guix](#opt-services.guix.enable). +- [pyLoad](https://pyload.net/), a FOSS download manager written in Python. Available as [services.pyload](#opt-services.pyload.enable) + - [maubot](https://github.com/maubot/maubot), a plugin-based Matrix bot framework. Available as [services.maubot](#opt-services.maubot.enable). - systemd's gateway, upload, and remote services, which provides ways of sending journals across the network. Enable using [services.journald.gateway](#opt-services.journald.gateway.enable), [services.journald.upload](#opt-services.journald.upload.enable), and [services.journald.remote](#opt-services.journald.remote.enable). diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix index e618cf2f861a3..49ba2e5c83868 100644 --- a/nixos/lib/utils.nix +++ b/nixos/lib/utils.nix @@ -109,6 +109,7 @@ rec { recurse = prefix: item: if item ? ${attr} then nameValuePair prefix item.${attr} + else if isDerivation item then [] else if isAttrs item then map (name: let diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix index 4727e5b85ef22..a50a03ce52d4a 100644 --- a/nixos/modules/config/no-x-libs.nix +++ b/nixos/modules/config/no-x-libs.nix @@ -37,6 +37,7 @@ with lib; ghostscript = super.ghostscript.override { cupsSupport = false; x11Support = false; }; gjs = super.gjs.overrideAttrs { doCheck = false; installTests = false; }; # avoid test dependency on gtk3 gobject-introspection = super.gobject-introspection.override { x11Support = false; }; + gpg-tui = super.gpg-tui.override { x11Support = false; }; gpsd = super.gpsd.override { guiSupport = false; }; graphviz = super.graphviz-nox; gst_all_1 = super.gst_all_1 // { diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index db496f1d96b0d..d16553f57642a 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1062,6 +1062,7 @@ ./services/networking/openvpn.nix ./services/networking/ostinato.nix ./services/networking/owamp.nix + ./services/networking/pyload.nix ./services/networking/pdns-recursor.nix ./services/networking/pdnsd.nix ./services/networking/peroxide.nix diff --git a/nixos/modules/services/networking/pyload.nix b/nixos/modules/services/networking/pyload.nix new file mode 100644 index 0000000000000..f2b85499d4ddb --- /dev/null +++ b/nixos/modules/services/networking/pyload.nix @@ -0,0 +1,147 @@ +{ config, lib, pkgs, utils, ... }: +let + cfg = config.services.pyload; + + stateDir = "/var/lib/pyload"; +in +{ + meta.maintainers = with lib.maintainers; [ ambroisie ]; + + options = with lib; { + services.pyload = { + enable = mkEnableOption "pyLoad download manager"; + + package = mkPackageOption pkgs "pyLoad" { default = [ "pyload-ng" ]; }; + + listenAddress = mkOption { + type = types.str; + default = "localhost"; + example = "0.0.0.0"; + description = "Address to listen on for the web UI."; + }; + + port = mkOption { + type = types.port; + default = 8000; + example = 9876; + description = "Port to listen on for the web UI."; + }; + + downloadDirectory = mkOption { + type = types.path; + default = "${stateDir}/downloads"; + example = "/mnt/downloads"; + description = "Directory to store downloads."; + }; + + credentialsFile = mkOption { + type = with types; nullOr path; + default = null; + example = "/run/secrets/pyload-credentials.env"; + description = '' + File containing {env}`PYLOAD_DEFAULT_USERNAME` and + {env}`PYLOAD_DEFAULT_PASSWORD` in the format of an `EnvironmentFile=`, + as described by {manpage}`systemd.exec(5)`. + + If not given, they default to the username/password combo of + pyload/pyload. + ''; + }; + }; + }; + + config = lib.mkIf cfg.enable { + systemd.tmpfiles.settings.pyload = { + ${cfg.downloadDirectory}.d = { }; + }; + + systemd.services.pyload = { + description = "pyLoad download manager"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + + # NOTE: unlike what the documentation says, it looks like `HOME` is not + # defined with this service definition... + # Since pyload tries to do the equivalent of `cd ~`, it needs to be able + # to resolve $HOME, which fails when `RootDirectory` is set. + # FIXME: check if `SetLoginEnvironment` fixes this issue in version 255 + environment = { + HOME = stateDir; + PYLOAD__WEBUI__HOST = cfg.listenAddress; + PYLOAD__WEBUI__PORT = builtins.toString cfg.port; + }; + + serviceConfig = { + ExecStart = utils.escapeSystemdExecArgs [ + (lib.getExe cfg.package) + "--userdir" + "${stateDir}/config" + "--storagedir" + cfg.downloadDirectory + ]; + + User = "pyload"; + Group = "pyload"; + DynamicUser = true; + + EnvironmentFile = lib.optional (cfg.credentialsFile != null) cfg.credentialsFile; + + StateDirectory = "pyload"; + WorkingDirectory = stateDir; + RuntimeDirectory = "pyload"; + RuntimeDirectoryMode = "0700"; + RootDirectory = "/run/pyload"; + BindReadOnlyPaths = [ + builtins.storeDir # Needed to run the python interpreter + ]; + BindPaths = [ + cfg.downloadDirectory + ]; + + # Hardening options + LockPersonality = true; + NoNewPrivileges = true; + PrivateDevices = true; + PrivateMounts = true; + PrivateTmp = true; + PrivateUsers = true; + ProcSubset = "pid"; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProtectSystem = "strict"; + RemoveIPC = true; + RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX"; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + SystemCallFilter = [ "@system-service" "~@resources" "~@privileged" ]; + UMask = "0002"; + CapabilityBoundingSet = [ + "~CAP_BLOCK_SUSPEND" + "~CAP_BPF" + "~CAP_CHOWN" + "~CAP_IPC_LOCK" + "~CAP_KILL" + "~CAP_LEASE" + "~CAP_LINUX_IMMUTABLE" + "~CAP_NET_ADMIN" + "~CAP_SYS_ADMIN" + "~CAP_SYS_BOOT" + "~CAP_SYS_CHROOT" + "~CAP_SYS_NICE" + "~CAP_SYS_PACCT" + "~CAP_SYS_PTRACE" + "~CAP_SYS_RESOURCE" + "~CAP_SYS_TTY_CONFIG" + ]; + }; + }; + }; +} diff --git a/nixos/modules/services/networking/strongswan-swanctl/module.nix b/nixos/modules/services/networking/strongswan-swanctl/module.nix index a988509239558..c1f0aeb64e967 100644 --- a/nixos/modules/services/networking/strongswan-swanctl/module.nix +++ b/nixos/modules/services/networking/strongswan-swanctl/module.nix @@ -5,6 +5,9 @@ with (import ./param-lib.nix lib); let cfg = config.services.strongswan-swanctl; + configFile = pkgs.writeText "swanctl.conf" + ( (paramsToConf cfg.swanctl swanctlParams) + + (concatMapStrings (i: "\ninclude ${i}") cfg.includes)); swanctlParams = import ./swanctl-params.nix lib; in { options.services.strongswan-swanctl = { @@ -21,6 +24,13 @@ in { }; swanctl = paramsToOptions swanctlParams; + includes = mkOption { + type = types.listOf types.path; + default = []; + description = '' + Extra configuration files to include in the swanctl configuration. This can be used to provide secret values from outside the nix store. + ''; + }; }; config = mkIf cfg.enable { @@ -31,8 +41,7 @@ in { } ]; - environment.etc."swanctl/swanctl.conf".text = - paramsToConf cfg.swanctl swanctlParams; + environment.etc."swanctl/swanctl.conf".source = configFile; # The swanctl command complains when the following directories don't exist: # See: https://wiki.strongswan.org/projects/strongswan/wiki/Swanctldirectory diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 81bd36cf0e345..74de3fd1b77e8 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -390,6 +390,7 @@ in { installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {}); invidious = handleTest ./invidious.nix {}; livebook-service = handleTest ./livebook-service.nix {}; + pyload = handleTest ./pyload.nix {}; oci-containers = handleTestOn ["aarch64-linux" "x86_64-linux"] ./oci-containers.nix {}; odoo = handleTest ./odoo.nix {}; odoo15 = handleTest ./odoo.nix { package = pkgs.odoo15; }; diff --git a/nixos/tests/pyload.nix b/nixos/tests/pyload.nix new file mode 100644 index 0000000000000..f913e822b2ff3 --- /dev/null +++ b/nixos/tests/pyload.nix @@ -0,0 +1,33 @@ +import ./make-test-python.nix ({ lib, ... }: { + name = "pyload"; + meta.maintainers = with lib.maintainers; [ ambroisie ]; + + nodes = { + machine = { ... }: { + services.pyload = { + enable = true; + + listenAddress = "0.0.0.0"; + port = 9876; + }; + + networking.firewall.allowedTCPPorts = [ 9876 ]; + }; + + client = { }; + }; + + testScript = '' + start_all() + + machine.wait_for_unit("pyload.service") + + with subtest("Web interface accessible locally"): + machine.wait_until_succeeds("curl -fs localhost:9876") + + client.wait_for_unit("network.target") + + with subtest("Web interface accessible from a different machine"): + client.wait_until_succeeds("curl -fs machine:9876") + ''; +}) diff --git a/pkgs/applications/networking/instant-messengers/chatty/default.nix b/pkgs/applications/networking/instant-messengers/chatty/default.nix index 81c1f6656eaaf..9faecf6092722 100644 --- a/pkgs/applications/networking/instant-messengers/chatty/default.nix +++ b/pkgs/applications/networking/instant-messengers/chatty/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { pname = "chatty"; - version = "0.8.0"; + version = "0.8.1"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { repo = "Chatty"; rev = "v${version}"; fetchSubmodules = true; - hash = "sha256-jyG6kubXTyHUw2F+MfjJiQ0us4PrbavF5PJS5Pg46Mw="; + hash = "sha256-5IkQnXAKl0duy/B6+z7PXYv5zxakxJCgQhWBw5wioWg="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/pyload-ng/declarative-default-user.patch b/pkgs/applications/networking/pyload-ng/declarative-default-user.patch new file mode 100644 index 0000000000000..3c3e6f4ba724a --- /dev/null +++ b/pkgs/applications/networking/pyload-ng/declarative-default-user.patch @@ -0,0 +1,15 @@ +diff --git a/src/pyload/core/__init__.py b/src/pyload/core/__init__.py +index 4324fc700..f7fcd66ec 100644 +--- a/src/pyload/core/__init__.py ++++ b/src/pyload/core/__init__.py +@@ -46,8 +46,8 @@ class Exit(Exception): + # improve external scripts + class Core: + LOCALE_DOMAIN = APPID +- DEFAULT_USERNAME = APPID +- DEFAULT_PASSWORD = APPID ++ DEFAULT_USERNAME = os.getenv("PYLOAD_DEFAULT_USERNAME", APPID) ++ DEFAULT_PASSWORD = os.getenv("PYLOAD_DEFAULT_PASSWORD", APPID) + DEFAULT_DATADIR = os.path.join( + os.getenv("APPDATA") or USERHOMEDIR, "pyLoad" if os.name == "nt" else ".pyload" + ) diff --git a/pkgs/applications/networking/pyload-ng/declarative-env-config.patch b/pkgs/applications/networking/pyload-ng/declarative-env-config.patch new file mode 100644 index 0000000000000..42f89ee485cb2 --- /dev/null +++ b/pkgs/applications/networking/pyload-ng/declarative-env-config.patch @@ -0,0 +1,18 @@ +diff --git a/src/pyload/core/__init__.py b/src/pyload/core/__init__.py +index 4324fc700..5d915a85e 100644 +--- a/src/pyload/core/__init__.py ++++ b/src/pyload/core/__init__.py +@@ -128,6 +128,13 @@ class Core: + else: + self._debug = max(0, int(debug)) + ++ # Allow setting any option declaratively, for the NixOS module ++ for env, value in os.environ.items(): ++ if not env.startswith("PYLOAD__"): ++ continue ++ section, opt = env.removeprefix("PYLOAD__").lower().split("__") ++ self.config.set(section, opt, value) ++ + # If no argument set, read storage dir from config file, + # otherwise save setting to config dir + if storagedir is None: diff --git a/pkgs/applications/networking/pyload-ng/default.nix b/pkgs/applications/networking/pyload-ng/default.nix index 4ead723f76e1d..1f638d43daef0 100644 --- a/pkgs/applications/networking/pyload-ng/default.nix +++ b/pkgs/applications/networking/pyload-ng/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchPypi, python3 }: +{ lib, fetchPypi, nixosTests, python3 }: python3.pkgs.buildPythonApplication rec { version = "0.5.0b3.dev75"; @@ -10,6 +10,14 @@ python3.pkgs.buildPythonApplication rec { hash = "sha256-1lPIKkZESonDaVCnac0iUu/gCqXVDBhNZrk5S0eC6F0="; }; + patches = [ + # Makes it possible to change the default username/password in the module + ./declarative-default-user.patch + # Makes it possible to change the configuration through environment variables + # in the NixOS module (aimed mostly at listen address/port) + ./declarative-env-config.patch + ]; + postPatch = '' # relax version bounds sed -i 's/\([A-z0-9]*\)~=.*$/\1/' setup.cfg @@ -35,14 +43,20 @@ python3.pkgs.buildPythonApplication rec { setuptools ]; - passthru.optional-dependencies = { - plugins = with python3.pkgs; [ - beautifulsoup4 # for some plugins - colorlog # colorful console logging - pillow # for some CAPTCHA plugin - send2trash # send some files to trash instead of deleting them - slixmpp # XMPP plugin - ]; + passthru = { + optional-dependencies = { + plugins = with python3.pkgs; [ + beautifulsoup4 # for some plugins + colorlog # colorful console logging + pillow # for some CAPTCHA plugin + send2trash # send some files to trash instead of deleting them + slixmpp # XMPP plugin + ]; + }; + + tests = { + inherit (nixosTests) pyload; + }; }; meta = with lib; { diff --git a/pkgs/applications/terminal-emulators/wezterm/Cargo.lock b/pkgs/applications/terminal-emulators/wezterm/Cargo.lock index 46f727aba4bc7..cbf0309488160 100644 --- a/pkgs/applications/terminal-emulators/wezterm/Cargo.lock +++ b/pkgs/applications/terminal-emulators/wezterm/Cargo.lock @@ -261,9 +261,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb41eb19024a91746eba0773aa5e16036045bbf45733766661099e182ea6a744" +checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65" dependencies = [ "async-lock 3.3.0", "cfg-if", @@ -343,7 +343,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "async-io 2.3.0", + "async-io 2.3.1", "async-lock 2.8.0", "atomic-waker", "cfg-if", @@ -551,7 +551,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" dependencies = [ "memchr", - "regex-automata 0.4.4", + "regex-automata 0.4.5", "serde", ] @@ -563,9 +563,9 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "bytemuck" -version = "1.14.0" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +checksum = "ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9" dependencies = [ "bytemuck_derive", ] @@ -659,9 +659,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.32" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41daef31d7a747c5c847246f36de49ced6f7403b4cdabc807a97b5cc184cda7a" +checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" dependencies = [ "android-tzdata", "iana-time-zone", @@ -673,9 +673,9 @@ dependencies = [ [[package]] name = "ciborium" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" dependencies = [ "ciborium-io", "ciborium-ll", @@ -684,18 +684,18 @@ dependencies = [ [[package]] name = "ciborium-io" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" [[package]] name = "ciborium-ll" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" dependencies = [ "ciborium-io", - "half 1.8.2", + "half 2.3.1", ] [[package]] @@ -963,7 +963,7 @@ dependencies = [ "colorgrad", "dirs-next", "enum-display-derive", - "env_logger 0.11.0", + "env_logger 0.11.1", "hostname", "lazy_static", "libc", @@ -1600,9 +1600,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eeb342678d785662fd2514be38c459bb925f02b68dd2a3e0f21d7ef82d979dd" +checksum = "05e7cf40684ae96ade6232ed84582f40ce0a66efcd43a5117aef610534f8e0b8" dependencies = [ "anstream", "anstyle", @@ -2193,7 +2193,7 @@ dependencies = [ "aho-corasick", "bstr 1.9.0", "log", - "regex-automata 0.4.4", + "regex-automata 0.4.5", "regex-syntax", ] @@ -2319,7 +2319,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.1.0", + "indexmap 2.2.1", "slab", "tokio", "tokio-util", @@ -2623,7 +2623,7 @@ dependencies = [ "globset", "log", "memchr", - "regex-automata 0.4.4", + "regex-automata 0.4.5", "same-file", "walkdir", "winapi-util", @@ -2660,9 +2660,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "433de089bd45971eecf4668ee0ee8f4cec17db4f8bd8f7bc3197a6ce37aa7d9b" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -3050,9 +3050,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.14" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "295c17e837573c8c821dbaeb3cceb3d745ad082f7572191409e69cbc1b3fd050" +checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" dependencies = [ "cc", "libc", @@ -3152,9 +3152,9 @@ dependencies = [ [[package]] name = "luajit-src" -version = "210.5.4+c525bcb" +version = "210.5.5+f2336c4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a10ab4ed12d22cb50ef43ece4f6c5ca594b2d2480019e87facfd422225a9908" +checksum = "d8bcba9790f4e3b1c1467d75cdd011a63bbe6bc75da95af5d2cb4e3631f939c4" dependencies = [ "cc", "which", @@ -3356,9 +3356,9 @@ dependencies = [ [[package]] name = "mlua" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069264935e816c85884b99e88c8b408d6d92e40ae8760f726c983526a53546b5" +checksum = "1d3561f79659ff3afad7b25e2bf2ec21507fe601ebecb7f81088669ec4bfd51e" dependencies = [ "bstr 1.9.0", "futures-util", @@ -3370,9 +3370,9 @@ dependencies = [ [[package]] name = "mlua-sys" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4655631a02e3739d014951291ecfa08db49c4da3f7f8c6f3931ed236af5dd78e" +checksum = "2847b42764435201d8cbee1f517edb79c4cca4181877b90047587c89e1b7bce4" dependencies = [ "cc", "cfg-if", @@ -3461,7 +3461,7 @@ dependencies = [ "bitflags 2.4.2", "codespan-reporting", "hexf-parse", - "indexmap 2.1.0", + "indexmap 2.2.1", "log", "num-traits", "rustc-hash", @@ -4006,18 +4006,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", "quote", @@ -4060,7 +4060,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef" dependencies = [ "base64 0.21.7", - "indexmap 2.1.0", + "indexmap 2.2.1", "line-wrap", "quick-xml 0.31.0", "serde", @@ -4286,11 +4286,11 @@ dependencies = [ [[package]] name = "pulldown-cmark" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" +checksum = "80eb9f69aec5cd8828765a75f739383fbbe3e8b9d84370bde1cc90487700794a" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.2", "getopts", "memchr", "unicase", @@ -4467,7 +4467,7 @@ checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.4", + "regex-automata 0.4.5", "regex-syntax", ] @@ -4479,9 +4479,9 @@ checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" [[package]] name = "regex-automata" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" dependencies = [ "aho-corasick", "memchr", @@ -4766,9 +4766,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.195" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] @@ -4785,9 +4785,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.195" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ "proc-macro2", "quote", @@ -4796,9 +4796,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.111" +version = "1.0.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +checksum = "4d1bd37ce2324cf3bf85e5a25f96eb4baf0d5aa6eba43e7ae8958870c4ec48ed" dependencies = [ "itoa", "ryu", @@ -4871,7 +4871,7 @@ version = "0.9.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.1", "itoa", "ryu", "serde", @@ -5274,7 +5274,7 @@ dependencies = [ "anyhow", "color-funcs", "config", - "env_logger 0.11.0", + "env_logger 0.11.1", "futures", "lazy_static", "libflate", @@ -5435,7 +5435,7 @@ dependencies = [ "bitflags 2.4.2", "cassowary", "criterion 0.4.0", - "env_logger 0.11.0", + "env_logger 0.11.1", "fancy-regex", "filedescriptor", "finl_unicode", @@ -5741,7 +5741,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.1", "toml_datetime", "winnow", ] @@ -5752,7 +5752,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.1", "serde", "serde_spanned", "toml_datetime", @@ -6237,9 +6237,9 @@ dependencies = [ [[package]] name = "wezterm-bidi" -version = "0.2.2" +version = "0.2.3" dependencies = [ - "env_logger 0.11.0", + "env_logger 0.11.1", "k9 0.12.0", "log", "wezterm-dynamic", @@ -6297,7 +6297,7 @@ dependencies = [ [[package]] name = "wezterm-color-types" -version = "0.2.0" +version = "0.3.0" dependencies = [ "csscolorparser", "deltae", @@ -6317,7 +6317,7 @@ dependencies = [ [[package]] name = "wezterm-dynamic" -version = "0.1.0" +version = "0.2.0" dependencies = [ "log", "maplit", @@ -6349,7 +6349,7 @@ dependencies = [ "dwrote", "encoding_rs", "enum-display-derive", - "env_logger 0.11.0", + "env_logger 0.11.1", "euclid", "finl_unicode", "fontconfig", @@ -6396,7 +6396,7 @@ dependencies = [ "embed-resource", "emojis", "env-bootstrap", - "env_logger 0.11.0", + "env_logger 0.11.1", "euclid", "fastrand 2.0.1", "filedescriptor", @@ -6557,7 +6557,7 @@ dependencies = [ "camino", "clap 4.4.18", "dirs-next", - "env_logger 0.11.0", + "env_logger 0.11.1", "filedescriptor", "filenamegen", "gethostname", @@ -6588,7 +6588,7 @@ dependencies = [ "bitflags 1.3.2", "csscolorparser", "downcast-rs", - "env_logger 0.11.0", + "env_logger 0.11.1", "finl_unicode", "hex", "humansize", @@ -7142,9 +7142,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.34" +version = "0.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16" +checksum = "1931d78a9c73861da0134f453bb1f790ce49b2e30eba8410b4b79bac72b46a2d" dependencies = [ "memchr", ] diff --git a/pkgs/applications/terminal-emulators/wezterm/default.nix b/pkgs/applications/terminal-emulators/wezterm/default.nix index 810295c7f60db..d797410c17c0a 100644 --- a/pkgs/applications/terminal-emulators/wezterm/default.nix +++ b/pkgs/applications/terminal-emulators/wezterm/default.nix @@ -32,14 +32,14 @@ rustPlatform.buildRustPackage rec { pname = "wezterm"; - version = "20240127-113634-bbcac864"; + version = "20240128-202157-1e552d76"; src = fetchFromGitHub { owner = "wez"; repo = pname; rev = version; fetchSubmodules = true; - hash = "sha256-OjIwHRso6M05gS+thA9yukUDoDqHvHdEVshFL+ebC7c="; + hash = "sha256-ZmsWTtxW6/Sx2zvuX2aZSiFxoD4g29brby2cd2DCq0o="; }; postPatch = '' diff --git a/pkgs/applications/video/memento/default.nix b/pkgs/applications/video/memento/default.nix index f09b3a79794d1..cee74556eaabe 100644 --- a/pkgs/applications/video/memento/default.nix +++ b/pkgs/applications/video/memento/default.nix @@ -22,13 +22,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "memento"; - version = "1.2.1"; + version = "1.2.2"; src = fetchFromGitHub { owner = "ripose-jp"; repo = "Memento"; rev = "v${finalAttrs.version}"; - hash = "sha256-DUAr+twlIzyi+PnQYsTz9j9KcbzI0GhtC+f4nTekhs0="; + hash = "sha256-55VvT7pHN0/HqxM4vMDQDgUwkVmO/8aOEOye8jcFzgI="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/video/vdr/markad/default.nix b/pkgs/applications/video/vdr/markad/default.nix index a8ad7c6f3728c..c0672821558bb 100644 --- a/pkgs/applications/video/vdr/markad/default.nix +++ b/pkgs/applications/video/vdr/markad/default.nix @@ -19,12 +19,12 @@ }: stdenv.mkDerivation rec { pname = "vdr-markad"; - version = "3.4.5"; + version = "3.4.6"; src = fetchFromGitHub { repo = "vdr-plugin-markad"; owner = "kfb77"; - sha256 = "sha256-qg3Y449n0xPMQSEn8QwvFC1FA8/MfhY0KPHPHGbApbA="; + sha256 = "sha256-fixkalZAPz0iO1SmshsO0vYc2sksH2lrStsSOEcdZ1g="; rev = "V${version}"; }; diff --git a/pkgs/applications/virtualization/singularity/packages.nix b/pkgs/applications/virtualization/singularity/packages.nix index 50a8fc103ad13..3e0c6975c5ed4 100644 --- a/pkgs/applications/virtualization/singularity/packages.nix +++ b/pkgs/applications/virtualization/singularity/packages.nix @@ -38,20 +38,20 @@ let singularity = callPackage (import ./generic.nix rec { pname = "singularity-ce"; - version = "4.0.3"; + version = "4.1.0"; projectName = "singularity"; src = fetchFromGitHub { owner = "sylabs"; repo = "singularity"; rev = "refs/tags/v${version}"; - hash = "sha256-sT5nW/7xE2TT4TO9H7Y3CDf87LvwPbT1NjVQVK9yyVY="; + hash = "sha256-3l65rbMv+E/bqi2+zFbL2/94f/K6Ampo6p3gFL+0ZJk="; }; # Update by running # nix-prefetch -E "{ sha256 }: ((import ./. { }).singularity.override { vendorHash = sha256; }).goModules" # at the root directory of the Nixpkgs repository - vendorHash = "sha256-q7n1LymH5KGYHg73r30xryVWupzDheBp7Gpr3XZiZHI="; + vendorHash = "sha256-S4glteidPrC92z8zh0Uuciy0HhG9fx0kEAiNwB4F2vM="; # Do not build conmon and squashfuse from the Git submodule sources, # Use Nixpkgs provided version diff --git a/pkgs/by-name/dy/dynamodb-local/package.nix b/pkgs/by-name/dy/dynamodb-local/package.nix index d603d4377a829..2c9b2c0410914 100644 --- a/pkgs/by-name/dy/dynamodb-local/package.nix +++ b/pkgs/by-name/dy/dynamodb-local/package.nix @@ -1,9 +1,21 @@ { lib , stdenvNoCC , fetchurl -, jre +, jdk_headless +, jre_minimal , makeBinaryWrapper }: +let + jre = jre_minimal.override { + modules = [ + "java.logging" + "java.xml" + "java.desktop" + "java.management" + ]; + jdk = jdk_headless; + }; +in stdenvNoCC.mkDerivation (finalAttrs: { pname = "dynamodb-local"; version = "2023-12-14"; diff --git a/pkgs/by-name/na/narsil/package.nix b/pkgs/by-name/na/narsil/package.nix new file mode 100644 index 0000000000000..ac00cf4820552 --- /dev/null +++ b/pkgs/by-name/na/narsil/package.nix @@ -0,0 +1,51 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, ncurses +, enableSdl2 ? true +, SDL2 +, SDL2_image +, SDL2_sound +, SDL2_mixer +, SDL2_ttf +}: + +stdenv.mkDerivation rec { + pname = "narsil"; + version = "1.3.0-49-gc042b573a"; + + src = fetchFromGitHub { + owner = "NickMcConnell"; + repo = "NarSil"; + rev = version; + hash = "sha256-lVGG4mppsnDmjMFO8YWsLEJEhI3T+QO3z/pCebe0Ai8="; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ ncurses ] + ++ lib.optionals enableSdl2 [ + SDL2 + SDL2_image + SDL2_sound + SDL2_mixer + SDL2_ttf + ]; + + enableParallelBuilding = true; + + configureFlags = lib.optional enableSdl2 "--enable-sdl2"; + + installFlags = [ "bindir=$(out)/bin" ]; + + meta = with lib; { + homepage = "https://github.com/NickMcConnell/NarSil/"; + description = "Unofficial rewrite of Sil, a roguelike influenced by Angband"; + longDescription = '' + NarSil attempts to be an almost-faithful recreation of Sil 1.3.0, + but based on the codebase of modern Angband. + ''; + maintainers = [ maintainers.nanotwerp ]; + license = licenses.gpl2; + }; +} diff --git a/pkgs/development/libraries/libetpan/default.nix b/pkgs/development/libraries/libetpan/default.nix index 1f7f52c70ab56..767b53c9d277c 100644 --- a/pkgs/development/libraries/libetpan/default.nix +++ b/pkgs/development/libraries/libetpan/default.nix @@ -95,5 +95,6 @@ stdenv.mkDerivation rec { homepage = "https://www.etpan.org/libetpan.html"; license = licenses.bsd3; maintainers = with maintainers; [ oxzi ]; + platforms = platforms.unix; }; } diff --git a/pkgs/development/libraries/mailcore2/default.nix b/pkgs/development/libraries/mailcore2/default.nix index 77e7669c0e123..86b4a320b68f8 100644 --- a/pkgs/development/libraries/mailcore2/default.nix +++ b/pkgs/development/libraries/mailcore2/default.nix @@ -1,5 +1,6 @@ { stdenv, lib, fetchFromGitHub, cmake, libetpan, icu, cyrus_sasl, libctemplate , libuchardet, pkg-config, glib, html-tidy, libxml2, libuuid, openssl +, darwin }: stdenv.mkDerivation rec { @@ -16,8 +17,14 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ - libetpan icu cyrus_sasl libctemplate libuchardet glib - html-tidy libxml2 libuuid openssl + libetpan cyrus_sasl libctemplate libuchardet + html-tidy libxml2 openssl + ] ++ lib.optionals stdenv.isLinux [ + glib + icu + libuuid + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.Foundation ]; postPatch = '' @@ -28,9 +35,14 @@ stdenv.mkDerivation rec { --replace "/usr/include/libxml2" "${libxml2.dev}/include/libxml2" substituteInPlace src/core/basetypes/MCHTMLCleaner.cpp \ --replace buffio.h tidybuffio.h + substituteInPlace src/core/basetypes/MCString.cpp \ + --replace "xmlErrorPtr" "const xmlError *" + '' + lib.optionalString (!stdenv.isDarwin) '' + substituteInPlace src/core/basetypes/MCICUTypes.h \ + --replace "__CHAR16_TYPE__ UChar" "char16_t UChar" ''; - cmakeFlags = [ + cmakeFlags = lib.optionals (!stdenv.isDarwin) [ "-DBUILD_SHARED_LIBS=ON" ]; @@ -39,10 +51,10 @@ stdenv.mkDerivation rec { cp -r src/include $out mkdir $out/lib - cp src/libMailCore.so $out/lib + cp src/libMailCore.* $out/lib ''; - doCheck = true; + doCheck = !stdenv.isDarwin; checkPhase = '' ( cd unittest @@ -55,5 +67,6 @@ stdenv.mkDerivation rec { homepage = "http://libmailcore.com"; license = licenses.bsd3; maintainers = with maintainers; [ ]; + platforms = platforms.unix; }; } diff --git a/pkgs/development/python-modules/mkdocs-material/default.nix b/pkgs/development/python-modules/mkdocs-material/default.nix index e8df6bbc82537..317271a10d559 100644 --- a/pkgs/development/python-modules/mkdocs-material/default.nix +++ b/pkgs/development/python-modules/mkdocs-material/default.nix @@ -32,7 +32,7 @@ buildPythonPackage rec { pname = "mkdocs-material"; - version = "9.4.14"; + version = "9.5.6"; pyproject = true; disabled = pythonOlder "3.7"; @@ -41,7 +41,7 @@ buildPythonPackage rec { owner = "squidfunk"; repo = "mkdocs-material"; rev = "refs/tags/${version}"; - hash = "sha256-oP0DeSRgoLx6boEOa3if5BitGXmJ11DoUVZK16Sjlwg="; + hash = "sha256-t+kS/MZ6kfga+LPSBj0h+vkY/u/bd3iqRUyOHXfrwDU="; }; nativeBuildInputs = [ diff --git a/pkgs/development/tools/glslviewer/default.nix b/pkgs/development/tools/glslviewer/default.nix index 06016bec25b56..4be67a29e3999 100644 --- a/pkgs/development/tools/glslviewer/default.nix +++ b/pkgs/development/tools/glslviewer/default.nix @@ -17,6 +17,7 @@ stdenv.mkDerivation rec { postPatch = '' sed '1i#include <cstring>' -i src/tools/text.cpp # gcc12 + sed '8i#include <cstdint>' -i src/io/fs.cpp # gcc13 ''; nativeBuildInputs = [ pkg-config ensureNewerSourcesForZipFilesHook python3Packages.six ]; diff --git a/pkgs/misc/tmux-plugins/default.nix b/pkgs/misc/tmux-plugins/default.nix index d01499af26475..9e6bf49113429 100644 --- a/pkgs/misc/tmux-plugins/default.nix +++ b/pkgs/misc/tmux-plugins/default.nix @@ -534,6 +534,23 @@ in rec { }; }; + rose-pine = mkTmuxPlugin { + pluginName = "rose-pine"; + version = "unstable-2024-01-08"; + rtpFilePath = "rose-pine.tmux"; + src = fetchFromGitHub { + owner = "rose-pine"; + repo = "tmux"; + rev = "dd6d01338ac4afeb96542dcf24e4a7fe179b69e6"; + sha256 = "sha256-Tccb4VjdotOSw7flJV4N0H4557NxRhXiCecZBPU9ICQ="; + }; + meta = { + homepage = "https://github.com/rose-pine/tmux"; + description = "Rosé Pine theme for tmux"; + license = lib.licenses.mit; + }; + }; + sensible = mkTmuxPlugin { pluginName = "sensible"; version = "unstable-2017-09-05"; diff --git a/pkgs/servers/monitoring/telegraf/default.nix b/pkgs/servers/monitoring/telegraf/default.nix index 2a288e71ec87b..9aa14c96a2397 100644 --- a/pkgs/servers/monitoring/telegraf/default.nix +++ b/pkgs/servers/monitoring/telegraf/default.nix @@ -8,7 +8,7 @@ buildGoModule rec { pname = "telegraf"; - version = "1.29.2"; + version = "1.29.3"; subPackages = [ "cmd/telegraf" ]; @@ -16,10 +16,10 @@ buildGoModule rec { owner = "influxdata"; repo = "telegraf"; rev = "v${version}"; - hash = "sha256-Z2+G4H1O4e77V9jfW+REK4PGdJgoPz+JgLxX/WqBoaY="; + hash = "sha256-nYD3Mq3G1FpTs/Fmk9dcSYi9oHt3OhDPfQ7dgU9Yc7w="; }; - vendorHash = "sha256-mPw3KfQy9DRqv8E6zzYAbeUaLaNfiNPU77ic+JqqBuM="; + vendorHash = "sha256-dhP0eOf6JP/kbJV09kM4kwKl9jv3wC7AI1bEKyJUcso="; proxyVendor = true; ldflags = [ diff --git a/pkgs/tools/security/gpg-tui/default.nix b/pkgs/tools/security/gpg-tui/default.nix index 40869e8258027..64a2737845405 100644 --- a/pkgs/tools/security/gpg-tui/default.nix +++ b/pkgs/tools/security/gpg-tui/default.nix @@ -4,8 +4,6 @@ , fetchFromGitHub , gpgme , libgpg-error -, libxcb -, libxkbcommon , pkg-config , python3 , AppKit @@ -13,6 +11,7 @@ , libiconv , libobjc , libresolv +, x11Support ? true, libxcb, libxkbcommon }: rustPlatform.buildRustPackage rec { @@ -38,6 +37,7 @@ rustPlatform.buildRustPackage rec { buildInputs = [ gpgme libgpg-error + ] ++ lib.optionals x11Support [ libxcb libxkbcommon ] ++ lib.optionals stdenv.isDarwin [ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 27ed04a2c1350..b6e4f05d47569 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -40463,7 +40463,7 @@ with pkgs; loop = callPackage ../tools/misc/loop { }; mailcore2 = callPackage ../development/libraries/mailcore2 { - icu = icu58; + icu = icu71; }; mamba = callPackage ../applications/audio/mamba { }; |