inherit shared, external dependencies

noteworthy changes:
- proxmox-http had a default_features_false dep on hyper, which is dropped (the
  default feature is empty anyway)
- hyper, libc, nix, tokio and url versions are unified
- missing (cosmetic) bindgen feature on zstd enabled everywhere

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2022-12-06 13:43:42 +01:00
parent 64959d9ae0
commit 4189221470
19 changed files with 144 additions and 117 deletions

View File

@ -30,3 +30,30 @@ edition = "2021"
license = "AGPL-3" license = "AGPL-3"
repository = "https://git.proxmox.com/?p=proxmox.git" repository = "https://git.proxmox.com/?p=proxmox.git"
exclude = [ "debian" ] exclude = [ "debian" ]
[workspace.dependencies]
# any features enabled here are enabled on all members using 'workspace = true'!
# external dependencies
anyhow = "1.0"
base64 = "0.13"
endian_trait = "0.6"
futures = "0.3"
hex = "0.4"
http = "0.2"
hyper = "0.14.5"
lazy_static = "1.4"
libc = "0.2.107"
log = "0.4.17"
nix = "0.24.1"
openssl = "0.10"
percent-encoding = "2.1"
proc-macro2 = "1.0"
quote = "1.0"
serde = "1.0"
serde_json = "1.0"
syn = { version = "1.0", features = [ "full", "visit-mut" ] }
tokio = "1.6"
tokio-openssl = "0.6.1"
url = "2.2"
zstd = { version = "0.6", features = [ "bindgen" ] }

View File

@ -13,15 +13,15 @@ exclude.workspace = true
proc-macro = true proc-macro = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
proc-macro2 = "1.0" proc-macro2.workspace = true
quote = "1.0" quote.workspace = true
syn = { version = "1.0", features = [ "extra-traits", "full", "visit-mut" ] } syn = { workspace = true , features = [ "extra-traits" ] }
[dev-dependencies] [dev-dependencies]
futures = "0.3" futures.workspace = true
serde = { version = "1.0", features = [ "derive" ] } serde = { workspace = true, features = [ "derive" ] }
serde_json = "1.0" serde_json.workspace = true
[dev-dependencies.proxmox-schema] [dev-dependencies.proxmox-schema]
version = "1.0.0" version = "1.0.0"

View File

@ -10,14 +10,14 @@ description = "Proxmox async/tokio helpers"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
futures = "0.3" futures.workspace = true
lazy_static = "1.4" lazy_static.workspace = true
pin-utils = "0.1.0" pin-utils = "0.1.0"
tokio = { version = "1.0", features = [ "net", "rt", "rt-multi-thread", "sync"] } tokio = { workspace = true, features = [ "net", "rt", "rt-multi-thread", "sync"] }
proxmox-io = { path = "../proxmox-io", version = "1", features = [ "tokio" ] } proxmox-io = { path = "../proxmox-io", version = "1", features = [ "tokio" ] }
proxmox-lang = { path = "../proxmox-lang", version = "1.1" } proxmox-lang = { path = "../proxmox-lang", version = "1.1" }
[dev-dependencies] [dev-dependencies]
tokio = { version = "1.6", features = [ "macros" ] } tokio = { workspace = true, features = [ "macros" ] }

View File

@ -10,22 +10,22 @@ description = "contains compression utilitites (such as an Zip Encoder for async
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
bytes = "1.0" bytes = "1.0"
crc32fast = "1" crc32fast = "1"
endian_trait = { version = "0.6" } endian_trait.workspace = true
flate2 = "1.0" flate2 = "1.0"
futures = "0.3" futures.workspace = true
libc = "0.2" libc.workspace = true
tokio = { version = "1.6", features = [ "fs", "io-util"] } tokio = { workspace = true, features = [ "fs", "io-util"] }
walkdir = "2" walkdir = "2"
tar = "0.4" tar = "0.4"
zstd = { version = "0.6", features = []} zstd.workspace = true
proxmox-time = { path = "../proxmox-time", version = "1" } proxmox-time = { path = "../proxmox-time", version = "1" }
proxmox-io = { path = "../proxmox-io", version = "1", features = [ "tokio" ] } proxmox-io = { path = "../proxmox-io", version = "1", features = [ "tokio" ] }
proxmox-lang = { path = "../proxmox-lang", version = "1.1" } proxmox-lang = { path = "../proxmox-lang", version = "1.1" }
[dev-dependencies] [dev-dependencies]
tokio = { version = "1.6", features = [ "macros" ] } tokio = { workspace = true, features = [ "macros" ] }

View File

@ -10,17 +10,17 @@ description = "Proxmox HTTP library"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
base64 = { version = "0.13", optional = true } base64 = { workspace = true, optional = true }
futures = { version = "0.3", optional = true } futures = { workspace = true, optional = true }
http = { version = "0.2", optional = true } http = { workspace = true, optional = true }
hyper = { version = "0.14", default_features = false, optional = true } hyper = { workspace = true, optional = true }
openssl = { version = "0.10", optional = true } openssl = { version = "0.10", optional = true }
serde_json = { version = "1.0", optional = true } serde_json = { workspace = true, optional = true }
tokio = { version = "1.0", features = [], optional = true } tokio = { workspace = true, features = [], optional = true }
tokio-openssl = { version = "0.6.1", optional = true } tokio-openssl = { workspace = true, optional = true }
ureq = { version = "2.4", features = ["native-certs"], optional = true } ureq = { version = "2.4", features = ["native-certs"], optional = true }
url = { version = "2", optional = true } url = { workspace = true, optional = true }
proxmox-async = { path = "../proxmox-async", optional = true, version = "0.4.1" } proxmox-async = { path = "../proxmox-async", optional = true, version = "0.4.1" }
proxmox-sys = { path = "../proxmox-sys", optional = true, version = "0.4" } proxmox-sys = { path = "../proxmox-sys", optional = true, version = "0.4" }

View File

@ -10,6 +10,6 @@ description = "extension traits for Read and Write"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
endian_trait = { version = "0.6", features = ["arrays"] } endian_trait = { workspace = true, features = ["arrays"] }
# this is also the feature name: # this is also the feature name:
tokio = { version = "1.0", features = [ "io-util" ], optional = true } tokio = { workspace = true, features = [ "io-util" ], optional = true }

View File

@ -10,14 +10,14 @@ description = "Metrics Server export utilitites"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
futures = "0.3" futures.workspace = true
http = "0.2" http.workspace = true
hyper = "0.14" hyper.workspace = true
openssl = "0.10" openssl.workspace = true
serde = "1.0" serde.workspace = true
serde_json = "1.0" serde_json.workspace = true
tokio = { version = "1.0", features = [ "net", "sync" ] } tokio = { workspace = true, features = [ "net", "sync" ] }
proxmox-async = { path = "../proxmox-async", features = [], version = "0.4" } proxmox-async = { path = "../proxmox-async", features = [], version = "0.4" }
proxmox-http = { path = "../proxmox-http", features = [ "client" ], version = "0.7" } proxmox-http = { path = "../proxmox-http", features = [ "client" ], version = "0.7" }

View File

@ -11,28 +11,28 @@ exclude.workspace = true
[dev-dependencies] [dev-dependencies]
proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] } proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] }
tokio = { version = "1.6", features = [ "rt-multi-thread", "signal", "process" ] } tokio = { workspace = true, features = [ "rt-multi-thread", "signal", "process" ] }
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
futures = "0.3" futures.workspace = true
handlebars = "3.0" handlebars = "3.0"
http = "0.2" http.workspace = true
hyper = { version = "0.14.5", features = [ "full" ] } hyper = { workspace = true, features = [ "full" ] }
lazy_static = "1.4" lazy_static.workspace = true
libc = "0.2" libc.workspace = true
log = "0.4.17" log.workspace = true
nix = "0.24" nix.workspace = true
once_cell = "1.3.1" once_cell = "1.3.1"
percent-encoding = "2.1" percent-encoding.workspace = true
regex = "1.5" regex = "1.5"
serde = { version = "1.0", features = [ "derive" ] } serde = { workspace = true, features = [ "derive" ] }
serde_json = "1.0" serde_json.workspace = true
tokio = { version = "1.6", features = ["signal", "process"] } tokio = { workspace = true, features = ["signal", "process"] }
tokio-openssl = "0.6.1" tokio-openssl.workspace = true
tokio-stream = "0.1.0" tokio-stream = "0.1.0"
tower-service = "0.3.0" tower-service = "0.3.0"
url = "2.1" url.workspace = true
#proxmox = "0.15.3" #proxmox = "0.15.3"
proxmox-async = "0.4" proxmox-async = "0.4"

View File

@ -10,20 +10,20 @@ description = "proxmox API Router and CLI utilities"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
env_logger = { version = "0.9", optional = true } env_logger = { version = "0.9", optional = true }
http = { version = "0.2", optional = true } http = { workspace = true, optional = true }
hyper = { version = "0.14", features = [ "full" ], optional = true } hyper = { workspace = true, features = [ "full" ], optional = true }
nix = "0.24.1" nix.workspace = true
percent-encoding = "2.1" percent-encoding.workspace = true
serde_json = "1.0" serde_json.workspace = true
serde = "1.0" serde.workspace = true
unicode-width ="0.1.8" unicode-width ="0.1.8"
# cli: # cli:
tokio = { version = "1.0", features = [], optional = true } tokio = { workspace = true, features = [], optional = true }
rustyline = { version = "9", optional = true } rustyline = { version = "9", optional = true }
libc = { version = "0.2", optional = true } libc = { workspace = true, optional = true }
proxmox-lang = { path = "../proxmox-lang", version = "1.1" } proxmox-lang = { path = "../proxmox-lang", version = "1.1" }
proxmox-schema = { path = "../proxmox-schema", version = "1.1" } proxmox-schema = { path = "../proxmox-schema", version = "1.1" }

View File

@ -10,22 +10,22 @@ description = "proxmox api schema and validation"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
lazy_static = "1.4" lazy_static.workspace = true
regex = "1.5" regex = "1.5"
serde = "1.0" serde.workspace = true
serde_json = "1.0" serde_json.workspace = true
textwrap = "0.16" textwrap = "0.16"
# the upid type needs this for 'getpid' # the upid type needs this for 'getpid'
libc = { version = "0.2", optional = true } libc = { workspace = true, optional = true }
nix = { version = "0.24.1", optional = true } nix = { workspace = true, optional = true }
proxmox-api-macro = { path = "../proxmox-api-macro", optional = true, version = "1.0.3" } proxmox-api-macro = { path = "../proxmox-api-macro", optional = true, version = "1.0.3" }
[dev-dependencies] [dev-dependencies]
url = "2.1" url.workspace = true
serde = { version = "1.0", features = [ "derive" ] } serde = { workspace = true, features = [ "derive" ] }
proxmox-api-macro = { path = "../proxmox-api-macro", version = "1.0.3" } proxmox-api-macro = { path = "../proxmox-api-macro", version = "1.0.3" }
[features] [features]

View File

@ -10,10 +10,10 @@ description = "proxmox schema based section config format parsing"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
hex = "0.4" hex.workspace = true
serde = "1.0" serde.workspace = true
serde_json = "1.0" serde_json.workspace = true
proxmox-schema = { path = "../proxmox-schema", version = "1.1" } proxmox-schema = { path = "../proxmox-schema", version = "1.1" }
# FIXME: remove! # FIXME: remove!

View File

@ -10,12 +10,12 @@ description = "Serde formatting tools"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
base64 = "0.13" base64.workspace = true
serde = { version = "1.0", features = ["derive"] } serde = { workspace = true, features = ["derive"] }
serde_json = { version = "1.0", optional = true } serde_json = { workspace = true, optional = true }
proxmox-time = { path = "../proxmox-time", version = "1.0.0" } proxmox-time = { path = "../proxmox-time", version = "1.0.0" }
[dev-dependencies] [dev-dependencies]
serde_json = "1.0" serde_json.workspace = true

View File

@ -10,8 +10,8 @@ description = "Shared memory helpers and shared mutex implementation"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
libc = "0.2.107" libc.workspace = true
nix = "0.24.1" nix.workspace = true
proxmox-sys = { path = "../proxmox-sys", version = "0.4" } proxmox-sys = { path = "../proxmox-sys", version = "0.4" }

View File

@ -13,6 +13,6 @@ exclude.workspace = true
proc-macro = true proc-macro = true
[dependencies] [dependencies]
proc-macro2 = "1.0" proc-macro2.workspace = true
quote = "1.0" quote.workspace = true
syn = { version = "1.0", features = [ "full", "visit-mut" ] } syn = { workspace = true }

View File

@ -10,14 +10,14 @@ description = "Proxmox subscription utilitites"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
base64 = "0.13" base64.workspace = true
hex = "0.4" hex.workspace = true
lazy_static = "1.4" lazy_static.workspace = true
openssl = "0.10" openssl.workspace = true
regex = "1.5" regex = "1.5"
serde = "1.0" serde.workspace = true
serde_json = "1.0" serde_json.workspace = true
proxmox-http = { path = "../proxmox-http", version = "0.7", default_features = false, features = ["client-trait", "http-helpers"] } proxmox-http = { path = "../proxmox-http", version = "0.7", default_features = false, features = ["client-trait", "http-helpers"] }
proxmox-serde = { path = "../proxmox-serde", version = "0.1.1", features = ["serde_json"]} proxmox-serde = { path = "../proxmox-serde", version = "0.1.1", features = ["serde_json"]}

View File

@ -10,16 +10,16 @@ description = "System tools (using nix)."
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
base64 = "0.13" base64.workspace = true
lazy_static = "1.4" lazy_static.workspace = true
libc = "0.2.107" libc.workspace = true
log = "0.4.17" log.workspace = true
nix = "0.24.1" nix.workspace = true
regex = "1.2" regex = "1.2"
serde_json = "1.0" serde_json.workspace = true
serde = { version = "1.0", features = [ "derive" ] } serde = { workspace = true, features = [ "derive" ] }
zstd = { version = "0.6", features = [ "bindgen" ], optional = true} zstd = { workspace = true, optional = true}
# Macro crates: # Macro crates:
proxmox-sortable-macro = { path = "../proxmox-sortable-macro", optional = true, version = "0.1.2" } proxmox-sortable-macro = { path = "../proxmox-sortable-macro", optional = true, version = "0.1.2" }

View File

@ -10,17 +10,17 @@ description = "tfa implementation for totp and u2f"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
base32 = "0.4" base32 = "0.4"
base64 = "0.13" base64.workspace = true
hex = "0.4" hex.workspace = true
openssl = "0.10" openssl.workspace = true
percent-encoding = "2.1" percent-encoding.workspace = true
serde = "1.0" serde.workspace = true
serde_plain = "1.0" serde_plain = "1.0"
serde_json = { version = "1.0", optional = true } serde_json = { workspace = true, optional = true }
libc = { version = "0.2", optional = true } libc = { workspace = true, optional = true }
url = "2.2" url.workspace = true
proxmox-schema = { version = "1", path = "../proxmox-schema", features = [ "api-macro" ], optional = true } proxmox-schema = { version = "1", path = "../proxmox-schema", features = [ "api-macro" ], optional = true }
proxmox-time = { version = "1", path = "../proxmox-time", optional = true } proxmox-time = { version = "1", path = "../proxmox-time", optional = true }

View File

@ -10,13 +10,13 @@ description = "time utilities and TmEditor"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
bitflags = "1.2.1" bitflags = "1.2.1"
lazy_static = "1.4" lazy_static.workspace = true
nom = "7" nom = "7"
[target.'cfg(not(target_arch="wasm32"))'.dependencies] [target.'cfg(not(target_arch="wasm32"))'.dependencies]
libc = { version = "0.2", features = [ "extra_traits" ] } libc = { workspace = true, features = [ "extra_traits" ] }
[target.'cfg(target_arch="wasm32")'.dependencies] [target.'cfg(target_arch="wasm32")'.dependencies]
js-sys = "0.3.55" js-sys = "0.3.55"

View File

@ -10,15 +10,15 @@ description = "bindings for libuuid with optional serde support"
exclude.workspace = true exclude.workspace = true
[dependencies] [dependencies]
libc = "0.2" libc.workspace = true
serde = { version = "1.0", optional = true } serde = { workspace = true, optional = true }
[features] [features]
default = [] default = []
[dev-dependencies] [dev-dependencies]
serde = "1.0" serde.workspace = true
serde_json = "1.0" serde_json.workspace = true
[target.'cfg(target_arch="wasm32")'.dependencies] [target.'cfg(target_arch="wasm32")'.dependencies]
js-sys = "0.3.55" js-sys = "0.3.55"