From d2cc0203362cddd151e7d1ff36f260849b8ec792 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 26 Nov 2024 15:12:12 +0100 Subject: [PATCH] install: fix broken URL building logic for Maven Central The append logic was wrong, so it was trying to download URLs like: https://repo.maven.apache.org/maven2/org/fdroid/fdroid/F-Droid/maven-metadata.xml/org/fdroid/fdroid/F-Droid/1.20.0/F-Droid-1.20.0.apk Which should be: https://repo.maven.apache.org/maven2/org/fdroid/fdroid/F-Droid/1.20.0/F-Droid-1.20.0.apk Can be manually tested using: `test_download_fdroid_apk=1 python -m unittest -k test_download_fdroid_apk_from_maven` --- fdroidserver/install.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fdroidserver/install.py b/fdroidserver/install.py index 1fb1e6fb..529e36dc 100644 --- a/fdroidserver/install.py +++ b/fdroidserver/install.py @@ -136,10 +136,11 @@ def download_fdroid_apk_from_maven(privacy_mode=False): mirrors = MAVEN_CENTRAL_MIRRORS[:2] # skip the Google servers else: mirrors = MAVEN_CENTRAL_MIRRORS - mirrors = common.append_filename_to_mirrors( - os.path.join(path, 'maven-metadata.xml'), mirrors + metadata = net.download_using_mirrors( + common.append_filename_to_mirrors( + os.path.join(path, 'maven-metadata.xml'), mirrors + ) ) - metadata = net.download_using_mirrors(mirrors) version = XMLElementTree.parse(metadata).getroot().findall('*.//latest')[0].text mirrors = common.append_filename_to_mirrors( os.path.join(path, version, f'F-Droid-{version}.apk'), mirrors