distro_info: fix sid keyring url
Some checks failed
CI / build (push) Failing after 10m27s
CI / snap (push) Has been skipped

This commit is contained in:
2026-01-26 14:20:19 +01:00
parent 97a78336fa
commit 45960e5f17

View File

@@ -135,11 +135,23 @@ pub async fn get_keyring_url(series: &str) -> Result<String, Box<dyn Error>> {
// For Debian, we need the series number to form the keyring URL
if dist == "debian" {
let series_num = get_debian_series_number(series).await?.unwrap();
// Replace {series_num} placeholder with the actual series number
Ok(dist_data
.archive_keyring
.replace("{series_num}", &series_num))
// Special case for 'sid' - use the latest version
if series == "sid" {
let latest_series = get_ordered_series("debian").await?;
// Get the first non-sid series (which should be the latest stable)
let latest_stable = latest_series.iter().find(|&s| s != "sid").unwrap();
let series_num = get_debian_series_number(latest_stable).await?.unwrap();
// Replace {series_num} placeholder with the latest stable series number
Ok(dist_data
.archive_keyring
.replace("{series_num}", &series_num))
} else {
let series_num = get_debian_series_number(series).await?.unwrap();
// Replace {series_num} placeholder with the actual series number
Ok(dist_data
.archive_keyring
.replace("{series_num}", &series_num))
}
} else {
// For other distributions like Ubuntu, use the keyring directly
Ok(dist_data.archive_keyring.clone())
@@ -258,4 +270,16 @@ mod tests {
let unknown_number = get_debian_series_number("unknown").await.unwrap();
assert!(unknown_number.is_none());
}
#[tokio::test]
async fn test_get_keyring_url_sid() {
// Test that 'sid' uses the latest stable version for keyring URL
let sid_keyring = get_keyring_url("sid").await.unwrap();
let latest_series = get_ordered_series("debian").await.unwrap();
let latest_stable = latest_series.iter().find(|&s| s != "sid").unwrap();
let latest_keyring = get_keyring_url(latest_stable).await.unwrap();
// The keyring URL for 'sid' should be the same as the latest stable version
assert_eq!(sid_keyring, latest_keyring);
}
}