Skip to content

Commit e3d4bcd

Browse files
authored
chore: bump dependency versions (#138)
- bump versions of several dependencies - replace lazy_static in favour of std::sync::LazyLock
1 parent 3446ec0 commit e3d4bcd

File tree

10 files changed

+779
-1440
lines changed

10 files changed

+779
-1440
lines changed

Cargo.lock

Lines changed: 671 additions & 1324 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ license = "MIT OR Apache-2.0"
77
name = "omnect-cli"
88
readme = "README.md"
99
repository = "https://github.com/omnect/omnect-cli"
10-
version = "0.24.13"
10+
version = "0.24.14"
1111

1212
[dependencies]
13-
actix-web = "4.4"
13+
actix-web = "4.9"
1414
anyhow = "1"
1515
# switch back to https://github.com/Azure/azure-sdk-for-rust.git as soon as
1616
# https://github.com/Azure/azure-sdk-for-rust/pull/1636
@@ -26,31 +26,30 @@ azure_identity = { git = "https://github.com/omnect/azure-sdk-for-rust.git" }
2626
azure_storage = { git = "https://github.com/omnect/azure-sdk-for-rust.git" }
2727
azure_storage_blobs = { git = "https://github.com/omnect/azure-sdk-for-rust.git" }
2828

29-
base64 = "0.13"
30-
bzip2 = "0.4"
31-
clap = { version = "4.0", features = ["derive"] }
32-
directories = "5.0"
29+
base64 = "0.22"
30+
bzip2 = "0.5"
31+
clap = { version = "4.5", features = ["derive"] }
32+
directories = "6.0"
3333
env_logger = "0.11"
34-
filemagic = "0.12"
35-
flate2 = "1.0"
34+
filemagic = "0.13"
35+
flate2 = "1.1"
3636
omnect-crypto = { git = "https://github.com/omnect/omnect-crypto.git", tag = "0.4.0" }
37-
keyring = "2.0"
38-
lazy_static = "1.4"
39-
libfs = "0.5"
37+
keyring = "3.6"
38+
libfs = "0.8"
4039
log = "0.4"
41-
num_cpus = "1.13"
42-
oauth2 = "4.4"
43-
open = "4.1"
44-
regex = "1.5.5"
45-
reqwest = { version = "0.11", features = ["json"] }
40+
num_cpus = "1.16"
41+
oauth2 = { version = "5.0", features = ["reqwest"] }
42+
open = "5.3"
43+
regex = "1.11"
44+
reqwest = { version = "0.12", features = ["json"] }
4645
serde = { version = "1.0", features = ["derive"] }
4746
serde_json = "1.0"
4847
serde_path_to_error = "0.1"
4948
sha2 = "0.10"
5049
stdext = "0.3"
51-
strum = "0.25"
52-
strum_macros = "0.25"
53-
tempfile = "3.10.1"
50+
strum = "0.27"
51+
strum_macros = "0.27"
52+
tempfile = "3.17"
5453
time = { version = "0.3", features = ["formatting", "serde"] }
5554
tokio = { version = "1", features = [
5655
"macros",
@@ -61,19 +60,19 @@ tokio = { version = "1", features = [
6160
"rt-multi-thread",
6261
] }
6362
toml = "0.8"
64-
uuid = { version = "0.8", default-features = false, features = ["v4"] }
65-
url = { version = "2.4" }
66-
validator = { version = "0.18.1", features = ["derive"] }
63+
uuid = { version = "1.15", default-features = false, features = ["v4"] }
64+
url = { version = "2.5" }
65+
validator = { version = "0.20", features = ["derive"] }
6766
xz2 = "0.1"
6867

6968
[dev-dependencies]
7069
assert_cmd = "2.0"
7170
assert-json-diff = "2.0"
72-
data-encoding = "2.5"
71+
data-encoding = "2.8"
7372
file_diff = "1.0"
74-
httpmock = "0.6"
73+
httpmock = "0.7"
7574
ring = "0.17"
76-
tar = "0.4.41"
75+
tar = "0.4"
7776

7877
# metadata for building with cargo-deb (https://crates.io/crates/cargo-deb)
7978
[package.metadata.deb]

src/auth.rs

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ use actix_web::{error, get, web, App, HttpServer};
88
use serde::Deserialize;
99

1010
use oauth2::basic::BasicClient;
11-
use oauth2::reqwest::async_http_client;
1211
use oauth2::{
1312
AuthUrl, AuthorizationCode, ClientId, CsrfToken, PkceCodeChallenge, RedirectUrl, TokenResponse,
1413
TokenUrl,
@@ -141,13 +140,10 @@ fn store_refresh_token_in_key_ring(auth_info: &AuthInfo, refresh_token: String)
141140
type Token =
142141
oauth2::StandardTokenResponse<oauth2::EmptyExtraTokenFields, oauth2::basic::BasicTokenType>;
143142
async fn request_access_token(auth_info: &AuthInfo) -> Result<Token> {
144-
let client = BasicClient::new(
145-
ClientId::new(auth_info.client_id.clone()),
146-
None,
147-
AuthUrl::new(auth_info.auth_url.clone()).unwrap(),
148-
Some(TokenUrl::new(auth_info.token_url.clone()).unwrap()),
149-
)
150-
.set_redirect_uri(RedirectUrl::new(auth_info.redirect_addr.to_string()).unwrap());
143+
let client = BasicClient::new(ClientId::new(auth_info.client_id.clone()))
144+
.set_auth_uri(AuthUrl::new(auth_info.auth_url.clone()).unwrap())
145+
.set_token_uri(TokenUrl::new(auth_info.token_url.clone()).unwrap())
146+
.set_redirect_uri(RedirectUrl::new(auth_info.redirect_addr.to_string()).unwrap());
151147

152148
let (pkce_challenge, pkce_verifier) = PkceCodeChallenge::new_random_sha256();
153149

@@ -180,29 +176,36 @@ async fn request_access_token(auth_info: &AuthInfo) -> Result<Token> {
180176
);
181177
let _ = open::that(auth_url.to_string());
182178

179+
let async_http_client = oauth2::reqwest::ClientBuilder::new()
180+
.redirect(reqwest::redirect::Policy::none())
181+
.build()
182+
.expect("Failed to request access token: could not create client.");
183+
183184
let auth_code = server_task.await??;
184185

185186
Ok(client
186187
.exchange_code(AuthorizationCode::new(auth_code))
187188
.set_pkce_verifier(pkce_verifier)
188-
.request_async(async_http_client)
189+
.request_async(&async_http_client)
189190
.await?)
190191
}
191192

192193
async fn refresh_access_token(auth_info: &AuthInfo) -> Option<Token> {
193194
let refresh_token = get_refresh_token_from_key_ring(auth_info)?;
194195
log::debug!("Found refresh token in key ring.");
195196

196-
let client = BasicClient::new(
197-
ClientId::new(auth_info.client_id.clone()),
198-
None,
199-
AuthUrl::new(auth_info.auth_url.clone()).unwrap(),
200-
Some(TokenUrl::new(auth_info.token_url.clone()).unwrap()),
201-
);
197+
let client = BasicClient::new(ClientId::new(auth_info.client_id.clone()))
198+
.set_auth_uri(AuthUrl::new(auth_info.auth_url.clone()).unwrap())
199+
.set_token_uri(TokenUrl::new(auth_info.token_url.clone()).unwrap());
200+
201+
let async_http_client = oauth2::reqwest::ClientBuilder::new()
202+
.redirect(reqwest::redirect::Policy::none())
203+
.build()
204+
.expect("Failed to refresh access token: could not create client.");
202205

203206
let access_token = client
204207
.exchange_refresh_token(&oauth2::RefreshToken::new(refresh_token))
205-
.request_async(async_http_client)
208+
.request_async(&async_http_client)
206209
.await;
207210

208211
access_token.ok()

src/config.rs

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use serde::Deserialize;
2+
use std::sync::LazyLock;
23

34
use crate::auth::AuthInfo;
45

@@ -48,21 +49,18 @@ pub struct BackendConfig {
4849
pub auth: AuthProvider,
4950
}
5051

51-
lazy_static::lazy_static! {
52-
pub static ref AUTH_INFO_PROD: AuthProvider = {
53-
let provider = "https://keycloak.omnect.conplement.cloud".to_string();
54-
let realm = "cp-prod".to_string();
55-
let client_id = "cp-cli".to_string();
56-
let bind_addrs = vec!["127.0.0.1:4000".to_string(), "[::1]:4000".to_string()];
57-
let redirect = url::Url::parse("http://localhost:4000").unwrap();
52+
pub static AUTH_INFO_PROD: LazyLock<AuthProvider> = LazyLock::new(|| {
53+
let provider = "https://keycloak.omnect.conplement.cloud".to_string();
54+
let realm = "cp-prod".to_string();
55+
let client_id = "cp-cli".to_string();
56+
let bind_addrs = vec!["127.0.0.1:4000".to_string(), "[::1]:4000".to_string()];
57+
let redirect = url::Url::parse("http://localhost:4000").unwrap();
5858

59-
AuthProvider::Keycloak(
60-
KeycloakInfo {
61-
provider,
62-
realm,
63-
client_id,
64-
bind_addrs,
65-
redirect,
66-
})
67-
};
68-
}
59+
AuthProvider::Keycloak(KeycloakInfo {
60+
provider,
61+
realm,
62+
client_id,
63+
bind_addrs,
64+
redirect,
65+
})
66+
});

src/device_update.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use azure_identity::{ClientSecretCredential, TokenCredentialOptions};
33
use azure_iot_deviceupdate::DeviceUpdateClient;
44
use azure_storage::{shared_access_signature::service_sas::BlobSasPermissions, StorageCredentials};
55
use azure_storage_blobs::prelude::{BlobServiceClient, ContainerClient};
6+
use base64::prelude::*;
67
use log::{debug, info};
78
use serde::Serialize;
89
use sha2::Digest;
@@ -214,10 +215,9 @@ pub async fn import_update(
214215
.context("import manifest pah invalid")?
215216
))?
216217
.len();
217-
let manifest_sha256 = base64::encode_config(
218-
sha2::Sha256::digest(std::fs::read(import_manifest_path).unwrap()),
219-
base64::STANDARD,
220-
);
218+
let manifest_sha256 = BASE64_STANDARD.encode(sha2::Sha256::digest(
219+
std::fs::read(import_manifest_path).unwrap(),
220+
));
221221

222222
let manifest: serde_json::Value = serde_json::from_reader(
223223
OpenOptions::new()
@@ -324,10 +324,9 @@ fn get_file_attributes(file: &Path) -> Result<File> {
324324

325325
let hashes = HashMap::from([(
326326
"sha256",
327-
base64::encode_config(
328-
sha2::Sha256::digest(std::fs::read(file).context(format!("cannot read {}", file))?),
329-
base64::STANDARD,
330-
),
327+
BASE64_STANDARD.encode(sha2::Sha256::digest(
328+
std::fs::read(file).context(format!("cannot read {}", file))?,
329+
)),
331330
)]);
332331

333332
Ok(File {

src/image.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,16 @@ use crate::file::functions::read_file_from_image;
44
use crate::file::functions::Partition;
55
use anyhow::{Context, Result};
66
use regex::Regex;
7+
use std::sync::LazyLock;
78

89
// NOTE (2024-05-29 Tobias Langer): /etc/os-release is a symlink in our yocto
910
// builds. The e2tools-suite cannot handle symlinks so we use its target
1011
// directly.
1112
const OS_RELEASE_PATH: &str = "/usr/lib/os-release";
1213
const OS_RELEASE_PARTITION: Partition = Partition::rootA;
1314

14-
lazy_static::lazy_static! {
15-
pub static ref ARCH_REGEX: Regex = {
16-
Regex::new(r#"OMNECT_TARGET_ARCH="(?<arch>.*)""#).unwrap()
17-
};
18-
}
15+
static ARCH_REGEX: LazyLock<Regex> =
16+
LazyLock::new(|| Regex::new(r#"OMNECT_TARGET_ARCH="(?<arch>.*)""#).unwrap());
1917

2018
#[allow(non_camel_case_types)]
2119
pub enum Architecture {

src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#[macro_use]
2-
extern crate lazy_static;
32
pub mod auth;
43
pub mod cli;
54
pub mod config;

0 commit comments

Comments
 (0)