Error: CLIPPY_WARNING: [#def1] crates/openshell-cli/src/run.rs:1900:5: warning: large future with a size of 19648 bytes # | # 1900 | / sandbox_create( # 1901 | | &server, # 1902 | | name, # 1903 | | from, # ... | # 1918 | | &tls, # 1919 | | ) # | |_____^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#large_futures # help: consider `Box::pin` on it # | # 1900 ~ Box::pin(sandbox_create( # 1901 + &server, # 1902 + name, # 1903 + from, # 1904 + &gateway_name, # 1905 + upload, # 1906 + keep, # 1907 + gpu, # 1908 + editor, # 1909 + remote, # 1910 + ssh_key, # 1911 + providers, # 1912 + policy, # 1913 + forward, # 1914 + command, # 1915 + tty_override, # 1916 + Some(false), # 1917 + auto_providers_override, # 1918 + &tls, # 1919 + )) # | Error: CLIPPY_WARNING: [#def2] crates/openshell-policy/src/lib.rs:133:19: warning: this argument (8 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) # | # 133 | fn is_zero_i64(v: &i64) -> bool { # | ^^^^ help: consider passing by value instead: `i64` # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#trivially_copy_pass_by_ref Error: CLIPPY_WARNING: [#def3] crates/openshell-providers/src/lib.rs:95:40: warning: item in documentation is missing backticks # | # 95 | /// Default implementation returns NotConfigured error - providers that need # | ^^^^^^^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # help: try # | # 95 - /// Default implementation returns NotConfigured error - providers that need # 95 + /// Default implementation returns `NotConfigured` error - providers that need # | Error: CLIPPY_WARNING: [#def4] crates/openshell-providers/src/providers/vertex.rs:43:48: warning: variables can be used directly in the `format!` string # | # 43 | ... ProviderError::UnsupportedProvider(format!( # | __________________________________________^ # 44 | | ... "Invalid ADC format: {}. Expected Google Application Default Credentials JSON from 'gcloud auth application-default logi... # 45 | | ... e # 46 | | ... )) # | |_______^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#uninlined_format_args # = note: `-W clippy::uninlined-format-args` implied by `-W clippy::pedantic` # = help: to override `-W clippy::pedantic` add `#[allow(clippy::uninlined_format_args)]` Error: CLIPPY_WARNING: [#def5] crates/openshell-providers/src/providers/vertex.rs:56:52: warning: variables can be used directly in the `format!` string # | # 56 | ProviderError::UnsupportedProvider(format!( # | ____________________________________________________^ # 57 | | "Failed to create runtime for validation: {}", # 58 | | e # 59 | | )) # | |_________________^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#uninlined_format_args Error: CLIPPY_WARNING: [#def6] crates/openshell-providers/src/providers/vertex.rs:64:9: warning: returning the result of a `let` binding from a block # | # 50 | / let result = if let Ok(handle) = tokio::runtime::Handle::try_current() { # 51 | | // Already in a runtime - use block_in_place to avoid nested runtime error # 52 | | tokio::task::block_in_place(|| handle.block_on(Self::validate_adc_async(adc))) # 53 | | } else { # ... | # 61 | | runtime.block_on(Self::validate_adc_async(adc)) # 62 | | }; # | |__________- unnecessary `let` binding # 63 | # 64 | result # | ^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#let_and_return # = note: `-W clippy::let-and-return` implied by `-W clippy::all` # = help: to override `-W clippy::all` add `#[allow(clippy::let_and_return)]` # help: return the expression directly # | # 50 ~ # 51 | # 52 ~ if let Ok(handle) = tokio::runtime::Handle::try_current() { # 53 + // Already in a runtime - use block_in_place to avoid nested runtime error # 54 + tokio::task::block_in_place(|| handle.block_on(Self::validate_adc_async(adc))) # 55 + } else { # 56 + // Not in a runtime - create one # 57 + let runtime = tokio::runtime::Runtime::new().map_err(|e| { # 58 + ProviderError::UnsupportedProvider(format!( # 59 + "Failed to create runtime for validation: {}", # 60 + e # 61 + )) # 62 + })?; # 63 + runtime.block_on(Self::validate_adc_async(adc)) # 64 + } # | Error: CLIPPY_WARNING: [#def7] crates/openshell-providers/src/providers/vertex.rs:83:52: warning: variables can be used directly in the `format!` string # | # 83 | ProviderError::UnsupportedProvider(format!( # | ____________________________________________________^ # 84 | | "Failed to connect to Google OAuth: {}. Check your internet connection.", # 85 | | e # 86 | | )) # | |_________________^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#uninlined_format_args Error: CLIPPY_WARNING: [#def8] crates/openshell-providers/src/providers/vertex.rs:92:59: warning: variables can be used directly in the `format!` string # | # 92 | ... return Err(ProviderError::UnsupportedProvider(format!( # | _____________________________________________________^ # 93 | | ... "ADC credentials rejected by Google OAuth (status {}): {}. Your credentials may be expired or invalid. Run: gcloud auth ... # 94 | | ... status, body # 95 | | ... ))); # | |_______^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#uninlined_format_args Error: CLIPPY_WARNING: [#def9] crates/openshell-providers/src/providers/vertex.rs:122:49: warning: variables can be used directly in the `format!` string # | # 122 | return Err(RuntimeError::AuthFailed(format!( # | _________________________________________________^ # 123 | | "OAuth token request failed with status {}: {}", # 124 | | status, body # 125 | | ))); # | |_____________^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#uninlined_format_args Error: CLIPPY_WARNING: [#def10] crates/openshell-providers/src/providers/vertex.rs:198:30: warning: use Option::map_or_else instead of an if let/else # | # 198 | let adc_result = if let Ok(adc) = std::env::var("VERTEX_ADC") { # | ______________________________^ # 199 | | tracing::debug!("discovered VERTEX_ADC from environment variable"); # 200 | | Some(adc) # 201 | | } else if let Some(adc) = Self::read_adc_from_standard_path() { # ... | # 205 | | None # 206 | | }; # | |_____________^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#option_if_let_else # = note: `-W clippy::option-if-let-else` implied by `-W clippy::nursery` # = help: to override `-W clippy::nursery` add `#[allow(clippy::option_if_let_else)]` # help: try # | # 198 ~ let adc_result = std::env::var("VERTEX_ADC").map_or_else(|_| if let Some(adc) = Self::read_adc_from_standard_path() { # 199 + tracing::debug!("discovered ADC from standard gcloud path"); # 200 + Some(adc) # 201 + } else { # 202 + None # 203 + }, |adc| { # 204 + tracing::debug!("discovered VERTEX_ADC from environment variable"); # 205 + Some(adc) # 206 ~ }); # | Error: CLIPPY_WARNING: [#def11] crates/openshell-providers/src/providers/vertex.rs:244:56: warning: variables can be used directly in the `format!` string # | # 244 | .map_err(|e| RuntimeError::InvalidResponse(format!("Invalid ADC format: {}", e)))?; # | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#uninlined_format_args # help: change this to # | # 244 - .map_err(|e| RuntimeError::InvalidResponse(format!("Invalid ADC format: {}", e)))?; # 244 + .map_err(|e| RuntimeError::InvalidResponse(format!("Invalid ADC format: {e}")))?; # | Error: CLIPPY_WARNING: [#def12] crates/openshell-providers/src/runtime.rs:23:43: warning: item in documentation is missing backticks # | # 23 | /// Provider-specific metadata (e.g., project_id, region) # | ^^^^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # = note: `-W clippy::doc-markdown` implied by `-W clippy::pedantic` # = help: to override `-W clippy::pedantic` add `#[allow(clippy::doc_markdown)]` # help: try # | # 23 - /// Provider-specific metadata (e.g., project_id, region) # 23 + /// Provider-specific metadata (e.g., `project_id`, region) # | Error: CLIPPY_WARNING: [#def13] crates/openshell-providers/src/runtime.rs:54:9: warning: unnecessary structure name repetition # | # 54 | RuntimeError::Network(e.to_string()) # | ^^^^^^^^^^^^ help: use the applicable keyword: `Self` # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#use_self # = note: `-W clippy::use-self` implied by `-W clippy::nursery` # = help: to override `-W clippy::nursery` add `#[allow(clippy::use_self)]` Error: CLIPPY_WARNING: [#def14] crates/openshell-providers/src/runtime.rs:60:9: warning: unnecessary structure name repetition # | # 60 | RuntimeError::InvalidResponse(e.to_string()) # | ^^^^^^^^^^^^ help: use the applicable keyword: `Self` # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#use_self Error: CLIPPY_WARNING: [#def15] crates/openshell-providers/src/secret_store.rs:10:27: warning: item in documentation is missing backticks # | # 10 | //! The provider plugins (VertexProvider, AnthropicProvider, etc.) know how # | ^^^^^^^^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # help: try # | # 10 - //! The provider plugins (VertexProvider, AnthropicProvider, etc.) know how # 10 + //! The provider plugins (`VertexProvider`, AnthropicProvider, etc.) know how # | Error: CLIPPY_WARNING: [#def16] crates/openshell-providers/src/secret_store.rs:10:43: warning: item in documentation is missing backticks # | # 10 | //! The provider plugins (VertexProvider, AnthropicProvider, etc.) know how # | ^^^^^^^^^^^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # help: try # | # 10 - //! The provider plugins (VertexProvider, AnthropicProvider, etc.) know how # 10 + //! The provider plugins (VertexProvider, `AnthropicProvider`, etc.) know how # | Error: CLIPPY_WARNING: [#def17] crates/openshell-providers/src/stores/database.rs:6:55: warning: item in documentation is missing backticks # | # 6 | //! Fetches credentials from the provider credentials HashMap stored in the gateway database. # | ^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # help: try # | # 6 - //! Fetches credentials from the provider credentials HashMap stored in the gateway database. # 6 + //! Fetches credentials from the provider credentials `HashMap` stored in the gateway database. # | Error: CLIPPY_WARNING: [#def18] crates/openshell-providers/src/stores/database.rs:7:54: warning: item in documentation is missing backticks # | # 7 | //! This is the primary secret storage mechanism for OpenShell. # | ^^^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # help: try # | # 7 - //! This is the primary secret storage mechanism for OpenShell. # 7 + //! This is the primary secret storage mechanism for `OpenShell`. # | Error: CLIPPY_WARNING: [#def19] crates/openshell-providers/src/stores/database.rs:9:84: warning: item in documentation is missing backticks # | # 9 | //! The gateway stores Provider records with credentials in `Provider.credentials` HashMap. # | ^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # help: try # | # 9 - //! The gateway stores Provider records with credentials in `Provider.credentials` HashMap. # 9 + //! The gateway stores Provider records with credentials in `Provider.credentials` `HashMap`. # | Error: CLIPPY_WARNING: [#def20] crates/openshell-providers/src/stores/database.rs:18:36: warning: item in documentation is missing backticks # | # 18 | /// Wraps a provider's credentials HashMap from the database. # | ^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # help: try # | # 18 - /// Wraps a provider's credentials HashMap from the database. # 18 + /// Wraps a provider's credentials `HashMap` from the database. # | Error: CLIPPY_WARNING: [#def21] crates/openshell-providers/src/stores/database.rs:39:35: warning: variables can be used directly in the `format!` string # | # 39 | SecretError::NotFound(format!("Credential '{}' not found in provider", key)) # | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#uninlined_format_args # help: change this to # | # 39 - SecretError::NotFound(format!("Credential '{}' not found in provider", key)) # 39 + SecretError::NotFound(format!("Credential '{key}' not found in provider")) # | Error: CLIPPY_WARNING: [#def22] crates/openshell-providers/src/token_cache.rs:126:25: warning: item in documentation is missing backticks # | # 126 | /// Returns (token, expires_in_seconds) where expires_in_seconds is the # | ^^^^^^^^^^^^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # help: try # | # 126 - /// Returns (token, expires_in_seconds) where expires_in_seconds is the # 126 + /// Returns (token, `expires_in_seconds`) where expires_in_seconds is the # | Error: CLIPPY_WARNING: [#def23] crates/openshell-providers/src/token_cache.rs:126:51: warning: item in documentation is missing backticks # | # 126 | /// Returns (token, expires_in_seconds) where expires_in_seconds is the # | ^^^^^^^^^^^^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # help: try # | # 126 - /// Returns (token, expires_in_seconds) where expires_in_seconds is the # 126 + /// Returns (token, expires_in_seconds) where `expires_in_seconds` is the # | Error: CLIPPY_WARNING: [#def24] crates/openshell-providers/src/token_cache.rs:132:13: warning: this `if` statement can be collapsed # | # 132 | / if let Some(cached) = tokens.get(provider_name) { # 133 | | if cached.is_valid() { # 134 | | let expires_in = (cached.expires_at - Utc::now()).num_seconds().max(0) as u64; # 135 | | tracing::debug!( # ... | # 143 | | } # | |_____________^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#collapsible_if # = note: `-W clippy::collapsible-if` implied by `-W clippy::all` # = help: to override `-W clippy::all` add `#[allow(clippy::collapsible_if)]` # help: collapse nested if block # | # 132 ~ if let Some(cached) = tokens.get(provider_name) # 133 ~ && cached.is_valid() { # 134 | let expires_in = (cached.expires_at - Utc::now()).num_seconds().max(0) as u64; # ... # 141 | return Ok((cached.access_token.clone(), expires_in)); # 142 ~ } # | Error: CLIPPY_WARNING: [#def25] crates/openshell-providers/src/token_cache.rs:134:38: warning: casting `i64` to `u64` may lose the sign of the value # | # 134 | let expires_in = (cached.expires_at - Utc::now()).num_seconds().max(0) as u64; # | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, use `cast_unsigned()` instead: `(cached.expires_at - Utc::now()).num_seconds().max(0).cast_unsigned()` # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#cast_sign_loss # = note: `-W clippy::cast-sign-loss` implied by `-W clippy::pedantic` # = help: to override `-W clippy::pedantic` add `#[allow(clippy::cast_sign_loss)]` Error: CLIPPY_WARNING: [#def26] crates/openshell-providers/src/token_cache.rs:153:13: warning: use Option::map_or instead of an if let/else # | # 153 | / if let Some(cached) = tokens.get(provider_name) { # 154 | | (cached.expires_at - Utc::now()).num_seconds().max(0) as u64 # 155 | | } else { # ... | # 158 | | } # | |_____________^ help: try: `tokens.get(provider_name).map_or(3600, |cached| (cached.expires_at - Utc::now()).num_seconds().max(0) as u64)` # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#option_if_let_else Error: CLIPPY_WARNING: [#def27] crates/openshell-providers/src/token_cache.rs:154:17: warning: casting `i64` to `u64` may lose the sign of the value # | # 154 | (cached.expires_at - Utc::now()).num_seconds().max(0) as u64 # | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, use `cast_unsigned()` instead: `(cached.expires_at - Utc::now()).num_seconds().max(0).cast_unsigned()` # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#cast_sign_loss Error: CLIPPY_WARNING: [#def28] crates/openshell-providers/src/token_cache.rs:168:57: warning: casting `u64` to `i64` may wrap around the value # | # 168 | let expires_at = Utc::now() + Duration::seconds(response.expires_in as i64); # | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, use `cast_signed()` instead: `response.expires_in.cast_signed()` # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#cast_possible_wrap # = note: `-W clippy::cast-possible-wrap` implied by `-W clippy::pedantic` # = help: to override `-W clippy::pedantic` add `#[allow(clippy::cast_possible_wrap)]` Error: CLIPPY_WARNING: [#def29] crates/openshell-providers/src/token_cache.rs:203:17: warning: casting `i64` to `u64` may lose the sign of the value # | # 203 | check_interval_seconds as u64, # | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, use `cast_unsigned()` instead: `check_interval_seconds.cast_unsigned()` # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#cast_sign_loss Error: CLIPPY_WARNING: [#def30] crates/openshell-providers/src/token_cache.rs:223:73: warning: casting `u64` to `i64` may wrap around the value # | # 223 | let expires_at = Utc::now() + Duration::seconds(response.expires_in as i64); # | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, use `cast_signed()` instead: `response.expires_in.cast_signed()` # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#cast_possible_wrap Error: CLIPPY_WARNING: [#def31] crates/openshell-tui/src/lib.rs:35:16: warning: item in documentation is missing backticks # | # 35 | /// Launch the OpenShell TUI. # | ^^^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # help: try # | # 35 - /// Launch the OpenShell TUI. # 35 + /// Launch the `OpenShell` TUI. # | Error: CLIPPY_WARNING: [#def32] crates/openshell-tui/src/lib.rs:37:55: warning: item in documentation is missing backticks # | # 37 | /// `channel` must be a connected gRPC channel to the OpenShell gateway. # | ^^^^^^^^^ # | # = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.94.0/index.html#doc_markdown # help: try # | # 37 - /// `channel` must be a connected gRPC channel to the OpenShell gateway. # 37 + /// `channel` must be a connected gRPC channel to the `OpenShell` gateway. # |
| analyzer-version-clippy | 1.94.1 |
| analyzer-version-cppcheck | 2.20.0 |
| analyzer-version-gcc | 16.0.1 |
| analyzer-version-gcc-analyzer | 16.0.1 |
| analyzer-version-shellcheck | 0.11.0 |
| analyzer-version-unicontrol | 0.0.2 |
| diffbase-analyzer-version-clippy | 1.94.1 |
| diffbase-analyzer-version-cppcheck | 2.20.0 |
| diffbase-analyzer-version-gcc | 16.0.1 |
| diffbase-analyzer-version-gcc-analyzer | 16.0.1 |
| diffbase-analyzer-version-shellcheck | 0.11.0 |
| diffbase-analyzer-version-unicontrol | 0.0.2 |
| diffbase-enabled-plugins | clippy, cppcheck, gcc, shellcheck, unicontrol |
| diffbase-exit-code | 0 |
| diffbase-host | ip-172-16-1-92.us-west-2.compute.internal |
| diffbase-known-false-positives | /usr/share/csmock/known-false-positives.js |
| diffbase-known-false-positives-rpm | known-false-positives-0.0.0.20260320.200800.gd35503f.main-1.el9.noarch |
| diffbase-mock-config | fedora-rawhide-x86_64 |
| diffbase-project-name | openshell-0.0.22-1.20260408171709185678.midstream.92.g5c543af |
| diffbase-store-results-to | /tmp/tmpx__vbufg/openshell-0.0.22-1.20260408171709185678.midstream.92.g5c543af.tar.xz |
| diffbase-time-created | 2026-04-10 12:26:50 |
| diffbase-time-finished | 2026-04-10 12:43:16 |
| diffbase-tool | csmock |
| diffbase-tool-args | '/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'cppcheck,gcc,shellcheck,clippy,unicontrol' '-o' '/tmp/tmpx__vbufg/openshell-0.0.22-1.20260408171709185678.midstream.92.g5c543af.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '/tmp/tmpx__vbufg/openshell-0.0.22-1.20260408171709185678.midstream.92.g5c543af.src.rpm' |
| diffbase-tool-version | csmock-3.8.5-1.el9 |
| enabled-plugins | clippy, cppcheck, gcc, shellcheck, unicontrol |
| exit-code | 0 |
| host | ip-172-16-1-92.us-west-2.compute.internal |
| known-false-positives | /usr/share/csmock/known-false-positives.js |
| known-false-positives-rpm | known-false-positives-0.0.0.20260320.200800.gd35503f.main-1.el9.noarch |
| mock-config | fedora-rawhide-x86_64 |
| project-name | openshell-0.0.22-1.20260410120735423601.pr22.121.gcf18042 |
| store-results-to | /tmp/tmp0n0c0907/openshell-0.0.22-1.20260410120735423601.pr22.121.gcf18042.tar.xz |
| time-created | 2026-04-10 12:43:43 |
| time-finished | 2026-04-10 12:59:38 |
| title | Newly introduced findings |
| tool | csmock |
| tool-args | '/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'cppcheck,gcc,shellcheck,clippy,unicontrol' '-o' '/tmp/tmp0n0c0907/openshell-0.0.22-1.20260410120735423601.pr22.121.gcf18042.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '/tmp/tmp0n0c0907/openshell-0.0.22-1.20260410120735423601.pr22.121.gcf18042.src.rpm' |
| tool-version | csmock-3.8.5-1.el9 |