From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 29B2093EED for ; Wed, 12 Apr 2023 09:18:04 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 12D05CFAA for ; Wed, 12 Apr 2023 09:18:04 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 12 Apr 2023 09:18:03 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id BC53746F2A for ; Wed, 12 Apr 2023 09:18:02 +0200 (CEST) From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= To: pve-devel@lists.proxmox.com Date: Wed, 12 Apr 2023 09:17:57 +0200 Message-Id: <20230412071758.3383292-1-f.gruenbichler@proxmox.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.071 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH proxmox-apt 1/2] fallback to Release file for Origin retrieval X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Apr 2023 07:18:04 -0000 APT will not store the InRelease file in some cases, and some repositories might not even have one in the first place. Signed-off-by: Fabian Grünbichler --- src/repositories/repository.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/repositories/repository.rs b/src/repositories/repository.rs index a5e3015..7a19af4 100644 --- a/src/repositories/repository.rs +++ b/src/repositories/repository.rs @@ -315,10 +315,13 @@ impl APTRepository { pub fn get_cached_origin(&self) -> Result, Error> { for uri in self.uris.iter() { for suite in self.suites.iter() { - let file = in_release_filename(uri, suite); + let mut file = release_filename(uri, suite, false); if !file.exists() { - continue; + file = release_filename(uri, suite, true); + if !file.exists() { + continue; + } } let raw = std::fs::read(&file) @@ -354,17 +357,19 @@ impl APTRepository { } } -/// Get the path to the cached InRelease file. -fn in_release_filename(uri: &str, suite: &str) -> PathBuf { +/// Get the path to the cached (In)Release file. +fn release_filename(uri: &str, suite: &str, detached: bool) -> PathBuf { let mut path = PathBuf::from(&crate::config::get().dir_state); path.push(&crate::config::get().dir_state_lists); - let filename = uri_to_filename(uri); + let encoded_uri = uri_to_filename(uri); + let filename = if detached { "Release" } else { "InRelease" }; path.push(format!( - "{}_dists_{}_InRelease", - filename, + "{}_dists_{}_{}", + encoded_uri, suite.replace('/', "_"), // e.g. for buster/updates + filename, )); path -- 2.30.2