From eb329666ce2401a18e78c35e8986de4a73cd81bf Mon Sep 17 00:00:00 2001 From: Tom Hubrecht Date: Sun, 24 Sep 2023 13:03:23 +0200 Subject: [PATCH] feat(nix-patches): Switch to upstream version --- hive.nix | 11 +- nix-patches/241126.patch | 31 - nix-patches/246564.patch | 5628 ------------------------ nix-patches/248184.patch | 1235 ------ nix-patches/248310.patch | 914 ---- nix-patches/default.nix | 18 - npins/sources.json | 13 + patches/default.nix | 69 + {nix-patches => patches}/forgejo.patch | 4 +- 9 files changed, 92 insertions(+), 7831 deletions(-) delete mode 100644 nix-patches/241126.patch delete mode 100644 nix-patches/246564.patch delete mode 100644 nix-patches/248184.patch delete mode 100644 nix-patches/248310.patch delete mode 100644 nix-patches/default.nix create mode 100644 patches/default.nix rename {nix-patches => patches}/forgejo.patch (92%) diff --git a/hive.nix b/hive.nix index 2d23408..699f6a4 100644 --- a/hive.nix +++ b/hive.nix @@ -25,11 +25,16 @@ let }; mkNixpkgs = node: - let version = "nixos-${metadata.nodes.${node}.nixpkgs}"; in - (import sources.${version} { }).applyPatches { + let + version = "nixos-${metadata.nodes.${node}.nixpkgs}"; + pkgs = import sources.${version} { }; + in pkgs.applyPatches { name = "${version}-patched"; src = sources.${version}; - patches = (import ./nix-patches).${version} or [ ]; + patches = (import sources.nix-patches { + inherit pkgs; + patchFile = ./patches; + }).mkPatches version; }; mkNixpkgs' = node: import (mkNixpkgs node) { }; diff --git a/nix-patches/241126.patch b/nix-patches/241126.patch deleted file mode 100644 index 5496754..0000000 --- a/nix-patches/241126.patch +++ /dev/null @@ -1,31 +0,0 @@ -From d7e721f614aef3e6bd7f4dfb6c1526e00d257fad Mon Sep 17 00:00:00 2001 -From: Raito Bezarius -Date: Sun, 2 Jul 2023 17:03:53 +0200 -Subject: [PATCH] plausible: fix admin user password seed and SMTP passwords - -LoadCredential was misused as it is not building any environment variable, -it is the responsibility of our preStart to do it so -Plausible's script can pick it up. ---- - nixos/modules/services/web-apps/plausible.nix | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/nixos/modules/services/web-apps/plausible.nix b/nixos/modules/services/web-apps/plausible.nix -index 893dfa10acbc0..911daa53e6587 100644 ---- a/nixos/modules/services/web-apps/plausible.nix -+++ b/nixos/modules/services/web-apps/plausible.nix -@@ -238,9 +238,12 @@ in { - path = [ cfg.package ] - ++ optional cfg.database.postgres.setup config.services.postgresql.package; - script = '' -- export CONFIG_DIR=$CREDENTIALS_DIRECTORY -- - export RELEASE_COOKIE="$(< $CREDENTIALS_DIRECTORY/RELEASE_COOKIE )" -+ export ADMIN_USER_PWD="$(< $CREDENTIALS_DIRECTORY/ADMIN_USER_PWD )" -+ export SECRET_KEY_BASE="$(< $CREDENTIALS_DIRECTORY/SECRET_KEY_BASE )" -+ -+ ${lib.optionalString (cfg.mail.smtp.passwordFile != null) -+ ''export SMTP_USER_PWD="$(< $CREDENTIALS_DIRECTORY/SMTP_USER_PWD )"''} - - # setup - ${cfg.package}/createdb.sh diff --git a/nix-patches/246564.patch b/nix-patches/246564.patch deleted file mode 100644 index ae87f98..0000000 --- a/nix-patches/246564.patch +++ /dev/null @@ -1,5628 +0,0 @@ -From 184d15cc068def96972c88a4d4a80336fe13bc88 Mon Sep 17 00:00:00 2001 -From: Martin Weinelt -Date: Tue, 1 Aug 2023 12:56:10 +0200 -Subject: [PATCH] kanidm: 1.1.0-alpha.12 -> 1.1.0-beta.13 - -https://github.com/kanidm/kanidm/releases/tag/v1.1.0-beta.13 - -The kanidmd process now creates a unix socket, over which admin tasks -can be done, without having to shut kanidm down first. - -The kanidm_unixd process now wants access to /etc/shadow and /etc/group, -so it can rule out collisions with the host system. ---- - nixos/modules/services/security/kanidm.nix | 17 +- - nixos/tests/kanidm.nix | 9 +- - pkgs/servers/kanidm/Cargo.lock | 5427 -------------------- - pkgs/servers/kanidm/default.nix | 33 +- - 4 files changed, 29 insertions(+), 5457 deletions(-) - delete mode 100644 pkgs/servers/kanidm/Cargo.lock - -diff --git a/nixos/modules/services/security/kanidm.nix b/nixos/modules/services/security/kanidm.nix -index cea2a56bdcd1bd..6fb9f71a489e2d 100644 ---- a/nixos/modules/services/security/kanidm.nix -+++ b/nixos/modules/services/security/kanidm.nix -@@ -122,8 +122,8 @@ in - }; - log_level = lib.mkOption { - description = lib.mdDoc "Log level of the server."; -- default = "default"; -- type = lib.types.enum [ "default" "verbose" "perfbasic" "perffull" ]; -+ default = "info"; -+ type = lib.types.enum [ "info" "debug" "trace" ]; - }; - role = lib.mkOption { - description = lib.mdDoc "The role of this server. This affects the replication relationship and thereby available features."; -@@ -236,17 +236,23 @@ in - { - StateDirectory = "kanidm"; - StateDirectoryMode = "0700"; -+ RuntimeDirectory = "kanidmd"; - ExecStart = "${pkgs.kanidm}/bin/kanidmd server -c ${serverConfigFile}"; - User = "kanidm"; - Group = "kanidm"; - -+ BindPaths = [ -+ # To create the socket -+ "/run/kanidmd:/run/kanidmd" -+ ]; -+ - AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; - CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ]; - # This would otherwise override the CAP_NET_BIND_SERVICE capability. - PrivateUsers = lib.mkForce false; - # Port needs to be exposed to the host network - PrivateNetwork = lib.mkForce false; -- RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ]; -+ RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ]; - TemporaryFileSystem = "/:ro"; - } - ]; -@@ -273,6 +279,8 @@ in - "-/etc/static/kanidm" - "-/etc/ssl" - "-/etc/static/ssl" -+ "-/etc/passwd" -+ "-/etc/group" - ]; - BindPaths = [ - # To create the socket -@@ -327,6 +335,9 @@ in - - # These paths are hardcoded - environment.etc = lib.mkMerge [ -+ (lib.mkIf cfg.enableServer { -+ "kanidm/server.toml".source = serverConfigFile; -+ }) - (lib.mkIf options.services.kanidm.clientSettings.isDefined { - "kanidm/config".source = clientConfigFile; - }) -diff --git a/nixos/tests/kanidm.nix b/nixos/tests/kanidm.nix -index 673a65174dfee0..3f5bca397740ef 100644 ---- a/nixos/tests/kanidm.nix -+++ b/nixos/tests/kanidm.nix -@@ -67,9 +67,10 @@ import ./make-test-python.nix ({ pkgs, ... }: - '' - start_all() - server.wait_for_unit("kanidm.service") -+ client.wait_for_unit("network-online.target") - - with subtest("Test HTTP interface"): -- server.wait_until_succeeds("curl -sf https://${serverDomain} | grep Kanidm") -+ server.wait_until_succeeds("curl -Lsf https://${serverDomain} | grep Kanidm") - - with subtest("Test LDAP interface"): - server.succeed("ldapsearch -H ldaps://${serverDomain}:636 -b '${ldapBaseDN}' -x '(name=test)'") -@@ -80,15 +81,11 @@ import ./make-test-python.nix ({ pkgs, ... }: - client.succeed("kanidm logout") - - with subtest("Recover idm_admin account"): -- # Must stop the server for account recovery or else kanidmd fails with -- # "unable to lock kanidm exclusive lock at /var/lib/kanidm/kanidm.db.klock". -- server.succeed("systemctl stop kanidm") - idm_admin_password = server.succeed("su - kanidm -c 'kanidmd recover-account -c ${serverConfigFile} idm_admin 2>&1 | rg -o \'[A-Za-z0-9]{48}\' '").strip().removeprefix("'").removesuffix("'") -- server.succeed("systemctl start kanidm") - - with subtest("Test unixd connection"): - client.wait_for_unit("kanidm-unixd.service") -- # TODO: client.wait_for_file("/run/kanidm-unixd/sock") -+ client.wait_for_file("/run/kanidm-unixd/sock") - client.wait_until_succeeds("kanidm-unix status | grep working!") - - with subtest("Test user creation"): -diff --git a/pkgs/servers/kanidm/Cargo.lock b/pkgs/servers/kanidm/Cargo.lock -deleted file mode 100644 -index 8ffa5ae63ed992..00000000000000 ---- a/pkgs/servers/kanidm/Cargo.lock -+++ /dev/null -@@ -1,5427 +0,0 @@ --# This file is automatically @generated by Cargo. --# It is not intended for manual editing. --version = 3 -- --[[package]] --name = "adler" --version = "1.0.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -- --[[package]] --name = "aead" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" --dependencies = [ -- "generic-array 0.14.7", --] -- --[[package]] --name = "aes" --version = "0.6.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" --dependencies = [ -- "aes-soft", -- "aesni", -- "cipher", --] -- --[[package]] --name = "aes-gcm" --version = "0.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" --dependencies = [ -- "aead", -- "aes", -- "cipher", -- "ctr", -- "ghash", -- "subtle", --] -- --[[package]] --name = "aes-soft" --version = "0.6.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" --dependencies = [ -- "cipher", -- "opaque-debug 0.3.0", --] -- --[[package]] --name = "aesni" --version = "0.10.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" --dependencies = [ -- "cipher", -- "opaque-debug 0.3.0", --] -- --[[package]] --name = "ahash" --version = "0.7.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" --dependencies = [ -- "getrandom 0.2.9", -- "once_cell", -- "version_check", --] -- --[[package]] --name = "ahash" --version = "0.8.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" --dependencies = [ -- "cfg-if 1.0.0", -- "once_cell", -- "version_check", --] -- --[[package]] --name = "aho-corasick" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" --dependencies = [ -- "memchr", --] -- --[[package]] --name = "android_system_properties" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" --dependencies = [ -- "libc", --] -- --[[package]] --name = "anes" --version = "0.1.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" -- --[[package]] --name = "anyhow" --version = "1.0.71" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" -- --[[package]] --name = "anymap2" --version = "0.13.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c" -- --[[package]] --name = "arrayref" --version = "0.3.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" -- --[[package]] --name = "arrayvec" --version = "0.5.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" -- --[[package]] --name = "asn1-rs" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33" --dependencies = [ -- "asn1-rs-derive", -- "asn1-rs-impl", -- "displaydoc", -- "nom", -- "num-traits", -- "rusticata-macros", -- "thiserror", -- "time 0.3.21", --] -- --[[package]] --name = "asn1-rs-derive" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 1.0.109", -- "synstructure", --] -- --[[package]] --name = "asn1-rs-impl" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 1.0.109", --] -- --[[package]] --name = "async-channel" --version = "1.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" --dependencies = [ -- "concurrent-queue", -- "event-listener", -- "futures-core", --] -- --[[package]] --name = "async-compression" --version = "0.3.15" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" --dependencies = [ -- "flate2", -- "futures-core", -- "futures-io", -- "memchr", -- "pin-project-lite 0.2.9", --] -- --[[package]] --name = "async-compression" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5b0122885821398cc923ece939e24d1056a2384ee719432397fa9db87230ff11" --dependencies = [ -- "flate2", -- "futures-core", -- "memchr", -- "pin-project-lite 0.2.9", -- "tokio", --] -- --[[package]] --name = "async-dup" --version = "1.2.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7427a12b8dc09291528cfb1da2447059adb4a257388c2acd6497a79d55cf6f7c" --dependencies = [ -- "futures-io", -- "simple-mutex", --] -- --[[package]] --name = "async-executor" --version = "1.5.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" --dependencies = [ -- "async-lock", -- "async-task", -- "concurrent-queue", -- "fastrand", -- "futures-lite", -- "slab", --] -- --[[package]] --name = "async-global-executor" --version = "2.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" --dependencies = [ -- "async-channel", -- "async-executor", -- "async-io", -- "async-lock", -- "blocking", -- "futures-lite", -- "once_cell", --] -- --[[package]] --name = "async-h1" --version = "2.3.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8101020758a4fc3a7c326cb42aa99e9fa77cbfb76987c128ad956406fe1f70a7" --dependencies = [ -- "async-channel", -- "async-dup", -- "async-std", -- "futures-core", -- "http-types", -- "httparse", -- "log", -- "pin-project", --] -- --[[package]] --name = "async-io" --version = "1.13.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" --dependencies = [ -- "async-lock", -- "autocfg", -- "cfg-if 1.0.0", -- "concurrent-queue", -- "futures-lite", -- "log", -- "parking", -- "polling", -- "rustix", -- "slab", -- "socket2", -- "waker-fn", --] -- --[[package]] --name = "async-lock" --version = "2.7.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" --dependencies = [ -- "event-listener", --] -- --[[package]] --name = "async-process" --version = "1.7.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" --dependencies = [ -- "async-io", -- "async-lock", -- "autocfg", -- "blocking", -- "cfg-if 1.0.0", -- "event-listener", -- "futures-lite", -- "rustix", -- "signal-hook", -- "windows-sys 0.48.0", --] -- --[[package]] --name = "async-session" --version = "2.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "345022a2eed092cd105cc1b26fd61c341e100bd5fcbbd792df4baf31c2cc631f" --dependencies = [ -- "anyhow", -- "async-std", -- "async-trait", -- "base64 0.12.3", -- "bincode", -- "blake3", -- "chrono", -- "hmac 0.8.1", -- "kv-log-macro", -- "rand 0.7.3", -- "serde", -- "serde_json", -- "sha2 0.9.9", --] -- --[[package]] --name = "async-sse" --version = "4.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "53bba003996b8fd22245cd0c59b869ba764188ed435392cf2796d03b805ade10" --dependencies = [ -- "async-channel", -- "async-std", -- "http-types", -- "log", -- "memchr", -- "pin-project-lite 0.1.12", --] -- --[[package]] --name = "async-std" --version = "1.12.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" --dependencies = [ -- "async-channel", -- "async-global-executor", -- "async-io", -- "async-lock", -- "async-process", -- "crossbeam-utils", -- "futures-channel", -- "futures-core", -- "futures-io", -- "futures-lite", -- "gloo-timers", -- "kv-log-macro", -- "log", -- "memchr", -- "once_cell", -- "pin-project-lite 0.2.9", -- "pin-utils", -- "slab", -- "wasm-bindgen-futures", --] -- --[[package]] --name = "async-std-openssl" --version = "0.6.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "408a76b00fc49b11fe78f1f7a90557a3c887af1d4570fb33e15a70eb7e6b95ee" --dependencies = [ -- "async-dup", -- "async-std", -- "futures-util", -- "openssl", -- "openssl-sys", --] -- --[[package]] --name = "async-task" --version = "4.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" -- --[[package]] --name = "async-trait" --version = "0.1.68" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "atomic-waker" --version = "1.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" -- --[[package]] --name = "atty" --version = "0.2.14" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" --dependencies = [ -- "hermit-abi 0.1.19", -- "libc", -- "winapi", --] -- --[[package]] --name = "authenticator-ctap2-2021" --version = "0.3.2-dev.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d06c690e5e2800f70c0cf8773a9fe7680d66e719dae9b4cabedd13ef4885d056" --dependencies = [ -- "base64 0.13.1", -- "bitflags", -- "cfg-if 1.0.0", -- "core-foundation", -- "devd-rs", -- "libc", -- "libudev", -- "log", -- "memoffset 0.6.5", -- "nom", -- "openssl", -- "openssl-sys", -- "rand 0.8.5", -- "runloop", -- "serde", -- "serde_bytes", -- "serde_cbor", -- "serde_json", -- "sha2 0.10.6", -- "winapi", --] -- --[[package]] --name = "autocfg" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -- --[[package]] --name = "base-x" --version = "0.2.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" -- --[[package]] --name = "base32" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa" -- --[[package]] --name = "base64" --version = "0.12.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" -- --[[package]] --name = "base64" --version = "0.13.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" -- --[[package]] --name = "base64" --version = "0.21.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3f1e31e207a6b8fb791a38ea3105e6cb541f55e4d029902d3039a4ad07cc4105" -- --[[package]] --name = "base64urlsafedata" --version = "0.1.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "18b3d30abb74120a9d5267463b9e0045fdccc4dd152e7249d966612dc1721384" --dependencies = [ -- "base64 0.21.1", -- "serde", -- "serde_json", --] -- --[[package]] --name = "bincode" --version = "1.3.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" --dependencies = [ -- "serde", --] -- --[[package]] --name = "bit-set" --version = "0.5.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" --dependencies = [ -- "bit-vec", --] -- --[[package]] --name = "bit-vec" --version = "0.6.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" -- --[[package]] --name = "bitflags" --version = "1.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -- --[[package]] --name = "blake3" --version = "0.3.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" --dependencies = [ -- "arrayref", -- "arrayvec", -- "cc", -- "cfg-if 0.1.10", -- "constant_time_eq", -- "crypto-mac 0.8.0", -- "digest 0.9.0", --] -- --[[package]] --name = "block-buffer" --version = "0.7.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" --dependencies = [ -- "block-padding", -- "byte-tools", -- "byteorder", -- "generic-array 0.12.4", --] -- --[[package]] --name = "block-buffer" --version = "0.9.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" --dependencies = [ -- "generic-array 0.14.7", --] -- --[[package]] --name = "block-buffer" --version = "0.10.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" --dependencies = [ -- "generic-array 0.14.7", --] -- --[[package]] --name = "block-padding" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" --dependencies = [ -- "byte-tools", --] -- --[[package]] --name = "blocking" --version = "1.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" --dependencies = [ -- "async-channel", -- "async-lock", -- "async-task", -- "atomic-waker", -- "fastrand", -- "futures-lite", -- "log", --] -- --[[package]] --name = "boolinator" --version = "2.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cfa8873f51c92e232f9bac4065cddef41b714152812bfc5f7672ba16d6ef8cd9" -- --[[package]] --name = "bumpalo" --version = "3.13.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" -- --[[package]] --name = "byte-tools" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" -- --[[package]] --name = "bytemuck" --version = "1.13.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" -- --[[package]] --name = "byteorder" --version = "1.4.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" -- --[[package]] --name = "bytes" --version = "1.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" -- --[[package]] --name = "cast" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" -- --[[package]] --name = "cc" --version = "1.0.79" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" --dependencies = [ -- "jobserver", --] -- --[[package]] --name = "cfg-if" --version = "0.1.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" -- --[[package]] --name = "cfg-if" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -- --[[package]] --name = "checked_int_cast" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" -- --[[package]] --name = "chrono" --version = "0.4.24" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" --dependencies = [ -- "iana-time-zone", -- "js-sys", -- "num-integer", -- "num-traits", -- "serde", -- "time 0.1.45", -- "wasm-bindgen", -- "winapi", --] -- --[[package]] --name = "ciborium" --version = "0.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" --dependencies = [ -- "ciborium-io", -- "ciborium-ll", -- "serde", --] -- --[[package]] --name = "ciborium-io" --version = "0.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" -- --[[package]] --name = "ciborium-ll" --version = "0.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" --dependencies = [ -- "ciborium-io", -- "half", --] -- --[[package]] --name = "cipher" --version = "0.2.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" --dependencies = [ -- "generic-array 0.14.7", --] -- --[[package]] --name = "clap" --version = "3.2.25" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" --dependencies = [ -- "atty", -- "bitflags", -- "clap_derive", -- "clap_lex", -- "indexmap", -- "once_cell", -- "strsim", -- "termcolor", -- "textwrap", --] -- --[[package]] --name = "clap_complete" --version = "3.2.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3f7a2e0a962c45ce25afce14220bc24f9dade0a1787f185cecf96bfba7847cd8" --dependencies = [ -- "clap", --] -- --[[package]] --name = "clap_derive" --version = "3.2.25" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" --dependencies = [ -- "heck", -- "proc-macro-error", -- "proc-macro2", -- "quote", -- "syn 1.0.109", --] -- --[[package]] --name = "clap_lex" --version = "0.2.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" --dependencies = [ -- "os_str_bytes", --] -- --[[package]] --name = "color_quant" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" -- --[[package]] --name = "compact_jwt" --version = "0.2.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "51f9032b96a89dd79ffc5f62523d5351ebb40680cbdfc4029393b511b9e971aa" --dependencies = [ -- "base64 0.13.1", -- "base64urlsafedata", -- "hex", -- "openssl", -- "serde", -- "serde_json", -- "tracing", -- "url", -- "uuid", --] -- --[[package]] --name = "concread" --version = "0.4.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5d3d825450e64aece76bdcf5c6d115c454ebb284c892da3e4cc7ff1e62e72069" --dependencies = [ -- "ahash 0.7.6", -- "crossbeam-epoch", -- "crossbeam-queue", -- "crossbeam-utils", -- "lru 0.7.8", -- "smallvec", -- "sptr", -- "tokio", -- "tracing", --] -- --[[package]] --name = "concurrent-queue" --version = "2.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" --dependencies = [ -- "crossbeam-utils", --] -- --[[package]] --name = "console" --version = "0.15.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" --dependencies = [ -- "encode_unicode", -- "lazy_static", -- "libc", -- "unicode-width", -- "windows-sys 0.45.0", --] -- --[[package]] --name = "console_error_panic_hook" --version = "0.1.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" --dependencies = [ -- "cfg-if 1.0.0", -- "wasm-bindgen", --] -- --[[package]] --name = "const_fn" --version = "0.4.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" -- --[[package]] --name = "constant_time_eq" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" -- --[[package]] --name = "cookie" --version = "0.14.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951" --dependencies = [ -- "aes-gcm", -- "base64 0.13.1", -- "hkdf", -- "hmac 0.10.1", -- "percent-encoding", -- "rand 0.8.5", -- "sha2 0.9.9", -- "time 0.2.27", -- "version_check", --] -- --[[package]] --name = "cookie" --version = "0.16.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" --dependencies = [ -- "percent-encoding", -- "time 0.3.21", -- "version_check", --] -- --[[package]] --name = "cookie_store" --version = "0.16.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2e4b6aa369f41f5faa04bb80c9b1f4216ea81646ed6124d76ba5c49a7aafd9cd" --dependencies = [ -- "cookie 0.16.2", -- "idna 0.2.3", -- "log", -- "publicsuffix", -- "serde", -- "serde_json", -- "time 0.3.21", -- "url", --] -- --[[package]] --name = "core-foundation" --version = "0.9.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" --dependencies = [ -- "core-foundation-sys", -- "libc", --] -- --[[package]] --name = "core-foundation-sys" --version = "0.8.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" -- --[[package]] --name = "cpufeatures" --version = "0.2.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" --dependencies = [ -- "libc", --] -- --[[package]] --name = "cpuid-bool" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" -- --[[package]] --name = "crc32fast" --version = "1.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" --dependencies = [ -- "cfg-if 1.0.0", --] -- --[[package]] --name = "criterion" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" --dependencies = [ -- "anes", -- "atty", -- "cast", -- "ciborium", -- "clap", -- "criterion-plot", -- "itertools", -- "lazy_static", -- "num-traits", -- "oorandom", -- "plotters", -- "rayon", -- "regex", -- "serde", -- "serde_derive", -- "serde_json", -- "tinytemplate", -- "walkdir", --] -- --[[package]] --name = "criterion-plot" --version = "0.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" --dependencies = [ -- "cast", -- "itertools", --] -- --[[package]] --name = "cron" --version = "0.12.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1ff76b51e4c068c52bfd2866e1567bee7c567ae8f24ada09fd4307019e25eab7" --dependencies = [ -- "chrono", -- "nom", -- "once_cell", --] -- --[[package]] --name = "crossbeam" --version = "0.8.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" --dependencies = [ -- "cfg-if 1.0.0", -- "crossbeam-channel", -- "crossbeam-deque", -- "crossbeam-epoch", -- "crossbeam-queue", -- "crossbeam-utils", --] -- --[[package]] --name = "crossbeam-channel" --version = "0.5.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" --dependencies = [ -- "cfg-if 1.0.0", -- "crossbeam-utils", --] -- --[[package]] --name = "crossbeam-deque" --version = "0.8.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" --dependencies = [ -- "cfg-if 1.0.0", -- "crossbeam-epoch", -- "crossbeam-utils", --] -- --[[package]] --name = "crossbeam-epoch" --version = "0.9.14" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" --dependencies = [ -- "autocfg", -- "cfg-if 1.0.0", -- "crossbeam-utils", -- "memoffset 0.8.0", -- "scopeguard", --] -- --[[package]] --name = "crossbeam-queue" --version = "0.3.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" --dependencies = [ -- "cfg-if 1.0.0", -- "crossbeam-utils", --] -- --[[package]] --name = "crossbeam-utils" --version = "0.8.15" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" --dependencies = [ -- "cfg-if 1.0.0", --] -- --[[package]] --name = "crypto-common" --version = "0.1.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" --dependencies = [ -- "generic-array 0.14.7", -- "typenum", --] -- --[[package]] --name = "crypto-mac" --version = "0.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" --dependencies = [ -- "generic-array 0.14.7", -- "subtle", --] -- --[[package]] --name = "crypto-mac" --version = "0.10.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" --dependencies = [ -- "generic-array 0.14.7", -- "subtle", --] -- --[[package]] --name = "csv" --version = "1.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad" --dependencies = [ -- "csv-core", -- "itoa", -- "ryu", -- "serde", --] -- --[[package]] --name = "csv-core" --version = "0.1.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" --dependencies = [ -- "memchr", --] -- --[[package]] --name = "ctor" --version = "0.1.26" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" --dependencies = [ -- "quote", -- "syn 1.0.109", --] -- --[[package]] --name = "ctr" --version = "0.6.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" --dependencies = [ -- "cipher", --] -- --[[package]] --name = "daemon" --version = "1.1.0-alpha.12" --dependencies = [ -- "clap", -- "clap_complete", -- "fs2", -- "kanidm_lib_file_permissions", -- "kanidm_proto", -- "kanidmd_core", -- "profiles", -- "reqwest", -- "serde", -- "sketching", -- "tikv-jemallocator", -- "tokio", -- "toml", -- "users", -- "whoami", --] -- --[[package]] --name = "darling" --version = "0.14.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" --dependencies = [ -- "darling_core", -- "darling_macro", --] -- --[[package]] --name = "darling_core" --version = "0.14.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" --dependencies = [ -- "fnv", -- "ident_case", -- "proc-macro2", -- "quote", -- "strsim", -- "syn 1.0.109", --] -- --[[package]] --name = "darling_macro" --version = "0.14.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" --dependencies = [ -- "darling_core", -- "quote", -- "syn 1.0.109", --] -- --[[package]] --name = "data-encoding" --version = "2.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" -- --[[package]] --name = "der-parser" --version = "7.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82" --dependencies = [ -- "asn1-rs", -- "displaydoc", -- "nom", -- "num-bigint", -- "num-traits", -- "rusticata-macros", --] -- --[[package]] --name = "derive_builder" --version = "0.12.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" --dependencies = [ -- "derive_builder_macro", --] -- --[[package]] --name = "derive_builder_core" --version = "0.12.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" --dependencies = [ -- "darling", -- "proc-macro2", -- "quote", -- "syn 1.0.109", --] -- --[[package]] --name = "derive_builder_macro" --version = "0.12.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" --dependencies = [ -- "derive_builder_core", -- "syn 1.0.109", --] -- --[[package]] --name = "devd-rs" --version = "0.3.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9313f104b590510b46fc01c0a324fc76505c13871454d3c48490468d04c8d395" --dependencies = [ -- "libc", -- "nom", --] -- --[[package]] --name = "dialoguer" --version = "0.10.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "59c6f2989294b9a498d3ad5491a79c6deb604617378e1cdc4bfc1c1361fe2f87" --dependencies = [ -- "console", -- "shell-words", -- "tempfile", -- "zeroize", --] -- --[[package]] --name = "digest" --version = "0.8.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" --dependencies = [ -- "generic-array 0.12.4", --] -- --[[package]] --name = "digest" --version = "0.9.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" --dependencies = [ -- "generic-array 0.14.7", --] -- --[[package]] --name = "digest" --version = "0.10.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" --dependencies = [ -- "block-buffer 0.10.4", -- "crypto-common", --] -- --[[package]] --name = "dirs" --version = "4.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" --dependencies = [ -- "dirs-sys", --] -- --[[package]] --name = "dirs-sys" --version = "0.3.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" --dependencies = [ -- "libc", -- "redox_users", -- "winapi", --] -- --[[package]] --name = "discard" --version = "1.0.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" -- --[[package]] --name = "displaydoc" --version = "0.2.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "dyn-clone" --version = "1.0.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" -- --[[package]] --name = "either" --version = "1.8.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" -- --[[package]] --name = "encode_unicode" --version = "0.3.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" -- --[[package]] --name = "encoding_rs" --version = "0.8.32" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" --dependencies = [ -- "cfg-if 1.0.0", --] -- --[[package]] --name = "erased-serde" --version = "0.3.25" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4f2b0c2380453a92ea8b6c8e5f64ecaafccddde8ceab55ff7a8ac1029f894569" --dependencies = [ -- "serde", --] -- --[[package]] --name = "errno" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" --dependencies = [ -- "errno-dragonfly", -- "libc", -- "windows-sys 0.48.0", --] -- --[[package]] --name = "errno-dragonfly" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" --dependencies = [ -- "cc", -- "libc", --] -- --[[package]] --name = "event-listener" --version = "2.5.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" -- --[[package]] --name = "fake-simd" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" -- --[[package]] --name = "fallible-iterator" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" -- --[[package]] --name = "fallible-streaming-iterator" --version = "0.1.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" -- --[[package]] --name = "fancy-regex" --version = "0.11.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" --dependencies = [ -- "bit-set", -- "regex", --] -- --[[package]] --name = "fastrand" --version = "1.9.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" --dependencies = [ -- "instant", --] -- --[[package]] --name = "femme" --version = "2.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cc04871e5ae3aa2952d552dae6b291b3099723bf779a8054281c1366a54613ef" --dependencies = [ -- "cfg-if 1.0.0", -- "js-sys", -- "log", -- "serde", -- "serde_derive", -- "serde_json", -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "fernet" --version = "0.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3364d69f691f3903b1a71605fa04f40a7c2d259f0f0512347e36d19a63debf1f" --dependencies = [ -- "base64 0.21.1", -- "byteorder", -- "getrandom 0.2.9", -- "openssl", -- "zeroize", --] -- --[[package]] --name = "filetime" --version = "0.2.21" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" --dependencies = [ -- "cfg-if 1.0.0", -- "libc", -- "redox_syscall 0.2.16", -- "windows-sys 0.48.0", --] -- --[[package]] --name = "flate2" --version = "1.0.26" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" --dependencies = [ -- "crc32fast", -- "miniz_oxide", --] -- --[[package]] --name = "fnv" --version = "1.0.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -- --[[package]] --name = "foreign-types" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" --dependencies = [ -- "foreign-types-shared", --] -- --[[package]] --name = "foreign-types-shared" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -- --[[package]] --name = "form_urlencoded" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" --dependencies = [ -- "percent-encoding", --] -- --[[package]] --name = "fs2" --version = "0.4.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" --dependencies = [ -- "libc", -- "winapi", --] -- --[[package]] --name = "futures" --version = "0.3.28" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" --dependencies = [ -- "futures-channel", -- "futures-core", -- "futures-executor", -- "futures-io", -- "futures-sink", -- "futures-task", -- "futures-util", --] -- --[[package]] --name = "futures-channel" --version = "0.3.28" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" --dependencies = [ -- "futures-core", -- "futures-sink", --] -- --[[package]] --name = "futures-concurrency" --version = "3.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "113411b30b3a4fd9aba3eb9654f436976b71bc7f709318aeae7f8e90f74a71d6" --dependencies = [ -- "async-trait", -- "futures-core", -- "pin-project", --] -- --[[package]] --name = "futures-core" --version = "0.3.28" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" -- --[[package]] --name = "futures-executor" --version = "0.3.28" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" --dependencies = [ -- "futures-core", -- "futures-task", -- "futures-util", --] -- --[[package]] --name = "futures-io" --version = "0.3.28" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" -- --[[package]] --name = "futures-lite" --version = "1.13.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" --dependencies = [ -- "fastrand", -- "futures-core", -- "futures-io", -- "memchr", -- "parking", -- "pin-project-lite 0.2.9", -- "waker-fn", --] -- --[[package]] --name = "futures-macro" --version = "0.3.28" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "futures-sink" --version = "0.3.28" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" -- --[[package]] --name = "futures-task" --version = "0.3.28" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" -- --[[package]] --name = "futures-util" --version = "0.3.28" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" --dependencies = [ -- "futures-channel", -- "futures-core", -- "futures-io", -- "futures-macro", -- "futures-sink", -- "futures-task", -- "memchr", -- "pin-project-lite 0.2.9", -- "pin-utils", -- "slab", --] -- --[[package]] --name = "generic-array" --version = "0.12.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" --dependencies = [ -- "typenum", --] -- --[[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.1.16" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" --dependencies = [ -- "cfg-if 1.0.0", -- "libc", -- "wasi 0.9.0+wasi-snapshot-preview1", --] -- --[[package]] --name = "getrandom" --version = "0.2.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" --dependencies = [ -- "cfg-if 1.0.0", -- "js-sys", -- "libc", -- "wasi 0.11.0+wasi-snapshot-preview1", -- "wasm-bindgen", --] -- --[[package]] --name = "ghash" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" --dependencies = [ -- "opaque-debug 0.3.0", -- "polyval", --] -- --[[package]] --name = "git2" --version = "0.13.25" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f29229cc1b24c0e6062f6e742aa3e256492a5323365e5ed3413599f8a5eff7d6" --dependencies = [ -- "bitflags", -- "libc", -- "libgit2-sys", -- "log", -- "openssl-probe", -- "openssl-sys", -- "url", --] -- --[[package]] --name = "gloo" --version = "0.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3a4bef6b277b3ab073253d4bca60761240cf8d6998f4bd142211957b69a61b20" --dependencies = [ -- "gloo-console", -- "gloo-dialogs", -- "gloo-events", -- "gloo-file", -- "gloo-history", -- "gloo-net", -- "gloo-render", -- "gloo-storage", -- "gloo-timers", -- "gloo-utils", -- "gloo-worker", --] -- --[[package]] --name = "gloo-console" --version = "0.2.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "82b7ce3c05debe147233596904981848862b068862e9ec3e34be446077190d3f" --dependencies = [ -- "gloo-utils", -- "js-sys", -- "serde", -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "gloo-dialogs" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "67062364ac72d27f08445a46cab428188e2e224ec9e37efdba48ae8c289002e6" --dependencies = [ -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "gloo-events" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "68b107f8abed8105e4182de63845afcc7b69c098b7852a813ea7462a320992fc" --dependencies = [ -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "gloo-file" --version = "0.2.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a8d5564e570a38b43d78bdc063374a0c3098c4f0d64005b12f9bbe87e869b6d7" --dependencies = [ -- "futures-channel", -- "gloo-events", -- "js-sys", -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "gloo-history" --version = "0.1.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dd451019e0b7a2b8a7a7b23e74916601abf1135c54664e57ff71dcc26dfcdeb7" --dependencies = [ -- "gloo-events", -- "gloo-utils", -- "serde", -- "serde-wasm-bindgen", -- "serde_urlencoded", -- "thiserror", -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "gloo-net" --version = "0.2.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9902a044653b26b99f7e3693a42f171312d9be8b26b5697bd1e43ad1f8a35e10" --dependencies = [ -- "futures-channel", -- "futures-core", -- "futures-sink", -- "gloo-utils", -- "js-sys", -- "pin-project", -- "serde", -- "serde_json", -- "thiserror", -- "wasm-bindgen", -- "wasm-bindgen-futures", -- "web-sys", --] -- --[[package]] --name = "gloo-render" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2fd9306aef67cfd4449823aadcd14e3958e0800aa2183955a309112a84ec7764" --dependencies = [ -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "gloo-storage" --version = "0.2.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5d6ab60bf5dbfd6f0ed1f7843da31b41010515c745735c970e821945ca91e480" --dependencies = [ -- "gloo-utils", -- "js-sys", -- "serde", -- "serde_json", -- "thiserror", -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "gloo-timers" --version = "0.2.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" --dependencies = [ -- "futures-channel", -- "futures-core", -- "js-sys", -- "wasm-bindgen", --] -- --[[package]] --name = "gloo-utils" --version = "0.1.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a8e8fc851e9c7b9852508bc6e3f690f452f474417e8545ec9857b7f7377036b5" --dependencies = [ -- "js-sys", -- "serde", -- "serde_json", -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "gloo-worker" --version = "0.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "13471584da78061a28306d1359dd0178d8d6fc1c7c80e5e35d27260346e0516a" --dependencies = [ -- "anymap2", -- "bincode", -- "gloo-console", -- "gloo-utils", -- "js-sys", -- "serde", -- "wasm-bindgen", -- "wasm-bindgen-futures", -- "web-sys", --] -- --[[package]] --name = "h2" --version = "0.3.19" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" --dependencies = [ -- "bytes", -- "fnv", -- "futures-core", -- "futures-sink", -- "futures-util", -- "http", -- "indexmap", -- "slab", -- "tokio", -- "tokio-util", -- "tracing", --] -- --[[package]] --name = "half" --version = "1.8.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" -- --[[package]] --name = "hashbrown" --version = "0.12.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" --dependencies = [ -- "ahash 0.7.6", -- "serde", --] -- --[[package]] --name = "hashbrown" --version = "0.13.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" --dependencies = [ -- "ahash 0.8.3", --] -- --[[package]] --name = "hashlink" --version = "0.8.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0761a1b9491c4f2e3d66aa0f62d0fba0af9a0e2852e4d48ea506632a4b56e6aa" --dependencies = [ -- "hashbrown 0.13.2", --] -- --[[package]] --name = "heck" --version = "0.4.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -- --[[package]] --name = "hermit-abi" --version = "0.1.19" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" --dependencies = [ -- "libc", --] -- --[[package]] --name = "hermit-abi" --version = "0.2.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" --dependencies = [ -- "libc", --] -- --[[package]] --name = "hermit-abi" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" -- --[[package]] --name = "hex" --version = "0.4.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -- --[[package]] --name = "hkdf" --version = "0.10.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f" --dependencies = [ -- "digest 0.9.0", -- "hmac 0.10.1", --] -- --[[package]] --name = "hmac" --version = "0.8.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" --dependencies = [ -- "crypto-mac 0.8.0", -- "digest 0.9.0", --] -- --[[package]] --name = "hmac" --version = "0.10.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" --dependencies = [ -- "crypto-mac 0.10.1", -- "digest 0.9.0", --] -- --[[package]] --name = "http" --version = "0.2.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" --dependencies = [ -- "bytes", -- "fnv", -- "itoa", --] -- --[[package]] --name = "http-body" --version = "0.4.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" --dependencies = [ -- "bytes", -- "http", -- "pin-project-lite 0.2.9", --] -- --[[package]] --name = "http-client" --version = "6.5.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1947510dc91e2bf586ea5ffb412caad7673264e14bb39fb9078da114a94ce1a5" --dependencies = [ -- "async-trait", -- "cfg-if 1.0.0", -- "http-types", -- "log", --] -- --[[package]] --name = "http-types" --version = "2.12.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" --dependencies = [ -- "anyhow", -- "async-channel", -- "async-std", -- "base64 0.13.1", -- "cookie 0.14.4", -- "futures-lite", -- "infer", -- "pin-project-lite 0.2.9", -- "rand 0.7.3", -- "serde", -- "serde_json", -- "serde_qs", -- "serde_urlencoded", -- "url", --] -- --[[package]] --name = "httparse" --version = "1.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" -- --[[package]] --name = "httpdate" --version = "1.0.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" -- --[[package]] --name = "hyper" --version = "0.14.26" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" --dependencies = [ -- "bytes", -- "futures-channel", -- "futures-core", -- "futures-util", -- "h2", -- "http", -- "http-body", -- "httparse", -- "httpdate", -- "itoa", -- "pin-project-lite 0.2.9", -- "socket2", -- "tokio", -- "tower-service", -- "tracing", -- "want", --] -- --[[package]] --name = "hyper-tls" --version = "0.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" --dependencies = [ -- "bytes", -- "hyper", -- "native-tls", -- "tokio", -- "tokio-native-tls", --] -- --[[package]] --name = "iana-time-zone" --version = "0.1.56" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" --dependencies = [ -- "android_system_properties", -- "core-foundation-sys", -- "iana-time-zone-haiku", -- "js-sys", -- "wasm-bindgen", -- "windows 0.48.0", --] -- --[[package]] --name = "iana-time-zone-haiku" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" --dependencies = [ -- "cc", --] -- --[[package]] --name = "ident_case" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -- --[[package]] --name = "idlset" --version = "0.2.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "340756d15be4b22d5e501bad90a9f68fcdc6b9b7d2f6d6afe350645e9839dac6" --dependencies = [ -- "serde", -- "serde_derive", -- "smallvec", --] -- --[[package]] --name = "idna" --version = "0.2.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" --dependencies = [ -- "matches", -- "unicode-bidi", -- "unicode-normalization", --] -- --[[package]] --name = "idna" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" --dependencies = [ -- "unicode-bidi", -- "unicode-normalization", --] -- --[[package]] --name = "image" --version = "0.23.14" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" --dependencies = [ -- "bytemuck", -- "byteorder", -- "color_quant", -- "num-iter", -- "num-rational", -- "num-traits", --] -- --[[package]] --name = "implicit-clone" --version = "0.3.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "40fc102e70475c320b185cd18c1e48bba2d7210b63970a4d581ef903e4368ef7" --dependencies = [ -- "indexmap", --] -- --[[package]] --name = "indexmap" --version = "1.9.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" --dependencies = [ -- "autocfg", -- "hashbrown 0.12.3", --] -- --[[package]] --name = "infer" --version = "0.2.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" -- --[[package]] --name = "instant" --version = "0.1.12" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" --dependencies = [ -- "cfg-if 1.0.0", --] -- --[[package]] --name = "io-lifetimes" --version = "1.0.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" --dependencies = [ -- "hermit-abi 0.3.1", -- "libc", -- "windows-sys 0.48.0", --] -- --[[package]] --name = "ipnet" --version = "2.7.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" -- --[[package]] --name = "itertools" --version = "0.10.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" --dependencies = [ -- "either", --] -- --[[package]] --name = "itoa" --version = "1.0.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" -- --[[package]] --name = "jobserver" --version = "0.1.26" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" --dependencies = [ -- "libc", --] -- --[[package]] --name = "js-sys" --version = "0.3.63" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790" --dependencies = [ -- "wasm-bindgen", --] -- --[[package]] --name = "kanidm-ipa-sync" --version = "1.1.0-alpha.12" --dependencies = [ -- "base64urlsafedata", -- "chrono", -- "clap", -- "clap_complete", -- "cron", -- "kanidm_client", -- "kanidm_proto", -- "kanidmd_lib", -- "ldap3_client", -- "serde", -- "serde_json", -- "tokio", -- "toml", -- "tracing", -- "tracing-subscriber", -- "url", -- "users", -- "uuid", --] -- --[[package]] --name = "kanidm_client" --version = "1.1.0-alpha.12" --dependencies = [ -- "kanidm_proto", -- "reqwest", -- "serde", -- "serde_json", -- "time 0.2.27", -- "tokio", -- "toml", -- "tracing", -- "url", -- "uuid", -- "webauthn-rs-proto", --] -- --[[package]] --name = "kanidm_lib_crypto" --version = "0.1.0" --dependencies = [ -- "base64 0.21.1", -- "base64urlsafedata", -- "hex", -- "kanidm_proto", -- "openssl", -- "openssl-sys", -- "rand 0.8.5", -- "serde", -- "sketching", -- "tracing", --] -- --[[package]] --name = "kanidm_lib_file_permissions" --version = "0.1.0" --dependencies = [ -- "users", -- "whoami", --] -- --[[package]] --name = "kanidm_proto" --version = "1.1.0-alpha.12" --dependencies = [ -- "base32", -- "base64urlsafedata", -- "last-git-commit", -- "num_enum", -- "scim_proto", -- "serde", -- "serde_json", -- "time 0.2.27", -- "tracing", -- "url", -- "urlencoding", -- "uuid", -- "webauthn-rs-proto", --] -- --[[package]] --name = "kanidm_tools" --version = "1.1.0-alpha.12" --dependencies = [ -- "clap", -- "clap_complete", -- "compact_jwt", -- "dialoguer", -- "futures-concurrency", -- "kanidm_client", -- "kanidm_proto", -- "libc", -- "qrcode", -- "rpassword 7.2.0", -- "serde", -- "serde_json", -- "shellexpand", -- "time 0.2.27", -- "tokio", -- "tracing", -- "tracing-subscriber", -- "url", -- "uuid", -- "webauthn-authenticator-rs", -- "zxcvbn", --] -- --[[package]] --name = "kanidm_unix_int" --version = "1.1.0-alpha.12" --dependencies = [ -- "bytes", -- "clap", -- "clap_complete", -- "futures", -- "kanidm_client", -- "kanidm_lib_crypto", -- "kanidm_lib_file_permissions", -- "kanidm_proto", -- "kanidmd_core", -- "libc", -- "libsqlite3-sys", -- "lru 0.8.1", -- "profiles", -- "r2d2", -- "r2d2_sqlite", -- "reqwest", -- "rpassword 7.2.0", -- "rusqlite", -- "serde", -- "serde_json", -- "sketching", -- "tokio", -- "tokio-util", -- "toml", -- "tracing", -- "users", -- "walkdir", --] -- --[[package]] --name = "kanidmd_core" --version = "1.1.0-alpha.12" --dependencies = [ -- "async-trait", -- "chrono", -- "compact_jwt", -- "cron", -- "futures-util", -- "http-types", -- "kanidm_proto", -- "kanidmd_lib", -- "ldap3_proto", -- "libc", -- "openssl", -- "profiles", -- "rand 0.8.5", -- "regex", -- "serde", -- "serde_json", -- "sketching", -- "tide", -- "tide-compress", -- "tide-openssl", -- "time 0.2.27", -- "tokio", -- "tokio-openssl", -- "tokio-util", -- "toml", -- "tracing", -- "uuid", --] -- --[[package]] --name = "kanidmd_lib" --version = "1.1.0-alpha.12" --dependencies = [ -- "async-trait", -- "base64 0.21.1", -- "base64urlsafedata", -- "compact_jwt", -- "concread", -- "criterion", -- "dyn-clone", -- "fernet", -- "filetime", -- "futures", -- "futures-util", -- "hashbrown 0.12.3", -- "idlset", -- "kanidm_lib_crypto", -- "kanidm_proto", -- "kanidmd_lib_macros", -- "lazy_static", -- "ldap3_proto", -- "libc", -- "libsqlite3-sys", -- "nonempty", -- "num_enum", -- "openssl", -- "openssl-sys", -- "profiles", -- "r2d2", -- "r2d2_sqlite", -- "rand 0.8.5", -- "regex", -- "rusqlite", -- "serde", -- "serde_cbor_2", -- "serde_json", -- "sketching", -- "smartstring", -- "smolset", -- "sshkeys", -- "tide", -- "time 0.2.27", -- "tokio", -- "tokio-util", -- "toml", -- "touch", -- "tracing", -- "url", -- "urlencoding", -- "users", -- "uuid", -- "webauthn-authenticator-rs", -- "webauthn-rs", -- "webauthn-rs-core", -- "whoami", -- "zxcvbn", --] -- --[[package]] --name = "kanidmd_lib_macros" --version = "0.1.0" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "kanidmd_testkit" --version = "1.1.0-alpha.12" --dependencies = [ -- "compact_jwt", -- "futures", -- "kanidm_client", -- "kanidm_proto", -- "kanidmd_core", -- "kanidmd_lib", -- "oauth2", -- "profiles", -- "reqwest", -- "serde_json", -- "sketching", -- "testkit-macros", -- "time 0.2.27", -- "tokio", -- "tracing", -- "url", -- "webauthn-authenticator-rs", --] -- --[[package]] --name = "kanidmd_web_ui" --version = "1.1.0-alpha.12" --dependencies = [ -- "compact_jwt", -- "gloo", -- "gloo-net", -- "js-sys", -- "kanidm_proto", -- "qrcode", -- "serde", -- "serde-wasm-bindgen", -- "serde_json", -- "time 0.2.27", -- "url", -- "uuid", -- "wasm-bindgen", -- "wasm-bindgen-futures", -- "wasm-bindgen-test", -- "web-sys", -- "yew", -- "yew-router", --] -- --[[package]] --name = "kv-log-macro" --version = "1.0.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" --dependencies = [ -- "log", --] -- --[[package]] --name = "last-git-commit" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9f2e5243385b2ea0443d79fd6f5ea97b0509f2571e8f39e99d1ead2bcc1c89c0" --dependencies = [ -- "git2", --] -- --[[package]] --name = "lazy_static" --version = "1.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -- --[[package]] --name = "lber" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b5d85f5e00e12cb50c70c3b1c1f0daff6546eb4c608b44d0a990e38a539e0446" --dependencies = [ -- "bytes", -- "nom", --] -- --[[package]] --name = "ldap3_client" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0236f3aac28f4f79929664cd635f310fa7469f17b67d45c85848a0f3ca516d53" --dependencies = [ -- "base64 0.13.1", -- "base64urlsafedata", -- "futures-util", -- "ldap3_proto", -- "openssl", -- "serde", -- "tokio", -- "tokio-openssl", -- "tokio-util", -- "tracing", -- "url", -- "uuid", --] -- --[[package]] --name = "ldap3_proto" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "57ea4b099d9f84c8424a56e9b361f5f9aeae9d87ca9bd683c54a6a27c8676597" --dependencies = [ -- "bytes", -- "lber", -- "nom", -- "peg", -- "tokio-util", -- "tracing", -- "uuid", --] -- --[[package]] --name = "libc" --version = "0.2.144" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" -- --[[package]] --name = "libgit2-sys" --version = "0.12.26+1.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "19e1c899248e606fbfe68dcb31d8b0176ebab833b103824af31bddf4b7457494" --dependencies = [ -- "cc", -- "libc", -- "libssh2-sys", -- "libz-sys", -- "openssl-sys", -- "pkg-config", --] -- --[[package]] --name = "libnss" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "48b67ef5ebef2a035ac8106c9b71176b6246be2a580ff4ee94bb80919e55b34c" --dependencies = [ -- "lazy_static", -- "libc", -- "paste 0.1.18", --] -- --[[package]] --name = "libsqlite3-sys" --version = "0.25.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "29f835d03d717946d28b1d1ed632eb6f0e24a299388ee623d0c23118d3e8a7fa" --dependencies = [ -- "cc", -- "pkg-config", -- "vcpkg", --] -- --[[package]] --name = "libssh2-sys" --version = "0.2.23" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca" --dependencies = [ -- "cc", -- "libc", -- "libz-sys", -- "openssl-sys", -- "pkg-config", -- "vcpkg", --] -- --[[package]] --name = "libudev" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ea626d3bdf40a1c5aee3bcd4f40826970cae8d80a8fec934c82a63840094dcfe" --dependencies = [ -- "libc", -- "libudev-sys", --] -- --[[package]] --name = "libudev-sys" --version = "0.1.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" --dependencies = [ -- "libc", -- "pkg-config", --] -- --[[package]] --name = "libz-sys" --version = "1.1.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db" --dependencies = [ -- "cc", -- "libc", -- "pkg-config", -- "vcpkg", --] -- --[[package]] --name = "linux-raw-sys" --version = "0.3.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" -- --[[package]] --name = "lock_api" --version = "0.4.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" --dependencies = [ -- "autocfg", -- "scopeguard", --] -- --[[package]] --name = "log" --version = "0.4.17" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" --dependencies = [ -- "cfg-if 1.0.0", -- "serde", -- "value-bag", --] -- --[[package]] --name = "lru" --version = "0.7.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" --dependencies = [ -- "hashbrown 0.12.3", --] -- --[[package]] --name = "lru" --version = "0.8.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" --dependencies = [ -- "hashbrown 0.12.3", --] -- --[[package]] --name = "matchers" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" --dependencies = [ -- "regex-automata", --] -- --[[package]] --name = "matches" --version = "0.1.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" -- --[[package]] --name = "mathru" --version = "0.13.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9a42bf938e4c9a6ad581cf528d5606eb50c5458ac759ca23719291e2f6499bec" --dependencies = [ -- "rand 0.8.5", --] -- --[[package]] --name = "memchr" --version = "2.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" -- --[[package]] --name = "memoffset" --version = "0.6.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" --dependencies = [ -- "autocfg", --] -- --[[package]] --name = "memoffset" --version = "0.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" --dependencies = [ -- "autocfg", --] -- --[[package]] --name = "mime" --version = "0.3.17" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -- --[[package]] --name = "minimal-lexical" --version = "0.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -- --[[package]] --name = "miniz_oxide" --version = "0.7.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" --dependencies = [ -- "adler", --] -- --[[package]] --name = "mio" --version = "0.8.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" --dependencies = [ -- "libc", -- "log", -- "wasi 0.11.0+wasi-snapshot-preview1", -- "windows-sys 0.45.0", --] -- --[[package]] --name = "native-tls" --version = "0.2.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" --dependencies = [ -- "lazy_static", -- "libc", -- "log", -- "openssl", -- "openssl-probe", -- "openssl-sys", -- "schannel", -- "security-framework", -- "security-framework-sys", -- "tempfile", --] -- --[[package]] --name = "nom" --version = "7.1.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" --dependencies = [ -- "memchr", -- "minimal-lexical", --] -- --[[package]] --name = "nonempty" --version = "0.8.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "aeaf4ad7403de93e699c191202f017118df734d3850b01e13a3a8b2e6953d3c9" --dependencies = [ -- "serde", --] -- --[[package]] --name = "nss_kanidm" --version = "1.1.0-alpha.12" --dependencies = [ -- "kanidm_unix_int", -- "lazy_static", -- "libc", -- "libnss", -- "paste 1.0.12", --] -- --[[package]] --name = "nu-ansi-term" --version = "0.46.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" --dependencies = [ -- "overload", -- "winapi", --] -- --[[package]] --name = "num-bigint" --version = "0.4.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" --dependencies = [ -- "autocfg", -- "num-integer", -- "num-traits", --] -- --[[package]] --name = "num-integer" --version = "0.1.45" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" --dependencies = [ -- "autocfg", -- "num-traits", --] -- --[[package]] --name = "num-iter" --version = "0.1.43" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" --dependencies = [ -- "autocfg", -- "num-integer", -- "num-traits", --] -- --[[package]] --name = "num-rational" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" --dependencies = [ -- "autocfg", -- "num-integer", -- "num-traits", --] -- --[[package]] --name = "num-traits" --version = "0.2.15" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" --dependencies = [ -- "autocfg", --] -- --[[package]] --name = "num_cpus" --version = "1.15.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" --dependencies = [ -- "hermit-abi 0.2.6", -- "libc", --] -- --[[package]] --name = "num_enum" --version = "0.5.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" --dependencies = [ -- "num_enum_derive", --] -- --[[package]] --name = "num_enum_derive" --version = "0.5.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" --dependencies = [ -- "proc-macro-crate", -- "proc-macro2", -- "quote", -- "syn 1.0.109", --] -- --[[package]] --name = "oauth2" --version = "4.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "50df55a3cc0374df91ef8da8741542d9e0b9e6581481ed1cffe84f64d2f5fc3d" --dependencies = [ -- "base64 0.13.1", -- "chrono", -- "getrandom 0.2.9", -- "http", -- "rand 0.8.5", -- "serde", -- "serde_json", -- "serde_path_to_error", -- "sha2 0.10.6", -- "thiserror", -- "url", --] -- --[[package]] --name = "oid-registry" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a" --dependencies = [ -- "asn1-rs", --] -- --[[package]] --name = "once_cell" --version = "1.17.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" -- --[[package]] --name = "oorandom" --version = "11.1.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" -- --[[package]] --name = "opaque-debug" --version = "0.2.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" -- --[[package]] --name = "opaque-debug" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" -- --[[package]] --name = "openssl" --version = "0.10.52" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" --dependencies = [ -- "bitflags", -- "cfg-if 1.0.0", -- "foreign-types", -- "libc", -- "once_cell", -- "openssl-macros", -- "openssl-sys", --] -- --[[package]] --name = "openssl-macros" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "openssl-probe" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" -- --[[package]] --name = "openssl-sys" --version = "0.9.87" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e" --dependencies = [ -- "cc", -- "libc", -- "pkg-config", -- "vcpkg", --] -- --[[package]] --name = "orca" --version = "1.1.0-alpha.12" --dependencies = [ -- "clap", -- "crossbeam", -- "csv", -- "dialoguer", -- "futures-util", -- "kanidm_client", -- "kanidm_proto", -- "ldap3_proto", -- "mathru", -- "openssl", -- "profiles", -- "rand 0.8.5", -- "serde", -- "serde_json", -- "tikv-jemallocator", -- "tokio", -- "tokio-openssl", -- "tokio-util", -- "toml", -- "tracing", -- "tracing-subscriber", -- "uuid", --] -- --[[package]] --name = "os_str_bytes" --version = "6.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" -- --[[package]] --name = "overload" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" -- --[[package]] --name = "pam_kanidm" --version = "1.1.0-alpha.12" --dependencies = [ -- "kanidm_unix_int", -- "libc", -- "pkg-config", --] -- --[[package]] --name = "parking" --version = "2.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" -- --[[package]] --name = "parking_lot" --version = "0.12.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" --dependencies = [ -- "lock_api", -- "parking_lot_core", --] -- --[[package]] --name = "parking_lot_core" --version = "0.9.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" --dependencies = [ -- "cfg-if 1.0.0", -- "libc", -- "redox_syscall 0.2.16", -- "smallvec", -- "windows-sys 0.45.0", --] -- --[[package]] --name = "paste" --version = "0.1.18" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" --dependencies = [ -- "paste-impl", -- "proc-macro-hack", --] -- --[[package]] --name = "paste" --version = "1.0.12" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" -- --[[package]] --name = "paste-impl" --version = "0.1.18" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" --dependencies = [ -- "proc-macro-hack", --] -- --[[package]] --name = "peg" --version = "0.8.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a07f2cafdc3babeebc087e499118343442b742cc7c31b4d054682cc598508554" --dependencies = [ -- "peg-macros", -- "peg-runtime", --] -- --[[package]] --name = "peg-macros" --version = "0.8.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4a90084dc05cf0428428e3d12399f39faad19b0909f64fb9170c9fdd6d9cd49b" --dependencies = [ -- "peg-runtime", -- "proc-macro2", -- "quote", --] -- --[[package]] --name = "peg-runtime" --version = "0.8.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9fa00462b37ead6d11a82c9d568b26682d78e0477dc02d1966c013af80969739" -- --[[package]] --name = "percent-encoding" --version = "2.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" -- --[[package]] --name = "pin-project" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" --dependencies = [ -- "pin-project-internal", --] -- --[[package]] --name = "pin-project-internal" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "pin-project-lite" --version = "0.1.12" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" -- --[[package]] --name = "pin-project-lite" --version = "0.2.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" -- --[[package]] --name = "pin-utils" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -- --[[package]] --name = "pinned" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a829027bd95e54cfe13e3e258a1ae7b645960553fb82b75ff852c29688ee595b" --dependencies = [ -- "futures", -- "rustversion", -- "thiserror", --] -- --[[package]] --name = "pkg-config" --version = "0.3.27" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" -- --[[package]] --name = "plotters" --version = "0.3.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" --dependencies = [ -- "num-traits", -- "plotters-backend", -- "plotters-svg", -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "plotters-backend" --version = "0.3.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" -- --[[package]] --name = "plotters-svg" --version = "0.3.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" --dependencies = [ -- "plotters-backend", --] -- --[[package]] --name = "polling" --version = "2.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" --dependencies = [ -- "autocfg", -- "bitflags", -- "cfg-if 1.0.0", -- "concurrent-queue", -- "libc", -- "log", -- "pin-project-lite 0.2.9", -- "windows-sys 0.48.0", --] -- --[[package]] --name = "polyval" --version = "0.4.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" --dependencies = [ -- "cpuid-bool", -- "opaque-debug 0.3.0", -- "universal-hash", --] -- --[[package]] --name = "ppv-lite86" --version = "0.2.17" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" -- --[[package]] --name = "prettyplease" --version = "0.1.25" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" --dependencies = [ -- "proc-macro2", -- "syn 1.0.109", --] -- --[[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-macro-error" --version = "1.0.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" --dependencies = [ -- "proc-macro-error-attr", -- "proc-macro2", -- "quote", -- "syn 1.0.109", -- "version_check", --] -- --[[package]] --name = "proc-macro-error-attr" --version = "1.0.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" --dependencies = [ -- "proc-macro2", -- "quote", -- "version_check", --] -- --[[package]] --name = "proc-macro-hack" --version = "0.5.20+deprecated" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" -- --[[package]] --name = "proc-macro2" --version = "1.0.58" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fa1fb82fc0c281dd9671101b66b771ebbe1eaf967b96ac8740dcba4b70005ca8" --dependencies = [ -- "unicode-ident", --] -- --[[package]] --name = "profiles" --version = "1.1.0-alpha.12" --dependencies = [ -- "base64 0.21.1", -- "serde", -- "toml", --] -- --[[package]] --name = "prokio" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "03b55e106e5791fa5a13abd13c85d6127312e8e09098059ca2bc9b03ca4cf488" --dependencies = [ -- "futures", -- "gloo", -- "num_cpus", -- "once_cell", -- "pin-project", -- "pinned", -- "tokio", -- "tokio-stream", -- "wasm-bindgen-futures", --] -- --[[package]] --name = "psl-types" --version = "2.0.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" -- --[[package]] --name = "publicsuffix" --version = "2.2.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457" --dependencies = [ -- "idna 0.3.0", -- "psl-types", --] -- --[[package]] --name = "qrcode" --version = "0.12.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "16d2f1455f3630c6e5107b4f2b94e74d76dea80736de0981fd27644216cff57f" --dependencies = [ -- "checked_int_cast", -- "image", --] -- --[[package]] --name = "quick-error" --version = "2.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" -- --[[package]] --name = "quote" --version = "1.0.27" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" --dependencies = [ -- "proc-macro2", --] -- --[[package]] --name = "r2d2" --version = "0.8.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" --dependencies = [ -- "log", -- "parking_lot", -- "scheduled-thread-pool", --] -- --[[package]] --name = "r2d2_sqlite" --version = "0.21.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b4f5d0337e99cd5cacd91ffc326c6cc9d8078def459df560c4f9bf9ba4a51034" --dependencies = [ -- "r2d2", -- "rusqlite", --] -- --[[package]] --name = "rand" --version = "0.7.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" --dependencies = [ -- "getrandom 0.1.16", -- "libc", -- "rand_chacha 0.2.2", -- "rand_core 0.5.1", -- "rand_hc", --] -- --[[package]] --name = "rand" --version = "0.8.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" --dependencies = [ -- "libc", -- "rand_chacha 0.3.1", -- "rand_core 0.6.4", --] -- --[[package]] --name = "rand_chacha" --version = "0.2.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" --dependencies = [ -- "ppv-lite86", -- "rand_core 0.5.1", --] -- --[[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 0.6.4", --] -- --[[package]] --name = "rand_core" --version = "0.5.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" --dependencies = [ -- "getrandom 0.1.16", --] -- --[[package]] --name = "rand_core" --version = "0.6.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" --dependencies = [ -- "getrandom 0.2.9", --] -- --[[package]] --name = "rand_hc" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" --dependencies = [ -- "rand_core 0.5.1", --] -- --[[package]] --name = "rayon" --version = "1.7.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" --dependencies = [ -- "either", -- "rayon-core", --] -- --[[package]] --name = "rayon-core" --version = "1.11.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" --dependencies = [ -- "crossbeam-channel", -- "crossbeam-deque", -- "crossbeam-utils", -- "num_cpus", --] -- --[[package]] --name = "redox_syscall" --version = "0.2.16" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" --dependencies = [ -- "bitflags", --] -- --[[package]] --name = "redox_syscall" --version = "0.3.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" --dependencies = [ -- "bitflags", --] -- --[[package]] --name = "redox_users" --version = "0.4.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" --dependencies = [ -- "getrandom 0.2.9", -- "redox_syscall 0.2.16", -- "thiserror", --] -- --[[package]] --name = "regex" --version = "1.8.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d1a59b5d8e97dee33696bf13c5ba8ab85341c002922fba050069326b9c498974" --dependencies = [ -- "aho-corasick", -- "memchr", -- "regex-syntax 0.7.2", --] -- --[[package]] --name = "regex-automata" --version = "0.1.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" --dependencies = [ -- "regex-syntax 0.6.29", --] -- --[[package]] --name = "regex-syntax" --version = "0.6.29" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" -- --[[package]] --name = "regex-syntax" --version = "0.7.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" -- --[[package]] --name = "reqwest" --version = "0.11.18" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" --dependencies = [ -- "async-compression 0.4.0", -- "base64 0.21.1", -- "bytes", -- "cookie 0.16.2", -- "cookie_store", -- "encoding_rs", -- "futures-core", -- "futures-util", -- "h2", -- "http", -- "http-body", -- "hyper", -- "hyper-tls", -- "ipnet", -- "js-sys", -- "log", -- "mime", -- "native-tls", -- "once_cell", -- "percent-encoding", -- "pin-project-lite 0.2.9", -- "serde", -- "serde_json", -- "serde_urlencoded", -- "tokio", -- "tokio-native-tls", -- "tokio-util", -- "tower-service", -- "url", -- "wasm-bindgen", -- "wasm-bindgen-futures", -- "web-sys", -- "winreg", --] -- --[[package]] --name = "route-recognizer" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "56770675ebc04927ded3e60633437841581c285dc6236109ea25fbf3beb7b59e" -- --[[package]] --name = "route-recognizer" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" -- --[[package]] --name = "rpassword" --version = "5.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" --dependencies = [ -- "libc", -- "winapi", --] -- --[[package]] --name = "rpassword" --version = "7.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" --dependencies = [ -- "libc", -- "rtoolbox", -- "winapi", --] -- --[[package]] --name = "rtoolbox" --version = "0.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" --dependencies = [ -- "libc", -- "winapi", --] -- --[[package]] --name = "runloop" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5d79b4b604167921892e84afbbaad9d5ad74e091bf6c511d9dbfb0593f09fabd" -- --[[package]] --name = "rusqlite" --version = "0.28.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "01e213bc3ecb39ac32e81e51ebe31fd888a940515173e3a18a35f8c6e896422a" --dependencies = [ -- "bitflags", -- "fallible-iterator", -- "fallible-streaming-iterator", -- "hashlink", -- "libsqlite3-sys", -- "smallvec", --] -- --[[package]] --name = "rustc_version" --version = "0.2.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" --dependencies = [ -- "semver", --] -- --[[package]] --name = "rusticata-macros" --version = "4.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" --dependencies = [ -- "nom", --] -- --[[package]] --name = "rustix" --version = "0.37.19" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" --dependencies = [ -- "bitflags", -- "errno", -- "io-lifetimes", -- "libc", -- "linux-raw-sys", -- "windows-sys 0.48.0", --] -- --[[package]] --name = "rustversion" --version = "1.0.12" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" -- --[[package]] --name = "ryu" --version = "1.0.13" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" -- --[[package]] --name = "same-file" --version = "1.0.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" --dependencies = [ -- "winapi-util", --] -- --[[package]] --name = "schannel" --version = "0.1.21" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" --dependencies = [ -- "windows-sys 0.42.0", --] -- --[[package]] --name = "scheduled-thread-pool" --version = "0.2.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" --dependencies = [ -- "parking_lot", --] -- --[[package]] --name = "scim_proto" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e5abc672c8241e5bd368c0a73bf24727e98b0000a8636a44b8eb42a1e22835ef" --dependencies = [ -- "base64urlsafedata", -- "peg", -- "serde", -- "serde_json", -- "time 0.2.27", -- "tracing", -- "tracing-subscriber", -- "url", -- "uuid", --] -- --[[package]] --name = "scoped-tls" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" -- --[[package]] --name = "scopeguard" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -- --[[package]] --name = "security-framework" --version = "2.9.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" --dependencies = [ -- "bitflags", -- "core-foundation", -- "core-foundation-sys", -- "libc", -- "security-framework-sys", --] -- --[[package]] --name = "security-framework-sys" --version = "2.9.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" --dependencies = [ -- "core-foundation-sys", -- "libc", --] -- --[[package]] --name = "semver" --version = "0.9.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" --dependencies = [ -- "semver-parser", --] -- --[[package]] --name = "semver-parser" --version = "0.7.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -- --[[package]] --name = "serde" --version = "1.0.163" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" --dependencies = [ -- "serde_derive", --] -- --[[package]] --name = "serde-wasm-bindgen" --version = "0.4.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e3b4c031cd0d9014307d82b8abf653c0290fbdaeb4c02d00c63cf52f728628bf" --dependencies = [ -- "js-sys", -- "serde", -- "wasm-bindgen", --] -- --[[package]] --name = "serde_bytes" --version = "0.11.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" --dependencies = [ -- "serde", --] -- --[[package]] --name = "serde_cbor" --version = "0.11.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" --dependencies = [ -- "half", -- "serde", --] -- --[[package]] --name = "serde_cbor_2" --version = "0.12.0-dev" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b46d75f449e01f1eddbe9b00f432d616fbbd899b809c837d0fbc380496a0dd55" --dependencies = [ -- "half", -- "serde", --] -- --[[package]] --name = "serde_derive" --version = "1.0.163" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "serde_fmt" --version = "1.0.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e1d4ddca14104cd60529e8c7f7ba71a2c8acd8f7f5cfcdc2faf97eeb7c3010a4" --dependencies = [ -- "serde", --] -- --[[package]] --name = "serde_json" --version = "1.0.96" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" --dependencies = [ -- "itoa", -- "ryu", -- "serde", --] -- --[[package]] --name = "serde_path_to_error" --version = "0.1.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f7f05c1d5476066defcdfacce1f52fc3cae3af1d3089727100c02ae92e5abbe0" --dependencies = [ -- "serde", --] -- --[[package]] --name = "serde_qs" --version = "0.8.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" --dependencies = [ -- "percent-encoding", -- "serde", -- "thiserror", --] -- --[[package]] --name = "serde_urlencoded" --version = "0.7.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" --dependencies = [ -- "form_urlencoded", -- "itoa", -- "ryu", -- "serde", --] -- --[[package]] --name = "sha1" --version = "0.6.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" --dependencies = [ -- "sha1_smol", --] -- --[[package]] --name = "sha1_smol" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" -- --[[package]] --name = "sha2" --version = "0.8.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" --dependencies = [ -- "block-buffer 0.7.3", -- "digest 0.8.1", -- "fake-simd", -- "opaque-debug 0.2.3", --] -- --[[package]] --name = "sha2" --version = "0.9.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" --dependencies = [ -- "block-buffer 0.9.0", -- "cfg-if 1.0.0", -- "cpufeatures", -- "digest 0.9.0", -- "opaque-debug 0.3.0", --] -- --[[package]] --name = "sha2" --version = "0.10.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" --dependencies = [ -- "cfg-if 1.0.0", -- "cpufeatures", -- "digest 0.10.7", --] -- --[[package]] --name = "sharded-slab" --version = "0.1.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" --dependencies = [ -- "lazy_static", --] -- --[[package]] --name = "shell-words" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" -- --[[package]] --name = "shellexpand" --version = "2.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" --dependencies = [ -- "dirs", --] -- --[[package]] --name = "signal-hook" --version = "0.3.15" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" --dependencies = [ -- "libc", -- "signal-hook-registry", --] -- --[[package]] --name = "signal-hook-registry" --version = "1.4.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" --dependencies = [ -- "libc", --] -- --[[package]] --name = "simple-mutex" --version = "1.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "38aabbeafa6f6dead8cebf246fe9fae1f9215c8d29b3a69f93bd62a9e4a3dcd6" --dependencies = [ -- "event-listener", --] -- --[[package]] --name = "sketching" --version = "1.1.0-alpha.12" --dependencies = [ -- "async-trait", -- "num_enum", -- "tide", -- "tracing", -- "tracing-forest", -- "tracing-subscriber", --] -- --[[package]] --name = "slab" --version = "0.4.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" --dependencies = [ -- "autocfg", --] -- --[[package]] --name = "smallvec" --version = "1.10.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" --dependencies = [ -- "serde", --] -- --[[package]] --name = "smartstring" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" --dependencies = [ -- "autocfg", -- "serde", -- "static_assertions", -- "version_check", --] -- --[[package]] --name = "smolset" --version = "1.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a8d372e8fe15dc5229e7d6c65f5810849385e79e24f9d9d64263e132879c7be0" --dependencies = [ -- "smallvec", --] -- --[[package]] --name = "socket2" --version = "0.4.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" --dependencies = [ -- "libc", -- "winapi", --] -- --[[package]] --name = "sptr" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" -- --[[package]] --name = "sshkeys" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c926cb006a77964474a13a86aa0135ea82c9fd43e6793a1151cc54143db6637c" --dependencies = [ -- "base64 0.12.3", -- "byteorder", -- "sha2 0.8.2", --] -- --[[package]] --name = "standback" --version = "0.2.17" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" --dependencies = [ -- "version_check", --] -- --[[package]] --name = "static_assertions" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -- --[[package]] --name = "stdweb" --version = "0.4.20" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" --dependencies = [ -- "discard", -- "rustc_version", -- "stdweb-derive", -- "stdweb-internal-macros", -- "stdweb-internal-runtime", -- "wasm-bindgen", --] -- --[[package]] --name = "stdweb-derive" --version = "0.5.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" --dependencies = [ -- "proc-macro2", -- "quote", -- "serde", -- "serde_derive", -- "syn 1.0.109", --] -- --[[package]] --name = "stdweb-internal-macros" --version = "0.2.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" --dependencies = [ -- "base-x", -- "proc-macro2", -- "quote", -- "serde", -- "serde_derive", -- "serde_json", -- "sha1", -- "syn 1.0.109", --] -- --[[package]] --name = "stdweb-internal-runtime" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" -- --[[package]] --name = "strsim" --version = "0.10.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -- --[[package]] --name = "subtle" --version = "2.4.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" -- --[[package]] --name = "sval" --version = "1.0.0-alpha.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "45f6ee7c7b87caf59549e9fe45d6a69c75c8019e79e212a835c5da0e92f0ba08" --dependencies = [ -- "serde", --] -- --[[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.16" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01" --dependencies = [ -- "proc-macro2", -- "quote", -- "unicode-ident", --] -- --[[package]] --name = "synstructure" --version = "0.12.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 1.0.109", -- "unicode-xid", --] -- --[[package]] --name = "tempfile" --version = "3.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" --dependencies = [ -- "cfg-if 1.0.0", -- "fastrand", -- "redox_syscall 0.3.5", -- "rustix", -- "windows-sys 0.45.0", --] -- --[[package]] --name = "termcolor" --version = "1.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" --dependencies = [ -- "winapi-util", --] -- --[[package]] --name = "testkit-macros" --version = "0.1.0" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "textwrap" --version = "0.16.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" -- --[[package]] --name = "thiserror" --version = "1.0.40" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" --dependencies = [ -- "thiserror-impl", --] -- --[[package]] --name = "thiserror-impl" --version = "1.0.40" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "thread_local" --version = "1.1.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" --dependencies = [ -- "cfg-if 1.0.0", -- "once_cell", --] -- --[[package]] --name = "tide" --version = "0.16.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c459573f0dd2cc734b539047f57489ea875af8ee950860ded20cf93a79a1dee0" --dependencies = [ -- "async-h1", -- "async-session", -- "async-sse", -- "async-std", -- "async-trait", -- "femme", -- "futures-util", -- "http-client", -- "http-types", -- "kv-log-macro", -- "log", -- "pin-project-lite 0.2.9", -- "route-recognizer 0.2.0", -- "serde", -- "serde_json", --] -- --[[package]] --name = "tide-compress" --version = "0.10.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "92a55e754f247bb04c6ea1c2ec46f1a4e8a91dabca9dc7a38c67aa3a9df6b359" --dependencies = [ -- "async-compression 0.3.15", -- "futures-lite", -- "http-types", -- "regex", -- "tide", --] -- --[[package]] --name = "tide-openssl" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5ca37203863763d3faf05b22d32a0c2da7a2d429b8fb22345e19e45ec2ad1071" --dependencies = [ -- "async-dup", -- "async-h1", -- "async-std", -- "async-std-openssl", -- "futures-util", -- "openssl", -- "openssl-sys", -- "tide", --] -- --[[package]] --name = "tikv-jemalloc-sys" --version = "0.5.3+5.3.0-patched" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a678df20055b43e57ef8cddde41cdfda9a3c1a060b67f4c5836dfb1d78543ba8" --dependencies = [ -- "cc", -- "libc", --] -- --[[package]] --name = "tikv-jemallocator" --version = "0.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "20612db8a13a6c06d57ec83953694185a367e16945f66565e8028d2c0bd76979" --dependencies = [ -- "libc", -- "tikv-jemalloc-sys", --] -- --[[package]] --name = "time" --version = "0.1.45" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" --dependencies = [ -- "libc", -- "wasi 0.10.0+wasi-snapshot-preview1", -- "winapi", --] -- --[[package]] --name = "time" --version = "0.2.27" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" --dependencies = [ -- "const_fn", -- "libc", -- "serde", -- "standback", -- "stdweb", -- "time-macros 0.1.1", -- "version_check", -- "winapi", --] -- --[[package]] --name = "time" --version = "0.3.21" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc" --dependencies = [ -- "itoa", -- "serde", -- "time-core", -- "time-macros 0.2.9", --] -- --[[package]] --name = "time-core" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" -- --[[package]] --name = "time-macros" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" --dependencies = [ -- "proc-macro-hack", -- "time-macros-impl", --] -- --[[package]] --name = "time-macros" --version = "0.2.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" --dependencies = [ -- "time-core", --] -- --[[package]] --name = "time-macros-impl" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" --dependencies = [ -- "proc-macro-hack", -- "proc-macro2", -- "quote", -- "standback", -- "syn 1.0.109", --] -- --[[package]] --name = "tinytemplate" --version = "1.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" --dependencies = [ -- "serde", -- "serde_json", --] -- --[[package]] --name = "tinyvec" --version = "1.6.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" --dependencies = [ -- "tinyvec_macros", --] -- --[[package]] --name = "tinyvec_macros" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -- --[[package]] --name = "tokio" --version = "1.28.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105" --dependencies = [ -- "autocfg", -- "bytes", -- "libc", -- "mio", -- "num_cpus", -- "pin-project-lite 0.2.9", -- "signal-hook-registry", -- "socket2", -- "tokio-macros", -- "windows-sys 0.48.0", --] -- --[[package]] --name = "tokio-macros" --version = "2.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "tokio-native-tls" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" --dependencies = [ -- "native-tls", -- "tokio", --] -- --[[package]] --name = "tokio-openssl" --version = "0.6.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c08f9ffb7809f1b20c1b398d92acf4cc719874b3b2b2d9ea2f09b4a80350878a" --dependencies = [ -- "futures-util", -- "openssl", -- "openssl-sys", -- "tokio", --] -- --[[package]] --name = "tokio-stream" --version = "0.1.14" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" --dependencies = [ -- "futures-core", -- "pin-project-lite 0.2.9", -- "tokio", --] -- --[[package]] --name = "tokio-util" --version = "0.7.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" --dependencies = [ -- "bytes", -- "futures-core", -- "futures-sink", -- "pin-project-lite 0.2.9", -- "tokio", -- "tracing", --] -- --[[package]] --name = "toml" --version = "0.5.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" --dependencies = [ -- "serde", --] -- --[[package]] --name = "toml_datetime" --version = "0.6.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f" -- --[[package]] --name = "toml_edit" --version = "0.19.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739" --dependencies = [ -- "indexmap", -- "toml_datetime", -- "winnow", --] -- --[[package]] --name = "touch" --version = "0.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c0ff985ccaedc537018a1b6c7f377d25e16d08aa1fcc5f8f4fba984c7e69cf09" --dependencies = [ -- "log", --] -- --[[package]] --name = "tower-service" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" -- --[[package]] --name = "tracing" --version = "0.1.37" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" --dependencies = [ -- "cfg-if 1.0.0", -- "pin-project-lite 0.2.9", -- "tracing-attributes", -- "tracing-core", --] -- --[[package]] --name = "tracing-attributes" --version = "0.1.24" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "tracing-core" --version = "0.1.31" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" --dependencies = [ -- "once_cell", -- "valuable", --] -- --[[package]] --name = "tracing-forest" --version = "0.1.5" --source = "git+https://github.com/QnnOkabayashi/tracing-forest.git?rev=77daf8c8abf010b87d45ece2bf656983c6f8cecb#77daf8c8abf010b87d45ece2bf656983c6f8cecb" --dependencies = [ -- "smallvec", -- "thiserror", -- "tokio", -- "tracing", -- "tracing-subscriber", -- "uuid", --] -- --[[package]] --name = "tracing-log" --version = "0.1.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" --dependencies = [ -- "lazy_static", -- "log", -- "tracing-core", --] -- --[[package]] --name = "tracing-subscriber" --version = "0.3.17" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" --dependencies = [ -- "matchers", -- "nu-ansi-term", -- "once_cell", -- "regex", -- "sharded-slab", -- "smallvec", -- "thread_local", -- "tracing", -- "tracing-core", -- "tracing-log", --] -- --[[package]] --name = "try-lock" --version = "0.2.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" -- --[[package]] --name = "typenum" --version = "1.16.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" -- --[[package]] --name = "unicode-bidi" --version = "0.3.13" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" -- --[[package]] --name = "unicode-ident" --version = "1.0.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" -- --[[package]] --name = "unicode-normalization" --version = "0.1.22" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" --dependencies = [ -- "tinyvec", --] -- --[[package]] --name = "unicode-width" --version = "0.1.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" -- --[[package]] --name = "unicode-xid" --version = "0.2.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" -- --[[package]] --name = "universal-hash" --version = "0.4.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" --dependencies = [ -- "generic-array 0.14.7", -- "subtle", --] -- --[[package]] --name = "url" --version = "2.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" --dependencies = [ -- "form_urlencoded", -- "idna 0.3.0", -- "percent-encoding", -- "serde", --] -- --[[package]] --name = "urlencoding" --version = "2.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" -- --[[package]] --name = "users" --version = "0.11.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "24cc0f6d6f267b73e5a2cadf007ba8f9bc39c6a6f9666f8cf25ea809a153b032" --dependencies = [ -- "libc", -- "log", --] -- --[[package]] --name = "uuid" --version = "1.3.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "345444e32442451b267fc254ae85a209c64be56d2890e601a0c37ff0c3c5ecd2" --dependencies = [ -- "getrandom 0.2.9", -- "serde", --] -- --[[package]] --name = "valuable" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -- --[[package]] --name = "value-bag" --version = "1.0.0-alpha.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" --dependencies = [ -- "ctor", -- "erased-serde", -- "serde", -- "serde_fmt", -- "sval", -- "version_check", --] -- --[[package]] --name = "vcpkg" --version = "0.2.15" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -- --[[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.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" -- --[[package]] --name = "walkdir" --version = "2.3.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" --dependencies = [ -- "same-file", -- "winapi-util", --] -- --[[package]] --name = "want" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" --dependencies = [ -- "log", -- "try-lock", --] -- --[[package]] --name = "wasi" --version = "0.9.0+wasi-snapshot-preview1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -- --[[package]] --name = "wasi" --version = "0.10.0+wasi-snapshot-preview1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" -- --[[package]] --name = "wasi" --version = "0.11.0+wasi-snapshot-preview1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" -- --[[package]] --name = "wasm-bindgen" --version = "0.2.86" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73" --dependencies = [ -- "cfg-if 1.0.0", -- "serde", -- "serde_json", -- "wasm-bindgen-macro", --] -- --[[package]] --name = "wasm-bindgen-backend" --version = "0.2.86" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb" --dependencies = [ -- "bumpalo", -- "log", -- "once_cell", -- "proc-macro2", -- "quote", -- "syn 2.0.16", -- "wasm-bindgen-shared", --] -- --[[package]] --name = "wasm-bindgen-futures" --version = "0.4.36" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e" --dependencies = [ -- "cfg-if 1.0.0", -- "js-sys", -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "wasm-bindgen-macro" --version = "0.2.86" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258" --dependencies = [ -- "quote", -- "wasm-bindgen-macro-support", --] -- --[[package]] --name = "wasm-bindgen-macro-support" --version = "0.2.86" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", -- "wasm-bindgen-backend", -- "wasm-bindgen-shared", --] -- --[[package]] --name = "wasm-bindgen-shared" --version = "0.2.86" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93" -- --[[package]] --name = "wasm-bindgen-test" --version = "0.3.36" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c9e636f3a428ff62b3742ebc3c70e254dfe12b8c2b469d688ea59cdd4abcf502" --dependencies = [ -- "console_error_panic_hook", -- "js-sys", -- "scoped-tls", -- "wasm-bindgen", -- "wasm-bindgen-futures", -- "wasm-bindgen-test-macro", --] -- --[[package]] --name = "wasm-bindgen-test-macro" --version = "0.3.36" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f18c1fad2f7c4958e7bcce014fa212f59a65d5e3721d0f77e6c0b27ede936ba3" --dependencies = [ -- "proc-macro2", -- "quote", --] -- --[[package]] --name = "web-sys" --version = "0.3.63" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2" --dependencies = [ -- "js-sys", -- "wasm-bindgen", --] -- --[[package]] --name = "webauthn-authenticator-rs" --version = "0.4.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "603b8602cae2d6c3706b6195765ff582389494d10c442d84a1de2ed5a25679ef" --dependencies = [ -- "authenticator-ctap2-2021", -- "base64urlsafedata", -- "nom", -- "openssl", -- "rpassword 5.0.1", -- "serde", -- "serde_cbor_2", -- "serde_json", -- "tracing", -- "url", -- "uuid", -- "webauthn-rs-proto", -- "windows 0.41.0", --] -- --[[package]] --name = "webauthn-rs" --version = "0.4.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2db00711c712414e93b019c4596315085792215bc2ac2d5872f9e8913b0a6316" --dependencies = [ -- "base64urlsafedata", -- "serde", -- "tracing", -- "url", -- "uuid", -- "webauthn-rs-core", --] -- --[[package]] --name = "webauthn-rs-core" --version = "0.4.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "294c78c83f12153a51e1cf1e6970b5da1397645dada39033a9c3173a8fc4fc2b" --dependencies = [ -- "base64 0.13.1", -- "base64urlsafedata", -- "compact_jwt", -- "der-parser", -- "nom", -- "openssl", -- "rand 0.8.5", -- "serde", -- "serde_cbor_2", -- "serde_json", -- "thiserror", -- "tracing", -- "url", -- "uuid", -- "webauthn-rs-proto", -- "x509-parser", --] -- --[[package]] --name = "webauthn-rs-proto" --version = "0.4.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d24e638361a63ba5c0a0be6a60229490fcdf33740ed63df5bb6bdb627b52a138" --dependencies = [ -- "base64urlsafedata", -- "js-sys", -- "serde", -- "serde-wasm-bindgen", -- "serde_json", -- "url", -- "wasm-bindgen", -- "web-sys", --] -- --[[package]] --name = "whoami" --version = "1.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2c70234412ca409cc04e864e89523cb0fc37f5e1344ebed5a3ebf4192b6b9f68" --dependencies = [ -- "wasm-bindgen", -- "web-sys", --] -- --[[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-util" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" --dependencies = [ -- "winapi", --] -- --[[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" --version = "0.41.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5a3ed69de2c1f8d0524a8a3417a80a85dd316a071745fbfdf5eb028b310058ab" --dependencies = [ -- "windows_aarch64_gnullvm 0.41.0", -- "windows_aarch64_msvc 0.41.0", -- "windows_i686_gnu 0.41.0", -- "windows_i686_msvc 0.41.0", -- "windows_x86_64_gnu 0.41.0", -- "windows_x86_64_gnullvm 0.41.0", -- "windows_x86_64_msvc 0.41.0", --] -- --[[package]] --name = "windows" --version = "0.48.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" --dependencies = [ -- "windows-targets 0.48.0", --] -- --[[package]] --name = "windows-sys" --version = "0.42.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" --dependencies = [ -- "windows_aarch64_gnullvm 0.42.2", -- "windows_aarch64_msvc 0.42.2", -- "windows_i686_gnu 0.42.2", -- "windows_i686_msvc 0.42.2", -- "windows_x86_64_gnu 0.42.2", -- "windows_x86_64_gnullvm 0.42.2", -- "windows_x86_64_msvc 0.42.2", --] -- --[[package]] --name = "windows-sys" --version = "0.45.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" --dependencies = [ -- "windows-targets 0.42.2", --] -- --[[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.0", --] -- --[[package]] --name = "windows-targets" --version = "0.42.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" --dependencies = [ -- "windows_aarch64_gnullvm 0.42.2", -- "windows_aarch64_msvc 0.42.2", -- "windows_i686_gnu 0.42.2", -- "windows_i686_msvc 0.42.2", -- "windows_x86_64_gnu 0.42.2", -- "windows_x86_64_gnullvm 0.42.2", -- "windows_x86_64_msvc 0.42.2", --] -- --[[package]] --name = "windows-targets" --version = "0.48.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" --dependencies = [ -- "windows_aarch64_gnullvm 0.48.0", -- "windows_aarch64_msvc 0.48.0", -- "windows_i686_gnu 0.48.0", -- "windows_i686_msvc 0.48.0", -- "windows_x86_64_gnu 0.48.0", -- "windows_x86_64_gnullvm 0.48.0", -- "windows_x86_64_msvc 0.48.0", --] -- --[[package]] --name = "windows_aarch64_gnullvm" --version = "0.41.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "163d2761774f2278ecb4e6719e80b2b5e92e5a2be73a7bcd3ef624dd5e3091fd" -- --[[package]] --name = "windows_aarch64_gnullvm" --version = "0.42.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" -- --[[package]] --name = "windows_aarch64_gnullvm" --version = "0.48.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" -- --[[package]] --name = "windows_aarch64_msvc" --version = "0.41.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ef005ff2bceb00d3b84166a359cc19084f9459754fd3fe5a504dee3dddcd0a0c" -- --[[package]] --name = "windows_aarch64_msvc" --version = "0.42.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" -- --[[package]] --name = "windows_aarch64_msvc" --version = "0.48.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" -- --[[package]] --name = "windows_i686_gnu" --version = "0.41.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "02b4df2d51e32f03f8b4b228e487828c03bcb36d97b216fc5463bcea5bb1440b" -- --[[package]] --name = "windows_i686_gnu" --version = "0.42.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" -- --[[package]] --name = "windows_i686_gnu" --version = "0.48.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" -- --[[package]] --name = "windows_i686_msvc" --version = "0.41.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "568a966834571f2f3267f07dd72b4d8507381f25e53d056808483b2637385ef7" -- --[[package]] --name = "windows_i686_msvc" --version = "0.42.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" -- --[[package]] --name = "windows_i686_msvc" --version = "0.48.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" -- --[[package]] --name = "windows_x86_64_gnu" --version = "0.41.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fc395dac1adf444e276d096d933ae7961361c8cda3245cffef7a9b3a70a8f994" -- --[[package]] --name = "windows_x86_64_gnu" --version = "0.42.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" -- --[[package]] --name = "windows_x86_64_gnu" --version = "0.48.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" -- --[[package]] --name = "windows_x86_64_gnullvm" --version = "0.41.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "90e8ec22b715d5b436e1d59c8adad6c744dc20cd984710121d5836b4e8dbb5e0" -- --[[package]] --name = "windows_x86_64_gnullvm" --version = "0.42.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" -- --[[package]] --name = "windows_x86_64_gnullvm" --version = "0.48.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" -- --[[package]] --name = "windows_x86_64_msvc" --version = "0.41.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8b9761f0216b669019df1512f6e25e5ee779bf61c5cdc43c7293858e7efd7926" -- --[[package]] --name = "windows_x86_64_msvc" --version = "0.42.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" -- --[[package]] --name = "windows_x86_64_msvc" --version = "0.48.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" -- --[[package]] --name = "winnow" --version = "0.4.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" --dependencies = [ -- "memchr", --] -- --[[package]] --name = "winreg" --version = "0.10.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" --dependencies = [ -- "winapi", --] -- --[[package]] --name = "x509-parser" --version = "0.13.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c" --dependencies = [ -- "asn1-rs", -- "base64 0.13.1", -- "data-encoding", -- "der-parser", -- "lazy_static", -- "nom", -- "oid-registry", -- "rusticata-macros", -- "thiserror", -- "time 0.3.21", --] -- --[[package]] --name = "yew" --version = "0.20.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5dbecfe44343b70cc2932c3eb445425969ae21754a8ab3a0966981c1cf7af1cc" --dependencies = [ -- "console_error_panic_hook", -- "futures", -- "gloo", -- "implicit-clone", -- "indexmap", -- "js-sys", -- "prokio", -- "rustversion", -- "serde", -- "slab", -- "thiserror", -- "tokio", -- "tracing", -- "wasm-bindgen", -- "wasm-bindgen-futures", -- "web-sys", -- "yew-macro", --] -- --[[package]] --name = "yew-macro" --version = "0.20.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b64c253c1d401f1ea868ca9988db63958cfa15a69f739101f338d6f05eea8301" --dependencies = [ -- "boolinator", -- "once_cell", -- "prettyplease", -- "proc-macro-error", -- "proc-macro2", -- "quote", -- "syn 1.0.109", --] -- --[[package]] --name = "yew-router" --version = "0.17.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "426ee0486d2572a6c5e39fbdbc48b58d59bb555f3326f54631025266cf04146e" --dependencies = [ -- "gloo", -- "js-sys", -- "route-recognizer 0.3.1", -- "serde", -- "serde_urlencoded", -- "tracing", -- "wasm-bindgen", -- "web-sys", -- "yew", -- "yew-router-macro", --] -- --[[package]] --name = "yew-router-macro" --version = "0.17.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "89b249cdb39e0cddaf0644dedc781854524374664793479fdc01e6a65d6e6ae3" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 1.0.109", --] -- --[[package]] --name = "zeroize" --version = "1.6.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" --dependencies = [ -- "zeroize_derive", --] -- --[[package]] --name = "zeroize_derive" --version = "1.4.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" --dependencies = [ -- "proc-macro2", -- "quote", -- "syn 2.0.16", --] -- --[[package]] --name = "zxcvbn" --version = "2.2.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "103fa851fff70ea29af380e87c25c48ff7faac5c530c70bd0e65366d4e0c94e4" --dependencies = [ -- "derive_builder", -- "fancy-regex", -- "itertools", -- "js-sys", -- "lazy_static", -- "quick-error", -- "regex", -- "time 0.3.21", --] -diff --git a/pkgs/servers/kanidm/default.nix b/pkgs/servers/kanidm/default.nix -index d5ae310dd54647..e6c49b846f4be4 100644 ---- a/pkgs/servers/kanidm/default.nix -+++ b/pkgs/servers/kanidm/default.nix -@@ -4,13 +4,13 @@ - , nixosTests - , rustPlatform - , fetchFromGitHub --, fetchpatch - , installShellFiles - , pkg-config - , udev - , openssl - , sqlite - , pam -+, bashInteractive - }: - - let -@@ -18,45 +18,35 @@ let - in - rustPlatform.buildRustPackage rec { - pname = "kanidm"; -- version = "1.1.0-alpha.12"; -+ version = "1.1.0-beta.13"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; -- rev = "f5924443f08e462067937a5dd0e2c19e5e1255da"; -- hash = "sha256-kJUxVrGpczIdOqKQbgRp1xERfKP6C0SDQgWdjtSuvZ8="; -+ # Latest 1.1.0-beta.13 tip -+ rev = "5d1e2f90e6901017ab3ef9b5fbc10e25a5451fd2"; -+ hash = "sha256-70yeHVOrCuC+H96UC84kly3CCQ+y1RGzF5K/2FIag/o="; - }; - -- cargoLock = { -- lockFile = ./Cargo.lock; -- outputHashes = { -- "tracing-forest-0.1.5" = "sha256-L6auSKB4DCnZBZpx7spiikhSOD6i1W3erc3zjn+26Ao="; -- }; -- }; -+ cargoHash = "sha256-Qdc+E5+k9NNE4s6eAnpkam56pc2JJPahkuT4lB328cY="; - - KANIDM_BUILD_PROFILE = "release_nixos_${arch}"; - -- patches = [ -- (fetchpatch { -- # Bring back x86_64-v1 microarchitecture level -- name = "cpu-opt-level.patch"; -- url = "https://github.com/kanidm/kanidm/commit/59c6723f7dfb2266eae45c3b2ddd377872a7a113.patch"; -- hash = "sha256-8rVEYitxvdVduQ/+AD/UG3v+mgT/VxkLoxNIXczUfCQ="; -- }) -- ]; -- - postPatch = - let - format = (formats.toml { }).generate "${KANIDM_BUILD_PROFILE}.toml"; - profile = { -- web_ui_pkg_path = "@web_ui_pkg_path@"; -+ admin_bind_path = "/run/kanidmd/sock"; - cpu_flags = if stdenv.isx86_64 then "x86_64_legacy" else "none"; -+ default_config_path = "/etc/kanidm/server.toml"; -+ default_unix_shell_path = "${lib.getBin bashInteractive}/bin/bash"; -+ web_ui_pkg_path = "@web_ui_pkg_path@"; - }; - in - '' - cp ${format profile} libs/profiles/${KANIDM_BUILD_PROFILE}.toml - substituteInPlace libs/profiles/${KANIDM_BUILD_PROFILE}.toml \ -- --replace '@web_ui_pkg_path@' "$out/ui" -+ --replace '@web_ui_pkg_path@' "${placeholder "out"}/ui" - ''; - - nativeBuildInputs = [ -@@ -92,6 +82,7 @@ rustPlatform.buildRustPackage rec { - passthru.tests = { inherit (nixosTests) kanidm; }; - - meta = with lib; { -+ changelog = "https://github.com/kanidm/kanidm/releases/tag/v${version}"; - description = "A simple, secure and fast identity management platform"; - homepage = "https://github.com/kanidm/kanidm"; - license = licenses.mpl20; diff --git a/nix-patches/248184.patch b/nix-patches/248184.patch deleted file mode 100644 index d521f5e..0000000 --- a/nix-patches/248184.patch +++ /dev/null @@ -1,1235 +0,0 @@ -From 27e3b694e7153ba8e5780fba6cf8f7ef447c1062 Mon Sep 17 00:00:00 2001 -From: Pol Dellaiera -Date: Mon, 12 Jun 2023 08:43:49 +0200 -Subject: [PATCH 1/9] composer-local-repo-plugin: init at 1.0.0 - ---- - .../php/composer-local-repo-plugin.nix | 110 ++++++++++++++++++ - pkgs/top-level/all-packages.nix | 5 + - 2 files changed, 115 insertions(+) - create mode 100644 pkgs/build-support/php/composer-local-repo-plugin.nix - -diff --git a/pkgs/build-support/php/composer-local-repo-plugin.nix b/pkgs/build-support/php/composer-local-repo-plugin.nix -new file mode 100644 -index 00000000000000..81672762618dca ---- /dev/null -+++ b/pkgs/build-support/php/composer-local-repo-plugin.nix -@@ -0,0 +1,110 @@ -+{ stdenvNoCC, lib, fetchFromGitHub, composer, makeBinaryWrapper }: -+ -+let -+ composerKeys = stdenvNoCC.mkDerivation (finalComposerKeysAttrs: { -+ pname = "composer-keys"; -+ version = "fa5a62092f33e094073fbda23bbfc7188df3cbc5"; -+ -+ src = fetchFromGitHub { -+ owner = "composer"; -+ repo = "composer.github.io"; -+ rev = "${finalComposerKeysAttrs.version}"; -+ hash = "sha256-3Sfn71LDG1jHwuEIU8iEnV3k6D6QTX7KVIKVaNSuCVE="; -+ }; -+ -+ installPhase = '' -+ runHook preInstall -+ -+ mkdir -p $out -+ install releases.pub $out/keys.tags.pub -+ install snapshots.pub $out/keys.dev.pub -+ -+ runHook postInstall -+ ''; -+ }); -+in -+stdenvNoCC.mkDerivation (finalAttrs: { -+ pname = "composer-local-repo-plugin"; -+ version = "1.0.0"; -+ -+ src = fetchFromGitHub { -+ owner = "nix-community"; -+ repo = "composer-local-repo-plugin"; -+ rev = finalAttrs.version; -+ hash = "sha256-sjWV4JXK8YJ5XLASMPipKlk9u57352wIDV2PPFIP+sk="; -+ }; -+ -+ COMPOSER_CACHE_DIR = "/dev/null"; -+ COMPOSER_MIRROR_PATH_REPOS = "1"; -+ COMPOSER_HTACCESS_PROTECT = "0"; -+ COMPOSER_DISABLE_NETWORK = "1"; -+ -+ nativeBuildInputs = [ -+ makeBinaryWrapper -+ ]; -+ -+ buildInputs = [ -+ composer -+ ]; -+ -+ configurePhase = '' -+ runHook preConfigure -+ -+ export COMPOSER_HOME=${placeholder "out"} -+ -+ runHook postConfigure -+ ''; -+ -+ buildPhase = '' -+ runHook preBuild -+ -+ # Configure composer globally -+ composer global init --quiet --no-interaction --no-ansi \ -+ --name="nixos/composer" \ -+ --homepage "https://nixos.org/" \ -+ --description "Composer with nix-community/composer-local-repo-plugin" \ -+ --license "MIT" -+ -+ composer global config --quiet minimum-stability dev -+ composer global config --quiet prefer-stable true -+ composer global config --quiet autoloader-suffix "nixPredictableAutoloaderSuffix" -+ composer global config --quiet apcu-autoloader false -+ composer global config --quiet allow-plugins.nix-community/composer-local-repo-plugin true -+ composer global config --quiet repo.packagist false -+ composer global config --quiet repo.plugin path $src -+ -+ # Install the local repository plugin -+ composer global require --quiet --no-ansi --no-interaction nix-community/composer-local-repo-plugin -+ -+ runHook postBuild -+ ''; -+ -+ checkPhase = '' -+ runHook preCheck -+ -+ composer global validate --no-ansi -+ composer global show --no-ansi nix-community/composer-local-repo-plugin -+ -+ runHook postCheck -+ ''; -+ -+ installPhase = '' -+ runHook preInstall -+ -+ mkdir -p $out -+ cp -ar ${composerKeys}/* $out/ -+ -+ makeWrapper ${composer}/bin/composer $out/bin/composer-local-repo-plugin \ -+ --prefix COMPOSER_HOME : $out -+ -+ runHook postInstall -+ ''; -+ -+ meta = { -+ description = "Composer local repo plugin for Composer"; -+ homepage = "https://github.com/nix-community/composer-local-repo-plugin"; -+ license = lib.licenses.mit; -+ maintainers = with lib.maintainers; [ drupol ]; -+ platforms = lib.platforms.all; -+ }; -+}) -diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix -index 256885a8ce9516..580a09e341726e 100644 ---- a/pkgs/top-level/all-packages.nix -+++ b/pkgs/top-level/all-packages.nix -@@ -17991,6 +17991,11 @@ with pkgs; - - - # PHP interpreters, packages and extensions. -+ -+ composer = callPackage ../development/tools/misc/composer { }; -+ -+ composer-local-repo-plugin = callPackage ../build-support/php/composer-local-repo-plugin.nix {}; -+ - # - # Set default PHP interpreter, extensions and packages - php = php82; - -From b36ad2f51797d82ddd4479835c0edd71b3386865 Mon Sep 17 00:00:00 2001 -From: Pol Dellaiera -Date: Sun, 9 Apr 2023 11:53:42 +0200 -Subject: [PATCH 2/9] php: add new builder `buildComposerProject` - ---- - .../php/build-composer-project.nix | 61 ++++++++++ - .../php/build-composer-repository.nix | 79 +++++++++++++ - pkgs/build-support/{ => php}/build-pecl.nix | 0 - .../php/hooks/composer-install-hook.sh | 109 ++++++++++++++++++ - .../php/hooks/composer-repository-hook.sh | 66 +++++++++++ - pkgs/build-support/php/hooks/default.nix | 21 ++++ - pkgs/development/interpreters/php/generic.nix | 2 +- - pkgs/top-level/php-packages.nix | 11 +- - 9 files changed, 347 insertions(+), 5 deletions(-) - create mode 100644 pkgs/build-support/php/build-composer-project.nix - create mode 100644 pkgs/build-support/php/build-composer-repository.nix - rename pkgs/build-support/{ => php}/build-pecl.nix (100%) - create mode 100644 pkgs/build-support/php/hooks/composer-install-hook.sh - create mode 100644 pkgs/build-support/php/hooks/composer-repository-hook.sh - create mode 100644 pkgs/build-support/php/hooks/default.nix - -diff --git a/pkgs/build-support/php/build-composer-project.nix b/pkgs/build-support/php/build-composer-project.nix -new file mode 100644 -index 00000000000000..f9589ace1309c1 ---- /dev/null -+++ b/pkgs/build-support/php/build-composer-project.nix -@@ -0,0 +1,61 @@ -+{ stdenvNoCC, lib, writeTextDir, php, makeBinaryWrapper, fetchFromGitHub, fetchurl, composer-local-repo-plugin }: -+ -+let -+ buildComposerProjectOverride = finalAttrs: previousAttrs: -+ -+ let -+ phpDrv = finalAttrs.php or php; -+ composer = finalAttrs.composer or phpDrv.packages.composer; -+ composerLock = finalAttrs.composerLock or null; -+ in -+ { -+ nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ -+ composer -+ composer-local-repo-plugin -+ phpDrv.composerHooks.composerInstallHook -+ ]; -+ -+ buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ -+ phpDrv -+ ]; -+ -+ patches = previousAttrs.patches or [ ]; -+ strictDeps = previousAttrs.strictDeps or true; -+ -+ # Should we keep these empty phases? -+ configurePhase = previousAttrs.configurePhase or '' -+ runHook preConfigure -+ -+ runHook postConfigure -+ ''; -+ -+ buildPhase = previousAttrs.buildPhase or '' -+ runHook preBuild -+ -+ runHook postBuild -+ ''; -+ -+ doCheck = previousAttrs.doCheck or true; -+ checkPhase = previousAttrs.checkPhase or '' -+ runHook preCheck -+ -+ runHook postCheck -+ ''; -+ -+ installPhase = previousAttrs.installPhase or '' -+ runHook preInstall -+ -+ runHook postInstall -+ ''; -+ -+ composerRepository = phpDrv.mkComposerRepository { -+ inherit composer composer-local-repo-plugin composerLock; -+ inherit (finalAttrs) patches pname src vendorHash version; -+ }; -+ -+ meta = previousAttrs.meta or { } // { -+ platforms = lib.platforms.all; -+ }; -+ }; -+in -+args: (stdenvNoCC.mkDerivation args).overrideAttrs buildComposerProjectOverride -diff --git a/pkgs/build-support/php/build-composer-repository.nix b/pkgs/build-support/php/build-composer-repository.nix -new file mode 100644 -index 00000000000000..7a7ba6f146c0a8 ---- /dev/null -+++ b/pkgs/build-support/php/build-composer-repository.nix -@@ -0,0 +1,79 @@ -+{ stdenvNoCC, lib, writeTextDir, fetchFromGitHub, php, composer-local-repo-plugin }: -+ -+let -+ mkComposerRepositoryOverride = -+ /* -+ We cannot destruct finalAttrs since the attrset below is used to construct it -+ and Nix currently does not support lazy attribute names. -+ { -+ php ? null, -+ composer ? null, -+ composerLock ? "composer.lock", -+ src, -+ vendorHash, -+ ... -+ }@finalAttrs: -+ */ -+ finalAttrs: previousAttrs: -+ -+ let -+ phpDrv = finalAttrs.php or php; -+ composer = finalAttrs.composer or phpDrv.packages.composer; -+ in -+ assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument."); -+ assert (lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument."); -+ assert (lib.assertMsg (previousAttrs ? version) "mkComposerRepository expects version argument."); -+ assert (lib.assertMsg (previousAttrs ? pname) "mkComposerRepository expects pname argument."); -+ { -+ name = "${previousAttrs.pname}-${previousAttrs.version}-composer-repository"; -+ -+ # See https://github.com/NixOS/nix/issues/6660 -+ dontPatchShebangs = previousAttrs.dontPatchShebangs or true; -+ -+ nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ -+ composer -+ composer-local-repo-plugin -+ phpDrv.composerHooks.composerRepositoryHook -+ ]; -+ -+ buildInputs = previousAttrs.buildInputs or [ ]; -+ -+ strictDeps = previousAttrs.strictDeps or true; -+ -+ # Should we keep these empty phases? -+ configurePhase = previousAttrs.configurePhase or '' -+ runHook preConfigure -+ -+ runHook postConfigure -+ ''; -+ -+ buildPhase = previousAttrs.buildPhase or '' -+ runHook preBuild -+ -+ runHook postBuild -+ ''; -+ -+ doCheck = previousAttrs.doCheck or true; -+ checkPhase = previousAttrs.checkPhase or '' -+ runHook preCheck -+ -+ runHook postCheck -+ ''; -+ -+ installPhase = previousAttrs.installPhase or '' -+ runHook preInstall -+ -+ runHook postInstall -+ ''; -+ -+ COMPOSER_CACHE_DIR = "/dev/null"; -+ COMPOSER_MIRROR_PATH_REPOS = "1"; -+ COMPOSER_HTACCESS_PROTECT = "0"; -+ COMPOSER_DISABLE_NETWORK = "0"; -+ -+ outputHashMode = "recursive"; -+ outputHashAlgo = if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256"; -+ outputHash = finalAttrs.vendorHash or ""; -+ }; -+in -+args: (stdenvNoCC.mkDerivation args).overrideAttrs mkComposerRepositoryOverride -diff --git a/pkgs/build-support/build-pecl.nix b/pkgs/build-support/php/build-pecl.nix -similarity index 100% -rename from pkgs/build-support/build-pecl.nix -rename to pkgs/build-support/php/build-pecl.nix -diff --git a/pkgs/build-support/php/hooks/composer-install-hook.sh b/pkgs/build-support/php/hooks/composer-install-hook.sh -new file mode 100644 -index 00000000000000..139f6357c5d79a ---- /dev/null -+++ b/pkgs/build-support/php/hooks/composer-install-hook.sh -@@ -0,0 +1,109 @@ -+declare composerHomeDir -+declare composerRepository -+declare version -+ -+preConfigureHooks+=(composerInstallConfigureHook) -+preBuildHooks+=(composerInstallBuildHook) -+preCheckHooks+=(composerInstallCheckHook) -+preInstallHooks+=(composerInstallInstallHook) -+ -+composerInstallConfigureHook() { -+ echo "Executing composerInstallConfigureHook" -+ -+ if [[ ! -e "${composerRepository}" ]]; then -+ echo "No local composer repository found." -+ exit 1 -+ fi -+ -+ if [[ -e "$composerLock" ]]; then -+ cp $composerLock composer.lock -+ fi -+ -+ if [[ ! -f "composer.lock" ]]; then -+ echo "No composer.lock file found, consider adding one to your repository to ensure reproducible builds." -+ -+ if [[ -f "${composerRepository}/composer.lock" ]]; then -+ cp ${composerRepository}/composer.lock composer.lock -+ fi -+ -+ echo "Using an autogenerated composer.lock file." -+ fi -+ -+ chmod +w composer.json composer.lock -+ -+ echo "Finished composerInstallConfigureHook" -+} -+ -+composerInstallBuildHook() { -+ echo "Executing composerInstallBuildHook" -+ -+ # Since this file cannot be generated in the composer-repository-hook.sh -+ # because the file contains hardcoded nix store paths, we generate it here. -+ composer-local-repo-plugin --no-ansi build-local-repo -p ${composerRepository} > packages.json -+ -+ # Remove all the repositories of type "composer" -+ # from the composer.json file. -+ jq -r -c 'del(try .repositories[] | select(.type == "composer"))' composer.json | sponge composer.json -+ -+ # Configure composer to disable packagist and avoid using the network. -+ composer config repo.packagist false -+ # Configure composer to use the local repository. -+ composer config repo.composer composer file://$PWD/packages.json -+ -+ # Since the composer.json file has been modified in the previous step, the -+ # composer.lock file needs to be updated. -+ COMPOSER_DISABLE_NETWORK=1 \ -+ COMPOSER_ROOT_VERSION="${version}" \ -+ composer \ -+ --lock \ -+ --no-ansi \ -+ --no-install \ -+ --no-interaction \ -+ --no-plugins \ -+ --no-scripts \ -+ update -+ -+ echo "Finished composerInstallBuildHook" -+} -+ -+composerInstallCheckHook() { -+ echo "Executing composerInstallCheckHook" -+ -+ composer validate --no-ansi --no-interaction -+ -+ echo "Finished composerInstallCheckHook" -+} -+ -+composerInstallInstallHook() { -+ echo "Executing composerInstallInstallHook" -+ -+ # Finally, run `composer install` to install the dependencies and generate -+ # the autoloader. -+ # The COMPOSER_ROOT_VERSION environment variable is needed only for -+ # vimeo/psalm. -+ COMPOSER_CACHE_DIR=/dev/null \ -+ COMPOSER_DISABLE_NETWORK=1 \ -+ COMPOSER_ROOT_VERSION="${version}" \ -+ COMPOSER_MIRROR_PATH_REPOS="1" \ -+ composer \ -+ --no-ansi \ -+ --no-interaction \ -+ --no-scripts \ -+ --no-plugins \ -+ install -+ -+ # Remove packages.json, we don't need it in the store. -+ rm packages.json -+ -+ # Copy the relevant files only in the store. -+ mkdir -p $out/share/php/${pname} -+ cp -r . $out/share/php/${pname}/ -+ -+ # Create symlinks for the binaries. -+ jq -r -c 'try .bin[]' composer.json | while read bin; do -+ mkdir -p $out/share/php/${pname} $out/bin -+ ln -s $out/share/php/${pname}/$bin $out/bin/$(basename $bin) -+ done -+ -+ echo "Finished composerInstallInstallHook" -+} -diff --git a/pkgs/build-support/php/hooks/composer-repository-hook.sh b/pkgs/build-support/php/hooks/composer-repository-hook.sh -new file mode 100644 -index 00000000000000..707c944522563e ---- /dev/null -+++ b/pkgs/build-support/php/hooks/composer-repository-hook.sh -@@ -0,0 +1,66 @@ -+declare composerHomeDir -+declare composerLock -+declare version -+ -+preConfigureHooks+=(composerRepositoryConfigureHook) -+preBuildHooks+=(composerRepositoryBuildHook) -+preCheckHooks+=(composerRepositoryCheckHook) -+preInstallHooks+=(composerRepositoryInstallHook) -+ -+composerRepositoryConfigureHook() { -+ echo "Executing composerRepositoryConfigureHook" -+ -+ if [[ -e "$composerLock" ]]; then -+ cp $composerLock composer.lock -+ fi -+ -+ if [[ ! -f "composer.lock" ]]; then -+ echo "No composer.lock file found, consider adding one to your repository to ensure reproducible builds." -+ composer \ -+ --no-ansi \ -+ --no-install \ -+ --no-interaction \ -+ --no-plugins \ -+ --no-scripts \ -+ update -+ echo "Using an autogenerated composer.lock file." -+ fi -+ -+ echo "Finished composerRepositoryConfigureHook" -+} -+ -+composerRepositoryBuildHook() { -+ echo "Executing composerRepositoryBuildHook" -+ -+ mkdir -p repository -+ -+ # Build the local composer repository -+ # The command 'build-local-repo' is provided by the Composer plugin -+ # nix-community/composer-local-repo-plugin. -+ COMPOSER_CACHE_DIR=/dev/null \ -+ composer-local-repo-plugin --no-ansi build-local-repo -r repository -+ -+ echo "Finished composerRepositoryBuildHook" -+} -+ -+composerRepositoryCheckHook() { -+ echo "Executing composerRepositoryCheckHook" -+ -+ composer validate --no-ansi --no-interaction -+ -+ echo "Finished composerRepositoryCheckHook" -+} -+ -+composerRepositoryInstallHook() { -+ echo "Executing composerRepositoryInstallHook" -+ -+ mkdir -p $out -+ -+ cp -ar repository/. $out/ -+ -+ # Copy the composer.lock files to the output directory, in case it has been -+ # autogenerated. -+ cp composer.lock $out/ -+ -+ echo "Finished composerRepositoryInstallHook" -+} -diff --git a/pkgs/build-support/php/hooks/default.nix b/pkgs/build-support/php/hooks/default.nix -new file mode 100644 -index 00000000000000..98198f0128795d ---- /dev/null -+++ b/pkgs/build-support/php/hooks/default.nix -@@ -0,0 +1,21 @@ -+{ makeSetupHook -+, php -+, jq -+, moreutils -+}: -+ -+{ -+ composerRepositoryHook = makeSetupHook -+ { -+ name = "composer-repository-hook.sh"; -+ propagatedBuildInputs = [ php jq moreutils ]; -+ substitutions = { }; -+ } ./composer-repository-hook.sh; -+ -+ composerInstallHook = makeSetupHook -+ { -+ name = "composer-install-hook.sh"; -+ propagatedBuildInputs = [ php jq moreutils ]; -+ substitutions = { }; -+ } ./composer-install-hook.sh; -+} -diff --git a/pkgs/development/interpreters/php/generic.nix b/pkgs/development/interpreters/php/generic.nix -index cee1e833f9a636..38ac50081423a0 100644 ---- a/pkgs/development/interpreters/php/generic.nix -+++ b/pkgs/development/interpreters/php/generic.nix -@@ -159,7 +159,7 @@ let - nixos = lib.recurseIntoAttrs nixosTests."php${lib.strings.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor php.version)}"; - package = tests.php; - }; -- inherit (php-packages) extensions buildPecl mkExtension; -+ inherit (php-packages) extensions buildPecl mkComposerRepository buildComposerProject composerHooks mkExtension; - packages = php-packages.tools; - meta = php.meta // { - outputsToInstall = [ "out" ]; -diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix -index 7430c98586b7b8..aad260fc3c0041 100644 ---- a/pkgs/top-level/php-packages.nix -+++ b/pkgs/top-level/php-packages.nix -@@ -1,4 +1,6 @@ - { stdenv -+, config -+, callPackages - , lib - , pkgs - , phpPackage -@@ -44,12 +46,15 @@ - }: - - lib.makeScope pkgs.newScope (self: with self; { -- buildPecl = import ../build-support/build-pecl.nix { -+ buildPecl = callPackage ../build-support/php/build-pecl.nix { - php = php.unwrapped; -- inherit lib; -- inherit (pkgs) stdenv autoreconfHook fetchurl re2c nix-update-script; - }; - -+ composerHooks = callPackages ../build-support/php/hooks { }; -+ -+ mkComposerRepository = callPackage ../build-support/php/build-composer-repository.nix { }; -+ buildComposerProject = callPackage ../build-support/php/build-composer-project.nix { }; -+ - # Wrap mkDerivation to prepend pname with "php-" to make names consistent - # with how buildPecl does it and make the file easier to overview. - mkDerivation = origArgs: - -From 248e8f3cba2982e33aae8572cf5243b5e8c94027 Mon Sep 17 00:00:00 2001 -From: Pol Dellaiera -Date: Fri, 14 Apr 2023 12:33:57 +0200 -Subject: [PATCH 3/9] phpPackages.composer: use `buildComposerProject` builder - ---- - .../php-packages/composer/default.nix | 31 +++++++++---------- - 1 file changed, 15 insertions(+), 16 deletions(-) - -diff --git a/pkgs/development/php-packages/composer/default.nix b/pkgs/development/php-packages/composer/default.nix -index 9cefb46d8e67ec..2d0e7c579d5f2e 100644 ---- a/pkgs/development/php-packages/composer/default.nix -+++ b/pkgs/development/php-packages/composer/default.nix -@@ -1,33 +1,32 @@ --{ mkDerivation, fetchurl, makeBinaryWrapper, unzip, lib, php }: -+{ lib, callPackage, fetchFromGitHub, php, unzip, _7zz, xz, git, curl, cacert, makeBinaryWrapper }: -+ -+php.buildComposerProject (finalAttrs: { -+ composer = callPackage ../../../build-support/php/pkgs/composer-phar.nix { }; - --mkDerivation rec { - pname = "composer"; -- version = "2.5.5"; -+ version = "2.6.2"; - -- src = fetchurl { -- url = "https://github.com/composer/composer/releases/download/${version}/composer.phar"; -- sha256 = "sha256-VmptHPS+HMOsiC0qKhOBf/rlTmD1qnyRN0NIEKWAn/w="; -+ src = fetchFromGitHub { -+ owner = "composer"; -+ repo = "composer"; -+ rev = finalAttrs.version; -+ hash = "sha256-tNc0hP41aRk7MmeWXCd73uHxK9pk1tCWyjiSO568qbE="; - }; - -- dontUnpack = true; -- - nativeBuildInputs = [ makeBinaryWrapper ]; - -- installPhase = '' -- runHook preInstall -- mkdir -p $out/bin -- install -D $src $out/libexec/composer/composer.phar -- makeWrapper ${php}/bin/php $out/bin/composer \ -- --add-flags "$out/libexec/composer/composer.phar" \ -- --prefix PATH : ${lib.makeBinPath [ unzip ]} -- runHook postInstall -+ postInstall = '' -+ wrapProgram $out/bin/composer \ -+ --prefix PATH : ${lib.makeBinPath [ _7zz cacert curl git unzip xz ]} - ''; - -- meta = with lib; { -+ vendorHash = "sha256-V6C4LxEfXNWH/pCKATv1gf8f6/a0s/xu5j5bNJUNmnA="; -+ -+ meta = { -+ changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}"; - description = "Dependency Manager for PHP"; -- license = licenses.mit; - homepage = "https://getcomposer.org/"; -- changelog = "https://github.com/composer/composer/releases/tag/${version}"; -- maintainers = with maintainers; [ offline ] ++ teams.php.members; -+ license = lib.licenses.mit; -+ maintainers = lib.teams.php.members; - }; --} -+}) - -From c0c01910ce63b0490246bef8df380ea42a29cb49 Mon Sep 17 00:00:00 2001 -From: Pol Dellaiera -Date: Fri, 21 Apr 2023 11:53:17 +0200 -Subject: [PATCH 4/9] php: update documentation - ---- - doc/languages-frameworks/php.section.md | 140 +++++++++++++++++++++++- - 1 file changed, 139 insertions(+), 1 deletion(-) - -diff --git a/doc/languages-frameworks/php.section.md b/doc/languages-frameworks/php.section.md -index 6c4315f5c48768..2ca55aef1eff91 100644 ---- a/doc/languages-frameworks/php.section.md -+++ b/doc/languages-frameworks/php.section.md -@@ -130,6 +130,7 @@ package: a project may depend on certain extensions and `composer` - won't work with that project unless those extensions are loaded. - - Example of building `composer` with additional extensions: -+ - ```nix - (php.withExtensions ({ all, enabled }: - enabled ++ (with all; [ imagick redis ])) -@@ -138,7 +139,9 @@ Example of building `composer` with additional extensions: - - ### Overriding PHP packages {#ssec-php-user-guide-overriding-packages} - --`php-packages.nix` form a scope, allowing us to override the packages defined within. For example, to apply a patch to a `mysqlnd` extension, you can simply pass an overlay-style function to `php`’s `packageOverrides` argument: -+`php-packages.nix` form a scope, allowing us to override the packages defined -+within. For example, to apply a patch to a `mysqlnd` extension, you can simply -+pass an overlay-style function to `php`’s `packageOverrides` argument: - - ```nix - php.override { -@@ -153,3 +156,138 @@ php.override { - }; - } - ``` -+ -+### Building PHP projects {#ssec-building-php-projects} -+ -+With [Composer](https://getcomposer.org/), you can effectively build PHP -+projects by streamlining dependency management. As the de-facto standard -+dependency manager for PHP, Composer enables you to declare and manage the -+libraries your project relies on, ensuring a more organized and efficient -+development process. -+ -+Composer is not a package manager in the same sense as `Yum` or `Apt` are. Yes, -+it deals with "packages" or libraries, but it manages them on a per-project -+basis, installing them in a directory (e.g. `vendor`) inside your project. By -+default, it does not install anything globally. This idea is not new and -+Composer is strongly inspired by node's `npm` and ruby's `bundler`. -+ -+Currently, there is no other PHP tool that offers the same functionality as -+Composer. Consequently, incorporating a helper in Nix to facilitate building -+such applications is a logical choice. -+ -+In a Composer project, dependencies are defined in a `composer.json` file, -+while their specific versions are locked in a `composer.lock` file. Some -+Composer-based projects opt to include this `composer.lock` file in their source -+code, while others choose not to. -+ -+In Nix, there are multiple approaches to building a Composer-based project. -+ -+One such method is the `php.buildComposerProject` helper function, which serves -+as a wrapper around `mkDerivation`. -+ -+Using this function, you can build a PHP project that includes both a -+`composer.json` and `composer.lock` file. If the project specifies binaries -+using the `bin` attribute in `composer.json`, these binaries will be -+automatically linked and made accessible in the derivation. In this context, -+"binaries" refer to PHP scripts that are intended to be executable. -+ -+To use the helper effectively, simply add the `vendorHash` attribute, which -+enables the wrapper to handle the heavy lifting. -+ -+Internally, the helper operates in three stages: -+ -+1. It constructs a `composerRepository` attribute derivation by creating a -+ composer repository on the filesystem containing dependencies specified in -+ `composer.json`. This process uses the function -+ `php.mkComposerRepository` which in turn uses the -+ `php.composerHooks.composerRepositoryHook` hook. Internaly this function uses -+ a custom -+ [Composer plugin](https://github.com/nix-community/composer-local-repo-plugin) to -+ generate the repository. -+2. The resulting `composerRepository` derivation is then used by the -+ `php.composerHooks.composerInstallHook` hook, which is responsible for -+ creating the final `vendor` directory. -+3. Any "binary" specified in the `composer.json` are linked and made accessible -+ in the derivation. -+ -+As the autoloader optimization can be activated directly within the -+`composer.json` file, we do not enable any autoloader optimization flags. -+ -+To customize the PHP version, you can specify the `php` attribute. Similarly, if -+you wish to modify the Composer version, use the `composer` attribute. It is -+important to note that both attributes should be of the `derivation` type. -+ -+Here's an example of working code example using `php.buildComposerProject`: -+ -+```nix -+{ php, fetchFromGitHub }: -+ -+php.buildComposerProject (finalAttrs: { -+ pname = "php-app"; -+ version = "1.0.0"; -+ -+ src = fetchFromGitHub { -+ owner = "git-owner"; -+ repo = "git-repo"; -+ rev = finalAttrs.version; -+ hash = "sha256-VcQRSss2dssfkJ+iUb5qT+FJ10GHiFDzySigcmuVI+8="; -+ }; -+ -+ # PHP version containing the `ast` extension enabled -+ php = php.buildEnv { -+ extensions = ({ enabled, all }: enabled ++ (with all; [ -+ ast -+ ])); -+ }; -+ -+ # The composer vendor hash -+ vendorHash = "sha256-86s/F+/5cBAwBqZ2yaGRM5rTGLmou5//aLRK5SA0WiQ="; -+ -+ # If the composer.lock file is missing from the repository, add it: -+ # composerLock = ./path/to/composer.lock; -+}) -+``` -+ -+In case the file `composer.lock` is missing from the repository, it is possible -+to specify it using the `composerLock` attribute. -+ -+The other method is to use all these methods and hooks individually. This has -+the advantage of building a PHP library within another derivation very easily -+when necessary. -+ -+Here's a working code example to build a PHP library using `mkDerivation` and -+separate functions and hooks: -+ -+```nix -+{ stdenvNoCC, fetchFromGitHub, php }: -+ -+stdenvNoCC.mkDerivation (finalAttrs: -+let -+ src = fetchFromGitHub { -+ owner = "git-owner"; -+ repo = "git-repo"; -+ rev = finalAttrs.version; -+ hash = "sha256-VcQRSss2dssfkJ+iUb5qT+FJ10GHiFDzySigcmuVI+8="; -+ }; -+in { -+ inherit src; -+ pname = "php-app"; -+ version = "1.0.0"; -+ -+ buildInputs = [ php ]; -+ -+ nativeBuildInputs = [ -+ php.packages.composer -+ # This hook will use the attribute `composerRepository` -+ php.composerHooks.composerInstallHook -+ ]; -+ -+ composerRepository = php.mkComposerRepository { -+ inherit (finalAttrs) src; -+ # Specifying a custom composer.lock since it is not present in the sources. -+ composerLock = ./composer.lock; -+ # The composer vendor hash -+ vendorHash = "sha256-86s/F+/5cBAwBqZ2yaGRM5rTGLmou5//aLRK5SA0WiQ="; -+ }; -+}) -+``` - -From 9e701e63288a339b71d4d2e95222fc8be021f1ac Mon Sep 17 00:00:00 2001 -From: Elis Hirwing -Date: Wed, 9 Aug 2023 21:07:30 +0200 -Subject: [PATCH 5/9] composer-local-repo-plugin: Stop exposing this internal - tool - ---- - pkgs/build-support/php/build-composer-project.nix | 3 ++- - pkgs/build-support/php/build-composer-repository.nix | 3 ++- - pkgs/top-level/all-packages.nix | 3 --- - 3 files changed, 4 insertions(+), 5 deletions(-) - -diff --git a/pkgs/build-support/php/build-composer-project.nix b/pkgs/build-support/php/build-composer-project.nix -index f9589ace1309c1..a56720b801b865 100644 ---- a/pkgs/build-support/php/build-composer-project.nix -+++ b/pkgs/build-support/php/build-composer-project.nix -@@ -1,4 +1,4 @@ --{ stdenvNoCC, lib, writeTextDir, php, makeBinaryWrapper, fetchFromGitHub, fetchurl, composer-local-repo-plugin }: -+{ callPackage, stdenvNoCC, lib, writeTextDir, php, makeBinaryWrapper, fetchFromGitHub, fetchurl }: - - let - buildComposerProjectOverride = finalAttrs: previousAttrs: -@@ -6,6 +6,7 @@ let - let - phpDrv = finalAttrs.php or php; - composer = finalAttrs.composer or phpDrv.packages.composer; -+ composer-local-repo-plugin = callPackage ./composer-local-repo-plugin.nix { }; - composerLock = finalAttrs.composerLock or null; - in - { -diff --git a/pkgs/build-support/php/build-composer-repository.nix b/pkgs/build-support/php/build-composer-repository.nix -index 7a7ba6f146c0a8..95681104e23474 100644 ---- a/pkgs/build-support/php/build-composer-repository.nix -+++ b/pkgs/build-support/php/build-composer-repository.nix -@@ -1,4 +1,4 @@ --{ stdenvNoCC, lib, writeTextDir, fetchFromGitHub, php, composer-local-repo-plugin }: -+{ callPackage, stdenvNoCC, lib, writeTextDir, fetchFromGitHub, php }: - - let - mkComposerRepositoryOverride = -@@ -19,6 +19,7 @@ let - let - phpDrv = finalAttrs.php or php; - composer = finalAttrs.composer or phpDrv.packages.composer; -+ composer-local-repo-plugin = callPackage ./composer-local-repo-plugin.nix { }; - in - assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument."); - assert (lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument."); -diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix -index 580a09e341726e..f128c756ccab70 100644 ---- a/pkgs/top-level/all-packages.nix -+++ b/pkgs/top-level/all-packages.nix -@@ -17991,11 +17991,8 @@ with pkgs; - - - # PHP interpreters, packages and extensions. -- - composer = callPackage ../development/tools/misc/composer { }; - -- composer-local-repo-plugin = callPackage ../build-support/php/composer-local-repo-plugin.nix {}; -- - # - # Set default PHP interpreter, extensions and packages - php = php82; - -From 2160ed2bccc361c43e841e16b742cdda07f64461 Mon Sep 17 00:00:00 2001 -From: Elis Hirwing -Date: Wed, 9 Aug 2023 21:09:41 +0200 -Subject: [PATCH 6/9] composer: Stop exposing composer built from a phar file - ---- - pkgs/build-support/php/composer-local-repo-plugin.nix | 4 +++- - pkgs/top-level/all-packages.nix | 2 -- - 3 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/pkgs/build-support/php/composer-local-repo-plugin.nix b/pkgs/build-support/php/composer-local-repo-plugin.nix -index 81672762618dca..3e918689088dba 100644 ---- a/pkgs/build-support/php/composer-local-repo-plugin.nix -+++ b/pkgs/build-support/php/composer-local-repo-plugin.nix -@@ -1,6 +1,8 @@ --{ stdenvNoCC, lib, fetchFromGitHub, composer, makeBinaryWrapper }: -+{ callPackage, stdenvNoCC, lib, fetchFromGitHub, makeBinaryWrapper }: - - let -+ composer = callPackage ../../development/tools/misc/composer { }; -+ - composerKeys = stdenvNoCC.mkDerivation (finalComposerKeysAttrs: { - pname = "composer-keys"; - version = "fa5a62092f33e094073fbda23bbfc7188df3cbc5"; -diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix -index f128c756ccab70..256885a8ce9516 100644 ---- a/pkgs/top-level/all-packages.nix -+++ b/pkgs/top-level/all-packages.nix -@@ -17991,8 +17991,6 @@ with pkgs; - - - # PHP interpreters, packages and extensions. -- composer = callPackage ../development/tools/misc/composer { }; -- - # - # Set default PHP interpreter, extensions and packages - php = php82; - -From 1e238b8afef29aa559b3380b240eeeb2908862ea Mon Sep 17 00:00:00 2001 -From: Elis Hirwing -Date: Wed, 9 Aug 2023 21:25:01 +0200 -Subject: [PATCH 7/9] php: Fix shellcheck string warnings in - composer-install-hook - ---- - .../php/hooks/composer-install-hook.sh | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/pkgs/build-support/php/hooks/composer-install-hook.sh b/pkgs/build-support/php/hooks/composer-install-hook.sh -index 139f6357c5d79a..2d5c90ea3b2fa6 100644 ---- a/pkgs/build-support/php/hooks/composer-install-hook.sh -+++ b/pkgs/build-support/php/hooks/composer-install-hook.sh -@@ -16,7 +16,7 @@ composerInstallConfigureHook() { - fi - - if [[ -e "$composerLock" ]]; then -- cp $composerLock composer.lock -+ cp "$composerLock" composer.lock - fi - - if [[ ! -f "composer.lock" ]]; then -@@ -39,7 +39,7 @@ composerInstallBuildHook() { - - # Since this file cannot be generated in the composer-repository-hook.sh - # because the file contains hardcoded nix store paths, we generate it here. -- composer-local-repo-plugin --no-ansi build-local-repo -p ${composerRepository} > packages.json -+ composer-local-repo-plugin --no-ansi build-local-repo -p "${composerRepository}" > packages.json - - # Remove all the repositories of type "composer" - # from the composer.json file. -@@ -48,7 +48,7 @@ composerInstallBuildHook() { - # Configure composer to disable packagist and avoid using the network. - composer config repo.packagist false - # Configure composer to use the local repository. -- composer config repo.composer composer file://$PWD/packages.json -+ composer config repo.composer composer file://"$PWD"/packages.json - - # Since the composer.json file has been modified in the previous step, the - # composer.lock file needs to be updated. -@@ -96,13 +96,13 @@ composerInstallInstallHook() { - rm packages.json - - # Copy the relevant files only in the store. -- mkdir -p $out/share/php/${pname} -- cp -r . $out/share/php/${pname}/ -+ mkdir -p "$out"/share/php/"${pname}" -+ cp -r . "$out"/share/php/"${pname}"/ - - # Create symlinks for the binaries. -- jq -r -c 'try .bin[]' composer.json | while read bin; do -- mkdir -p $out/share/php/${pname} $out/bin -- ln -s $out/share/php/${pname}/$bin $out/bin/$(basename $bin) -+ jq -r -c 'try .bin[]' composer.json | while read -r bin; do -+ mkdir -p "$out"/share/php/"${pname}" "$out"/bin -+ ln -s "$out"/share/php/"${pname}"/"$bin" "$out"/bin/"$(basename "$bin")" - done - - echo "Finished composerInstallInstallHook" - -From 1173a34d151b2797a4933a3eb2446e8dbdffcb1e Mon Sep 17 00:00:00 2001 -From: Pol Dellaiera -Date: Thu, 10 Aug 2023 09:10:00 +0200 -Subject: [PATCH 8/9] build-support/php: move internal tools in - `php/build-support/php/pkgs` - ---- - .../php/build-composer-project.nix | 2 +- - .../php/build-composer-repository.nix | 2 +- - .../{ => pkgs}/composer-local-repo-plugin.nix | 2 +- - pkgs/build-support/php/pkgs/composer-phar.nix | 48 +++++++++++++++++++ - 5 files changed, 52 insertions(+), 4 deletions(-) - rename pkgs/build-support/php/{ => pkgs}/composer-local-repo-plugin.nix (97%) - create mode 100644 pkgs/build-support/php/pkgs/composer-phar.nix - -diff --git a/pkgs/build-support/php/build-composer-project.nix b/pkgs/build-support/php/build-composer-project.nix -index a56720b801b865..b0be330205fa33 100644 ---- a/pkgs/build-support/php/build-composer-project.nix -+++ b/pkgs/build-support/php/build-composer-project.nix -@@ -6,7 +6,7 @@ let - let - phpDrv = finalAttrs.php or php; - composer = finalAttrs.composer or phpDrv.packages.composer; -- composer-local-repo-plugin = callPackage ./composer-local-repo-plugin.nix { }; -+ composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { }; - composerLock = finalAttrs.composerLock or null; - in - { -diff --git a/pkgs/build-support/php/build-composer-repository.nix b/pkgs/build-support/php/build-composer-repository.nix -index 95681104e23474..86362f151f0961 100644 ---- a/pkgs/build-support/php/build-composer-repository.nix -+++ b/pkgs/build-support/php/build-composer-repository.nix -@@ -19,7 +19,7 @@ let - let - phpDrv = finalAttrs.php or php; - composer = finalAttrs.composer or phpDrv.packages.composer; -- composer-local-repo-plugin = callPackage ./composer-local-repo-plugin.nix { }; -+ composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { }; - in - assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument."); - assert (lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument."); -diff --git a/pkgs/build-support/php/composer-local-repo-plugin.nix b/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix -similarity index 97% -rename from pkgs/build-support/php/composer-local-repo-plugin.nix -rename to pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix -index 3e918689088dba..67edbf1f44f9a5 100644 ---- a/pkgs/build-support/php/composer-local-repo-plugin.nix -+++ b/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix -@@ -1,7 +1,7 @@ - { callPackage, stdenvNoCC, lib, fetchFromGitHub, makeBinaryWrapper }: - - let -- composer = callPackage ../../development/tools/misc/composer { }; -+ composer = callPackage ./composer-phar.nix { }; - - composerKeys = stdenvNoCC.mkDerivation (finalComposerKeysAttrs: { - pname = "composer-keys"; -diff --git a/pkgs/build-support/php/pkgs/composer-phar.nix b/pkgs/build-support/php/pkgs/composer-phar.nix -new file mode 100644 -index 00000000000000..41cba03f4f5d6b ---- /dev/null -+++ b/pkgs/build-support/php/pkgs/composer-phar.nix -@@ -0,0 +1,48 @@ -+{ -+ _7zz -+ , cacert -+ , curl -+ , fetchurl -+ , git -+ , lib -+ , makeBinaryWrapper -+ , php -+ , stdenvNoCC -+ , unzip -+ , xz -+}: -+ -+stdenvNoCC.mkDerivation (finalAttrs: { -+ pname = "composer-phar"; -+ version = "2.6.2"; -+ -+ src = fetchurl { -+ url = "https://github.com/composer/composer/releases/download/${finalAttrs.version}/composer.phar"; -+ hash = "sha256-iMhNSlP88cJ9Z2Lh1da3DVfG3J0uIxT9Cdv4a/YeGu8="; -+ }; -+ -+ dontUnpack = true; -+ -+ nativeBuildInputs = [ makeBinaryWrapper ]; -+ -+ installPhase = '' -+ runHook preInstall -+ -+ mkdir -p $out/bin -+ install -D $src $out/libexec/composer/composer.phar -+ makeWrapper ${php}/bin/php $out/bin/composer \ -+ --add-flags "$out/libexec/composer/composer.phar" \ -+ --prefix PATH : ${lib.makeBinPath [ _7zz cacert curl git unzip xz ]} -+ -+ runHook postInstall -+ ''; -+ -+ meta = { -+ changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}"; -+ description = "Dependency Manager for PHP, shipped from the PHAR file"; -+ homepage = "https://getcomposer.org/"; -+ license = lib.licenses.mit; -+ maintainers = with lib.maintainers; [ drupol ]; -+ platforms = lib.platforms.all; -+ }; -+}) - -From 3eb168da9243989a63dfd4e2c17c52f8c133247b Mon Sep 17 00:00:00 2001 -From: Pol Dellaiera -Date: Mon, 21 Aug 2023 12:19:17 +0200 -Subject: [PATCH 9/9] build-support/php: add `composerNoDev`, - `composerNoPlugins` and `composerNoScripts` attributes - ---- - pkgs/build-support/php/build-composer-project.nix | 13 +++++++++++-- - .../php/build-composer-repository.nix | 7 +++++++ - .../php/hooks/composer-install-hook.sh | 14 +++++++++----- - .../php/hooks/composer-repository-hook.sh | 11 +++++++---- - 4 files changed, 34 insertions(+), 11 deletions(-) - -diff --git a/pkgs/build-support/php/build-composer-project.nix b/pkgs/build-support/php/build-composer-project.nix -index b0be330205fa33..6aecf434577300 100644 ---- a/pkgs/build-support/php/build-composer-project.nix -+++ b/pkgs/build-support/php/build-composer-project.nix -@@ -7,9 +7,13 @@ let - phpDrv = finalAttrs.php or php; - composer = finalAttrs.composer or phpDrv.packages.composer; - composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { }; -- composerLock = finalAttrs.composerLock or null; - in - { -+ composerLock = previousAttrs.composerLock or null; -+ composerNoDev = previousAttrs.composerNoDev or true; -+ composerNoPlugins = previousAttrs.composerNoPlugins or true; -+ composerNoScripts = previousAttrs.composerNoScripts or true; -+ - nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ - composer - composer-local-repo-plugin -@@ -50,8 +54,13 @@ let - ''; - - composerRepository = phpDrv.mkComposerRepository { -- inherit composer composer-local-repo-plugin composerLock; -+ inherit composer composer-local-repo-plugin; - inherit (finalAttrs) patches pname src vendorHash version; -+ -+ composerLock = previousAttrs.composerLock or null; -+ composerNoDev = previousAttrs.composerNoDev or true; -+ composerNoPlugins = previousAttrs.composerNoPlugins or true; -+ composerNoScripts = previousAttrs.composerNoScripts or true; - }; - - meta = previousAttrs.meta or { } // { -diff --git a/pkgs/build-support/php/build-composer-repository.nix b/pkgs/build-support/php/build-composer-repository.nix -index 86362f151f0961..30b0b48de7515c 100644 ---- a/pkgs/build-support/php/build-composer-repository.nix -+++ b/pkgs/build-support/php/build-composer-repository.nix -@@ -25,7 +25,14 @@ let - assert (lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument."); - assert (lib.assertMsg (previousAttrs ? version) "mkComposerRepository expects version argument."); - assert (lib.assertMsg (previousAttrs ? pname) "mkComposerRepository expects pname argument."); -+ assert (lib.assertMsg (previousAttrs ? composerNoDev) "mkComposerRepository expects composerNoDev argument."); -+ assert (lib.assertMsg (previousAttrs ? composerNoPlugins) "mkComposerRepository expects composerNoPlugins argument."); -+ assert (lib.assertMsg (previousAttrs ? composerNoScripts) "mkComposerRepository expects composerNoScripts argument."); - { -+ composerNoDev = previousAttrs.composerNoDev or true; -+ composerNoPlugins = previousAttrs.composerNoPlugins or true; -+ composerNoScripts = previousAttrs.composerNoScripts or true; -+ - name = "${previousAttrs.pname}-${previousAttrs.version}-composer-repository"; - - # See https://github.com/NixOS/nix/issues/6660 -diff --git a/pkgs/build-support/php/hooks/composer-install-hook.sh b/pkgs/build-support/php/hooks/composer-install-hook.sh -index 2d5c90ea3b2fa6..9f23b90fa401d0 100644 ---- a/pkgs/build-support/php/hooks/composer-install-hook.sh -+++ b/pkgs/build-support/php/hooks/composer-install-hook.sh -@@ -1,6 +1,8 @@ --declare composerHomeDir - declare composerRepository - declare version -+declare composerNoDev -+declare composerNoPlugins -+declare composerNoScripts - - preConfigureHooks+=(composerInstallConfigureHook) - preBuildHooks+=(composerInstallBuildHook) -@@ -59,8 +61,9 @@ composerInstallBuildHook() { - --no-ansi \ - --no-install \ - --no-interaction \ -- --no-plugins \ -- --no-scripts \ -+ ${composerNoDev:+--no-dev} \ -+ ${composerNoPlugins:+--no-plugins} \ -+ ${composerNoScripts:+--no-scripts} \ - update - - echo "Finished composerInstallBuildHook" -@@ -88,8 +91,9 @@ composerInstallInstallHook() { - composer \ - --no-ansi \ - --no-interaction \ -- --no-scripts \ -- --no-plugins \ -+ ${composerNoDev:+--no-dev} \ -+ ${composerNoPlugins:+--no-plugins} \ -+ ${composerNoScripts:+--no-scripts} \ - install - - # Remove packages.json, we don't need it in the store. -diff --git a/pkgs/build-support/php/hooks/composer-repository-hook.sh b/pkgs/build-support/php/hooks/composer-repository-hook.sh -index 707c944522563e..057acf1fcc30ec 100644 ---- a/pkgs/build-support/php/hooks/composer-repository-hook.sh -+++ b/pkgs/build-support/php/hooks/composer-repository-hook.sh -@@ -1,6 +1,8 @@ --declare composerHomeDir - declare composerLock - declare version -+declare composerNoDev -+declare composerNoPlugins -+declare composerNoScripts - - preConfigureHooks+=(composerRepositoryConfigureHook) - preBuildHooks+=(composerRepositoryBuildHook) -@@ -20,8 +22,9 @@ composerRepositoryConfigureHook() { - --no-ansi \ - --no-install \ - --no-interaction \ -- --no-plugins \ -- --no-scripts \ -+ ${composerNoDev:+--no-dev} \ -+ ${composerNoPlugins:+--no-plugins} \ -+ ${composerNoScripts:+--no-scripts} \ - update - echo "Using an autogenerated composer.lock file." - fi -@@ -38,7 +41,7 @@ composerRepositoryBuildHook() { - # The command 'build-local-repo' is provided by the Composer plugin - # nix-community/composer-local-repo-plugin. - COMPOSER_CACHE_DIR=/dev/null \ -- composer-local-repo-plugin --no-ansi build-local-repo -r repository -+ composer-local-repo-plugin --no-ansi build-local-repo ${composerNoDev:+--no-dev} -r repository - - echo "Finished composerRepositoryBuildHook" - } diff --git a/nix-patches/248310.patch b/nix-patches/248310.patch deleted file mode 100644 index 2288602..0000000 --- a/nix-patches/248310.patch +++ /dev/null @@ -1,914 +0,0 @@ -From 8d374cebcd8736d19c289e6d1166ab0b7428adc7 Mon Sep 17 00:00:00 2001 -From: emilylange -Date: Sun, 6 Aug 2023 18:40:02 +0200 -Subject: [PATCH 1/3] nixos/forgejo: init - -Following a decicion from both the gitea and forgejo maintainers in -nixpkgs. -This means, that forgejo will no longer co-use the nixos/gitea module -via `services.gitea.package = pkgs.forgejo`. ---- - nixos/modules/module-list.nix | 1 + - nixos/modules/services/misc/forgejo.nix | 668 ++++++++++++++++++++++++ - 2 files changed, 669 insertions(+) - create mode 100644 nixos/modules/services/misc/forgejo.nix - -diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix -index 29fcabaefad51e..6ea859b201e475 100644 ---- a/nixos/modules/module-list.nix -+++ b/nixos/modules/module-list.nix -@@ -640,6 +640,7 @@ - ./services/misc/etesync-dav.nix - ./services/misc/evdevremapkeys.nix - ./services/misc/felix.nix -+ ./services/misc/forgejo.nix - ./services/misc/freeswitch.nix - ./services/misc/fstrim.nix - ./services/misc/gammu-smsd.nix -diff --git a/nixos/modules/services/misc/forgejo.nix b/nixos/modules/services/misc/forgejo.nix -new file mode 100644 -index 00000000000000..f26658b7bcb440 ---- /dev/null -+++ b/nixos/modules/services/misc/forgejo.nix -@@ -0,0 +1,668 @@ -+{ config, lib, options, pkgs, ... }: -+ -+let -+ cfg = config.services.forgejo; -+ opt = options.services.forgejo; -+ format = pkgs.formats.ini { }; -+ -+ exe = lib.getExe cfg.package; -+ -+ pg = config.services.postgresql; -+ useMysql = cfg.database.type == "mysql"; -+ usePostgresql = cfg.database.type == "postgres"; -+ useSqlite = cfg.database.type == "sqlite3"; -+ -+ inherit (lib) -+ literalExpression -+ mdDoc -+ mkChangedOptionModule -+ mkDefault -+ mkEnableOption -+ mkIf -+ mkMerge -+ mkOption -+ mkPackageOptionMD -+ mkRemovedOptionModule -+ mkRenamedOptionModule -+ optionalAttrs -+ optionals -+ optionalString -+ types -+ ; -+in -+{ -+ imports = [ -+ (mkRenamedOptionModule [ "services" "forgejo" "appName" ] [ "services" "forgejo" "settings" "DEFAULT" "APP_NAME" ]) -+ (mkRemovedOptionModule [ "services" "forgejo" "extraConfig" ] "services.forgejo.extraConfig has been removed. Please use the freeform services.forgejo.settings option instead") -+ (mkRemovedOptionModule [ "services" "forgejo" "database" "password" ] "services.forgejo.database.password has been removed. Please use services.forgejo.database.passwordFile instead") -+ -+ # copied from services.gitea; remove at some point -+ (mkRenamedOptionModule [ "services" "forgejo" "cookieSecure" ] [ "services" "forgejo" "settings" "session" "COOKIE_SECURE" ]) -+ (mkRenamedOptionModule [ "services" "forgejo" "disableRegistration" ] [ "services" "forgejo" "settings" "service" "DISABLE_REGISTRATION" ]) -+ (mkRenamedOptionModule [ "services" "forgejo" "domain" ] [ "services" "forgejo" "settings" "server" "DOMAIN" ]) -+ (mkRenamedOptionModule [ "services" "forgejo" "httpAddress" ] [ "services" "forgejo" "settings" "server" "HTTP_ADDR" ]) -+ (mkRenamedOptionModule [ "services" "forgejo" "httpPort" ] [ "services" "forgejo" "settings" "server" "HTTP_PORT" ]) -+ (mkRenamedOptionModule [ "services" "forgejo" "log" "level" ] [ "services" "forgejo" "settings" "log" "LEVEL" ]) -+ (mkRenamedOptionModule [ "services" "forgejo" "log" "rootPath" ] [ "services" "forgejo" "settings" "log" "ROOT_PATH" ]) -+ (mkRenamedOptionModule [ "services" "forgejo" "rootUrl" ] [ "services" "forgejo" "settings" "server" "ROOT_URL" ]) -+ (mkRenamedOptionModule [ "services" "forgejo" "ssh" "clonePort" ] [ "services" "forgejo" "settings" "server" "SSH_PORT" ]) -+ (mkRenamedOptionModule [ "services" "forgejo" "staticRootPath" ] [ "services" "forgejo" "settings" "server" "STATIC_ROOT_PATH" ]) -+ (mkChangedOptionModule [ "services" "forgejo" "enableUnixSocket" ] [ "services" "forgejo" "settings" "server" "PROTOCOL" ] ( -+ config: if config.services.forgejo.enableUnixSocket then "http+unix" else "http" -+ )) -+ (mkRemovedOptionModule [ "services" "forgejo" "ssh" "enable" ] "services.forgejo.ssh.enable has been migrated into freeform setting services.forgejo.settings.server.DISABLE_SSH. Keep in mind that the setting is inverted") -+ ]; -+ -+ options = { -+ services.forgejo = { -+ enable = mkEnableOption (mdDoc "Forgejo"); -+ -+ package = mkPackageOptionMD pkgs "forgejo" { }; -+ -+ useWizard = mkOption { -+ default = false; -+ type = types.bool; -+ description = mdDoc '' -+ Whether to use the built-in installation wizard instead of -+ declaratively managing the {file}`app.ini` config file in nix. -+ ''; -+ }; -+ -+ stateDir = mkOption { -+ default = "/var/lib/forgejo"; -+ type = types.str; -+ description = mdDoc "Forgejo data directory."; -+ }; -+ -+ customDir = mkOption { -+ default = "${cfg.stateDir}/custom"; -+ defaultText = literalExpression ''"''${config.${opt.stateDir}}/custom"''; -+ type = types.str; -+ description = mdDoc '' -+ Base directory for custom templates and other options. -+ -+ If {option}`${opt.useWizard}` is disabled (default), this directory will also -+ hold secrets and the resulting {file}`app.ini` config at runtime. -+ ''; -+ }; -+ -+ user = mkOption { -+ type = types.str; -+ default = "forgejo"; -+ description = mdDoc "User account under which Forgejo runs."; -+ }; -+ -+ group = mkOption { -+ type = types.str; -+ default = "forgejo"; -+ description = mdDoc "Group under which Forgejo runs."; -+ }; -+ -+ database = { -+ type = mkOption { -+ type = types.enum [ "sqlite3" "mysql" "postgres" ]; -+ example = "mysql"; -+ default = "sqlite3"; -+ description = mdDoc "Database engine to use."; -+ }; -+ -+ host = mkOption { -+ type = types.str; -+ default = "127.0.0.1"; -+ description = mdDoc "Database host address."; -+ }; -+ -+ port = mkOption { -+ type = types.port; -+ default = if !usePostgresql then 3306 else pg.port; -+ defaultText = literalExpression '' -+ if config.${opt.database.type} != "postgresql" -+ then 3306 -+ else config.${options.services.postgresql.port} -+ ''; -+ description = mdDoc "Database host port."; -+ }; -+ -+ name = mkOption { -+ type = types.str; -+ default = "forgejo"; -+ description = mdDoc "Database name."; -+ }; -+ -+ user = mkOption { -+ type = types.str; -+ default = "forgejo"; -+ description = mdDoc "Database user."; -+ }; -+ -+ passwordFile = mkOption { -+ type = types.nullOr types.path; -+ default = null; -+ example = "/run/keys/forgejo-dbpassword"; -+ description = mdDoc '' -+ A file containing the password corresponding to -+ {option}`${opt.database.user}`. -+ ''; -+ }; -+ -+ socket = mkOption { -+ type = types.nullOr types.path; -+ default = if (cfg.database.createDatabase && usePostgresql) then "/run/postgresql" else if (cfg.database.createDatabase && useMysql) then "/run/mysqld/mysqld.sock" else null; -+ defaultText = literalExpression "null"; -+ example = "/run/mysqld/mysqld.sock"; -+ description = mdDoc "Path to the unix socket file to use for authentication."; -+ }; -+ -+ path = mkOption { -+ type = types.str; -+ default = "${cfg.stateDir}/data/forgejo.db"; -+ defaultText = literalExpression ''"''${config.${opt.stateDir}}/data/forgejo.db"''; -+ description = mdDoc "Path to the sqlite3 database file."; -+ }; -+ -+ createDatabase = mkOption { -+ type = types.bool; -+ default = true; -+ description = mdDoc "Whether to create a local database automatically."; -+ }; -+ }; -+ -+ dump = { -+ enable = mkEnableOption (mdDoc "periodic dumps via the [built-in {command}`dump` command](https://forgejo.org/docs/latest/admin/command-line/#dump)"); -+ -+ interval = mkOption { -+ type = types.str; -+ default = "04:31"; -+ example = "hourly"; -+ description = mdDoc '' -+ Run a Forgejo dump at this interval. Runs by default at 04:31 every day. -+ -+ The format is described in -+ {manpage}`systemd.time(7)`. -+ ''; -+ }; -+ -+ backupDir = mkOption { -+ type = types.str; -+ default = "${cfg.stateDir}/dump"; -+ defaultText = literalExpression ''"''${config.${opt.stateDir}}/dump"''; -+ description = mdDoc "Path to the directory where the dump archives will be stored."; -+ }; -+ -+ type = mkOption { -+ type = types.enum [ "zip" "tar" "tar.sz" "tar.gz" "tar.xz" "tar.bz2" "tar.br" "tar.lz4" "tar.zst" ]; -+ default = "zip"; -+ description = mdDoc "Archive format used to store the dump file."; -+ }; -+ -+ file = mkOption { -+ type = types.nullOr types.str; -+ default = null; -+ description = mdDoc "Filename to be used for the dump. If `null` a default name is chosen by forgejo."; -+ example = "forgejo-dump"; -+ }; -+ }; -+ -+ lfs = { -+ enable = mkOption { -+ type = types.bool; -+ default = false; -+ description = mdDoc "Enables git-lfs support."; -+ }; -+ -+ contentDir = mkOption { -+ type = types.str; -+ default = "${cfg.stateDir}/data/lfs"; -+ defaultText = literalExpression ''"''${config.${opt.stateDir}}/data/lfs"''; -+ description = mdDoc "Where to store LFS files."; -+ }; -+ }; -+ -+ repositoryRoot = mkOption { -+ type = types.str; -+ default = "${cfg.stateDir}/repositories"; -+ defaultText = literalExpression ''"''${config.${opt.stateDir}}/repositories"''; -+ description = mdDoc "Path to the git repositories."; -+ }; -+ -+ mailerPasswordFile = mkOption { -+ type = types.nullOr types.str; -+ default = null; -+ example = "/run/keys/forgejo-mailpw"; -+ description = mdDoc "Path to a file containing the SMTP password."; -+ }; -+ -+ settings = mkOption { -+ default = { }; -+ description = mdDoc '' -+ Free-form settings written directly to the `app.ini` configfile file. -+ Refer to for supported values. -+ ''; -+ example = literalExpression '' -+ { -+ DEFAULT = { -+ RUN_MODE = "dev"; -+ }; -+ "cron.sync_external_users" = { -+ RUN_AT_START = true; -+ SCHEDULE = "@every 24h"; -+ UPDATE_EXISTING = true; -+ }; -+ mailer = { -+ ENABLED = true; -+ MAILER_TYPE = "sendmail"; -+ FROM = "do-not-reply@example.org"; -+ SENDMAIL_PATH = "''${pkgs.system-sendmail}/bin/sendmail"; -+ }; -+ other = { -+ SHOW_FOOTER_VERSION = false; -+ }; -+ } -+ ''; -+ type = types.submodule { -+ freeformType = format.type; -+ options = { -+ log = { -+ ROOT_PATH = mkOption { -+ default = "${cfg.stateDir}/log"; -+ defaultText = literalExpression ''"''${config.${opt.stateDir}}/log"''; -+ type = types.str; -+ description = mdDoc "Root path for log files."; -+ }; -+ LEVEL = mkOption { -+ default = "Info"; -+ type = types.enum [ "Trace" "Debug" "Info" "Warn" "Error" "Critical" ]; -+ description = mdDoc "General log level."; -+ }; -+ }; -+ -+ server = { -+ PROTOCOL = mkOption { -+ type = types.enum [ "http" "https" "fcgi" "http+unix" "fcgi+unix" ]; -+ default = "http"; -+ description = mdDoc ''Listen protocol. `+unix` means "over unix", not "in addition to."''; -+ }; -+ -+ HTTP_ADDR = mkOption { -+ type = types.either types.str types.path; -+ default = if lib.hasSuffix "+unix" cfg.settings.server.PROTOCOL then "/run/forgejo/forgejo.sock" else "0.0.0.0"; -+ defaultText = literalExpression ''if lib.hasSuffix "+unix" cfg.settings.server.PROTOCOL then "/run/forgejo/forgejo.sock" else "0.0.0.0"''; -+ description = mdDoc "Listen address. Must be a path when using a unix socket."; -+ }; -+ -+ HTTP_PORT = mkOption { -+ type = types.port; -+ default = 3000; -+ description = mdDoc "Listen port. Ignored when using a unix socket."; -+ }; -+ -+ DOMAIN = mkOption { -+ type = types.str; -+ default = "localhost"; -+ description = mdDoc "Domain name of your server."; -+ }; -+ -+ ROOT_URL = mkOption { -+ type = types.str; -+ default = "http://${cfg.settings.server.DOMAIN}:${toString cfg.settings.server.HTTP_PORT}/"; -+ defaultText = literalExpression ''"http://''${config.services.forgejo.settings.server.DOMAIN}:''${toString config.services.forgejo.settings.server.HTTP_PORT}/"''; -+ description = mdDoc "Full public URL of Forgejo server."; -+ }; -+ -+ STATIC_ROOT_PATH = mkOption { -+ type = types.either types.str types.path; -+ default = cfg.package.data; -+ defaultText = literalExpression "config.${opt.package}.data"; -+ example = "/var/lib/forgejo/data"; -+ description = mdDoc "Upper level of template and static files path."; -+ }; -+ -+ DISABLE_SSH = mkOption { -+ type = types.bool; -+ default = false; -+ description = mdDoc "Disable external SSH feature."; -+ }; -+ -+ SSH_PORT = mkOption { -+ type = types.port; -+ default = 22; -+ example = 2222; -+ description = mdDoc '' -+ SSH port displayed in clone URL. -+ The option is required to configure a service when the external visible port -+ differs from the local listening port i.e. if port forwarding is used. -+ ''; -+ }; -+ }; -+ -+ session = { -+ COOKIE_SECURE = mkOption { -+ type = types.bool; -+ default = false; -+ description = mdDoc '' -+ Marks session cookies as "secure" as a hint for browsers to only send -+ them via HTTPS. This option is recommend, if Forgejo is being served over HTTPS. -+ ''; -+ }; -+ }; -+ }; -+ }; -+ }; -+ }; -+ }; -+ -+ config = mkIf cfg.enable { -+ assertions = [ -+ { -+ assertion = cfg.database.createDatabase -> useSqlite || cfg.database.user == cfg.user; -+ message = "services.forgejo.database.user must match services.forgejo.user if the database is to be automatically provisioned"; -+ } -+ ]; -+ -+ services.forgejo.settings = { -+ DEFAULT = { -+ RUN_MODE = mkDefault "prod"; -+ RUN_USER = mkDefault cfg.user; -+ WORK_PATH = mkDefault cfg.stateDir; -+ }; -+ -+ database = mkMerge [ -+ { -+ DB_TYPE = cfg.database.type; -+ } -+ (mkIf (useMysql || usePostgresql) { -+ HOST = if cfg.database.socket != null then cfg.database.socket else cfg.database.host + ":" + toString cfg.database.port; -+ NAME = cfg.database.name; -+ USER = cfg.database.user; -+ PASSWD = "#dbpass#"; -+ }) -+ (mkIf useSqlite { -+ PATH = cfg.database.path; -+ }) -+ (mkIf usePostgresql { -+ SSL_MODE = "disable"; -+ }) -+ ]; -+ -+ repository = { -+ ROOT = cfg.repositoryRoot; -+ }; -+ -+ server = mkIf cfg.lfs.enable { -+ LFS_START_SERVER = true; -+ LFS_JWT_SECRET = "#lfsjwtsecret#"; -+ }; -+ -+ session = { -+ COOKIE_NAME = mkDefault "session"; -+ }; -+ -+ security = { -+ SECRET_KEY = "#secretkey#"; -+ INTERNAL_TOKEN = "#internaltoken#"; -+ INSTALL_LOCK = true; -+ }; -+ -+ mailer = mkIf (cfg.mailerPasswordFile != null) { -+ PASSWD = "#mailerpass#"; -+ }; -+ -+ oauth2 = { -+ JWT_SECRET = "#oauth2jwtsecret#"; -+ }; -+ -+ lfs = mkIf cfg.lfs.enable { -+ PATH = cfg.lfs.contentDir; -+ }; -+ }; -+ -+ services.postgresql = optionalAttrs (usePostgresql && cfg.database.createDatabase) { -+ enable = mkDefault true; -+ -+ ensureDatabases = [ cfg.database.name ]; -+ ensureUsers = [ -+ { -+ name = cfg.database.user; -+ ensurePermissions = { "DATABASE ${cfg.database.name}" = "ALL PRIVILEGES"; }; -+ } -+ ]; -+ }; -+ -+ services.mysql = optionalAttrs (useMysql && cfg.database.createDatabase) { -+ enable = mkDefault true; -+ package = mkDefault pkgs.mariadb; -+ -+ ensureDatabases = [ cfg.database.name ]; -+ ensureUsers = [ -+ { -+ name = cfg.database.user; -+ ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; }; -+ } -+ ]; -+ }; -+ -+ systemd.tmpfiles.rules = [ -+ "d '${cfg.dump.backupDir}' 0750 ${cfg.user} ${cfg.group} - -" -+ "z '${cfg.dump.backupDir}' 0750 ${cfg.user} ${cfg.group} - -" -+ "d '${cfg.repositoryRoot}' 0750 ${cfg.user} ${cfg.group} - -" -+ "z '${cfg.repositoryRoot}' 0750 ${cfg.user} ${cfg.group} - -" -+ "d '${cfg.stateDir}' 0750 ${cfg.user} ${cfg.group} - -" -+ "d '${cfg.stateDir}/conf' 0750 ${cfg.user} ${cfg.group} - -" -+ "d '${cfg.customDir}' 0750 ${cfg.user} ${cfg.group} - -" -+ "d '${cfg.customDir}/conf' 0750 ${cfg.user} ${cfg.group} - -" -+ "d '${cfg.stateDir}/data' 0750 ${cfg.user} ${cfg.group} - -" -+ "d '${cfg.stateDir}/log' 0750 ${cfg.user} ${cfg.group} - -" -+ "z '${cfg.stateDir}' 0750 ${cfg.user} ${cfg.group} - -" -+ "z '${cfg.stateDir}/.ssh' 0700 ${cfg.user} ${cfg.group} - -" -+ "z '${cfg.stateDir}/conf' 0750 ${cfg.user} ${cfg.group} - -" -+ "z '${cfg.customDir}' 0750 ${cfg.user} ${cfg.group} - -" -+ "z '${cfg.customDir}/conf' 0750 ${cfg.user} ${cfg.group} - -" -+ "z '${cfg.stateDir}/data' 0750 ${cfg.user} ${cfg.group} - -" -+ "z '${cfg.stateDir}/log' 0750 ${cfg.user} ${cfg.group} - -" -+ -+ # If we have a folder or symlink with Forgejo locales, remove it -+ # And symlink the current Forgejo locales in place -+ "L+ '${cfg.stateDir}/conf/locale' - - - - ${cfg.package.out}/locale" -+ -+ ] ++ optionals cfg.lfs.enable [ -+ "d '${cfg.lfs.contentDir}' 0750 ${cfg.user} ${cfg.group} - -" -+ "z '${cfg.lfs.contentDir}' 0750 ${cfg.user} ${cfg.group} - -" -+ ]; -+ -+ systemd.services.forgejo = { -+ description = "Forgejo (Beyond coding. We forge.)"; -+ after = [ -+ "network.target" -+ ] ++ optionals usePostgresql [ -+ "postgresql.service" -+ ] ++ optionals useMysql [ -+ "mysql.service" -+ ]; -+ requires = optionals (cfg.database.createDatabase && usePostgresql) [ -+ "postgresql.service" -+ ] ++ optionals (cfg.database.createDatabase && useMysql) [ -+ "mysql.service" -+ ]; -+ wantedBy = [ "multi-user.target" ]; -+ path = [ cfg.package pkgs.git pkgs.gnupg ]; -+ -+ # In older versions the secret naming for JWT was kind of confusing. -+ # The file jwt_secret hold the value for LFS_JWT_SECRET and JWT_SECRET -+ # wasn't persistent at all. -+ # To fix that, there is now the file oauth2_jwt_secret containing the -+ # values for JWT_SECRET and the file jwt_secret gets renamed to -+ # lfs_jwt_secret. -+ # We have to consider this to stay compatible with older installations. -+ preStart = -+ let -+ runConfig = "${cfg.customDir}/conf/app.ini"; -+ secretKey = "${cfg.customDir}/conf/secret_key"; -+ oauth2JwtSecret = "${cfg.customDir}/conf/oauth2_jwt_secret"; -+ oldLfsJwtSecret = "${cfg.customDir}/conf/jwt_secret"; # old file for LFS_JWT_SECRET -+ lfsJwtSecret = "${cfg.customDir}/conf/lfs_jwt_secret"; # new file for LFS_JWT_SECRET -+ internalToken = "${cfg.customDir}/conf/internal_token"; -+ replaceSecretBin = "${pkgs.replace-secret}/bin/replace-secret"; -+ in -+ '' -+ # copy custom configuration and generate random secrets if needed -+ ${lib.optionalString (!cfg.useWizard) '' -+ function forgejo_setup { -+ cp -f '${format.generate "app.ini" cfg.settings}' '${runConfig}' -+ -+ if [ ! -s '${secretKey}' ]; then -+ ${exe} generate secret SECRET_KEY > '${secretKey}' -+ fi -+ -+ # Migrate LFS_JWT_SECRET filename -+ if [[ -s '${oldLfsJwtSecret}' && ! -s '${lfsJwtSecret}' ]]; then -+ mv '${oldLfsJwtSecret}' '${lfsJwtSecret}' -+ fi -+ -+ if [ ! -s '${oauth2JwtSecret}' ]; then -+ ${exe} generate secret JWT_SECRET > '${oauth2JwtSecret}' -+ fi -+ -+ ${optionalString cfg.lfs.enable '' -+ if [ ! -s '${lfsJwtSecret}' ]; then -+ ${exe} generate secret LFS_JWT_SECRET > '${lfsJwtSecret}' -+ fi -+ ''} -+ -+ if [ ! -s '${internalToken}' ]; then -+ ${exe} generate secret INTERNAL_TOKEN > '${internalToken}' -+ fi -+ -+ chmod u+w '${runConfig}' -+ ${replaceSecretBin} '#secretkey#' '${secretKey}' '${runConfig}' -+ ${replaceSecretBin} '#oauth2jwtsecret#' '${oauth2JwtSecret}' '${runConfig}' -+ ${replaceSecretBin} '#internaltoken#' '${internalToken}' '${runConfig}' -+ -+ ${optionalString cfg.lfs.enable '' -+ ${replaceSecretBin} '#lfsjwtsecret#' '${lfsJwtSecret}' '${runConfig}' -+ ''} -+ -+ ${optionalString (cfg.database.passwordFile != null) '' -+ ${replaceSecretBin} '#dbpass#' '${cfg.database.passwordFile}' '${runConfig}' -+ ''} -+ -+ ${optionalString (cfg.mailerPasswordFile != null) '' -+ ${replaceSecretBin} '#mailerpass#' '${cfg.mailerPasswordFile}' '${runConfig}' -+ ''} -+ chmod u-w '${runConfig}' -+ } -+ (umask 027; forgejo_setup) -+ ''} -+ -+ # run migrations/init the database -+ ${exe} migrate -+ -+ # update all hooks' binary paths -+ ${exe} admin regenerate hooks -+ -+ # update command option in authorized_keys -+ if [ -r ${cfg.stateDir}/.ssh/authorized_keys ] -+ then -+ ${exe} admin regenerate keys -+ fi -+ ''; -+ -+ serviceConfig = { -+ Type = "simple"; -+ User = cfg.user; -+ Group = cfg.group; -+ WorkingDirectory = cfg.stateDir; -+ ExecStart = "${exe} web --pid /run/forgejo/forgejo.pid"; -+ Restart = "always"; -+ # Runtime directory and mode -+ RuntimeDirectory = "forgejo"; -+ RuntimeDirectoryMode = "0755"; -+ # Proc filesystem -+ ProcSubset = "pid"; -+ ProtectProc = "invisible"; -+ # Access write directories -+ ReadWritePaths = [ cfg.customDir cfg.dump.backupDir cfg.repositoryRoot cfg.stateDir cfg.lfs.contentDir ]; -+ UMask = "0027"; -+ # Capabilities -+ CapabilityBoundingSet = ""; -+ # Security -+ NoNewPrivileges = true; -+ # Sandboxing -+ ProtectSystem = "strict"; -+ ProtectHome = true; -+ PrivateTmp = true; -+ PrivateDevices = true; -+ PrivateUsers = true; -+ ProtectHostname = true; -+ ProtectClock = true; -+ ProtectKernelTunables = true; -+ ProtectKernelModules = true; -+ ProtectKernelLogs = true; -+ ProtectControlGroups = true; -+ RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ]; -+ RestrictNamespaces = true; -+ LockPersonality = true; -+ MemoryDenyWriteExecute = true; -+ RestrictRealtime = true; -+ RestrictSUIDSGID = true; -+ RemoveIPC = true; -+ PrivateMounts = true; -+ # System Call Filtering -+ SystemCallArchitectures = "native"; -+ SystemCallFilter = [ "~@cpu-emulation @debug @keyring @mount @obsolete @privileged @setuid" "setrlimit" ]; -+ }; -+ -+ environment = { -+ USER = cfg.user; -+ HOME = cfg.stateDir; -+ # `GITEA_` prefix until https://codeberg.org/forgejo/forgejo/issues/497 -+ # is resolved. -+ GITEA_WORK_DIR = cfg.stateDir; -+ GITEA_CUSTOM = cfg.customDir; -+ }; -+ }; -+ -+ users.users = mkIf (cfg.user == "forgejo") { -+ forgejo = { -+ home = cfg.stateDir; -+ useDefaultShell = true; -+ group = cfg.group; -+ isSystemUser = true; -+ }; -+ }; -+ -+ users.groups = mkIf (cfg.group == "forgejo") { -+ forgejo = { }; -+ }; -+ -+ systemd.services.forgejo-dump = mkIf cfg.dump.enable { -+ description = "forgejo dump"; -+ after = [ "forgejo.service" ]; -+ path = [ cfg.package ]; -+ -+ environment = { -+ USER = cfg.user; -+ HOME = cfg.stateDir; -+ # `GITEA_` prefix until https://codeberg.org/forgejo/forgejo/issues/497 -+ # is resolved. -+ GITEA_WORK_DIR = cfg.stateDir; -+ GITEA_CUSTOM = cfg.customDir; -+ }; -+ -+ serviceConfig = { -+ Type = "oneshot"; -+ User = cfg.user; -+ ExecStart = "${exe} dump --type ${cfg.dump.type}" + optionalString (cfg.dump.file != null) " --file ${cfg.dump.file}"; -+ WorkingDirectory = cfg.dump.backupDir; -+ }; -+ }; -+ -+ systemd.timers.forgejo-dump = mkIf cfg.dump.enable { -+ description = "Forgejo dump timer"; -+ partOf = [ "forgejo-dump.service" ]; -+ wantedBy = [ "timers.target" ]; -+ timerConfig.OnCalendar = cfg.dump.interval; -+ }; -+ }; -+ -+ meta.maintainers = with lib.maintainers; [ bendlas emilylange ]; -+} - -From 02601e17a53eadd488bd8ca16dbb656fd46d1764 Mon Sep 17 00:00:00 2001 -From: emilylange -Date: Sun, 6 Aug 2023 18:41:37 +0200 -Subject: [PATCH 2/3] nixosTests.forgejo: fork from nixosTests.gitea - ---- - nixos/tests/all-tests.nix | 2 +- - nixos/tests/forgejo.nix | 157 ++++++++++++++++++++++++++++++++++++++ - 2 files changed, 158 insertions(+), 1 deletion(-) - create mode 100644 nixos/tests/forgejo.nix - -diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix -index 3b4a39f5ff96b8..d9aa9eccac02d2 100644 ---- a/nixos/tests/all-tests.nix -+++ b/nixos/tests/all-tests.nix -@@ -280,7 +280,7 @@ in { - fluentd = handleTest ./fluentd.nix {}; - fluidd = handleTest ./fluidd.nix {}; - fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix {}; -- forgejo = handleTest ./gitea.nix { giteaPackage = pkgs.forgejo; }; -+ forgejo = handleTest ./forgejo.nix { }; - freenet = handleTest ./freenet.nix {}; - freeswitch = handleTest ./freeswitch.nix {}; - freshrss-sqlite = handleTest ./freshrss-sqlite.nix {}; -diff --git a/nixos/tests/forgejo.nix b/nixos/tests/forgejo.nix -new file mode 100644 -index 00000000000000..b326819e319064 ---- /dev/null -+++ b/nixos/tests/forgejo.nix -@@ -0,0 +1,157 @@ -+{ system ? builtins.currentSystem -+, config ? { } -+, pkgs ? import ../.. { inherit system config; } -+}: -+ -+with import ../lib/testing-python.nix { inherit system pkgs; }; -+with pkgs.lib; -+ -+let -+ ## gpg --faked-system-time='20230301T010000!' --quick-generate-key snakeoil ed25519 sign -+ signingPrivateKey = '' -+ -----BEGIN PGP PRIVATE KEY BLOCK----- -+ -+ lFgEY/6jkBYJKwYBBAHaRw8BAQdADXiZRV8RJUyC9g0LH04wLMaJL9WTc+szbMi7 -+ 5fw4yP8AAQCl8EwGfzSLm/P6fCBfA3I9znFb3MEHGCCJhJ6VtKYyRw7ktAhzbmFr -+ ZW9pbIiUBBMWCgA8FiEE+wUM6VW/NLtAdSixTWQt6LZ4x50FAmP+o5ACGwMFCQPC -+ ZwAECwkIBwQVCgkIBRYCAwEAAh4FAheAAAoJEE1kLei2eMedFTgBAKQs1oGFZrCI -+ TZP42hmBTKxGAI1wg7VSdDEWTZxut/2JAQDGgo2sa4VHMfj0aqYGxrIwfP2B7JHO -+ GCqGCRf9O/hzBA== -+ =9Uy3 -+ -----END PGP PRIVATE KEY BLOCK----- -+ ''; -+ signingPrivateKeyId = "4D642DE8B678C79D"; -+ -+ supportedDbTypes = [ "mysql" "postgres" "sqlite3" ]; -+ makeGForgejoTest = type: nameValuePair type (makeTest { -+ name = "forgejo-${type}"; -+ meta.maintainers = with maintainers; [ bendlas emilylange ]; -+ -+ nodes = { -+ server = { config, pkgs, ... }: { -+ virtualisation.memorySize = 2047; -+ services.forgejo = { -+ enable = true; -+ database = { inherit type; }; -+ settings.service.DISABLE_REGISTRATION = true; -+ settings."repository.signing".SIGNING_KEY = signingPrivateKeyId; -+ settings.actions.ENABLED = true; -+ }; -+ environment.systemPackages = [ config.services.forgejo.package pkgs.gnupg pkgs.jq ]; -+ services.openssh.enable = true; -+ -+ specialisation.runner = { -+ inheritParentConfig = true; -+ configuration.services.gitea-actions-runner.instances."test" = { -+ enable = true; -+ name = "ci"; -+ url = "http://localhost:3000"; -+ labels = [ -+ # don't require docker/podman -+ "native:host" -+ ]; -+ tokenFile = "/var/lib/forgejo/runner_token"; -+ }; -+ }; -+ }; -+ client1 = { config, pkgs, ... }: { -+ environment.systemPackages = [ pkgs.git ]; -+ }; -+ client2 = { config, pkgs, ... }: { -+ environment.systemPackages = [ pkgs.git ]; -+ }; -+ }; -+ -+ testScript = { nodes, ... }: -+ let -+ inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey; -+ serverSystem = nodes.server.system.build.toplevel; -+ in -+ '' -+ GIT_SSH_COMMAND = "ssh -i $HOME/.ssh/privk -o StrictHostKeyChecking=no" -+ REPO = "forgejo@server:test/repo" -+ PRIVK = "${snakeOilPrivateKey}" -+ -+ start_all() -+ -+ client1.succeed("mkdir /tmp/repo") -+ client1.succeed("mkdir -p $HOME/.ssh") -+ client1.succeed(f"cat {PRIVK} > $HOME/.ssh/privk") -+ client1.succeed("chmod 0400 $HOME/.ssh/privk") -+ client1.succeed("git -C /tmp/repo init") -+ client1.succeed("echo hello world > /tmp/repo/testfile") -+ client1.succeed("git -C /tmp/repo add .") -+ client1.succeed("git config --global user.email test@localhost") -+ client1.succeed("git config --global user.name test") -+ client1.succeed("git -C /tmp/repo commit -m 'Initial import'") -+ client1.succeed(f"git -C /tmp/repo remote add origin {REPO}") -+ -+ server.wait_for_unit("forgejo.service") -+ server.wait_for_open_port(3000) -+ server.wait_for_open_port(22) -+ server.succeed("curl --fail http://localhost:3000/") -+ -+ server.succeed( -+ "su -l forgejo -c 'gpg --homedir /var/lib/forgejo/data/home/.gnupg " -+ + "--import ${toString (pkgs.writeText "forgejo.key" signingPrivateKey)}'" -+ ) -+ -+ assert "BEGIN PGP PUBLIC KEY BLOCK" in server.succeed("curl http://localhost:3000/api/v1/signing-key.gpg") -+ -+ server.succeed( -+ "curl --fail http://localhost:3000/user/sign_up | grep 'Registration is disabled. " -+ + "Please contact your site administrator.'" -+ ) -+ server.succeed( -+ "su -l forgejo -c 'GITEA_WORK_DIR=/var/lib/forgejo gitea admin user create " -+ + "--username test --password totallysafe --email test@localhost'" -+ ) -+ -+ api_token = server.succeed( -+ "curl --fail -X POST http://test:totallysafe@localhost:3000/api/v1/users/test/tokens " -+ + "-H 'Accept: application/json' -H 'Content-Type: application/json' -d " -+ + "'{\"name\":\"token\",\"scopes\":[\"all\"]}' | jq '.sha1' | xargs echo -n" -+ ) -+ -+ server.succeed( -+ "curl --fail -X POST http://localhost:3000/api/v1/user/repos " -+ + "-H 'Accept: application/json' -H 'Content-Type: application/json' " -+ + f"-H 'Authorization: token {api_token}'" -+ + ' -d \'{"auto_init":false, "description":"string", "license":"mit", "name":"repo", "private":false}\''' -+ ) -+ -+ server.succeed( -+ "curl --fail -X POST http://localhost:3000/api/v1/user/keys " -+ + "-H 'Accept: application/json' -H 'Content-Type: application/json' " -+ + f"-H 'Authorization: token {api_token}'" -+ + ' -d \'{"key":"${snakeOilPublicKey}","read_only":true,"title":"SSH"}\''' -+ ) -+ -+ client1.succeed( -+ f"GIT_SSH_COMMAND='{GIT_SSH_COMMAND}' git -C /tmp/repo push origin master" -+ ) -+ -+ client2.succeed("mkdir -p $HOME/.ssh") -+ client2.succeed(f"cat {PRIVK} > $HOME/.ssh/privk") -+ client2.succeed("chmod 0400 $HOME/.ssh/privk") -+ client2.succeed(f"GIT_SSH_COMMAND='{GIT_SSH_COMMAND}' git clone {REPO}") -+ client2.succeed('test "$(cat repo/testfile | xargs echo -n)" = "hello world"') -+ -+ server.wait_until_succeeds( -+ 'test "$(curl http://localhost:3000/api/v1/repos/test/repo/commits ' -+ + '-H "Accept: application/json" | jq length)" = "1"', -+ timeout=10 -+ ) -+ -+ with subtest("Testing runner registration"): -+ server.succeed( -+ "su -l forgejo -c 'GITEA_WORK_DIR=/var/lib/forgejo gitea actions generate-runner-token' | sed 's/^/TOKEN=/' | tee /var/lib/forgejo/runner_token" -+ ) -+ server.succeed("${serverSystem}/specialisation/runner/bin/switch-to-configuration test") -+ server.wait_for_unit("gitea-runner-test.service") -+ server.succeed("journalctl -o cat -u gitea-runner-test.service | grep -q 'Runner registered successfully'") -+ ''; -+ }); -+in -+ -+listToAttrs (map makeGForgejoTest supportedDbTypes) - -From 7b786b39cb0d42949720482b78c31fcfe35b41c7 Mon Sep 17 00:00:00 2001 -From: emilylange -Date: Sun, 6 Aug 2023 18:43:08 +0200 -Subject: [PATCH 3/3] CODEOWNERS: init forgejo - ---- - .github/CODEOWNERS | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS -index 98a7022088eb22..829ce356f9db37 100644 ---- a/.github/CODEOWNERS -+++ b/.github/CODEOWNERS -@@ -288,6 +288,10 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt - /nixos/modules/services/misc/matrix-conduit.nix @piegamesde - /nixos/tests/matrix-conduit.nix @piegamesde - -+# Forgejo -+nixos/modules/services/misc/forgejo.nix @bendlas @emilylange -+pkgs/applications/version-management/forgejo @bendlas @emilylange -+ - # Dotnet - /pkgs/build-support/dotnet @IvarWithoutBones - /pkgs/development/compilers/dotnet @IvarWithoutBones diff --git a/nix-patches/default.nix b/nix-patches/default.nix deleted file mode 100644 index 0393591..0000000 --- a/nix-patches/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - "nixos-23.05" = [ - # Plausible fix - ./241126.patch - - # Kanidm 1.1.0-beta.13 - ./246564.patch - - # Forgejo 1.20.4-0 - ./forgejo.patch - - # Forgejo module - ./248310.patch - - # php: add new Composer builder - ./248184.patch - ]; -} diff --git a/npins/sources.json b/npins/sources.json index c11367c..e4d9a4c 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -54,6 +54,19 @@ "url": null, "hash": "1ymx3ayi189xcinpc6r71qvwgqsvz96y7dwdxzlrjawr08c95wm2" }, + "nix-patches": { + "type": "GitRelease", + "repository": { + "type": "Git", + "url": "https://git.hubrecht.ovh/hubrecht/nix-patches" + }, + "pre_releases": false, + "version_upper_bound": null, + "version": "v0.2.0", + "revision": "6d47298262bd256b02281281ecf58bbf15ed21ba", + "url": null, + "hash": "14w7w327m8rf7yrjflqvbnmwx04l36n7j0nca5ilpvzrr8f2gg6l" + }, "nixos-23.05": { "type": "Channel", "name": "nixos-23.05", diff --git a/patches/default.nix b/patches/default.nix new file mode 100644 index 0000000..98a94d9 --- /dev/null +++ b/patches/default.nix @@ -0,0 +1,69 @@ +{ + "nixos-23.05" = [ + # plausible: fix admin user password seed and SMTP passwords + { + id = 241126; + hash = "sha256-TcGuB3k8SeA8PRb/OdZ8ESw9/7yYKPftR96boK7Hmvc="; + } + + # fetchMixDeps: sha256 -> hash + { + id = 235733; + hash = "sha256-oHGZFXwOJ9ngZNJBTd93abgI+eNPsCBJPgFxt41728o="; + includes = [ + "pkgs/development/beam-modules/fetch-mix-deps.nix" + "pkgs/servers/web-apps/plausible/default.nix" + ]; + } + + # python3Packages.nix-prefetch-github: 6.0.1 -> 7.0.0 + # Only keep the files related to plausible + { + id = 243018; + hash = "sha256-/7jid8tKo2JbVyEmeVxt+9VRqc/2YWkUeagyrMqqb70="; + includes = [ "pkgs/servers/web-apps/plausible/*" ]; + } + + # plausible: 1.4.4 -> 1.5.1 + { + id = 229201; + hash = "sha256-wJ3qQbX5Yn7PZ5gpJYAeCIkblPaaVgUGg3XJb5C8ccY="; + } + + # plausible: 1.5.1 -> 2.0.0 + { + id = 253687; + hash = "sha256-yXZn16+J+UhLoH6R+ir5Tk2vYer4ItFgKN2oefXSYDs="; + } + + # dbip-country-lite: init at 2023-06 + { + id = 235774; + hash = "sha256-M0oktrBKxezhBQh3gKHKXrWF7UjACX3PcpSzoq8HkW0="; + } + + # kanidm: 1.1.0-alpha.12 -> 1.1.0-beta.13 + { + id = 246564; + hash = "sha256-Q/G6w4iXthhC6JI/erOx0HBJ25aLQLtZSusAOdT6dYc="; + } + + # Forgejo v1.19.4-0 -> v1.20.4-1 + { + _type = "static"; + path = ./forgejo.patch; + } + + # nixos/forgejo: fork from nixos/gitea + { + id = 248310; + hash = "sha256-6cLMDbzYRKZrFulkS48dPznAap4bVCLsb1APaud9nV8="; + } + + # garage: add environmentFile + { + id = 257043; + hash = "sha256-etzGZRFgFZra5KmL2pUQnIFBFiAudePDmNTVA4VDiBs="; + } + ]; +} diff --git a/nix-patches/forgejo.patch b/patches/forgejo.patch similarity index 92% rename from nix-patches/forgejo.patch rename to patches/forgejo.patch index b1907e4..2acd7d9 100644 --- a/nix-patches/forgejo.patch +++ b/patches/forgejo.patch @@ -16,7 +16,7 @@ index d21097df07b..2ee652d8785 100644 buildGoModule rec { pname = "forgejo"; - version = "1.19.4-0"; -+ version = "1.20.4-0"; ++ version = "1.20.4-1"; src = fetchFromGitea { domain = "codeberg.org"; @@ -24,7 +24,7 @@ index d21097df07b..2ee652d8785 100644 repo = "forgejo"; rev = "v${version}"; - hash = "sha256-pTcnST8A4gADPBkNago9uwRFEmTx8vNONL/Emer4xLI="; -+ hash = "sha256-guKU3VG1Wyhr5p6w0asL/CopQ5b7HiNi26Tw8WCEpwE="; ++ hash = "sha256-Fxlj+ckw1LSgiQDex3ZizHakIKd52U6JcdTurJj8YWg="; }; - vendorHash = "sha256-LKxhNbSIRaP4EGWX6mE26G9CWfoFTrPRjrL4ShpRHWo=";