From c1cb18cd9e20b4166e48a30b752e7e9e6f53303e Mon Sep 17 00:00:00 2001 From: PassiveLemon Date: Mon, 3 Jun 2024 13:10:24 -0400 Subject: [PATCH 01/17] wivrn: init at 0.19 --- pkgs/by-name/wi/wivrn/package.nix | 149 ++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 pkgs/by-name/wi/wivrn/package.nix diff --git a/pkgs/by-name/wi/wivrn/package.nix b/pkgs/by-name/wi/wivrn/package.nix new file mode 100644 index 000000000000..f795ec72b348 --- /dev/null +++ b/pkgs/by-name/wi/wivrn/package.nix @@ -0,0 +1,149 @@ +{ + config, + lib, + stdenv, + fetchFromGitHub, + fetchFromGitLab, + applyPatches, + autoAddDriverRunpath, + avahi, + boost, + cli11, + cmake, + cudaPackages ? { }, + cudaSupport ? config.cudaSupport, + eigen, + ffmpeg, + freetype, + git, + glm, + glslang, + harfbuzz, + libdrm, + libGL, + libva, + libpulseaudio, + libX11, + libXrandr, + nix-update-script, + nlohmann_json, + onnxruntime, + openxr-loader, + pipewire, + pkg-config, + python3, + shaderc, + spdlog, + systemd, + udev, + vulkan-headers, + vulkan-loader, + vulkan-tools, + x264, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "wivrn"; + version = "0.19"; + + src = fetchFromGitHub { + owner = "wivrn"; + repo = "wivrn"; + rev = "v${finalAttrs.version}"; + hash = "sha256-DYV+JUWjjhLZLq+4Hv7jxOyxDqQut/mU1X0ZFMoNkDI="; + }; + + monado = applyPatches { + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "monado"; + repo = "monado"; + rev = "bcbe19ddd795f182df42051e5495e9727db36c1c"; + hash = "sha256-sh5slHROcuC3Dgenu1+hm8U5lUOW48JUbiluYvc3NiQ="; + }; + + patches = [ + "${finalAttrs.src}/patches/monado/0001-c-multi-disable-dropping-of-old-frames.patch" + "${finalAttrs.src}/patches/monado/0002-ipc-server-Always-listen-to-stdin.patch" + "${finalAttrs.src}/patches/monado/0003-c-multi-Don-t-log-frame-time-diff.patch" + "${finalAttrs.src}/patches/monado/0005-distortion-images.patch" + "${finalAttrs.src}/patches/monado/0008-Use-mipmaps-for-distortion-shader.patch" + "${finalAttrs.src}/patches/monado/0009-convert-to-YCbCr-in-monado.patch" + ]; + }; + + strictDeps = true; + + postUnpack = '' + # Let's make sure our monado source revision matches what is used by WiVRn upstream + ourMonadoRev="${finalAttrs.monado.src.rev}" + theirMonadoRev=$(grep "GIT_TAG" ${finalAttrs.src.name}/CMakeLists.txt | awk '{print $2}') + if [ ! "$theirMonadoRev" == "$ourMonadoRev" ]; then + echo "Our Monado source revision doesn't match CMakeLists.txt." >&2 + echo " theirs: $theirMonadoRev" >&2 + echo " ours: $ourMonadoRev" >&2 + return 1 + fi + ''; + + nativeBuildInputs = [ + cmake + git + glslang + pkg-config + python3 + ] ++ lib.optionals cudaSupport [ autoAddDriverRunpath ]; + + buildInputs = [ + avahi + boost + cli11 + eigen + ffmpeg + freetype + glm + harfbuzz + libdrm + libGL + libva + libX11 + libXrandr + libpulseaudio + nlohmann_json + onnxruntime + openxr-loader + pipewire + shaderc + spdlog + systemd + udev + vulkan-headers + vulkan-loader + vulkan-tools + x264 + ] ++ lib.optionals cudaSupport [ cudaPackages.cudatoolkit ]; + + cmakeFlags = [ + (lib.cmakeBool "WIVRN_USE_VAAPI" true) + (lib.cmakeBool "WIVRN_USE_X264" true) + (lib.cmakeBool "WIVRN_USE_NVENC" cudaSupport) + (lib.cmakeBool "WIVRN_USE_SYSTEMD" true) + (lib.cmakeBool "WIVRN_USE_PIPEWIRE" true) + (lib.cmakeBool "WIVRN_USE_PULSEAUDIO" true) + (lib.cmakeBool "WIVRN_BUILD_CLIENT" false) + (lib.cmakeBool "WIVRN_OPENXR_INSTALL_ABSOLUTE_RUNTIME_PATH" true) + (lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true) + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_MONADO" "${finalAttrs.monado}") + ]; + + passthru.updateScript = nix-update-script { }; + + meta = with lib; { + description = "An OpenXR streaming application to a standalone headset"; + homepage = "https://github.com/Meumeu/WiVRn/"; + changelog = "https://github.com/Meumeu/WiVRn/releases/"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ passivelemon ]; + platforms = platforms.linux; + mainProgram = "wivrn-server"; + }; +}) From 6e9e75f7f22174291aeea4d465ed5a89f5619ec1 Mon Sep 17 00:00:00 2001 From: PassiveLemon Date: Mon, 3 Jun 2024 13:10:51 -0400 Subject: [PATCH 02/17] nixos/wivrn: init module --- .../manual/release-notes/rl-2405.section.md | 2 + nixos/modules/module-list.nix | 1 + nixos/modules/services/video/wivrn.nix | 226 ++++++++++++++++++ 3 files changed, 229 insertions(+) create mode 100644 nixos/modules/services/video/wivrn.nix diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md index 158257f20a7a..aee8b8072799 100644 --- a/nixos/doc/manual/release-notes/rl-2405.section.md +++ b/nixos/doc/manual/release-notes/rl-2405.section.md @@ -201,6 +201,8 @@ The pre-existing `services.ankisyncd` has been marked deprecated and will be dro - [watchdogd](https://troglobit.com/projects/watchdogd/), a system and process supervisor using watchdog timers. Available as [services.watchdogd](#opt-services.watchdogd.enable). +- [WiVRn](https://github.com/Meumeu/WiVRn), an OpenXR streaming application. Available as [services.wivrn](#opt-services.wivrn.enable). + - [Workout-tracker](https://github.com/jovandeginste/workout-tracker), a workout tracking web application for personal use. - [wyoming-satellite](https://github.com/rhasspy/wyoming-satellite), a voice assistant satellite for Home Assistant using the Wyoming protocol. Available as [services.wyoming.satellite](#opt-services.wyoming.satellite.enable). diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 5068a04c8d34..f965f988e31b 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1373,6 +1373,7 @@ ./services/video/mediamtx.nix ./services/video/unifi-video.nix ./services/video/v4l2-relayd.nix + ./services/video/wivrn.nix ./services/wayland/cage.nix ./services/wayland/hypridle.nix ./services/web-apps/akkoma.nix diff --git a/nixos/modules/services/video/wivrn.nix b/nixos/modules/services/video/wivrn.nix new file mode 100644 index 000000000000..f571832053ad --- /dev/null +++ b/nixos/modules/services/video/wivrn.nix @@ -0,0 +1,226 @@ +{ + config, + pkgs, + lib, + ... +}: +let + inherit (lib) + mkIf + mkEnableOption + mkPackageOption + mkOption + optionalString + optionalAttrs + isDerivation + recursiveUpdate + getExe + literalExpression + types + maintainers + ; + cfg = config.services.wivrn; + configFormat = pkgs.formats.json { }; + + # For the application option to work with systemd PATH, we find the store binary path of + # the package, concat all of the following strings, and then update the application attribute. + # Application can either be a package or a list that has a package as the first element. + applicationExists = builtins.hasAttr "application" cfg.config.json; + applicationListNotEmpty = ( + if builtins.isList cfg.config.json.application then + (builtins.length cfg.config.json.application) != 0 + else + true + ); + applicationCheck = applicationExists && applicationListNotEmpty; + + applicationBinary = ( + if builtins.isList cfg.config.json.application then + builtins.head cfg.config.json.application + else + cfg.config.json.application + ); + applicationStrings = builtins.tail cfg.config.json.application; + + applicationPath = mkIf applicationCheck applicationBinary; + + applicationConcat = ( + if builtins.isList cfg.config.json.application then + builtins.concatStringsSep " " ([ (getExe applicationBinary) ] ++ applicationStrings) + else + (getExe applicationBinary) + ); + applicationUpdate = recursiveUpdate cfg.config.json ( + optionalAttrs applicationCheck { application = applicationConcat; } + ); + configFile = configFormat.generate "config.json" applicationUpdate; +in +{ + options = { + services.wivrn = { + enable = mkEnableOption "WiVRn, an OpenXR streaming application"; + + package = mkPackageOption pkgs "wivrn" { }; + + openFirewall = mkEnableOption "the default ports in the firewall for the WiVRn server"; + + defaultRuntime = mkEnableOption '' + WiVRn Monado as the default OpenXR runtime on the system. + The config can be found at `/etc/xdg/openxr/1/active_runtime.json`. + + Note that applications can bypass this option by setting an active + runtime in a writable XDG_CONFIG_DIRS location like `~/.config` + ''; + + autoStart = mkEnableOption "starting the service by default"; + + monadoEnvironment = mkOption { + type = types.attrs; + description = "Environment variables to be passed to the Monado environment."; + default = { + XRT_COMPOSITOR_LOG = "debug"; + XRT_PRINT_OPTIONS = "on"; + IPC_EXIT_ON_DISCONNECT = "off"; + }; + }; + + extraPackages = mkOption { + type = types.listOf types.package; + description = "Packages to add to the wivrn-application service $PATH."; + default = [ ]; + example = literalExpression "[ pkgs.bash pkgs.procps ]"; + }; + + config = { + enable = mkEnableOption "configuration for WiVRn"; + json = mkOption { + type = configFormat.type; + description = '' + Configuration for WiVRn. The attributes are serialized to JSON in config.json. + + Note that the application option must be either a package or a + list with package as the first element. + + See https://github.com/Meumeu/WiVRn/blob/master/docs/configuration.md + ''; + default = { }; + example = literalExpression '' + { + scale = 0.8; + bitrate = 100000000; + encoders = [ + { + encoder = "nvenc"; + codec = "h264"; + width = 1.0; + height = 1.0; + offset_x = 0.0; + offset_y = 0.0; + } + ]; + application = [ pkgs.wlx-overlay-s ]; + tcp_only = true; + } + ''; + }; + }; + }; + }; + + config = mkIf cfg.enable { + assertions = [ + { + assertion = !applicationCheck || isDerivation applicationBinary; + message = "The application in WiVRn configuration is not a package. Please ensure that the application is a package or that a package is the first element in the list."; + } + ]; + + systemd.user = { + services = { + # The WiVRn server runs in a hardened service and starts the applications in a different service + wivrn = { + description = "WiVRn XR runtime service"; + environment = { + # Default options + # https://gitlab.freedesktop.org/monado/monado/-/blob/598080453545c6bf313829e5780ffb7dde9b79dc/src/xrt/targets/service/monado.in.service#L12 + XRT_COMPOSITOR_LOG = "debug"; + XRT_PRINT_OPTIONS = "on"; + IPC_EXIT_ON_DISCONNECT = "off"; + } // cfg.monadoEnvironment; + serviceConfig = { + ExecStart = ( + (getExe cfg.package) + " --systemd" + optionalString cfg.config.enable " -f ${configFile}" + ); + # Hardening options + CapabilityBoundingSet = [ "CAP_SYS_NICE" ]; + AmbientCapabilities = [ "CAP_SYS_NICE" ]; + LockPersonality = true; + NoNewPrivileges = true; + PrivateTmp = true; + ProtectClock = true; + ProtectControlGroups = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProtectSystem = "strict"; + RemoveIPC = true; + RestrictNamespaces = true; + RestrictSUIDSGID = true; + }; + wantedBy = mkIf cfg.autoStart [ "default.target" ]; + restartTriggers = [ + cfg.package + configFile + ]; + }; + wivrn-application = mkIf applicationCheck { + description = "WiVRn application service"; + requires = [ "wivrn.service" ]; + serviceConfig = { + ExecStart = ( + (getExe cfg.package) + " --application" + optionalString cfg.config.enable " -f ${configFile}" + ); + Restart = "on-failure"; + RestartSec = 0; + PrivateTmp = true; + }; + # We need to add the application to PATH so WiVRn can find it + path = [ applicationPath ] ++ cfg.extraPackages; + }; + }; + }; + + services = { + # WiVRn can be used with some wired headsets so we include xr-hardware + udev.packages = with pkgs; [ + android-udev-rules + xr-hardware + ]; + avahi = { + enable = true; + publish = { + enable = true; + userServices = true; + }; + }; + }; + + networking.firewall = mkIf cfg.openFirewall { + allowedTCPPorts = [ 9757 ]; + allowedUDPPorts = [ 9757 ]; + }; + + environment = { + systemPackages = [ + cfg.package + applicationPath + ]; + pathsToLink = [ "/share/openxr" ]; + etc."xdg/openxr/1/active_runtime.json" = mkIf cfg.defaultRuntime { + source = "${cfg.package}/share/openxr/1/openxr_wivrn.json"; + }; + }; + }; + meta.maintainers = with maintainers; [ passivelemon ]; +} From 2dd171d32108ea09ebbe861f3c4d6f692889c1cd Mon Sep 17 00:00:00 2001 From: scrufulufugus Date: Thu, 17 Oct 2024 15:24:18 -0400 Subject: [PATCH 03/17] maintainers: add smonson --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 73b917770384..48e5f2783a43 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -19997,6 +19997,12 @@ githubId = 7091399; keys = [ { fingerprint = "897E 6BE3 0345 B43D CADD 05B7 290F CF08 1AED B3EC"; } ]; }; + smonson = { + name = "Samuel Monson"; + email = "smonson@irbash.net"; + github = "sjmonson"; + githubId = 17662218; + }; smrehman = { name = "Syed Moiz Ur Rehman"; email = "smrehman@proton.me"; From 6652ec3ddbf1e621b5e8c3731c4ad32ded28fcb3 Mon Sep 17 00:00:00 2001 From: scrufulufugus Date: Thu, 17 Oct 2024 15:16:08 -0400 Subject: [PATCH 04/17] system76-power: 1.1.23 -> 1.2.1 --- pkgs/by-name/sy/system76-power/Cargo.lock | 1774 ++++++++++++++++++++ pkgs/by-name/sy/system76-power/package.nix | 13 +- 2 files changed, 1783 insertions(+), 4 deletions(-) create mode 100644 pkgs/by-name/sy/system76-power/Cargo.lock diff --git a/pkgs/by-name/sy/system76-power/Cargo.lock b/pkgs/by-name/sy/system76-power/Cargo.lock new file mode 100644 index 000000000000..82292ac66c79 --- /dev/null +++ b/pkgs/by-name/sy/system76-power/Cargo.lock @@ -0,0 +1,1774 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "anstream" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" + +[[package]] +name = "async-broadcast" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +dependencies = [ + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928" +dependencies = [ + "concurrent-queue", + "event-listener 5.3.0", + "event-listener-strategy 0.5.1", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand 2.0.2", + "futures-lite 2.3.0", + "slab", +] + +[[package]] +name = "async-fs" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" +dependencies = [ + "async-lock 3.3.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.3.0", + "parking", + "polling 3.7.0", + "rustix 0.38.34", + "slab", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + +[[package]] +name = "async-lock" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +dependencies = [ + "event-listener 4.0.3", + "event-listener-strategy 0.4.0", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.34", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "async-signal" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda" +dependencies = [ + "async-io 2.3.2", + "async-lock 3.3.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.34", + "signal-hook-registry", + "slab", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-task" +version = "4.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" + +[[package]] +name = "backtrace" +version = "0.3.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +dependencies = [ + "async-channel", + "async-lock 3.3.0", + "async-task", + "fastrand 2.0.2", + "futures-io", + "futures-lite 2.3.0", + "piper", + "tracing", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" + +[[package]] +name = "cc" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.1", +] + +[[package]] +name = "clap_derive" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "concat-in-place" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b80dba65d26e0c4b692ad0312b837f1177e8175031af57fd1de4f3bc36b430" + +[[package]] +name = "concurrent-queue" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "darling" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 2.0.60", +] + +[[package]] +name = "darling_macro" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_setters" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e8ef033054e131169b8f0f9a7af8f5533a9436fadf3c500ed547f730f07090d" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "enumflags2" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.3", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3" +dependencies = [ + "event-listener 5.3.0", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" + +[[package]] +name = "fern" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee" +dependencies = [ + "log", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +dependencies = [ + "fastrand 2.0.2", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hidapi" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "798154e4b6570af74899d71155fb0072d5b17e6aa12f39c8ef22c60fb8ec99e7" +dependencies = [ + "cc", + "libc", + "pkg-config", + "winapi", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "inotify" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" +dependencies = [ + "bitflags 1.3.2", + "futures-core", + "inotify-sys", + "libc", + "tokio", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "intel-pstate" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c22b01d00d25089087e403d1d2533cce061f90ca9cc460d0049be94a3e1d563" +dependencies = [ + "derive_setters", + "smart-default", + "thiserror", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "libc" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", +] + +[[package]] +name = "numtoa" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aa2c4e539b869820a2b82e1aef6ff40aa85e65decdd5185e83fb4b1249cd00f" + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +dependencies = [ + "atomic-waker", + "fastrand 2.0.2", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix 0.38.34", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "regex" +version = "1.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys 0.4.13", + "windows-sys 0.52.0", +] + +[[package]] +name = "ryu" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" + +[[package]] +name = "serde" +version = "1.0.199" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.199" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "serde_json" +version = "1.0.116" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smart-default" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "133659a15339456eeeb07572eb02a91c91e9815e9cbc89566944d2c8d3efdbf6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sysfs-class" +version = "0.1.3" +source = "git+https://github.com/pop-os/sysfs-class#ab63e7f638aadfaf896a02e53cf330343d331337" +dependencies = [ + "numtoa", +] + +[[package]] +name = "system76-power" +version = "1.2.1" +dependencies = [ + "anyhow", + "clap", + "concat-in-place", + "fern", + "futures-lite 2.3.0", + "hidapi", + "inotify", + "intel-pstate", + "libc", + "log", + "once_cell", + "serde", + "serde_json", + "sysfs-class", + "system76-power-zbus", + "thiserror", + "tokio", + "zbus", + "zbus_polkit", + "zvariant", +] + +[[package]] +name = "system76-power-zbus" +version = "1.2.1" +dependencies = [ + "serde", + "zbus", + "zvariant", +] + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand 2.0.2", + "rustix 0.38.34", + "windows-sys 0.52.0", +] + +[[package]] +name = "thiserror" +version = "1.0.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "tokio" +version = "1.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.6", + "tokio-macros", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset 0.9.1", + "tempfile", + "winapi", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "waker-fn" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "xdg-home" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "zbus" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "byteorder", + "derivative", + "enumflags2", + "event-listener 2.5.3", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix", + "once_cell", + "ordered-stream", + "rand", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tokio", + "tracing", + "uds_windows", + "winapi", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zbus_polkit" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07eb69d4b17d69f78632d4f9b03500f057e80764df8e17ed327f74ac67447813" +dependencies = [ + "enumflags2", + "serde", + "serde_repr", + "static_assertions", + "zbus", + "zvariant", +] + +[[package]] +name = "zvariant" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] diff --git a/pkgs/by-name/sy/system76-power/package.nix b/pkgs/by-name/sy/system76-power/package.nix index 850fac9f6c72..5220534d87e0 100644 --- a/pkgs/by-name/sy/system76-power/package.nix +++ b/pkgs/by-name/sy/system76-power/package.nix @@ -2,19 +2,24 @@ rustPlatform.buildRustPackage rec { pname = "system76-power"; - version = "1.1.23"; + version = "1.2.1"; src = fetchFromGitHub { owner = "pop-os"; repo = "system76-power"; rev = version; - sha256 = "sha256-RuYDG4eZE599oa04xUR+W5B3/IPOpQUss1x7hzoydUQ="; + sha256 = "sha256-kYDrSfpOuRigDX792w3hATXoxX6PWpYWXkxw9Q28P5s="; }; nativeBuildInputs = [ pkg-config ]; buildInputs = [ dbus libusb1 ]; - cargoHash = "sha256-Vps02ZRVmeOQ8jDFZJYAUb502MhqY+2YV2W1/9XGY+0="; + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "sysfs-class-0.1.3" = "sha256-ztfwfCRAkxUd/LLNG5fpVuFdgX+tCKL3F35qYJ2GDm8="; + }; + }; postInstall = '' install -D -m 0644 data/com.system76.PowerDaemon.conf $out/etc/dbus-1/system.d/com.system76.PowerDaemon.conf @@ -28,6 +33,6 @@ rustPlatform.buildRustPackage rec { homepage = "https://github.com/pop-os/system76-power"; license = licenses.gpl3Plus; platforms = [ "i686-linux" "x86_64-linux" ]; - maintainers = [ ]; + maintainers = [ maintainers.smonson ]; }; } From fc8ab329cc616798382d2a4c82603d97d83468f8 Mon Sep 17 00:00:00 2001 From: areif-dev Date: Fri, 18 Oct 2024 21:53:16 -0400 Subject: [PATCH 05/17] maintainers: add areif-dev --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 6cea23ca0c44..4cfb1c1fa109 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1708,6 +1708,12 @@ githubId = 718812; name = "Antoine R. Dumont"; }; + areif-dev = { + email = "aj@ajreifsnyder.com"; + github = "areif-dev"; + githubId = 53097078; + name = "AJ Reifsnyder"; + }; arezvov = { email = "alex@rezvov.ru"; github = "arezvov"; From b15f2f77f28a04c3f1a52590fce97734b3540f33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 18 Oct 2024 20:44:15 -0700 Subject: [PATCH 06/17] librewolf-unwrapped: 131.0.2-1 -> 131.0.3 --- .../networking/browsers/librewolf/librewolf.nix | 2 +- .../networking/browsers/librewolf/src.json | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/networking/browsers/librewolf/librewolf.nix b/pkgs/applications/networking/browsers/librewolf/librewolf.nix index 46e9b1f77dd2..9ca55de722c8 100644 --- a/pkgs/applications/networking/browsers/librewolf/librewolf.nix +++ b/pkgs/applications/networking/browsers/librewolf/librewolf.nix @@ -30,7 +30,7 @@ rec { cp ${source}/patches/pref-pane/librewolf.css browser/themes/shared/preferences cp ${source}/patches/pref-pane/librewolf.inc.xhtml browser/components/preferences cp ${source}/patches/pref-pane/librewolf.js browser/components/preferences - cat ${source}/patches/pref-pane/preferences.ftl >> browser/locales/en-US/browser/preferences/preferences.ftl + cat ${source}/browser/preferences/preferences.ftl >> browser/locales/en-US/browser/preferences/preferences.ftl ''; extraPrefsFiles = [ "${source}/settings/librewolf.cfg" ]; diff --git a/pkgs/applications/networking/browsers/librewolf/src.json b/pkgs/applications/networking/browsers/librewolf/src.json index fc7600f56fea..32941d8d58a2 100644 --- a/pkgs/applications/networking/browsers/librewolf/src.json +++ b/pkgs/applications/networking/browsers/librewolf/src.json @@ -1,11 +1,11 @@ { - "packageVersion": "131.0.2-1", + "packageVersion": "131.0.3-1", "source": { - "rev": "131.0.2-1", - "sha256": "1knx485kdjv8d0rn5ai1x1jp0403dvxz9m7lpim1y2d2ilyi26x7" + "rev": "131.0.3-1", + "sha256": "0ayl43nq3h9a3b4nl7sfmil43v0k3x1bmxl7c7ws8710dj2674rc" }, "firefox": { - "version": "131.0.2", - "sha512": "fb1a1179a8c62de975c93e1ac6f058cb5492e955bbb7ac2d4b83cdd14ba17bdb2450078bd6f626124b14542f3fda9514bea476aaa34ff4f5a2bee6b1625ec963" + "version": "131.0.3", + "sha512": "3aa96db839f7a45e34c43b5e7e3333e1100ca11545ad26a8e42987fbc72df5ae7ebebe7dfc8c4e856d2bb4676c0516914a07c001f6047799f314146a3329c0ce" } } From 9fa3379a6138433e9239b357b199d9d433c55521 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 18 Oct 2024 20:55:05 -0700 Subject: [PATCH 07/17] librewolf: remove dotlambda from maintainers --- pkgs/applications/networking/browsers/librewolf/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/networking/browsers/librewolf/default.nix b/pkgs/applications/networking/browsers/librewolf/default.nix index 04c253f7d4f1..cb83dcfab639 100644 --- a/pkgs/applications/networking/browsers/librewolf/default.nix +++ b/pkgs/applications/networking/browsers/librewolf/default.nix @@ -17,7 +17,7 @@ in meta = { description = "Fork of Firefox, focused on privacy, security and freedom"; homepage = "https://librewolf.net/"; - maintainers = with lib.maintainers; [ dotlambda squalus ]; + maintainers = with lib.maintainers; [ squalus ]; platforms = lib.platforms.unix; badPlatforms = lib.platforms.darwin; broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory". From 7a020d9dc33053fc630a38b88cec81d870fb595f Mon Sep 17 00:00:00 2001 From: Moraxyc Date: Sun, 31 Mar 2024 17:24:35 +0800 Subject: [PATCH 08/17] cyrus-imapd: init at 3.10.0 Co-authored-by: jtbx Co-authored-by: drupol --- pkgs/by-name/cy/cyrus-imapd/package.nix | 204 ++++++++++++++++++++++++ test | 0 2 files changed, 204 insertions(+) create mode 100644 pkgs/by-name/cy/cyrus-imapd/package.nix create mode 100644 test diff --git a/pkgs/by-name/cy/cyrus-imapd/package.nix b/pkgs/by-name/cy/cyrus-imapd/package.nix new file mode 100644 index 000000000000..860eaf162016 --- /dev/null +++ b/pkgs/by-name/cy/cyrus-imapd/package.nix @@ -0,0 +1,204 @@ +{ + # build tools + stdenv, + autoreconfHook, + makeWrapper, + pkg-config, + + # check hook + versionCheckHook, + + # fetchers + fetchFromGitHub, + fetchpatch, + fetchurl, + + # build inputs + bison, + brotli, + coreutils, + cunit, + cyrus_sasl, + fig2dev, + flex, + icu, + jansson, + lib, + libbsd, + libcap, + libchardet, + libical, + libmysqlclient, + libsrs2, + libuuid, + libxml2, + nghttp2, + openssl, + pcre2, + perl, + postgresql, + rsync, + shapelib, + sqlite, + unixtools, + valgrind, + wslay, + xapian, + zlib, + + # feature flags + enableAutoCreate ? true, + enableBackup ? true, + enableCalalarmd ? true, + enableHttp ? true, + enableIdled ? true, + enableJMAP ? true, + enableMurder ? true, + enableNNTP ? false, + enableReplication ? true, + enableSrs ? true, + enableUnitTests ? true, + enableXapian ? true, + withLibcap ? true, + withMySQL ? false, + withOpenssl ? true, + withPgSQL ? false, + withSQLite ? true, + withZlib ? true, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "cyrus-imapd"; + version = "3.10.0"; + + src = fetchFromGitHub { + owner = "cyrusimap"; + repo = "cyrus-imapd"; + rev = "refs/tags/cyrus-imapd-${finalAttrs.version}"; + hash = "sha256-dyybRqmrVX+ERGpToS5JjGC6S/B0t967dLCWfeUrLKA="; + }; + + nativeBuildInputs = [ + makeWrapper + pkg-config + autoreconfHook + ]; + buildInputs = + [ + unixtools.xxd + pcre2 + flex + valgrind + fig2dev + perl + cyrus_sasl.dev + icu + jansson + libbsd + libuuid + openssl + zlib + bison + libsrs2 + ] + ++ lib.optionals stdenv.isLinux [ libcap ] + ++ lib.optionals (enableHttp || enableCalalarmd || enableJMAP) [ + brotli.dev + libical.dev + libxml2.dev + nghttp2.dev + shapelib + ] + ++ lib.optionals enableJMAP [ + libchardet + wslay + ] + ++ lib.optionals enableXapian [ + rsync + xapian + ] + ++ lib.optionals withMySQL [ libmysqlclient ] + ++ lib.optionals withPgSQL [ postgresql ] + ++ lib.optionals withSQLite [ sqlite ]; + + enableParallelBuilding = true; + + postPatch = + let + managesieveLibs = + [ + zlib + cyrus_sasl + ] + # Darwin doesn't have libuuid, try to build without it + ++ lib.optional (!stdenv.isDarwin) libuuid; + imapLibs = managesieveLibs ++ [ pcre2 ]; + mkLibsString = lib.strings.concatMapStringsSep " " (l: "-L${lib.getLib l}/lib"); + in + '' + patchShebangs cunit/*.pl + patchShebangs imap/promdatagen + patchShebangs tools/* + + echo ${finalAttrs.version} > VERSION + + substituteInPlace cunit/command.testc \ + --replace-fail /usr/bin/touch ${lib.getExe' coreutils "touch"} \ + --replace-fail /bin/echo ${lib.getExe' coreutils "echo"} \ + --replace-fail /usr/bin/tr ${lib.getExe' coreutils "tr"} \ + --replace-fail /bin/sh ${stdenv.shell} + + # fix for https://github.com/cyrusimap/cyrus-imapd/issues/3893 + substituteInPlace perl/imap/Makefile.PL.in \ + --replace-fail '"$LIB_SASL' '"${mkLibsString imapLibs} -lpcre2-posix $LIB_SASL' + substituteInPlace perl/sieve/managesieve/Makefile.PL.in \ + --replace-fail '"$LIB_SASL' '"${mkLibsString managesieveLibs} $LIB_SASL' + ''; + + postFixup = '' + wrapProgram $out/bin/cyradm --set PERL5LIB $(find $out/lib/perl5 -type d | tr "\\n" ":") + ''; + + configureFlags = [ + "--with-pidfile=/run/cyrus/master.pid" + (lib.enableFeature enableAutoCreate "autocreate") + (lib.enableFeature enableSrs "srs") + (lib.enableFeature enableIdled "idled") + (lib.enableFeature enableMurder "murder") + (lib.enableFeature enableBackup "backup") + (lib.enableFeature enableReplication "replication") + (lib.enableFeature enableUnitTests "unit-tests") + (lib.enableFeature (enableHttp || enableCalalarmd || enableJMAP) "http") + (lib.enableFeature enableJMAP "jmap") + (lib.enableFeature enableNNTP "nntp") + (lib.enableFeature enableXapian "xapian") + (lib.enableFeature enableCalalarmd "calalarmd") + (lib.withFeature withZlib "zlib=${zlib}") + (lib.withFeature withOpenssl "openssl") + (lib.withFeature withLibcap "libcap=${libcap}") + (lib.withFeature withMySQL "mysql") + (lib.withFeature withPgSQL "pgsql") + (lib.withFeature withSQLite "sqlite") + ]; + + checkInputs = [ cunit ]; + doCheck = true; + + versionCheckProgram = "${builtins.placeholder "out"}/libexec/master"; + versionCheckProgramArg = "-V"; + nativeInstallCheckInputs = [ + versionCheckHook + ]; + doInstallCheck = true; + + meta = { + homepage = "https://www.cyrusimap.org"; + description = "Email, contacts and calendar server"; + license = with lib.licenses; [ bsdOriginal ]; + mainProgram = "cyrus"; + maintainers = with lib.maintainers; [ + moraxyc + pingiun + ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/test b/test new file mode 100644 index 000000000000..e69de29bb2d1 From 8d90446d39dba6ce3f1f15af5430a4e2ce368f16 Mon Sep 17 00:00:00 2001 From: Moraxyc Date: Fri, 10 May 2024 10:29:44 +0800 Subject: [PATCH 09/17] nixos/cyrus-imap: init module Co-authored-by: jtbx Co-authored-by: pluiedev --- nixos/modules/module-list.nix | 1 + nixos/modules/services/mail/cyrus-imap.nix | 379 +++++++++++++++++++++ nixos/tests/all-tests.nix | 1 + nixos/tests/cyrus-imap.nix | 120 +++++++ test | 0 5 files changed, 501 insertions(+) create mode 100644 nixos/modules/services/mail/cyrus-imap.nix create mode 100644 nixos/tests/cyrus-imap.nix delete mode 100644 test diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 6a1fd5a45dc2..b97db06ebb3a 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -660,6 +660,7 @@ ./services/logging/ulogd.nix ./services/mail/automx2.nix ./services/mail/clamsmtp.nix + ./services/mail/cyrus-imap.nix ./services/mail/davmail.nix ./services/mail/dkimproxy-out.nix ./services/mail/dovecot.nix diff --git a/nixos/modules/services/mail/cyrus-imap.nix b/nixos/modules/services/mail/cyrus-imap.nix new file mode 100644 index 000000000000..f5ace168b045 --- /dev/null +++ b/nixos/modules/services/mail/cyrus-imap.nix @@ -0,0 +1,379 @@ +{ + pkgs, + lib, + config, + ... +}: +let + cfg = config.services.cyrus-imap; + cyrus-imapdPkg = pkgs.cyrus-imapd; + inherit (lib) + mkEnableOption + mkIf + mkOption + optionalAttrs + optionalString + generators + mapAttrsToList + ; + inherit (lib.strings) concatStringsSep; + inherit (lib.types) + attrsOf + submodule + listOf + oneOf + str + int + bool + nullOr + path + ; + + mkCyrusConfig = + settings: + let + mkCyrusOptionsList = + v: + mapAttrsToList ( + p: q: + if (q != null) then + if builtins.isInt q then + "${p}=${builtins.toString q}" + else + "${p}=\"${if builtins.isList q then (concatStringsSep " " q) else q}\"" + else + "" + ) v; + mkCyrusOptionsString = v: concatStringsSep " " (mkCyrusOptionsList v); + in + concatStringsSep "\n " (mapAttrsToList (n: v: n + " " + (mkCyrusOptionsString v)) settings); + + cyrusConfig = lib.concatStringsSep "\n" ( + lib.mapAttrsToList (n: v: '' + ${n} { + ${mkCyrusConfig v} + } + '') cfg.cyrusSettings + ); + + imapdConfig = + with generators; + toKeyValue { + mkKeyValue = mkKeyValueDefault { + mkValueString = + v: + if builtins.isBool v then + if v then "yes" else "no" + else if builtins.isList v then + concatStringsSep " " v + else + mkValueStringDefault { } v; + } ": "; + } cfg.imapdSettings; +in +{ + options.services.cyrus-imap = { + enable = mkEnableOption "Cyrus IMAP, an email, contacts and calendar server"; + debug = mkEnableOption "debugging messages for the Cyrus master process"; + + listenQueue = mkOption { + type = int; + default = 32; + description = '' + Socket listen queue backlog size. See listen(2) for more information about a backlog. + Default is 32, which may be increased if you have a very high connection rate. + ''; + }; + tmpDBDir = mkOption { + type = path; + default = "/run/cyrus/db"; + description = '' + Location where DB files are stored. + Databases in this directory are recreated upon startup, so ideally they should live in ephemeral storage for best performance. + ''; + }; + cyrusSettings = mkOption { + type = submodule { + freeformType = attrsOf ( + attrsOf (oneOf [ + bool + int + (listOf str) + ]) + ); + options = { + START = mkOption { + default = { + recover = { + cmd = [ + "ctl_cyrusdb" + "-r" + ]; + }; + }; + description = '' + This section lists the processes to run before any SERVICES are spawned. + This section is typically used to initialize databases. + Master itself will not startup until all tasks in START have completed, so put no blocking commands here. + ''; + }; + SERVICES = mkOption { + default = { + imap = { + cmd = [ "imapd" ]; + listen = "imap"; + prefork = 0; + }; + pop3 = { + cmd = [ "pop3d" ]; + listen = "pop3"; + prefork = 0; + }; + lmtpunix = { + cmd = [ "lmtpd" ]; + listen = "/run/cyrus/lmtp"; + prefork = 0; + }; + notify = { + cmd = [ "notifyd" ]; + listen = "/run/cyrus/notify"; + proto = "udp"; + prefork = 0; + }; + }; + description = '' + This section is the heart of the cyrus.conf file. It lists the processes that should be spawned to handle client connections made on certain Internet/UNIX sockets. + ''; + }; + EVENTS = mkOption { + default = { + tlsprune = { + cmd = [ "tls_prune" ]; + at = 400; + }; + delprune = { + cmd = [ + "cyr_expire" + "-E" + "3" + ]; + at = 400; + }; + deleteprune = { + cmd = [ + "cyr_expire" + "-E" + "4" + "-D" + "28" + ]; + at = 430; + }; + expungeprune = { + cmd = [ + "cyr_expire" + "-E" + "4" + "-X" + "28" + ]; + at = 445; + }; + checkpoint = { + cmd = [ + "ctl_cyrusdb" + "-c" + ]; + period = 30; + }; + }; + description = '' + This section lists processes that should be run at specific intervals, similar to cron jobs. This section is typically used to perform scheduled cleanup/maintenance. + ''; + }; + DAEMON = mkOption { + default = { }; + description = '' + This section lists long running daemons to start before any SERVICES are spawned. master(8) will ensure that these processes are running, restarting any process which dies or forks. All listed processes will be shutdown when master(8) is exiting. + ''; + }; + }; + }; + description = "Cyrus configuration settings. See [cyrus.conf(5)](https://www.cyrusimap.org/imap/reference/manpages/configs/cyrus.conf.html)"; + }; + imapdSettings = mkOption { + type = submodule { + freeformType = attrsOf (oneOf [ + str + int + bool + (listOf str) + ]); + options = { + configdirectory = mkOption { + type = path; + default = "/var/lib/cyrus"; + description = '' + The pathname of the IMAP configuration directory. + ''; + }; + lmtpsocket = mkOption { + type = path; + default = "/run/cyrus/lmtp"; + description = '' + Unix socket that lmtpd listens on, used by deliver(8). This should match the path specified in cyrus.conf(5). + ''; + }; + idlesocket = mkOption { + type = path; + default = "/run/cyrus/idle"; + description = '' + Unix socket that idled listens on. + ''; + }; + notifysocket = mkOption { + type = path; + default = "/run/cyrus/notify"; + description = '' + Unix domain socket that the mail notification daemon listens on. + ''; + }; + }; + }; + default = { + admins = [ "cyrus" ]; + allowplaintext = true; + defaultdomain = "localhost"; + defaultpartition = "default"; + duplicate_db_path = "/run/cyrus/db/deliver.db"; + hashimapspool = true; + httpmodules = [ + "carddav" + "caldav" + ]; + mboxname_lockpath = "/run/cyrus/lock"; + partition-default = "/var/lib/cyrus/storage"; + popminpoll = 1; + proc_path = "/run/cyrus/proc"; + ptscache_db_path = "/run/cyrus/db/ptscache.db"; + sasl_auto_transition = true; + sasl_pwcheck_method = [ "saslauthd" ]; + sievedir = "/var/lib/cyrus/sieve"; + statuscache_db_path = "/run/cyrus/db/statuscache.db"; + syslog_prefix = "cyrus"; + tls_client_ca_dir = "/etc/ssl/certs"; + tls_session_timeout = 1440; + tls_sessions_db_path = "/run/cyrus/db/tls_sessions.db"; + virtdomains = "on"; + }; + description = "IMAP configuration settings. See [imapd.conf(5)](https://www.cyrusimap.org/imap/reference/manpages/configs/imapd.conf.html)"; + }; + + user = mkOption { + type = nullOr str; + default = null; + description = "Cyrus IMAP user name. If this is not set, a user named `cyrus` will be created."; + }; + + group = mkOption { + type = nullOr str; + default = null; + description = "Cyrus IMAP group name. If this is not set, a group named `cyrus` will be created."; + }; + + imapdConfigFile = mkOption { + type = nullOr path; + default = null; + description = "Path to the configuration file used for cyrus-imap."; + apply = v: if v != null then v else pkgs.writeText "imapd.conf" imapdConfig; + }; + + cyrusConfigFile = mkOption { + type = nullOr path; + default = null; + description = "Path to the configuration file used for Cyrus."; + apply = v: if v != null then v else pkgs.writeText "cyrus.conf" cyrusConfig; + }; + + sslCACert = mkOption { + type = nullOr str; + default = null; + description = "File path which containing one or more CA certificates to use."; + }; + + sslServerCert = mkOption { + type = nullOr str; + default = null; + description = "File containing the global certificate used for all services (IMAP, POP3, LMTP, Sieve)"; + }; + + sslServerKey = mkOption { + type = nullOr str; + default = null; + description = "File containing the private key belonging to the global server certificate."; + }; + }; + + config = mkIf cfg.enable { + users.users.cyrus = optionalAttrs (cfg.user == null) { + description = "Cyrus IMAP user"; + isSystemUser = true; + group = optionalString (cfg.group == null) "cyrus"; + }; + + users.groups.cyrus = optionalAttrs (cfg.group == null) { }; + + environment.etc."imapd.conf".source = cfg.imapdConfigFile; + environment.etc."cyrus.conf".source = cfg.cyrusConfigFile; + + systemd.services.cyrus-imap = { + description = "Cyrus IMAP server"; + + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + restartTriggers = [ + "/etc/imapd.conf" + "/etc/cyrus.conf" + ]; + + startLimitIntervalSec = 60; + environment = { + CYRUS_VERBOSE = mkIf cfg.debug "1"; + LISTENQUEUE = builtins.toString cfg.listenQueue; + }; + serviceConfig = { + User = if (cfg.user == null) then "cyrus" else cfg.user; + Group = if (cfg.group == null) then "cyrus" else cfg.group; + Type = "simple"; + ExecStart = "${cyrus-imapdPkg}/libexec/master -l $LISTENQUEUE -C /etc/imapd.conf -M /etc/cyrus.conf -p /run/cyrus/master.pid -D"; + Restart = "on-failure"; + RestartSec = "1s"; + RuntimeDirectory = "cyrus"; + StateDirectory = "cyrus"; + + # Hardening + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; + PrivateTmp = true; + PrivateDevices = true; + ProtectSystem = "full"; + CapabilityBoundingSet = [ "~CAP_NET_ADMIN CAP_SYS_ADMIN CAP_SYS_BOOT CAP_SYS_MODULE" ]; + MemoryDenyWriteExecute = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectControlGroups = true; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + "AF_NETLINK" + "AF_UNIX" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + }; + preStart = '' + mkdir -p '${cfg.imapdSettings.configdirectory}/socket' '${cfg.tmpDBDir}' /run/cyrus/proc /run/cyrus/lock + ''; + }; + environment.systemPackages = [ cyrus-imapdPkg ]; + }; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 8ddcc779ea90..8b26b710dfad 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -245,6 +245,7 @@ in { curl-impersonate = handleTest ./curl-impersonate.nix {}; custom-ca = handleTest ./custom-ca.nix {}; croc = handleTest ./croc.nix {}; + cyrus-imap = runTest ./cyrus-imap.nix; darling = handleTest ./darling.nix {}; darling-dmg = runTest ./darling-dmg.nix; dae = handleTest ./dae.nix {}; diff --git a/nixos/tests/cyrus-imap.nix b/nixos/tests/cyrus-imap.nix new file mode 100644 index 000000000000..36145ed4748e --- /dev/null +++ b/nixos/tests/cyrus-imap.nix @@ -0,0 +1,120 @@ +{ lib, pkgs, ... }: +{ + name = "cyrus-imap"; + + meta = { + maintainers = with lib.maintainers; [ moraxyc ]; + }; + + nodes.machine = + { pkgs, ... }: + { + environment.systemPackages = with pkgs; [ + curl + sudo + ]; + services.saslauthd = { + enable = true; + config = '' + DESC="SASL Authentication Daemon" + NAME="saslauthd" + MECH_OPTIONS="" + THREADS=5 + START=yes + OPTIONS="-c -m /run/saslauthd" + ''; + }; + services.cyrus-imap = { + enable = true; + cyrusSettings = { + START = { + recover = { + cmd = [ + "ctl_cyrusdb" + "-r" + ]; + }; + }; + EVENTS = { + tlsprune = { + cmd = [ "tls_prune" ]; + at = 400; + }; + delprune = { + cmd = [ + "cyr_expire" + "-E" + "3" + ]; + at = 400; + }; + deleteprune = { + cmd = [ + "cyr_expire" + "-E" + "4" + "-D" + "28" + ]; + at = 430; + }; + expungeprune = { + cmd = [ + "cyr_expire" + "-E" + "4" + "-X" + "28" + ]; + at = 445; + }; + checkpoint = { + cmd = [ + "ctl_cyrusdb" + "-c" + ]; + period = 30; + }; + }; + SERVICES = { + http = { + cmd = [ "httpd" ]; + listen = "80"; + prefork = 0; + }; + imap = { + cmd = [ "imapd" ]; + listen = "143"; + prefork = 0; + }; + lmtpunix = { + cmd = [ "lmtpd" ]; + listen = "/run/cyrus/lmtp"; + prefork = 0; + }; + notify = { + cmd = [ "notifyd" ]; + listen = "/run/cyrus/notify"; + proto = "udp"; + prefork = 0; + }; + }; + }; + }; + }; + + testScript = '' + machine.wait_for_unit("saslauthd.service") + machine.wait_for_unit("cyrus-imap.service") + + machine.wait_for_open_port(80) + machine.wait_for_open_port(143) + + machine.succeed("echo 'secret' | ${lib.getExe' pkgs.cyrus_sasl.bin "saslpasswd2"} -p -c cyrus") + machine.succeed("chown cyrus /etc/sasldb2") + + machine.succeed("sudo -ucyrus curl --fail --max-time 10 imap://cyrus:secret@localhost:143") + machine.fail("curl --fail --max-time 10 imap://cyrus:wrongsecret@localhost:143") + machine.fail("curl --fail --max-time 10 -X PROPFIND -H 'Depth: 1' 'http://localhost/dav/addressbooks/user/cyrus@localhost/Default'") + ''; +} diff --git a/test b/test deleted file mode 100644 index e69de29bb2d1..000000000000 From cc1aeb4fbd903132ee2203c21b047d812439edf9 Mon Sep 17 00:00:00 2001 From: Moraxyc Date: Sat, 19 Oct 2024 21:54:20 +0800 Subject: [PATCH 10/17] nixos/docs: add services.cyrus-imap to rl-2411 --- nixos/doc/manual/release-notes/rl-2411.section.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index 371d338a3418..f3810842723d 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -73,6 +73,8 @@ ## New Modules {#sec-release-24.11-new-modules} +- [Cyrus IMAP](https://github.com/cyrusimap/cyrus-imapd), an email, contacts and calendar server. Available as [services.cyrus-imap](#opt-services.cyrus-imap.enable) service. + - [TaskChampion Sync-Server](https://github.com/GothenburgBitFactory/taskchampion-sync-server), a [Taskwarrior 3](https://taskwarrior.org/docs/upgrade-3/) sync server, replacing Taskwarrior 2's sync server named [`taskserver`](https://github.com/GothenburgBitFactory/taskserver). - [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr), proxy server to bypass Cloudflare protection. Available as [services.flaresolverr](#opt-services.flaresolverr.enable) service. From c5eb288cc7c4ef49f10edf4a393b61c8d57dbf18 Mon Sep 17 00:00:00 2001 From: Dennis Wuitz Date: Thu, 18 Jul 2024 22:21:57 +0200 Subject: [PATCH 11/17] python312Packages.triton-bin: 2.1.0 -> 3.1.0 --- .../development/python-modules/triton/bin.nix | 2 +- .../python-modules/triton/binary-hashes.nix | 31 +++++++++++-------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/pkgs/development/python-modules/triton/bin.nix b/pkgs/development/python-modules/triton/bin.nix index cbec8d0ceae6..fd6693b556d0 100644 --- a/pkgs/development/python-modules/triton/bin.nix +++ b/pkgs/development/python-modules/triton/bin.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "triton"; - version = "2.1.0"; + version = "3.1.0"; format = "wheel"; src = diff --git a/pkgs/development/python-modules/triton/binary-hashes.nix b/pkgs/development/python-modules/triton/binary-hashes.nix index 5c542ac187ee..0ce7ee85b1ca 100644 --- a/pkgs/development/python-modules/triton/binary-hashes.nix +++ b/pkgs/development/python-modules/triton/binary-hashes.nix @@ -7,26 +7,31 @@ version: builtins.getAttr version { - "2.1.0" = { + "3.1.0" = { x86_64-linux-38 = { - name = "triton-2.1.0-cp38-cp38-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/triton-2.1.0-0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl"; - hash = "sha256-Ofb7a9zLPpjzFS4/vqck8a6ufXSUErux+pxEHUdOuiY="; + name = "triton-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"; + url = "https://download.pytorch.org/whl/triton-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"; + hash = "sha256-ba2sp/wk3jThgCcbXPhkwWdVcC6fY6FvYt9xSoCZEmo="; }; x86_64-linux-39 = { - name = "triton-2.1.0-cp39-cp39-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/triton-2.1.0-0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl"; - hash = "sha256-IVROUiwCAFpibIrWPTm9/y8x1BBpWSkZ7ygelk7SZEY="; + name = "triton-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl "; + url = "https://download.pytorch.org/whl/triton-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"; + hash = "sha256-qvqaIM0Nn+5SPNRQSqcTGAeoZM133Pbv5+mB8YuMbBE="; }; x86_64-linux-310 = { - name = "triton-2.1.0-cp310-cp310-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/triton-2.1.0-0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl"; - hash = "sha256-ZkOZI6MNXUg5mwip6uEDcPbCYaXshkpkmDuuYxUtOdc="; + name = "triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl "; + url = "https://download.pytorch.org/whl/triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"; + hash = "sha256-aw3RCpJSY6u+n6N9zeZ6Xpsjg/wmn99Z9WV8rDjF0dg="; }; x86_64-linux-311 = { - name = "triton-2.1.0-cp311-cp311-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/triton-2.1.0-0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl"; - hash = "sha256-kZsGRT8AM+pSwT6veDPeDlfbMXjSPU4E+fxxxPLDK/g="; + name = "triton-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"; + url = "https://download.pytorch.org/whl/triton-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"; + hash = "sha256-DzT254hdG/Dqr3uodaXwzm88E7qY+VA2UcHm3GdX7Vw="; + }; + x86_64-linux-312 = { + name = "triton-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"; + url = "https://download.pytorch.org/whl/triton-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"; + hash = "sha256-yBgvQv2AgKfTnWZoFPo2xeMMwA6n7usaKYPbtMmaD9w="; }; }; } From 76c7c2dd88be617a8a9fdda78f2845eafbb40088 Mon Sep 17 00:00:00 2001 From: Tomo Date: Sat, 19 Oct 2024 06:56:32 +0000 Subject: [PATCH 12/17] nodePackages.shout: drop shout has been deprecated since 2016: https://github.com/erming/shout/commit/90a62c56af4412c6b0e0ae51fe84f3825f49e226 Also, move the top-level `shout` alias to `pkgs/top-level/aliases.nix`. Part of #229475 --- .../manual/release-notes/rl-2411.section.md | 4 + nixos/modules/misc/ids.nix | 2 +- nixos/modules/module-list.nix | 1 - nixos/modules/rename.nix | 1 + nixos/modules/services/networking/shout.nix | 115 -------- pkgs/development/node-packages/aliases.nix | 1 + .../node-packages/node-packages.json | 1 - .../node-packages/node-packages.nix | 247 ------------------ pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 - 10 files changed, 8 insertions(+), 367 deletions(-) delete mode 100644 nixos/modules/services/networking/shout.nix diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index 929017a5e550..4b5d70c03ab6 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -509,6 +509,10 @@ - `services.mautrix-meta` was updated to [0.4](https://github.com/mautrix/meta/releases/tag/v0.4.0). This release makes significant changes to the settings format. If you have custom settings you should migrate them to the new format. Unfortunately upstream provides little guidance for how to do this, but [the auto-migration code](https://github.com/mautrix/meta/blob/f5440b05aac125b4c95b1af85635a717cbc6dd0e/cmd/mautrix-meta/legacymigrate.go#L23) may serve as a useful reference. The NixOS module should warn you if you still have any old settings configured. +- The `nodePackages.shout` package has been removed because it was deprecated upstream in favor of `thelounge`. + The `shout` top-level attribute was an alias to this package. + The associated `services.shout` module has also been removed. + - The `indi-full` package no longer contains non-free drivers. To get the old collection of drivers use `indi-full-nonfree` or create your own collection of drivers by overriding indi-with-drivers. E.g.: `pkgs.indi-with-drivers.override {extraDrivers = with pkgs.indi-3rdparty; [indi-gphoto];}` diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index 8b0127dc29f7..ab3568c4d992 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -236,7 +236,7 @@ in riemanntools = 203; subsonic = 204; # riak = 205; # unused, remove 2022-07-22 - #shout = 206; # dynamically allocated as of 2021-09-18 + #shout = 206; # dynamically allocated as of 2021-09-18, module removed 2024-10-19 gateone = 207; namecoin = 208; #lxd = 210; # unused diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 6ac03cca94e9..54d9e8a104ea 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1204,7 +1204,6 @@ ./services/networking/shellhub-agent.nix ./services/networking/shorewall.nix ./services/networking/shorewall6.nix - ./services/networking/shout.nix ./services/networking/sing-box.nix ./services/networking/sitespeed-io.nix ./services/networking/skydns.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 762c3ddbae9a..9fdcf7c7281a 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -102,6 +102,7 @@ in (mkRemovedOptionModule [ "services" "railcar" ] "the corresponding package has been removed from nixpkgs") (mkRemovedOptionModule [ "services" "replay-sorcery" ] "the corresponding package has been removed from nixpkgs as it is unmaintained upstream. Consider using `gpu-screen-recorder` or `obs-studio` instead.") (mkRemovedOptionModule [ "services" "seeks" ] "") + (mkRemovedOptionModule [ "services" "shout" ] "shout was removed because it was deprecated upstream in favor of thelounge.") (mkRemovedOptionModule [ "services" "ssmtp" ] '' The ssmtp package and the corresponding module have been removed due to the program being unmaintained. The options `programs.msmtp.*` can be diff --git a/nixos/modules/services/networking/shout.nix b/nixos/modules/services/networking/shout.nix deleted file mode 100644 index 017b8590197a..000000000000 --- a/nixos/modules/services/networking/shout.nix +++ /dev/null @@ -1,115 +0,0 @@ -{ pkgs, lib, config, ... }: - -with lib; - -let - cfg = config.services.shout; - shoutHome = "/var/lib/shout"; - - defaultConfig = pkgs.runCommand "config.js" { preferLocalBuild = true; } '' - EDITOR=true ${pkgs.shout}/bin/shout config --home $PWD - mv config.js $out - ''; - - finalConfigFile = if (cfg.configFile != null) then cfg.configFile else '' - var _ = require('${pkgs.shout}/lib/node_modules/shout/node_modules/lodash') - - module.exports = _.merge( - {}, - require('${defaultConfig}'), - ${builtins.toJSON cfg.config} - ) - ''; - -in { - options.services.shout = { - enable = mkEnableOption "Shout web IRC client"; - - private = mkOption { - type = types.bool; - default = false; - description = '' - Make your shout instance private. You will need to configure user - accounts by adding entries in {file}`${shoutHome}/users`. - ''; - }; - - listenAddress = mkOption { - type = types.str; - default = "0.0.0.0"; - description = "IP interface to listen on for http connections."; - }; - - port = mkOption { - type = types.port; - default = 9000; - description = "TCP port to listen on for http connections."; - }; - - configFile = mkOption { - type = types.nullOr types.lines; - default = null; - description = '' - Contents of Shout's {file}`config.js` file. - - Used for backward compatibility, recommended way is now to use - the `config` option. - - Documentation: http://shout-irc.com/docs/server/configuration.html - ''; - }; - - config = mkOption { - default = {}; - type = types.attrs; - example = { - displayNetwork = false; - defaults = { - name = "Your Network"; - host = "localhost"; - port = 6697; - }; - }; - description = '' - Shout {file}`config.js` contents as attribute set (will be - converted to JSON to generate the configuration file). - - The options defined here will be merged to the default configuration file. - - Documentation: http://shout-irc.com/docs/server/configuration.html - ''; - }; - }; - - config = mkIf cfg.enable { - users.users.shout = { - isSystemUser = true; - group = "shout"; - description = "Shout daemon user"; - home = shoutHome; - createHome = true; - }; - users.groups.shout = {}; - - systemd.services.shout = { - description = "Shout web IRC client"; - wantedBy = [ "multi-user.target" ]; - wants = [ "network-online.target" ]; - after = [ "network-online.target" ]; - preStart = "ln -sf ${pkgs.writeText "config.js" finalConfigFile} ${shoutHome}/config.js"; - script = concatStringsSep " " [ - "${pkgs.shout}/bin/shout" - (if cfg.private then "--private" else "--public") - "--port" (toString cfg.port) - "--host" (toString cfg.listenAddress) - "--home" shoutHome - ]; - serviceConfig = { - User = "shout"; - ProtectHome = "true"; - ProtectSystem = "full"; - PrivateTmp = "true"; - }; - }; - }; -} diff --git a/pkgs/development/node-packages/aliases.nix b/pkgs/development/node-packages/aliases.nix index 648d045ffd05..c0ac63577954 100644 --- a/pkgs/development/node-packages/aliases.nix +++ b/pkgs/development/node-packages/aliases.nix @@ -158,6 +158,7 @@ mapAliases { inherit (pkgs) rtlcss; # added 2023-08-29 s3http = throw "s3http was removed because it was abandoned upstream"; # added 2023-08-18 inherit (pkgs) serverless; # Added 2023-11-29 + shout = throw "shout was removed because it was deprecated upstream in favor of thelounge."; # Added 2024-10-19 inherit (pkgs) snyk; # Added 2023-08-30 inherit (pkgs) sql-formatter; # added 2024-06-29 "@squoosh/cli" = throw "@squoosh/cli was removed because it was abandoned upstream"; # added 2023-09-02 diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json index ad85e2054447..446c0d4fe6cb 100644 --- a/pkgs/development/node-packages/node-packages.json +++ b/pkgs/development/node-packages/node-packages.json @@ -174,7 +174,6 @@ , "sass" , "semver" , "serve" -, "shout" , "sloc" , "smartdc" , "socket.io" diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix index 726b4bd7e1c5..0d5ce792d47b 100644 --- a/pkgs/development/node-packages/node-packages.nix +++ b/pkgs/development/node-packages/node-packages.nix @@ -79540,253 +79540,6 @@ in bypassCache = true; reconstructLock = true; }; - shout = nodeEnv.buildNodePackage { - name = "shout"; - packageName = "shout"; - version = "0.53.0"; - src = fetchurl { - url = "https://registry.npmjs.org/shout/-/shout-0.53.0.tgz"; - sha512 = "WX6Be8BtHxMskOZkxEx96cy7Qs+DTsasvmITJDa28OMkGQS59EuR7LPVq4BB1O5uvvjxvIi1rF1WqZwbF/PfKQ=="; - }; - dependencies = [ - sources."CSSselect-0.4.1" - sources."CSSwhat-0.4.7" - sources."accepts-1.3.8" - sources."after-0.8.1" - sources."ajv-6.12.6" - sources."array-flatten-1.1.1" - sources."arraybuffer.slice-0.0.6" - sources."asn1-0.2.6" - sources."assert-plus-1.0.0" - sources."asynckit-0.4.0" - sources."aws-sign2-0.7.0" - sources."aws4-1.13.2" - sources."base64-arraybuffer-0.1.2" - sources."base64id-0.1.0" - sources."bcrypt-nodejs-0.0.3" - sources."bcrypt-pbkdf-1.0.2" - sources."better-assert-1.0.2" - sources."blob-0.0.2" - sources."body-parser-1.20.3" - sources."bytes-3.1.2" - sources."call-bind-1.0.7" - sources."callsite-1.0.0" - sources."caseless-0.12.0" - sources."cheerio-0.17.0" - sources."combined-stream-1.0.8" - sources."commander-2.20.3" - sources."component-bind-1.0.0" - sources."component-emitter-1.1.2" - sources."component-inherit-0.0.3" - sources."content-disposition-0.5.4" - sources."content-type-1.0.5" - sources."cookie-0.6.0" - sources."cookie-signature-1.0.6" - sources."core-util-is-1.0.3" - sources."dashdash-1.14.1" - sources."debug-2.6.9" - sources."define-data-property-1.1.4" - sources."delayed-stream-1.0.0" - sources."depd-2.0.0" - sources."destroy-1.2.0" - (sources."dom-serializer-0.0.1" // { - dependencies = [ - sources."domelementtype-1.1.3" - ]; - }) - sources."domelementtype-1.3.1" - sources."domhandler-2.2.1" - sources."domutils-1.4.3" - sources."duplexer-0.1.2" - sources."ecc-jsbn-0.1.2" - sources."ee-first-1.1.1" - sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz" - sources."encodeurl-2.0.0" - (sources."engine.io-1.3.1" // { - dependencies = [ - sources."debug-0.6.0" - ]; - }) - (sources."engine.io-client-1.3.1" // { - dependencies = [ - sources."debug-0.7.4" - ]; - }) - sources."engine.io-parser-1.0.6" - sources."entities-1.1.2" - sources."es-define-property-1.0.0" - sources."es-errors-1.3.0" - sources."escape-html-1.0.3" - sources."etag-1.8.1" - sources."event-stream-3.3.5" - sources."express-4.21.0" - sources."extend-3.0.2" - sources."extsprintf-1.3.0" - sources."fast-deep-equal-3.1.3" - sources."fast-json-stable-stringify-2.1.0" - sources."finalhandler-1.3.1" - sources."forever-agent-0.6.1" - sources."form-data-2.3.3" - sources."forwarded-0.2.0" - sources."fresh-0.5.2" - sources."from-0.1.7" - sources."function-bind-1.1.2" - sources."get-intrinsic-1.2.4" - sources."getpass-0.1.7" - sources."global-https://github.com/component/global/archive/v2.0.1.tar.gz" - sources."gopd-1.0.1" - sources."har-schema-2.0.0" - sources."har-validator-5.1.5" - sources."has-binary-data-0.1.1" - sources."has-cors-1.0.3" - sources."has-property-descriptors-1.0.2" - sources."has-proto-1.0.3" - sources."has-symbols-1.0.3" - sources."hasown-2.0.2" - (sources."htmlparser2-3.7.3" // { - dependencies = [ - sources."domutils-1.5.1" - sources."entities-1.0.0" - ]; - }) - sources."http-errors-2.0.0" - sources."http-signature-1.2.0" - sources."iconv-lite-0.4.24" - sources."indexof-0.0.1" - sources."inherits-2.0.4" - sources."ipaddr.js-1.9.1" - sources."irc-replies-2.0.1" - sources."is-typedarray-1.0.0" - sources."isarray-0.0.1" - sources."isstream-0.1.2" - sources."jsbn-0.1.1" - sources."json-schema-0.4.0" - sources."json-schema-traverse-0.4.1" - sources."json-stringify-safe-5.0.1" - sources."json3-3.2.6" - sources."jsprim-1.4.2" - sources."linewise-0.0.3" - sources."lodash-2.4.2" - sources."map-stream-0.0.7" - sources."media-typer-0.3.0" - sources."merge-descriptors-1.0.3" - sources."methods-1.1.2" - sources."mime-1.6.0" - sources."mime-db-1.52.0" - sources."mime-types-2.1.35" - sources."minimist-1.2.8" - sources."mkdirp-0.5.6" - sources."moment-2.7.0" - sources."ms-2.0.0" - sources."mute-stream-0.0.8" - sources."nan-0.3.2" - sources."negotiator-0.6.3" - sources."oauth-sign-0.9.0" - sources."object-component-0.0.3" - sources."object-inspect-1.13.2" - sources."on-finished-2.4.1" - sources."options-0.0.6" - sources."parsejson-0.0.1" - sources."parseqs-0.0.2" - sources."parseuri-0.0.2" - sources."parseurl-1.3.3" - sources."path-to-regexp-0.1.10" - sources."pause-stream-0.0.11" - sources."performance-now-2.1.0" - sources."proxy-addr-2.0.7" - sources."psl-1.9.0" - sources."punycode-2.3.1" - sources."qs-6.13.0" - sources."range-parser-1.2.1" - sources."raw-body-2.5.2" - sources."read-1.0.7" - sources."readable-stream-1.1.14" - (sources."request-2.88.2" // { - dependencies = [ - sources."qs-6.5.3" - ]; - }) - sources."safe-buffer-5.2.1" - sources."safer-buffer-2.1.2" - (sources."send-0.19.0" // { - dependencies = [ - sources."encodeurl-1.0.2" - sources."ms-2.1.3" - ]; - }) - sources."serve-static-1.16.2" - sources."set-function-length-1.2.2" - sources."setprototypeof-1.2.0" - sources."side-channel-1.0.6" - sources."slate-irc-0.7.3" - (sources."slate-irc-parser-0.0.2" // { - dependencies = [ - sources."debug-0.7.4" - ]; - }) - (sources."socket.io-1.0.6" // { - dependencies = [ - sources."debug-0.7.4" - ]; - }) - (sources."socket.io-adapter-0.2.0" // { - dependencies = [ - sources."debug-0.7.4" - sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz" - sources."socket.io-parser-2.1.2" - ]; - }) - (sources."socket.io-client-1.0.6" // { - dependencies = [ - sources."debug-0.7.4" - ]; - }) - (sources."socket.io-parser-2.2.0" // { - dependencies = [ - sources."debug-0.7.4" - ]; - }) - sources."split-1.0.1" - sources."sshpk-1.18.0" - sources."statuses-2.0.1" - sources."stream-combiner-0.2.2" - sources."string_decoder-0.10.31" - sources."through-2.3.8" - sources."tinycolor-0.0.1" - sources."to-array-0.1.3" - sources."toidentifier-1.0.1" - sources."tough-cookie-2.5.0" - sources."tunnel-agent-0.6.0" - sources."tweetnacl-0.14.5" - sources."type-is-1.6.18" - sources."unpipe-1.0.0" - sources."uri-js-4.4.1" - sources."utf8-2.0.0" - sources."utils-merge-1.0.1" - sources."uuid-3.4.0" - sources."vary-1.1.2" - (sources."verror-1.10.0" // { - dependencies = [ - sources."core-util-is-1.0.2" - ]; - }) - (sources."ws-0.4.31" // { - dependencies = [ - sources."commander-0.6.1" - ]; - }) - sources."xmlhttprequest-https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz" - ]; - buildInputs = globalBuildInputs; - meta = { - description = "The self-hosted Web IRC client"; - homepage = "https://github.com/erming/shout#readme"; - license = "MIT"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; sloc = nodeEnv.buildNodePackage { name = "sloc"; packageName = "sloc"; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 87cec31134e5..e2c7787e0381 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1489,6 +1489,7 @@ mapAliases { inherit (libsForQt5.mauiPackages) shelf; # added 2022-05-17 shhgit = throw "shhgit is broken and is no longer maintained. See https://github.com/eth0izzle/shhgit#-shhgit-is-no-longer-maintained-"; # Added 2023-08-08 shipyard = jumppad; # Added 2023-06-06 + shout = nodePackages.shout; # Added unknown; moved 2024-10-19 signumone-ks = throw "signumone-ks has been removed from nixpkgs because the developers stopped offering the binaries"; # Added 2023-08-17 simplenote = throw "'simplenote' has been removed because it is no longer maintained and insecure"; # Added 2023-10-09 skk-dicts = throw "'skk-dicts' has been split into multiple packages under 'skkDictionaries'"; # Added 2023-11-08 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 76c09f725ab1..cefdfa0b311e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12175,8 +12175,6 @@ with pkgs; shotwell = callPackage ../applications/graphics/shotwell { }; - shout = nodePackages.shout; - shrikhand = callPackage ../data/fonts/shrikhand { }; shunit2 = callPackage ../tools/misc/shunit2 { }; From a1cba1a4a1fb971dba2ac3679cefa0e235da6c69 Mon Sep 17 00:00:00 2001 From: areif-dev Date: Fri, 18 Oct 2024 21:54:53 -0400 Subject: [PATCH 13/17] river-bsp-layout: init at 2.1.0 --- pkgs/by-name/ri/river-bsp-layout/package.nix | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 pkgs/by-name/ri/river-bsp-layout/package.nix diff --git a/pkgs/by-name/ri/river-bsp-layout/package.nix b/pkgs/by-name/ri/river-bsp-layout/package.nix new file mode 100644 index 000000000000..a5c64c60fe6a --- /dev/null +++ b/pkgs/by-name/ri/river-bsp-layout/package.nix @@ -0,0 +1,28 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, +}: + +rustPlatform.buildRustPackage rec { + pname = "river-bsp-layout"; + version = "2.1.0"; + + src = fetchFromGitHub { + owner = "areif-dev"; + repo = "river-bsp-layout"; + rev = "v${version}"; + hash = "sha256-LRVZPAS4V5PtrqyOkKUfrZuwLqPZbLoyjn2DPxCFE2o="; + }; + + cargoHash = "sha256-CtVyRwfIS8R48LUecKXoak+HHB5yNZ5RgguIWOhyFA8="; + + meta = { + homepage = "https://github.com/areif-dev/river-bsp-layout"; + description = "Binary space partition / grid layout manager for River WM"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ areif-dev ]; + mainProgram = "river-bsp-layout"; + platforms = lib.platforms.linux; + }; +} From 882ec7cbd959f82eb2be23f9e3a460d9f8fa926d Mon Sep 17 00:00:00 2001 From: Marcelo Giles Date: Sat, 19 Oct 2024 18:02:51 -0700 Subject: [PATCH 14/17] maintainers: add mrgiles --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index bf22ce202add..2451cfe3abf2 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -14537,6 +14537,12 @@ name = "Arthur Outhenin-Chalandre"; githubId = 3845213; }; + mrgiles = { + email = "marcelogiles@gmail.com"; + github = "mrgiles"; + githubId = 4009450; + name = "Marcelo Giles"; + }; mrityunjaygr8 = { email = "mrityunjaysaxena1996@gmail.com"; github = "mrityunjaygr8"; From e33713134923c0f0d593597cd76086c36f4facf4 Mon Sep 17 00:00:00 2001 From: Jared Baur Date: Sat, 19 Oct 2024 18:51:48 -0700 Subject: [PATCH 15/17] linux-firmware: fix build when cross-compiling Using `findutils` in such a way where `callPackage` cannot splice it to use the `buildPlatform`'s package-set breaks building `linux-firmware` when `buildPlatform` != `hostPlatform`. Since `findutils` is already included in all `stdenv.mkDerivation` calls, we can get rid of pulling in the different `findutils` and re-use the one that works on `buildPlatform`. --- pkgs/os-specific/linux/firmware/linux-firmware/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/firmware/linux-firmware/default.nix b/pkgs/os-specific/linux/firmware/linux-firmware/default.nix index a3fa3f511b19..a1e13be4febe 100644 --- a/pkgs/os-specific/linux/firmware/linux-firmware/default.nix +++ b/pkgs/os-specific/linux/firmware/linux-firmware/default.nix @@ -1,6 +1,5 @@ { stdenvNoCC , fetchzip -, findutils , lib , python3 , rdfind @@ -13,7 +12,7 @@ let # in a perfectly pristine tree, so we can fake just enough of git to run it. gitStub = writeShellScriptBin "git" '' if [ "$1" == "ls-files" ]; then - ${lib.getExe findutils} -type f -printf "%P\n" + find -type f -printf "%P\n" else echo "Git stub called with unexpected arguments $@" >&2 exit 1 From c19599e33de9a9efd59c8d0441e71883d92a0b58 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 20 Oct 2024 02:34:32 +0000 Subject: [PATCH 16/17] spacectl: 1.5.0 -> 1.6.0 --- pkgs/by-name/sp/spacectl/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sp/spacectl/package.nix b/pkgs/by-name/sp/spacectl/package.nix index 7fe0fc2bbf0a..2684a7708f15 100644 --- a/pkgs/by-name/sp/spacectl/package.nix +++ b/pkgs/by-name/sp/spacectl/package.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "spacectl"; - version = "1.5.0"; + version = "1.6.0"; src = fetchFromGitHub { owner = "spacelift-io"; repo = "spacectl"; rev = "v${version}"; - hash = "sha256-wEu7AmFn1782XTKKb7JxQWn/ZSHrQbuZ/SDldn6pUNo="; + hash = "sha256-pO+jYuCyP6YrU9vE3//O0EyTDXYQ1WSpFI/8WbneDCA="; }; vendorHash = "sha256-SYfXG6YM0Q2rCnoTM2tYvE17uBCD8yQiW/5DTCxMPWo="; From e72ffb739e048120772314100169d3033626e555 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 20 Oct 2024 03:13:36 +0000 Subject: [PATCH 17/17] python312Packages.eq3btsmart: 1.1.9 -> 1.2.0 --- pkgs/development/python-modules/eq3btsmart/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/eq3btsmart/default.nix b/pkgs/development/python-modules/eq3btsmart/default.nix index 5fc267fe2e21..908dc2ac979e 100644 --- a/pkgs/development/python-modules/eq3btsmart/default.nix +++ b/pkgs/development/python-modules/eq3btsmart/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "eq3btsmart"; - version = "1.1.9"; + version = "1.2.0"; pyproject = true; src = fetchFromGitHub { owner = "EuleMitKeule"; repo = "eq3btsmart"; rev = "refs/tags/${version}"; - hash = "sha256-7kJqPygX2Oc7fz31qZWrS1ZA+kANZr8vxOwarUzgp/M="; + hash = "sha256-Z3GfUTh3qp5ICJAYsCO6ufw/Jd5FDjOaQE9SaD3H0IU="; }; build-system = [ poetry-core ];