From 1fbdf8ef79e8234d191b020858ddeac148422ac3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fabian=20Gr=C3=BCnbichler?= Date: Fri, 9 Dec 2022 11:37:02 +0100 Subject: [PATCH] switch proxmox dependencies to workspace MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit besides harmonizing versions, the only global change is that the tokio-io feature of pxar is now implied since its default anyway, instead of being spelled out. Signed-off-by: Fabian Grünbichler --- Cargo.toml | 109 ++++++++++++++++++++---------- pbs-api-types/Cargo.toml | 10 +-- pbs-client/Cargo.toml | 30 ++++---- pbs-config/Cargo.toml | 24 +++---- pbs-datastore/Cargo.toml | 28 ++++---- pbs-fuse-loop/Cargo.toml | 6 +- pbs-pxar-fuse/Cargo.toml | 10 +-- pbs-tape/Cargo.toml | 18 ++--- pbs-tools/Cargo.toml | 14 ++-- proxmox-backup-client/Cargo.toml | 34 +++++----- proxmox-file-restore/Cargo.toml | 30 ++++---- proxmox-restore-daemon/Cargo.toml | 26 +++---- proxmox-rrd/Cargo.toml | 8 +-- pxar-bin/Cargo.toml | 18 ++--- 14 files changed, 203 insertions(+), 162 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ab3b075a..0d70ae47 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,6 +51,49 @@ members = [ name = "proxmox_backup" path = "src/lib.rs" +[workspace.dependencies] +# proxmox workspace +proxmox-async = "0.4" +proxmox-borrow = "1" +proxmox-compression = "0.1.1" +proxmox-fuse = "0.1.3" +proxmox-http = { version = "0.7", features = [ "client", "http-helpers", "websocket" ] } # see below +proxmox-io = "1.0.1" # tools and client use "tokio" feature +proxmox-lang = "1.1" +proxmox-metrics = "0.2" +proxmox-rest-server = "0.2" +# some use "cli", some use "cli" and "server", pbs-config uses nothing +proxmox-router = { version = "1.3.0", default_features = false } +# everything but pbs-config and pbs-client ues "api-macro" +proxmox-schema = "1.3.1" +proxmox-section-config = "1" +proxmox-serde = "0.1.1" +proxmox-shared-memory = "0.2" +proxmox-subscription = { version = "0.3", features = [ "api-types" ] } +proxmox-sys = "0.4.1" +proxmox-tfa = { version = "2.1", features = [ "api", "api-types" ] } +proxmox-time = "1.1.2" +proxmox-uuid = "1" + +# other proxmox crates +pathpatterns = "0.1.2" +proxmox-acme-rs = "0.4" +proxmox-apt = "0.9.0" +proxmox-openid = "0.9.0" +pxar = "0.10.2" + +# PBS workspace +pbs-api-types = { path = "pbs-api-types" } +pbs-buildcfg = { path = "pbs-buildcfg" } +pbs-client = { path = "pbs-client" } +pbs-config = { path = "pbs-config" } +pbs-datastore = { path = "pbs-datastore" } +pbs-fuse-loop = { path = "pbs-fuse-loop" } +pbs-pxar-fuse = { path = "pbs-pxar-fuse" } +pbs-tape = { path = "pbs-tape" } +pbs-tools = { path = "pbs-tools" } +proxmox-rrd = { path = "proxmox-rrd" } + [dependencies] apt-pkg-native = "0.3.2" base64 = "0.13" @@ -101,40 +144,38 @@ crossbeam-channel = "0.5" # Used only by examples currently: zstd = { version = "0.6", features = [ "bindgen" ] } -pathpatterns = "0.1.2" -pxar = { version = "0.10.2", features = [ "tokio-io" ] } - -proxmox-http = { version = "0.7", features = [ "client", "client-trait", "http-helpers", "proxmox-async", "websocket" ] } -proxmox-io = "1" -proxmox-lang = "1.1" -proxmox-metrics = "0.2" -proxmox-router = { version = "1.3.0", features = [ "cli" ] } -proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] } -proxmox-section-config = "1" -proxmox-tfa = { version = "2.1", features = [ "api", "api-types" ] } -proxmox-time = "1.1.2" -proxmox-uuid = "1" -proxmox-serde = { version = "0.1.1", features = [ "serde_json" ] } -proxmox-shared-memory = "0.2" -proxmox-subscription = { version = "0.3", features = [ "api-types" ] } -proxmox-sys = { version = "0.4.1", features = [ "sortable-macro", "timer" ] } -proxmox-compression = "0.1" -proxmox-rest-server = "0.2" - - -proxmox-acme-rs = "0.4" -proxmox-apt = "0.9.0" -proxmox-async = "0.4" -proxmox-openid = "0.9.0" - -pbs-api-types = { path = "pbs-api-types" } -pbs-buildcfg = { path = "pbs-buildcfg" } -pbs-client = { path = "pbs-client" } -pbs-config = { path = "pbs-config" } -pbs-datastore = { path = "pbs-datastore" } -proxmox-rrd = { path = "proxmox-rrd" } -pbs-tools = { path = "pbs-tools" } -pbs-tape = { path = "pbs-tape" } +proxmox-async.workspace = true +proxmox-compression.workspace = true +proxmox-http = { workspace = true, features = [ "client-trait", "proxmox-async" ] } # pbs-client doesn't use these +proxmox-io.workspace = true +proxmox-lang.workspace = true +proxmox-metrics.workspace = true +proxmox-rest-server.workspace = true +proxmox-router = { workspace = true, features = [ "cli", "server"] } +proxmox-schema = { workspace = true, features = [ "api-macro" ] } +proxmox-section-config.workspace = true +proxmox-serde = { workspace = true, features = [ "serde_json" ] } +proxmox-shared-memory.workspace = true +proxmox-subscription.workspace = true +proxmox-sys = { workspace = true, features = [ "sortable-macro", "timer" ] } +proxmox-tfa.workspace = true +proxmox-time.workspace = true +proxmox-uuid.workspace = true + +pathpatterns.workspace = true +proxmox-acme-rs.workspace = true +proxmox-apt.workspace = true +proxmox-openid.workspace = true +pxar.workspace = true + +pbs-api-types.workspace = true +pbs-buildcfg.workspace = true +pbs-client.workspace = true +pbs-config.workspace = true +pbs-datastore.workspace = true +proxmox-rrd.workspace = true +pbs-tools.workspace = true +pbs-tape.workspace = true # Local path overrides # NOTE: You must run `cargo update` after changing this for it to take effect! diff --git a/pbs-api-types/Cargo.toml b/pbs-api-types/Cargo.toml index ee64b6e1..0b60e1cb 100644 --- a/pbs-api-types/Cargo.toml +++ b/pbs-api-types/Cargo.toml @@ -14,8 +14,8 @@ regex = "1.5.5" serde = { version = "1.0", features = ["derive"] } serde_plain = "1" -proxmox-lang = "1.0.0" -proxmox-schema = { version = "1.2.1", features = [ "api-macro" ] } -proxmox-serde = "0.1" -proxmox-time = "1.1.1" -proxmox-uuid = { version = "1.0.0", features = [ "serde" ] } +proxmox-lang.workspace=true +proxmox-schema = { workspace = true, features = [ "api-macro" ] } +proxmox-serde.workspace = true +proxmox-time.workspace = true +proxmox-uuid = { workspace = true, features = [ "serde" ] } diff --git a/pbs-client/Cargo.toml b/pbs-client/Cargo.toml index 943e90e0..06129c61 100644 --- a/pbs-client/Cargo.toml +++ b/pbs-client/Cargo.toml @@ -31,21 +31,21 @@ tower-service = "0.3.0" xdg = "2.2" tar = "0.4" -pathpatterns = "0.1.2" +pathpatterns.workspace = true -proxmox-async = "0.4" -proxmox-compression = "0.1.1" -proxmox-http = { version = "0.7", features = [ "client", "http-helpers", "websocket" ] } -proxmox-io = { version = "1.0.1", features = [ "tokio" ] } -proxmox-lang = "1.1" -proxmox-router = { version = "1.3.0", features = [ "cli" ] } -proxmox-schema = "1.3.1" -proxmox-time = "1" -proxmox-sys = "0.4.1" +proxmox-async.workspace = true +proxmox-compression.workspace = true +proxmox-http.workspace = true +proxmox-io = { workspace = true, features = [ "tokio" ] } +proxmox-lang.workspace = true +proxmox-router = { workspace = true, features = [ "cli", "server" ] } +proxmox-schema.workspace = true +proxmox-time.workspace = true +proxmox-sys.workspace = true -pxar = { version = "0.10.2", features = [ "tokio-io" ] } +pxar.workspace = true -pbs-api-types = { path = "../pbs-api-types" } -pbs-buildcfg = { path = "../pbs-buildcfg" } -pbs-datastore = { path = "../pbs-datastore" } -pbs-tools = { path = "../pbs-tools" } +pbs-api-types.workspace = true +pbs-buildcfg.workspace = true +pbs-datastore.workspace = true +pbs-tools.workspace = true diff --git a/pbs-config/Cargo.toml b/pbs-config/Cargo.toml index 63158d38..cb799957 100644 --- a/pbs-config/Cargo.toml +++ b/pbs-config/Cargo.toml @@ -17,16 +17,16 @@ regex = "1.5" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -proxmox-lang = "1.1" -proxmox-router = { version = "1.3.0", default-features = false } -proxmox-schema = "1.3.1" -proxmox-section-config = "1" -proxmox-time = "1" -proxmox-serde = "0.1" -proxmox-shared-memory = "0.2" -proxmox-sys = { version = "0.4.1", features = [ "acl", "crypt", "timer" ] } -proxmox-metrics = "0.2" +proxmox-lang.workspace=true +proxmox-metrics.workspace = true +proxmox-router = { workspace = true, default-features = false } +proxmox-schema.workspace = true +proxmox-section-config.workspace = true +proxmox-serde.workspace = true +proxmox-shared-memory.workspace = true +proxmox-sys = { workspace = true, features = [ "acl", "crypt", "timer" ] } +proxmox-time.workspace = true -pbs-api-types = { path = "../pbs-api-types" } -pbs-buildcfg = { path = "../pbs-buildcfg" } -pbs-tools = { path = "../pbs-tools" } +pbs-api-types.workspace = true +pbs-buildcfg.workspace = true +pbs-tools.workspace = true diff --git a/pbs-datastore/Cargo.toml b/pbs-datastore/Cargo.toml index d73df5f1..b40a1aa5 100644 --- a/pbs-datastore/Cargo.toml +++ b/pbs-datastore/Cargo.toml @@ -23,19 +23,19 @@ tokio = { version = "1.6", features = [] } walkdir = "2" zstd = { version = "0.6", features = [ "bindgen" ] } -pathpatterns = "0.1.2" -pxar = "0.10.2" +pathpatterns.workspace = true +pxar.workspace = true -proxmox-borrow = "1" -proxmox-io = "1" -proxmox-lang = "1.1" -proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] } -proxmox-serde = { version = "0.1.1", features = [ "serde_json" ] } -proxmox-time = "1" -proxmox-uuid = "1" -proxmox-sys = "0.4.1" +proxmox-borrow.workspace = true +proxmox-io.workspace = true +proxmox-lang.workspace=true +proxmox-schema = { workspace = true, features = [ "api-macro" ] } +proxmox-serde = { workspace = true, features = [ "serde_json" ] } +proxmox-time.workspace = true +proxmox-uuid.workspace = true +proxmox-sys.workspace = true -pbs-api-types = { path = "../pbs-api-types" } -pbs-buildcfg = { path = "../pbs-buildcfg" } -pbs-tools = { path = "../pbs-tools" } -pbs-config = { path = "../pbs-config" } +pbs-api-types.workspace = true +pbs-buildcfg.workspace = true +pbs-tools.workspace = true +pbs-config.workspace = true diff --git a/pbs-fuse-loop/Cargo.toml b/pbs-fuse-loop/Cargo.toml index f865806e..c45a6469 100644 --- a/pbs-fuse-loop/Cargo.toml +++ b/pbs-fuse-loop/Cargo.toml @@ -15,6 +15,6 @@ log = "0.4" regex = "1.5" tokio = { version = "1.6", features = ["io-util"] } -proxmox-time = "1" -proxmox-fuse = "0.1.3" -proxmox-sys = "0.4.1" +proxmox-time.workspace = true +proxmox-fuse.workspace = true +proxmox-sys.workspace = true diff --git a/pbs-pxar-fuse/Cargo.toml b/pbs-pxar-fuse/Cargo.toml index dc53cdf5..10cb05e7 100644 --- a/pbs-pxar-fuse/Cargo.toml +++ b/pbs-pxar-fuse/Cargo.toml @@ -11,9 +11,9 @@ libc = "0.2" log = "0.4" tokio = "1.6" -proxmox-fuse = "0.1.3" -proxmox-io = "1.0.1" -proxmox-lang = "1.1" -proxmox-sys = "0.4.1" +proxmox-fuse.workspace = true +proxmox-io.workspace = true +proxmox-lang.workspace=true +proxmox-sys.workspace = true -pxar = { version = "0.10.2", features = [ "tokio-io" ] } +pxar.workspace = true diff --git a/pbs-tape/Cargo.toml b/pbs-tape/Cargo.toml index fc363c78..78f3c7c5 100644 --- a/pbs-tape/Cargo.toml +++ b/pbs-tape/Cargo.toml @@ -20,16 +20,16 @@ bitflags = "1.2.1" regex = "1.5" udev = "0.4" -proxmox-io = "1" -proxmox-lang = "1.1" +proxmox-io.workspace = true +proxmox-lang.workspace=true # api-macro is only used by the binaries, so maybe we should split them out -proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] } -proxmox-time = "1" -proxmox-uuid = "1" +proxmox-schema = { workspace = true, features = [ "api-macro" ] } +proxmox-time.workspace = true +proxmox-uuid.workspace = true # router::cli is only used by binaries, so maybe we should split them out -proxmox-router = "1.3.0" -proxmox-sys = "0.4.1" +proxmox-router = { workspace = true, features = ["cli", "server"] } +proxmox-sys.workspace = true -pbs-api-types = { path = "../pbs-api-types" } -pbs-config = { path = "../pbs-config" } +pbs-api-types.workspace = true +pbs-config.workspace = true diff --git a/pbs-tools/Cargo.toml b/pbs-tools/Cargo.toml index 8c94cde8..410ea85a 100644 --- a/pbs-tools/Cargo.toml +++ b/pbs-tools/Cargo.toml @@ -33,14 +33,14 @@ walkdir = "2" zstd = { version = "0.6", features = [ "bindgen" ] } #proxmox = { version = "0.15.3", default-features = false, features = [ "tokio" ] } -proxmox-async = "0.4" -proxmox-io = { version = "1", features = [ "tokio" ] } -proxmox-lang = { version = "1.1" } -proxmox-time = { version = "1" } -proxmox-sys = "0.4.1" +proxmox-async.workspace = true +proxmox-io= { workspace = true, features = [ "tokio" ] } +proxmox-lang.workspace=true +proxmox-time.workspace = true +proxmox-sys.workspace = true -pbs-buildcfg = { path = "../pbs-buildcfg" } -pbs-api-types = { path = "../pbs-api-types" } +pbs-buildcfg.workspace = true +pbs-api-types.workspace = true [dev-dependencies] tokio = { version = "1.6", features = [ "macros" ] } diff --git a/proxmox-backup-client/Cargo.toml b/proxmox-backup-client/Cargo.toml index 3ae23b41..6beab72b 100644 --- a/proxmox-backup-client/Cargo.toml +++ b/proxmox-backup-client/Cargo.toml @@ -20,22 +20,22 @@ tokio-util = { version = "0.7", features = [ "codec", "io" ] } xdg = "2.2" zstd = { version = "0.6", features = [ "bindgen" ] } -pathpatterns = "0.1.2" -pxar = { version = "0.10.2", features = [ "tokio-io" ] } +pathpatterns.workspace = true +pxar.workspace = true -proxmox-async = "0.4" -proxmox-fuse = "0.1.3" -proxmox-io = "1.0.1" -proxmox-router = { version = "1.3.0", features = [ "cli" ] } -proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] } -proxmox-sys = { version = "0.4.1", features = [ "sortable-macro" ] } -proxmox-time = "1" +proxmox-async.workspace = true +proxmox-fuse.workspace = true +proxmox-io.workspace = true +proxmox-router = { workspace = true, features = [ "cli" ] } +proxmox-schema = { workspace = true, features = [ "api-macro" ] } +proxmox-sys = { workspace = true, features = [ "sortable-macro" ] } +proxmox-time.workspace = true -pbs-api-types = { path = "../pbs-api-types" } -pbs-buildcfg = { path = "../pbs-buildcfg" } -pbs-client = { path = "../pbs-client" } -pbs-config = { path = "../pbs-config" } -pbs-datastore = { path = "../pbs-datastore" } -pbs-fuse-loop = { path = "../pbs-fuse-loop" } -pbs-pxar-fuse = { path = "../pbs-pxar-fuse" } -pbs-tools = { path = "../pbs-tools" } +pbs-api-types.workspace = true +pbs-buildcfg.workspace = true +pbs-client.workspace = true +pbs-config.workspace = true +pbs-datastore.workspace = true +pbs-fuse-loop.workspace = true +pbs-pxar-fuse.workspace = true +pbs-tools.workspace = true diff --git a/proxmox-file-restore/Cargo.toml b/proxmox-file-restore/Cargo.toml index 54542152..e61cd82e 100644 --- a/proxmox-file-restore/Cargo.toml +++ b/proxmox-file-restore/Cargo.toml @@ -16,21 +16,21 @@ serde_json = "1.0" tokio = { version = "1.6", features = [ "io-std", "rt", "rt-multi-thread", "time" ] } tokio-util = { version = "0.7", features = ["io"] } -pxar = { version = "0.10.2", features = [ "tokio-io" ] } +pxar.workspace = true #proxmox = { version = "0.15.3" } -proxmox-async = "0.4" -proxmox-lang = "1.1" -proxmox-router = { version = "1.3.0", features = [ "cli" ] } -proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] } -proxmox-time = "1" -proxmox-uuid = "1" -proxmox-sys = { version = "0.4.1", features = [ "logrotate" ] } -proxmox-compression = "0.1" +proxmox-async.workspace = true +proxmox-lang.workspace=true +proxmox-router = { workspace = true, features = [ "cli" ] } +proxmox-schema = { workspace = true, features = [ "api-macro" ] } +proxmox-time.workspace = true +proxmox-uuid.workspace = true +proxmox-sys = { workspace = true, features = [ "logrotate" ] } +proxmox-compression.workspace = true -pbs-api-types = { path = "../pbs-api-types" } -pbs-buildcfg = { path = "../pbs-buildcfg" } -pbs-config = { path = "../pbs-config" } -pbs-client = { path = "../pbs-client" } -pbs-datastore = { path = "../pbs-datastore" } -pbs-tools = { path = "../pbs-tools" } +pbs-api-types.workspace = true +pbs-buildcfg.workspace = true +pbs-config.workspace = true +pbs-client.workspace = true +pbs-datastore.workspace = true +pbs-tools.workspace = true diff --git a/proxmox-restore-daemon/Cargo.toml b/proxmox-restore-daemon/Cargo.toml index 0fad5677..264be5d2 100644 --- a/proxmox-restore-daemon/Cargo.toml +++ b/proxmox-restore-daemon/Cargo.toml @@ -23,18 +23,18 @@ tokio = { version = "1.6", features = ["macros", "parking_lot", "sync"] } tokio-stream = "0.1.0" tokio-util = { version = "0.7", features = [ "codec", "io" ] } -pathpatterns = "0.1.2" -pxar = { version = "0.10.2", features = [ "tokio-io" ] } +pathpatterns.workspace = true +pxar.workspace = true -proxmox-async = "0.4" -proxmox-compression = "0.1.1" -proxmox-rest-server = "0.2" -proxmox-router = { version = "1.3.0", features = [ "cli", "server" ] } -proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] } -proxmox-time = "1" -proxmox-sys = { version = "0.4.1", features = [ "sortable-macro" ] } +proxmox-async.workspace = true +proxmox-compression.workspace = true +proxmox-rest-server.workspace = true +proxmox-router = { workspace = true, features = [ "cli", "server" ] } +proxmox-schema = { workspace = true, features = [ "api-macro" ] } +proxmox-time.workspace = true +proxmox-sys = { workspace = true, features = [ "sortable-macro" ] } -pbs-api-types = { path = "../pbs-api-types" } -pbs-tools = { path = "../pbs-tools" } -pbs-datastore = { path = "../pbs-datastore" } -pbs-client = { path = "../pbs-client" } +pbs-api-types.workspace = true +pbs-tools.workspace = true +pbs-datastore.workspace = true +pbs-client.workspace = true diff --git a/proxmox-rrd/Cargo.toml b/proxmox-rrd/Cargo.toml index c79fc4b3..0955b86f 100644 --- a/proxmox-rrd/Cargo.toml +++ b/proxmox-rrd/Cargo.toml @@ -7,7 +7,7 @@ license.workspace = true description = "Simple RRD database implementation." [dev-dependencies] -proxmox-router = "1.2.4" +proxmox-router = { workspace = true, features = ["cli", "server"] } [dependencies] anyhow = "1.0" @@ -21,6 +21,6 @@ serde_json = "1.0" serde_cbor = "0.11.1" #proxmox = { version = "0.15.3" } -proxmox-time = "1" -proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] } -proxmox-sys = "0.4.1" +proxmox-time.workspace = true +proxmox-schema = { workspace = true, features = [ "api-macro" ] } +proxmox-sys.workspace = true diff --git a/pxar-bin/Cargo.toml b/pxar-bin/Cargo.toml index bc3cfda2..5a687f78 100644 --- a/pxar-bin/Cargo.toml +++ b/pxar-bin/Cargo.toml @@ -16,14 +16,14 @@ log = "0.4" serde_json = "1.0" tokio = { version = "1.6", features = [ "rt", "rt-multi-thread" ] } -pathpatterns = "0.1.2" -pxar = { version = "0.10.2", features = [ "tokio-io" ] } +pathpatterns.workspace = true +pxar.workspace = true -proxmox-async = "0.4" -proxmox-router = "1.3.0" -proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] } -proxmox-sys = "0.4.1" +proxmox-async.workspace = true +proxmox-router = { workspace = true, features = ["cli", "server"] } +proxmox-schema = { workspace = true, features = [ "api-macro" ] } +proxmox-sys.workspace = true -pbs-client = { path = "../pbs-client" } -pbs-pxar-fuse = { path = "../pbs-pxar-fuse" } -pbs-tools = { path = "../pbs-tools" } +pbs-client.workspace = true +pbs-pxar-fuse.workspace = true +pbs-tools.workspace = true -- 2.39.5