From 3e3931f8472b206220db4b6e7d1fcce4e7b75b30 Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Mon, 27 Sep 2021 13:48:19 -0600 Subject: [PATCH] miscellaneous fixes --- appmgr/Cargo.lock | 232 +++++++++++++++---------------- appmgr/Cargo.toml | 56 ++++---- appmgr/src/bin/embassyd.rs | 1 + appmgr/src/context/diagnostic.rs | 12 +- appmgr/src/diagnostic.rs | 14 +- appmgr/src/install/cleanup.rs | 2 +- appmgr/src/install/mod.rs | 6 +- appmgr/src/s9pk/builder.rs | 12 +- appmgr/src/shutdown.rs | 14 +- appmgr/src/ssh.rs | 2 +- appmgr/src/util/mod.rs | 17 +-- patch-db | 2 +- 12 files changed, 188 insertions(+), 182 deletions(-) diff --git a/appmgr/Cargo.lock b/appmgr/Cargo.lock index 83440c882..66e52ce10 100644 --- a/appmgr/Cargo.lock +++ b/appmgr/Cargo.lock @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.43" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28ae2b3dec75a406790005a200b1bd89785afc02517a00ca99ecfe093ee9e6cf" +checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1" [[package]] name = "arrayref" @@ -79,7 +79,7 @@ checksum = "44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5e" dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -260,7 +260,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "thiserror", - "tokio 1.11.0", + "tokio 1.12.0", "tokio-util", "url", "winapi", @@ -279,9 +279,9 @@ dependencies = [ [[package]] name = "bstr" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ "lazy_static", "memchr", @@ -291,9 +291,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.7.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631" +checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538" [[package]] name = "byteorder" @@ -464,7 +464,7 @@ dependencies = [ "cookie 0.15.1", "idna", "log", - "publicsuffix 2.1.0", + "publicsuffix 2.1.1", "serde", "serde_json", "time 0.2.27", @@ -622,7 +622,7 @@ dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", "strsim 0.10.0", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -633,7 +633,7 @@ checksum = "ade7bff147130fe5e6d39f089c6bd49ec0250f35d70b2eebf72afdfc919f15cc" dependencies = [ "darling_core", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -646,7 +646,7 @@ dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", "rustc_version 0.3.3", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -813,7 +813,7 @@ dependencies = [ "stderrlog", "tar", "thiserror", - "tokio 1.11.0", + "tokio 1.12.0", "tokio-compat-02", "tokio-stream", "tokio-tar", @@ -1029,7 +1029,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1116,7 +1116,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1139,7 +1139,7 @@ dependencies = [ "http", "indexmap", "slab", - "tokio 1.11.0", + "tokio 1.12.0", "tokio-util", "tracing", ] @@ -1204,9 +1204,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" +checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" dependencies = [ "bytes 1.1.0", "fnv", @@ -1253,9 +1253,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.12" +version = "0.14.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f67199e765030fa08fe0bd581af683f0d5bc04ea09c2b1102012c5fb90e7fd" +checksum = "15d1cfb9e4f68655fa04c01f59edb405b6074a0f7118ea881e5026e4a1cd8593" dependencies = [ "bytes 1.1.0", "futures-channel", @@ -1269,7 +1269,7 @@ dependencies = [ "itoa", "pin-project-lite 0.2.7", "socket2", - "tokio 1.11.0", + "tokio 1.12.0", "tower-service", "tracing", "want", @@ -1284,7 +1284,7 @@ dependencies = [ "bytes 1.1.0", "hyper", "native-tls", - "tokio 1.11.0", + "tokio 1.12.0", "tokio-native-tls", ] @@ -1300,7 +1300,7 @@ dependencies = [ "hyper", "log", "sha-1", - "tokio 1.11.0", + "tokio 1.12.0", "tokio-tungstenite", ] @@ -1314,7 +1314,7 @@ dependencies = [ "hex", "hyper", "pin-project", - "tokio 1.11.0", + "tokio 1.12.0", ] [[package]] @@ -1356,9 +1356,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" +checksum = "716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd" dependencies = [ "cfg-if 1.0.0", ] @@ -1405,9 +1405,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "js-sys" -version = "0.3.54" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1866b355d9c878e5e607473cbe3f63282c0b7aad2db1dbebf55076c686918254" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" dependencies = [ "wasm-bindgen", ] @@ -1507,9 +1507,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21" +checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6" [[package]] name = "libloading" @@ -1556,12 +1556,6 @@ dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - [[package]] name = "matches" version = "0.1.9" @@ -1818,9 +1812,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.66" +version = "0.9.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82" +checksum = "69df2d8dfc6ce3aaf44b40dec6f487d5a886516cf6879c49e98e0710f310a058" dependencies = [ "autocfg", "cc", @@ -1857,9 +1851,9 @@ dependencies = [ [[package]] name = "password-hash" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad7268ef9bc463fddde8361d358fbfae1aeeb1fb62eca111cd8c763bf1c5891" +checksum = "1d791538a6dcc1e7cb7fe6f6b58aca40e7f79403c45b2bc274008b5e647af1d8" dependencies = [ "base64ct", "rand_core 0.6.3", @@ -1884,7 +1878,7 @@ dependencies = [ "serde_cbor 0.11.1", "serde_json", "thiserror", - "tokio 1.11.0", + "tokio 1.12.0", ] [[package]] @@ -1893,7 +1887,7 @@ version = "0.1.0" dependencies = [ "patch-db-macro-internals", "proc-macro2 1.0.29", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1903,7 +1897,7 @@ dependencies = [ "heck", "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1981,7 +1975,7 @@ checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389" dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2004,9 +1998,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" +checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb" [[package]] name = "ppv-lite86" @@ -2113,9 +2107,9 @@ dependencies = [ [[package]] name = "publicsuffix" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac055aef7cc7a1caefbc65144be879e862467dcd9b8a8d57b64a13e7dce15d" +checksum = "292972edad6bbecc137ab84c5e36421a4a6c979ea31d3cc73540dd04315b33e1" dependencies = [ "byteorder", "hashbrown", @@ -2346,7 +2340,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "time 0.2.27", - "tokio 1.11.0", + "tokio 1.12.0", "tokio-native-tls", "tokio-socks", "url", @@ -2408,7 +2402,7 @@ dependencies = [ "serde_cbor 0.11.2", "serde_json", "thiserror", - "tokio 1.11.0", + "tokio 1.12.0", "url", "yajrc", ] @@ -2419,7 +2413,7 @@ version = "0.1.0" dependencies = [ "proc-macro2 1.0.29", "rpc-toolkit-macro-internals", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2428,7 +2422,7 @@ version = "0.1.0" dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2630,14 +2624,14 @@ checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] name = "serde_json" -version = "1.0.67" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f9e390c27c3c0ce8bc5d725f6e4d30a29d26659494aa4b17535f7522c5c950" +checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8" dependencies = [ "indexmap", "itoa", @@ -2677,14 +2671,14 @@ dependencies = [ "darling", "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] name = "serde_yaml" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad104641f3c958dab30eb3010e834c2622d1f3f4c530fef1dee20ad9485f3c09" +checksum = "d8c608a35705a5d3cdc9fbe403147647ff34b921f8e833e49306df898f9b20af" dependencies = [ "dtoa", "indexmap", @@ -2713,9 +2707,9 @@ checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" [[package]] name = "sha2" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e36fa7752016a6c4483706d634fd82c48860dd2df17a0cfaaebc714f23b2dd" +checksum = "b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa" dependencies = [ "block-buffer", "cfg-if 1.0.0", @@ -2788,9 +2782,9 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" [[package]] name = "socket2" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765f090f0e423d2b55843402a07915add955e7d60657db13707a159727326cad" +checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" dependencies = [ "libc", "winapi", @@ -2804,14 +2798,12 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "sqlformat" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684001e7985ec1a9a66963b77ed151ef22a7876b3fdd7e37a57ec774f54b7d96" +checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" dependencies = [ - "lazy_static", - "maplit", + "itertools 0.10.1", "nom 7.0.0", - "regex", "unicode_categories", ] @@ -2890,7 +2882,7 @@ dependencies = [ "sha2", "sqlx-core", "sqlx-rt", - "syn 1.0.76", + "syn 1.0.77", "url", ] @@ -2901,7 +2893,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14302b678d9c76b28f2e60115211e25e0aabc938269991745a169753dc00e35c" dependencies = [ "once_cell", - "tokio 1.11.0", + "tokio 1.12.0", "tokio-rustls", ] @@ -2957,7 +2949,7 @@ dependencies = [ "quote 1.0.9", "serde", "serde_derive", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2973,7 +2965,7 @@ dependencies = [ "serde_derive", "serde_json", "sha1", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -3035,9 +3027,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.76" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84" +checksum = "5239bc68e0fef57495900cfea4e8dc75596d9a319d7e16b1e0a440d24e6fe0a0" dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", @@ -3052,7 +3044,7 @@ checksum = "474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa" dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "unicode-xid 0.2.2", ] @@ -3144,7 +3136,7 @@ checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c" dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -3213,7 +3205,7 @@ dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", "standback", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -3227,9 +3219,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338" +checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7" dependencies = [ "tinyvec_macros", ] @@ -3254,9 +3246,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4efe6fc2395938c8155973d7be49fe8d03a843726e285e100a8a383cc0154ce" +checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc" dependencies = [ "autocfg", "bytes 1.1.0", @@ -3282,7 +3274,7 @@ dependencies = [ "once_cell", "pin-project-lite 0.2.7", "tokio 0.2.25", - "tokio 1.11.0", + "tokio 1.12.0", "tokio-stream", ] @@ -3294,7 +3286,7 @@ checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110" dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -3304,7 +3296,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" dependencies = [ "native-tls", - "tokio 1.11.0", + "tokio 1.12.0", ] [[package]] @@ -3314,7 +3306,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" dependencies = [ "rustls", - "tokio 1.11.0", + "tokio 1.12.0", "webpki", ] @@ -3327,7 +3319,7 @@ dependencies = [ "either", "futures-util", "thiserror", - "tokio 1.11.0", + "tokio 1.12.0", ] [[package]] @@ -3338,7 +3330,7 @@ checksum = "7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f" dependencies = [ "futures-core", "pin-project-lite 0.2.7", - "tokio 1.11.0", + "tokio 1.12.0", "tokio-util", ] @@ -3351,7 +3343,7 @@ dependencies = [ "futures-core", "libc", "redox_syscall 0.2.10", - "tokio 1.11.0", + "tokio 1.12.0", "tokio-stream", "xattr", ] @@ -3365,7 +3357,7 @@ dependencies = [ "futures-util", "log", "pin-project", - "tokio 1.11.0", + "tokio 1.12.0", "tungstenite", ] @@ -3380,7 +3372,7 @@ dependencies = [ "futures-sink", "log", "pin-project-lite 0.2.7", - "tokio 1.11.0", + "tokio 1.12.0", ] [[package]] @@ -3409,7 +3401,7 @@ dependencies = [ "serde_derive", "sha2", "sha3", - "tokio 1.11.0", + "tokio 1.12.0", ] [[package]] @@ -3420,9 +3412,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.26" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" +checksum = "84f96e095c0c82419687c20ddf5cb3eadb61f4e1405923c9dc8e53a1adacbda8" dependencies = [ "cfg-if 1.0.0", "pin-project-lite 0.2.7", @@ -3431,9 +3423,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ca517f43f0fb96e0c3072ed5c275fe5eece87e8cb52f4a77b69226d3b1c9df8" +checksum = "46125608c26121c81b0c6d693eab5a420e416da7e43c426d2e8f7df8da8a3acf" dependencies = [ "lazy_static", ] @@ -3481,7 +3473,7 @@ checksum = "a46ee5bd706ff79131be9c94e7edcb82b703c487766a114434e5790361cf08c5" dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -3519,9 +3511,9 @@ checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-width" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" [[package]] name = "unicode-xid" @@ -3617,9 +3609,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e68338db6becec24d3c7977b5bf8a48be992c934b5d07177e3931f5dc9b076c" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" dependencies = [ "cfg-if 1.0.0", "serde", @@ -3629,24 +3621,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f34c405b4f0658583dba0c1c7c9b694f3cac32655db463b56c254a1c75269523" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" dependencies = [ "bumpalo", "lazy_static", "log", "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a87d738d4abc4cf22f6eb142f5b9a81301331ee3c767f2fef2fda4e325492060" +checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -3656,9 +3648,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d5a6580be83b19dc570a8f9c324251687ab2184e57086f71625feb57ec77c8" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" dependencies = [ "quote 1.0.9", "wasm-bindgen-macro-support", @@ -3666,28 +3658,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3775a030dc6f5a0afd8a84981a21cc92a781eb429acef9ecce476d0c9113e92" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c279e376c7a8e8752a8f1eaa35b7b0bee6bb9fb0cdacfa97cc3f1f289c87e2b4" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" [[package]] name = "web-sys" -version = "0.3.54" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a84d70d1ec7d2da2d26a5bd78f4bca1b8c3254805363ce743b7a05bc30d195a" +checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" dependencies = [ "js-sys", "wasm-bindgen", @@ -3723,9 +3715,9 @@ dependencies = [ [[package]] name = "whoami" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7741161a40200a867c96dfa5574544efa4178cf4c8f770b62dd1cc0362d7ae1" +checksum = "cabfe22aa4936611957e0b5ad9ed0472ac52b2bfb9aedac4a3f3a91a03bd1ff0" dependencies = [ "wasm-bindgen", "web-sys", @@ -3807,21 +3799,21 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "377db0846015f7ae377174787dd452e1c5f5a9050bc6f954911d01f116daa0cd" +checksum = "bf68b08513768deaa790264a7fac27a58cbf2705cfcdc9448362229217d7e970" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1" +checksum = "bdff2024a851a322b08f179173ae2ba620445aef1e838f0c196820eade4ae0c7" dependencies = [ "proc-macro2 1.0.29", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "synstructure", ] diff --git a/appmgr/Cargo.toml b/appmgr/Cargo.toml index 7ab256a90..7e616c848 100644 --- a/appmgr/Cargo.toml +++ b/appmgr/Cargo.toml @@ -43,8 +43,8 @@ sound = [] [dependencies] aes = { version = "0.7.5", features = ["ctr"] } -anyhow = "1.0.40" -async-trait = "0.1.42" +anyhow = "1.0.44" +async-trait = "0.1.51" avahi-sys = { git = "https://github.com/Start9Labs/avahi-sys", version = "0.10.0", branch = "feature/dynamic-linking", features = [ "dynamic", ], optional = true } @@ -59,44 +59,42 @@ divrem = "1.0.0" ed25519-dalek = { version = "1.0.1", features = ["serde"] } emver = { version = "0.1.2", features = ["serde"] } fd-lock-rs = "0.1.3" -futures = "0.3.8" -git-version = "0.3.4" +futures = "0.3.17" +git-version = "0.3.5" hex = "0.4.3" hmac = "0.11.0" -http = "0.2.3" +http = "0.2.5" hyper-ws-listener = { git = "https://github.com/Start9Labs/hyper-ws-listener.git", branch = "main" } -indexmap = { version = "1.6.2", features = ["serde"] } +indexmap = { version = "1.7.0", features = ["serde"] } isocountry = "0.3.2" -itertools = "0.10.0" +itertools = "0.10.1" jsonpath_lib = "0.3.0" lazy_static = "1.4" -libc = "0.2.86" -log = "0.4.11" -nix = "0.22.0" +libc = "0.2.103" +log = "0.4.14" +nix = "0.22.1" openssh-keys = "0.5.0" -openssl = { version = "0.10.30", features = ["vendored"] } -patch-db = { version = "*", path = "../patch-db/patch-db", features = [ - "log", -] } +openssl = { version = "0.10.36", features = ["vendored"] } +patch-db = { version = "*", path = "../patch-db/patch-db", features = ["log"] } pbkdf2 = "0.9.0" -pin-project = "1.0.6" +pin-project = "1.0.8" prettytable-rs = "0.8.0" proptest = "1.0.0" proptest-derive = "0.3.0" rand = "0.7.3" -regex = "1.4.2" -reqwest = { version = "0.11.2", features = ["stream", "json", "socks"] } +regex = "1.5.4" +reqwest = { version = "0.11.4", features = ["stream", "json", "socks"] } reqwest_cookie_store = "0.2.0" -rpassword = "5.0.0" +rpassword = "5.0.1" rpc-toolkit = { version = "*", path = "../rpc-toolkit/rpc-toolkit" } rust-argon2 = "0.8.3" scopeguard = "1.1" # because avahi-sys fucks your shit up -serde = { version = "1.0.118", features = ["derive", "rc"] } +serde = { version = "1.0.130", features = ["derive", "rc"] } serde_cbor = { package = "ciborium", version = "0.1.0" } -serde_json = "1.0.59" +serde_json = "1.0.68" serde_toml = { package = "toml", version = "0.5.8" } -serde_yaml = "0.8.14" -sha2 = "0.9.3" +serde_yaml = "0.8.21" +sha2 = "0.9.8" simple-logging = "2.0" sqlx = { version = "0.5", features = [ "chrono", @@ -105,14 +103,14 @@ sqlx = { version = "0.5", features = [ "sqlite", ] } stderrlog = "0.5.1" -tar = "0.4.35" -thiserror = "1.0.24" -tokio = { version = "1.11.0", features = ["full"] } +tar = "0.4.37" +thiserror = "1.0.29" +tokio = { version = "1.12.0", features = ["full"] } tokio-compat-02 = "0.2.0" -tokio-stream = { version = "0.1.5", features = ["io-util", "sync"] } +tokio-stream = { version = "0.1.7", features = ["io-util", "sync"] } tokio-tar = { git = "https://github.com/dr-bonez/tokio-tar.git" } tokio-tungstenite = "0.14.0" -tokio-util = { version = "0.6.6", features = ["io"] } +tokio-util = { version = "0.6.8", features = ["io"] } torut = "0.2.0" -typed-builder = "0.9.0" -url = { version = "2.2.1", features = ["serde"] } +typed-builder = "0.9.1" +url = { version = "2.2.2", features = ["serde"] } diff --git a/appmgr/src/bin/embassyd.rs b/appmgr/src/bin/embassyd.rs index 174cf7eaa..c0f7b0bd5 100644 --- a/appmgr/src/bin/embassyd.rs +++ b/appmgr/src/bin/embassyd.rs @@ -6,6 +6,7 @@ use embassy::db::subscribe; use embassy::middleware::auth::auth; use embassy::middleware::cors::cors; use embassy::middleware::diagnostic::diagnostic; +#[cfg(feature = "avahi")] use embassy::net::mdns::MdnsController; use embassy::net::tor::tor_health_check; use embassy::shutdown::Shutdown; diff --git a/appmgr/src/context/diagnostic.rs b/appmgr/src/context/diagnostic.rs index 34988ba3f..cd88aab06 100644 --- a/appmgr/src/context/diagnostic.rs +++ b/appmgr/src/context/diagnostic.rs @@ -10,6 +10,7 @@ use tokio::fs::File; use tokio::sync::broadcast::Sender; use url::Host; +use crate::shutdown::Shutdown; use crate::util::io::from_toml_async_reader; use crate::util::AsyncFileExt; use crate::{Error, ResultExt}; @@ -18,6 +19,7 @@ use crate::{Error, ResultExt}; #[serde(rename_all = "kebab-case")] pub struct DiagnosticContextConfig { pub bind_rpc: Option, + pub zfs_pool_name: Option, } impl DiagnosticContextConfig { pub async fn load>(path: Option

) -> Result { @@ -34,12 +36,19 @@ impl DiagnosticContextConfig { Ok(Self::default()) } } + pub fn zfs_pool_name(&self) -> &str { + self.zfs_pool_name + .as_ref() + .map(|s| s.as_str()) + .unwrap_or("embassy-data") + } } pub struct DiagnosticContextSeed { pub bind_rpc: SocketAddr, - pub shutdown: Sender<()>, + pub shutdown: Sender>, pub error: Arc, + pub zfs_pool_name: Arc, } #[derive(Clone)] @@ -54,6 +63,7 @@ impl DiagnosticContext { bind_rpc: cfg.bind_rpc.unwrap_or(([127, 0, 0, 1], 5959).into()), shutdown, error: Arc::new(error.into()), + zfs_pool_name: Arc::new(cfg.zfs_pool_name().to_owned()), }))) } } diff --git a/appmgr/src/diagnostic.rs b/appmgr/src/diagnostic.rs index 8a7220e49..d71454ff2 100644 --- a/appmgr/src/diagnostic.rs +++ b/appmgr/src/diagnostic.rs @@ -5,12 +5,13 @@ use rpc_toolkit::yajrc::RpcError; use crate::context::DiagnosticContext; use crate::logs::{display_logs, fetch_logs, LogResponse, LogSource}; +use crate::shutdown::Shutdown; use crate::util::display_none; use crate::Error; pub const SYSTEMD_UNIT: &'static str = "embassy-init"; -#[command(subcommands(error, logs, exit))] +#[command(subcommands(error, logs, exit, restart, forget_disk))] pub fn diagnostic() -> Result<(), Error> { Ok(()) } @@ -37,13 +38,20 @@ pub async fn logs( #[command(display(display_none))] pub fn exit(#[context] ctx: DiagnosticContext) -> Result<(), Error> { - ctx.shutdown.send(()).expect("receiver dropped"); + ctx.shutdown.send(None).expect("receiver dropped"); Ok(()) } #[command(display(display_none))] pub fn restart(#[context] ctx: DiagnosticContext) -> Result<(), Error> { - todo!() + ctx.shutdown + .send(Some(Shutdown { + zfs_pool: ctx.zfs_pool_name.clone(), + db_handle: None, + restart: true, + })) + .expect("receiver dropped"); + Ok(()) } #[command(rename = "forget-disk", display(display_none))] diff --git a/appmgr/src/install/cleanup.rs b/appmgr/src/install/cleanup.rs index 0cb213ad5..de5019897 100644 --- a/appmgr/src/install/cleanup.rs +++ b/appmgr/src/install/cleanup.rs @@ -100,7 +100,7 @@ pub async fn cleanup(ctx: &RpcContext, id: &PackageId, version: &Version) -> Res ctx.docker.remove_image(&image.id, None, None).await })) .await?; - let docker_path = Path::new(PKG_DOCKER_DIR).join(id).join(version.as_str()); + let docker_path = ctx.datadir.join(id).join(version.as_str()); if tokio::fs::metadata(&docker_path).await.is_ok() { tokio::fs::remove_dir_all(&docker_path).await?; } diff --git a/appmgr/src/install/mod.rs b/appmgr/src/install/mod.rs index 06d4b34c2..84e88615f 100644 --- a/appmgr/src/install/mod.rs +++ b/appmgr/src/install/mod.rs @@ -181,7 +181,7 @@ pub async fn download_install_s9pk( .join(pkg_id) .join(version.as_str()); tokio::fs::create_dir_all(&pkg_cache_dir).await?; - let pkg_cache = AsRef::::as_ref(pkg_id).with_extension("s9pk"); + let pkg_cache = pkg_cache_dir.join(AsRef::::as_ref(pkg_id).with_extension("s9pk")); let pkg_data_entry = crate::db::DatabaseModel::new() .package_data() @@ -415,7 +415,9 @@ pub async fn install_s9pk( log::info!("Install {}@{}: Unpacking Docker Images", pkg_id, version); progress .track_read_during(progress_model.clone(), &ctx.db, || async { - let image_tar_dir = Path::new(PKG_DOCKER_DIR) + let image_tar_dir = ctx + .datadir + .join(PKG_DOCKER_DIR) .join(pkg_id) .join(version.as_str()); if tokio::fs::metadata(&image_tar_dir).await.is_err() { diff --git a/appmgr/src/s9pk/builder.rs b/appmgr/src/s9pk/builder.rs index 6501ef2cb..1f5a1b871 100644 --- a/appmgr/src/s9pk/builder.rs +++ b/appmgr/src/s9pk/builder.rs @@ -61,7 +61,7 @@ impl< "Serializing Manifest (CBOR)", ) })?; - let new_pos = writer.stream_position()?; + let new_pos = writer.inner_mut().stream_position()?; header.table_of_contents.manifest = FileSection { position, length: new_pos - position, @@ -70,7 +70,7 @@ impl< // license std::io::copy(&mut self.license, &mut writer) .with_ctx(|_| (crate::ErrorKind::Filesystem, "Copying License"))?; - let new_pos = writer.stream_position()?; + let new_pos = writer.inner_mut().stream_position()?; header.table_of_contents.license = FileSection { position, length: new_pos - position, @@ -79,7 +79,7 @@ impl< // instructions std::io::copy(&mut self.instructions, &mut writer) .with_ctx(|_| (crate::ErrorKind::Filesystem, "Copying Instructions"))?; - let new_pos = writer.stream_position()?; + let new_pos = writer.inner_mut().stream_position()?; header.table_of_contents.instructions = FileSection { position, length: new_pos - position, @@ -88,7 +88,7 @@ impl< // icon std::io::copy(&mut self.icon, &mut writer) .with_ctx(|_| (crate::ErrorKind::Filesystem, "Copying Icon"))?; - let new_pos = writer.stream_position()?; + let new_pos = writer.inner_mut().stream_position()?; header.table_of_contents.icon = FileSection { position, length: new_pos - position, @@ -97,7 +97,7 @@ impl< // docker_images std::io::copy(&mut self.docker_images, &mut writer) .with_ctx(|_| (crate::ErrorKind::Filesystem, "Copying Docker Images"))?; - let new_pos = writer.stream_position()?; + let new_pos = writer.inner_mut().stream_position()?; header.table_of_contents.docker_images = FileSection { position, length: new_pos - position, @@ -106,7 +106,7 @@ impl< // assets std::io::copy(&mut self.assets, &mut writer) .with_ctx(|_| (crate::ErrorKind::Filesystem, "Copying Assets"))?; - let new_pos = writer.stream_position()?; + let new_pos = writer.inner_mut().stream_position()?; header.table_of_contents.assets = FileSection { position, length: new_pos - position, diff --git a/appmgr/src/shutdown.rs b/appmgr/src/shutdown.rs index 4249e57d2..f89352516 100644 --- a/appmgr/src/shutdown.rs +++ b/appmgr/src/shutdown.rs @@ -9,11 +9,11 @@ use crate::sound::MARIO_DEATH; use crate::util::{display_none, Invoke}; use crate::Error; -#[derive(Clone)] +#[derive(Debug, Clone)] pub struct Shutdown { - zfs_pool: Arc, - restart: bool, - db_handle: Arc, + pub zfs_pool: Arc, + pub restart: bool, + pub db_handle: Option>, } impl Shutdown { /// BLOCKING @@ -43,7 +43,7 @@ impl Shutdown { { log::error!("Error Stopping Docker: {}", e); } - if let Err(e) = export(&self.zfs_pool).await { + if let Err(e) = export(&*self.zfs_pool).await { log::error!("Error Exporting ZFS Pool: {}", e); } if let Err(e) = MARIO_DEATH.play().await { @@ -72,7 +72,7 @@ pub async fn shutdown(#[context] ctx: RpcContext) -> Result<(), Error> { .send(Some(Shutdown { zfs_pool: ctx.zfs_pool_name.clone(), restart: false, - db_handle: Arc::new(db), + db_handle: Some(Arc::new(db)), })) .map_err(|_| ()) .expect("receiver dropped"); @@ -87,7 +87,7 @@ pub async fn restart(#[context] ctx: RpcContext) -> Result<(), Error> { .send(Some(Shutdown { zfs_pool: ctx.zfs_pool_name.clone(), restart: true, - db_handle: Arc::new(db), + db_handle: Some(Arc::new(db)), })) .map_err(|_| ()) .expect("receiver dropped"); diff --git a/appmgr/src/ssh.rs b/appmgr/src/ssh.rs index 6d0598192..48b46475d 100644 --- a/appmgr/src/ssh.rs +++ b/appmgr/src/ssh.rs @@ -10,7 +10,7 @@ use crate::context::RpcContext; use crate::util::{display_none, display_serializable, IoFormat}; use crate::{Error, ErrorKind}; -static SSH_AUTHORIZED_KEYS_FILE: &str = "~/.ssh/authorized_keys"; +static SSH_AUTHORIZED_KEYS_FILE: &str = "/root/.ssh/authorized_keys"; #[derive(serde::Deserialize, serde::Serialize)] pub struct PubKey( diff --git a/appmgr/src/util/mod.rs b/appmgr/src/util/mod.rs index 904dec4b2..adab08a65 100644 --- a/appmgr/src/util/mod.rs +++ b/appmgr/src/util/mod.rs @@ -686,6 +686,12 @@ impl HashWriter { pub fn finish(self) -> (H, W) { (self.hasher, self.writer) } + pub fn inner(&self) -> &W { + &self.writer + } + pub fn inner_mut(&mut self) -> &mut W { + &mut self.writer + } } impl std::io::Write for HashWriter { fn write(&mut self, buf: &[u8]) -> std::io::Result { @@ -697,17 +703,6 @@ impl std::io::Write for HashWriter { self.writer.flush() } } -impl std::ops::Deref for HashWriter { - type Target = W; - fn deref(&self) -> &Self::Target { - &self.writer - } -} -impl std::ops::DerefMut for HashWriter { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.writer - } -} #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] pub struct Port(pub u16); diff --git a/patch-db b/patch-db index 40bf0d253..96ab78f8b 160000 --- a/patch-db +++ b/patch-db @@ -1 +1 @@ -Subproject commit 40bf0d2538eb50761248c93f13e8407957d6c7a2 +Subproject commit 96ab78f8b0c560f50c3c59ae61a1b151a751076d