APT doesn't mind a repository with either "/" or "./" as suite/distribution, such as
deb https://example.com/debian ./ in that case, the 'dists' part of the URL and the trailing slash (which would be encoded as '_') is dropped in the file name in '/var/lib/apt/lists/'. Other suite values with a trailing or leading '/' are rejected with an error by APT: E: Malformed entry 1 in sources file /etc/apt/sources.list.d/test.list (absolute Suite Component) E: The list of sources could not be read. so this should be the only special case requiring handling. Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> --- src/repositories/repository.rs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/repositories/repository.rs b/src/repositories/repository.rs index 7a19af4..ef77186 100644 --- a/src/repositories/repository.rs +++ b/src/repositories/repository.rs @@ -365,12 +365,18 @@ fn release_filename(uri: &str, suite: &str, detached: bool) -> PathBuf { let encoded_uri = uri_to_filename(uri); let filename = if detached { "Release" } else { "InRelease" }; - path.push(format!( - "{}_dists_{}_{}", - encoded_uri, - suite.replace('/', "_"), // e.g. for buster/updates - filename, - )); + if suite == "/" { + path.push(format!("{encoded_uri}_{filename}")); + } else if suite == "./" { + path.push(format!("{encoded_uri}_._{filename}")); + } else { + path.push(format!( + "{}_dists_{}_{}", + encoded_uri, + suite.replace('/', "_"), // e.g. for buster/updates + filename, + )); + } path } -- 2.30.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel